/* Responsive rules for the 404, Search, Collections + Calendar bodies (the `#nf-*` / `#sr-*` /
   `#cl-*` / `#cal-*` selectors). Shared chrome breakpoints ship in homepage.css. Enqueued on
   those templates. */

/* ---- 404 ---- */
@media (max-width: 1024px) {
	:is(#nf-head, .twm-anchor--nf-head) { padding-top: 150px !important; padding-left: 24px !important; padding-right: 24px !important; max-width: none !important; }
	:is(#nf-routes, .twm-anchor--nf-routes), :is(#nf-recent, .twm-anchor--nf-recent) { padding-left: 24px !important; padding-right: 24px !important; max-width: none !important; padding-top: 56px !important; }
	:is(#nf-title, .twm-anchor--nf-title) { font-size: 30px !important; line-height: 40px !important; letter-spacing: 1px !important; }
	:is(#nf-grid, .twm-anchor--nf-grid) { grid-template-columns: repeat(2, 1fr) !important; gap: 28px 20px !important; }
	:is(#nf-routes-row, .twm-id--nf-routes-row) { gap: 12px 24px !important; }
}
@media (max-width: 640px) {
	:is(#nf-head, .twm-anchor--nf-head) { padding-top: 128px !important; padding-left: 18px !important; padding-right: 18px !important; }
	:is(#nf-routes, .twm-anchor--nf-routes), :is(#nf-recent, .twm-anchor--nf-recent) { padding-left: 18px !important; padding-right: 18px !important; padding-top: 44px !important; }
	:is(#nf-title, .twm-anchor--nf-title) { font-size: 22px !important; line-height: 30px !important; letter-spacing: 0.5px !important; }
	:is(#nf-grid, .twm-anchor--nf-grid) { grid-template-columns: 1fr !important; gap: 32px !important; }
	:is(#nf-grid, .twm-anchor--nf-grid) [data-nf-img], :is(#nf-grid, .twm-anchor--nf-grid) figure.wp-block-post-featured-image { aspect-ratio: 4/5 !important; }
}

/* ---- Search ---- */
@media (max-width: 1024px) {
	:is(#sr-head, .twm-anchor--sr-head), :is(#sr-coll, .twm-anchor--sr-coll), :is(#sr-tools, .twm-anchor--sr-tools), :is(#sr-body, .twm-anchor--sr-body), :is(#sr-more, .twm-anchor--sr-more) { padding-left: 24px !important; padding-right: 24px !important; max-width: none !important; }
	:is(#sr-head, .twm-anchor--sr-head) { padding-top: 150px !important; }
	:is(#sr-coll, .twm-anchor--sr-coll) { padding-top: 56px !important; }
	:is(#sr-input, .twm-input-id--sr-input .wp-block-search__input) { font-size: 30px !important; line-height: 40px !important; letter-spacing: 1px !important; }
	:is(#sr-tools, .twm-anchor--sr-tools) { flex-wrap: wrap !important; gap: 14px 22px !important; }
	.sr-row { grid-template-columns: 150px 1fr !important; gap: 24px !important; }
}
@media (max-width: 640px) {
	:is(#sr-head, .twm-anchor--sr-head), :is(#sr-coll, .twm-anchor--sr-coll), :is(#sr-tools, .twm-anchor--sr-tools), :is(#sr-body, .twm-anchor--sr-body), :is(#sr-more, .twm-anchor--sr-more) { padding-left: 18px !important; padding-right: 18px !important; }
	:is(#sr-head, .twm-anchor--sr-head) { padding-top: 128px !important; }
	:is(#sr-coll, .twm-anchor--sr-coll) { padding-top: 44px !important; }
	:is(#sr-input, .twm-input-id--sr-input .wp-block-search__input) { font-size: 24px !important; line-height: 34px !important; letter-spacing: 0.5px !important; }
	.sr-row { grid-template-columns: 96px 1fr !important; gap: 16px !important; padding: 18px 0 !important; }
}

/* ---- Collections ---- */
/* Sticky-bar offsets: header + the pinned find/jump rows (used by the narrow-width rules). */
:root { --pin-header: 72px; --pin-find: 61px; --pin-jump: 41px; }
.cl-rows > a { min-width: 0; }
@media (max-width: 1024px) {
	:is(#cl-head, .twm-anchor--cl-head), :is(#cl-body, .twm-anchor--cl-body), :is(#cl-find, .twm-anchor--cl-find) { padding-left: 24px !important; padding-right: 24px !important; max-width: none !important; }
	:is(#cl-head, .twm-anchor--cl-head) { padding-top: 150px !important; }
	:is(#cl-find, .twm-anchor--cl-find) { position: sticky !important; top: var(--pin-header) !important; z-index: 14 !important; background: var(--surface-page) !important; padding-top: 14px !important; padding-bottom: 14px !important; border-bottom: 1px solid var(--twm-hairline) !important; }
	:is(#cl-search-wrap, .twm-anchor--cl-search-wrap) { border-bottom: 0 !important; padding-bottom: 0 !important; }
	:is(#cl-body, .twm-anchor--cl-body) { padding-top: 44px !important; }
	:is(#cl-where, .twm-id--cl-where), :is(#cl-circuits, .twm-anchor--cl-circuits), [data-cl-section] { scroll-margin-top: calc(var(--pin-header) + var(--pin-find) + var(--pin-jump) + 12px) !important; }
	[data-cl-jump] { position: sticky !important; top: calc(var(--pin-header) + var(--pin-find)) !important; z-index: 13 !important; background: var(--surface-page) !important; padding: 12px 0 !important; margin-top: 12px !important; }
	:is(#cl-title, .twm-anchor--cl-title) { font-size: 30px !important; line-height: 40px !important; letter-spacing: 1px !important; }
	:is(#cl-search-wrap, .twm-anchor--cl-search-wrap) { flex: 0 0 auto !important; width: 100% !important; }
	.cl-rows { grid-template-columns: repeat(3, 1fr) !important; gap: 32px 18px !important; margin-top: 24px !important; }
	[data-cl-name] { font-size: 22px !important; line-height: 30px !important; letter-spacing: 0.5px !important; }
}
@media (max-width: 640px) {
	:is(#cl-head, .twm-anchor--cl-head), :is(#cl-body, .twm-anchor--cl-body), :is(#cl-find, .twm-anchor--cl-find) { padding-left: 18px !important; padding-right: 18px !important; }
	:is(#cl-find, .twm-anchor--cl-find) { top: var(--pin-header) !important; }
	:is(#cl-title, .twm-anchor--cl-title) { font-size: 22px !important; line-height: 30px !important; letter-spacing: 0.5px !important; }
	.cl-rows { grid-template-columns: 1fr !important; gap: 0 !important; margin-top: 16px !important; }
	[data-cl-card] { display: grid !important; grid-template-columns: 64px 1fr !important; gap: 18px !important; align-items: center !important; padding: 13px 0 !important; border-top: 1px solid var(--twm-hairline) !important; }
	[data-cl-meta] { margin-top: 0 !important; flex-direction: column !important; align-items: flex-start !important; gap: 3px !important; }
	[data-cl-name] { font-size: 22px !important; line-height: 28px !important; letter-spacing: 0.5px !important; }
	[data-cl-letter] { margin-top: 32px !important; }
	[data-cl-jump] { gap: 8px 16px !important; }
}

/* ---- Calendar ---- */
@media (max-width: 1024px) {
	:is(#cal-head, .twm-anchor--cal-head), :is(#cal-months, .twm-anchor--cal-months), :is(#cal-glance, .twm-anchor--cal-glance), :is(#cal-ink-in, .twm-anchor--cal-ink-in) { padding-left: 24px !important; padding-right: 24px !important; max-width: none !important; }
	:is(#cal-months, .twm-anchor--cal-months), :is(#cal-glance, .twm-anchor--cal-glance) { padding-top: 56px !important; }
	:is(#cal-head, .twm-anchor--cal-head) { padding-top: 150px !important; flex-direction: column !important; align-items: flex-start !important; gap: 24px !important; }
	:is(#cal-head, .twm-anchor--cal-head) > p { width: auto !important; max-width: 600px !important; }
	:is(#cal-ink, .twm-anchor--cal-ink) { margin-top: 56px !important; padding: 48px 0 52px !important; }
	:is(#cal-ink-grid, .twm-anchor--cal-ink-grid) { grid-template-columns: repeat(2, 1fr) !important; }
	:is(#cal-title, .twm-anchor--cal-title) { font-size: 30px !important; line-height: 40px !important; letter-spacing: 1px !important; }
	:is(#cal-tabs, .twm-anchor--cal-tabs) { flex-wrap: wrap !important; gap: 14px 24px !important; }
	:is(#cal-tabs, .twm-anchor--cal-tabs) > nav { gap: 24px !important; flex-wrap: wrap !important; }
	:is(#cal-grid, .twm-anchor--cal-grid) { grid-template-columns: repeat(2, 1fr) !important; gap: 28px 20px !important; }
	.cal-row-in { grid-template-columns: 80px 148px 1fr !important; gap: 18px !important; }
	.cal-row-in > .cal-season-tag { display: none !important; }
}
@media (max-width: 640px) {
	:is(#cal-head, .twm-anchor--cal-head), :is(#cal-months, .twm-anchor--cal-months), :is(#cal-glance, .twm-anchor--cal-glance), :is(#cal-ink-in, .twm-anchor--cal-ink-in) { padding-left: 18px !important; padding-right: 18px !important; }
	:is(#cal-months, .twm-anchor--cal-months), :is(#cal-glance, .twm-anchor--cal-glance) { padding-top: 44px !important; }
	:is(#cal-head, .twm-anchor--cal-head) { padding-top: 128px !important; gap: 18px !important; }
	:is(#cal-title, .twm-anchor--cal-title) { font-size: 22px !important; line-height: 30px !important; letter-spacing: 0.5px !important; }
	:is(#cal-ink, .twm-anchor--cal-ink) { padding: 44px 0 48px !important; }
	:is(#cal-grid, .twm-anchor--cal-grid) { grid-template-columns: 1fr !important; gap: 32px !important; }
	:is(#cal-grid, .twm-anchor--cal-grid) .cal-cell-media { aspect-ratio: 4/5 !important; }
	:is(#cal-ink-grid, .twm-anchor--cal-ink-grid) { grid-template-columns: 1fr !important; gap: 24px !important; }
	:is(#cal-tabs, .twm-anchor--cal-tabs) { flex-direction: column !important; align-items: flex-start !important; gap: 10px !important; padding-bottom: 12px !important; }
	:is(#cal-tabs, .twm-anchor--cal-tabs) > nav { width: 100% !important; gap: 22px !important; flex-wrap: nowrap !important; overflow-x: auto !important; scrollbar-width: none !important; }
	.cal-row-in { grid-template-columns: 1fr !important; gap: 6px !important; padding: 16px 0 !important; }
}

/* ---- 404 base geometry (core-block build) ---- */
:is(#nf-head, .twm-anchor--nf-head) { max-width: 1360px; box-sizing: border-box; margin: 0 auto; padding: 206px 80px 0; }
.nf-kicker { margin: 0; font-family: 'proxima-nova', var(--font-sans); font-weight: 400; font-size: 12px; line-height: 16.8px; letter-spacing: 2px; text-transform: uppercase; color: var(--twm-secondary); }
:is(#nf-title, .twm-anchor--nf-title) { margin: 22px 0 0; max-width: 900px; font-family: var(--font-headline); font-weight: 400; font-size: 48px; line-height: 60px; letter-spacing: 1.5px; text-wrap: pretty; }
.nf-dek, .nf-dek p { margin: 0; max-width: 620px; font-family: var(--font-soft); font-weight: 400; font-size: 16px; line-height: 24px; letter-spacing: 0.2px; color: var(--twm-secondary); text-wrap: pretty; }
.nf-dek { margin-top: 24px; }
:is(#nf-head, .twm-anchor--nf-head) .wp-block-buttons, :is(#nf-head, .twm-anchor--nf-head) .wp-block-button { margin: 0; }
.twm-open-search { display: inline-flex; align-items: center; gap: 12px; margin-top: 30px; font-family: 'proxima-nova', var(--font-sans); font-weight: 400; font-size: 12px; line-height: 16.8px; letter-spacing: 2px; text-transform: uppercase; color: var(--text-body); text-decoration: none; background: none; border: 1px solid var(--twm-hairline); border-radius: 0; padding: 13px 24px; cursor: pointer; transition: background .2s ease, border-color .2s ease, color .2s ease; }
.twm-open-search::before { content: ""; flex: none; display: block; width: 14px; height: 14px; background: currentColor; -webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="black" stroke-width="1.2"><circle cx="7.6" cy="7.6" r="5.9"/><line x1="12" y1="12" x2="17" y2="17"/></svg>') center / contain no-repeat; mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="black" stroke-width="1.2"><circle cx="7.6" cy="7.6" r="5.9"/><line x1="12" y1="12" x2="17" y2="17"/></svg>') center / contain no-repeat; }
.twm-open-search:hover { background: var(--twm-ink); border-color: var(--twm-ink); color: var(--twm-white); }
:is(#nf-routes, .twm-anchor--nf-routes) { max-width: 1360px; box-sizing: border-box; margin: 0 auto; padding: 80px 80px 0; }
:is(#nf-routes-row, .twm-id--nf-routes-row) { display: flex; flex-wrap: wrap; align-items: baseline; gap: 14px 44px; margin: 0; position: static; }
:is(#nf-routes-row, .twm-id--nf-routes-row) :is(ul, li) { display: contents; }
:is(#nf-routes-row, .twm-id--nf-routes-row) a { font-family: var(--font-headline); font-weight: 400; font-size: 22px; line-height: 30px; letter-spacing: 0.5px; color: var(--text-body); text-decoration: none; transition: opacity .2s ease; }
:is(#nf-routes-row, .twm-id--nf-routes-row) a:hover { opacity: 0.55; }
:is(#nf-recent, .twm-anchor--nf-recent) { max-width: 1360px; box-sizing: border-box; margin: 0 auto; padding: 80px 80px 0; }
:is(#nf-recent, .twm-anchor--nf-recent) > h2 { margin: 0; font-family: var(--font-headline); font-style: italic; font-weight: 400; font-size: 30px; line-height: 40px; letter-spacing: 1px; }
:is(#nf-grid, .twm-anchor--nf-grid) { margin-top: 28px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 36px 28px; }
:is(#nf-grid, .twm-anchor--nf-grid) > .wp-block-post-template { display: contents; }
:is(#nf-grid, .twm-anchor--nf-grid) li.wp-block-post { display: block; list-style: none; margin: 0; padding: 0; }
:is(#nf-grid, .twm-anchor--nf-grid) figure.wp-block-post-featured-image { margin: 0; aspect-ratio: 2/3; background: var(--surface-band); overflow: hidden; }
:is(#nf-grid, .twm-anchor--nf-grid) figure.wp-block-post-featured-image img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; }
.nf-card-kicker { display: flex; align-items: baseline; gap: 8px; margin-top: 18px; font-family: 'proxima-nova', var(--font-sans); font-weight: 400; font-size: 12px; line-height: 16.8px; letter-spacing: 2px; text-transform: uppercase; }
.nf-card-kicker :is(p, div, time, a) { margin: 0; font: inherit; letter-spacing: inherit; color: inherit; text-decoration: none; }
.nf-card-kicker .twm-slash { opacity: 0.6; }
.nf-card-kicker .wp-block-post-date { color: var(--twm-secondary); }
:is(#nf-grid, .twm-anchor--nf-grid) h3.wp-block-post-title { margin: 12px 0 0; font-family: var(--font-headline); font-weight: 400; font-size: 22px; line-height: 30px; letter-spacing: 0.5px; text-wrap: pretty; }
:is(#nf-grid, .twm-anchor--nf-grid) h3.wp-block-post-title a { color: var(--text-body); text-decoration: none; }

/* ---- Collections base geometry (core-block build) ---- */
:is(#cl-head, .twm-anchor--cl-head) { max-width: 1360px; box-sizing: border-box; margin: 0 auto; padding: 206px 80px 0; }
.cl-crumb { display: flex; align-items: baseline; gap: 8px; font-family: 'proxima-nova', var(--font-sans); font-weight: 400; font-size: 12px; line-height: 16.8px; letter-spacing: 2px; text-transform: uppercase; color: var(--twm-secondary); }
.cl-crumb :is(p, h1) { margin: 0; font: inherit; letter-spacing: inherit; color: inherit; }
.cl-crumb a { color: var(--twm-secondary); text-decoration: none; }
.cl-crumb .twm-slash { opacity: 0.6; }
.cl-crumb .cl-crumb-here { color: var(--text-body); }
.cl-title-wrap { margin-top: 22px; }
:is(#cl-title, .twm-anchor--cl-title) { margin: 0; font-family: var(--font-headline); font-weight: 400; font-size: 48px; line-height: 60px; letter-spacing: 1.5px; text-wrap: pretty; }
.cl-dek { margin: 24px 0 0; max-width: 620px; font-family: var(--font-soft); font-weight: 400; font-size: 16px; line-height: 24px; letter-spacing: 0.2px; color: var(--twm-secondary); }
:is(#cl-find, .twm-anchor--cl-find) { max-width: 1360px; box-sizing: border-box; margin: 0 auto; padding: 32px 80px 0; display: flex; justify-content: flex-end; }
:is(#cl-search-wrap, .twm-anchor--cl-search-wrap) { flex: 0 0 380px; width: 380px; display: flex; align-items: center; gap: 14px; border-bottom: 1px solid var(--twm-ink); padding-bottom: 10px; margin: 0; }
:is(#cl-search-wrap, .twm-anchor--cl-search-wrap) form.wp-block-search { flex: 1; display: flex; margin: 0; }
:is(#cl-search-wrap, .twm-anchor--cl-search-wrap) .wp-block-search__inside-wrapper { flex: 1; display: flex; align-items: center; gap: 14px; border: 0; padding: 0; }
:is(#cl-search-wrap, .twm-anchor--cl-search-wrap) .wp-block-search__inside-wrapper::before { content: ""; flex: none; display: block; width: 15px; height: 15px; background: var(--twm-secondary); -webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="black" stroke-width="1.2"><circle cx="7.6" cy="7.6" r="5.9"/><line x1="12" y1="12" x2="17" y2="17"/></svg>') center / contain no-repeat; mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="black" stroke-width="1.2"><circle cx="7.6" cy="7.6" r="5.9"/><line x1="12" y1="12" x2="17" y2="17"/></svg>') center / contain no-repeat; }
:is(#cl-search, .twm-input-id--cl-search .wp-block-search__input), :is(#cl-search-wrap, .twm-anchor--cl-search-wrap) input.wp-block-search__input { flex: 1; min-width: 0; border: 0; outline: none; background: transparent; padding: 1px 2px; font-family: var(--font-soft); font-weight: 400; font-size: 16px; line-height: 24px; letter-spacing: 0.2px; color: var(--text-body); }
:is(#cl-body, .twm-anchor--cl-body) { max-width: 1360px; box-sizing: border-box; margin: 0 auto; padding: 80px 80px 0; }
.cl-group-wrap { margin-bottom: 80px; }
[data-cl-group] { scroll-margin-top: 110px; }
.cl-group-head { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.cl-group-head h2 { margin: 0; font-family: var(--font-headline); font-style: italic; font-weight: 400; font-size: 30px; line-height: 40px; letter-spacing: 1px; }
.cl-group-head p { margin: 0; font-family: 'proxima-nova', var(--font-sans); font-weight: 400; font-size: 12px; line-height: 16.8px; letter-spacing: 2px; text-transform: uppercase; color: var(--twm-secondary); }
.cl-rows { margin-top: 32px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px 36px; }
.cl-rows > a[data-cl-card] { display: block; margin: 0; padding: 0; font-size: inherit; text-decoration: none; transition: opacity .2s ease; }
.cl-rows a[data-cl-card] > [data-cl-art], [data-cl-art] { display: block; margin: 0; position: relative; aspect-ratio: 4/5; background: var(--surface-band); }
.cl-rows a[data-cl-card] > [data-cl-meta], .cl-rows a[data-cl-card] span { margin-left: 0; }
[data-cl-art] > span { position: absolute; inset: 0; }
[data-cl-meta] { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; margin-top: 18px; }
[data-cl-name] { font-family: var(--font-headline); font-weight: 400; font-size: 30px; line-height: 40px; letter-spacing: 1px; text-wrap: pretty; color: var(--text-body); }
[data-cl-count] { font-family: 'proxima-nova', var(--font-sans); font-weight: 400; font-size: 12px; line-height: 16.8px; letter-spacing: 2px; text-transform: uppercase; color: var(--twm-secondary); white-space: nowrap; }
:is(#cl-empty, .twm-anchor--cl-empty) { margin: 0 0 72px; font-family: var(--font-headline); font-weight: 400; font-size: 30px; line-height: 40px; letter-spacing: 1px; color: var(--twm-secondary); }
:is(#cl-empty, .twm-anchor--cl-empty) { display: none; }
:is(#cl-empty, .twm-anchor--cl-empty).is-shown { display: block; }

/* ---- Search base geometry (core-block build) ---- */
:is(#sr-head, .twm-anchor--sr-head) { max-width: 1360px; box-sizing: border-box; margin: 0 auto; padding: 206px 80px 0; }
.sr-crumb { display: flex; align-items: baseline; gap: 8px; font-family: 'proxima-nova', var(--font-sans); font-weight: 400; font-size: 12px; line-height: 16.8px; letter-spacing: 2px; text-transform: uppercase; color: var(--twm-secondary); }
.sr-crumb :is(p, h1) { margin: 0; font: inherit; letter-spacing: inherit; color: inherit; }
.sr-crumb a { color: var(--twm-secondary); text-decoration: none; }
.sr-crumb .twm-slash { opacity: 0.6; }
.sr-crumb .sr-crumb-here { color: var(--text-body); }
:is(#sr-head, .twm-anchor--sr-head) form.wp-block-search { margin: 22px 0 0; display: flex; align-items: baseline; gap: 20px; border-bottom: 1px solid var(--twm-ink); padding-bottom: 14px; }
:is(#sr-head, .twm-anchor--sr-head) .wp-block-search__inside-wrapper { flex: 1; display: flex; align-items: baseline; gap: 20px; border: 0; padding: 0; }
:is(#sr-head, .twm-anchor--sr-head) .wp-block-search__inside-wrapper::before { content: ""; flex: none; align-self: center; display: block; width: 22px; height: 22px; background: var(--twm-secondary); -webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="black" stroke-width="1.1"><circle cx="7.6" cy="7.6" r="5.9"/><line x1="12" y1="12" x2="17" y2="17"/></svg>') center / contain no-repeat; mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="black" stroke-width="1.1"><circle cx="7.6" cy="7.6" r="5.9"/><line x1="12" y1="12" x2="17" y2="17"/></svg>') center / contain no-repeat; }
:is(#sr-input, .twm-input-id--sr-input .wp-block-search__input), :is(#sr-head, .twm-anchor--sr-head) input.wp-block-search__input { flex: 1; min-width: 0; border: 0; outline: none; background: transparent; padding: 1px 2px; font-family: var(--font-headline); font-weight: 400; font-size: 48px; line-height: 60px; letter-spacing: 1.5px; color: var(--text-body); }
.sr-count { margin: 22px 0 0; font-family: var(--font-soft); font-weight: 400; font-size: 16px; line-height: 24px; letter-spacing: 0.2px; color: var(--twm-secondary); }
:is(#sr-coll, .twm-anchor--sr-coll) { max-width: 1360px; box-sizing: border-box; margin: 0 auto; padding: 80px 80px 0; }
:is(#sr-coll, .twm-anchor--sr-coll):not(:has(a.sr-coll-link)) { display: none; }
:is(#sr-coll, .twm-anchor--sr-coll) > h2 { margin: 0; font-family: var(--font-headline); font-style: italic; font-weight: 400; font-size: 30px; line-height: 40px; letter-spacing: 1px; }
.sr-coll-row { margin-top: 20px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 12px 44px; }
a.sr-coll-link { display: flex; align-items: baseline; gap: 12px; padding: 8px 0; text-decoration: none; color: var(--text-body); transition: opacity .2s ease; }
.sr-coll-name { font-family: var(--font-headline); font-weight: 400; font-size: 22px; line-height: 30px; letter-spacing: 0.5px; }
.sr-coll-count { font-family: 'proxima-nova', var(--font-sans); font-weight: 400; font-size: 12px; line-height: 16.8px; letter-spacing: 2px; text-transform: uppercase; color: var(--twm-secondary); white-space: nowrap; }
:is(#sr-tools, .twm-anchor--sr-tools) { max-width: 1360px; box-sizing: border-box; margin: 0 auto; padding: 32px 80px 0; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
:is(#sr-body, .twm-anchor--sr-body):not(:has(li.wp-block-post)) ~ :is(#sr-tools, .twm-anchor--sr-tools), :is(#sr-tools, .twm-anchor--sr-tools).sr-hidden { display: none; }
.sr-drop { position: relative; margin: 0; }
.sr-drop-toggle, .sr-drop-toggle p { display: flex; align-items: center; gap: 10px; margin: 0; font-family: 'proxima-nova', var(--font-sans); font-weight: 400; font-size: 12px; line-height: 16.8px; letter-spacing: 2px; text-transform: uppercase; color: var(--text-body); text-decoration: none; cursor: pointer; white-space: nowrap; }
.sr-drop-toggle p::after { content: ""; display: block; width: 9px; height: 6px; background: currentColor; -webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="9" height="6" viewBox="0 0 9 6" fill="none" stroke="black" stroke-width="1.1"><polyline points="0.7,1 4.5,4.6 8.3,1"/></svg>') center / contain no-repeat; mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="9" height="6" viewBox="0 0 9 6" fill="none" stroke="black" stroke-width="1.1"><polyline points="0.7,1 4.5,4.6 8.3,1"/></svg>') center / contain no-repeat; }
.sr-panel { display: none; position: absolute; top: calc(100% + 16px); z-index: 15; width: 230px; background: var(--twm-white); border: 1px solid var(--twm-hairline); padding: 6px 0; margin: 0; }
.sr-panel.is-open { display: block; }
.sr-panel--left { left: 0; }
.sr-panel--right { right: 0; }
.sr-panel p { margin: 0; }
.sr-panel p a { display: block; padding: 9px 18px; font-family: 'proxima-nova', var(--font-sans); font-weight: 400; font-size: 12px; line-height: 16.8px; letter-spacing: 2px; text-transform: uppercase; text-decoration: none; color: var(--twm-secondary); }
.sr-panel p.is-active a, .sr-panel p:first-child a { color: var(--text-body); }
:is(#sr-body, .twm-anchor--sr-body) { max-width: 1360px; box-sizing: border-box; margin: 0 auto; padding: 24px 80px 0; }
:is(#sr-body, .twm-anchor--sr-body) > .wp-block-query, :is(#sr-body, .twm-anchor--sr-body) .wp-block-post-template { display: contents; }
:is(#sr-body, .twm-anchor--sr-body) li.wp-block-post { display: block; list-style: none; margin: 0; padding: 0; }
:is(#sr-body, .twm-anchor--sr-body) li.wp-block-post > .sr-row { display: grid; grid-template-columns: 220px 1fr; gap: 36px; align-items: center; padding: 26px 0; border-top: 1px solid var(--twm-hairline); }
.sr-row-media { position: relative; display: block; aspect-ratio: 3/4; background: var(--surface-band); }
.sr-row-media figure.wp-block-post-featured-image { position: absolute; inset: 0; margin: 0; }
.sr-row-media figure.wp-block-post-featured-image a { display: block; position: static; }
.sr-row-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 42%; }
.sr-row-kicker { display: flex; align-items: baseline; gap: 8px; font-family: 'proxima-nova', var(--font-sans); font-weight: 400; font-size: 12px; line-height: 16.8px; letter-spacing: 2px; text-transform: uppercase; }
.sr-row-kicker :is(p, div, time, a) { margin: 0; font: inherit; letter-spacing: inherit; color: inherit; text-decoration: none; }
.sr-row-kicker .twm-slash { opacity: 0.6; }
.sr-row-kicker .wp-block-post-date { color: var(--twm-secondary); }
:is(#sr-body, .twm-anchor--sr-body) h3.wp-block-post-title { margin: 12px 0 0; font-family: var(--font-headline); font-weight: 400; font-size: 22px; line-height: 30px; letter-spacing: 0.5px; text-wrap: pretty; }
:is(#sr-body, .twm-anchor--sr-body) h3.wp-block-post-title a { color: var(--text-body); text-decoration: none; }
.sr-row-excerpt, .sr-row-excerpt p { margin: 0; max-width: 640px; font-family: var(--font-soft); font-weight: 400; font-size: 16px; line-height: 24px; letter-spacing: 0.2px; color: var(--twm-secondary); text-wrap: pretty; }
.sr-row-excerpt { margin-top: 10px; }
.sr-noresults { border-top: 1px solid var(--twm-hairline); padding-top: 32px; }
.sr-noresults p { margin: 0; font-family: var(--font-headline); font-weight: 400; font-size: 22px; line-height: 30px; letter-spacing: 0.5px; color: var(--twm-secondary); }
:is(#sr-more, .twm-anchor--sr-more) { max-width: 1360px; box-sizing: border-box; margin: 0 auto; padding: 48px 80px 0; display: none; }
:is(#sr-more, .twm-anchor--sr-more).is-shown { display: block; }
:is(#sr-more, .twm-anchor--sr-more) .wp-block-button { margin: 0; }
:is(#sr-more, .twm-anchor--sr-more) .wp-block-button__link { display: inline-block; border-radius: 0; background: none; font-family: 'proxima-nova', var(--font-sans); font-weight: 400; font-size: 12px; line-height: 16.8px; letter-spacing: 2px; text-transform: uppercase; color: var(--text-body); text-decoration: none; border: 1px solid var(--twm-hairline); padding: 13px 26px; cursor: pointer; transition: background .2s ease, border-color .2s ease, color .2s ease; }
:is(#sr-more, .twm-anchor--sr-more) .wp-block-button__link:hover { background: var(--twm-ink); border-color: var(--twm-ink); color: var(--twm-white); }

/* ---- Calendar base geometry (core-block build) ---- */
:is(#cal-head, .twm-anchor--cal-head) { max-width: 1360px; box-sizing: border-box; margin: 0 auto; padding: 206px 80px 0; display: flex; align-items: flex-end; justify-content: space-between; gap: 64px; }
.cal-crumb { display: flex; align-items: baseline; gap: 5px; font-family: 'proxima-nova', var(--font-sans); font-weight: 400; font-size: 12px; line-height: 16.8px; letter-spacing: 2px; text-transform: uppercase; color: var(--text-muted); }
.cal-crumb p { margin: 0; font: inherit; letter-spacing: inherit; color: inherit; }
.cal-crumb a { color: var(--text-body); text-decoration: none; }
.cal-crumb .twm-slash { opacity: 0.6; }
:is(#cal-title, .twm-anchor--cal-title) { margin: 22px 0 0; max-width: 860px; font-family: var(--font-headline); font-weight: 400; font-size: 48px; line-height: 60px; letter-spacing: 1.5px; text-wrap: pretty; }
.cal-dek { margin: 0; width: 420px; flex: none; font-family: var(--font-soft); font-weight: 400; font-size: 16px; line-height: 24px; letter-spacing: 0.2px; color: var(--text-body); text-wrap: pretty; }
:is(#cal-months, .twm-anchor--cal-months) { max-width: 1360px; box-sizing: border-box; margin: 0 auto; padding: 80px 80px 0; }
:is(#cal-tabs, .twm-anchor--cal-tabs) { display: flex; align-items: center; justify-content: space-between; gap: 40px; border-bottom: 1px solid var(--twm-hairline); padding-bottom: 14px; }
:is(#cal-tabs, .twm-anchor--cal-tabs) > nav { display: flex; align-items: center; gap: 36px; }
.cal-tab { margin: 0; line-height: 16.8px; }
.cal-tab a { font-family: 'proxima-nova', var(--font-sans); font-weight: 400; font-size: 12px; line-height: 16.8px; letter-spacing: 2px; text-transform: uppercase; text-decoration: none; cursor: pointer; white-space: nowrap; color: var(--text-muted); }
.cal-tab.is-active a { color: var(--text-body); }
:is(#cal-span, .twm-id--cal-span) { margin: 0; font-family: 'proxima-nova', var(--font-sans); font-weight: 400; font-size: 12px; line-height: 16.8px; letter-spacing: 2px; text-transform: uppercase; color: var(--text-muted); white-space: nowrap; }
:is(#cal-grid, .twm-anchor--cal-grid) { margin-top: 40px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 36px; }
:is(#cal-grid, .twm-anchor--cal-grid) .cal-cell, :is(#cal-grid, .twm-anchor--cal-grid) .cal-cell > .wp-block-query, :is(#cal-grid, .twm-anchor--cal-grid) .cal-cell ul.wp-block-post-template { display: contents; }
:is(#cal-grid, .twm-anchor--cal-grid) li.wp-block-post, :is(#cal-grid, .twm-anchor--cal-grid) .wp-block-query-no-results { display: block; list-style: none; margin: 0; padding: 0; }
.cal-cell-media { position: relative; aspect-ratio: 2/3; background: var(--surface-band); overflow: hidden; }
.cal-cell-media figure.wp-block-post-featured-image { position: absolute; inset: 0; margin: 0; }
.cal-cell-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; }
.cal-cell-meta { margin-top: 18px; display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
.cal-month { margin: 0; font-family: 'proxima-nova', var(--font-sans); font-weight: 400; font-size: 12px; line-height: 16.8px; letter-spacing: 2px; text-transform: uppercase; color: var(--text-body); }
.cal-place { margin: 0; font-family: 'proxima-nova', var(--font-sans); font-weight: 400; font-size: 12px; line-height: 16.8px; letter-spacing: 2px; text-transform: uppercase; color: var(--text-muted); }
.cal-place .wp-block-post-terms { margin: 0; font: inherit; letter-spacing: inherit; }
.cal-place .wp-block-post-terms a { color: inherit; text-decoration: none; }
.cal-place .wp-block-post-terms a:not(:first-of-type), .cal-place .wp-block-post-terms__separator { display: none; }
:is(#cal-grid, .twm-anchor--cal-grid) h3.wp-block-post-title { margin: 14px 0 0; font-family: var(--font-headline); font-weight: 400; font-size: 22px; line-height: 30px; letter-spacing: 0.5px; text-wrap: pretty; }
:is(#cal-grid, .twm-anchor--cal-grid) h3.wp-block-post-title a { display: block; color: var(--text-body); text-decoration: none; }
.cal-awaiting { margin: 14px 0 0; font-family: var(--font-headline); font-weight: 400; font-size: 22px; line-height: 30px; letter-spacing: 0.5px; text-wrap: pretty; color: var(--text-body); }
:is(#cal-ink, .twm-anchor--cal-ink) { margin-top: 80px; background: var(--twm-ink); color: var(--twm-white); padding: 72px 0 80px; }
:is(#cal-ink, .twm-anchor--cal-ink):not(:has(.cal-book)) { display: none; }
:is(#cal-ink-in, .twm-anchor--cal-ink-in) { max-width: 1360px; box-sizing: border-box; margin: 0 auto; padding: 0 80px; }
:is(#cal-ink-in, .twm-anchor--cal-ink-in) > h2 { margin: 0; font-family: var(--font-headline); font-style: italic; font-weight: 400; font-size: 30px; line-height: 40px; letter-spacing: 1px; color: var(--twm-white); }
:is(#cal-ink-grid, .twm-anchor--cal-ink-grid) { margin-top: 40px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; }
:is(#cal-ink-grid, .twm-anchor--cal-ink-grid) > .wp-block-query, :is(#cal-ink-grid, .twm-anchor--cal-ink-grid) ul.wp-block-post-template, :is(#cal-ink-grid, .twm-anchor--cal-ink-grid) li.wp-block-post { display: contents; }
.cal-book { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; color: var(--twm-white); }
.cal-book-top { display: flex; width: 100%; align-items: baseline; justify-content: space-between; gap: 12px; }
.cal-book-top p { margin: 0; font-family: 'proxima-nova', var(--font-sans); font-weight: 400; font-size: 12px; line-height: 16.8px; letter-spacing: 2px; text-transform: uppercase; color: rgba(254, 254, 253, 0.55); }
.cal-book-media { position: relative; display: block; width: 100%; aspect-ratio: 4/5; overflow: hidden; }
.cal-book-media figure.wp-block-post-featured-image { position: absolute; inset: 0; margin: 0; }
.cal-book-media figure.wp-block-post-featured-image a { display: block; position: static; }
.cal-book-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; }
.cal-book:not(:has(.cal-book-media img)) .cal-book-media { display: none; }
:is(#cal-ink-grid, .twm-anchor--cal-ink-grid) h3.wp-block-post-title { margin: 0; font-family: var(--font-headline); font-weight: 400; font-size: 22px; line-height: 30px; letter-spacing: 0.5px; text-wrap: pretty; }
:is(#cal-ink-grid, .twm-anchor--cal-ink-grid) h3.wp-block-post-title a { color: var(--twm-white); text-decoration: none; }
.cal-book-by { margin: 0; font-family: 'proxima-nova', var(--font-sans); font-weight: 400; font-size: 12px; line-height: 16.8px; letter-spacing: 2px; text-transform: uppercase; color: rgba(254, 254, 253, 0.55); }
.cal-book-by:empty { display: none; }
:is(#cal-glance, .twm-anchor--cal-glance) { max-width: 1360px; box-sizing: border-box; margin: 0 auto; padding: 80px 80px 0; }
.cal-glance-head { display: flex; align-items: baseline; gap: 28px; }
.cal-glance-head h2 { margin: 0; font-family: var(--font-headline); font-style: italic; font-weight: 400; font-size: 30px; line-height: 40px; letter-spacing: 1px; white-space: nowrap; }
.cal-glance-head hr.twm-rule { flex: 1; height: 1px; border: 0; margin: 0; background: var(--twm-hairline); opacity: 1; }
.cal-glance-rows { margin-top: 28px; }
.cal-glance-rows .cal-row, .cal-glance-rows .wp-block-query, .cal-glance-rows ul.wp-block-post-template, .cal-glance-rows li.wp-block-post, .cal-glance-rows .wp-block-query-no-results { display: contents; }
.cal-glance-rows ul.wp-block-post-template { margin: 0; padding: 0; }
.cal-row-in { display: grid; grid-template-columns: 96px 240px 1fr auto; align-items: baseline; gap: 24px; padding: 18px 0; border-top: 1px solid var(--twm-hairline); }
.cal-row-in .cal-month { color: var(--text-body); }
.cal-row-in h3.wp-block-post-title { margin: 0; font-family: var(--font-headline); font-weight: 400; font-size: 22px; line-height: 30px; letter-spacing: 0.5px; }
.cal-row-in h3.wp-block-post-title a { color: var(--text-body); text-decoration: none; }
.cal-row-in .cal-awaiting { margin: 0; }
.cal-season-tag { margin: 0; font-family: 'proxima-nova', var(--font-sans); font-weight: 400; font-size: 12px; line-height: 16.8px; letter-spacing: 2px; text-transform: uppercase; color: var(--text-muted); }
/* WP flow block-gap must not leak into the calendar's flex/grid containers (see homepage note) */
:is(#cal-head, .twm-anchor--cal-head) > * + *, .cal-head-left > * + *, .cal-crumb > * + *, :is(#cal-tabs, .twm-anchor--cal-tabs) > * + *, .cal-tabnav > * + *,
.cal-cell-meta > * + *, .cal-place > * + *, .cal-book > * + *, .cal-book-top > * + *,
.cal-row-in > * + *, .cal-glance-head > * + *, :is(#cal-glance, .twm-anchor--cal-glance) > * + *, :is(#cal-ink-in, .twm-anchor--cal-ink-in) > * + *,
:is(#cal-months, .twm-anchor--cal-months) > * + * { margin-block-start: 0; }
/* …but the explicit design margins (set on the children the blanket also matches) stay */
.cal-head-left > :is(#cal-title, .twm-anchor--cal-title) { margin-block-start: 22px; }
:is(#cal-months, .twm-anchor--cal-months) > :is(#cal-grid, .twm-anchor--cal-grid) { margin-block-start: 40px; }
:is(#cal-ink-in, .twm-anchor--cal-ink-in) > :is(#cal-ink-grid, .twm-anchor--cal-ink-grid) { margin-block-start: 40px; }
:is(#cal-glance, .twm-anchor--cal-glance) > .cal-glance-rows { margin-block-start: 28px; }
