.camp-detail__hero {
	padding-block: var(--space-8);
	background-color: var(--color-white);
}

.camp-detail__hero-main {
	display: grid;
	align-items: start;
	gap: var(--space-8);
}

.camp-detail__title {
	max-width: none;
}

.camp-detail__intro {
	max-width: var(--content-max-width-wide);
}

.camp-detail__hero-details {
	margin-top: var(--space-6);
	padding-top: var(--space-4);
	border-top: 1px solid var(--color-border-subtle);
}

.camp-detail__tags {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2);
	margin: 0;
	padding: 0;
	list-style: none;
}

.camp-detail__tags a {
	display: inline-flex;
	padding: var(--space-1) var(--space-3);
	color: var(--color-muted);
	font-size: var(--font-size-body-xs);
	font-weight: var(--font-weight-bold);
	background-color: var(--color-background-section);
	border-radius: var(--control-border-radius);
	transition: color var(--transition-fast), background-color var(--transition-fast);
}

html.has-hover-input .camp-detail__tags a:hover {
	color: var(--color-white);
	background-color: var(--color-off-black);
}

.camp-detail__tags a:focus-visible {
	outline: var(--focus-ring-width) solid var(--color-focus);
	outline-offset: var(--focus-ring-offset);
}

.camp-detail__summary {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin: var(--space-5) 0 0;
	padding: 0;
	border-top: 1px solid var(--color-border-subtle);
	border-bottom: 1px solid var(--color-border-subtle);
}

.camp-detail__summary--with-location {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.camp-detail__summary > div {
	min-width: 0;
	padding: var(--space-4);
	border-left: 1px solid var(--color-border-subtle);
}

.camp-detail__summary > div:first-child {
	padding-left: 0;
	border-left: 0;
}

.camp-detail__summary dt {
	margin: 0 0 var(--space-2);
	color: var(--color-muted);
	font-size: var(--font-size-eyebrow);
	font-weight: var(--font-weight-bold);
	letter-spacing: var(--letter-spacing-eyebrow);
	text-transform: uppercase;
}

.camp-detail__summary dd {
	margin: 0;
	font-family: var(--font-family-heading);
	font-size: var(--font-size-heading-5);
	font-weight: var(--font-weight-bold);
	line-height: var(--line-height-heading);
	text-transform: uppercase;
}

.camp-detail__summary a {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	color: var(--color-brand-accent);
	text-decoration: none;
	transition: color var(--transition-fast);
}

html.has-hover-input .camp-detail__summary a:hover {
	color: var(--color-brand-accent-hover);
}

.camp-detail__summary a:focus-visible {
	outline: var(--focus-ring-width) solid var(--color-focus);
	outline-offset: var(--focus-ring-offset);
}

.camp-detail__floorplan-figure {
	margin: 0;
}

.camp-detail__floorplan-pages {
	min-width: 0;
}

.camp-detail__floorplan-link {
	position: relative;
	display: block;
	overflow: hidden;
	color: var(--color-white);
}

.camp-detail__floorplan-link:focus-visible {
	outline: var(--focus-ring-width) solid var(--color-focus);
	outline-offset: var(--focus-ring-offset);
}

.camp-detail__floorplan,
.camp-detail__video {
	background-color: var(--color-white);
}

.camps-gallery--build + .camp-detail__floorplan.py-8 {
	padding-block-start: var(--space-5);
}

.camp-detail__specs + .camp-detail__video {
	padding-block-start: var(--space-0);
}

.camp-detail__specs {
	background-color: var(--color-white);
}

.camp-detail__floorplan + .camp-detail__specs {
	padding-block-start: var(--space-0);
}

.camp-detail__spec-legend {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: var(--space-2);
	margin: var(--space-4) 0 0;
	color: var(--color-muted);
}

.camp-detail__spec-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: var(--space-1) var(--space-2);
	color: var(--color-brand-accent);
	font-family: var(--font-family-body);
	font-size: var(--font-size-body-xs);
	font-weight: var(--font-weight-bold);
	line-height: 1;
	letter-spacing: var(--letter-spacing-label);
	text-transform: uppercase;
	white-space: nowrap;
	border: 1px solid currentColor;
	border-radius: var(--radius-pill);
}

.camp-detail__spec-sections {
	border-top: 1px solid var(--color-border-subtle);
}

.camp-detail__spec-section {
	padding-block: var(--space-7);
	background-color: var(--color-white);
	border-bottom: 1px solid var(--color-border-subtle);
}

.camp-detail__spec-section-header {
	margin-bottom: var(--space-6);
}

.camp-detail__spec-section-header h3 {
	display: flex;
	align-items: flex-start;
	flex-direction: column;
	margin: 0;
	overflow-wrap: break-word;
}

