/* Page styles: content (design system v2). About, Dining, Amenities & Experiences, Gallery.
   Loaded on every page after main.css, so every rule is scoped: either to
   component classes only these templates output (.cx-*), or to the page body
   classes (.page-about, .page-dining, .page-amenities, .page-gallery).
   Small gold text (--gold-600) is used on ivory only; on sand (--cream-100)
   it falls just under 4.5:1, so labels there use --muted. */

/* ==========================================================
   Shared content blocks
   ========================================================== */

/* Editorial intro: copy beside an arched photo with an offset gold outline. */
.cx-story__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(40px, 7vw, 112px); align-items: center; }
.cx-story__grid--solo { grid-template-columns: minmax(0, 1fr); max-width: 820px; }
.cx-story .section__title { max-width: 15ch; }
.cx-story__prose { color: var(--muted); }
.cx-story__prose > p:first-child { font-size: clamp(1.125rem, 1.6vw, 1.3125rem); line-height: 1.7; color: var(--ink); }
.cx-story__media { --offset: clamp(16px, 2.2vw, 28px); position: relative; padding: 0 0 var(--offset) var(--offset); }
.cx-story__media::before {
	content: ""; position: absolute; left: 0; bottom: 0; width: calc(100% - var(--offset)); height: calc(100% - var(--offset));
	border: 1px solid var(--gold-400); border-radius: 999px 999px 0 0; pointer-events: none;
}
.cx-story__media .arch { position: relative; aspect-ratio: 4 / 5; background: var(--green-100); }
.cx-story__media img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 900px) {
	.cx-story__grid { grid-template-columns: minmax(0, 1fr); }
	.cx-story .section__title { max-width: 20ch; }
	.cx-story__media { width: 100%; max-width: 480px; margin-inline: auto; }
}

/* Short uppercase highlights on a hairline, each led by a gold dot. */
.cx-tags {
	display: flex; flex-wrap: wrap; gap: 10px 26px; list-style: none; margin: 28px 0 0; padding: 20px 0 0;
	border-top: 1px solid var(--cream-200);
	font-size: .6875rem; font-weight: 500; letter-spacing: .18em; line-height: 1.5; text-transform: uppercase; color: var(--green-900);
}
.cx-tags li { display: inline-flex; align-items: baseline; gap: 10px; }
.cx-tags li::before { content: ""; flex: none; width: 4px; height: 4px; border-radius: 50%; background: var(--gold-600); transform: translateY(-2px); }
.cx-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 32px 0 0; }
@media (max-width: 560px) {
	.cx-tags { flex-direction: column; gap: 8px; }
	.cx-actions .btn { width: 100%; padding-inline: 18px; letter-spacing: .16em; text-align: center; }
}

/* Hairline definition list (label / value). */
.cx-facts { margin: 0; border-top: 1px solid var(--cream-200); }
.cx-facts > div { display: grid; grid-template-columns: minmax(110px, 190px) minmax(0, 1fr); gap: 6px 28px; padding: 18px 0; border-bottom: 1px solid var(--cream-200); }
.cx-facts dt { padding-top: .45em; font-size: .6875rem; font-weight: 500; letter-spacing: .2em; line-height: 1.5; text-transform: uppercase; color: var(--gold-600); }
.cx-facts dd { margin: 0; font-family: var(--font-serif); font-size: clamp(1.0625rem, 1.4vw, 1.1875rem); line-height: 1.5; color: var(--green-900); }
.section--alt .cx-facts, .section--alt .cx-facts > div { border-color: rgb(19 38 26 / .12); }
.section--alt .cx-facts dt { color: var(--muted); }
.cx-facts--compact { margin: 28px 0 32px; }
.cx-facts--compact > div { grid-template-columns: 110px minmax(0, 1fr); padding: 14px 0; }
@media (max-width: 560px) {
	.cx-facts > div, .cx-facts--compact > div { grid-template-columns: minmax(0, 1fr); gap: 2px; padding: 16px 0; }
	.cx-facts dt { padding-top: 0; }
}

