/* ==========================================================================
   Virginia Outside - Basecamp - pages.css
   About, Basic Pages (Employment, Waivers & Links), Waivers, the enrichment pages,
   Hemlock, Covid-19, page.php, index.php, search.php and 404.php.
   Every selector is scoped to .vob-pg (the wrapper on those templates), so nothing
   here reaches the home, landing or camp templates.
   ========================================================================== */

/* ---------- shared ---------- */
.vob-pg .vob-hero__title + .vob-btn,
.vob-pg .vob-hero__sub + .vob-btn { margin-top: 24px; }

.vob-pg-body { padding-block: 64px 80px; }
@media (max-width: 900px) {
	.vob-pg-body { padding-block: 40px 56px; }
	.vob-pg .vob-hero:not(.vob-hero--plain) .vob-hero__scrim { background: linear-gradient(to top, rgba(10, 26, 19, .95) 0%, rgba(10, 26, 19, .72) 55%, rgba(10, 26, 19, .5) 100%); }
}

/* Older editor content inside the prose column */
.vob-pg .vob-prose img { margin-inline: auto; }
.vob-pg .vob-prose .wp-block-image { text-align: center; }
.vob-pg .vob-prose mark { background: transparent !important; color: inherit; }
.vob-pg .vob-prose .has-vivid-purple-color, .vob-pg .vob-prose .has-pale-pink-color { color: var(--rust) !important; }
.vob-pg .vob-prose sub { font-size: inherit; vertical-align: baseline; }
.vob-pg .vob-prose p.has-text-align-center strong:only-child { color: var(--pine); }
.vob-pg .vob-prose h2:first-child, .vob-pg .vob-prose h3:first-child { margin-top: 0; }
.vob-pg .vob-prose .wp-block-buttons { margin: 0 0 12px; }
.vob-pg .vob-prose .wp-block-buttons + :not(.wp-block-buttons) { margin-top: 1.6em; }
.vob-pg .vob-prose .wp-block-button__link { min-width: 280px; justify-content: space-between; }
.vob-pg .vob-prose .wp-block-gallery:has(> .blocks-gallery-grid) { display: block !important; margin: 1.8em 0; }
.vob-pg .vob-prose .blocks-gallery-grid { grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)) !important; gap: 10px !important; margin: 0 !important; padding: 0 !important; }
.vob-pg .vob-prose .blocks-gallery-item { width: auto !important; margin: 0 !important; display: block !important; }
.vob-pg .vob-prose .blocks-gallery-item figure { margin: 0; height: 100%; }
/* newer galleries (figure.wp-block-gallery > figure.wp-block-image): core sizes each photo to a third of the row */
.vob-pg .vob-prose .wp-block-gallery.has-nested-images { grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)) !important; gap: 10px !important; margin: 1.8em 0; }
.vob-pg .vob-prose .wp-block-gallery.has-nested-images figure.wp-block-image { width: auto !important; max-width: none !important; margin: 0 !important; flex: none !important; }
@media (max-width: 600px) {
	.vob-pg .vob-prose .blocks-gallery-grid,
	.vob-pg .vob-prose .wp-block-gallery.has-nested-images { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 8px !important; }
}
@media (max-width: 600px) {
	.vob-pg .vob-prose .wp-block-button, .vob-pg .vob-prose .wp-block-button__link { width: 100%; min-width: 0; }
}

/* Contact panel (stands in for an old form) */
.vob-pg-contact { margin-top: 32px; }
.vob-pg-contact p { margin: 0; font-size: 17px; }
.vob-pg-contact a { font-weight: 700; }

