/* 令和8年度 施設見学会・コース説明会カレンダー（10月～3月）完全版CSS */
.poly-calendar,.poly-calendar *{box-sizing:border-box}.poly-calendar{--navy:#153b5b;--blue:#1677a8;--pale:#dff3f8;--orange:#f47a3b;--red:#d95072;--ink:#173042;--muted:#5e7482;--line:#c7dde5;width:100%;min-width:0;max-width:1200px;margin:0 auto;padding:0 0 24px;overflow:hidden;color:var(--ink);background:#f7fbfc;border:1px solid var(--line);border-radius:16px;font-family:"Noto Sans JP","Noto Sans CJK JP",sans-serif}.poly-calendar__legend{display:flex;flex-wrap:wrap;align-items:center;gap:12px 26px;margin:22px 26px 16px;padding:15px 20px;background:#fff;border:1px solid var(--line);border-radius:12px;font-size:14px}.poly-calendar__legend span{display:inline-flex;align-items:center;gap:7px;font-weight:700}.poly-calendar__legend i{width:14px;height:14px;flex:0 0 14px;border-radius:50%}.legend-tour{background:var(--blue)}.legend-course{background:var(--orange)}.poly-calendar__legend .legend-red{margin-left:auto;color:var(--red)}
.poly-calendar__grid{display:flex;flex-wrap:wrap;align-items:flex-start;gap:14px;padding:0 26px}.cal-month{flex:1 1 calc((100% - 28px)/3);width:calc((100% - 28px)/3);min-width:210px;height:max-content;margin:0;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:10px}.cal-month[open]{flex-basis:100%;width:100%;min-width:100%;border-color:var(--blue);box-shadow:0 5px 16px rgba(21,59,91,.08)}.cal-month__summary{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:10px 42px 10px 15px;color:var(--navy);background:var(--pale);cursor:pointer;list-style:none}.cal-month__summary::-webkit-details-marker{display:none}.cal-month__summary::marker{content:""}.cal-month__summary:hover{background:#d2edf4}.cal-month__summary:focus-visible{outline:3px solid rgba(22,119,168,.35);outline-offset:-3px}.cal-month__name{font-size:19px;font-weight:800;line-height:1.4}.cal-month__status{color:var(--muted);font-size:12px;font-weight:700}.cal-month__summary::after{position:absolute;top:50%;right:17px;width:9px;height:9px;border-right:3px solid var(--blue);border-bottom:3px solid var(--blue);content:"";transform:translateY(-65%) rotate(45deg)}.cal-month[open] .cal-month__summary{color:#fff;background:var(--blue)}.cal-month[open] .cal-month__summary::after{border-color:#fff;transform:translateY(-35%) rotate(225deg)}.cal-month[open] .cal-month__status{color:#fff;font-size:0}.cal-month[open] .cal-month__status::before{font-size:12px;content:"カレンダーを閉じる"}
.cal-month__body{padding:18px;background:#fff}.cal-month__layout{display:flex;flex-wrap:wrap;align-items:flex-start;gap:24px;min-width:0}.cal-month__calendar{flex:1 1 320px;width:100%;min-width:min(100%,280px);max-width:460px;margin:0 auto}.cal-month__events{flex:1 1 320px;width:100%;min-width:min(100%,320px);max-width:100%;padding:16px;background:#f8fbfc;border:1px solid var(--line);border-radius:12px}.cal-week,.cal-days{display:grid;width:100%;min-width:0;grid-template-columns:repeat(7,minmax(0,1fr))}.cal-week{padding:5px 4px 8px}.cal-week span{min-width:0;color:var(--muted);font-size:12px;font-weight:700;line-height:1;text-align:center;white-space:nowrap}.cal-week span:first-child{color:var(--red)}.cal-week span:last-child{color:var(--blue)}.cal-days{padding:4px;row-gap:6px}.cal-day{display:flex;align-items:center;justify-content:center;min-width:0;min-height:38px;font-size:14px;line-height:1;white-space:nowrap}.cal-empty{visibility:hidden}.is-red{color:var(--red)}.is-sat{color:var(--blue)}.is-tour,.is-course{width:min(34px,90%);height:auto;min-height:0;aspect-ratio:1/1;justify-self:center;color:#fff;border-radius:50%;font-weight:800}.is-tour{background:var(--blue)}.is-course{background:var(--orange)}.is-tour.is-course{background:linear-gradient(135deg,var(--blue) 0 49%,var(--orange) 51% 100%)}
.cal-month__events h4{margin:0 0 14px;color:var(--navy);font-size:20px;line-height:1.4}.cal-event{margin:0 0 12px;padding:13px 14px;background:#fff;border-radius:9px}.cal-event--tour{border-left:5px solid var(--blue)}.cal-event--course{border-left:5px solid var(--orange)}.cal-event h5{display:flex;align-items:center;gap:8px;margin:0 0 8px;color:var(--navy);font-size:15px;line-height:1.5}.cal-event__marker{width:11px;height:11px;flex:0 0 11px;border-radius:50%}.cal-event--tour .cal-event__marker{background:var(--blue)}.cal-event--course .cal-event__marker{background:var(--orange)}.cal-event__label{margin:0 0 3px;color:var(--muted);font-size:12px;font-weight:700}.cal-event__courses{min-width:0;margin:0 0 8px;padding-left:1.3em}.cal-event__courses li{margin:2px 0;line-height:1.5}.cal-event__date{margin:0;font-weight:700;line-height:1.6}.cal-event__date span{margin-right:8px;color:var(--muted);font-size:12px}.cal-event__empty{margin:0;padding:14px;background:#fff;border-radius:9px}.cal-month__events h4,.cal-event h5,.cal-event p,.cal-event li{writing-mode:horizontal-tb;text-orientation:mixed;word-break:normal;overflow-wrap:anywhere;white-space:normal}.cal-events__common{margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font-size:12px;line-height:1.6}.cal-events__common p{margin:3px 0}.cal-events__common strong{color:var(--navy)}
.poly-calendar .cal-events__reservation{margin:12px 0 0}.poly-calendar .cal-events__reservation-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 18px;color:#fff;background:var(--orange);border:2px solid var(--orange);border-radius:8px;font-size:14px;font-weight:700;line-height:1.5;text-align:center;text-decoration:none;transition:background-color .2s ease,border-color .2s ease,color .2s ease}.poly-calendar .cal-events__reservation-link:hover{color:#fff;background:#d95f23;border-color:#d95f23;text-decoration:none}.poly-calendar .cal-events__reservation-link:focus-visible{outline:3px solid rgba(244,122,59,.35);outline-offset:3px}.poly-calendar .cal-events__reservation-link::after{margin-left:8px;content:"▼";font-size:11px}.poly-calendar__note{margin:18px 26px 0;padding:12px 15px;background:#fff;border:1px solid var(--line);border-radius:10px;font-size:13px;line-height:1.6}
@media screen and (max-width:760px){.poly-calendar__grid{padding:0 15px}.cal-month{flex-basis:calc((100% - 14px)/2);width:calc((100% - 14px)/2);min-width:190px}.cal-month[open]{flex-basis:100%;width:100%;min-width:100%}.poly-calendar__legend,.poly-calendar__note{margin-left:15px;margin-right:15px}.poly-calendar__legend .legend-red{width:100%;margin-left:0}.cal-month__calendar{max-width:500px}}
@media screen and (max-width:480px){.cal-month,.cal-month[open]{flex-basis:100%;width:100%;min-width:100%}.cal-month__summary{min-height:54px}.cal-month__name{font-size:20px}.cal-month__body{padding:12px}.cal-month__layout{gap:16px}.cal-month__events{padding:12px}.cal-event{padding:12px}.cal-day{min-height:36px;font-size:14px}.poly-calendar .cal-events__reservation-link{width:100%}}

/* =========================================================
   サイト共通の背景色切替（#wrap.bg_black / #wrap.bg_blue）対応
   共通JavaScript・共通CSSは変更せず、このWEBパーツ内だけを補正する。
   ========================================================= */

/* 黒背景モード: WEBパーツを高コントラストの暗色テーマにする */
#wrap.bg_black .poly-calendar{
  --navy:#ffffff;
  --blue:#56c7ff;
  --pale:#16242c;
  --orange:#ff9a5c;
  --red:#ff8aa5;
  --ink:#ffffff;
  --muted:#d9e6ec;
  --line:#8fa8b4;
  color:var(--ink) !important;
  background:#071015 !important;
  border-color:var(--line) !important;
}

/* 青背景モード: WEBパーツを高コントラストの濃青テーマにする */
#wrap.bg_blue .poly-calendar{
  --navy:#ffffff;
  --blue:#7ed7ff;
  --pale:#123a56;
  --orange:#ffad73;
  --red:#ff9bb1;
  --ink:#ffffff;
  --muted:#e0edf4;
  --line:#9fc4d8;
  color:var(--ink) !important;
  background:#06263a !important;
  border-color:var(--line) !important;
}

/* 共通CSSが各ボックスを黒・青に上書きしても、パーツ内で面と文字色を再指定する */
#wrap.bg_black .poly-calendar__legend,
#wrap.bg_black .cal-month,
#wrap.bg_black .cal-month__body,
#wrap.bg_black .cal-month__events,
#wrap.bg_black .cal-event,
#wrap.bg_black .cal-event__empty,
#wrap.bg_black .poly-calendar__note{
  color:#fff !important;
  background:#101b21 !important;
  border-color:var(--line) !important;
}

#wrap.bg_blue .poly-calendar__legend,
#wrap.bg_blue .cal-month,
#wrap.bg_blue .cal-month__body,
#wrap.bg_blue .cal-month__events,
#wrap.bg_blue .cal-event,
#wrap.bg_blue .cal-event__empty,
#wrap.bg_blue .poly-calendar__note{
  color:#fff !important;
  background:#0b3550 !important;
  border-color:var(--line) !important;
}