/* Image-led feature split reuses the home page's .h-split; without a photo it
   becomes a single text column. */
.cx-dark .h-split:has(> .h-split__media:empty),
.cx-catering .h-split:has(> .h-split__media:empty) { grid-template-columns: minmax(0, 1fr); max-width: 760px; }
.cx-dark .h-split__media:empty, .cx-catering .h-split__media:empty { display: none; }
.cx-catering .h-split__copy > p:not(.eyebrow, .cx-actions, .photo-note) { color: var(--muted); }
.cx-dark .cx-actions, .cx-catering .cx-actions { margin-top: 0; }
.cx-catering .photo-note { margin-top: 28px; }

/* ==========================================================
   About
   ========================================================== */

/* Promise: six phrases set as a typographic grid, alternate ones in gold italics. */
.cx-promise__list {
	display: grid; grid-template-columns: repeat(3, auto); justify-content: center; row-gap: 10px;
	list-style: none; margin: clamp(16px, 2.4vw, 32px) auto 0; padding: 0;
	font-family: var(--font-serif); font-size: clamp(1.625rem, 2.6vw, 2.375rem); line-height: 1.25; color: var(--green-900); text-align: center;
}
.cx-promise__list li { position: relative; padding: 14px clamp(20px, 2.8vw, 44px); }
.cx-promise__list li:nth-child(even) { font-style: italic; color: var(--gold-600); }
.cx-promise__list li:not(:nth-child(3n + 1))::before {
	content: ""; position: absolute; left: 0; top: 50%; width: 1px; height: 1.1em; transform: translateY(-50%);
	background: var(--gold-400);
}
@media (max-width: 1000px) {
	.cx-promise__list { grid-template-columns: repeat(2, auto); }
	.cx-promise__list li:not(:nth-child(3n + 1))::before { display: none; }
	.cx-promise__list li:nth-child(even)::before { display: block; }
}
@media (max-width: 600px) {
	.cx-promise__list { grid-template-columns: minmax(0, 1fr); row-gap: 0; }
	.cx-promise__list li { padding: 18px 0; }
	.cx-promise__list li:nth-child(n)::before { display: none; }
	.cx-promise__list li + li::after {
		content: ""; position: absolute; left: 50%; top: 0; width: 32px; height: 1px; transform: translateX(-50%);
		background: var(--gold-400);
	}
}

/* Vision & mission: statement band over a darkened photo. */
.cx-band { position: relative; isolation: isolate; overflow: hidden; background: var(--green-950); color: rgb(255 255 255 / .84); }
.cx-band__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.cx-band::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgb(8 18 11 / .72), rgb(8 18 11 / .56) 50%, rgb(8 18 11 / .76)); }
.cx-band__inner { max-width: 1080px; padding-block: clamp(96px, 13vw, 184px); text-align: center; }
.cx-band__label { font-family: var(--font-sans); line-height: 1.5; margin-bottom: 28px; }
.cx-band__text { max-width: 28ch; margin: 0 auto; font-family: var(--font-serif); font-size: clamp(1.75rem, 3.6vw, 3.125rem); line-height: 1.2; letter-spacing: -.01em; color: var(--white); text-wrap: balance; }
.cx-band__text--sm { max-width: 46ch; font-size: clamp(1.1875rem, 1.9vw, 1.625rem); line-height: 1.5; letter-spacing: 0; color: rgb(255 255 255 / .86); }
.cx-band__item + .cx-band__item { margin-top: clamp(48px, 6vw, 80px); }
.cx-band__item + .cx-band__item::before { content: ""; display: block; width: 1px; height: clamp(48px, 5vw, 72px); margin: 0 auto clamp(40px, 5vw, 64px); background: linear-gradient(rgb(205 176 122 / 0), var(--gold-400)); }