/* ---------- closing call-to-action band (orange, like the Basecamp facts bar) ---------- */
.vob-pg-cta { background: var(--orange); color: var(--on-orange); }
.vob-pg-cta__inner {
	display: flex; align-items: center; justify-content: space-between; gap: 28px 48px; flex-wrap: wrap;
	padding-block: 60px;
}
.vob-pg-cta .vob-eyebrow { color: var(--on-orange); margin-bottom: 12px; }
.vob .vob-pg-cta__title { color: var(--on-orange); font-size: clamp(34px, 4.4vw, 54px); font-weight: 800; letter-spacing: 1.5px; margin: 0; }
.vob-pg-cta__text { margin: 12px 0 0; max-width: 52ch; font-size: 17px; font-weight: 500; }
.vob-pg-cta__btns { display: flex; flex-wrap: wrap; gap: 12px; }
.vob-pg-cta .vob-btn--pine:hover { background: var(--pine-3); }
.vob-pg-cta .vob-btn--ghost-dark { background: transparent; border-color: var(--on-orange); color: var(--on-orange) !important; }
.vob-pg-cta .vob-btn--ghost-dark:hover { background: var(--on-orange); border-color: var(--on-orange); color: var(--cream) !important; }
@media (max-width: 900px) {
	.vob-pg-cta__inner { padding-block: 48px; }
	.vob-pg-cta__btns { width: 100%; }
	.vob-pg-cta__btns .vob-btn { flex: 1 1 220px; }
}

/* ---------- About ---------- */
.vob-pg-story { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 72px; align-items: start; }
.vob-pg-story__head { position: sticky; top: calc(var(--header-h) + 32px); }
.vob-pg-story__lead {
	margin: 0;
	font: 700 clamp(30px, 3.3vw, 42px)/1.06 var(--font-display);
	letter-spacing: .6px;
	text-transform: uppercase;
	color: var(--pine);
	text-wrap: balance;
}
.vob-pg-story__lead::after { content: ""; display: block; width: 44px; height: 4px; background: var(--orange); margin-top: 22px; }
.vob-pg-story__body { font-size: 18px; line-height: 1.75; }
.vob-pg-story__body > p:last-child { margin-bottom: 0; }
@media (max-width: 900px) {
	.vob-pg-story { grid-template-columns: 1fr; gap: 26px; }
	.vob-pg-story__head { position: static; }
	.vob-pg-story__body { font-size: 17px; }
}

.vob-pg-team { background: var(--cream); padding-block: 72px 88px; }
.vob-pg-team__head { margin-bottom: 40px; }
.vob-pg-team__head .vob-eyebrow { margin-bottom: 8px; }
.vob-pg-person { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 64px; align-items: start; }
.vob-pg-person + .vob-pg-person { margin-top: 72px; padding-top: 72px; border-top: 1px solid var(--rule); }
.vob-pg-person--flip { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); }
.vob-pg-person--flip .vob-pg-person__media { order: 2; }
.vob-pg-person--text, .vob-pg-person--photo { grid-template-columns: minmax(0, 1fr); max-width: 760px; }
.vob-pg-person__media {
	position: sticky; top: calc(var(--header-h) + 32px);
	margin: 0; aspect-ratio: 4 / 5; overflow: hidden;
	background: var(--page); box-shadow: var(--shadow-lift);
}
.vob-pg-person__media img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }
.vob .vob-pg-person__text h2 { font-size: clamp(34px, 3.6vw, 46px); font-weight: 800; margin: 0 0 10px; }
.vob .vob-pg-person__text h3 {
	font: 700 13px/1.4 var(--font-body);
	letter-spacing: 3px;
	color: var(--rust);
	margin: 0 0 22px;
}
.vob .vob-pg-person__text h3::after { content: ""; display: block; width: 44px; height: 4px; background: var(--orange); margin-top: 16px; }
.vob-pg-person__text p { margin: 0 0 1.05em; font-size: 17px; line-height: 1.72; }
.vob-pg-person__text p:last-child { margin-bottom: 0; }
.vob-pg-person__text .vob-pg-quote {
	margin-top: 1.5em;
	padding-left: 22px;
	border-left: 4px solid var(--orange);
	font-size: 19px; line-height: 1.6; font-style: italic;
	color: var(--pine);
}
@media (max-width: 900px) {
	.vob-pg-team { padding-block: 48px 56px; }
	.vob-pg-team__head { margin-bottom: 28px; }
	.vob-pg-person, .vob-pg-person--flip { grid-template-columns: minmax(0, 1fr); gap: 26px; }
	.vob-pg-person--flip .vob-pg-person__media { order: 0; }
	.vob-pg-person__media { position: static; aspect-ratio: 4 / 3; box-shadow: var(--shadow); }
	.vob-pg-person + .vob-pg-person { margin-top: 44px; padding-top: 44px; }
}