/* 月見出し */
#wrap.bg_black .cal-month__summary,
#wrap.bg_blue .cal-month__summary{
  color:#fff !important;
  background:var(--pale) !important;
}
#wrap.bg_black .cal-month__summary:hover,
#wrap.bg_black .cal-month[open] .cal-month__summary{
  background:#087caf !important;
}
#wrap.bg_blue .cal-month__summary:hover,
#wrap.bg_blue .cal-month[open] .cal-month__summary{
  background:#087caf !important;
}
#wrap.bg_black .cal-month__name,
#wrap.bg_black .cal-month__status,
#wrap.bg_blue .cal-month__name,
#wrap.bg_blue .cal-month__status{
  color:#fff !important;
}
#wrap.bg_black .cal-month__summary::after,
#wrap.bg_blue .cal-month__summary::after{
  border-color:#fff !important;
}

/* 曜日・通常日・土日祝の文字色 */
#wrap.bg_black .cal-week span,
#wrap.bg_black .cal-day:not(.is-tour):not(.is-course):not(.is-red):not(.is-sat),
#wrap.bg_blue .cal-week span,
#wrap.bg_blue .cal-day:not(.is-tour):not(.is-course):not(.is-red):not(.is-sat){
  color:#fff !important;
}
#wrap.bg_black .cal-week span:first-child,
#wrap.bg_black .cal-day.is-red,
#wrap.bg_blue .cal-week span:first-child,
#wrap.bg_blue .cal-day.is-red{
  color:var(--red) !important;
}
#wrap.bg_black .cal-week span:last-child,
#wrap.bg_black .cal-day.is-sat,
#wrap.bg_blue .cal-week span:last-child,
#wrap.bg_blue .cal-day.is-sat{
  color:var(--blue) !important;
}
#wrap.bg_black .cal-day.is-tour,
#wrap.bg_black .cal-day.is-course,
#wrap.bg_blue .cal-day.is-tour,
#wrap.bg_blue .cal-day.is-course{
  color:#071015 !important;
}

