/* v2.0.70 · TOP integrated opening calendar; Japanese and English. */
body.jb59-home .jb70-home-calendar{background:#f4f0e8;border-top:1px solid #ded8cf;color:#4b4845;padding:clamp(62px,6.5vw,104px) 0;scroll-margin-top:85px}
body.jb59-home .jb70-home-calendar *{box-sizing:border-box}
body.jb59-home .jb70-home-grid{display:grid;grid-template-columns:minmax(0,.83fr) minmax(0,1.17fr);align-items:center;gap:clamp(34px,6vw,110px);max-width:1120px;margin-inline:auto}
body.jb59-home .jb70-home-intro,body.jb59-home .jb70-calendar-panel{min-width:0}
body.jb59-home .jb70-home-intro h2{font:900 clamp(47px,5.5vw,80px)/.99 'DM Sans','Noto Sans JP',sans-serif;letter-spacing:-.068em;color:#747171;margin:0 0 26px}
body.jb59-home .jb70-home-headline{font-weight:750;font-size:clamp(16px,1.6vw,20px);color:#504c49;margin:0 0 12px;line-height:1.5}
body.jb59-home .jb70-home-subcopy{font-size:13px;line-height:1.9;color:#77716c;margin:0 0 26px}
body.jb59-home .jb70-home-actions{display:flex;flex-wrap:wrap;gap:9px}
body.jb59-home .jb70-btn{display:inline-flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 16px;border:1px solid #575450;font-weight:800;font-size:11px;line-height:1.4;letter-spacing:.015em;text-decoration:none;min-height:44px}
body.jb59-home .jb70-btn-primary{background:#4e4c49;color:#fff}
body.jb59-home .jb70-btn-secondary{background:transparent;color:#4e4c49}
body.jb59-home .jb70-btn:hover{opacity:.85}
body.jb59-home .jb70-calendar-panel{padding:clamp(15px,2.5vw,30px);background:#fcfbf8;border:1px solid #ded8cf;border-radius:3px;box-shadow:0 9px 29px rgba(42,37,30,.04)}
body.jb59-home .jb70-calendar-overline{display:flex;justify-content:space-between;gap:12px;color:#8b847a;font-size:10px;letter-spacing:.13em;font-weight:800;padding-bottom:15px;border-bottom:1px solid #e7e1d8}
body.jb59-home .jb70-calendar-overline span:last-child{letter-spacing:0}
body.jb59-home .jb70-monthbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 0 11px}
body.jb59-home .jb70-monthbar strong{font-size:clamp(15px,1.7vw,20px);font-weight:850;letter-spacing:-.025em;color:#4e4b48;white-space:nowrap}
body.jb59-home .jb70-month-arrow{flex:0 0 32px;width:32px;height:32px;border:1px solid #d7d1c8;display:grid;place-items:center;font-size:24px;line-height:1;color:#514d48;text-decoration:none;border-radius:2px}
body.jb59-home .jb70-month-arrow:hover{background:#ede9e2}
body.jb59-home .jb70-month-disabled{opacity:.26}
body.jb59-home .jb70-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:clamp(3px,.55vw,7px);min-width:0}
body.jb59-home .jb70-weekday{font-size:11px;color:#8d867d;text-align:center;padding:7px 0 10px;font-weight:750}
body.jb59-home .jb70-sun{color:#b17a6a}
body.jb59-home .jb70-calendar-day{position:relative;aspect-ratio:1.2/1;min-width:0;min-height:32px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:1px solid #eeebe5;background:#f2f0ec;color:#aaa39a;border-radius:2px;padding:2px;font-size:clamp(11px,1.1vw,14px);font-weight:750;font-variant-numeric:tabular-nums}
body.jb59-home .jb70-calendar-day i{width:4px;height:4px;border-radius:50%;background:transparent}
body.jb59-home .jb70-day-open{background:#e5e9df;border-color:#d9ded5;color:#546255}
body.jb59-home .jb70-day-open i{background:#829081}
body.jb59-home .jb70-day-closed{background:#f4f2ef;color:#b8afa6}
body.jb59-home .jb70-day-special,body.jb59-home .jb70-day-open.jb70-day-exception{background:#f4ead8;border-color:#e8d8ba;color:#957b4d}
body.jb59-home .jb70-day-special i,body.jb59-home .jb70-day-open.jb70-day-exception i{background:#b39a67}
body.jb59-home .jb70-day-private{background:#eae5ee;border-color:#dfd7e7;color:#786a85}
body.jb59-home .jb70-day-private i{background:#8a7a9e}
body.jb59-home .jb70-day-closed.jb70-day-exception{background:#f1e2d9;border-color:#e5d5cd;color:#a56c59}
body.jb59-home .jb70-day-closed.jb70-day-exception i{background:#b47962}
body.jb59-home .jb70-day-today{outline:2px solid #4a4845;outline-offset:-2px}
body.jb59-home .jb70-calendar-legend{display:flex;flex-wrap:wrap;align-items:center;gap:8px 15px;padding:15px 0;border-bottom:1px solid #e8e3db;font-size:10px;color:#736e68}
body.jb59-home .jb70-calendar-legend span{display:flex;align-items:center;gap:6px}
body.jb59-home .jb70-calendar-legend i{display:inline-block;width:8px;height:8px;border-radius:50%;background:#c8bcb2}
body.jb59-home .jb70-calendar-legend .jb70-dot-open{background:#829081}
body.jb59-home .jb70-calendar-legend .jb70-dot-special{background:#b39a67}
body.jb59-home .jb70-calendar-legend .jb70-dot-private{background:#8a7a9e}
body.jb59-home .jb70-calendar-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 14px;padding-top:13px;font-size:11px;color:#857f77;line-height:1.6}
body.jb59-home .jb70-calendar-footer a{color:#4b4946;text-decoration:underline;text-underline-offset:3px;font-weight:800}
body.jb59-home .jb70-home-intro #jb69-today-alert{margin-top:22px;max-width:100%}
/* Keep ACCESS map aligned with 980px opening calendar, not left-anchored by v2.0.65 overrides. */
body.jb65-access .jb65-access-mapwrap .jb44-map-section{width:100%;max-width:980px;margin:0 auto;}
body.jb65-access .jb65-access-mapwrap .jb-container{min-width:0;}
@media(max-width:900px){body.jb59-home .jb70-home-grid{grid-template-columns:minmax(0,1fr);gap:29px}body.jb59-home .jb70-home-intro h2{font-size:clamp(41px,8vw,65px)}body.jb59-home .jb70-home-intro h2 br{display:none}}
@media(max-width:700px){body.jb59-home .jb70-home-calendar{padding:57px 0 64px}body.jb59-home .jb70-home-grid{width:min(calc(100% - 36px),1120px)}body.jb59-home .jb70-home-intro h2{font-size:clamp(38px,10vw,55px);margin-bottom:17px}body.jb59-home .jb70-home-actions{gap:7px}body.jb59-home .jb70-btn{flex:1 1 auto}body.jb59-home .jb70-calendar-panel{padding:15px 10px 20px}body.jb59-home .jb70-calendar-grid{gap:3px}body.jb59-home .jb70-calendar-day{aspect-ratio:1/1;min-height:32px;font-size:12px}body.jb59-home .jb70-weekday{font-size:10px}body.jb59-home .jb70-calendar-legend{gap:8px 11px}body.jb59-home .jb70-calendar-footer{font-size:10px}}

/* v2.0.71: Only open / special-hours dates are larger. */
body.jb59-home .jb70-calendar-day.jb70-day-open > span:first-child,
body.jb59-home .jb70-calendar-day.jb70-day-special > span:first-child {
  font-size: clamp(16px, 1.5vw, 19px);
  font-weight: 850;
  line-height: 1.05;
}
@media (max-width:700px) {
  body.jb59-home .jb70-calendar-day.jb70-day-open > span:first-child,
  body.jb59-home .jb70-calendar-day.jb70-day-special > span:first-child {font-size:16px}
}