/* Values: photo beside a numbered two-column hairline list. */
.cx-values__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(40px, 7vw, 112px); align-items: center; }
.cx-values__media { aspect-ratio: 4 / 5; overflow: hidden; background: var(--green-100); }
.cx-values__media img { width: 100%; height: 100%; object-fit: cover; }
.cx-values__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(28px, 4vw, 56px); list-style: none; margin: 8px 0 0; padding: 0; }
.cx-values__item { padding: 26px 0 32px; border-top: 1px solid var(--cream-200); }
.cx-values__num { display: block; margin-bottom: 12px; font-family: var(--font-serif); font-style: italic; font-size: 1.125rem; line-height: 1; color: var(--gold-600); }
.cx-values__title { margin: 0 0 8px; font-size: clamp(1.4375rem, 2vw, 1.75rem); }
.cx-values__item p { margin: 0; font-size: 1rem; line-height: 1.65; color: var(--muted); }
@media (max-width: 900px) {
	.cx-values__grid { grid-template-columns: minmax(0, 1fr); }
	.cx-values__media { aspect-ratio: 16 / 10; }
}
@media (max-width: 560px) {
	.cx-values__list { grid-template-columns: minmax(0, 1fr); }
	.cx-values__item { padding: 22px 0 24px; }
}

/* At a glance: big figures, then the facts as a definition list. */
.cx-glance__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(40px, 7vw, 112px); align-items: start; }
.cx-glance__head { position: sticky; top: calc(var(--header-h) + 32px); }
.cx-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 8px 0 0; border-top: 1px solid rgb(19 38 26 / .12); }
.cx-stats > div { display: flex; flex-direction: column; padding: 26px 0; border-bottom: 1px solid rgb(19 38 26 / .12); }
.cx-stats > div:nth-child(even) { padding-left: 28px; border-left: 1px solid rgb(19 38 26 / .12); }
.cx-stats dd { order: 1; margin: 0; font-family: var(--font-serif); font-size: clamp(2.25rem, 3.8vw, 3.25rem); line-height: 1; color: var(--green-900); white-space: nowrap; }
.cx-stats dt { order: 2; margin-top: 10px; font-size: .6875rem; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; color: var(--muted); }
@media (max-width: 900px) {
	.cx-glance__grid { grid-template-columns: minmax(0, 1fr); }
	.cx-glance__head { position: static; }
}