/* 開催予定欄: 見出し、本文、補足情報を明示的に高コントラスト化 */
#wrap.bg_black .cal-month__events h4,
#wrap.bg_black .cal-event h5,
#wrap.bg_black .cal-event p,
#wrap.bg_black .cal-event li,
#wrap.bg_black .cal-events__common,
#wrap.bg_black .cal-events__common p,
#wrap.bg_black .cal-events__common strong,
#wrap.bg_blue .cal-month__events h4,
#wrap.bg_blue .cal-event h5,
#wrap.bg_blue .cal-event p,
#wrap.bg_blue .cal-event li,
#wrap.bg_blue .cal-events__common,
#wrap.bg_blue .cal-events__common p,
#wrap.bg_blue .cal-events__common strong{
  color:#fff !important;
}
#wrap.bg_black .cal-event__label,
#wrap.bg_black .cal-event__date span,
#wrap.bg_blue .cal-event__label,
#wrap.bg_blue .cal-event__date span{
  color:var(--muted) !important;
}
#wrap.bg_black .cal-event--tour h5,
#wrap.bg_blue .cal-event--tour h5{
  color:var(--blue) !important;
}
#wrap.bg_black .cal-event--course h5,
#wrap.bg_blue .cal-event--course h5{
  color:var(--orange) !important;
}

/* 凡例と注記 */
#wrap.bg_black .poly-calendar__legend strong,
#wrap.bg_black .poly-calendar__legend span,
#wrap.bg_black .poly-calendar__note,
#wrap.bg_blue .poly-calendar__legend strong,
#wrap.bg_blue .poly-calendar__legend span,
#wrap.bg_blue .poly-calendar__note{
  color:#fff !important;
}

/* 予約ボタンはオレンジ背景に対して濃色文字を維持 */
#wrap.bg_black .poly-calendar .cal-events__reservation-link,
#wrap.bg_black .poly-calendar .cal-events__reservation-link:hover,
#wrap.bg_blue .poly-calendar .cal-events__reservation-link,
#wrap.bg_blue .poly-calendar .cal-events__reservation-link:hover{
  color:#071015 !important;
  background:var(--orange) !important;
  border-color:var(--orange) !important;
}

