/* Historic Sodus Point: everything theme.json can't express.
   Colors and fonts come from theme.json presets, so changes made in
   Appearance → Editor → Styles carry through here. */

:root {
	--hsp-ink: var(--wp--preset--color--ink, #16202a);
	--hsp-muted: var(--wp--preset--color--muted, #55606b);
	--hsp-line: var(--wp--preset--color--line, #d8dde2);
	--hsp-surface: var(--wp--preset--color--surface, #f2f4f6);
	--hsp-accent: var(--wp--preset--color--accent, #c44116);
	--hsp-accent-dark: var(--wp--preset--color--accent-dark, #99310f);
	--hsp-accent-pale: var(--wp--preset--color--accent-pale, #fbe9e1);
	--hsp-radius: 6px;
	--hsp-sans: var(--wp--preset--font-family--sans);
	--hsp-serif: var(--wp--preset--font-family--serif);
}

/* ---------- Basics */
img { max-width: 100%; height: auto; }
body { overflow-wrap: break-word; }
:where(.item-content, .page-content, .wp-block-post-excerpt, .hsp-sources) a { overflow-wrap: anywhere; } /* long web addresses in old pages */
:where(a, button, input, select, summary, [tabindex]):focus-visible { outline: 3px solid var(--hsp-accent); outline-offset: 2px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.skip-link:focus { position: fixed !important; z-index: 1000; top: 8px; left: 8px; width: auto; height: auto; clip: auto; padding: 10px 14px; background: #fff; color: var(--hsp-ink); border: 2px solid var(--hsp-ink); }
.wp-site-blocks { min-height: 100vh; display: flex; flex-direction: column; }
.wp-site-blocks > main, .wp-site-blocks > .wp-block-group:has(> main) { flex: 1; }
.wp-site-blocks > * + * { margin-block-start: 0; }
html { scroll-padding-top: 96px; }

/* ---------- Header */
.site-header { position: sticky; top: 0; z-index: 50; background: #fff; border-bottom: 1px solid var(--hsp-line); }
.admin-bar .site-header { top: var(--wp-admin--admin-bar--height, 32px); }
.site-header__bar { gap: 0.5rem 1.5rem; padding-block: 0.65rem; }
.site-brand { margin: 0; font-family: var(--hsp-sans); line-height: 1; }
.site-brand a { --mark-w: 36px; --mark-h: 55px; position: relative; isolation: isolate; display: inline-flex; align-items: flex-end; gap: 0.55rem; color: var(--hsp-ink); text-decoration: none; }
/* The mark: the Sodus Point outer pier light (navy here, white in the footer), lit lantern, red cap */
.site-brand__mark { position: relative; z-index: 2; flex: none; width: var(--mark-w); height: var(--mark-h); overflow: visible; fill: currentColor; color: var(--c-navy); --hole: #fff; }
.site-brand__hole { fill: var(--hole); }
.site-brand__rail { fill: none; stroke: currentColor; stroke-width: 0.8; }
.site-brand__lamp { fill: var(--c-sun); transition: fill 0.3s; }
.site-brand__cap { fill: var(--c-orange); }
.site-brand__glow { fill: var(--c-sun); opacity: 0; transition: opacity 0.3s; }
.site-brand__words { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 2px; padding-bottom: 3px; }
/* …and its beam: a cone of light from the lantern (about a fifth of the way down the mark),
   shining out to the right behind the name */
.site-brand a::after {
	content: "";
	position: absolute;
	z-index: 0;
	left: calc(var(--mark-w) * 0.47);
	top: calc(var(--mark-h) * 0.204 - 20px);
	width: 13.5rem;
	height: 40px;
	background: linear-gradient(90deg, rgb(242 182 50 / 0.75), rgb(242 182 50 / 0.3) 45%, rgb(242 182 50 / 0));
	clip-path: polygon(0 45%, 100% 0, 100% 100%, 0 55%);
	pointer-events: none;
	transform-origin: 0 50%;
	transition: transform 0.6s cubic-bezier(0.2, 0.7, 0.2, 1), opacity 0.35s;
}
/* On the dark footer the beam adds its light to the navy (screen blend) */
.site-brand--footer a { isolation: auto; }
.site-brand--footer a::after { background: linear-gradient(90deg, rgb(242 182 50 / 0.9), rgb(242 182 50 / 0.4) 45%, rgb(242 182 50 / 0)); mix-blend-mode: screen; }
/* Where the beam always shows (the footer, touch screens), the lantern glows with it */
.site-brand--footer .site-brand__glow { opacity: 0.4; }
@media (hover: none) { .site-brand__glow { opacity: 0.4; } }
/* In the header the light is dark until the pointer is over the header (or something in it has
   keyboard focus): then the lantern glows and the beam swings out from it, like a lighthouse
   beam coming round. Over the logo itself it reaches a little further. Touch screens can't
   hover, so there (and in the footer) the beam always shows. */
@media (hover: hover) {
	.site-header .site-brand a::after { opacity: 0; transform: rotate(-14deg) scaleX(0.15); }
	.site-header:is(:hover, :focus-within) .site-brand a::after { opacity: 1; transform: none; }
	.site-header:is(:hover, :focus-within) .site-brand__glow { opacity: 0.45; }
	.site-header:is(:hover, :focus-within) .site-brand__lamp { fill: #ffd66e; }
}
.site-brand a:is(:hover, :focus-visible) .site-brand__glow { opacity: 0.45; }
.site-brand a:is(:hover, :focus-visible) .site-brand__lamp { fill: #ffd66e; }
.site-brand a:is(:hover, :focus-visible)::after,
.site-header .site-brand a:is(:hover, :focus-visible)::after { opacity: 1; transform: scaleX(1.12); }
@media (prefers-reduced-motion: reduce) { .site-brand__lamp, .site-brand__glow, .site-brand a::after { transition: none; } }
.site-brand__small { font-size: 0.78rem; font-weight: 650; letter-spacing: 0.06em; text-transform: uppercase; color: var(--hsp-muted); }
.site-brand__name { font-size: 1.45rem; font-weight: 800; letter-spacing: -0.02em; color: var(--c-navy); }
.site-nav .wp-block-navigation-item__content { display: block; padding: 0.55rem 0.7rem; border-radius: var(--hsp-radius); color: var(--hsp-ink); text-decoration: none; }
.site-nav .wp-block-navigation-item__content:hover { background: var(--hsp-surface); }
.site-nav .current-menu-item > .wp-block-navigation-item__content,
.site-nav .wp-block-navigation-item__content[aria-current] { box-shadow: inset 0 -3px 0 var(--hsp-accent); border-radius: 0; }
.site-search { flex: 0 1 300px; margin: 0; }
.site-search .wp-block-search__inside-wrapper { border: 1px solid var(--hsp-line); border-radius: var(--hsp-radius); padding: 2px; background: #fff; }
.site-search .wp-block-search__input { border: 0; padding: 0.45rem 0.6rem; font-size: 0.95rem; min-width: 0; }
.site-search .wp-block-search__button { margin: 0; padding: 0.4rem 0.55rem; background: transparent; color: var(--hsp-ink); }
.site-search .wp-block-search__button:hover { background: var(--hsp-surface); }

@media (min-width: 600px) and (max-width: 1279px) {
	/* Two rows: brand and search, then the menu */
	.site-header__bar { display: grid !important; grid-template-columns: 1fr minmax(180px, 300px); }
	.site-nav { grid-column: 1 / -1; grid-row: 2; margin-inline: -0.55rem; }
	.site-nav .wp-block-navigation__container { flex-wrap: wrap; row-gap: 0.25rem; }
	.site-nav .wp-block-navigation-item__content { padding-inline: 0.55rem; }
}
@media (min-width: 600px) and (max-width: 900px) {
	/* nine menu items on one row on small tablets */
	.site-nav { font-size: 0.92rem; }
	.site-nav .wp-block-navigation-item__content { padding-inline: 0.42rem; }
	.site-nav .nav-share .wp-block-navigation-item__content { padding-inline: 0.7rem; margin-left: 0.2rem; }
	.site-search { grid-column: 2; grid-row: 1; }
}
@media (max-width: 599px) {
	.site-header__bar { flex-wrap: nowrap !important; }
	.site-brand__name { font-size: 1.25rem; }
	.site-brand a { --mark-w: 30px; --mark-h: 46px; }
	.site-brand a::after { width: 9.5rem; }
	.site-search { order: 3; flex: 0 0 auto; }
	.site-search .wp-block-search__input { width: 0; padding: 0; position: absolute; opacity: 0; pointer-events: none; }
	.site-search.is-open { position: absolute; left: 0; right: 0; top: 100%; padding: 0.6rem clamp(1rem, 4vw, 2.5rem); background: #fff; border-bottom: 1px solid var(--hsp-line); }
	.site-search.is-open .wp-block-search__input { width: 100%; padding: 0.55rem 0.6rem; position: static; opacity: 1; pointer-events: auto; font-size: 1rem; }
	.site-nav { order: 2; margin-left: auto; }
	.site-nav .wp-block-navigation__responsive-container-open { padding: 8px; }
	.site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 1.5rem; padding: 0.4rem 0; }
}

/* ---------- Page headings */
.page-title, .item-title { margin-block: 0.25rem 0.5rem; text-wrap: balance; }
.page-intro { max-width: 46rem; color: var(--hsp-muted); font-size: 1.125rem; margin-top: 0; }
.list-intro { margin-left: 0 !important; }
.item-kicker { margin: 0; color: var(--hsp-muted); font-weight: 600; }
.item-head { margin-bottom: var(--wp--preset--spacing--40); }

/* ---------- Breadcrumbs */
.hsp-breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 0.25rem; margin: 0 0 0.5rem; padding: 0; list-style: none; font-size: var(--wp--preset--font-size--small); color: var(--hsp-muted); }
.hsp-breadcrumbs li + li::before { content: "›"; margin-right: 0.3rem; color: var(--hsp-line); color: #9aa3ac; }
.hsp-breadcrumbs a { color: var(--hsp-muted); text-decoration: none; }
.hsp-breadcrumbs a:hover { color: var(--hsp-accent); text-decoration: underline; }
.hsp-breadcrumbs [aria-current] { display: none; }

/* ---------- Cards and grids */
.hsp-grid, .hsp-cards--card { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); gap: 2rem 1.5rem; margin: 0; padding: 0; list-style: none; }
.hsp-cards--row, .hsp-results, .hsp-series-list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.25rem; margin: 0; padding: 0; list-style: none; }
.hsp-cards--mini { display: grid; gap: 0.6rem; }
.hsp-card { position: relative; margin: 0; }
.hsp-card__media { margin: 0 0 0.75rem; aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--hsp-radius); background: var(--hsp-surface); }
.hsp-card__media img, .hsp-card__img { display: block; width: 100%; height: 100% !important; object-fit: cover; transition: transform .3s ease; }
.hsp-card:hover .hsp-card__media img { transform: scale(1.03); }
.hsp-card__media--empty { display: grid; place-items: center; background: var(--hsp-surface); }
.hsp-card__media--empty span { color: var(--hsp-muted); font-weight: 650; font-size: 0.95rem; letter-spacing: 0.01em; }
.hsp-card__media--empty span::before { content: ""; display: block; width: 28px; height: 3px; margin: 0 auto 0.5rem; background: var(--hsp-accent); border-radius: 2px; }
.hsp-card__body { min-width: 0; overflow-wrap: anywhere; }
.hsp-card__body > * { margin-block: 0; }
.hsp-card__type { color: var(--hsp-muted); font-size: var(--wp--preset--font-size--small); font-weight: 600; margin-bottom: 0.2rem !important; }
.hsp-card__title { font-size: 1.15rem !important; font-weight: 700; line-height: 1.25; letter-spacing: -0.01em; margin: 0 0 0.25rem !important; }
.hsp-card__title a { color: var(--hsp-ink); text-decoration: none; }
.hsp-card__title a::after { content: ""; position: absolute; inset: 0; } /* whole card is the link */
.hsp-card__title a:hover, .hsp-card:hover .hsp-card__title a { color: var(--hsp-accent); }
.hsp-card__meta, .hsp-card-meta.hsp-card__meta { color: var(--hsp-muted); font-size: var(--wp--preset--font-size--small); margin: 0 !important; }
.hsp-card__summary { color: var(--hsp-muted); font-size: 0.95rem; margin-top: 0.35rem !important; }
.hsp-card__num { display: inline-grid; place-items: center; width: 1.6rem; height: 1.6rem; margin-right: 0.5rem; border-radius: 50%; background: var(--hsp-ink); color: #fff; font-size: 0.85rem; vertical-align: 0.1em; }
.hsp-card--row { display: grid !important; grid-template-columns: clamp(96px, 26%, 200px) minmax(0, 1fr); gap: 1rem; align-items: start; }
.hsp-card--row .hsp-card__media { margin: 0; }
.hsp-card--mini .hsp-card__title { font-size: 1rem !important; }
.hsp-card .wp-block-post-featured-image a { display: block; height: 100%; }
.hsp-card .wp-block-post-excerpt__more-text { display: none; }
.hsp-list .wp-block-post-excerpt__excerpt { margin: 0; }
.hsp-empty { padding: 2rem; background: var(--hsp-surface); border-radius: var(--hsp-radius); }

.wp-block-query-pagination { margin-top: var(--wp--preset--spacing--50) !important; gap: 0.5rem; font-weight: 600; }
.wp-block-query-pagination a, .wp-block-query-pagination .page-numbers { padding: 0.35rem 0.7rem; border-radius: var(--hsp-radius); text-decoration: none; }
.wp-block-query-pagination .page-numbers.current { background: var(--hsp-ink); color: #fff; }
.wp-block-query-pagination a:hover { background: var(--hsp-surface); }

/* ---------- Filters */
.hsp-filters { margin-block: var(--wp--preset--spacing--40) var(--wp--preset--spacing--40); }
.hsp-filters__form { display: flex; flex-wrap: wrap; gap: 0.75rem 1rem; align-items: end; padding: 1rem; background: var(--hsp-surface); border-radius: var(--hsp-radius); }
.hsp-filters__field { display: grid; gap: 0.25rem; font-size: var(--wp--preset--font-size--small); font-weight: 650; flex: 1 1 150px; max-width: 240px; }
.hsp-filters__field--search { flex: 2 1 220px; max-width: 340px; }
.hsp-filters select, .hsp-filters input[type="search"] { width: 100%; font: inherit; font-weight: 400; font-size: 1rem; padding: 0.5rem 0.6rem; border: 1px solid #b9c1c8; border-radius: var(--hsp-radius); background: #fff; color: var(--hsp-ink); }
.hsp-filters__actions { display: flex; gap: 0.75rem; align-items: center; }
.hsp-filters__clear { font-weight: 600; }
.hsp-filters__count { margin: 0.75rem 0 0; color: var(--hsp-muted); font-size: var(--wp--preset--font-size--small); }
.js .hsp-filters .hsp-button { display: none; }
.hsp-button { display: inline-block; padding: 0.55rem 1rem; border: 0; border-radius: var(--hsp-radius); background: var(--c-navy); color: #fff; font: 650 1rem/1.2 var(--hsp-sans); cursor: pointer; text-decoration: none; }
.hsp-button:hover { background: var(--c-navy-dark); color: #fff; }

/* ---------- Item pages */
.item-lead-photo { margin-block: 0 var(--wp--preset--spacing--40); }
.item-lead-photo img { border-radius: var(--hsp-radius); }
.item-split { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--wp--preset--spacing--40); }
.item-split > * { margin: 0 !important; }
.item-split__aside { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.25rem; align-content: start; }
.item-split__aside > * { margin: 0 !important; }
@media (min-width: 960px) {
	.item-split { grid-template-columns: minmax(0, 1fr) 340px; gap: 3.5rem; align-items: start; }
	.item-split__main { grid-column: 1; grid-row: 1; max-width: 720px; }
	.item-split__aside { grid-column: 2; grid-row: 1; position: sticky; top: 96px; }
}

/* The text of a story (and of ordinary pages) is set for reading; the site's own blocks stay in the sans. */
.item-content, .page-content:not(.page-content--wide) > :where(p, ul, ol, blockquote) { font-family: var(--hsp-serif); font-size: var(--wp--preset--font-size--reading); line-height: 1.65; }
:where(.hsp-collection, .hsp-topics, .hsp-explore, .hsp-photos, .hsp-map-block, .hsp-timeline, .hsp-filters, .hsp-facts, .hsp-series, .hsp-related, .hsp-tour, .hsp-sources) { font-family: var(--hsp-sans); font-size: var(--wp--preset--font-size--medium); line-height: 1.5; }
.item-content > * { margin-block: 0 1.1em; }
.item-content :where(h2, h3, h4) { font-family: var(--hsp-sans); margin-block: 1.8em 0.5em; }
.item-content h2 { font-size: 1.6rem; }
.item-content h3 { font-size: 1.3rem; }
.item-content a { text-decoration-thickness: 1px; text-underline-offset: 0.15em; }
.item-content figure { margin-block: 1.75em; }
.item-content .wp-block-image img { border-radius: 4px; }
.item-content figcaption, .item-content .wp-element-caption { margin-top: 0.5rem; text-align: left; }
.item-content .wp-block-image.alignright, .item-content .wp-block-image .alignright { float: right; max-width: 45%; margin: 0.3em 0 1em 1.5em; }
.item-content .wp-block-image.alignleft, .item-content .wp-block-image .alignleft { float: left; max-width: 45%; margin: 0.3em 1.5em 1em 0; }
@media (max-width: 599px) {
	.item-content .wp-block-image.alignright, .item-content .wp-block-image.alignleft,
	.item-content .wp-block-image .alignright, .item-content .wp-block-image .alignleft { float: none; max-width: 100%; margin: 1.5em 0; }
}
.item-content::after { content: ""; display: table; clear: both; }
/* Galleries keep each photo's own shape, packed in columns. */
.item-content .wp-block-gallery.has-nested-images:not(.is-cropped) { display: block; columns: 3 200px; column-gap: 0.75rem; }
.item-content .wp-block-gallery.has-nested-images:not(.is-cropped) figure.wp-block-image { display: block; width: 100% !important; margin: 0 0 0.75rem; break-inside: avoid; }
.item-content .wp-block-gallery.has-nested-images:not(.is-cropped) figure.wp-block-image img { width: 100%; height: auto; }
.item-content .wp-block-gallery.has-nested-images:not(.is-cropped) figure.wp-block-image figcaption { position: static; background: none; color: var(--hsp-muted); padding: 0.35rem 0 0; font-size: var(--wp--preset--font-size--small); text-align: left; max-height: none; overflow: visible; }
.item-content .wp-block-gallery.has-nested-images:not(.is-cropped) figure.wp-block-image figcaption::before { display: none; }
.item-content .wp-block-embed { margin-block: 2em; }
.item-content .wp-block-quote { font-family: var(--hsp-serif); }
/* PDFs: the document in a viewer, with its name and a Download button under it.
   (Phones and browsers without a PDF viewer show just the name and the button.) */
.wp-block-file { font-family: var(--hsp-sans); font-size: 1rem; display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem 1rem; padding: 0.75rem; background: var(--c-navy-pale); border-radius: var(--hsp-radius); }
.wp-block-file .wp-block-file__embed { display: block; width: 100%; max-height: 80vh; margin: 0 0 0.15rem; border: 1px solid var(--hsp-line); border-radius: 4px; background: #fff; }
.wp-block-file > a:not(.wp-block-file__button) { flex: 1 1 14rem; font-weight: 650; color: var(--c-navy-dark); padding-left: 0.25rem; }
.wp-block-file > a:not(.wp-block-file__button)::before { content: "PDF"; display: inline-block; margin-right: 0.55rem; padding: 0.1rem 0.4rem; border-radius: 3px; background: var(--c-navy); color: #fff; font-size: 0.72rem; font-weight: 750; letter-spacing: 0.04em; vertical-align: 0.12em; }
.wp-block-file .wp-block-file__button { background: var(--c-navy); color: #fff; border-radius: var(--hsp-radius); padding: 0.5rem 1.1rem; font-weight: 650; text-decoration: none; margin: 0; }
.wp-block-file .wp-block-file__button:hover { background: var(--c-navy-dark); color: #fff; }
.item-content table { width: 100%; border-collapse: collapse; }
@media (max-width: 720px) { .item-content table { display: block; overflow-x: auto; font-size: 0.9rem; } } /* wide old tables scroll on their own */
.item-content td, .item-content th { border: 1px solid var(--hsp-line); padding: 0.4rem 0.6rem; vertical-align: top; }
.is-style-framed img { padding: 6px; background: #fff; border: 1px solid var(--hsp-line); box-shadow: 0 1px 4px rgb(0 0 0 / 0.08); }

/* Key facts */
.hsp-facts { font-size: 0.95rem; }
.hsp-facts__list { margin: 0; display: grid; gap: 0; border-top: 1px solid var(--hsp-line); }
.hsp-facts__row { display: grid; grid-template-columns: 7.5rem minmax(0, 1fr); gap: 0.75rem; padding: 0.6rem 0; border-bottom: 1px solid var(--hsp-line); }
.hsp-facts dt { font-weight: 650; color: var(--hsp-muted); }
.hsp-facts dd { margin: 0; }
.hsp-facts.is-inline .hsp-facts__list { display: flex; flex-wrap: wrap; gap: 0.4rem 1.75rem; border: 0; }
.hsp-facts.is-inline .hsp-facts__row { display: block; padding: 0; border: 0; }
.hsp-facts.is-inline dt { font-size: var(--wp--preset--font-size--small); font-weight: 600; }

/* Series */
.hsp-series { margin-block: 1.5rem; padding: 1rem 1.25rem; border: 1px solid var(--hsp-line); border-radius: var(--hsp-radius); font-size: 0.95rem; }
.hsp-series__label { margin: 0 0 0.6rem; font-weight: 650; }
.hsp-series__nav { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.hsp-series__nav a { display: grid; gap: 0.1rem; text-decoration: none; color: var(--hsp-ink); font-weight: 650; line-height: 1.3; }
.hsp-series__nav a span { font-size: var(--wp--preset--font-size--small); color: var(--hsp-accent); font-weight: 700; }
.hsp-series__nav a:hover { color: var(--hsp-accent); }
.hsp-series__next { grid-column: 2; text-align: right; }
.hsp-series__prev span::before { content: "← "; }
.hsp-series__next span::after { content: " →"; }
.hsp-series__all { margin-top: 0.75rem; }
.hsp-series__all summary { cursor: pointer; color: var(--hsp-muted); font-weight: 600; }
.hsp-series__all ol { margin: 0.5rem 0 0; padding-left: 1.5rem; }
.hsp-series__all [aria-current] { font-weight: 700; }
.hsp-series.is-top .hsp-series__nav, .hsp-series.is-top .hsp-series__all { display: none; }
.hsp-series.is-top { padding: 0; border: 0; margin-block: 0.75rem 0; }
.hsp-series.is-top .hsp-series__label { margin: 0; font-weight: 600; color: var(--hsp-muted); }

/* Sources */
.hsp-sources { margin-block: var(--wp--preset--spacing--50); padding-top: 1rem; border-top: 1px solid var(--hsp-line); font-size: 0.95rem; color: var(--hsp-muted); }
.hsp-sources__heading { font-size: 1rem !important; margin: 0 0 0.5rem; color: var(--hsp-ink); }
.hsp-sources ul { margin: 0; padding-left: 1.2rem; }

/* Connected items */
.hsp-related { margin-top: var(--wp--preset--spacing--60); display: grid; gap: var(--wp--preset--spacing--50); }
.hsp-related__group { padding-top: 1.5rem; border-top: 2px solid var(--hsp-ink); }
.hsp-related__heading { font-size: 1.35rem !important; margin: 0 0 1.25rem; }
.hsp-related__all { margin: 1.25rem 0 0; font-weight: 650; }
.hsp-related .hsp-cards--row { grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: 1.25rem 2rem; }

/* ---------- Maps */
.hsp-map-block { margin-block: var(--wp--preset--spacing--40); }
.hsp-map-block--all { display: grid; gap: 0.75rem; }
.hsp-map-legend { display: flex; flex-wrap: wrap; gap: 0.35rem 1rem; margin: 0; padding: 0; border: 0; font-size: var(--wp--preset--font-size--small); }
.hsp-map-legend legend { float: left; margin-right: 0.5rem; font-weight: 700; }
.hsp-map-legend__item { display: inline-flex; align-items: center; gap: 0.35rem; cursor: pointer; }
.hsp-map-legend__count { color: var(--hsp-muted); }
.hsp-map-legend__swatch { width: 12px; height: 12px; border-radius: 50%; border: 2px solid #fff; box-shadow: 0 0 0 1px rgb(0 0 0 / .25); background: #20242a; }
.hsp-kind-mural { background: #b5462c; } .hsp-kind-plaque, .hsp-kind-panel { background: #1f5f7a; }
.hsp-kind-house, .hsp-kind-hotel { background: #6b5a3e; } .hsp-kind-church, .hsp-kind-school, .hsp-kind-public { background: #5b4a7a; }
.hsp-kind-business, .hsp-kind-club, .hsp-kind-park { background: #3d6b45; } .hsp-kind-nature { background: #2f7a6b; } .hsp-kind-cemetery { background: #555b63; }
.hsp-map__links { margin: 0.5rem 0 0; font-size: var(--wp--preset--font-size--small); font-weight: 600; }
.item-split__aside .hsp-map-block { margin: 0; }

/* ---------- Walking tour */
.tour-intro { margin-bottom: var(--wp--preset--spacing--40); }
.hsp-tour { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--wp--preset--spacing--40); }
@media (min-width: 960px) {
	.hsp-tour { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; }
	.hsp-tour > .hsp-map-block { position: sticky; top: 96px; margin: 0; }
	.hsp-tour .hsp-map { height: calc(100vh - 140px) !important; max-height: 760px; }
}
.hsp-tour__stops { margin: 0; padding: 0; list-style: none; counter-reset: stop; display: grid; gap: 1.5rem; }
.hsp-tour__stop { display: grid; grid-template-columns: 2.25rem 120px 1fr; gap: 1rem; align-items: start; counter-increment: stop; padding-bottom: 1.5rem; border-bottom: 1px solid var(--hsp-line); }
.hsp-tour__stop::before { content: counter(stop); display: grid; place-items: center; width: 2.1rem; height: 2.1rem; border-radius: 50%; background: var(--hsp-ink); color: #fff; font-weight: 700; }
.hsp-tour__stop:not(:has(.hsp-tour__img)) { grid-template-columns: 2.25rem 1fr; }
.hsp-tour__img { width: 120px; height: 90px; object-fit: cover; border-radius: 4px; }
.hsp-tour__stop p { margin: 0.2rem 0 0; }
.hsp-tour__name { font-size: 1.15rem !important; margin: 0.1rem 0 0; }
.hsp-tour__name a { color: var(--hsp-ink); text-decoration: none; }
.hsp-tour__name a:hover { color: var(--hsp-accent); }
.hsp-tour__addr { color: var(--hsp-muted); font-size: var(--wp--preset--font-size--small); font-weight: 600; }
.hsp-tour__summary { font-size: 0.95rem; }
@media (max-width: 599px) {
	.hsp-tour__stop { grid-template-columns: 2.25rem 1fr; }
	.hsp-tour__img { grid-column: 2; width: 100%; height: auto; aspect-ratio: 4 / 3; }
	.hsp-tour__stop > div { grid-column: 2; }
}

/* ---------- Timeline */
.hsp-timeline__jump { position: sticky; top: 72px; z-index: 5; background: #fff; padding-block: 0.6rem; border-bottom: 1px solid var(--hsp-line); margin-bottom: 1rem; }
.hsp-timeline__jump ul { display: flex; flex-wrap: wrap; gap: 0.25rem 0.5rem; margin: 0; padding: 0; list-style: none; }
.hsp-timeline__jump a { display: block; padding: 0.3rem 0.7rem; border-radius: var(--hsp-radius); background: var(--hsp-surface); color: var(--hsp-ink); text-decoration: none; font-weight: 650; }
.hsp-timeline__jump a:hover { background: var(--hsp-accent-pale); }
.hsp-timeline__heading { font-size: 2.5rem !important; color: var(--hsp-accent); margin: 2.5rem 0 1rem; }
.hsp-timeline__list { margin: 0; padding: 0; list-style: none; border-left: 2px solid var(--hsp-line); margin-left: 4.6rem; }
.hsp-timeline__item { position: relative; display: grid; grid-template-columns: 1fr; padding: 0 0 1.5rem 1.5rem; }
.hsp-timeline__item::before { content: ""; position: absolute; left: -7px; top: 0.45rem; width: 12px; height: 12px; border-radius: 50%; background: #fff; border: 2px solid var(--hsp-accent); }
.hsp-timeline__year { position: absolute; left: -5.1rem; top: 0.15rem; width: 4.2rem; text-align: right; font-weight: 800; font-size: 1.1rem; }
.hsp-timeline__body { display: grid; grid-template-columns: 1fr auto; gap: 0 1rem; align-items: start; }
.hsp-timeline__body > p { grid-column: 1; margin: 0; }
.hsp-timeline__img { grid-column: 2; grid-row: 1 / span 3; width: 88px; height: 66px; object-fit: cover; border-radius: 4px; }
.hsp-timeline__type { font-size: var(--wp--preset--font-size--small); color: var(--hsp-muted); font-weight: 600; }
.hsp-timeline__title { font-weight: 700; font-size: 1.1rem; line-height: 1.3; }
.hsp-timeline__title a { color: var(--hsp-ink); text-decoration: none; }
.hsp-timeline__title a:hover { color: var(--hsp-accent); text-decoration: underline; }
.hsp-timeline__text { color: var(--hsp-muted); }

/* ---------- Topics */
.hsp-topics__list { margin: 0; padding: 0; list-style: none; }
.hsp-topics--grid .hsp-topics__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 1rem; }
.hsp-topics--grid a { position: relative; display: grid; grid-template-rows: auto 1fr; height: 100%; color: var(--hsp-ink); text-decoration: none; border-radius: var(--hsp-radius); overflow: hidden; background: var(--hsp-surface); }
.hsp-topics__img { display: block; aspect-ratio: 16 / 10; overflow: hidden; }
.hsp-topics__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s; }
.hsp-topics--grid a:hover img { transform: scale(1.04); }
.hsp-topics__name { padding: 0.75rem 3rem 0.85rem 0.9rem; font-weight: 700; line-height: 1.25; }
.hsp-topics__count { position: absolute; right: 0.75rem; bottom: 0.85rem; color: var(--hsp-muted); font-size: var(--wp--preset--font-size--small); font-weight: 600; }
.hsp-topics--grid a:hover .hsp-topics__name { color: var(--hsp-accent); }
.hsp-topics--list .hsp-topics__list { columns: 2 220px; }
.hsp-topics--list li { break-inside: avoid; padding: 0.3rem 0; }
.hsp-topics--list a { display: flex; gap: 0.5rem; text-decoration: none; font-weight: 650; }
.hsp-topics--list .hsp-topics__name { padding: 0; }
.hsp-topics--list .hsp-topics__count { position: static; }

/* ---------- Ways in */
.hsp-explore__list { display: grid; grid-template-columns: 1fr; gap: 1px; margin: 0; padding: 0; list-style: none; background: var(--hsp-line); border: 1px solid var(--hsp-line); border-radius: var(--hsp-radius); overflow: hidden; }
@media (min-width: 540px) { .hsp-explore__list { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .hsp-explore__list { grid-template-columns: repeat(3, 1fr); } }
.hsp-explore__list li { background: #fff; }
.hsp-explore__list a { display: grid; gap: 0.2rem; height: 100%; padding: 1.2rem 1.25rem 1.3rem; text-decoration: none; color: var(--hsp-ink); }
.hsp-explore__list a:hover { background: var(--hsp-accent-pale); }
.hsp-explore__title { font-weight: 800; font-size: 1.25rem; letter-spacing: -0.01em; }
.hsp-explore__title::after { content: " →"; color: var(--hsp-accent); }
.hsp-explore__desc { color: var(--hsp-muted); font-size: 0.95rem; }

/* ---------- Photo wall */
.hsp-photos__grid { columns: 4 220px; column-gap: 1rem; }
.hsp-photos__item { break-inside: avoid; margin: 0 0 1.25rem; }
.hsp-photos__item img { display: block; width: 100%; height: auto; border-radius: 4px; background: var(--hsp-surface); }
.hsp-photos__item figcaption { display: grid; gap: 0.1rem; margin-top: 0.4rem; font-size: var(--wp--preset--font-size--small); line-height: 1.35; color: var(--hsp-muted); }
.hsp-photos__item figcaption a { font-weight: 650; color: var(--hsp-ink); text-decoration: none; }
.hsp-photos__item figcaption a:hover { color: var(--hsp-accent); text-decoration: underline; }
.hsp-photos__pager { display: flex; flex-wrap: wrap; gap: 0.4rem; justify-content: center; margin-top: 2rem; font-weight: 600; }
.hsp-photos__pager .page-numbers { padding: 0.35rem 0.7rem; border-radius: var(--hsp-radius); text-decoration: none; }
.hsp-photos__pager .current { background: var(--hsp-ink); color: #fff; }

/* ---------- Collections */
.hsp-collection__heading { margin: 0 0 1.25rem; }
.hsp-collection__more { margin: 1.25rem 0 0; font-weight: 650; }
.hsp-collection__more a::after { content: " →"; }

/* ---------- Home page and bands */
.is-style-band { background: var(--hsp-surface); padding-block: var(--wp--preset--spacing--60) !important; }
.is-style-callout { background: var(--hsp-accent-pale); border-radius: var(--hsp-radius); padding: clamp(1.25rem, 4vw, 2.5rem) !important; }
.hsp-hero { position: relative; }
.hsp-hero.wp-block-cover { padding-inline: var(--wp--style--root--padding-left, 1.5rem); padding-block: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40); }
.hsp-hero .wp-block-cover__inner-container { width: 100%; max-width: 1240px; margin-inline: auto; }
.hsp-hero .wp-block-cover__inner-container > * { margin-inline: 0; }
.hsp-hero h1 { color: #fff; max-width: 15ch; text-wrap: balance; margin-bottom: 0.75rem; }
.hsp-hero p { max-width: 36rem; font-size: 1.2rem; color: #fff; }
.hsp-hero .wp-block-search { max-width: 34rem; }
.hsp-hero .wp-block-search__inside-wrapper { background: #fff; border-radius: var(--hsp-radius); padding: 4px; border: 0; }
.hsp-hero .wp-block-search__input { border: 0; font-size: 1.05rem; padding: 0.6rem 0.75rem; }
.hsp-hero .wp-block-search__button { margin: 0; }
.hsp-hero__credit { font-size: 0.8rem !important; opacity: 0.85; margin-top: 2rem !important; }
.hsp-section-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 0.5rem 2rem; margin-bottom: 1.25rem !important; }
.hsp-section-head > * { margin: 0 !important; }

/* ---------- Footer */
.site-footer a { color: #fff; }
.site-footer a:hover { color: #ffd2bf; }
.site-footer p { color: #c9d1d9; }
.site-brand--footer a { color: #fff; }
.site-brand--footer .site-brand__small { color: #9fb0bf; }
.site-footer__heading { font-size: 0.85rem !important; text-transform: uppercase; letter-spacing: 0.06em; color: #9fb0bf !important; margin-bottom: 0.75rem; }
.site-footer__links { margin: 0; padding: 0; list-style: none; display: grid; gap: 0.4rem; }
.site-footer__links a { text-decoration: none; font-weight: 600; }
.site-footer__links a:hover { text-decoration: underline; }
.site-footer__small { margin-top: var(--wp--preset--spacing--50) !important; padding-top: 1.25rem; border-top: 1px solid rgb(255 255 255 / .15); font-size: var(--wp--preset--font-size--small); }
.site-footer .wp-block-button__link:hover { color: #fff; }

/* ---------- Search page */
.search-again { max-width: 36rem; margin-bottom: var(--wp--preset--spacing--40); }

/* ---------- News list */
.hsp-news > li { padding-block: 1.25rem; border-bottom: 1px solid var(--hsp-line); }
.hsp-news__date { color: var(--hsp-muted); font-size: var(--wp--preset--font-size--small); font-weight: 600; }
.hsp-news__title { font-size: 1.35rem !important; margin: 0.2rem 0 0.4rem; }
.hsp-news__title a { color: var(--hsp-ink); text-decoration: none; }

/* ---------- Editor-only placeholder */
.hsp-block-placeholder { padding: 1rem; border: 1px dashed #b9c1c8; border-radius: var(--hsp-radius); color: var(--hsp-muted); font: 0.9rem/1.4 var(--hsp-sans); }

@media print {
	.site-header, .site-footer, .hsp-related, .hsp-map-block, .hsp-filters { display: none !important; }
}

/* =================================================================
   Color. Each section has its own color, used for its page band, its
   menu underline, the labels on its cards and the dots on the timeline:
   Stories orange · Places and Tours lake blue · People bay green ·
   Photos and Timeline sun yellow (the sail in the old logo).
   The colors themselves live in theme.json, so they can be changed in
   Appearance → Editor → Styles → Colors.
   ================================================================= */
:root {
	--c-orange: var(--wp--preset--color--accent, #c44116);
	--c-orange-pale: var(--wp--preset--color--accent-pale, #fbe9e1);
	--c-navy: var(--wp--preset--color--navy, #1b365d);
	--c-navy-dark: var(--wp--preset--color--navy-dark, #10233f);
	--c-navy-pale: var(--wp--preset--color--navy-pale, #e6ecf5);
	--c-lake: var(--wp--preset--color--lake, #1f5f7a);
	--c-lake-dark: var(--wp--preset--color--lake-dark, #123d52);
	--c-lake-pale: var(--wp--preset--color--lake-pale, #e3eff5);
	--c-green: var(--wp--preset--color--green, #2c6a4c);
	--c-green-pale: var(--wp--preset--color--green-pale, #e4f1e8);
	--c-sun: var(--wp--preset--color--sun, #f2b632);
	--c-sun-dark: var(--wp--preset--color--sun-dark, #8a5a00);
	--c-sun-pale: var(--wp--preset--color--sun-pale, #fdf1d2);
}
body { --section: var(--c-orange); --section-text: var(--c-orange); --section-pale: var(--c-orange-pale); }
.hsp-section-home, .hsp-section-places, .hsp-section-tours, .hsp-section-about, .hsp-section-contact, .hsp-section-share, .hsp-section-links, .hsp-section-news, .hsp-section-page, .hsp-section-search {
	--section: var(--c-navy); --section-text: var(--c-navy); --section-pale: var(--c-navy-pale);
}
.hsp-section-people, .hsp-section-community { --section: var(--c-green); --section-text: var(--c-green); --section-pale: var(--c-green-pale); }
.hsp-section-photos, .hsp-section-timeline { --section: var(--c-sun); --section-text: var(--c-sun-dark); --section-pale: var(--c-sun-pale); }

/* A strip of the section's color across the top of every page */
.site-header { border-top: 5px solid var(--section); }

/* Menu: each link underlines in its own section's color */
.site-nav a[href$="/stories/"] { --nav: var(--c-orange); --nav-pale: var(--c-orange-pale); }
.site-nav a[href$="/places/"], .site-nav a[href$="/tours/"], .site-nav a[href$="/about/"] { --nav: var(--c-navy); --nav-pale: var(--c-navy-pale); }
.site-nav a[href$="/people/"], .site-nav a[href$="/community/"] { --nav: var(--c-green); --nav-pale: var(--c-green-pale); }
.site-nav a[href$="/photos/"], .site-nav a[href$="/timeline/"] { --nav: var(--c-sun); --nav-pale: var(--c-sun-pale); }
.site-nav .wp-block-navigation-item__content:hover { background: var(--nav-pale, var(--hsp-surface)); }
.site-nav .wp-block-navigation-item__content[aria-current] { box-shadow: inset 0 -4px 0 var(--nav, var(--hsp-accent)); }

/* The tinted band at the top of each page */
.page-band { background: var(--section-pale); padding-block: clamp(1.1rem, 3vw, 1.75rem) clamp(1.5rem, 4vw, 2.5rem) !important; margin-bottom: var(--wp--preset--spacing--40) !important; }
.page-band > :last-child { margin-bottom: 0 !important; }
.page-band .page-intro { color: #3b4651; }
.page-band .hsp-intro { max-width: var(--wp--style--global--content-size, 720px); }
.page-band .hsp-breadcrumbs a { color: #3b4651; }
.page-band .hsp-breadcrumbs li + li::before { color: var(--section-text); }
.page-band .item-kicker { color: var(--section-text); }
.page-band .hsp-facts dt { color: #3b4651; }
.page-band .hsp-facts a, .item-split__aside .hsp-facts a { color: var(--section-text); }
.page-band .hsp-series.is-top .hsp-series__label { color: #3b4651; }
.page-band .search-again { margin-bottom: 0; }
.item-head { margin-bottom: var(--wp--preset--spacing--40); }

/* Cards say what they are in that type's color */
:is(.type-story, .hsp-card.type-story) { --type: var(--c-orange); }
:is(.type-place, .type-tour, .hsp-card.type-place, .hsp-card.type-tour) { --type: var(--c-navy); }
:is(.type-person, .hsp-card.type-person) { --type: var(--c-green); }
:is(.type-post, .type-page) { --type: var(--c-sun-dark); }
.hsp-card__type, .hsp-card-meta.hsp-card__type { color: var(--type, var(--hsp-muted)); }
.hsp-card:hover .hsp-card__title a, .hsp-card__title a:hover { color: var(--type, var(--hsp-accent)); }
.hsp-card__media--empty { background: color-mix(in srgb, var(--type, var(--hsp-muted)) 10%, #fff); }
.hsp-card__media--empty span { color: var(--type, var(--hsp-muted)); }
.hsp-card__media--empty span::before { background: var(--type, var(--hsp-accent)); }

/* Lists and boxes take the section's color */
.wp-block-query-pagination .page-numbers.current { background: var(--section-text); }
.hsp-filters__form { background: #fff; border: 1px solid var(--hsp-line); }
.hsp-related__group { border-top-color: var(--section); border-top-width: 3px; }
.hsp-series:not(.is-top) { border-left: 4px solid var(--section); }
.hsp-series__nav a span { color: var(--section-text); }

/* Timeline: sun-yellow centuries, each dot in its item's color */
.hsp-timeline__heading { color: var(--c-sun-dark) !important; }
.hsp-timeline__jump a { background: var(--c-sun-pale); }
.hsp-timeline__jump a:hover { background: var(--c-sun); }
.hsp-timeline__list { border-left-color: color-mix(in srgb, var(--c-sun) 55%, #fff); }
.hsp-timeline__item::before { border-color: var(--type, var(--c-orange)); background: color-mix(in srgb, var(--type, var(--c-orange)) 18%, #fff); }
.hsp-timeline__type { color: var(--type, var(--hsp-muted)); }

/* Home page */
/* Darken only behind the words, so the photo keeps its color on the right */
.hsp-hero .wp-block-cover__background {
	opacity: 1 !important;
	background: linear-gradient(90deg, rgb(16 35 63 / .92) 0%, rgb(16 35 63 / .74) 34%, rgb(16 35 63 / .28) 62%, rgb(16 35 63 / 0) 80%) !important;
}
.hsp-hero .wp-block-cover__image-background { object-position: 50% 12%; }
@media (max-width: 760px) {
	.hsp-hero .wp-block-cover__background { background: linear-gradient(to top, rgb(16 35 63 / .92) 0%, rgb(16 35 63 / .7) 55%, rgb(16 35 63 / .35) 100%) !important; }
}
.hsp-explore__list { background: var(--hsp-line); }
.hsp-explore__list li { --way: var(--c-orange); --way-pale: var(--c-orange-pale); border-top: 5px solid var(--way); }
.hsp-explore__list .is-places, .hsp-explore__list .is-tours { --way: var(--c-navy); --way-pale: var(--c-navy-pale); }
.hsp-explore__list .is-people { --way: var(--c-green); --way-pale: var(--c-green-pale); }
.hsp-explore__list .is-photos, .hsp-explore__list .is-timeline { --way: var(--c-sun); --way-pale: var(--c-sun-pale); }
.hsp-explore__list a:hover { background: var(--way-pale); }
.hsp-explore__title::after { color: var(--way); }
.hsp-explore__list .is-photos .hsp-explore__title::after, .hsp-explore__list .is-timeline .hsp-explore__title::after { color: var(--c-sun-dark); }

/* Topic tiles cycle through the four colors */
.hsp-topics--grid li { --tc: var(--c-orange); --tc-pale: var(--c-orange-pale); }
.hsp-topics--grid li:nth-child(4n+2) { --tc: var(--c-navy); --tc-pale: var(--c-navy-pale); }
.hsp-topics--grid li:nth-child(4n+3) { --tc: var(--c-green); --tc-pale: var(--c-green-pale); }
.hsp-topics--grid li:nth-child(4n+4) { --tc: var(--c-sun); --tc-pale: var(--c-sun-pale); }
.hsp-topics--grid a { background: var(--tc-pale); border-bottom: 4px solid var(--tc); }
.hsp-topics--grid a:hover .hsp-topics__name { color: var(--hsp-ink); text-decoration: underline; text-decoration-color: var(--tc); text-decoration-thickness: 2px; }
.hsp-topics__count { color: #3b4651; }

.is-style-band { background: var(--c-navy-pale); }
.is-style-callout { background: var(--c-sun-pale); border-left: 6px solid var(--c-sun); }

/* Footer: deep lake blue with sun-yellow headings */
.site-footer.has-background { background-color: var(--c-navy-dark) !important; }
.site-footer__heading { color: var(--c-sun) !important; }
.site-footer p { color: #d2dbe8; }
.site-footer a:hover { color: var(--c-sun); }
.site-brand--footer .site-brand__small { color: #a8b8cf; }
.site-brand--footer .site-brand__name { color: #fff; }
.site-brand--footer .site-brand__mark { color: #fff; --hole: var(--c-navy-dark); }
.site-footer__small { border-top-color: rgb(255 255 255 / .2); }

/* Navy and sun yellow on dark backgrounds: the old logo's pairing */
.hsp-hero .wp-block-search__button, .site-footer .wp-block-button__link { background: var(--c-sun) !important; color: var(--c-navy-dark) !important; }
.hsp-hero .wp-block-search__button:hover, .site-footer .wp-block-button__link:hover { background: #ffd062 !important; color: var(--c-navy-dark) !important; }
.site-search .wp-block-search__button { color: var(--c-navy); }
.page-band .page-title, .page-band .item-title { color: var(--c-navy-dark); }

/* =================================================================
   Sharing: the Share form, the "Have a photo of this?" box, and the
   Share button in the menu.
   ================================================================= */
.site-nav .nav-share .wp-block-navigation-item__content { background: var(--c-navy); color: #fff; border-radius: var(--hsp-radius); margin-left: 0.4rem; padding-inline: 0.9rem; }
.site-nav .nav-share .wp-block-navigation-item__content:hover { background: var(--c-navy-dark); color: #fff; }
.site-nav .nav-share .wp-block-navigation-item__content[aria-current] { box-shadow: none; }
.wp-block-navigation__responsive-container.is-menu-open .nav-share .wp-block-navigation-item__content { margin: 0.5rem 0 0; padding: 0.5rem 1rem; }

.hsp-share-form { --err: #b3261e; font-size: 1rem; }
.hsp-share__form { display: grid; gap: 1.5rem; margin-top: 1rem; }
.hsp-share__group { margin: 0; padding: 1.25rem clamp(1rem, 3vw, 1.5rem) 0.25rem; border: 1px solid var(--hsp-line); border-radius: var(--hsp-radius); background: #fff; }
.hsp-share__group legend { padding: 0 0.4rem; margin-left: -0.4rem; font-weight: 750; font-size: 1.15rem; color: var(--c-navy-dark); }
.hsp-share__group > .hsp-share__hint { margin: 0 0 1rem; }
.hsp-share__field { display: grid; gap: 0.3rem; margin: 0 0 1.1rem; }
.hsp-share__field > label { font-weight: 650; }
.hsp-share__req { font-weight: 400; color: var(--hsp-muted); font-size: 0.9rem; }
.hsp-share__hint { color: var(--hsp-muted); font-size: 0.92rem; }
.hsp-share__row { display: grid; gap: 0 1.25rem; }
@media (min-width: 640px) { .hsp-share__row { grid-template-columns: 1fr 1fr; } }
.hsp-share-form :is(input[type=text], input[type=email], input[type=tel], textarea, select) {
	width: 100%; box-sizing: border-box; font: inherit; font-size: 1rem; color: var(--hsp-ink);
	padding: 0.6rem 0.7rem; border: 1px solid #a9b3bd; border-radius: var(--hsp-radius); background: #fff;
}
.hsp-share-form textarea { min-height: 12rem; line-height: 1.5; resize: vertical; }
.hsp-share-form input[type=file] { font: inherit; padding: 0.75rem; border: 2px dashed #a9b3bd; border-radius: var(--hsp-radius); background: var(--c-navy-pale); cursor: pointer; width: 100%; box-sizing: border-box; }
.hsp-share-form input[type=file]::file-selector-button { font: inherit; font-weight: 650; margin-right: 0.75rem; padding: 0.45rem 0.9rem; border: 0; border-radius: var(--hsp-radius); background: var(--c-navy); color: #fff; cursor: pointer; }
.hsp-share-form :is(input, textarea, select):focus-visible { outline: 3px solid var(--c-sun); outline-offset: 1px; border-color: var(--c-navy); }
.hsp-share-form [aria-invalid="true"] { border-color: var(--err) !important; border-width: 2px; }
.hsp-share__error { margin: 0; color: var(--err); font-weight: 650; font-size: 0.95rem; }
.hsp-share__error::before { content: "⚠ "; }
.hsp-share__problems { padding: 0.9rem 1.1rem; border-left: 5px solid var(--err); background: #fbeceb; border-radius: var(--hsp-radius); }
.hsp-share__problems p { margin: 0; }
.hsp-share__about { padding: 0.75rem 1rem; background: var(--c-sun-pale); border-left: 5px solid var(--c-sun); border-radius: var(--hsp-radius); margin: 0; }
.hsp-share__consent { padding: 1rem 1.1rem; background: var(--hsp-surface); border-radius: var(--hsp-radius); }
.hsp-share__consent label { display: flex; gap: 0.65rem; align-items: flex-start; font-weight: 400; }
.hsp-share__consent input { width: 1.25rem; height: 1.25rem; margin-top: 0.15rem; flex: none; accent-color: var(--c-navy); }
.hsp-share__trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.hsp-share__submit { display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; align-items: center; margin: 0; }
.hsp-button--big { font-size: 1.1rem; padding: 0.8rem 2rem; }
.hsp-button:disabled { opacity: 0.7; cursor: progress; }
.hsp-share__sending { color: var(--hsp-muted); }
.hsp-share__previews { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.hsp-share__previews:empty { display: none; }
.hsp-share__preview { display: grid; gap: 0.2rem; width: 96px; font-size: 0.75rem; color: var(--hsp-muted); }
.hsp-share__preview img, .hsp-share__doc { width: 96px; height: 72px; object-fit: cover; border-radius: 4px; background: var(--hsp-surface); }
.hsp-share__doc { display: grid; place-items: center; font-weight: 700; color: var(--c-navy); }
.hsp-share__name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hsp-share__thanks { padding: clamp(1.25rem, 4vw, 2rem); background: var(--c-green-pale); border-left: 6px solid var(--c-green); border-radius: var(--hsp-radius); }
.hsp-share__thanks h2 { margin-top: 0; color: var(--c-green); }

.hsp-share-prompt { margin-block: var(--wp--preset--spacing--50) 0; padding: clamp(1.1rem, 3vw, 1.5rem) clamp(1.1rem, 3vw, 1.75rem); background: var(--c-sun-pale); border-left: 6px solid var(--c-sun); border-radius: var(--hsp-radius); display: grid; gap: 0.35rem; }
.hsp-share-prompt p { margin: 0; }
.hsp-share-prompt .hsp-button { margin-top: 0.5rem; }
.hsp-share-prompt__title { font-weight: 750; font-size: 1.2rem; color: var(--c-navy-dark); }
.hsp-share-prompt__text { color: #3b4651; }

/* Community */
.hsp-community__count { margin: 0 0 1.25rem; color: var(--hsp-muted); font-weight: 600; }
.hsp-community .hsp-card__meta { color: var(--c-green); font-weight: 600; }
.hsp-community-band { background: var(--c-green-pale); }
.hsp-community-band .hsp-card__meta { color: var(--c-green); font-weight: 600; }
.hsp-community-band .wp-block-buttons { margin-top: 1.5rem; }
@media (min-width: 900px) { .hsp-community-band .hsp-cards--card { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.hsp-community-band .is-style-outline .wp-block-button__link { background: transparent; color: var(--c-navy); border: 2px solid var(--c-navy); }
.hsp-community-band .is-style-outline .wp-block-button__link:hover { background: var(--c-navy); color: #fff; }
.hsp-approval-note { font-size: 0.95rem; color: #3b4651; }

/* =================================================================
   Photo carousel (top of the Photos page). Photos are never cropped:
   each sits whole on a deep-navy frame, with its caption below.
   ================================================================= */
.hsp-carousel { position: relative; margin-block: 0 var(--wp--preset--spacing--50); background: var(--c-navy-dark); color: #fff; border-radius: var(--hsp-radius); overflow: hidden; font-family: var(--hsp-sans); }
.hsp-carousel__track { display: flex; margin: 0; padding: 0; list-style: none; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: none; }
.hsp-carousel__track::-webkit-scrollbar { display: none; }
.hsp-carousel__track:focus-visible { outline: 3px solid var(--c-sun); outline-offset: -3px; }
.hsp-carousel__slide { flex: 0 0 100%; min-width: 0; scroll-snap-align: start; scroll-snap-stop: always; }
.hsp-carousel__figure { margin: 0; display: grid; grid-template-rows: auto 1fr; height: 100%; }
.hsp-carousel__frame { height: clamp(260px, 62vh, 600px); display: flex; align-items: center; justify-content: center; padding: clamp(0.5rem, 2vw, 1.25rem); background: #0b1a2e; box-sizing: border-box; overflow: hidden; }
.hsp-carousel__img { display: block; flex: 0 1 auto; min-width: 0; min-height: 0; max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; box-shadow: 0 6px 24px rgb(0 0 0 / .45); }
.hsp-carousel__text { display: grid; gap: 0.25rem; align-content: start; padding: 0.9rem clamp(1rem, 3vw, 1.5rem) 0.4rem; }
.hsp-carousel__caption { font-size: 1.05rem; line-height: 1.45; max-width: 60rem; }
.hsp-carousel__credit { font-size: 0.88rem; color: #b8c6d8; }
.hsp-carousel__from { justify-self: start; margin-top: 0.15rem; color: var(--c-sun); font-weight: 650; text-decoration: none; }
.hsp-carousel__from:hover { color: #ffd062; text-decoration: underline; }
.hsp-carousel__controls { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0.5rem 0.6rem; padding: 0.5rem 1rem 1rem; }
.hsp-carousel__controls button { display: inline-grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: 50%; border: 2px solid rgb(255 255 255 / .55); background: transparent; color: #fff; font: 700 1.05rem/1 var(--hsp-sans); cursor: pointer; }
.hsp-carousel__controls button:hover { background: rgb(255 255 255 / .12); border-color: #fff; }
.hsp-carousel__controls button:focus-visible { outline: 3px solid var(--c-sun); outline-offset: 2px; }
.hsp-carousel__pause svg { fill: currentColor; }
.hsp-carousel__pause .hsp-icon-play, .hsp-carousel__pause.is-paused .hsp-icon-pause { display: none; }
.hsp-carousel__pause.is-paused .hsp-icon-play { display: block; margin-left: 2px; }
.hsp-carousel__dots { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.15rem; max-width: 70%; }
.hsp-carousel__controls .hsp-carousel__dot { width: 1.6rem; height: 1.6rem; border: 0; background: transparent; border-radius: 50%; }
.hsp-carousel__dot::before { content: ""; width: 0.6rem; height: 0.6rem; border-radius: 50%; background: rgb(255 255 255 / .4); transition: transform .2s; }
.hsp-carousel__dot:hover::before { background: #fff; }
.hsp-carousel__dot[aria-current]::before { background: var(--c-sun); transform: scale(1.35); }
.hsp-carousel:not(.is-enhanced) .hsp-carousel__controls { display: none; } /* without the script, swipe or scroll the strip */
.hsp-carousel__counter { display: none; min-width: 4.5rem; text-align: center; font-weight: 650; font-variant-numeric: tabular-nums; color: #d2dbe8; }
@media (prefers-reduced-motion: reduce) { .hsp-carousel__dot::before { transition: none; } }
@media (max-width: 599px) {
	.hsp-carousel { border-radius: 0; margin-inline: calc(-1 * var(--wp--style--root--padding-left, 1rem)); }
	.hsp-carousel__frame { height: 58vh; padding: 0.4rem; }
	.hsp-carousel__dots { display: none; }
	.hsp-carousel__counter { display: block; }
}

/* Tables (e.g. the census lists brought over from spreadsheets) */
.item-content .wp-block-table { margin-block: 1.5em; }
.item-content .wp-block-table th { text-align: left; background: var(--c-navy-pale); color: var(--c-navy-dark); }
.item-content .wp-block-table td[colspan] { background: var(--hsp-surface); font-weight: 650; }

/* ---------- Home page on phones: shorter, same content
   (the six "ways in" become compact buttons, four places to start in two columns,
   topics as a plain list; the Topics page itself keeps its photo tiles) */
@media (max-width: 599px) {
	.home .hsp-explore__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.home .hsp-explore__list li { border-top-width: 4px; }
	.home .hsp-explore__list a { padding: 0.7rem 0.8rem 0.75rem; }
	.home .hsp-explore__title { font-size: 1.02rem; }
	.home .hsp-explore__desc { display: none; }

	.hsp-home-start .hsp-cards--card { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem 0.9rem; }
	.hsp-home-start .hsp-card:nth-child(n+5) { display: none; }
	.hsp-home-start .hsp-card__media { margin-bottom: 0.5rem; }
	.hsp-home-start .hsp-card__title { font-size: 1rem !important; }
	.hsp-home-start .hsp-card__type { font-size: 0.8rem; }

	.hsp-home-topics.hsp-topics--grid .hsp-topics__list { grid-template-columns: minmax(0, 1fr); gap: 0.4rem; }
	.hsp-home-topics .hsp-topics__img { display: none; }
	.hsp-home-topics.hsp-topics--grid a { display: flex; align-items: center; gap: 0.75rem; border-bottom: 0; border-left: 4px solid var(--tc); }
	.hsp-home-topics .hsp-topics__name { flex: 1; padding: 0.6rem 0 0.6rem 0.75rem; font-size: 1rem; }
	.hsp-home-topics .hsp-topics__count { position: static; padding-right: 0.75rem; }
}
@media (min-width: 600px) and (max-width: 899px) {
	.hsp-home-start .hsp-cards--card { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem 1rem; }
	.hsp-home-start .hsp-card__title { font-size: 1rem !important; }
}

/* ---------- Events: the event page and the "Part of an event" box */
.event-kicker { margin-block: 0 0.2rem !important; color: var(--section-text); font-size: 0.85rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.event-when { margin-block: 0.35rem 0 !important; font-size: 1.15rem; font-weight: 650; color: var(--hsp-ink); }
.event-head .hsp-intro { margin-top: 0.75rem !important; }

.hsp-event-items { display: grid; gap: var(--wp--preset--spacing--50); margin-block: var(--wp--preset--spacing--60) 0; font-family: var(--hsp-sans); }
.hsp-event-items__heading { display: flex; align-items: baseline; gap: 0.5rem; margin: 0 0 1rem; padding-bottom: 0.4rem; border-bottom: 3px solid var(--section); font-size: 1.45rem; }
.hsp-event-items__count { color: var(--hsp-muted); font-size: 1rem; font-weight: 600; }
.hsp-event-items__start .hsp-card { padding: 1rem; background: var(--section-pale); border-radius: var(--hsp-radius); }
.hsp-event-items__group .hsp-cards--row { grid-template-columns: repeat(auto-fill, minmax(min(100%, 420px), 1fr)); gap: 1.25rem 2rem; }
.hsp-event-items__map { margin-bottom: 1.25rem; border-radius: var(--hsp-radius); }

.hsp-part-of { margin-block: 1.5rem; font-family: var(--hsp-sans); }
.hsp-part-of__event { padding: 1rem 1.15rem; border-left: 5px solid var(--section); border-radius: var(--hsp-radius); background: var(--section-pale); }
.hsp-part-of__event + .hsp-part-of__event { margin-top: 0.75rem; }
.hsp-part-of__label { margin: 0 !important; color: var(--section-text); font-size: 0.8rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.hsp-part-of__title { margin: 0.15rem 0 0.4rem !important; font-size: 1.2rem; font-weight: 750; line-height: 1.3; }
.hsp-part-of__title a { color: var(--hsp-ink); text-decoration: none; }
.hsp-part-of__title a:hover { color: var(--section-text); text-decoration: underline; }
.hsp-part-of__when { color: var(--hsp-muted); font-size: 0.95rem; font-weight: 600; white-space: nowrap; }
.hsp-part-of__more { margin: 0 0 0.5rem; padding-left: 1.1rem; font-size: 0.98rem; }
.hsp-part-of__more li { margin: 0.15rem 0; }
.hsp-part-of__all { margin: 0 !important; font-weight: 650; }
.hsp-part-of.is-compact { margin: 0.6rem 0 0 !important; font-size: 0.98rem; }
.hsp-part-of.is-compact .hsp-part-of__label { display: inline; margin-right: 0.15rem !important; font-size: 0.78rem; }
.hsp-part-of.is-compact a { font-weight: 650; }
.item-split__aside .hsp-part-of { margin-block: 1rem 0; }

/* ---------- In Depth band: the big stories, shown large on the Stories page and topic pages */
.hsp-in-depth-band { margin-block: 0 var(--wp--preset--spacing--50) !important; padding: clamp(1.75rem, 4vw, 2.75rem) var(--wp--style--root--padding-left, 1rem); background: var(--c-navy-dark); color: #fff; font-family: var(--hsp-sans); }
.hsp-in-depth-band > * { max-width: 1240px; margin-inline: auto; }
.hsp-in-depth__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.25rem 1.25rem; margin-bottom: 1.25rem; }
.hsp-in-depth__heading { margin: 0; color: #fff; font-size: clamp(1.6rem, 3vw, 2.1rem); }
.hsp-in-depth__heading::before { content: ""; display: inline-block; width: 0.55em; height: 0.55em; margin-right: 0.45em; border-radius: 50%; background: var(--c-sun); box-shadow: 0 0 0 4px rgb(242 182 50 / 0.25); vertical-align: 0.08em; }
.hsp-in-depth__intro { flex: 1 1 22rem; margin: 0; color: #c9d4e3; font-size: 1.02rem; }
.hsp-in-depth__all { margin: 0; }
.hsp-in-depth__all a { color: var(--c-sun); font-weight: 650; }
/* A sideways strip: three cards across on wide screens, two on tablets, one on phones with
   the next peeking in. Fewer cards than that share the width. --cards is set by the block. */
.hsp-in-depth__grid { --gap: 1.1rem; --per: min(var(--cards, 3), 1.12); display: flex; gap: var(--gap); margin: 0 auto; padding: 0; list-style: none; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; }
.hsp-in-depth__card { flex: 0 0 calc((100% - (var(--per) - 1) * var(--gap)) / var(--per)); min-width: 0; scroll-snap-align: start; }
@media (min-width: 640px) { .hsp-in-depth__grid { --per: min(var(--cards, 3), 2); } }
@media (min-width: 1000px) { .hsp-in-depth__grid { --per: min(var(--cards, 3), 3); } }
.hsp-in-depth-band.is-enhanced .hsp-in-depth__grid { scrollbar-width: none; }
.hsp-in-depth-band.is-enhanced .hsp-in-depth__grid::-webkit-scrollbar { display: none; }
.hsp-in-depth__nav { display: flex; gap: 0.5rem; margin-left: auto; align-self: center; }
.hsp-in-depth__nav[hidden] { display: none; }
.hsp-in-depth__nav button { display: inline-grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: 50%; border: 2px solid rgb(255 255 255 / .55); background: transparent; color: #fff; font: 700 1.05rem/1 var(--hsp-sans); cursor: pointer; }
.hsp-in-depth__nav button:hover:not(:disabled) { background: rgb(255 255 255 / .12); border-color: #fff; }
.hsp-in-depth__nav button:focus-visible { outline: 3px solid var(--c-sun); outline-offset: 2px; }
.hsp-in-depth__nav button:disabled { opacity: 0.35; cursor: default; }
.hsp-in-depth__link { position: relative; display: flex; flex-direction: column; justify-content: flex-end; min-height: 300px; height: 100%; overflow: hidden; border-radius: 8px; background: var(--c-navy); color: #fff; text-decoration: none; box-shadow: 0 0 0 1px rgb(255 255 255 / 0.12); }
.hsp-in-depth__img { position: absolute; inset: 0; width: 100%; height: 100% !important; object-fit: cover; transition: transform 0.4s ease; }
.hsp-in-depth__link::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgb(16 35 63 / 0.05) 0%, rgb(16 35 63 / 0.55) 45%, rgb(16 35 63 / 0.94) 100%); }
.hsp-in-depth__body { position: relative; z-index: 2; display: grid; gap: 0.35rem; padding: 1.1rem 1.2rem 1.15rem; }
.hsp-in-depth__kicker { color: var(--c-sun); font-size: 0.78rem; font-weight: 750; letter-spacing: 0.07em; text-transform: uppercase; }
.hsp-in-depth__title { font-size: 1.45rem; font-weight: 800; line-height: 1.15; letter-spacing: -0.01em; }
.hsp-in-depth__summary { color: #dbe3ee; font-size: 0.95rem; line-height: 1.45; }
.hsp-in-depth__count { margin-top: 0.2rem; color: var(--c-sun); font-size: 0.92rem; font-weight: 650; }
.hsp-in-depth__link:hover .hsp-in-depth__img { transform: scale(1.04); }
.hsp-in-depth__link:hover .hsp-in-depth__title { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 2px; }
.hsp-in-depth__link:focus-visible { outline: 3px solid var(--c-sun); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { .hsp-in-depth__img { transition: none; } }
@media (max-width: 599px) { .hsp-in-depth__link { min-height: 240px; } .hsp-in-depth__title { font-size: 1.3rem; } }
