/* Shared shell, header, footer, and homepage composition. */
.ccf-main,
.ccf-main > .wp-block-post-content,
.ccf-home,
.ccf-home > *,
.wp-site-blocks > header,
.wp-site-blocks > footer {
	margin-block: 0;
}

.wp-site-blocks > header {
	position: sticky;
	top: 0;
	z-index: 1000;
}

.admin-bar .wp-site-blocks > header { top: 32px; }

.ccf-home,
.ccf-header,
.ccf-footer {
	--ccf-gutter: var(--wp--custom--layout--gutter);
	--ccf-space: var(--wp--custom--spacing--section);
	--ccf-wide: var(--wp--style--global--wide-size, 80rem);
}

.ccf-shell {
	box-sizing: border-box;
	width: min(calc(100% - var(--ccf-gutter) * 2), var(--ccf-wide));
	margin-inline: auto;
}

.ccf-section {
	padding-block: var(--ccf-space);
	scroll-margin-top: clamp(6rem, 10vw, 10rem);
}

.ccf-home :where(h1, h2, h3, p, figure),
.ccf-header :where(p, figure),
.ccf-footer :where(h3, p) {
	margin-block-start: 0;
}

.ccf-home :where(.ccf-copy, .ccf-hero-copy) > * + * {
	margin-block-start: var(--wp--preset--spacing--5);
}

.ccf-home .ccf-eyebrow,
.ccf-footer .ccf-caption,
.ccf-home .ccf-caption {
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.5;
	font-weight: 500;
}

.ccf-home .ccf-eyebrow {
	letter-spacing: 0.08em;
	margin-block-end: var(--wp--preset--spacing--5);
	color: var(--wp--preset--color--walnut);
}

.ccf-home .ccf-copy > p:not(.ccf-eyebrow) {
	max-width: 35rem;
}

.ccf-preview-note { font-size: var(--wp--preset--font-size--ui); font-weight: 600; color: var(--wp--preset--color--walnut); }

.ccf-home .wp-block-image {
	margin: 0;
}

.ccf-home .wp-block-image img {
	display: block;
	width: 100%;
}

.ccf-header {
	background: var(--wp--preset--color--white);
	border-bottom: 1px solid var(--wp--preset--color--border);
}

.ccf-header-row {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: var(--wp--preset--spacing--6);
	padding-block: var(--wp--preset--spacing--4);
}

.ccf-header-row > * { margin-block: 0; }

.ccf-header .wp-block-site-logo,
.ccf-footer .wp-block-site-logo {
	flex-shrink: 0;
	padding: 0;
	background: transparent;
	width: fit-content;
}

.ccf-primary-nav .wp-block-navigation__container {
	gap: clamp(0.75rem, 1.4vw, 1.5rem);
}

.ccf-primary-nav .wp-block-navigation-item__content {
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.ccf-primary-nav :where(.current-menu-item, [aria-current="page"]) > .wp-block-navigation-item__content,
.ccf-primary-nav .wp-block-navigation-item__content[aria-current="page"] {
	text-decoration: underline;
	text-decoration-thickness: 0.1em;
	text-underline-offset: 0.45em;
}

.ccf-primary-nav .ccf-nav-cta > .wp-block-navigation-item__content {
	background: var(--wp--preset--color--forest);
	color: var(--wp--preset--color--cream);
	border: 1px solid transparent;
	border-radius: var(--wp--custom--radius--control);
	padding: var(--wp--preset--spacing--3) var(--wp--preset--spacing--5);
	min-height: 48px;
	box-sizing: border-box;
	font-weight: 600;
}

.ccf-primary-nav .ccf-nav-cta > .wp-block-navigation-item__content:hover { background: var(--wp--preset--color--forest-hover); }
.ccf-primary-nav .ccf-nav-cta > .wp-block-navigation-item__content:active { background: var(--wp--preset--color--forest-active); }

.ccf-primary-nav .wp-block-navigation__responsive-container-open,
.ccf-primary-nav .wp-block-navigation__responsive-container-close {
	min-width: 48px;
	min-height: 48px;
	justify-content: center;
	align-items: center;
}

.ccf-primary-nav .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--wp--preset--color--ivory);
	color: var(--wp--preset--color--forest);
	padding: var(--wp--preset--spacing--6);
}

