/**
 * Atlas region landing (DS-A4), haven-events/landing.php only; after atlas-tokens.css and events.css. --atlas-* colour
 * tokens only. Rules match events.css's (0,2,2) weight and load later. Cover, sheet and night band as atlas-guide.css.
 * Mobile first; no script.
 */

/* Page and reset */
.atlas-landing,
body.haven-events .haven-events-main.atlas-landing { max-width: none; margin: 0; padding: 0; background: var(--atlas-paper); color: var(--atlas-ink-2); font: 400 var(--atlas-fs-body)/1.62 var(--atlas-serif); }
.atlas-landing *,
.atlas-landing *::before,
.atlas-landing *::after { box-sizing: border-box; }
body.haven-events .atlas-landing :is(h1, h2, h3, h4, p, dl, dd, figure) { margin: 0; font: inherit; color: inherit; }
body.haven-events .atlas-landing a { color: var(--atlas-ink); text-underline-offset: 3px; text-decoration-thickness: 1px; }
/* Links in running text and event names read as links at every width. */
body.haven-events .atlas-landing :is(p, li, dd, h4) a,
body.haven-events .atlas-landing .atlas-feature__body > a { color: var(--atlas-accent-ink); text-decoration: underline; }
.atlas-landing :focus-visible,
body.haven-events .atlas-landing :focus-visible { outline: 2px solid var(--atlas-accent-ink); outline-offset: 3px; }
body.haven-events .atlas-landing :is(h2, section, a, [tabindex]) { scroll-margin-top: calc(var(--atlas-top, 0px) + 24px); }
.atlas-landing .atlas-wrap { max-width: var(--atlas-maxw); margin-inline: auto; padding-inline: var(--atlas-pad); }
.atlas-landing .atlas-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

/* Type roles */
body.haven-events .atlas-landing .atlas-kicker { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font: 500 12px/1.4 var(--atlas-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--atlas-accent-ink); }
.atlas-landing .atlas-kicker::before { content: ""; flex: none; width: 28px; height: 1px; background: currentColor; }
body.haven-events .atlas-landing .atlas-label { font: 600 12px/1.3 var(--atlas-sans); letter-spacing: .12em; text-transform: uppercase; color: var(--atlas-ink-3); }
body.haven-events .atlas-landing .atlas-band .atlas-h2 { margin-top: 14px; font: 400 clamp(34px, 1.2rem + 2.4vw, 56px)/1.04 var(--atlas-serif); letter-spacing: -0.025em; color: var(--atlas-ink); text-wrap: balance; }
body.haven-events .atlas-landing .atlas-btn { display: inline-flex; flex: none; align-items: center; justify-content: center; min-height: 44px; padding: 10px 18px; border: 1px solid var(--atlas-ink); border-radius: 2px; background: var(--atlas-ink); color: var(--atlas-paper); font: 600 15px/1.2 var(--atlas-sans); text-decoration: none; }
body.haven-events .atlas-landing .atlas-btn:hover { text-decoration: underline; }

/* Cover: photo first on phones, split from 1000px (as the guide) */
.atlas-landing .atlas-cover { display: grid; grid-template-columns: minmax(0, 1fr); max-width: var(--atlas-maxw); margin-inline: auto; padding-inline: var(--atlas-pad); }
body.haven-events .atlas-landing .atlas-photo { grid-row: 1; position: relative; aspect-ratio: 4 / 3.4; margin: 0 calc(var(--atlas-pad) * -1); overflow: hidden; background: var(--atlas-paper-2); }
.atlas-landing .atlas-photo img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.atlas-landing .atlas-panel { grid-row: 2; position: relative; z-index: 1; margin: -64px -6px 0; padding: 22px 22px 4px; background: var(--atlas-paper); }
.atlas-landing .atlas-folio { grid-row: 3; padding-top: 22px; }
.atlas-landing .atlas-cover--bare .atlas-panel { grid-row: 1; margin: 0; padding: 32px 0 4px; }
.atlas-landing .atlas-cover--bare .atlas-folio { grid-row: 2; }
body.haven-events .atlas-landing .atlas-title { margin: 14px 0 22px; font: 400 clamp(40px, 1.5rem + 3.4vw, 88px)/0.99 var(--atlas-serif); font-variation-settings: "opsz" 72; letter-spacing: -0.03em; color: var(--atlas-ink); text-wrap: balance; overflow-wrap: break-word; }
body.haven-events .atlas-landing .atlas-dek { max-width: 36ch; font-size: clamp(19px, 1rem + .5vw, 24px); line-height: 1.45; color: var(--atlas-ink-2); }
body.haven-events .atlas-landing .atlas-byline { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--atlas-rule); font: 400 14px/1.5 var(--atlas-sans); color: var(--atlas-ink-3); }