/* Onward links: three photo tiles. */
.cx-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.cx-tile {
	position: relative; isolation: isolate; display: flex; flex-direction: column; justify-content: flex-end;
	min-height: clamp(380px, 38vw, 540px); padding: clamp(22px, 2.6vw, 36px);
	color: var(--white); text-decoration: none; overflow: hidden; background: var(--green-900);
}
.cx-tile:hover { color: var(--white); }
.cx-tile__img { position: absolute; inset: 0; z-index: -2; }
.cx-tile__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--ease); }
.cx-tile:hover .cx-tile__img img { transform: scale(1.05); }
.cx-tile::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgb(8 18 11 / .88) 0%, rgb(8 18 11 / .45) 42%, rgb(8 18 11 / .05) 75%); }
.cx-tile__kicker { font-size: .6875rem; font-weight: 500; letter-spacing: .28em; text-transform: uppercase; color: var(--gold-400); }
.cx-tile__title { margin: 8px 0 0; font-family: var(--font-serif); font-size: clamp(1.625rem, 2.4vw, 2.25rem); line-height: 1.1; }
.cx-tile__text { margin-top: 10px; max-width: 34ch; font-size: .9375rem; line-height: 1.6; color: rgb(255 255 255 / .82); }
.cx-tile__more { display: inline-flex; align-items: center; gap: 10px; margin-top: 18px; padding-top: 16px; border-top: 1px solid rgb(255 255 255 / .25); font-size: .6875rem; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; }
.cx-tile__more .icon { width: 14px; height: 14px; transition: transform .35s var(--ease); }
.cx-tile:hover .cx-tile__more .icon { transform: translateX(4px); }
.cx-tile--bbc { background: #110d0a; }
.cx-tile--bbc::after { background: linear-gradient(0deg, rgb(17 13 10 / .92) 0%, rgb(17 13 10 / .5) 45%, rgb(17 13 10 / .08) 78%); }
.cx-tile--bbc .cx-tile__kicker { color: #e0a94a; }
.cx-tile--bbc .cx-tile__title { font-family: "Oswald", var(--font-sans); font-weight: 500; text-transform: uppercase; letter-spacing: .02em; }
@media (max-width: 900px) {
	.cx-tiles { grid-template-columns: minmax(0, 1fr); gap: 12px; }
	.cx-tile { min-height: 320px; }
}

/* ==========================================================
   Dining
   ========================================================== */

/* Meals: a menu-style list with dotted leaders, beside a photo. */
.cx-meals__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(40px, 7vw, 112px); align-items: center; }
.cx-meals__grid--solo { grid-template-columns: minmax(0, 1fr); max-width: 820px; }
.cx-meals__media { aspect-ratio: 4 / 5; overflow: hidden; background: var(--green-100); }
.cx-meals__media img { width: 100%; height: 100%; object-fit: cover; }
.cx-menu { list-style: none; margin: 8px 0 0; padding: 0; border-top: 1px solid rgb(19 38 26 / .12); }
.cx-menu__item { display: grid; grid-template-columns: auto minmax(24px, 1fr) auto; align-items: baseline; padding: 28px 0 30px; border-bottom: 1px solid rgb(19 38 26 / .12); }
.cx-menu__item::before { content: ""; grid-column: 2; grid-row: 1; align-self: center; margin: 0 18px; border-bottom: 1px dotted rgb(134 103 44 / .6); }
.cx-menu__title { grid-column: 1; grid-row: 1; margin: 0; font-size: clamp(1.5rem, 2.2vw, 1.875rem); }
.cx-menu__meta { grid-column: 3; grid-row: 1; margin: 0; font-size: .6875rem; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; color: var(--muted); text-align: right; }
.cx-menu__text { grid-column: 1 / -1; max-width: 60ch; margin: 12px 0 0; color: var(--muted); }
@media (max-width: 900px) {
	.cx-meals__grid { grid-template-columns: minmax(0, 1fr); }
	.cx-meals__media { aspect-ratio: 16 / 10; }
}
@media (max-width: 560px) {
	.cx-menu__item { grid-template-columns: minmax(0, 1fr); padding: 22px 0 24px; }
	.cx-menu__item::before { display: none; }
	.cx-menu__meta { grid-column: 1; grid-row: 2; margin-top: 6px; text-align: left; }
	.cx-menu__text { grid-row: 3; }
}

/* Photo mosaic: one large photo and smaller ones, all opening in the lightbox. */
.cx-mosaic { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: clamp(180px, 19vw, 280px); grid-auto-flow: dense; gap: clamp(10px, 1.2vw, 16px); }
.cx-mosaic__item { display: block; overflow: hidden; background: var(--green-100); }
.cx-mosaic__item img { width: 100%; height: 100%; object-fit: cover; }
.cx-mosaic__item:first-child { grid-column: span 2; grid-row: span 2; }
.cx-mosaic--4 .cx-mosaic__item:last-child { grid-column: 1 / -1; }
.cx-mosaic--5 .cx-mosaic__item:last-child { grid-column: span 2; }
.cx-mosaic--1, .cx-mosaic--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cx-mosaic--1 .cx-mosaic__item, .cx-mosaic--2 .cx-mosaic__item { grid-column: auto; grid-row: span 2; }
.cx-photos .photo-note { margin-top: 18px; }
@media (max-width: 700px) {
	.cx-mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: clamp(130px, 36vw, 220px); }
	.cx-mosaic--4 .cx-mosaic__item:last-child, .cx-mosaic--5 .cx-mosaic__item:last-child { grid-column: auto; }
	.cx-mosaic--4 .cx-mosaic__item:last-child, .cx-mosaic--6 .cx-mosaic__item:last-child { grid-column: 1 / -1; }
}