/* ---------- Employment (job posting) ---------- */
.vob-pg-jobs > p:first-child { font-size: 20px; line-height: 1.5; color: var(--pine); }
.vob-pg-jobs > .wp-block-list, .vob-pg-jobs > ul:not([class*="vob-"]) { margin-bottom: 8px; }
.vob-pg-job {
	margin: 36px 0;
	padding: 40px 44px 44px;
	background: var(--paper);
	border: 1px solid var(--rule);
	box-shadow: var(--shadow);
	scroll-margin-top: calc(var(--header-h) + 20px);
}
.vob .vob-pg-job__title { font-size: clamp(30px, 3.4vw, 40px); font-weight: 800; margin: 0 0 12px; }
.vob-pg-job .vob-rule { margin-bottom: 22px; }
.vob-pg-job__facts {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1px;
	margin: 0 0 8px;
	background: var(--rule); border: 1px solid var(--rule);
}
.vob-pg-job__facts > div { padding: 14px 18px; background: var(--page); }
.vob-pg-job__facts dt { font: 700 12px/1.3 var(--font-body); letter-spacing: 3px; text-transform: uppercase; color: var(--rust); margin: 0 0 4px; }
.vob-pg-job__facts dd { margin: 0; font-size: 18px; font-weight: 700; color: var(--pine); }
.vob .vob-pg-job .vob-pg-job__sub { font-size: 22px; margin: 1.6em 0 .45em; }
.vob-pg-job p { font-size: 17px; }
.vob-pg-job__lead-in { margin-bottom: .6em !important; }
.vob-prose .vob-pg-chips { list-style: none; margin: 0 0 1.2em; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.vob-prose .vob-pg-chips li { margin: 0; padding: 7px 12px; background: var(--cream); font: 600 14.5px/1.3 var(--font-body); color: var(--pine); }

.vob-pg-applies { margin: 6px 0 0; border: 1px solid var(--rule); }
.vob-pg-apply {
	display: flex; align-items: center; justify-content: space-between; gap: 16px;
	padding: 15px 18px 15px 20px;
	background: var(--page);
	color: var(--ink) !important; text-decoration: none !important;
	transition: background-color .15s;
}
.vob-pg-apply + .vob-pg-apply { border-top: 1px solid var(--rule); }
.vob-pg-apply:hover { background: var(--cream); }
.vob-pg-apply__text { min-width: 0; }
.vob-pg-apply__role { display: block; margin-bottom: 3px; font: 700 11.5px/1.3 var(--font-body); letter-spacing: 2.5px; text-transform: uppercase; color: var(--rust); }
.vob-pg-apply__name { display: block; font: 700 22px/1.08 var(--font-display); letter-spacing: .8px; text-transform: uppercase; color: var(--pine); }
.vob-pg-apply__go {
	flex: none;
	display: inline-flex; align-items: center; gap: 8px;
	min-height: 42px; padding: 10px 16px;
	background: var(--orange); color: var(--on-orange);
	font: 700 13px/1 var(--font-body); letter-spacing: 1.5px; text-transform: uppercase;
	transition: background-color .15s;
}
.vob-pg-apply:hover .vob-pg-apply__go { background: var(--orange-hi); }
/* the photo gallery after the jobs */
.vob-pg-jobs > .n2_clear, .vob-pg-jobs > .n2-section-smartslider { margin-top: 44px; }
@media (max-width: 700px) {
	.vob-pg-job { margin: 26px 0; padding: 26px 20px 24px; }
	.vob-pg-job__facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.vob-pg-job__facts > div { padding: 12px 14px; }
	.vob-pg-job__facts dd { font-size: 16px; }
	.vob-pg-apply { padding: 14px 14px 14px 16px; }
	.vob-pg-apply__name { font-size: 20px; }
	.vob-pg-apply__role { letter-spacing: 1.5px; font-size: 11px; }
	.vob-pg-apply__go { padding: 10px 12px; }
}

/* ---------- Waivers ---------- */
.vob-pg-waivers__intro { margin-bottom: 28px; }
.vob-pg-waivers__intro p { margin: 0 0 .8em; font-size: 19px; line-height: 1.6; max-width: 62ch; }
.vob-pg-waivers__intro a { font-weight: 700; }
.vob-pg-waivers__group + .vob-pg-waivers__group { margin-top: 52px; }
.vob .vob-pg-waivers__label { font-size: clamp(24px, 2.6vw, 30px); margin: 0 0 18px; }
.vob-pg-waivers__list { list-style: none; margin: 0; padding: 0; background: var(--paper); border: 1px solid var(--rule); box-shadow: var(--shadow); }
.vob-pg-waiver {
	display: grid; grid-template-columns: 150px minmax(0, 1fr) auto; align-items: center; gap: 26px;
	padding: 22px 26px;
}
.vob-pg-waiver + .vob-pg-waiver { border-top: 1px solid var(--rule); }
.vob-pg-waiver--nologo { grid-template-columns: minmax(0, 1fr) auto; }
.vob-pg-waiver__logo {
	display: flex; align-items: center; justify-content: center;
	width: 150px; height: 92px; padding: 10px;
	background: #fff; border: 1px solid var(--rule);
}
.vob-pg-waiver__logo img { display: block; width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; }
.vob .vob-pg-waiver__name { font-size: 25px; margin: 0 0 5px; }
.vob-pg-waiver__note { margin: 0; font-size: 15.5px; line-height: 1.5; color: var(--muted); }
.vob-pg-waiver__desc { margin-top: 8px; font-size: 15px; }
.vob-pg-waiver__desc p { margin: 0 0 .5em; }
.vob-pg-waiver__action .vob-btn { white-space: nowrap; }
.vob-pg-waiver--primary { grid-template-columns: 210px minmax(0, 1fr); column-gap: 30px; row-gap: 16px; padding: 30px; }
.vob-pg-waiver--primary .vob-pg-waiver__logo { grid-row: 1 / span 2; }
.vob-pg-waiver--primary .vob-pg-waiver__body { align-self: end; }
.vob-pg-waiver--primary .vob-pg-waiver__action { grid-column: 2; align-self: start; }
.vob-pg-waiver--primary.vob-pg-waiver--nologo .vob-pg-waiver__action { grid-column: 1; }
.vob-pg-waiver--primary .vob-pg-waiver__logo { width: 210px; height: 124px; }
.vob .vob-pg-waiver--primary .vob-pg-waiver__name { font-size: clamp(28px, 3vw, 36px); }
.vob-pg-waiver--primary .vob-pg-waiver__note { font: 700 13px/1.4 var(--font-body); letter-spacing: 2.5px; text-transform: uppercase; color: var(--rust); }
.vob-pg-waiver--primary .vob-pg-waiver__action .vob-btn { padding: 16px 26px; font-size: 15px; }
.vob-pg-waivers__outro { margin-top: 32px; }

.vob-pg-help {
	margin-top: 52px; padding: 26px 28px;
	background: var(--cream); border: 1px solid var(--rule);
}
.vob .vob-pg-help__h { font-size: 24px; margin: 0 0 6px; }
.vob-pg-help p { margin: 0; font-size: 16.5px; }
.vob-pg-help a { font-weight: 700; }
@media (max-width: 760px) {
	.vob-pg-waiver, .vob-pg-waiver--primary { grid-template-columns: 104px minmax(0, 1fr); gap: 16px 18px; padding: 20px 18px; }
	.vob-pg-waiver--primary .vob-pg-waiver__logo { grid-row: auto; }
	.vob-pg-waiver--primary .vob-pg-waiver__body { align-self: center; }
	.vob-pg-waiver--primary .vob-pg-waiver__action, .vob-pg-waiver--primary.vob-pg-waiver--nologo .vob-pg-waiver__action { grid-column: 1 / -1; }
	.vob-pg-waiver--nologo { grid-template-columns: minmax(0, 1fr); }
	.vob-pg-waiver__logo, .vob-pg-waiver--primary .vob-pg-waiver__logo { width: 104px; height: 68px; padding: 6px; }
	.vob .vob-pg-waiver__name { font-size: 22px; }
	.vob .vob-pg-waiver--primary .vob-pg-waiver__name { font-size: 27px; }
	.vob-pg-waiver__note { font-size: 14.5px; }
	.vob-pg-waiver__action { grid-column: 1 / -1; }
	.vob-pg-waiver__action .vob-btn { width: 100%; }
	.vob-pg-waivers__intro p { font-size: 17.5px; }
}

/* ---------- search bar, results, pagination ---------- */
.vob-pg-searchbar { background: var(--cream); border-bottom: 1px solid var(--rule); }
.vob-pg-searchform { display: flex; max-width: 760px; padding-block: 22px; }
.vob-pg-searchform input[type="search"] {
	flex: 1; min-width: 0; min-height: 50px;
	-webkit-appearance: none; appearance: none;
	border: 1px solid var(--rule); border-right: 0; border-radius: 0;
	background: #fff; color: var(--ink);
	font: 500 16px/1.2 var(--font-body);
	padding: 12px 16px;
}
.vob-pg-searchform input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; }
.vob-pg-searchform .vob-btn { min-height: 50px; padding-inline: 28px; }