.ccf-hero { padding-block: 0 var(--wp--preset--spacing--5); }
.ccf-hero > .ccf-shell:first-child { width: 100%; max-width: none; }
.ccf-hero-grid { display: grid; min-height: clamp(36rem, 68vw, 49rem); isolation: isolate; background: var(--wp--preset--color--charcoal); }
.ccf-hero-grid > * { grid-column: 1; grid-row: 1; min-width: 0; margin-block: 0; }
.ccf-hero-grid::after { content: ""; z-index: 1; grid-column: 1; grid-row: 1; background: linear-gradient(90deg, rgb(15 22 17 / 0.82) 0%, rgb(15 22 17 / 0.52) 47%, rgb(15 22 17 / 0.06) 78%); pointer-events: none; }
.ccf-hero-copy { z-index: 2; align-self: end; box-sizing: border-box; width: min(calc(100% - var(--ccf-gutter) * 2), var(--ccf-wide)); margin-inline: auto; padding-block: var(--wp--preset--spacing--9); color: var(--wp--preset--color--ivory); }
.ccf-hero-copy h1 { max-width: 15ch; margin-block: 0; color: var(--wp--preset--color--cream); text-wrap: balance; }
.ccf-hero-copy .ccf-eyebrow { color: var(--wp--preset--color--cream); }
.ccf-hero-copy > p:not(.ccf-eyebrow) { max-width: 31rem; }
.ccf-hero-copy .is-style-editorial-link .wp-block-button__link { color: var(--wp--preset--color--cream); }
.ccf-hero-image { z-index: 0; align-self: stretch; }
.ccf-hero-image img { height: 100%; min-height: inherit; object-fit: cover; }
.ccf-hero-foot { display: flex; justify-content: space-between; gap: var(--wp--preset--spacing--4); margin-top: var(--wp--preset--spacing--5); }
.ccf-hero-foot > p { margin: 0; }

.ccf-intro-grid,
.ccf-hunt-grid,
.ccf-lodge-grid { display: grid; gap: clamp(2rem, 6vw, 6rem); align-items: center; }
.ccf-intro-grid { grid-template-columns: 0.8fr 1.2fr; }
.ccf-intro-grid > .wp-block-image { max-width: 28rem; }
.ccf-hunt-grid { grid-template-columns: 0.8fr 1.2fr; }
.ccf-lodge-grid { grid-template-columns: 1.15fr 0.85fr; }
.ccf-lodge-grid > .wp-block-image { max-width: 39rem; }
.ccf-intro-grid > *, .ccf-hunt-grid > *, .ccf-lodge-grid > * { min-width: 0; margin-block: 0; }
.ccf-hunt { background: var(--wp--preset--color--surface); }

.ccf-land { padding-bottom: 0; }
.ccf-land-copy { display: grid; grid-template-columns: 1fr 1fr; column-gap: var(--wp--preset--spacing--7); align-items: end; }
.ccf-land-copy .ccf-eyebrow { grid-column: 1 / -1; }
.ccf-land-copy h2 { margin: 0; }
.ccf-land-copy > p:last-child { max-width: 27rem; justify-self: end; margin: 0; }
.ccf-land .ccf-land-image { margin-top: var(--wp--preset--spacing--7); }
.ccf-land-video video {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	background: var(--wp--preset--color--charcoal);
	object-fit: cover;
}

.ccf-pillars { padding-block: var(--ccf-space); }
.ccf-pillars-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--wp--preset--spacing--7); border-block: 1px solid var(--wp--preset--color--border); padding-block: var(--wp--preset--spacing--7); }
.ccf-pillars-grid > * { margin-block: 0; }
.ccf-pillar-number { color: var(--wp--preset--color--terracotta); font-size: var(--wp--preset--font-size--small); }
.ccf-pillar h3 { margin-block: var(--wp--preset--spacing--5) var(--wp--preset--spacing--4); }
.ccf-pillar > p:last-child { font-size: var(--wp--preset--font-size--ui); margin-bottom: 0; max-width: 19rem; }

.ccf-story { padding-top: 0; text-align: center; }
.ccf-story-heading { font-size: var(--wp--preset--font-size--heading-one); max-width: 55rem; margin-inline: auto; }
.ccf-story .ccf-pending-copy { max-width: 42rem; margin-inline: auto; }
.ccf-pending-copy { color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--ui); }

.ccf-story .ccf-legacy-quote {
	max-width: 58rem;
	margin: var(--wp--preset--spacing--7) auto var(--wp--preset--spacing--6);
	padding: 0;
	border: 0;
	font-family: var(--wp--preset--font-family--editorial);
	font-size: clamp(1.625rem, 1.1rem + 1.5vw, 2.5rem);
	line-height: 1.35;
	font-weight: 500;
	color: var(--wp--preset--color--forest);
}

.ccf-story-image { width: min(20rem, 65vw); margin: var(--wp--preset--spacing--7) auto 0 !important; }
.ccf-story-image img { aspect-ratio: 4/5; object-fit: cover; }

