/* Readable labels: arbitrary category accents never determine text contrast. */
:root { --ec-label-ink: #23362e; --ec-label-paper: #f2f5f3; --ec-label-border: #cad5ce; }
:is(.ec-home,.ec-page,.ec-shop-page,.ec-site,.ec-article-page) :is(.ec-home-news__cat,.ec-shop-tag,.ec-shop-genre,.ec-shop-status,.ec-badge,.ec-area-badge,.ec-pr-label,.ec-spot-status,.ec-home-spot__genre,.ec-location-row-pill,.ec-location-event-label,.ec-sub-area-card-label),
.ec-site :is(.c-categoryList__link,.c-postThumb__cat) {
 background: var(--ec-label-paper);
 color: var(--ec-label-ink);
 border: 1px solid var(--ec-label-border);
 font-family: var(--ec-font-sans,-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic",Meiryo,sans-serif);
 font-size: .8125rem;
 font-weight: 700;
 line-height: 1.65;
 letter-spacing: .01em;
 text-shadow: none;
 opacity: 1;
}
:is(.ec-home,.ec-site) .ec-home-news__cat {
 display: inline-flex;
 align-items: center;
 padding: 3px 9px;
 border-left: 4px solid var(--ec-tile-accent,#607c6b);
 border-radius: 5px;
 background: #f2f5f3;
 color: #23362e;
}
/* Preserve category colours as accents, keeping the tile caption on opaque paper. */
.ec-home .ec-home-tile__body { background: #fff; color: #23362e; }
.ec-home .ec-home-tile__label { color: #23362e; text-shadow: none; font-weight: 700; }
.ec-home .ec-home-tile__meta { background: #f2f5f3; color: #344c40; border: 1px solid #cad5ce; font-size: .8125rem; line-height: 1.65; }
:is(.ec-home,.ec-page,.ec-shop-page,.ec-site,.ec-article-page) .ec-badge-upcoming { background: #edf4ff; color: #26486c; border-color: #bfd0e5; }
:is(.ec-home,.ec-page,.ec-shop-page,.ec-site,.ec-article-page) .ec-badge-ongoing { background: #e9f4ee; color: #24563d; border-color: #bbd5c5; }
:is(.ec-home,.ec-page,.ec-shop-page,.ec-site,.ec-article-page) .ec-badge-ended { background: #eef0f2; color: #4a5663; border-color: #cbd0d7; }
:is(.ec-home,.ec-page,.ec-shop-page,.ec-site,.ec-article-page) .ec-badge-cancelled { background: #fff0ed; color: #8b3023; border-color: #e7beb5; }
:is(.ec-home,.ec-page,.ec-shop-page,.ec-site,.ec-article-page) .ec-badge-partial { background: #fff5df; color: #704600; border-color: #decba0; }
:is(.ec-home,.ec-page,.ec-shop-page,.ec-site,.ec-article-page) .ec-area-badge { background: #edf4ff; color: #26486c; border-color: #bfd0e5; }
:is(.ec-home,.ec-page,.ec-shop-page,.ec-site,.ec-article-page) .ec-area-badge--primary { background: #e9f4ee; color: #24563d; border-color: #bbd5c5; }
:is(.ec-home,.ec-page,.ec-shop-page,.ec-site,.ec-article-page) .ec-pr-label { background: #fff5df; color: #704600; border-color: #decba0; }
.ec-shop-page :is(.ec-shop-status--closed,.ec-shop-status--temporarily_closed) { background: #fff0ed; color: #8b3023; border-color: #e7beb5; }
.ec-shop-page .ec-shop-card h3 { font-size: 1.125rem; line-height: 1.7; }
.ec-shop-page .ec-shop-card h3 a { color: #23362e; }
.ec-shop-page .ec-shop-card h3 a:hover { color: #185a45; text-decoration: underline; text-underline-offset: 4px; }
.ec-shop-page .ec-shop-facts > div { font-size: .875rem; line-height: 1.85; }
.ec-shop-page .ec-shop-facts dt { color: #46574e; }
.ec-shop-page .ec-shop-facts dd { color: #23362e; }
.ec-shop-page :is(.ec-shop-card__notice,.ec-shop-card__updated) { color: #46574e; font-size: .8125rem; line-height: 1.8; }
/* Selected states keep their own explicit foreground on hover and keyboard focus. */
.ec-home .ec-home-editorial__tab,
.ec-shop-page .ec-shop-tab,
.ec-page :is(.ec-area-scope-option,.ec-sub-area-link),
.ec-page .ec-week-quick-filter__buttons button {
 color: #23362e;
 background: #fff;
 border-color: #b9c9bf;
 line-height: 1.65;
 min-height: 44px;
}
.ec-home .ec-home-editorial__tab:hover,
.ec-shop-page .ec-shop-tab:hover,
.ec-page :is(.ec-area-scope-option,.ec-sub-area-link):hover,
.ec-page .ec-week-quick-filter__buttons button:hover {
 color: #23362e;
 background: #e8f1eb;
 border-color: #7c9a88;
}
.ec-home .ec-home-editorial__tab[aria-selected="true"],
.ec-home .ec-home-editorial__tab[aria-selected="true"]:hover,
.ec-shop-page .ec-shop-tab.is-active,
.ec-shop-page .ec-shop-tab.is-active:hover,
.ec-page .ec-area-scope-option.is-active,
.ec-page .ec-area-scope-option.is-active:hover,
.ec-page .ec-week-quick-filter__buttons button[aria-pressed="true"],
.ec-page .ec-week-quick-filter__buttons button[aria-pressed="true"]:hover {
 color: #fff;
 background: #23362e;
 border-color: #23362e;
}
.ec-shop-page .ec-shop-tab { color: #23362e !important; }
.ec-shop-page .ec-shop-tab.is-active { color: #fff !important; }
:is(.ec-home,.ec-page,.ec-shop-page,.ec-site,.ec-article-page) :is(.ec-home-editorial__tab,.ec-shop-tab,.ec-area-scope-option,.ec-week-quick-filter__buttons button):focus-visible {
 outline: 3px solid #145f7a;
 outline-offset: 3px;
}
@media (max-width:600px) { .ec-shop-page .ec-shop-card h3 { font-size: 1.0625rem; } }
:is(.ec-home,.ec-page,.ec-shop-page,.ec-site,.ec-article-page) :is(.ec-badge-alert,.ec-spot-status--temporarily_closed,.ec-spot-status--unverified) { background: #fff5df; color: #704600; border-color: #decba0; }
:is(.ec-home,.ec-page,.ec-shop-page,.ec-site,.ec-article-page) .ec-spot-status--open { background: #e9f4ee; color: #24563d; border-color: #bbd5c5; }
:is(.ec-home,.ec-page,.ec-shop-page,.ec-site,.ec-article-page) .ec-spot-status--closed { background: #fff0ed; color: #8b3023; border-color: #e7beb5; }
.ec-home .ec-home-popular__status { color: #46574e; font-size: .8125rem; line-height: 1.7; }
.ec-home .ec-home-hero__caption > span { display: inline-block; padding: 3px 8px; border: 1px solid #cad5ce; border-radius: 5px; background: #fff; color: #23362e; font-size: .8125rem; font-weight: 700; line-height: 1.65; }
.ec-page .ec-rank-badge { background: #23362e; color: #fff; }
.ec-page .ec-rank-badge--1 { background: #fff0bf; color: #614100; }
.ec-page .ec-rank-badge--2 { background: #eef0f2; color: #344653; }
.ec-page .ec-rank-badge--3 { background: #f6e9df; color: #704125; }

:is(.ec-home,.ec-page,.ec-shop-page,.ec-site,.ec-article-page) .ec-card-conditions li { background: #f2f5f3; color: #23362e; border: 1px solid #cad5ce; font-family: var(--ec-font-sans,sans-serif); font-size: .8125rem; font-weight: 700; line-height: 1.65; letter-spacing: .01em; text-shadow: none; opacity: 1; }