.vob-pg-results { display: grid; gap: 18px; max-width: 980px; }
.vob-pg-result__link {
	display: grid; grid-template-columns: 240px minmax(0, 1fr);
	background: var(--paper); box-shadow: var(--shadow);
	color: var(--ink) !important; text-decoration: none !important;
	transition: transform .2s, box-shadow .2s;
}
.vob-pg-result__link:hover { transform: translateY(-3px); box-shadow: var(--shadow-lift); }
.vob-pg-result__link--text { grid-template-columns: minmax(0, 1fr); }
.vob-pg-result__media { display: block; background: var(--cream); overflow: hidden; min-height: 170px; position: relative; }
.vob-pg-result__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.vob-pg-result__body { display: flex; flex-direction: column; padding: 22px 26px 22px; min-width: 0; }
.vob-pg-result__kicker { font: 700 12px/1.3 var(--font-body); letter-spacing: 3px; text-transform: uppercase; color: var(--rust); margin-bottom: 6px; }
.vob-pg-result__title { font: 700 27px/1.02 var(--font-display); letter-spacing: 1px; text-transform: uppercase; color: var(--pine); margin-bottom: 6px; }
.vob-pg-result__meta { font: 600 14.5px/1.4 var(--font-body); color: var(--muted); margin-bottom: 8px; }
.vob-pg-result__excerpt { font-size: 15px; line-height: 1.6; margin-bottom: 14px; }
.vob-pg-result__more { margin-top: auto; display: inline-flex; align-items: center; gap: 8px; font: 700 13px/1 var(--font-body); letter-spacing: 2px; text-transform: uppercase; color: var(--rust); }
.vob-pg-result__link:hover .vob-pg-result__more { color: var(--pine); }
@media (max-width: 640px) {
	.vob-pg-searchform { padding-block: 16px; }
	.vob-pg-searchform .vob-btn { padding-inline: 18px; }
	.vob-pg-result__link { grid-template-columns: 104px minmax(0, 1fr); }
	.vob-pg-result__media { min-height: 0; }
	.vob-pg-result__body { padding: 14px 16px; }
	.vob-pg-result__kicker { font-size: 11px; letter-spacing: 2px; }
	.vob-pg-result__title { font-size: 22px; }
	.vob-pg-result__meta { font-size: 13.5px; margin-bottom: 4px; }
	.vob-pg-result__excerpt { display: none; }
	.vob-pg-result__more { font-size: 12px; }
}