/* ==========================================================
   Amenities & Experiences
   ========================================================== */
.cx-intro { max-width: 1060px; margin: 0 auto clamp(56px, 7vw, 104px); text-align: center; }
.cx-intro__text { max-width: 780px; margin-inline: auto; font-size: clamp(1.125rem, 1.6vw, 1.3125rem); line-height: 1.7; color: var(--muted); }
.cx-intro__text > * { text-wrap: balance; }

/* Jump links to each amenity: one hairline row; a swipeable strip on phones. */
.cx-index ul { display: flex; flex-wrap: wrap; justify-content: center; list-style: none; margin: 40px 0 0; padding: 4px 0; border-block: 1px solid var(--cream-200); }
.cx-index li { display: flex; align-items: center; }
.cx-index li:not(:last-child)::after { content: ""; flex: none; width: 4px; height: 4px; border-radius: 50%; background: var(--gold-600); }
.cx-index a { display: inline-flex; align-items: center; min-height: 48px; padding: 0 20px; font-size: .6875rem; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; white-space: nowrap; text-decoration: none; color: var(--green-900); transition: color .3s var(--ease); }
.cx-index a:hover { color: var(--gold-600); }
@media (max-width: 700px) {
	.cx-index { margin-inline: calc(-1 * var(--gutter)); }
	.cx-index ul {
		flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; padding-inline: calc(var(--gutter) - 14px);
		scrollbar-width: none; -webkit-mask-image: linear-gradient(90deg, #000 85%, transparent); mask-image: linear-gradient(90deg, #000 85%, transparent);
	}
	.cx-index ul::-webkit-scrollbar { display: none; }
	.cx-index ul::after { content: ""; flex: 0 0 32px; }
	.cx-index a { padding: 0 14px; }
}

/* Large alternating photo + text rows. */
.cx-features { display: flex; flex-direction: column; gap: clamp(72px, 9vw, 136px); }
.cx-feature { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: clamp(36px, 6vw, 96px); align-items: center; scroll-margin-top: calc(var(--header-h) + 24px); }
.cx-feature--flip { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); }
.cx-feature--flip .cx-feature__media { order: 2; }
.cx-feature__media { aspect-ratio: 4 / 3; overflow: hidden; background: var(--green-100); }
.cx-feature__media img { width: 100%; height: 100%; object-fit: cover; }
.cx-feature__copy { max-width: 460px; }
.cx-feature__num { display: flex; align-items: center; gap: 18px; margin: 0 0 22px; font-family: var(--font-serif); font-style: italic; font-size: clamp(2.25rem, 3.4vw, 3rem); line-height: 1; color: var(--gold-600); }
.cx-feature__num::after { content: ""; width: 56px; height: 1px; background: var(--gold-600); opacity: .6; }
.cx-feature__title { margin: 0 0 16px; font-size: clamp(2rem, 3.4vw, 2.875rem); line-height: 1.08; }
.cx-feature__copy > p:not(.cx-feature__num) { color: var(--muted); }
.cx-feature .link-arrow { margin-top: 8px; }
.cx-amenities .photo-note { margin-top: 40px; text-align: center; }

/* No photo yet: a deliberate green plate with an arched hairline, icon and name. */
.cx-feature__media .icon-tile {
	position: relative; gap: 20px; padding: 32px; color: var(--gold-400);
	background: radial-gradient(ellipse at 50% 30%, rgb(205 176 122 / .16), rgb(205 176 122 / 0) 60%), var(--green-900);
}
.cx-feature__media .icon-tile::before {
	content: ""; position: absolute; inset: clamp(16px, 2.2vw, 28px) 18%; bottom: 0;
	border: 1px solid rgb(205 176 122 / .4); border-bottom: 0; border-radius: 999px 999px 0 0;
}
.cx-feature__media .icon-tile .icon { position: relative; width: 60px; height: 60px; color: var(--gold-400); stroke-width: 1.1; }
.cx-feature__media .icon-tile__label { position: relative; max-width: 14ch; font-family: var(--font-serif); font-style: italic; font-size: clamp(1.375rem, 2.2vw, 1.875rem); line-height: 1.2; color: var(--white); }

