/* Shared typography for plugin surfaces. Uses installed fonts; no web-font request. */
:root {
 --ec-font-sans: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic", YuGothic, Meiryo, sans-serif;
 --ec-font-display: var(--ec-font-sans);
 --ec-font-body: var(--ec-font-sans);
 --ec-type-body: 1rem;
 --ec-type-title: clamp(1.75rem, 1.4rem + 1.4vw, 2.5rem);
 --ec-type-section: clamp(1.25rem, 1.1rem + .6vw, 1.625rem);
 --ec-type-subheading: 1.125rem;
 --ec-type-card: 1.0625rem;
 --ec-type-ui: .875rem;
 --ec-type-meta: .8125rem;
 --ec-type-small: .75rem;
 --ec-weight-body: 400;
 --ec-weight-heading: 700;
 --ec-leading-body: 1.85;
 --ec-leading-heading: 1.5;
 --ec-leading-ui: 1.6;
}
:is(.ec-site, .ec-page, .ec-shop-page, .ec-home, body.single-post) {
 --ec-font-display: var(--ec-font-sans);
 --ec-font-body: var(--ec-font-sans);
 font-family: var(--ec-font-body);
 font-weight: var(--ec-weight-body);
 line-height: var(--ec-leading-body);
}
:is(.ec-page, .ec-shop-page, .ec-home, body.single-post .post_content) {
 font-size: var(--ec-type-body);
}
/* Only textual elements are selected: icon glyphs, SVG and code keep their fonts. */
:is(.ec-site, .ec-page, .ec-shop-page, .ec-home, body.single-post) :is(h1,h2,h3,h4,h5,h6,[role="heading"]) {
 font-family: var(--ec-font-sans);
 font-weight: var(--ec-weight-heading);
 line-height: var(--ec-leading-heading);
 letter-spacing: .015em;
 overflow-wrap: anywhere;
}
:is(.ec-page, .ec-shop-page) h1,
.ec-home .ec-home-hero__title,
body.single-post .c-postTitle,
body.single-post .c-postTitle__ttl {
 font-family: var(--ec-font-sans);
 font-size: var(--ec-type-title);
 font-weight: var(--ec-weight-heading);
 line-height: var(--ec-leading-heading);
 letter-spacing: .015em;
 overflow-wrap: anywhere;
}
:is(.ec-page, .ec-shop-page) :is(h2,[aria-level="2"]),
.ec-home :is(.ec-home-section-title,.ec-section-title),
body.single-post .post_content h2 {
 font-size: var(--ec-type-section);
}
:is(.ec-page, .ec-shop-page) :is(h3,[aria-level="3"]),
body.single-post .post_content h3 {
 font-size: var(--ec-type-subheading);
}
:is(.ec-page, .ec-home) :is(.ec-card-title,.ec-ranking-title,.ec-home-card__title),
.ec-shop-page .ec-shop-card h3,
body.single-post :is(.ec-inline-picks__title,.ec-event-discovery-item-title,.ec-discovery-event-title,.ec-internal-link-card__title) {
 font-family: var(--ec-font-sans);
 font-size: var(--ec-type-card);
 font-weight: var(--ec-weight-heading);
 line-height: 1.65;
 letter-spacing: .01em;
 overflow-wrap: anywhere;
}
:is(.ec-site, .ec-page, .ec-shop-page, .ec-home, body.single-post) :is(input,select,textarea,button) {
 font-family: var(--ec-font-sans);
}
:is(.ec-page, .ec-shop-page, .ec-home) :is(.ec-button,.ec-nav-link,.ec-shop-tab,.ec-shop-card__toggle,.ec-shop-card__more,.ec-home-editorial__tab),
.ec-week-quick-filter__buttons button,
.ec-event-search-form :is(input,select,button),
.ec-directory-map-disclosure > summary {
 font-size: var(--ec-type-ui);
 font-weight: var(--ec-weight-heading);
 line-height: var(--ec-leading-ui);
 letter-spacing: .01em;
}
:is(.ec-page, .ec-shop-page, .ec-home) :is(.ec-page-intro,.ec-shop-intro,.ec-card-teaser,.ec-card-excerpt,.ec-home-editorial__description),
body.single-post .post_content {
 line-height: var(--ec-leading-body);
}
:is(.ec-page, .ec-shop-page, .ec-home) :is(.ec-page-kicker,.ec-card-date,.ec-card-location,.ec-card-price,.ec-card-views,.ec-results-count,.ec-shop-count,.ec-shop-facts,.ec-shop-card__notice,.ec-directory-map-note,.ec-week-filter-note,.ec-home-editorial__hint,.ec-home-hero__regions,.ec-home-hero__date,.ec-home-quick__label,.ec-home-quick__count),
body.single-post :is(.ec-inline-picks__date,.ec-inline-picks__place,.ec-event-discovery-item-meta,.ec-internal-link-card__context) {
 font-size: var(--ec-type-meta);
 line-height: 1.7;
 letter-spacing: .01em;
}
:is(.ec-page, .ec-shop-page, .ec-home) :is(.ec-badge,.ec-area-badge,.ec-shop-tag,.ec-shop-genre,.ec-shop-status,.ec-shop-card__updated,.ec-card-conditions li) {
 font-family: var(--ec-font-sans);
 font-size: var(--ec-type-small);
 line-height: var(--ec-leading-ui);
 letter-spacing: .01em;
}
/* Keep counters aligned while retaining a familiar body typeface. */
:is(.ec-page, .ec-shop-page, .ec-home) :is(.ec-overview-stat dd,.ec-shop-card__views,.ec-ranking-number,.ec-home-quick__count strong) {
 font-family: var(--ec-font-sans);
 font-weight: var(--ec-weight-heading);
 font-variant-numeric: tabular-nums;
}
@media (max-width: 600px) {
 :is(.ec-page, .ec-shop-page, .ec-home, body.single-post) {
  --ec-type-title: 1.75rem;
  --ec-type-section: 1.25rem;
  --ec-type-card: 1rem;
 }
}
/* Match stronger home variants without changing their layout or icon typography. */
.ec-home .ec-home-hero--with-photos .ec-home-hero__title { font-size: var(--ec-type-title); font-weight: var(--ec-weight-heading); line-height: var(--ec-leading-heading); letter-spacing: .015em; }
.ec-home :is(.ec-home-event__title,.ec-home-popular__title,.ec-home-sidebar__title,.ec-home-editorial__label) { font-family: var(--ec-font-sans); font-weight: var(--ec-weight-heading); line-height: 1.65; letter-spacing: .01em; }
.ec-home :is(.ec-home-event__title,.ec-home-popular__title,.ec-home-sidebar__title) { font-size: var(--ec-type-ui); }
.ec-home .ec-home-feature__title { font-family: var(--ec-font-sans); font-size: var(--ec-type-section); font-weight: var(--ec-weight-heading); line-height: var(--ec-leading-heading); letter-spacing: .015em; }
.ec-future-weeks :is(.ec-future-weeks__week > span,.ec-future-weeks__adjacent a) { font-family: var(--ec-font-sans); font-weight: var(--ec-weight-heading); line-height: var(--ec-leading-ui); }
.ec-future-weeks :is(.ec-future-weeks__week time,.ec-future-weeks__heading > span),
:is(.ec-page,.ec-shop-page,.ec-home) .ec-listing-views { font-family: var(--ec-font-sans); font-size: var(--ec-type-small); line-height: var(--ec-leading-ui); }
