/* Calendar page only: sharp green / white with red store closures. */
.calendar-page main{background:#f5f8f7}
.calendar-page .page-title{position:relative;overflow:hidden;background:#00a88e;border-bottom:3px solid #00a88e;padding-top:54px;padding-bottom:54px}
.calendar-page .page-title:after{content:none}
.calendar-page .page-title h1{position:relative;z-index:1;color:#123e35;font-size:clamp(28px,4.2vw,48px);font-weight:800;margin:12px 0 0}
.calendar-page .page-title .eyebrow{color:#123e35;font-weight:800;letter-spacing:.2em}
.calendar-page .page-title .eyebrow:before{background:#123e35;width:38px;height:2px}
.calendar-page .page-title+.section{padding-top:38px}
.calendar-page .lead{color:#00a88e;font-weight:700}
.calendar-page #business-status{display:flex;flex-wrap:wrap;align-items:center;gap:12px;background:#fff;border-left:3px solid #00a88e;padding:18px 22px;box-shadow:none}
.calendar-page .business-badge{padding:8px 14px;font-size:16px;font-weight:700}
.calendar-page .business-badge[data-state=closed]{background:#c81d35;border-color:#c81d35;color:#fff}
.calendar-page .business-detail{font-size:15px}
.calendar-page .calendar-toolbar{background:#00a88e;border-top:1px solid #00a88e;padding:20px 24px;margin-bottom:12px;box-shadow:none}
.calendar-page .calendar-toolbar h2{color:#123e35;font-size:clamp(24px,3vw,38px);margin:0;font-weight:800}
.calendar-page .calendar-toolbar button{background:#fff;border:1px solid #fff;color:#123e35;font-weight:700;padding:10px 18px;cursor:pointer;border-radius:0}
.calendar-page .calendar-toolbar button:hover{background:#e2f6f2;border-color:#e2f6f2;color:#123e35}
.calendar-page button:focus-visible,.calendar-page a:focus-visible{outline:3px solid #d52a42;outline-offset:4px}
.calendar-page #calendar-message{color:#446354;font-size:15px}
.calendar-page .calendar-legend{gap:12px;margin:20px 0}
.calendar-page .calendar-legend>span{background:#fff;color:#00a88e;border:1px solid #b6cfc6;border-left:4px solid #00a88e;padding:7px 12px;font-weight:700;border-radius:0}
.calendar-page .calendar-legend>.closed{background:#fff0f2;color:#b71930;border-color:#d82843}
.calendar-page .calendar-legend>.special{background:#fff5cf;color:#735100;border-color:#c39a24}
.calendar-page .calendar-legend>.unknown{background:#eef1f0;color:#54615b;border-color:#83918a}
.calendar-page .month-table{box-shadow:none;border:1px solid #00a88e}
.calendar-page .month-table caption{color:#00a88e;font-weight:700;padding:10px 0}
.calendar-page .month-table th{background:#00a88e;color:#123e35;padding:13px 4px;font-size:17px;border:1px solid #ffffff33}
.calendar-page .month-table td{border:1px solid #c9d8d2;height:118px;padding:12px 9px}
.calendar-page .month-table td.regular{background:#fff;border-top:2px solid #00a88e}
.calendar-page .month-table td time{font-size:25px;font-weight:800;color:#00a88e;line-height:1.2}
.calendar-page .month-table td span{color:#00a88e;font-size:14px;font-weight:600}
.calendar-page .month-table td.closed{background:#fff0f2;border-top:2px solid #d82843}
.calendar-page .month-table td.closed time{color:#bf1c32}
.calendar-page .month-table td.closed span{display:inline-block;background:#c71e36;color:#fff;padding:3px 7px;border-radius:0;font-weight:800}
.calendar-page .month-table td.special{background:#fff7d8;border-top:4px solid #dbb735}
.calendar-page .month-table td.unknown{background:#f0f3f1;border-top:4px solid #89988e}
.calendar-page .month-table td.unknown time,.calendar-page .month-table td.unknown span{color:#536359}
.calendar-page .month-table td.today{outline:4px solid #ef8500;outline-offset:-4px;box-shadow:none}
.calendar-page .month-table td.today time:after{content:'今日';display:inline-block;margin-left:5px;padding:3px 5px;background:#00a88e;color:#123e35;border-radius:0;font-size:11px;vertical-align:middle}
.calendar-page .info-table{background:#fff;padding:10px 24px;border-top:2px solid #00a88e;box-shadow:none}
.calendar-page .info-table dt{color:#00a88e}
.calendar-page .button.dark{background:#00a88e;color:#123e35;border-bottom:2px solid #00a88e;font-weight:700}
@media(max-width:600px){
.calendar-page .page-title{padding-top:34px;padding-bottom:34px}
.calendar-page .page-title+.section{padding-left:4%;padding-right:4%}
.calendar-page .lead{font-size:17px}
.calendar-page #business-status{padding:14px;gap:8px}
.calendar-page .calendar-toolbar{padding:16px 10px;gap:6px}
.calendar-page .calendar-toolbar h2{font-size:24px;white-space:nowrap}
.calendar-page .calendar-toolbar button{font-size:12px;padding:9px 8px}
.calendar-page .calendar-legend{gap:7px;font-size:11px}
.calendar-page .calendar-legend>span{padding:5px 7px;border-left-width:3px}
.calendar-page .month-table td{height:96px;padding:9px 3px}
.calendar-page .month-table td time{font-size:21px}
.calendar-page .month-table td span{font-size:11px;line-height:1.5}
.calendar-page .month-table td.closed span{padding:3px}
.calendar-page .month-table td.today time:after{display:block;width:max-content;font-size:10px;margin:3px 0 0;padding:2px 4px}
.calendar-page .info-table{padding:8px 16px}
}

.calendar-page .lead,.calendar-page .info-table dt,.calendar-page .month-table caption,.calendar-page .month-table td.regular time,.calendar-page .month-table td.regular span,.calendar-page .calendar-legend>span:not(.closed):not(.special):not(.unknown){color:#245c51}

/* White lettering on the brand-green panels. */
.calendar-page .page-title h1{display:flex;align-items:center;gap:22px;color:#fff}
.calendar-page .calendar-title-icon{width:64px;height:64px;flex:none;color:#fff}
.calendar-page .page-title .eyebrow,.calendar-page .calendar-toolbar h2,.calendar-page .month-table th,.calendar-page .month-table td.today time:after,.calendar-page .button.dark{color:#fff}
.calendar-page .page-title .eyebrow:before{background:#fff}
.calendar-page .calendar-toolbar button{background:transparent;border-color:#ffffffb3;color:#fff}
.calendar-page .calendar-toolbar button:hover{background:#ffffff1f;border-color:#fff;color:#fff}
@media(max-width:600px){.calendar-page .page-title h1{gap:12px;font-size:clamp(22px,5.8vw,28px)}.calendar-page .calendar-title-icon{width:42px;height:42px}}

.event-calendar[hidden]{display:none}.event-calendar{margin-top:42px;padding-top:30px;border-top:2px solid #00a88e}.event-calendar h2{font-size:clamp(24px,3vw,34px);margin:12px 0}.event-calendar-month{font-size:16px;color:#526d63}.event-calendar figure{margin:22px auto 0;max-width:1000px}.event-calendar figure a{display:block}.event-calendar img{display:block;width:100%;height:auto;background:#fff}.event-calendar figcaption{font-size:14px;color:#526d63;text-align:center;padding-top:12px}@media(max-width:600px){.event-calendar{margin-top:30px;padding-top:22px}.event-calendar figcaption{font-size:12px}}

/* Keep desktop calendar content comfortably centered. */
@media(min-width:1024px){
 .calendar-page .page-title + .section{width:86%;max-width:1100px;margin-left:auto;margin-right:auto;padding-left:0;padding-right:0}
}

.event-calendar-jump[hidden]{display:none}
.event-calendar-jump{display:inline-flex;align-items:center;justify-content:center;gap:24px;margin:0 0 24px;padding:14px 22px;background:#00a88e;color:#fff;font-size:16px;font-weight:700;text-decoration:none;border:1px solid #00a88e}
.event-calendar-jump:hover{background:#008f79;border-color:#008f79}
.event-calendar{scroll-margin-top:110px}
@media(prefers-reduced-motion:no-preference){.calendar-page{scroll-behavior:smooth}html:has(.calendar-page){scroll-behavior:smooth}}
@media(max-width:600px){.event-calendar-jump{width:100%;font-size:15px;padding:13px 16px}}

/* Align the event shortcut with the calendar legend. */
.calendar-page .calendar-legend{align-items:center}
.calendar-page .calendar-legend .event-calendar-jump{margin:0 0 0 auto;padding:10px 16px;background:#fff0cb;border-color:#ebce88;color:#63430d;gap:18px;font-size:15px}
.calendar-page .calendar-legend .event-calendar-jump:hover{background:#ffe2a0;border-color:#ebce88}
@media(max-width:600px){.calendar-page .calendar-legend .event-calendar-jump{width:auto;font-size:14px;padding:10px 14px}}

/* Reserve enough space for the hours labels on desktop. */
@media(min-width:851px){
 .calendar-page .info-table>div{grid-template-columns:10em minmax(0,1fr);column-gap:24px}
 .calendar-page .info-table dt{white-space:nowrap}
}

/* Public notes for registered special business days and closures. */
.calendar-page .month-table .calendar-note{display:block;margin-top:8px;color:#465451;font-size:13px;font-weight:500;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:600px){.calendar-page .month-table .calendar-note{font-size:11px;margin-top:5px}}