.vob-pg-pagination { margin-top: 40px; }
.vob-pg-pagination .nav-links { display: flex; flex-wrap: wrap; gap: 8px; }
.vob-pg-pagination .page-numbers {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 46px; min-height: 46px; padding: 0 16px;
	background: var(--paper); border: 1px solid var(--rule);
	font: 700 14px/1 var(--font-body); letter-spacing: 1px; text-transform: uppercase;
	color: var(--pine) !important; text-decoration: none !important;
}
.vob-pg-pagination a.page-numbers:hover { border-color: var(--orange); }
.vob-pg-pagination .page-numbers.current { background: var(--pine); border-color: var(--pine); color: var(--cream) !important; }
.vob-pg-pagination .page-numbers.dots { background: transparent; border-color: transparent; }

.vob-pg-noresults { margin-bottom: 32px; }
.vob-pg-noresults .vob-h2 { margin-bottom: 10px; }
.vob-pg-noresults p { margin: 0; max-width: 60ch; }

/* ---------- trail markers (404, empty search) ---------- */
.vob-pg-markers { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.vob-pg-marker {
	display: flex; flex-direction: column;
	min-height: 170px; padding: 24px 24px 22px;
	background: var(--paper); border: 1px solid var(--rule);
	color: var(--ink) !important; text-decoration: none !important;
	transition: transform .2s, box-shadow .2s;
}
.vob-pg-marker:hover { transform: translateY(-3px); box-shadow: var(--shadow-lift); }
.vob-pg-marker__t { font: 700 28px/1 var(--font-display); letter-spacing: 1px; text-transform: uppercase; color: var(--pine); margin-bottom: 10px; }
.vob-pg-marker__m { font: 700 12px/1.4 var(--font-body); letter-spacing: 2.5px; text-transform: uppercase; color: var(--rust); margin-bottom: 20px; }
.vob-pg-marker__go { margin-top: auto; display: inline-flex; align-items: center; gap: 8px; font: 700 13px/1 var(--font-body); letter-spacing: 2px; text-transform: uppercase; color: var(--rust); }
.vob-pg-marker:hover .vob-pg-marker__go { color: var(--pine); }
.vob-pg-marker--pine { background: var(--pine); border-color: var(--pine); }
.vob-pg-marker--pine .vob-pg-marker__t { color: var(--cream); }
.vob-pg-marker--pine .vob-pg-marker__m { color: var(--orange-hi); }
.vob-pg-marker--pine .vob-pg-marker__go, .vob-pg-marker--pine:hover .vob-pg-marker__go { color: var(--cream); }
@media (max-width: 1000px) { .vob-pg-markers { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) {
	.vob-pg-markers { grid-template-columns: minmax(0, 1fr); gap: 12px; }
	.vob-pg-marker { min-height: 0; padding: 20px; }
	.vob-pg-marker__t { font-size: 25px; }
	.vob-pg-marker__m { margin-bottom: 14px; }
}

/* ---------- 404 poster ---------- */
.vob-pg--404 .vob-hero--md { min-height: 520px; }
.vob .vob-pg--404 .vob-hero__title { font-size: clamp(60px, 10.5vw, 136px); line-height: .9 !important; letter-spacing: 2px !important; }
.vob-pg--404 .vob-hero__sub { margin-inline: auto; }
.vob-pg-lost__head { margin-bottom: 26px; }
.vob-pg-lost__head .vob-h2 { margin-bottom: 8px; }
.vob-pg-lost__search { margin-top: 48px; max-width: 760px; }
.vob-pg-lost__label { margin: 0 0 10px; font: 700 13px/1.3 var(--font-body); letter-spacing: 3px; text-transform: uppercase; color: var(--rust); }
.vob-pg-lost__search .vob-pg-searchform { padding: 0; }
@media (max-width: 900px) { .vob-pg--404 .vob-hero--md { min-height: 440px; } }
