.sb-departure-calendar{--sb-ink:#214e4b;--sb-paper:#fcfbf7;--sb-line:#dce4df;--sb-price:#d63f20;max-width:1180px;margin:38px auto;padding:36px;background:var(--sb-paper);color:var(--sb-ink);border:1px solid var(--sb-line);font-family:"Noto Sans JP","Yu Gothic",Meiryo,sans-serif;box-sizing:border-box}
.sb-departure-calendar *{box-sizing:border-box}.sb-calendar-eyebrow{font-size:11px;letter-spacing:.2em;color:#927347;margin:0 0 12px}.sb-departure-calendar h2{font-family:"Yu Mincho",serif;font-size:clamp(24px,3.2vw,36px);font-weight:400;margin:0 0 14px;line-height:1.5}.sb-calendar-description{font-size:14px;line-height:1.9;margin:0 0 26px;color:#596f6c}
.sb-calendar-periods{display:grid;grid-template-columns:1fr 1fr;gap:10px}.sb-departure-calendar button{font-family:inherit;cursor:pointer}.sb-calendar-periods button{background:white;color:var(--sb-ink);border:1px solid var(--sb-line);padding:14px 10px;font-size:14px;font-weight:400}.sb-calendar-periods button[aria-pressed=true]{background:var(--sb-ink);color:white;border-color:var(--sb-ink)}.sb-calendar-months{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin:14px 0 22px}.sb-calendar-months button{padding:10px 4px;border:0;border-bottom:2px solid transparent;background:#edf1e8;color:var(--sb-ink);font-size:14px;font-weight:400}.sb-calendar-months button[aria-pressed=true]{border-bottom-color:var(--sb-price);background:white}
.sb-calendar-controls{display:flex;align-items:center;justify-content:space-between;margin:0 0 12px}.sb-calendar-controls h3{font-size:20px;font-weight:400;margin:0}.sb-calendar-controls button{padding:9px 8px;border:0;background:transparent;color:var(--sb-ink);font-size:13px}.sb-calendar-controls button:disabled{opacity:.35;cursor:default}
.sb-calendar-table{width:100%;border-collapse:collapse;table-layout:fixed;background:#fff;margin:0}.sb-calendar-table th{padding:10px 0;font-size:13px;font-weight:400;color:#66756f}.sb-calendar-table th:first-child{color:#bc583b}.sb-calendar-table th:last-child{color:#437487}.sb-calendar-table td{border:1px solid var(--sb-line);vertical-align:top;padding:0}.sb-calendar-table td.sb-calendar-empty{background:#f3f4ef}.sb-calendar-day{display:flex;width:100%;min-height:106px;flex-direction:column;align-items:flex-start;gap:5px;background:#fff;border:0;text-align:left;padding:12px 8px;color:var(--sb-ink)}.sb-calendar-number{font-size:16px;margin-bottom:4px}.sb-calendar-fare,.sb-calendar-child{font-size:clamp(10px,1.2vw,14px);color:var(--sb-price);line-height:1.5;white-space:nowrap;letter-spacing:0}.sb-calendar-child{font-size:clamp(9px,1.1vw,12px)}.sb-calendar-day[aria-pressed=true]{background:#edf3e9;box-shadow:inset 0 0 0 2px var(--sb-ink)}.sb-calendar-day:not(:disabled):hover{background:#f2f5ed}.sb-calendar-day:disabled{cursor:default;background:#f7f7f3;color:#8c9691}.sb-calendar-day:disabled .sb-calendar-fare{font-size:11px;color:#77857e}.sb-calendar-peak{font-size:10px;color:#9d573b;background:#fbede4;padding:2px 6px;border-radius:2px}.sb-departure-calendar button:focus-visible{outline:3px solid #d49433;outline-offset:-3px}.sb-calendar-selection{font-size:14px;margin:18px 0 8px;color:var(--sb-ink);min-height:1.6em}.sb-calendar-note{font-size:12px;color:#6e7d75;line-height:1.9;margin:0}.sb-calendar-visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@media(max-width:700px){.sb-departure-calendar{padding:20px 12px;margin:24px 0}.sb-calendar-periods{gap:6px}.sb-calendar-periods button{font-size:11px;padding:12px 3px}.sb-calendar-description{font-size:12px;margin-bottom:18px}.sb-calendar-controls h3{font-size:17px}.sb-calendar-day{padding:7px 3px;min-height:97px;gap:4px}.sb-calendar-fare,.sb-calendar-child{font-size:10px;white-space:normal;line-height:1.5}.sb-calendar-number{font-size:14px}.sb-calendar-day:disabled .sb-calendar-fare{font-size:9px}.sb-calendar-peak{font-size:9px;padding:1px 3px}.sb-calendar-months{gap:4px}.sb-calendar-months button{font-size:12px}.sb-calendar-note{font-size:11px}}
.sb-calendar-fare,.sb-calendar-child{white-space:normal}.sb-calendar-fare small,.sb-calendar-child small{font-size:.8em;display:block}.sb-calendar-fare>span,.sb-calendar-child>span{white-space:nowrap}#sb-departure-calendar~#loadCalendar{display:none!important}@media(max-width:700px){.sb-calendar-fare>span,.sb-calendar-child>span{font-size:9px}.sb-calendar-fare>.sb-calendar-long-price,.sb-calendar-child>.sb-calendar-long-price{font-size:8px}}
.sb-calendar-periods{grid-template-columns:repeat(3,minmax(0,1fr))}.sb-departure-calendar{scroll-margin-top:100px}

/* Past fares are neutral gray, including child fares and compact mobile figures. */
html body #sb-departure-calendar .sb-calendar-day.sb-calendar-past .sb-calendar-fare,
html body #sb-departure-calendar .sb-calendar-day.sb-calendar-past .sb-calendar-child,
html body #sb-departure-calendar .sb-calendar-day.sb-calendar-past .sb-calendar-mobile-fare,
html body #sb-departure-calendar .sb-calendar-day.sb-calendar-past .sb-calendar-fare *,
html body #sb-departure-calendar .sb-calendar-day.sb-calendar-past .sb-calendar-child *,
html body #sb-departure-calendar .sb-calendar-day.sb-calendar-past .sb-calendar-mobile-fare *{color:#888888!important;-webkit-text-fill-color:#888888!important}
html body #sb-departure-calendar .sb-calendar-day.sb-calendar-today{box-shadow:inset 0 0 0 2px #20584d!important;background:#edf3e9!important}
html body #sb-departure-calendar .sb-calendar-today-label{display:inline-block;font-size:10px!important;line-height:1.3;margin-left:5px;color:#20584d!important;font-weight:500;white-space:nowrap}
html body #sb-departure-calendar .sb-calendar-today-cell:focus-visible{outline:3px solid #d49433;outline-offset:-3px}
@media(max-width:650px){html body #sb-departure-calendar .sb-calendar-today-label{font-size:9px!important;margin-left:2px}}