/* Breadcrumb: each separator follows its item inside one nowrap unit, so no line starts with it */
.atlas-landing .atlas-crumbs ol { display: flex; flex-wrap: wrap; gap: 0 10px; margin: 0 0 6px; padding: 0; list-style: none; font: 600 12px/1.3 var(--atlas-sans); letter-spacing: .12em; text-transform: uppercase; color: var(--atlas-ink-3); }
.atlas-landing .atlas-crumbs li { display: inline-flex; align-items: center; min-height: 44px; margin: 0; white-space: nowrap; }
body.haven-events .atlas-landing .atlas-crumbs a { display: inline-flex; align-items: center; min-height: 44px; color: var(--atlas-ink-3); text-decoration: none; }
body.haven-events .atlas-landing .atlas-crumbs a:hover { text-decoration: underline; }
.atlas-landing .atlas-crumbs__sep { padding-left: .5em; }

/* Fact sheet */
body.haven-events .atlas-landing .atlas-facts { border-top: 2px solid var(--atlas-ink); }
.atlas-landing .atlas-facts div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); gap: 14px; align-items: baseline; padding: 12px 0; border-bottom: 1px solid var(--atlas-rule); }
body.haven-events .atlas-landing .atlas-facts dt { font: 400 11.5px/1.4 var(--atlas-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--atlas-ink-3); }
body.haven-events .atlas-landing .atlas-facts dd { font: 400 14.5px/1.45 var(--atlas-mono); color: var(--atlas-ink); text-align: right; overflow-wrap: anywhere; }
@media (min-width: 1000px) {
	.atlas-landing .atlas-cover { grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--atlas-gap); padding-right: 0; }
	body.haven-events .atlas-landing .atlas-photo { grid-column: 5 / -1; grid-row: 1 / 3; aspect-ratio: auto; min-height: min(88vh, 820px); margin: 0; }
	.atlas-landing .atlas-folio { grid-column: 1 / 5; grid-row: 1; align-self: start; padding: 44px 8px 0 0; }
	.atlas-landing .atlas-panel { grid-column: 1 / 8; grid-row: 2; align-self: end; margin: 0 0 -1px; padding: 40px 48px 8px 0; }
	.atlas-landing .atlas-cover--bare { padding-right: var(--atlas-pad); }
	.atlas-landing .atlas-cover--bare .atlas-panel { grid-column: 1 / 8; grid-row: 1; padding: 56px 48px 8px 0; }
	.atlas-landing .atlas-cover--bare .atlas-folio { grid-column: 9 / -1; grid-row: 1; }
}

/* Sections and their heads */
.atlas-landing .atlas-section { padding-block: clamp(56px, 7vw, 112px); }
.atlas-landing .atlas-section + .atlas-section { border-top: 1px solid var(--atlas-rule); }
.atlas-landing .atlas-head { display: grid; gap: 14px; margin-bottom: clamp(28px, 3.4vw, 52px); }
body.haven-events .atlas-landing .atlas-band .atlas-head__dek { max-width: 56ch; color: var(--atlas-ink-2); }
@media (min-width: 900px) {
	.atlas-landing .atlas-head { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: end; gap: var(--atlas-gap); }
}