.ccf-legacy-quote cite {
	display: block;
	margin-top: var(--wp--preset--spacing--6);
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--small);
	font-style: normal;
	letter-spacing: 0.06em;
}

.ccf-legacy-context { max-width: 42rem; margin-inline: auto; font-size: var(--wp--preset--font-size--ui); }
.ccf-rates { background: var(--wp--preset--color--surface); }
.ccf-rates-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--wp--preset--spacing--8); margin-top: var(--wp--preset--spacing--7); }
.ccf-rates-grid > * { margin: 0; padding-block: var(--wp--preset--spacing--6); border-top: 1px solid var(--wp--preset--color--control-border); }
.ccf-rate-option .ccf-rate { font-family: var(--wp--preset--font-family--display); font-size: var(--wp--preset--font-size--heading-one); line-height: 1.1; color: var(--wp--preset--color--forest); margin-block: var(--wp--preset--spacing--5); }
.ccf-rate-summary { font-weight: 600; }
.ccf-rate-option > p:not(.ccf-rate) { font-size: var(--wp--preset--font-size--ui); max-width: 29rem; }
.ccf-rate-inclusions { border-top: 1px solid var(--wp--preset--color--border); padding-top: var(--wp--preset--spacing--6); }
.ccf-home .ccf-rate-disclaimer { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
.ccf-rates .wp-block-details { border-block: 1px solid var(--wp--preset--color--border); padding-block: var(--wp--preset--spacing--3); margin-block: var(--wp--preset--spacing--6); }
.ccf-rates summary { min-height: 48px; align-content: center; cursor: pointer; font-size: var(--wp--preset--font-size--ui); font-weight: 600; }
.ccf-rates .wp-block-details p { font-size: var(--wp--preset--font-size--ui); max-width: 46rem; }
.ccf-clays { padding-bottom: 0; }
.ccf-clays-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--wp--preset--spacing--8); }
.ccf-clays-grid > * { margin-block: 0; }

.ccf-gallery { background: var(--wp--preset--color--surface); }
.ccf-gallery-top { display: flex; align-items: end; justify-content: space-between; gap: var(--wp--preset--spacing--7); margin-bottom: var(--wp--preset--spacing--7); }
.ccf-gallery-top > * { margin-block: 0; }
.ccf-gallery-heading h2 { margin-bottom: 0; }
.ccf-gallery-intro { max-width: 22rem; }
.ccf-gallery-grid { display: grid; grid-template-columns: 1.2fr 0.8fr; gap: var(--wp--preset--spacing--6); align-items: start; }
.ccf-gallery-tall { grid-column: 2; grid-row: 1 / 3; padding-top: var(--wp--preset--spacing--8); }
.ccf-gallery-detail { grid-column: 1; width: 70%; justify-self: end; }

.ccf-inquiry { text-align: center; background: var(--wp--preset--color--forest); color: var(--wp--preset--color--ivory); }
.ccf-inquiry .ccf-eyebrow,
.ccf-inquiry h2 { color: var(--wp--preset--color--cream); }
.ccf-cta-heading { font-size: var(--wp--preset--font-size--heading-one); }
.ccf-inquiry .wp-block-buttons { justify-content: center; }
.ccf-inquiry .wp-block-button__link:not(.has-background) { background: var(--wp--preset--color--cream); }
.ccf-inquiry .wp-block-button__link:not(.has-text-color) { color: var(--wp--preset--color--forest); }
.ccf-home .ccf-inquiry .wp-block-button__link:not(.has-background):hover,
.ccf-home .ccf-inquiry .wp-block-button__link:not(.has-background):active { background: var(--wp--preset--color--ivory); }

.ccf-footer {
	padding-block: var(--ccf-space) var(--wp--preset--spacing--6);
	background-color: var(--wp--preset--color--ivory);
	background-image: linear-gradient(rgb(247 245 240 / 0.16), rgb(247 245 240 / 0.16)), url("../images/footer-landscape.webp");
	background-repeat: no-repeat;
	background-position: center bottom;
	background-size: cover;
}
.ccf-footer-grid { display: grid; grid-template-columns: 1fr 0.8fr 1.2fr; gap: var(--wp--preset--spacing--7); }
.ccf-footer-grid > * { margin-block: 0; }
.ccf-footer h3 { font-size: var(--wp--preset--font-size--heading-four); }
.ccf-footer-brand .ccf-caption { margin-top: var(--wp--preset--spacing--4); }
.ccf-footer-nav p { margin-block: 0; }
.ccf-footer-nav a { display: inline-flex; align-items: center; min-height: 44px; font-size: var(--wp--preset--font-size--ui); }
.ccf-footer-contact p { margin-block: 0 var(--wp--preset--spacing--3); }
.ccf-footer-contact a { overflow-wrap: anywhere; }
.ccf-footer-bottom { display: flex; justify-content: space-between; gap: var(--wp--preset--spacing--5); margin-top: var(--wp--preset--spacing--8); padding-top: var(--wp--preset--spacing--5); border-top: 1px solid var(--wp--preset--color--border); }
.ccf-footer-bottom > p { margin: 0; }