.camp-detail__spec-section-header h3::after {
	width: calc(var(--space-7) + var(--space-3));
	height: 3px;
	margin-top: var(--space-2);
	background-color: var(--color-brand-accent);
	content: "";
}

.camp-detail__spec-groups {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--space-6);
}

.camp-detail__spec-group {
	min-width: 0;
}

.camp-detail__spec-group h4 {
	display: flex;
	align-items: flex-start;
	flex-direction: column;
	margin: 0 0 var(--space-4);
}

.camp-detail__spec-group h4::after {
	width: calc(var(--space-6) + var(--space-2));
	height: 3px;
	margin-top: var(--space-2);
	background-color: var(--color-black);
	content: "";
}

.camp-detail__spec-group dl,
.camp-detail__spec-group dd {
	margin: 0;
}

.camp-detail__spec-row {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: var(--space-5);
	padding: var(--space-5) var(--space-3) var(--space-5) calc(var(--space-3) + 3px);
	border-bottom: 1px solid var(--color-border-subtle);
}

.camp-detail__spec-row:nth-child(odd) {
	background-color: var(--color-background-section);
}

.camp-detail__spec-row dt {
	display: flex;
	align-items: center;
	gap: var(--space-2);
	flex: 0 1 auto;
	max-width: 40%;
	color: var(--color-muted);
}

.camp-detail__spec-label {
	min-width: 0;
}

.camp-detail__spec-row--custom,
.camp-detail__spec-row--highlighted {
	padding-inline-start: var(--space-3);
	background-color: var(--color-background-section);
	border-inline-start: 3px solid var(--color-brand-accent);
}

.camp-detail__spec-row--custom dd,
.camp-detail__spec-row--highlighted dd {
	color: var(--color-brand-accent);
}

.camp-detail__spec-row dd {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	flex-wrap: wrap;
	flex: 0 1 auto;
	gap: var(--space-2);
	max-width: 70%;
	min-width: 0;
	font-family: var(--font-family-heading);
	font-weight: var(--font-weight-bold);
	overflow-wrap: break-word;
	text-align: right;
}

.camp-detail__spec-row dd .camp-detail__spec-badge {
	flex: 0 0 auto;
}

.camp-detail__spec-value {
	text-transform: capitalize;
}

.camp-detail__spec-unit {
	text-transform: none;
}

@media (min-width: 68.0625rem) {
	.camp-detail__spec-section {
		display: grid;
		grid-template-columns: clamp(14rem, 19vw, 16rem) minmax(0, 1fr);
		gap: var(--space-6);
	}

	.camp-detail__spec-section-header {
		align-self: stretch;
		margin-bottom: calc(-1 * var(--space-7));
		padding: 0 var(--space-6) var(--space-7) 0;
		border-right: 1px solid var(--color-border-subtle);
	}

	.camp-detail__spec-section + .camp-detail__spec-section .camp-detail__spec-section-header {
		margin-top: calc(-1 * var(--space-7));
		padding-top: var(--space-7);
	}
}

.camp-detail__floorplan-figure {
	padding: var(--space-5);
	background-color: var(--color-background-section);
	border: 1px solid var(--color-border-subtle);
}

.camp-detail__floorplan-image {
	width: 100%;
	height: auto;
	aspect-ratio: 17 / 11;
	object-fit: contain;
	background-color: var(--color-white);
}

.camp-detail__floorplan-caption {
	margin-top: var(--space-4);
	color: var(--color-black);
	font-weight: var(--font-weight-semibold);
}

.camp-detail__video-frame {
	position: relative;
	overflow: hidden;
	width: 100%;
	background-color: var(--color-off-black);
	aspect-ratio: 16 / 9;
}

.camp-detail__video-frame iframe,
.camp-detail__video-frame video,
.camp-detail__video-frame .wp-video,
.camp-detail__video-frame .mejs-container {
	width: 100% !important;
	height: 100% !important;
}

@media (max-width: 62rem) {
	.camp-detail__summary {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.camp-detail__summary > div:nth-child(odd) {
		padding-left: 0;
		border-left: 0;
	}

	.camp-detail__summary > div:nth-child(n + 3) {
		border-top: 1px solid var(--color-border-subtle);
	}
}

@media (max-width: 48rem) {
	.camp-detail__summary {
		grid-template-columns: 1fr;
	}

	.camp-detail__summary > div {
		padding-inline: 0;
		border-top: 1px solid var(--color-border-subtle);
		border-left: 0;
	}

	.camp-detail__summary > div:first-child {
		border-top: 0;
	}

	.camp-detail__spec-groups {
		grid-template-columns: 1fr;
	}

}