/* What's on: the plugin's calendar as month columns, dates in the mono face, status as a small label */
body.haven-events .atlas-landing .atlas-months { border-top: 2px solid var(--atlas-ink); }
body.haven-events .atlas-landing .haven-events-month { display: grid; gap: 8px 24px; margin: 0; padding: 22px 0; border-bottom: 1px solid var(--atlas-rule); }
body.haven-events .atlas-landing .haven-events-month > h3 { padding-top: 6px; font: 500 13px/1.4 var(--atlas-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--atlas-ink); }
body.haven-events .atlas-landing .haven-events-calendar { display: grid; margin: 0; padding: 0; list-style: none; }
body.haven-events .atlas-landing .haven-events-calendar > li { display: grid; grid-template-columns: minmax(0, 1fr); gap: 4px 24px; align-items: baseline; margin: 0; padding: 12px 0; border: 0; }
body.haven-events .atlas-landing .haven-events-calendar > li + li { border-top: 1px dashed var(--atlas-rule); }
body.haven-events .atlas-landing .haven-events-calendar h4 { font: 400 clamp(22px, 1rem + .8vw, 30px)/1.15 var(--atlas-serif); color: var(--atlas-ink); }
body.haven-events .atlas-landing .haven-events-calendar h4 a { color: var(--atlas-ink); }
body.haven-events .atlas-landing .haven-events-dates { margin: 0; font: 400 14px/1.4 var(--atlas-mono); color: var(--atlas-ink-2); }
body.haven-events .atlas-landing .haven-events-dates :is(details, ul) { margin: 6px 0 0; padding: 0; list-style: none; }
body.haven-events .atlas-landing .haven-events-dates summary { display: inline-flex; align-items: center; min-height: 44px; cursor: pointer; font: 500 14px/1.2 var(--atlas-sans); color: var(--atlas-accent-ink); text-decoration: underline; }
body.haven-events .atlas-landing .haven-events-calendar .haven-events-status { display: inline-flex; align-items: center; gap: 7px; justify-self: start; margin: 2px 0 0; font: 500 11px/1.3 var(--atlas-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--atlas-ink-3); }
.atlas-landing .haven-events-calendar .haven-events-status::before { content: ""; flex: none; width: 7px; height: 7px; border-radius: 50%; background: var(--atlas-accent); }
body.haven-events .atlas-landing .haven-events-calendar .haven-events-note { grid-column: 1 / -1; max-width: 60ch; margin: 4px 0 0; font: 400 15px/1.55 var(--atlas-sans); color: var(--atlas-ink-3); }
body.haven-events .atlas-landing .haven-events-calendar .haven-events-notice { grid-column: 1 / -1; margin: 6px 0 0; padding: 0 0 0 12px; border: 0; border-left: 2px solid var(--atlas-accent-ink); background: transparent; font: 400 14px/1.5 var(--atlas-sans); color: var(--atlas-ink-2); }
body.haven-events .atlas-landing .haven-events-calendar--compact > li { display: flex; align-items: center; min-height: 44px; padding: 8px 0; font: 400 20px/1.25 var(--atlas-serif); color: var(--atlas-ink); }
body.haven-events .atlas-landing .haven-events-calendar--compact a { display: inline-flex; align-items: center; min-height: 44px; }
@media (min-width: 700px) {
	body.haven-events .atlas-landing .haven-events-calendar > li { grid-template-columns: minmax(0, 1fr) auto; }
	body.haven-events .atlas-landing .haven-events-calendar .haven-events-dates { text-align: right; }
	body.haven-events .atlas-landing .haven-events-calendar .haven-events-status { grid-column: 1 / -1; }
}
@media (min-width: 900px) {
	body.haven-events .atlas-landing .haven-events-month { grid-template-columns: 200px minmax(0, 1fr); }
}

/* Guide feature: heading beside the prose, a Read the guide button, no stay cards */
.atlas-landing .atlas-feature__grid { display: grid; gap: clamp(20px, 3vw, 44px); }
body.haven-events .atlas-landing .atlas-feature__body { display: grid; gap: 1em; max-width: 64ch; font-size: clamp(17px, .6vw + 13px, 19px); }
body.haven-events .atlas-landing .atlas-feature__body :is(ul, ol) { margin: 0; padding-left: 1.2em; }
.atlas-landing .atlas-feature__more { margin-top: 8px; }
body.haven-events .atlas-landing .atlas-feature .haven-events-handoff a { display: inline-flex; align-items: center; min-height: 44px; }
body.haven-events .atlas-landing .haven-events-table-scroll { max-width: 100%; overflow-x: auto; border-top: 2px solid var(--atlas-ink); }
body.haven-events .atlas-landing .haven-events-table-scroll table { display: table; width: 100%; overflow: visible; border-collapse: collapse; font: 400 15px/1.5 var(--atlas-sans); }
@media (min-width: 1000px) {
	.atlas-landing .atlas-feature__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: start; }
}