@media (max-width: 900px) {
	.cx-feature, .cx-feature--flip { grid-template-columns: minmax(0, 1fr); gap: 28px; }
	.cx-feature--flip .cx-feature__media { order: 0; }
	.cx-feature__media { aspect-ratio: 3 / 2; }
	.cx-feature__copy { max-width: 620px; }
	.cx-feature__num { margin-bottom: 16px; }
}

/* Services and house rules: heading beside a hairline list. */
.cx-aside { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.cx-aside__head .section__title { margin-bottom: 0; }
.cx-services { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(28px, 4vw, 56px); list-style: none; margin: 0; padding: 0; border-bottom: 1px solid rgb(19 38 26 / .12); }
.cx-services li { display: flex; gap: 16px; align-items: flex-start; padding: 22px 0 24px; border-top: 1px solid rgb(19 38 26 / .12); }
.cx-services .icon { flex: none; width: 22px; height: 22px; margin-top: 4px; color: var(--gold-600); stroke-width: 1.4; }
.cx-services strong { display: block; margin-bottom: 4px; font-family: var(--font-serif); font-size: 1.25rem; font-weight: 400; line-height: 1.3; color: var(--green-900); }
.cx-services span { font-size: .9375rem; line-height: 1.6; color: var(--muted); }

.cx-rules { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; border-top: 1px solid var(--cream-200); }
.cx-rules > div { padding: 24px 24px 28px 0; border-bottom: 1px solid var(--cream-200); }
.cx-rules > div:not(:nth-child(3n + 1)) { padding-left: 24px; border-left: 1px solid var(--cream-200); }
.cx-rules dt { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; font-size: .6875rem; font-weight: 500; letter-spacing: .2em; line-height: 1.4; text-transform: uppercase; color: var(--gold-600); }
.cx-rules dt .icon { width: 18px; height: 18px; stroke-width: 1.4; }
.cx-rules dd { margin: 0; font-family: var(--font-serif); font-size: clamp(1.125rem, 1.5vw, 1.3125rem); line-height: 1.4; color: var(--green-900); }

@media (max-width: 900px) {
	.cx-aside { grid-template-columns: minmax(0, 1fr); }
	.cx-rules { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cx-rules > div:not(:nth-child(3n + 1)) { padding-left: 0; border-left: 0; }
	.cx-rules > div:nth-child(even) { padding-left: 24px; border-left: 1px solid var(--cream-200); }
}
@media (max-width: 560px) {
	.cx-services { grid-template-columns: minmax(0, 1fr); }
	.cx-rules { grid-template-columns: minmax(0, 1fr); }
	.cx-rules > div, .cx-rules > div:nth-child(even) { padding: 18px 0 20px; border-left: 0; }
}

/* Getting here: arched photo beside directions and nearby places. */
.cx-around__grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(40px, 7vw, 112px); align-items: center; }
.cx-around__grid--solo { grid-template-columns: minmax(0, 1fr); max-width: 820px; }
.cx-around__media { aspect-ratio: 4 / 5; background: var(--green-100); }
.cx-around__media img { width: 100%; height: 100%; object-fit: cover; }
.cx-around .location__list li { border-color: rgb(19 38 26 / .12); }
.cx-around .cx-actions { margin-top: 0; }
.cx-around .photo-note { margin-top: 20px; }
@media (max-width: 900px) {
	.cx-around__grid { grid-template-columns: minmax(0, 1fr); }
	.cx-around__media { width: 100%; max-width: 420px; margin-inline: auto; aspect-ratio: 5 / 5.4; }
}

/* ==========================================================
   Gallery
   ========================================================== */
.cx-gallery__head { margin-bottom: clamp(36px, 4.5vw, 64px); }
.page-gallery .gallery-filters { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: clamp(24px, 3vw, 40px) 0 0; }
.page-gallery .gallery-filters[hidden] { display: none; }
.page-gallery .gallery-filters__btn {
	display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 22px;
	font: 500 .6875rem/1 var(--font-sans); letter-spacing: .2em; text-transform: uppercase; color: var(--green-900);
	background: transparent; border: 1px solid rgb(19 38 26 / .22); border-radius: 999px; cursor: pointer;
	transition: background-color .35s var(--ease), border-color .35s var(--ease), color .35s var(--ease);
}
.page-gallery .gallery-filters__btn:hover { border-color: var(--green-900); }
.page-gallery .gallery-filters__btn[aria-pressed="true"] { background: var(--green-900); border-color: var(--green-900); color: var(--white); }
.page-gallery .gallery-filters__count { font-size: .625rem; letter-spacing: .08em; color: var(--gold-600); opacity: 1; }
.page-gallery .gallery-filters__btn[aria-pressed="true"] .gallery-filters__count { color: var(--gold-400); }

.page-gallery .masonry { columns: 3; column-gap: clamp(12px, 1.6vw, 24px); }
.page-gallery .masonry__item { position: relative; display: block; margin-bottom: clamp(12px, 1.6vw, 24px); break-inside: avoid; border-radius: 0; overflow: hidden; background: var(--green-100); }
.page-gallery .masonry__item[hidden] { display: none; }
.page-gallery .masonry__item img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; transition: transform 1.4s var(--ease); }
.page-gallery .masonry__item--tall img { aspect-ratio: 4 / 5; }
.page-gallery .masonry__item:hover img { transform: scale(1.04); }
.masonry__caption {
	position: absolute; inset: auto 0 0; padding: 40px 18px 16px;
	font-size: .8125rem; line-height: 1.45; color: var(--white);
	background: linear-gradient(0deg, rgb(8 18 11 / .78), rgb(8 18 11 / 0));
	opacity: 0; transform: translateY(6px); transition: opacity .4s var(--ease), transform .4s var(--ease);
}
.masonry__item:hover .masonry__caption, .masonry__item:focus-visible .masonry__caption { opacity: 1; transform: none; }
.page-gallery .masonry__item:focus-visible { outline-offset: 2px; }
.cx-gallery .photo-note { margin-top: 24px; text-align: center; }
@media (max-width: 900px) {
	.page-gallery .masonry { columns: 2; }
}
@media (max-width: 600px) {
	.page-gallery .masonry { column-gap: 8px; }
	.page-gallery .masonry__item { margin-bottom: 8px; }
	/* Filters become one swipeable row running edge to edge. */
	.page-gallery .gallery-filters {
		flex-wrap: nowrap; justify-content: flex-start; gap: 8px; overflow-x: auto;
		margin-inline: calc(-1 * var(--gutter)); padding: 4px var(--gutter);
		scrollbar-width: none; -webkit-mask-image: linear-gradient(90deg, #000 85%, transparent); mask-image: linear-gradient(90deg, #000 85%, transparent);
	}
	.page-gallery .gallery-filters::-webkit-scrollbar { display: none; }
	.page-gallery .gallery-filters::after { content: ""; flex: 0 0 24px; }
	.page-gallery .gallery-filters__btn { flex: none; padding: 0 18px; letter-spacing: .16em; white-space: nowrap; }
	.cx-gallery__head { margin-bottom: 28px; }
}
@media (hover: none) { .masonry__caption { display: none; } }
@media (prefers-reduced-motion: reduce) {
	.cx-tile__img img, .page-gallery .masonry__item img, .cx-tile:hover .cx-tile__img img, .page-gallery .masonry__item:hover img { transform: none; }
	.masonry__caption { transform: none; }
}