@media (max-width: 63.99rem) {
	.ccf-header-row { justify-content: flex-end; gap: var(--wp--preset--spacing--4); }
	/* Use WordPress's accessible overlay at tablet widths as well as mobile. */
	.ccf-primary-nav .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none; }
	.ccf-primary-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.ccf-primary-nav .is-menu-open .wp-block-navigation__container { align-items: stretch; gap: var(--wp--preset--spacing--5); width: 100%; }
	.ccf-primary-nav .is-menu-open .wp-block-navigation-item { width: 100%; }
	.ccf-primary-nav .is-menu-open .wp-block-navigation-item__content { min-height: 48px; }
	.ccf-primary-nav .is-menu-open .ccf-nav-cta > .wp-block-navigation-item__content { justify-content: center; margin-top: var(--wp--preset--spacing--3); }
	.ccf-hero-copy { padding-block: var(--wp--preset--spacing--8); }
	.ccf-footer-grid { grid-template-columns: 1fr 1fr; }
	.ccf-footer-brand { grid-column: 1 / -1; }
}

@media (max-width: 48.875rem) {
	.admin-bar .wp-site-blocks > header { top: 46px; }
}

@media (max-width: 48rem) {
	.ccf-header-row { padding-block: var(--wp--preset--spacing--2); }
	.ccf-hero-grid { min-height: 38rem; }
	.ccf-hero-grid::after { background: linear-gradient(0deg, rgb(15 22 17 / 0.88) 0%, rgb(15 22 17 / 0.3) 72%, transparent 100%); }
	.ccf-hero-copy { padding-block: var(--wp--preset--spacing--7); }
	.ccf-hero-copy h1 { max-width: 35rem; }
	.ccf-hero-image img { min-height: 38rem; height: 100%; aspect-ratio: auto !important; }
	.ccf-hero-foot { align-items: start; }
	.ccf-hero-foot p:last-child { max-width: 12rem; text-align: right; }
	.ccf-intro-grid, .ccf-hunt-grid, .ccf-lodge-grid { grid-template-columns: minmax(0, 1fr); gap: var(--wp--preset--spacing--6); }
	.ccf-intro-grid > *, .ccf-hunt-grid > *, .ccf-lodge-grid > * { width: 100%; max-width: 100%; }
	.ccf-intro-grid > .wp-block-image, .ccf-lodge-grid > .wp-block-image { max-width: none; }
	.ccf-intro-grid .ccf-copy, .ccf-lodge-grid .ccf-copy { grid-row: 1; }
	.ccf-land-copy { display: block; }
	.ccf-land-copy > p:last-child { margin-top: var(--wp--preset--spacing--5); justify-self: auto; }
	.ccf-land-image img { aspect-ratio: 4/3 !important; }
	.ccf-land-video video { aspect-ratio: 16 / 9; }
	.ccf-pillars-grid { grid-template-columns: 1fr; gap: var(--wp--preset--spacing--6); }
	.ccf-pillar + .ccf-pillar { border-top: 1px solid var(--wp--preset--color--border); padding-top: var(--wp--preset--spacing--6); }
	.ccf-pillar > p:last-child { max-width: none; }
	.ccf-gallery-top { display: block; }
	.ccf-gallery-intro { margin-top: var(--wp--preset--spacing--5); }
	.ccf-gallery-grid { grid-template-columns: minmax(0, 1fr); gap: var(--wp--preset--spacing--5); }
	.ccf-gallery-detail { grid-column: 1; grid-row: 1; width: 100%; padding-top: 0; justify-self: stretch; }
	.ccf-gallery-wide { grid-column: 1; grid-row: 2; }
	.ccf-gallery-tall { grid-column: 1; grid-row: 3; padding-top: 0; }
	.ccf-footer-grid { grid-template-columns: 1fr; gap: var(--wp--preset--spacing--6); }
	.ccf-footer-bottom { flex-direction: column; }
	.ccf-rates-grid, .ccf-clays-grid { grid-template-columns: 1fr; gap: var(--wp--preset--spacing--5); }
}