/* Where to stay: one article per collection, its lead photo, the plugin's cards, See all homes once */
.atlas-landing .atlas-collections { display: grid; gap: clamp(48px, 6vw, 96px); }
.atlas-landing .atlas-collection { display: grid; gap: clamp(24px, 3vw, 40px); }
.atlas-landing .atlas-collection__intro { display: grid; gap: var(--atlas-gap); align-items: center; }
body.haven-events .atlas-landing .atlas-collection__img { aspect-ratio: 3 / 2; overflow: hidden; background: var(--atlas-paper-2); }
.atlas-landing .atlas-collection__img img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; }
body.haven-events .atlas-landing .atlas-collection__text { display: grid; gap: 14px; align-content: start; }
body.haven-events .atlas-landing .atlas-collection__title { font: 400 clamp(30px, 1.1rem + 1.6vw, 44px)/1.05 var(--atlas-serif); letter-spacing: -0.02em; color: var(--atlas-ink); }
body.haven-events .atlas-landing .atlas-collection__blurb { max-width: 52ch; font-size: 17.5px; color: var(--atlas-ink-2); }
body.haven-events .atlas-landing .atlas-collection__access { max-width: 52ch; padding-left: 12px; border-left: 2px solid var(--atlas-accent); font: 400 15px/1.5 var(--atlas-sans); color: var(--atlas-ink-2); }
@media (min-width: 1000px) {
	.atlas-landing .atlas-collection__intro { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
	.atlas-landing .atlas-collection:nth-child(even) .atlas-collection__intro { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
	.atlas-landing .atlas-collection:nth-child(even) .atlas-collection__img { order: 2; }
}
body.haven-events .atlas-landing .haven-events-stays { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); gap: var(--atlas-gap); margin: 0; padding-top: 22px; border-top: 1px solid var(--atlas-ink); }
body.haven-events .atlas-landing .haven-events-stay { border: 0; background: transparent; }
body.haven-events .atlas-landing .haven-events-stay > a { display: grid; gap: 12px; align-content: start; height: 100%; color: var(--atlas-ink); text-decoration: none; }
body.haven-events .atlas-landing .haven-events-stay img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; background: var(--atlas-paper-2); }
body.haven-events .atlas-landing .haven-events-stay__body { display: flex; flex-direction: column; gap: 6px; padding: 0; }
body.haven-events .atlas-landing .haven-events-stay__body h3 { font: 400 22px/1.15 var(--atlas-serif); color: var(--atlas-ink); }
body.haven-events .atlas-landing .haven-events-stay > a:hover h3 { text-decoration: underline; text-underline-offset: 5px; }
body.haven-events .atlas-landing .haven-events-stay__body > p { font: 500 11px/1.3 var(--atlas-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--atlas-ink-3); }
body.haven-events .atlas-landing .haven-events-stay__body ul { display: flex; flex-wrap: wrap; gap: 4px 16px; margin: 0; padding: 0; list-style: none; font: 400 13.5px/1.3 var(--atlas-mono); color: var(--atlas-ink-3); }
/* Stay group label (DS-A12): 24px above, 12px below, net of the gap */
body.haven-events .atlas-landing .haven-events-stays__group { grid-column: 1 / -1; margin: calc(24px - var(--atlas-gap)) 0 calc(12px - var(--atlas-gap)); font: 500 13px/1.3 var(--atlas-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--atlas-ink); }
body.haven-events .atlas-landing .haven-events-stays__group:first-child { margin-top: 0; }
.atlas-landing .atlas-more { margin-top: clamp(32px, 4vw, 56px); }
body.haven-events .atlas-landing .atlas-more a { display: inline-flex; align-items: center; min-height: 44px; font: 600 15px/1.2 var(--atlas-sans); color: var(--atlas-ink); }

