/* The DeForest Windsor Hub component styles. Palette: river blue, barn red, sky; no school purple or gold. Values lifted from the Design canvas mockups
   (Main, Listing, Event artboards). Tokens come from theme.json as CSS vars. */

:root {
	--wh-ink: var(--wp--preset--color--ink, #1B2B34);
	--wh-body: var(--wp--preset--color--body, #30414A);
	--wh-muted: var(--wp--preset--color--muted, #4A5B63);
	--wh-link: var(--wp--preset--color--link, #1D5F80);
	--wh-link-dark: var(--wp--preset--color--link-dark, #134661);
	--wh-marigold: var(--wp--preset--color--marigold, #B5432F);
	--wh-marigold-ink: var(--wp--preset--color--marigold-ink, #8C2F1F);
	--wh-marigold-tint: var(--wp--preset--color--marigold-tint, #F9E7E2);
	--wh-rule: var(--wp--preset--color--rule, #E1E7EA);
	--wh-panel: var(--wp--preset--color--panel, #F3F6F8);
	--wh-chip: var(--wp--preset--color--chip, #C5D1D7);
	--wh-mint: var(--wp--preset--color--mint, #A8D4E8);
	--wh-on-dark: var(--wp--preset--color--on-dark, #D5E2E9);
	--wh-serif: var(--wp--preset--font-family--heading, Bitter, Georgia, serif);
	--wh-sans: var(--wp--preset--font-family--body, Figtree, system-ui, sans-serif);
	--wh-gutter: clamp(16px, 3.5vw, 48px);
	--wh-radius: 10px;
}

body.wh { font-family: var(--wh-sans); color: var(--wh-ink); background: #fff; -webkit-font-smoothing: antialiased; }
body.wh a { color: var(--wh-link); }
body.wh a:hover { color: var(--wh-link-dark); }
.wh h1, .wh h2, .wh h3, .wh .wh-h1, .wh .wh-h2, .wh .wh-h3 { font-family: var(--wh-serif); font-weight: 500; letter-spacing: -0.01em; margin: 0; }
.wh .wh-h1 { font-size: clamp(30px, 4vw, 44px); line-height: 1.1; }
.wh .wh-h2 { font-size: clamp(24px, 2.6vw, 30px); line-height: 1.15; }
.wh .wh-h3 { font-size: 22px; line-height: 1.2; }
.wh .wh-sub { margin: 6px 0 0; font-size: 15px; color: var(--wh-muted); }
.wh .wh-empty { color: var(--wh-muted); font-size: 16px; padding: 24px 0; }

/* ----- Accessibility ----- */
.wh :focus-visible { outline: 3px solid var(--wh-link); outline-offset: 2px; border-radius: 4px; }
.wh .wh-panel--dark :focus-visible { outline-color: var(--wh-mint); }
.wh .wh-skip { position: absolute; left: -9999px; top: 8px; z-index: 1000; background: var(--wh-ink); color: #fff; padding: 12px 16px; border-radius: 6px; font-weight: 600; text-decoration: none; }
.wh .wh-skip:focus { left: 16px; }
.wh .wh-visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.wh fieldset.wh-toggles { border: 0; padding: 0; margin: 0; min-width: 0; }
.wh form:has(> fieldset.wh-toggles) { display: contents; }
.wh fieldset.wh-toggles > p { display: contents; }
.wh fieldset.wh-toggles > br { display: none; }
@media (prefers-reduced-motion: reduce) { .wh * { transition: none !important; animation: none !important; } }

/* ----- Layout shells ----- */
.wh .wh-header, .wh .wh-footer, .wh .wh-main { max-width: 1360px; margin-left: auto; margin-right: auto; }
.wh .wh-main { padding: 0 var(--wh-gutter) 48px; }
.wh .wh-main > * + * { margin-top: 0; }
.wh .wh-split { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 48px; padding-top: 20px; }
.wh .wh-split__main, .wh .wh-split__side { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.wh .wh-split__side { gap: 20px; }
.wh .wh-split__main > *, .wh .wh-split__side > * { margin: 0; }
@media (max-width: 900px) { .wh .wh-split { grid-template-columns: minmax(0, 1fr); gap: 32px; } }

/* ----- Header ----- */
.wh .wh-header { border-bottom: 1px solid var(--wh-rule); }
.wh .wh-header__inner { padding: 20px var(--wh-gutter); gap: 16px 32px; align-items: center; }
.wh .wh-header__brand a, .wh .wh-header__brand { font-family: var(--wh-serif); font-size: 26px; font-weight: 700; letter-spacing: -0.01em; color: var(--wh-ink); text-decoration: none; }
/* Brand mark: the river through both villages and the hub where they meet. Decorative; the site name is the text. */
.wh .wh-header__brand a { display: inline-flex; align-items: center; gap: 10px; font-size: 24px; line-height: 1.1; }
.wh .wh-header__brand a::before { content: ""; flex: 0 0 auto; width: 36px; height: 36px; background: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'><rect width='32' height='32' rx='7' fill='%231D5F80'/><path d='M4 20c4-4 8 4 12 0s8 4 12 0' fill='none' stroke='%23fff' stroke-width='2.6' stroke-linecap='round'/><circle cx='16' cy='11' r='4.2' fill='%23B5432F' stroke='%23fff' stroke-width='1.6'/></svg>") center / contain no-repeat; }
@media (max-width: 520px) { .wh .wh-header__brand a { font-size: 20px; } .wh .wh-header__brand a::before { width: 30px; height: 30px; } }

.wh .wh-header__nav { font-size: 16px; font-weight: 600; }
.wh .wh-header__nav .wp-block-navigation__container { gap: 8px 28px; }
.wh .wh-header__nav a { color: var(--wh-ink); text-decoration: none; }
.wh .wh-header__nav a:hover { color: var(--wh-link); }
.wh .wh-header__cta .wp-block-button__link { background: var(--wh-link); color: #fff; font-weight: 600; font-size: 15px; padding: 12px 18px; border-radius: 6px; text-decoration: none; }
.wh .wh-header__cta .wp-block-button__link:hover { background: var(--wh-link-dark); }
@media (max-width: 700px) { .wh .wh-header__cta { display: none; } }

/* ----- Footer ----- */
.wh .wh-footer { border-top: 1px solid var(--wh-rule); margin-top: 8px; }
.wh .wh-footer__inner { padding: 28px var(--wh-gutter) 40px; gap: 16px 32px; font-size: 14px; color: var(--wh-muted); }
.wh .wh-footer__inner p { margin: 0; font-size: 14px; }
.wh .wh-footer__links a { margin-right: 20px; }
.wh .wh-footer__links a:last-child { margin-right: 0; }

/* ----- Breadcrumb, kickers, chips ----- */
.wh .wh-crumbs { padding: 20px 0 0; font-size: 14px; color: var(--wh-muted); }
.wh .wh-kickers { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.wh .wh-kicker { display: inline-block; font-size: 12px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; text-decoration: none; line-height: 1.3; }
.wh .wh-kicker--muted { color: var(--wh-muted); }
.wh .wh-kicker--link { color: var(--wh-link); }
.wh .wh-kicker--mint { color: var(--wh-mint); }
.wh .wh-kicker--featured { color: var(--wh-marigold-ink); background: var(--wh-marigold-tint); padding: 4px 10px; border-radius: 4px; }
.wh .wh-chips { display: flex; flex-wrap: wrap; gap: 8px; font-size: 14px; font-weight: 600; }
.wh .wh-chip { border: 1px solid var(--wh-chip); border-radius: 999px; padding: 8px 14px; color: var(--wh-ink); text-decoration: none; background: #fff; }
.wh a.wh-chip { min-height: 44px; display: inline-flex; align-items: center; }
a.wh-chip:hover { border-color: var(--wh-link); color: var(--wh-link); }
.wh .wh-chips--small { gap: 6px; font-size: 13px; }
.wh .wh-chips--small .wh-chip { padding: 5px 10px; }

/* ----- Article column ----- */
.wh .wh-article .wh-lede, .wh .wh-article .wp-block-post-content { font-size: 18px; line-height: 1.6; color: var(--wh-body); }
.wh .wh-article .wp-block-post-content > * { margin: 0 0 1em; max-width: none; }
.wh .wh-article .wp-block-post-content > :last-child { margin-bottom: 0; }
.wh .wh-article .wp-block-post-title { margin: 0; }
.wh .wh-photo { margin: 0; }
.wh .wh-photo img { width: 100%; height: 260px; object-fit: cover; border-radius: var(--wh-radius); display: block; }
.wh .wh-event__image img { border-radius: var(--wh-radius); }
.wh .wh-event__image:empty { display: none; }

/* When / Where / Cost strip */
.wh .wh-meta { display: flex; flex-wrap: wrap; gap: 12px 36px; font-size: 17px; color: var(--wh-body); padding: 18px 0; border-top: 1px solid var(--wh-rule); border-bottom: 1px solid var(--wh-rule); }
.wh .wh-meta__label { display: block; font-size: 12px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--wh-muted); margin-bottom: 4px; }
.wh .wh-meta a { font-weight: 600; }

/* Buttons */
.wh .wh-actions { display: flex; flex-wrap: wrap; gap: 10px; padding-top: 8px; }
.wh .wh-button { display: inline-flex; align-items: center; border-radius: 6px; padding: 12px 16px; font-weight: 600; font-size: 15px; text-decoration: none; min-height: 44px; box-sizing: border-box; background: var(--wh-link); color: #fff; }
.wh .wh-button:hover { background: var(--wh-link-dark); color: #fff; }
.wh .wh-button--ghost { background: transparent; border: 1px solid var(--wh-chip); color: var(--wh-ink); }
.wh .wh-button--ghost:hover { background: var(--wh-panel); color: var(--wh-ink); }

/* Rows (compact event lines) */
.wh .wh-rows { display: flex; flex-direction: column; }
.wh .wh-rows--2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 40px; border-top: 1px solid var(--wh-rule); }
.wh .wh-rows:not(.wh-rows--2) .wh-row:first-child { border-top: 1px solid var(--wh-rule); }
.wh .wh-rows:not(.wh-rows--2) .wh-row:last-child { border-bottom: 1px solid var(--wh-rule); }
.wh .wh-row { display: flex; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--wh-rule); text-decoration: none; color: var(--wh-ink); }
.wh .wh-rows--2 .wh-row { padding: 16px 0; }
.wh .wh-row:hover strong { color: var(--wh-link); }
.wh .wh-row__when { min-width: 118px; flex: 0 0 118px; font-size: 14px; font-weight: 600; color: var(--wh-muted); line-height: 1.4; padding-top: 2px; }
.wh .wh-row__body { font-size: 16px; line-height: 1.4; }
.wh .wh-row__body strong { font-weight: 600; }
.wh .wh-row__sub { font-size: 14px; color: var(--wh-muted); }
@media (max-width: 700px) { .wh .wh-rows--2 { grid-template-columns: minmax(0, 1fr); } .wh .wh-row { gap: 12px; } .wh .wh-row__when { min-width: 96px; flex-basis: 96px; } }

/* Section links */
.wh .wh-more { font-weight: 600; font-size: 15px; text-decoration: underline; }
.wh .wh-more-link { padding: 18px 0 8px; margin: 0; font-weight: 600; font-size: 16px; }
.wh .wh-coming .wh-more-link { padding-top: 14px; font-size: 15px; }

/* ----- Panels (sidebar cards) ----- */
.wh .wh-panel { border: 1px solid var(--wh-rule); border-radius: var(--wh-radius); padding: 22px; display: flex; flex-direction: column; gap: 10px; background: #fff; }
.wh .wh-panel p { margin: 0; font-size: 15px; line-height: 1.5; color: var(--wh-body); }
.wh .wh-panel--tint { background: var(--wh-panel); }
.wh .wh-panel--tint .wh-chip { background: #fff; }
.wh .wh-panel--dark { background: var(--wh-ink); color: #fff; padding: 28px; gap: 12px; border-color: var(--wh-ink); }
.wh .wh-panel--dark p { color: var(--wh-on-dark); }
.wh .wh-panel--dark .wh-h2 { color: #fff; font-size: 28px; }
.wh .wh-panel--dark a { color: var(--wh-mint); }
.wh .wh-hostcard__name { font-family: var(--wh-sans); font-size: 20px; font-weight: 600; line-height: 1.3; letter-spacing: 0; }
.wh .wh-hostcard__name a { color: var(--wh-ink); text-decoration: none; }
.wh .wh-hostcard__name a:hover { color: var(--wh-link); }
.wh .wh-nearby__item { font-weight: 600; font-size: 15px; color: var(--wh-ink); text-decoration: none; }
.wh .wh-nearby__item:hover { color: var(--wh-link); }
.wh .wh-map { border-radius: 8px; overflow: hidden; min-height: 160px; background: var(--wh-rule); }
.wh .wh-map .geodir-map-wrap, .wh .wh-map .leaflet-container { height: 160px !important; border-radius: 8px; }
.wh .wh-dirpanel .wh-h2 { font-size: 24px; }
.wh .wh-dirpanel .wh-chips { font-size: 14px; }
.wh .wh-season .wh-h3 { font-size: 22px; }

/* Newsletter form */
.wh .wh-subscribe { display: flex; flex-direction: column; gap: 10px; margin-top: 6px; }
.wh .wh-subscribe label { font-size: 14px; font-weight: 600; }
.wh .wh-subscribe input[type="email"] { font: inherit; font-size: 16px; padding: 12px 14px; border-radius: 6px; border: 1px solid var(--wh-muted); background: #fff; color: var(--wh-ink); min-height: 44px; }
.wh .wh-subscribe button { font: inherit; font-weight: 600; font-size: 16px; background: var(--wh-mint); color: var(--wh-ink); border: 0; border-radius: 6px; padding: 12px 16px; min-height: 44px; cursor: pointer; }
.wh .wh-subscribe button:hover { filter: brightness(1.05); }
.wh .wh-hp { position: absolute; left: -9999px; }
.wh .wh-notice { color: var(--wh-mint); font-weight: 600; }

/* ----- Homepage: this week ----- */
.wh .wh-week { padding: 48px 0 24px; }
.wh .wh-week__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px 32px; margin-bottom: 24px; }
.wh .wh-week__head p { margin: 8px 0 0; font-size: 17px; }
.wh .wh-toggles { display: flex; flex-wrap: wrap; gap: 10px; font-size: 14px; font-weight: 600; margin: 0; }
.wh .wh-toggle { display: flex; align-items: center; gap: 8px; border: 1px solid var(--wh-chip); border-radius: 999px; padding: 10px 16px; min-height: 44px; box-sizing: border-box; cursor: pointer; background: #fff; }
.wh .wh-toggle input { margin: 0; width: 18px; height: 18px; accent-color: var(--wh-link); }
.wh .wh-toggle:has(input:checked) { border-color: var(--wh-link); background: var(--wh-panel); }
.wh .wh-toggles__apply { position: absolute; left: -9999px; }
.wh .wh-toggles__apply:focus { position: static; border: 1px solid var(--wh-chip); background: #fff; border-radius: 999px; padding: 10px 16px; font: inherit; font-weight: 600; }
.wh .wh-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
@media (max-width: 1000px) { .wh .wh-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .wh .wh-grid--3 { grid-template-columns: minmax(0, 1fr); } }
.wh .wh-week .wh-rows--2 { margin-top: 28px; }
.wh .wh-calbar { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; padding: 16px 0 8px; }

.wh .wh-catchips { margin: 0 0 12px; }
.wh .wh-audchips { margin: 0 0 20px; align-items: center; }
.wh .wh-audchips .wh-chip { padding: 5px 12px; font-size: 13px; }
.wh .wh-audchips a.wh-chip { min-height: 36px; }
.wh .wh-chips__label { color: var(--wh-muted); font-weight: 600; font-size: 13px; margin-right: 2px; }
.wh .wh-catchips .wh-chip.is-current, .wh .wh-audchips .wh-chip.is-current { background: var(--wh-ink); color: #fff; border-color: var(--wh-ink); }
.wh .wh-overflow { margin: 12px 0 0; font-size: 15px; color: var(--wh-muted); }
.wh .wh-overflow a { color: var(--wh-link); font-weight: 600; }
.wh .wh-calbar + .wh-catchips { margin-top: 16px; }

/* Cards */
.wh .wh-card { border: 1px solid var(--wh-rule); border-radius: var(--wh-radius); padding: 22px; display: flex; flex-direction: column; gap: 10px; background: #fff; box-sizing: border-box; text-decoration: none; color: var(--wh-ink); }
.wh .wh-card--panel { background: var(--wh-panel); }
.wh .wh-card__top { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.wh .wh-card__when, .wh .wh-card__village { font-size: 13px; color: var(--wh-muted); font-weight: 600; text-align: right; }
.wh .wh-card__title { font-family: var(--wh-serif); font-size: 22px; font-weight: 700; line-height: 1.2; letter-spacing: -0.005em; }
.wh .wh-card__title a { color: var(--wh-ink); text-decoration: none; }
.wh .wh-card__title a:hover, .wh a.wh-card:hover .wh-card__title { color: var(--wh-link); }
.wh .wh-card__text { margin: 0; font-size: 15px; line-height: 1.5; color: var(--wh-body); }
.wh .wh-byline { font-size: 14px; color: var(--wh-muted); margin-top: auto; }
.wh .wh-byline a { font-weight: 600; }
.wh .wh-card__media { display: block; height: 150px; border-radius: 8px; overflow: hidden; background: var(--wh-rule); }
.wh .wh-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.wh .wh-card--listing { padding: 20px; gap: 12px; }
.wh .wh-card--listing > * { display: block; }
.wh .wh-card--listing .wh-card__top, .wh .wh-card--listing .wh-chips { display: flex; }
.wh .wh-article .wh-lede p { margin: 0 0 1em; } .wh .wh-article .wh-lede p:last-child { margin-bottom: 0; }
.wh .wh-card--listing .wh-card__title { font-size: 22px; }

/* Featured businesses band */
.wh .wh-band { margin: 16px 0 8px; padding: 32px 36px; background: var(--wh-panel); border-radius: 12px; }
.wh .wh-band__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px 32px; margin-bottom: 20px; }
.wh .wh-band .wh-card { background: #fff; }
@media (max-width: 640px) { .wh .wh-band { padding: 24px 20px; } }

/* Feed */
.wh .wh-home .wh-split { padding: 24px 0 0; }
.wh .wh-feed .wh-sub { margin-bottom: 20px; }
.wh .wh-feed__list { display: flex; flex-direction: column; gap: 14px; }
.wh .wh-feeditem { display: flex; gap: 18px; border: 1px solid var(--wh-rule); border-radius: var(--wh-radius); padding: 18px 20px; align-items: flex-start; }
.wh .wh-feeditem__type { flex: 0 0 76px; min-width: 76px; text-align: center; font-size: 12px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; padding: 6px 0; border-radius: 4px; background: var(--wh-rule); color: var(--wh-ink); }
.wh .wh-feeditem--business .wh-feeditem__type { background: var(--wh-link); color: #fff; }
.wh .wh-feeditem--issue .wh-feeditem__type { background: var(--wh-ink); color: #fff; }
.wh .wh-feeditem--notice .wh-feeditem__type, .wh .wh-feeditem--sale .wh-feeditem__type { background: var(--wh-marigold-tint); color: var(--wh-marigold-ink); }
.wh .wh-feeditem--update .wh-feeditem__type { background: var(--wh-mint); color: var(--wh-ink); }
.wh .wh-feeditem__body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.wh .wh-feeditem__body h3 { font-family: var(--wh-sans); font-size: 18px; font-weight: 600; line-height: 1.3; letter-spacing: 0; }
.wh .wh-feeditem__body h3 a { color: var(--wh-ink); text-decoration: none; }
.wh .wh-feeditem__body h3 a:hover { color: var(--wh-link); }
.wh .wh-feeditem__body p { margin: 0; font-size: 15px; color: var(--wh-body); line-height: 1.5; }
.wh .wh-feeditem__meta { font-size: 13px; color: var(--wh-muted); }
@media (max-width: 500px) { .wh .wh-feeditem { flex-direction: column; gap: 10px; } .wh .wh-feeditem__type { flex-basis: auto; align-self: flex-start; padding: 6px 10px; } }

/* ----- Directory archive ----- */
.wh .wh-directory .wh-h1 { margin-top: 20px; }
.wh .wh-dirbar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; padding: 20px 0; }
.wh .wh-grid--listings { margin-top: 4px; }
.wh .wh-catevents { padding: 24px 0 8px; }
.wh .wh-catevents .wh-h2 { margin-bottom: 14px; }
.wh .wh-pagination { display: flex; gap: 8px; padding: 24px 0 0; font-weight: 600; }
.wh .wh-pagination .page-numbers { border: 1px solid var(--wh-chip); border-radius: 6px; padding: 8px 12px; text-decoration: none; color: var(--wh-ink); }
.wh .wh-pagination .page-numbers.current { background: var(--wh-ink); color: #fff; border-color: var(--wh-ink); }

/* ----- Related and coming-up sections ----- */
.wh .wh-related { margin-top: 20px; padding-top: 24px; border-top: 1px solid var(--wh-rule); }
.wh .wh-related .wh-h2, .wh .wh-coming .wh-h2 { font-size: 26px; margin-bottom: 14px; }
.wh .wh-coming { padding-top: 8px; }
.wh .wh-coming .wh-h2 { margin-bottom: 6px; }
.wh .wh-coming .wh-sub { margin: 0 0 10px; }

/* ----- Newsletter archive ----- */
.wh .wh-issues__items { display: flex; flex-direction: column; gap: 0; list-style: none; padding: 0; margin: 20px 0 0; }
.wh .wh-issue { padding: 20px 0; border-top: 1px solid var(--wh-rule); display: flex; flex-direction: column; gap: 8px; }
.wh .wh-issue:last-child { border-bottom: 1px solid var(--wh-rule); }
.wh .wh-issue .wh-h3 a { color: var(--wh-ink); text-decoration: none; }
.wh .wh-issue .wh-h3 a:hover { color: var(--wh-link); }
.wh .wh-issue p { margin: 0; font-size: 16px; color: var(--wh-body); line-height: 1.5; }
.wh .wh-issue .wp-block-post-date { font-size: 12px; }

/* ----- The Events Calendar views (list, month) ----- */
.wh .tribe-common { font-family: var(--wh-sans) !important; color: var(--wh-ink); }
.wh .tribe-common .tribe-common-h1, .wh .tribe-common .tribe-common-h2, .wh .tribe-common .tribe-common-h3, .wh .tribe-common .tribe-common-h4, .wh .tribe-common .tribe-common-h5, .wh .tribe-common .tribe-common-h6, .wh .tribe-common .tribe-common-h7, .wh .tribe-common .tribe-common-h8 { font-family: var(--wh-sans) !important; color: var(--wh-ink); }
.wh .tribe-events .tribe-events-calendar-list__event-title, .wh .tribe-events .tribe-events-calendar-month__calendar-event-title, .wh .tribe-events .tribe-events-calendar-month-mobile-events__mobile-event-title { font-family: var(--wh-serif) !important; font-weight: 600; letter-spacing: -0.005em; }
.wh .tribe-events .tribe-events-calendar-list__event-title a, .wh .tribe-events .tribe-events-calendar-month__calendar-event-title a { color: var(--wh-ink) !important; }
.wh .tribe-events .tribe-events-calendar-list__event-title a:hover { color: var(--wh-link) !important; }
.wh .tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list__event-datetime-wrapper, .wh .tribe-common .tribe-events-calendar-list__event-datetime { color: var(--wh-muted); font-weight: 600; }
.wh .tribe-events .tribe-events-c-top-bar__datepicker-button, .wh .tribe-events .tribe-events-c-view-selector__button, .wh .tribe-common .tribe-common-c-btn-border, .wh .tribe-common .tribe-events-c-nav__prev, .wh .tribe-common .tribe-events-c-nav__next, .wh .tribe-common .tribe-events-c-nav__today { color: var(--wh-ink) !important; font-weight: 600; }
.wh .tribe-common .tribe-common-c-btn, .wh .tribe-common .tribe-common-c-btn-border { border-color: var(--wh-chip) !important; border-radius: 6px !important; }
.wh .tribe-common .tribe-common-c-btn { background: var(--wh-link) !important; }
.wh .tribe-events .tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date-daynum, .wh .tribe-events .tribe-events-calendar-month__day-cell--selected { color: var(--wh-link) !important; }
.wh .tribe-events .tribe-events-calendar-month__multiday-event-bar-inner, .wh .tribe-events .tribe-events-calendar-month__mobile-events-icon--event { background: var(--wh-link) !important; }
.wh .tribe-events .tribe-events-c-ical, .wh .tribe-events .tribe-events-c-subscribe-dropdown__container { display: none !important; }
.wh .tribe-events .tribe-events-calendar-list__event-cost, .wh .tribe-events .tribe-events-calendar-list__event-venue { color: var(--wh-muted); }
.wh .tribe-events .tribe-events-calendar-list__event-featured-image-wrapper { border-radius: var(--wh-radius); overflow: hidden; }
.wh .tribe-events .tribe-events-calendar-list__event-row + .tribe-events-calendar-list__event-row, .wh .tribe-events .tribe-events-calendar-list__month-separator { border-color: var(--wh-rule) !important; }
.wh .tribe-events .tribe-events-c-search__input-control-icon-svg path, .wh .tribe-events .tribe-events-c-top-bar__nav-list-item svg path { fill: var(--wh-ink); }
.wh .tribe-events .tribe-events-c-search__button { background: var(--wh-link) !important; }
.wh .tribe-events .tribe-events-calendar-list__event-featured .tribe-events-calendar-list__event-datetime-featured-text, .wh .tribe-events .tribe-events-calendar-list__event-datetime-featured-text { color: var(--wh-marigold-ink) !important; }
.wh .tribe-events .tribe-events-c-top-bar__datepicker-time, .wh .tribe-events .tribe-events-c-top-bar__datepicker-button { font-family: var(--wh-serif) !important; font-weight: 600; }
.wh .wh-calendar .tribe-common { margin-top: 8px; }
.wh .wh-calhead .wh-h1 { margin-top: 20px; }
.wh .tribe-events .tribe-events-calendar-month__day-date-daynum, .wh .tribe-events .tribe-events-calendar-month__day-date-link { color: var(--wh-ink) !important; }
.wh .tribe-events .tribe-events-calendar-month__day--past .tribe-events-calendar-month__day-date-daynum, .wh .tribe-events .tribe-common-h--alt .tribe-events-calendar-month__day-date-daynum { color: var(--wh-muted) !important; }
.wh .tribe-events .tribe-events-calendar-month__day--past, .wh .tribe-events .tribe-events-calendar-month__day--past .tribe-events-calendar-month__day-date, .wh .tribe-events .tribe-events-calendar-month__day-date-daynum { opacity: 1 !important; }
/* Mobile month view: the current day sits on a filled circle; keep the number readable on it. */
.wh .tribe-events .tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date-daynum, .wh .tribe-events .tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date-link { background: var(--wh-link) !important; color: #fff !important; border-radius: 50%; }
.wh .tribe-events .tribe-events-calendar-month__day-cell--selected .tribe-events-calendar-month__day-date-daynum { background: var(--wh-ink) !important; color: #fff !important; }
.wh .tribe-events .tribe-events-calendar-month__multiday-event-bar-title, .wh .tribe-events .tribe-events-calendar-month__multiday-event-bar-title-link { color: #fff !important; }
.wh .tribe-events .tribe-events-calendar-month__multiday-event-bar-inner { background: var(--wh-link-dark) !important; }
.wh .wh-calendar .tribe-events-view, .wh .wh-calendar .tribe-events-header { margin-top: 0 !important; padding-top: 0 !important; }
.wh .wh-calendar .tribe-events .tribe-events-l-container { padding-top: 12px !important; }

/* ----- GeoDirectory bits inside our templates ----- */
.wh .wh-listing .geodir-page-title, .wh .wh-listing .geodir-post-meta-container { display: none; }
.wh .wh-article .wp-block-post-content .geodir-post-meta-container { display: none; }

/* ----- Phone ----- */
@media (max-width: 600px) {
	.wh .wh-week { padding: 28px 0 16px; }
	.wh .wh-card { padding: 18px; }
	.wh .wh-panel { padding: 18px; }
	.wh .wh-meta { gap: 12px 24px; font-size: 16px; }
	.wh .wh-card__top { align-items: flex-start; }
}

/* 0.2.3: second header button, public forms (add an event, claim a listing) */
.wh .wh-header__cta { gap: 10px; }
.wh .wh-header__cta .wh-btn-secondary .wp-block-button__link { background: #fff; color: var(--wh-link); border: 2px solid var(--wh-link); padding: 10px 16px; }
.wh .wh-header__cta .wh-btn-secondary .wp-block-button__link:hover { background: var(--wh-panel); color: var(--wh-link-dark); border-color: var(--wh-link-dark); }
@media (max-width: 700px) { .wh .wh-header__cta { display: flex; width: 100%; } .wh .wh-header__cta .wp-block-button { flex: 1 1 0; } .wh .wh-header__cta .wp-block-button__link { display: block; text-align: center; font-size: 14px; padding: 10px 8px; } }
.wh .wh-form-wrap { max-width: 640px; }
.wh .wh-form fieldset { border: 1px solid var(--wh-rule); border-radius: var(--wh-radius); padding: 16px 20px 4px; margin: 0 0 20px; }
.wh .wh-form legend { font-family: var(--wh-serif); font-size: 18px; padding: 0 6px; color: var(--wh-ink); }
.wh .wh-field { margin: 0 0 16px; }
.wh .wh-field label { display: block; font-weight: 600; margin-bottom: 6px; color: var(--wh-ink); }
.wh .wh-field input, .wh .wh-field select, .wh .wh-field textarea { width: 100%; box-sizing: border-box; font: inherit; font-size: 16px; padding: 10px 12px; border: 1px solid var(--wh-muted); border-radius: 6px; background: #fff; color: var(--wh-ink); }
.wh .wh-field textarea { min-height: 120px; }
.wh .wh-help { display: block; margin-top: 4px; font-size: 14px; color: var(--wh-muted); }
.wh .wh-form button[type="submit"] { background: var(--wh-link); color: #fff; font: inherit; font-weight: 600; font-size: 16px; border: 0; border-radius: 6px; padding: 12px 20px; cursor: pointer; }
.wh .wh-form button[type="submit"]:hover { background: var(--wh-link-dark); }
.wh .wh-formmsg { border-radius: var(--wh-radius); padding: 12px 16px; margin: 0 0 20px; font-weight: 600; }
.wh .wh-formmsg p { margin: 0; }
.wh .wh-formmsg--ok { background: var(--wh-panel); border-left: 4px solid var(--wh-link); color: var(--wh-ink); }
.wh .wh-formmsg--error { background: var(--wh-marigold-tint); border-left: 4px solid var(--wh-marigold-ink); color: var(--wh-ink); }
.wh .wh-req { font-weight: 400; color: var(--wh-muted); font-size: 14px; }
/* 0.2.4: "Right now" topic chips */
.wh .wh-topicchips .wh-chip--topic { background: var(--wh-marigold-tint); border-color: var(--wh-marigold); color: var(--wh-ink); }
.wh .wh-topicchips .wh-chip--topic.is-current { background: var(--wh-ink); border-color: var(--wh-ink); color: #fff; }
.wh .wh-chip__n { display: inline-block; min-width: 1.4em; margin-left: 4px; font-size: 13px; font-weight: 600; color: var(--wh-marigold-ink); }
.wh .wh-topicchips .wh-chip--topic.is-current .wh-chip__n { color: var(--wh-mint); }
/* 0.2.5: When chips on the calendar; counts on category chips */
.wh .wh-calbar { display: flex; flex-wrap: wrap; gap: 12px 24px; align-items: center; }
.wh .wh-whenchips { margin: 0; }
.wh .wh-catchips .wh-chip__n { color: var(--wh-muted); }
.wh .wh-catchips .wh-chip.is-current .wh-chip__n { color: #fff; }
/* 0.2.6: When and What rows, built like Best of Midland's events page */
.wh .wh-filters { display: grid; gap: 14px; margin: 18px 0 8px; }
.wh .wh-filterrow { display: grid; gap: 6px; }
.wh .wh-filterrow__label { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--wh-muted); }
.wh .wh-filterrow .wh-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
.wh .wh-pill { font-weight: 600; font-size: 15px; padding: 8px 16px; background: #fff; border: 1px solid var(--wh-chip); }
.wh .wh-pill .wh-chip__n { font-weight: 500; font-size: 13px; color: var(--wh-muted); margin-left: 4px; }
.wh .wh-pill.is-current { background: var(--wh-ink); border-color: var(--wh-ink); color: #fff; }
.wh .wh-pill.is-current .wh-chip__n { color: var(--wh-on-dark); }
.wh .wh-pill.is-empty { color: var(--wh-muted); background: var(--wh-panel); border-color: var(--wh-rule); cursor: default; min-height: 44px; display: inline-flex; align-items: center; }
.wh .wh-whenchips .wh-pill { font-size: 16px; }

/* 0.2.7: category art on cards */
.wh .wh-card__media--art img { object-fit: cover; }

/* ----- Events page, built like Best of Midland (0.2.8) ----- */
.wh .wh-calhead { padding-top: 8px; }
.wh .wh-calintro { margin: 8px 0 16px; font-size: 16px; }
.wh .wh-search { display: flex; gap: 8px; max-width: 560px; margin: 0 0 18px; }
.wh .wh-search__input { flex: 1 1 auto; min-width: 0; min-height: 44px; padding: 10px 14px; font: inherit; font-size: 16px; border: 1px solid var(--wh-chip); border-radius: 8px; background: #fff; color: var(--wh-ink); }
.wh .wh-search__input::placeholder { color: var(--wh-muted); }
.wh .wh-search__go { min-height: 44px; padding: 0 16px; border: 0; border-radius: 8px; background: var(--wh-ink); color: #fff; font: inherit; font-weight: 600; cursor: pointer; }
.wh .wh-filters { display: grid; gap: 14px; }
.wh .wh-filterrow .wh-pill { padding: 6px 14px; min-height: 36px; display: inline-flex; align-items: center; border-radius: 999px; text-decoration: none; color: var(--wh-ink); }
.wh .wh-catchips .wh-pill, .wh .wh-govchips .wh-pill { font-size: 14px; background: var(--wh-panel); border-color: var(--wh-rule); }
.wh .wh-catchips .wh-pill.is-current, .wh .wh-govchips .wh-pill.is-current { background: #fff; border: 2px solid var(--wh-link); color: var(--wh-link-dark); }
.wh .wh-catchips .wh-pill.is-current .wh-chip__n, .wh .wh-govchips .wh-pill.is-current .wh-chip__n { color: var(--wh-link-dark); }
.wh .wh-filterrow .wh-pill.is-empty { min-height: 36px; opacity: .75; }

.wh .wh-season { margin: 22px 0 6px; padding: 26px 28px; border-radius: 12px; color: #fff; background: linear-gradient(120deg, #141C21 0%, #1E2B33 55%, #6E2A1C 100%); }
.wh .wh-season--holidays { background: linear-gradient(120deg, #12352B 0%, #1F4D3B 55%, #6B1F28 100%); }
.wh .wh-season__kicker { margin: 0 0 6px; font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #F6A57E; }
.wh .wh-season__title { font-family: var(--wh-serif); font-size: clamp(26px, 3.4vw, 38px); font-weight: 700; line-height: 1.1; color: #fff; }
.wh .wh-season__text { margin: 10px 0 18px; max-width: 560px; font-size: 16px; line-height: 1.5; color: #E6ECEF; }
.wh .wh-season__actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; }
.wh .wh-season .wh-button--season { background: #E8692C; color: #1B1209; border-radius: 999px; }
.wh .wh-season .wh-button--season:hover { background: #F2844E; color: #1B1209; }
.wh .wh-season .wh-button--seasonghost { background: transparent; color: #fff; border: 1px solid #fff; border-radius: 999px; }
.wh .wh-season :focus-visible { outline-color: #F6A57E; }
.wh .wh-season--compact { margin: 18px 0; padding: 20px 24px; }
.wh .wh-season--compact .wh-season__title { font-size: clamp(22px, 2.6vw, 28px); }

.wh .wh-listhead { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 28px; padding-bottom: 12px; border-bottom: 2px solid var(--wh-ink); }
.wh .wh-listhead__title { font-family: var(--wh-serif); font-size: 22px; font-weight: 700; }
.wh .wh-listhead__q { font-family: var(--wh-sans); font-size: 15px; font-weight: 500; color: var(--wh-muted); }
.wh .wh-viewtoggle { display: inline-flex; border: 1px solid var(--wh-chip); border-radius: 8px; overflow: hidden; flex-shrink: 0; }
.wh .wh-viewtoggle > * { display: inline-flex; align-items: center; min-height: 36px; padding: 0 14px; font-size: 14px; font-weight: 600; text-decoration: none; }
.wh .wh-viewtoggle__on { background: var(--wh-ink); color: #fff; }
.wh .wh-viewtoggle a { color: var(--wh-ink); }

.wh .wh-day { margin-top: 26px; }
.wh .wh-day__head { font-family: var(--wh-serif); font-size: 19px; font-weight: 700; padding-bottom: 10px; margin-bottom: 14px; border-bottom: 1px solid var(--wh-rule); }
.wh .wh-day__n { font-family: var(--wh-sans); font-size: 13px; font-weight: 500; color: var(--wh-muted); margin-left: 6px; }
.wh .wh-ecards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 1100px) { .wh .wh-ecards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 800px) { .wh .wh-ecards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .wh .wh-ecards { grid-template-columns: minmax(0, 1fr); } .wh .wh-listhead { flex-wrap: wrap; } }
.wh .wh-ecard { position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--wh-rule); border-radius: 10px; overflow: hidden; }
.wh .wh-ecard:hover { border-color: var(--wh-chip); box-shadow: 0 4px 14px rgba(27, 42, 47, .08); }
.wh .wh-ecard.is-featured { border: 2px solid var(--wh-marigold); }
.wh .wh-ecard__media { position: relative; display: block; aspect-ratio: 16 / 10; background: var(--wh-panel); }
.wh .wh-ecard__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.wh .wh-ecard__badge { position: absolute; top: 10px; left: 10px; display: grid; justify-items: center; min-width: 40px; padding: 4px 6px 5px; background: #fff; border-radius: 6px; box-shadow: 0 1px 3px rgba(0, 0, 0, .18); line-height: 1; }
.wh .wh-ecard__mon { font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #B3261E; }
.wh .wh-ecard__day { font-family: var(--wh-serif); font-size: 20px; font-weight: 700; color: var(--wh-ink); margin-top: 2px; }
.wh .wh-ecard__body { display: flex; flex-direction: column; gap: 6px; padding: 12px 14px 14px; flex: 1 1 auto; }
.wh .wh-ecard__title { font-family: var(--wh-serif); font-size: 17px; font-weight: 700; line-height: 1.25; }
.wh .wh-ecard__title a { color: var(--wh-ink); text-decoration: none; }
.wh .wh-ecard__title a::after { content: ""; position: absolute; inset: 0; } /* the whole card is the link */
.wh .wh-ecard__title a:hover { color: var(--wh-link); }
.wh .wh-ecard__meta { margin: 0; font-size: 14px; line-height: 1.4; color: var(--wh-muted); }
.wh .wh-ecard__tags { display: flex; flex-wrap: wrap; gap: 6px; margin: auto 0 0; padding-top: 4px; }
.wh .wh-tag { display: inline-block; padding: 3px 9px; border-radius: 999px; font-size: 12px; font-weight: 600; background: var(--wh-panel); color: var(--wh-body); border: 1px solid var(--wh-rule); }
.wh .wh-tag--free { background: #E3F4EA; border-color: #BFE3CC; color: #1E5B3A; }
.wh .wh-tag--town { background: var(--wh-marigold-tint); border-color: #EBC3B9; color: var(--wh-marigold-ink); }
.wh .wh-loadmore { margin: 28px 0 0; text-align: center; }
.wh .wh-emptystate { margin-top: 24px; padding: 28px; border-radius: 10px; background: var(--wh-panel); text-align: center; font-size: 16px; }
.wh .wh-emptystate p { margin: 0 0 12px; }

/* Who's here sort pills */
.wh .wh-sortchips { display: flex; flex-wrap: wrap; gap: 8px; }
.wh .wh-sortchips .wh-pill { padding: 6px 14px; min-height: 36px; display: inline-flex; align-items: center; border-radius: 999px; text-decoration: none; color: var(--wh-ink); font-size: 14px; }
.wh .wh-ecard:focus-within { outline: 3px solid var(--wh-link); outline-offset: 2px; }
.wh .wh-ecard__title a:focus-visible { outline: none; }
@media (max-width: 520px) { .wh .wh-season { padding: 20px; } }

/* Month view: "Pick a day", three small months (0.2.9) */
.wh .wh-backlink { margin: 12px 0 0; font-size: 15px; }
.wh .wh-months { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-top: 20px; }
@media (max-width: 1000px) { .wh .wh-months { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .wh .wh-months { grid-template-columns: minmax(0, 1fr); } }
.wh .wh-mini { background: #fff; border: 1px solid var(--wh-rule); border-radius: 12px; padding: 16px 14px 14px; }
.wh .wh-mini__title { font-family: var(--wh-serif); font-size: 20px; font-weight: 700; color: var(--wh-ink); margin: 0 4px 6px; }
.wh .wh-mini__grid { width: 100%; border-collapse: separate; border-spacing: 6px; table-layout: fixed; }
.wh .wh-mini th { font-size: 13px; font-weight: 700; color: var(--wh-muted); padding: 4px 0; text-align: center; }
.wh .wh-mini th abbr { text-decoration: none; }
.wh .wh-mini td { padding: 0; text-align: center; }
.wh .wh-mini__day { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 48px; border-radius: 8px; font-size: 15px; color: var(--wh-muted); text-decoration: none; box-shadow: 0 1px 2px rgba(27, 42, 47, .06); background: #fff; }
.wh a.wh-mini__day { background: #EFE9E1; color: var(--wh-ink); font-weight: 600; }
.wh a.wh-mini__day:hover { background: #E3DACD; }
.wh .wh-mini__day.is-past { color: #8A979A; box-shadow: none; }
.wh .wh-mini__day.is-today { outline: 2px solid var(--wh-ink); outline-offset: -2px; }
.wh .wh-mini__n { font-size: 12px; font-weight: 700; color: #B3261E; line-height: 1.2; }
@media (max-width: 640px) { .wh .wh-mini { border-spacing: 4px; } .wh .wh-mini__day { min-height: 42px; font-size: 14px; } }

/* 0.3.0: a picked pill keeps white text (the row rule above set ink on ink) */
.wh .wh-filterrow .wh-pill.is-current, .wh .wh-filterrow .wh-pill.is-current:is(:link, :visited, :hover, :focus, :active) { background: var(--wh-ink); border-color: var(--wh-ink); color: #fff; }
.wh .wh-filterrow .wh-pill.is-current .wh-chip__n { color: var(--wh-on-dark); }
/* What and Village pills: picked state is an outlined white pill. Every link state is listed so a visited link never inherits the dark pill's white text. */
.wh .wh-filterrow .wh-catchips .wh-pill.is-current, .wh .wh-filterrow .wh-catchips .wh-pill.is-current:is(:link, :visited, :hover, :focus, :active),
.wh .wh-filterrow .wh-govchips .wh-pill.is-current, .wh .wh-filterrow .wh-govchips .wh-pill.is-current:is(:link, :visited, :hover, :focus, :active) { background: #fff; border: 2px solid var(--wh-link); color: var(--wh-link-dark); }
.wh .wh-filterrow .wh-catchips .wh-pill.is-current .wh-chip__n, .wh .wh-filterrow .wh-govchips .wh-pill.is-current .wh-chip__n { color: var(--wh-link-dark); }
.wh .wh-sortchips .wh-pill.is-current, .wh .wh-sortchips .wh-pill.is-current:hover { background: var(--wh-ink); border-color: var(--wh-ink); color: #fff; }
.wh .wh-home .entry-content > * + *, .wh .wh-home .wp-block-post-content > * + * { margin-top: 0; }

/* Listing logos (0.3.1): a featured card without a photo shows its logo whole; other cards show it small above the name. */
.wh .wh-card__media--logo { background: #fff; border: 1px solid var(--wh-rule); display: flex; align-items: center; justify-content: center; padding: 16px; }
.wh .wh-card__media--logo img { width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; }
.wh .wh-card--listing .wh-card__logo { display: flex; align-items: center; height: 48px; }
.wh .wh-card__logo img { max-height: 48px; max-width: 160px; width: auto; height: auto; object-fit: contain; }

/* Voting card (0.3.1): appears only while an election date is within three weeks. */
.wh .wh-civic { margin: 22px 0 6px; padding: 20px 24px; border-radius: 12px; background: var(--wh-panel); border-left: 6px solid var(--wh-link); }
.wh .wh-civic__kicker { margin: 0 0 4px; font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--wh-marigold-ink); }
.wh .wh-civic__title { margin: 0 0 10px; font-family: var(--wh-serif); font-size: clamp(22px, 2.6vw, 28px); font-weight: 700; line-height: 1.15; color: var(--wh-ink); }
.wh .wh-civic__list { margin: 0 0 10px; padding: 0; list-style: none; display: grid; gap: 6px; }
.wh .wh-civic__list a { font-weight: 600; color: var(--wh-link-dark); }
.wh .wh-civic__date { color: var(--wh-muted); font-size: 14px; margin-left: 6px; }
.wh .wh-civic__more { margin: 0; font-size: 15px; }

/* Logo in the listing page photo slot (0.3.2): shown whole, never cropped. */
.wh .wh-photo--logo { background: #fff; border: 1px solid var(--wh-rule); border-radius: var(--wh-radius); padding: 24px; display: flex; align-items: center; justify-content: center; }
.wh .wh-photo--logo img { width: auto; height: auto; max-width: 100%; max-height: 200px; object-fit: contain; border-radius: 0; }

/* Ordinary pages (About and the like), 0.3.4: room to breathe and a readable measure. */
.wh .wh-page { padding-top: clamp(28px, 4vw, 56px); padding-bottom: clamp(48px, 6vw, 88px); }
.wh .wh-page__inner > .wh-h1 { margin: 0 0 28px; }
.wh .wh-page .wp-block-post-content { max-width: 68ch; font-size: 18px; line-height: 1.75; font-weight: 400; color: var(--wh-body); }
.wh .wh-page .wp-block-post-content > * + * { margin-block-start: 1.25em; }
.wh .wh-page .wp-block-post-content > p:first-child, .wh .wh-page .wp-block-post-content > .has-large-font-size { font-family: var(--wh-serif); font-size: clamp(21px, 2.2vw, 25px) !important; line-height: 1.4; color: var(--wh-ink); } /* !important: WordPress sets .has-large-font-size with !important */
.wh .wh-page .wp-block-post-content > h2 { margin-block-start: 2.4em; margin-bottom: 0; font-size: clamp(22px, 2.4vw, 28px); line-height: 1.2; color: var(--wh-ink); }
.wh .wh-page .wp-block-post-content > h2 + * { margin-block-start: 0.6em; }
.wh .wh-page .wp-block-post-content > .wh-newsletter, .wh .wh-page .wp-block-post-content > .wp-block-template-part { margin-block: 1.5em 0.5em; }
@media (max-width: 600px) { .wh .wh-page .wp-block-post-content { font-size: 17px; line-height: 1.7; } }

/* Listings per page (0.3.5): Show 50 / 100 / 200 / All. */
.wh .wh-perchips { align-items: center; }
.wh .wh-perchips__label { font-size: 14px; font-weight: 600; color: var(--wh-muted); margin-right: 2px; }

/* Directory search (0.3.6). */
.wh .wh-dirsearch { margin: 4px 0 16px; max-width: 640px; align-items: center; }
.wh .wh-dirsearch__clear { font-size: 14px; font-weight: 600; white-space: nowrap; margin-left: 8px; }

/* beehiiv form (0.3.7): give the iframe the panel's full width so the email field has room in the sidebar. */
.wh .wh-newsletter .wh-beehiiv { margin: 4px -22px -22px; border-radius: 0 0 var(--wh-radius) var(--wh-radius); overflow: hidden; }
.wh .wh-newsletter .wh-beehiiv iframe { display: block; width: 100% !important; }
@media (max-width: 700px) { .wh .wh-newsletter .wh-beehiiv { margin: 4px -18px -18px; } }

/* Directory foot (0.3.8): paging, then Show 50 / 100 / 200 / All, below the cards. Food and Drink chips above them. */
.wh .wh-dirfoot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-top: 28px; }
.wh .wh-dirfoot .wh-pagination { margin: 0; }
.wh .wh-foodchips { margin: 0 0 16px; align-items: center; flex-wrap: wrap; }

/* Header fit (0.3.9): with four menu links the row was 17px too wide and the buttons dropped to a second line. */
.wh .wh-header__inner { gap: 16px 24px; }
.wh .wh-header__nav .wp-block-navigation__container { gap: 8px 20px; }
@media (max-width: 1280px) { .wh .wh-header__brand a { font-size: 21px; } .wh .wh-header__cta .wp-block-button__link { padding: 10px 14px; font-size: 14px; } }

/* ===== Phone pass (0.4.0) ===== */
.wh .wh-nav-mobile { display: none; }
/* WordPress's auto-paragraphs drop empty <p> tags between the filter label and its pills, which added a 32px gap on every screen size. */
.wh .wh-filters p:empty, .wh .wh-filterrow > p:empty, .wh .wh-dirbar p:empty, .wh .wh-calhead p:empty { display: none; }
.wh .wh-filterrow .wh-pill, .wh .wh-sortchips .wh-pill { box-sizing: border-box; }
/* Quick actions on a listing (phones only). */
.wh .wh-quick { display: none; flex-wrap: wrap; gap: 8px; margin: 4px 0 16px; }
.wh .wh-quick a { flex: 1 1 0; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; border-radius: 8px; font-weight: 600; text-decoration: none; border: 2px solid var(--wh-link); color: var(--wh-link-dark); background: #fff; padding: 8px 12px; }
.wh .wh-quick a.wh-quick__primary { background: var(--wh-link); color: #fff; }
@media (max-width: 700px) {
	/* Header: site name and menu button on one row; the two buttons move into the menu. */
	.wh .wh-header .wh-header__cta.wp-block-buttons { display: none !important; }
	.wh .wh-header__inner { flex-wrap: nowrap; gap: 12px; padding-top: 14px; padding-bottom: 14px; }
	.wh .wh-header__brand { min-width: 0; }
	.wh .wh-header__brand a { font-size: 18px; gap: 8px; }
	.wh .wh-header__brand a::before { width: 28px; height: 28px; }
	.wh .wh-header__nav .wp-block-navigation__responsive-container-open { padding: 10px; min-width: 44px; min-height: 44px; }
	.wh .wh-header__nav .wp-block-navigation__responsive-container.is-menu-open .wh-nav-mobile { display: block; }
	.wh .wh-header__nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 22px; padding: 6px 0; }

	/* Filter rows (When, What, Village, town toggles, sort, food chips): one line each that scrolls sideways,
	   so the first event or listing is on the first screen instead of after a wall of pills. */
	.wh .wh-filterrow .wh-chips, .wh .wh-dirbar .wh-toggles, .wh .wh-foodchips, .wh .wh-dirbar .wh-sortchips {
		flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none;
		margin-inline: calc(-1 * var(--wh-gutter)); padding: 2px var(--wh-gutter) 6px; scroll-padding-inline: var(--wh-gutter);
	}
	.wh .wh-filterrow .wh-chips::-webkit-scrollbar, .wh .wh-dirbar .wh-toggles::-webkit-scrollbar, .wh .wh-foodchips::-webkit-scrollbar, .wh .wh-dirbar .wh-sortchips::-webkit-scrollbar { display: none; }
	.wh .wh-filterrow .wh-pill, .wh .wh-dirbar .wh-toggle, .wh .wh-foodchips .wh-pill, .wh .wh-sortchips .wh-pill { flex: 0 0 auto; white-space: nowrap; min-height: 40px; }
	.wh .wh-filterrow { gap: 4px; margin-bottom: 10px; }
	.wh .wh-dirbar { padding: 12px 0; gap: 10px; }
	.wh .wh-dirbar > form { width: 100%; }
	.wh .wh-dirfoot { justify-content: center; }

	/* Listing page: call and directions right under the name. */
	.wh .wh-quick { display: flex; }
	.wh .wh-season, .wh .wh-civic { padding: 18px; }
}