/* Plan your experience: the plugin's guide cards on paper */
body.haven-events .atlas-landing .haven-events-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: var(--atlas-gap); }
body.haven-events .atlas-landing .haven-events-card { border: 0; background: transparent; }
body.haven-events .atlas-landing .haven-events-card > a { display: grid; gap: 14px; height: 100%; color: var(--atlas-ink); text-decoration: none; }
body.haven-events .atlas-landing .haven-events-card img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; background: var(--atlas-paper-2); }
body.haven-events .atlas-landing .haven-events-card__body { display: grid; gap: 6px; padding: 0; }
body.haven-events .atlas-landing .haven-events-card h3 { font: 400 clamp(22px, 1rem + .6vw, 28px)/1.15 var(--atlas-serif); color: var(--atlas-ink); }
body.haven-events .atlas-landing .haven-events-card > a:hover h3 { text-decoration: underline; text-underline-offset: 5px; }
body.haven-events .atlas-landing .haven-events-card p { font: 400 14px/1.4 var(--atlas-mono); color: var(--atlas-ink-3); }

/* Preview notice */
body.haven-events .atlas-landing > .haven-events-notice { max-width: var(--atlas-maxw); margin: 0 auto; padding: 12px var(--atlas-pad); border: 0; border-bottom: 1px solid var(--atlas-rule); background: var(--atlas-accent-wash); color: var(--atlas-ink); font: 500 14px/1.4 var(--atlas-sans); }

/* Night band */
.atlas-landing .atlas-night { background: radial-gradient(120% 140% at 85% 0%, var(--atlas-night-2) 0%, var(--atlas-night) 70%); color: var(--atlas-on-night); }
.atlas-landing .atlas-night .atlas-wrap { display: grid; gap: clamp(28px, 4vw, 64px); padding-block: clamp(56px, 7vw, 104px); }
body.haven-events .atlas-landing .atlas-band.atlas-night .atlas-kicker { color: var(--atlas-accent-night); }
body.haven-events .atlas-landing .atlas-band.atlas-night .atlas-h2 { color: var(--atlas-on-night); }
body.haven-events .atlas-landing .atlas-night .atlas-night__dek { max-width: 52ch; margin-top: 18px; color: var(--atlas-on-night-2); }
.atlas-landing .atlas-night :focus-visible,
body.haven-events .atlas-landing .atlas-night :focus-visible { outline-color: var(--atlas-accent-night); }
@media (min-width: 1000px) {
	.atlas-landing .atlas-night .atlas-wrap { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); align-items: center; }
}


/* Reduced motion: nothing here animates; hover underlines and focus rings change at once */
@media (prefers-reduced-motion: reduce) {
	.atlas-landing *,
	.atlas-landing *::before,
	.atlas-landing *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; scroll-behavior: auto !important; }
}

/* Photo credits on the photos (owner 2026-11-11): bottom left, small, readable on any photo. */
body.haven-events .atlas-landing .atlas-credit-wrap { position: relative; display: block; }
body.haven-events .atlas-landing .atlas-photo { position: relative; }
body.haven-events .atlas-landing .atlas-credit { position: absolute; left: 8px; bottom: 8px; z-index: 2; max-width: calc(100% - 16px); padding: 3px 7px; border-radius: 2px; background: var(--atlas-scrim); color: var(--atlas-on-night); font: 400 10.5px/1.35 var(--atlas-sans, system-ui, sans-serif); letter-spacing: .01em; text-align: left; }
body.haven-events .atlas-landing .atlas-photo .atlas-credit a, body.haven-events .atlas-landing .atlas-credit a { color: var(--atlas-on-night); text-decoration: underline; text-underline-offset: 2px; }

/* Image-led ending (owner 2026-11-11): the region photo behind the band, faded into the night colour on the left. */
.atlas-landing .atlas-night--image { position: relative; isolation: isolate; overflow: hidden; }
.atlas-landing .atlas-night--image .atlas-wrap { position: relative; z-index: 1; }
.atlas-landing .atlas-night__image { position: absolute; inset: 0 0 0 auto; z-index: 0; width: 62%; pointer-events: none; }
.atlas-landing .atlas-night__image img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; opacity: .82; }
.atlas-landing .atlas-night__image::after { content: ""; position: absolute; inset: 0; background: var(--atlas-scrim); }
@media (max-width: 899px) {
	.atlas-landing .atlas-night__image { width: 100%; }
	.atlas-landing .atlas-night__image img { opacity: .26; }
}
