/* COLOURS */
:root {
	--cream: #FAF3E3;
	--creamdeep: #F3E8CF;
	--paper: #FFFDF4;
	--ink: #33291C;
	--inksoft: #6B5D49;
	--red: #9E2B25;
	--darkred: #7C201B;
	--gold: #B08A3E;
	--rule: #CDBC95;
	--offwhite: #FBF2E2;
	--redtint: rgba(158, 43, 37, 0.07);
	--paperveil: rgba(255, 253, 244, 0.6);
	--creamveil: rgba(250, 243, 227, 0.94);
}

/* ======================= -------- Shared Styles -------- ========================== */
/* ============= ---- Margins ---- ================ */
	/* None */
	.m-t-none {
		margin-top: 0;
	}

	.m-b-none {
		margin-bottom: 0;
	}

	/* Extra Extra Small */
	.m-t-xxs {
		margin-top: 1.5rem;
	}

	.m-b-xxs {
		margin-bottom: 1.5rem;
	}

	/* Extra Small */
	.m-t-xs {
		margin-top: 3rem;
	}

	.m-b-xs {
		margin-bottom: 3rem;
	}

	/* Small */
	.m-t-s {
		margin-top: 5rem;
	}

	.m-b-s {
		margin-bottom: 5rem;
	}

	/* Medium */
	.m-t-m {
		margin-top: 6rem;
	}

	.m-b-m {
		margin-bottom: 6rem;
	}

	/* Large */
	.m-t-l {
		margin-top: 8rem;
	}

	.m-b-l {
		margin-bottom: 8rem;
	}

	/* Extra Large */
	.m-t-xl {
		margin-top: 10rem;
	}

	.m-b-xl {
		margin-bottom: 10rem;
	}

	/* Extra Extra Large */
	.m-t-xxl {
		margin-top: 15rem;
	}

	.m-b-xxl {
		margin-bottom: 15rem;
	}

@media (max-width: 650px) {
	/* Medium */
	.m-t-m {
		margin-top: 4.6rem;
	}

	.m-b-m {
		margin-bottom: 4.6rem;
	}

	/* Large */
	.m-t-l {
		margin-top: 5rem;
	}

	.m-b-l {
		margin-bottom: 5rem;
	}

	/* Extra Large */
	.m-t-xl {
		margin-top: 6rem;
	}

	.m-b-xl {
		margin-bottom: 6rem;
	}
}

/* ============= ---- Padding ---- ================ */
	/* None */
	.p-t-none {
		padding-top: 0;
	}

	.p-b-none {
		padding-bottom: 0;
	}

	/* Extra Extra Small */
	.p-t-xxs {
		padding-top: 1.5rem;
	}

	.p-b-xxs {
		padding-bottom: 1.5rem;
	}

	/* Extra Small */
	.p-t-xs {
		padding-top: 3rem;
	}

	.p-b-xs {
		padding-bottom: 3rem;
	}

	/* Small */
	.p-t-s {
		padding-top: 5rem;
	}

	.p-b-s {
		padding-bottom: 5rem;
	}

	/* Medium */
	.p-t-m {
		padding-top: 6rem;
	}

	.p-b-m {
		padding-bottom: 6rem;
	}

	/* Large */
	.p-t-l {
		padding-top: 8rem;
	}

	.p-b-l {
		padding-bottom: 8rem;
	}

	/* Extra Large */
	.p-t-xl {
		padding-top: 10rem;
	}

	.p-b-xl {
		padding-bottom: 10rem;
	}

	/* Extra Extra Large */
	.p-t-xxl {
		padding-top: 15rem;
	}

	.p-b-xxl {
		padding-bottom: 15rem;
	}

@media (max-width: 650px) {
	/* Medium */
	.p-t-m {
		padding-top: 4.6rem;
	}

	.p-b-m {
		padding-bottom: 4.6rem;
	}

	/* Large */
	.p-t-l {
		padding-top: 5rem;
	}

	.p-b-l {
		padding-bottom: 5rem;
	}

	/* Extra Large */
	.p-t-xl {
		padding-top: 6rem;
	}

	.p-b-xl {
		padding-bottom: 6rem;
	}
}

/* ============= ---- Containers ---- ================ */
.container {
	position: relative;
	margin-left: auto;
	margin-right: auto;
	width: calc(100% - 20rem);
	max-width: 140rem;
}

/* Other Sizes */
	/* Medium */
	.w-m.container,
	.w-m .container {
		max-width: 110rem;
	}

	/* Small */
	.w-s.container,
	.w-s .container {
		max-width: 86rem;
	}

@media (max-width: 1800px) {
	/* Default */
	.container {
		width: calc(100% - 12rem);
	}
}

@media (max-width: 1300px) {
	/* Default */
	.container {
		width: calc(100% - 6rem);
	}
}

@media (max-width: 650px) {
	/* Default */
	.container {
		width: calc(100% - 3rem);
	}
}

/* ============= ---- Sticky ---- ================ */
/* single-image / sidebar columns follow the scroll */
.sticky {
	position: sticky;
	top: calc(var(--navbar-height, 7rem) + 2.4rem);
	align-self: start;
}

@media (max-width: 1300px) {
	/* Default */
	.sticky {
		position: static;
	}
}

/* ============= ---- Text Colours ---- ================ */
.text-dark {
	color: var(--ink);
}

.text-light {
	color: var(--offwhite);
}

/* ============= ---- Background ---- ================ */
.background-cream {
	background-color: var(--cream);
}

.background-creamdeep {
	background-color: var(--creamdeep);
}

.background-paper {
	background-color: var(--paper);
}

.background-red {
	background-color: var(--red);
}

/* ============= ---- Content Alignment ---- ================ */
.content-left { text-align: left; }

.content-center { text-align: center; }

.content-right { text-align: right; }

/* ============= ---- Positioning ---- ================ */
.relative { position: relative; }

/* anchored sections land with breathing room when linked to by id */
.block[id] { scroll-margin-top: 12rem; }

/* ============= ---- Scallop ---- ================ */
/* doily hems on background blocks */
.scallop-top::before,
.scallop-bottom::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	height: 1.4rem;
	background-size: 2.8rem 1.4rem;
	z-index: 3;
}

.scallop-top::before {
	top: 0;
	background-image: radial-gradient(circle at 50% 0%, var(--cream) 1.3rem, transparent 1.4rem);
}

.scallop-bottom::after {
	bottom: -1px;
	background-image: radial-gradient(circle at 50% 100%, var(--cream) 1.3rem, transparent 1.4rem);
}

/* ============= ---- Ornaments ---- ================ */
.amp {
	font-family: "Great Vibes", cursive;
	font-weight: 400;
	color: var(--red);
	padding: 0 0.08em;
}

.fleuron { color: var(--gold); }

/* ============= ---- Lede ---- ================ */
/* intro paragraph — page headers and section intros */
.page-lede {
	max-width: 72rem;
	margin: 1.4rem auto 0;
	font-size: 2.1rem;
	color: var(--inksoft);
	text-wrap: pretty;
}

/* ============= ---- Text Format ---- ================ */
.text-format p + p { margin-top: 1.4rem; }

/* ============= ---- Image Cover ---- ================ */
/* media fills its relative parent edge-to-edge as a background layer */
.img-cover {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	pointer-events: none;
	overflow: hidden;
}

	.img-cover img { object-fit: cover; }

/* ============= ---- Overlay ---- ================ */
/* absolute full-cover layer inside a relative parent (tint / legibility / dismiss surface) */
.overlay {
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 100;
}

/* scroll lock while a menu or modal is open */
body.overlay-active { overflow: hidden; }

/* ============= ---- Buttons ---- ================ */
.button {
	display: inline-block;
	text-decoration: none;
	font-family: "Crimson Pro", Georgia, serif;
	letter-spacing: 0.1em;
	border: 0;
	cursor: pointer;
	line-height: 1.6;
	transition: background 0.18s ease, color 0.18s ease;
	appearance: none;
	-webkit-appearance: none;
}

/* Sizes */
	/* Medium */
	.btn-m {
		font-size: 1.8rem;
		padding: 1.3rem 3.4rem;
	}

/* Colours */
	/* Red */
	.btn-red {
		background: var(--red);
		color: var(--offwhite);
	}

		.btn-red:hover {
			background: var(--darkred);
			color: var(--offwhite);
		}

	/* Cream */
	.btn-cream {
		border: 1px solid var(--red);
		color: var(--red);
	}

		.btn-cream:hover { background: var(--redtint); }

@media (max-width: 450px) {
	/* Sizes */
		/* Medium */
		.btn-m {
			font-size: 1.7rem;
			padding: 1.3rem 2.4rem;
		}
}

/* ======================= -------- Sub - Blocks -------- ========================== */
/* ============= ---- Sub - Header ---- ================ */
.sub-header { width: 100%; }

	.sub-header hgroup {
		width: 100%;
		display: flex;
		flex-direction: column;
	}

	.sub-header .subheader-title {
		font-size: clamp(2.9rem, 2.31rem + 1.31vw, 4.2rem); /* 4.2rem */
		line-height: 1.12;
		text-wrap: balance;
	}

	.sub-header .subheader-h1title {
		font-size: clamp(3rem, 1.82rem + 2.63vw, 5.6rem); /* 5.6rem */
		line-height: 1.05;
		letter-spacing: 0.01em;
		text-wrap: balance;
	}

	.sub-header .subheader-subtitle {
		order: -1;
		font-family: "Great Vibes", cursive;
		font-weight: 400;
		font-size: clamp(2.8rem, 2.39rem + 0.91vw, 3.7rem); /* 3.7rem */
		color: var(--red);
		line-height: 1;
		margin-bottom: 1rem;
	}

/* Sizes */
	/* Small */
	.sub-header.small .subheader-title { font-size: 3rem; }

	/* Large */
	.sub-header.large .subheader-h1title {
		font-size: clamp(3.4rem, 1.13rem + 5.05vw, 8.4rem); /* 8.4rem */
		line-height: 1.02;
	}

/* ============= ---- Sub - Text ---- ================ */
.sub-text.text-format p + p { margin-top: 1.4rem; }

/* ============= ---- Sub - CTA ---- ================ */
.sub-cta {
	display: flex;
	align-items: center;
	gap: 1.6rem;
	flex-wrap: wrap;
}

	.sub-cta li { display: block; }

.content-center .sub-cta { justify-content: center; }

@media (max-width: 450px) {
	/* Default */
	.sub-cta {
		flex-direction: column;
		align-items: stretch;
		gap: 1.2rem;
	}

		.sub-cta li { width: 100%; }

		.sub-cta .button {
			display: block;
			width: 100%;
			text-align: center;
		}
}

/* ============= ---- Sub - Kicker ---- ================ */
/* uppercase label with rules either side */
.sub-kicker {
	display: flex;
	align-items: center;
	gap: 1.4rem;
	font-size: 1.4rem;
	letter-spacing: 0.26em;
	text-transform: uppercase;
	color: var(--gold);
}

	.sub-kicker::before,
	.sub-kicker::after {
		content: "";
		flex: 1;
		border-top: 1px solid var(--rule);
	}

/* ============= ---- Sub - Rule ---- ================ */
/* standalone centred fleuron rule (section intros) */
.sub-rule {
	display: flex;
	align-items: center;
	gap: 1rem;
	color: var(--gold);
	margin: 1.4rem auto 1.8rem;
	max-width: 30rem;
}

	.sub-rule::before,
	.sub-rule::after {
		content: "";
		flex: 1;
		border-top: 1px solid var(--rule);
	}

/* ============= ---- Sub - Note ---- ================ */
/* italic aside note — sizes and alignment tighten inside cards */
.sub-note {
	margin-top: 2rem;
	font-style: italic;
	font-size: 1.9rem;
	color: var(--inksoft);
}

/* Sizes */
	/* Small */
	.sub-note.small { font-size: 1.8rem; }

/* Alignment */
	/* Center */
	.sub-note.center { text-align: center; }

/* ============= ---- Sub - Essentials ---- ================ */
/* fleuron-separated strip of quick facts */
.sub-essentials {
	display: flex;
	flex-wrap: wrap;
	gap: 0.8rem 1.8rem;
	font-size: 1.4rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--inksoft);
}

	.sub-essentials li {
		display: flex;
		align-items: baseline;
		gap: 1.8rem;
	}

		.sub-essentials li + li::before {
			content: "❦";
			color: var(--gold);
			font-size: 1.1rem;
		}

/* Sizes */
	/* Large */
	.sub-essentials.large {
		justify-content: center;
		font-size: 1.8rem;
		letter-spacing: 0.24em;
		color: var(--ink);
		gap: 1rem 3rem;
	}

		.sub-essentials.large li { gap: 3rem; }

			.sub-essentials.large li + li::before { font-size: 1.4rem; }

@media (max-width: 650px) {
	/* Sizes */
		/* Large */
		.sub-essentials.large {
			font-size: 1.4rem;
			letter-spacing: 0.18em;
			gap: 0.8rem 2rem;
		}

			.sub-essentials.large li { gap: 2rem; }
}

/* ============= ---- Sub - Signoff ---- ================ */
/* handwritten sign-off line */
.sub-signoff {
	font-family: "Great Vibes", cursive;
	font-size: clamp(3rem, 2.59rem + 0.91vw, 3.9rem); /* 3.9rem */
	color: var(--red);
	margin-top: 2.6rem;
}

/* ============= ---- Sub - Media ---- ================ */
/* Photo Frame */
.sub-media.photo-frame {
	background: var(--paper);
	border: 1px solid var(--rule);
	outline: 1px solid var(--rule);
	outline-offset: 0.6rem;
	padding: 1.4rem;
	margin: 0;
	box-shadow: 0 1.8rem 4rem -2.2rem rgba(51, 41, 28, 0.35);
}

	.sub-media.photo-frame picture {
		display: block;
		width: 100%;
		height: 44rem;
	}

	.block-split .sub-media.photo-frame picture { height: 36rem; }

	.sub-media.photo-frame figcaption {
		text-align: center;
		font-style: italic;
		font-size: 1.8rem;
		color: var(--inksoft);
		padding: 1.4rem 0.8rem 0.4rem;
	}

/* Map Frame */
.sub-media.map-frame {
	background: var(--paper);
	border: 1px solid var(--rule);
	outline: 1px solid var(--rule);
	outline-offset: 0.6rem;
	padding: 1.4rem;
	margin: 0;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	height: 100%;
}

	/* flex: 1 (not height: 100%) — the iframe fills what's left after the caption, so it can't spill past the frame */
	.sub-media.map-frame iframe {
		display: block;
		width: 100%;
		flex: 1;
		min-height: 36rem;
		border: 0;
		filter: sepia(0.18) saturate(0.92);
	}

	.sub-media.map-frame figcaption {
		text-align: center;
		font-style: italic;
		font-size: 1.8rem;
		color: var(--inksoft);
		padding: 1.4rem 0.8rem 0.4rem;
	}

/* Map Frame Alt */
.sub-media.map-frame-alt {
	background: transparent;
	border: 1px solid var(--rule);
	outline: none;
	box-shadow: none;
	padding: 0;
	margin: 0;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	height: 100%;
}

	.sub-media.map-frame-alt iframe {
		aspect-ratio: 16 / 9;
		height: auto;
		display: block;
		width: 100%;
		min-height: 0;
		border: 0;
		filter: sepia(0.18) saturate(0.92);
	}

	.sub-media.map-frame-alt figcaption {
		text-align: center;
		font-style: italic;
		font-size: 1.6rem;
		color: var(--inksoft);
		padding: 1.2rem 0.8rem;
	}

/* Full Image */
/* img-full shows the whole uploaded image — no frame proportion is forced */
.sub-media.img-full picture { height: auto; }

	.sub-media.img-full picture img { height: auto; }

/* Carousel */
.sub-media .submedia-carousel {
	width: 100%;
	position: relative;
}

	.sub-media .submedia-carousel .swiper-slide picture {
		display: block;
		width: 100%;
	}

	.sub-media .submedia-carousel .swiper-pagination-bullet {
		background: var(--paper);
		opacity: 0.75;
		width: 1rem;
		height: 1rem;
	}

	.sub-media .submedia-carousel .swiper-pagination-bullet-active {
		background: var(--gold);
		opacity: 1;
	}

@media (max-width: 650px) {
	/* Photo Frame */
	.sub-media.photo-frame picture {
		height: 30rem;
	}

	.block-split .sub-media.photo-frame picture { height: 26rem; }

	/* Map Frame */
	.sub-media.map-frame iframe {
		min-height: 28rem;
	}
}

/* ============= ---- Sub - Table ---- ================ */
.sub-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 1.8rem;
}

	.sub-table th {
		font-weight: 400;
		font-size: 1.4rem;
		letter-spacing: 0.2em;
		text-transform: uppercase;
		color: var(--red);
		text-align: left;
		padding: 1rem 1.2rem 1rem 0;
		border-bottom: 1px solid var(--rule);
	}

	.sub-table td {
		padding: 1rem 1.2rem 1rem 0;
		border-bottom: 1px dotted var(--rule);
		vertical-align: top;
	}

		.sub-table td.name {
			font-family: "Playfair Display", serif;
			white-space: nowrap;
		}

@media (max-width: 650px) {
	/* Default */
	.sub-table {
		font-size: 1.6rem;
		display: block;
		overflow-x: auto;
	}

		.sub-table td.name {
			white-space: normal;
		}
}

/* ============= ---- Sub - Times Card ---- ================ */
.sub-times-card {
	background: var(--paper);
	border: 1px solid var(--red);
	outline: 1px solid var(--red);
	outline-offset: 0.4rem;
	padding: 3.8rem 4rem 3.4rem;
	display: flex;
	flex-direction: column;
	box-shadow: 0 1.8rem 4rem -2.2rem rgba(51, 41, 28, 0.3);
}

	.sub-times-card .stc-eyebrow {
		text-align: center;
		font-size: 1.5rem;
		letter-spacing: 0.3em;
		text-transform: uppercase;
		color: var(--gold);
	}

	.sub-times-card .stc-title {
		text-align: center;
		font-size: 3.4rem;
		margin: 0.8rem 0 0.4rem;
		color: var(--red);
	}

	.sub-times-card .stc-rule {
		display: flex;
		align-items: center;
		gap: 1rem;
		color: var(--gold);
		margin: 1.2rem 0 1.8rem;
	}

		.sub-times-card .stc-rule::before,
		.sub-times-card .stc-rule::after {
			content: "";
			flex: 1;
			border-top: 1px solid var(--rule);
		}

	.sub-times-card .stc-times {
		width: 100%;
		border-collapse: collapse;
		font-size: 2rem;
	}

		.sub-times-card .stc-times td {
			padding: 0.7rem 0.2rem;
			border-bottom: 1px dotted var(--rule);
		}

			.sub-times-card .stc-times tr:last-child td { border-bottom: none; }

			.sub-times-card .stc-times td:last-child {
				text-align: right;
				font-variant-numeric: tabular-nums;
			}

	.sub-times-card .sub-note {
		margin-top: 1.6rem;
		text-align: center;
	}

	.sub-times-card .sub-cta {
		margin-top: auto;
		padding-top: 2.2rem;
		text-align: center;
		justify-content: center;
	}

/* ==== ALT ==== */
.sub-times-card.times-alt {
	background: transparent;
	border: 1px dotted var(--rule);
	outline: none;
	box-shadow: none;
	padding: 2.4rem 2.6rem 2.2rem;
}

	.sub-times-card.times-alt .stc-title {
		font-size: 2.8rem;
		color: var(--ink);
	}

	.sub-times-card.times-alt .stc-times { font-size: 1.8rem; }

@media (max-width: 1300px) {
	/* Default */
	.sub-times-card .stc-title {
		font-size: 3.1rem;
	}
}

@media (max-width: 650px) {
	/* Default */
	.sub-times-card {
		padding: 2.8rem 2.2rem 2.6rem;
	}

		.sub-times-card .stc-title { font-size: 2.9rem; }

		.sub-times-card .stc-times { font-size: 1.9rem; }
}

@media (max-width: 450px) {
	/* Default */
	.sub-times-card .stc-title {
		font-size: 2.7rem;
	}

	.sub-times-card .stc-times { font-size: 1.8rem; }
}

/* ============= ---- Sub - Seasonal Card ---- ================ */
/* special opening times notice */
.sub-seasonal-card {
	background: var(--paper);
	border: 1px dotted var(--gold);
	padding: 2.4rem 2.6rem 2rem;
}

	.sub-seasonal-card .sub-kicker {
		font-size: 1.3rem;
		letter-spacing: 0.22em;
	}

	.sub-seasonal-card .list-special-times { column-gap: 4.6rem; }

		.sub-seasonal-card .list-special-times .lst-item {
			display: flex;
			justify-content: space-between;
			align-items: baseline;
			gap: 1.4rem;
			padding: 0.45rem 0;
			border-bottom: 1px dotted var(--rule);
			break-inside: avoid;
			font-size: 1.7rem;
		}

			.sub-seasonal-card .list-special-times .lst-item:last-child { border-bottom: none; }

			.sub-seasonal-card .list-special-times .hrs {
				text-align: right;
				font-variant-numeric: tabular-nums;
				white-space: nowrap;
			}

	.sub-seasonal-card .sub-note {
		font-size: 1.6rem;
		margin-top: 1rem;
	}

@media (max-width: 650px) {
	/* Default */
	.sub-seasonal-card .list-special-times {
		columns: 1;
	}
}

/* ============= ---- Sub - Menu List ---- ================ */
.sub-menu-list .list-menu-item {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: baseline;
	gap: 0.4rem 1.4rem;
	padding: 1rem 0;
	border-bottom: 1px dotted var(--rule);
}

	.sub-menu-list .list-menu-item:first-child { border-top: 1px dotted var(--rule); }

	.sub-menu-list .list-menu-item .lead {
		display: flex;
		align-items: baseline;
		gap: 1rem;
		min-width: 0;
	}

		.sub-menu-list .list-menu-item .name {
			font-family: "Playfair Display", serif;
			font-size: 2.3rem;
		}

		.sub-menu-list .list-menu-item .dots {
			flex: 1;
			border-bottom: 1px dotted var(--rule);
			transform: translateY(-0.5rem);
		}

	.sub-menu-list .list-menu-item .price {
		font-size: 2rem;
		color: var(--red);
		font-variant-numeric: tabular-nums;
		white-space: nowrap;
	}

	.sub-menu-list .list-menu-item .desc {
		grid-column: 1 / -1;
		font-size: 1.5rem;
		font-style: italic;
		color: var(--inksoft);
		margin-top: -0.2rem;
	}

@media (max-width: 1300px) {
	/* Default */
	.sub-menu-list .list-menu-item .name {
		font-size: 2.2rem;
	}
}

@media (max-width: 650px) {
	/* Default */
	.sub-menu-list .list-menu-item .name {
		font-size: 2.1rem;
	}

	.sub-menu-list .list-menu-item .price { font-size: 1.9rem; }
}

@media (max-width: 450px) {
	/* Default */
	.sub-menu-list .list-menu-item .name {
		font-size: 2rem;
	}

	.sub-menu-list .list-menu-item .price { font-size: 1.8rem; }
}

/* ============= ---- Sub - List Features ---- ================ */
.sub-list-features .list-features {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 3.6rem;
}

	/* Four Across */
	.sub-list-features .list-features.features-4 {
		grid-template-columns: repeat(4, 1fr);
		gap: 2.8rem;
	}

		.sub-list-features .list-features.features-4 picture { height: 21rem; }

	.sub-list-features .list-features-item {
		background: var(--paper);
		border: 1px solid var(--rule);
		padding: 1.2rem 1.2rem 3rem;
		text-align: center;
		display: flex;
		flex-direction: column;
		transition: transform 0.25s ease, box-shadow 0.25s ease;
	}

		.sub-list-features .list-features-item:hover {
			transform: translateY(-0.5rem);
			box-shadow: 0 2.4rem 4.6rem -2.4rem rgba(51, 41, 28, 0.42);
		}

		.sub-list-features .list-features-item picture {
			display: block;
			width: 100%;
			height: 25rem;
		}

		.sub-list-features .list-features-item .lf-title {
			font-size: 2.9rem;
			margin: 2.4rem 0 0.4rem;
		}

		.sub-list-features .list-features-item .lf-rule {
			color: var(--gold);
			font-size: 1.8rem;
			margin: 0.4rem 0 1rem;
		}

		.sub-list-features .list-features-item .sub-text p {
			font-size: 1.9rem;
			color: var(--inksoft);
			padding: 0 2.2rem;
			text-wrap: pretty;
		}

		.sub-list-features .list-features-item .lf-more {
			margin-top: auto;
			padding-top: 2rem;
			display: inline-block;
			color: var(--red);
			font-size: 1.7rem;
			letter-spacing: 0.18em;
			text-transform: uppercase;
			text-decoration: none;
		}

			.sub-list-features .list-features-item .lf-more:hover {
				text-decoration: underline;
				text-underline-offset: 0.4rem;
			}

@media (max-width: 1300px) {
	/* Default */
	.sub-list-features .list-features,
	.sub-list-features .list-features.features-4 {
		grid-template-columns: repeat(2, 1fr);
	}

		.sub-list-features .list-features-item .lf-title { font-size: 2.7rem; }
}

@media (max-width: 650px) {
	/* Default */
	.sub-list-features .list-features,
	.sub-list-features .list-features.features-4 {
		grid-template-columns: 1fr;
		max-width: 52rem;
		margin: 0 auto;
	}

		.sub-list-features .list-features-item picture,
		.sub-list-features .list-features.features-4 picture { height: 22rem; }

		.sub-list-features .list-features-item .lf-title { font-size: 2.6rem; }
}

@media (max-width: 450px) {
	/* Default */
	.sub-list-features .list-features-item .lf-title {
		font-size: 2.5rem;
	}

	.sub-list-features .list-features-item .sub-text p { padding: 0 1rem; }
}

/* ============= ---- Sub - Event Card ---- ================ */
.sub-event-card {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr);
	background: var(--paper);
	border: 1px solid var(--rule);
	box-shadow: 0 2rem 4.4rem -2.8rem rgba(51, 41, 28, 0.4);
	overflow: hidden;
	text-align: left;
}

	.sub-event-card picture {
		display: block;
		width: 100%;
		height: 100%;
		min-height: 32rem;
	}

	.sub-event-card .sec-content {
		padding: 4rem 4.4rem;
		display: flex;
		flex-direction: column;
	}

		.sub-event-card .sec-title {
			font-size: 3.4rem;
			line-height: 1.15;
			margin-bottom: 0.8rem;
		}

		.sub-event-card .sec-byline {
			font-style: italic;
			color: var(--inksoft);
			font-size: 1.9rem;
			margin-bottom: 1.6rem;
		}

		.sub-event-card .sub-text p {
			font-size: 1.9rem;
			color: var(--inksoft);
			text-wrap: pretty;
		}

		.sub-event-card .sub-cta {
			margin-top: 2.6rem;
			justify-content: flex-start;
		}

/* event meta line — shared with Sub - List Event Rows */
.event-meta {
	display: flex;
	align-items: baseline;
	gap: 1.4rem;
	flex-wrap: wrap;
	font-size: 1.5rem;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--red);
	margin-bottom: 1.2rem;
}

	.event-meta .dot {
		color: var(--gold);
		letter-spacing: 0;
	}

@media (max-width: 1300px) {
	/* Default */
	.sub-event-card {
		grid-template-columns: 1fr;
	}

		.sub-event-card picture { min-height: 26rem; }

		.sub-event-card .sec-title { font-size: 3.1rem; }
}

@media (max-width: 650px) {
	/* Default */
	.sub-event-card .sec-title {
		font-size: 2.9rem;
	}

	.sub-event-card .sec-content { padding: 2.8rem 2.2rem; }
}

@media (max-width: 450px) {
	/* Default */
	.sub-event-card .sec-title {
		font-size: 2.7rem;
	}

	.sub-event-card .sec-content { padding: 2.4rem 1.6rem; }
}

/* ============= ---- Sub - Contact Methods ---- ================ */
.sub-contact-methods div {
	display: flex;
	gap: 1.4rem;
	padding: 1rem 0;
	border-bottom: 1px dotted var(--rule);
	font-size: 2rem;
}

.sub-contact-methods dt {
	width: auto;
	min-width: 11rem;
	flex: none;
	font-size: 1.5rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--inksoft);
	padding-top: 0.4rem;
}

.sub-contact-methods dd {
	margin: 0;
	line-height: 1.5;
	min-width: 0;
	overflow-wrap: anywhere;
}

	.sub-contact-methods dd a { text-decoration: none; }

		.sub-contact-methods dd a:hover { text-decoration: underline; }

.sub-contact-methods .address-inline {
	display: inline;
	font-style: normal;
}

@media (max-width: 650px) {
	/* labels like "Telephone" no longer fit a fixed column — stack label above detail */
	.sub-contact-methods div {
		flex-direction: column;
		gap: 0.2rem;
	}

	.sub-contact-methods dt {
		min-width: 0;
		padding-top: 0;
	}
}

/* ============= ---- Sub - List Details ---- ================ */
.sub-list-details { margin-top: 1.8rem; }

	.sub-list-details .list-details-item {
		display: flex;
		align-items: baseline;
		gap: 1.2rem;
		padding: 0.8rem 0;
		border-bottom: 1px dotted var(--rule);
		font-size: 1.9rem;
	}

		.sub-list-details .list-details-item::before {
			content: "❦";
			color: var(--gold);
			font-size: 1.4rem;
			flex: none;
		}

/* ============= ---- Sub - List Artworks ---- ================ */
.sub-list-artworks .list-artworks {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 3.6rem;
}

	.sub-list-artworks .list-artworks-item {
		background: var(--paper);
		border: 1px solid var(--rule);
		padding: 1.2rem 1.2rem 2.8rem;
		text-align: center;
		display: flex;
		flex-direction: column;
		transition: transform 0.25s ease, box-shadow 0.25s ease;
	}

		.sub-list-artworks .list-artworks-item:hover {
			transform: translateY(-0.5rem);
			box-shadow: 0 2.4rem 4.6rem -2.4rem rgba(51, 41, 28, 0.42);
		}

		.sub-list-artworks .list-artworks-item picture {
			display: block;
			width: 100%;
			height: 30rem;
		}

		.sub-list-artworks .list-artworks-item .lai-title {
			font-size: 2.6rem;
			margin: 2rem 0 0.2rem;
		}

		.sub-list-artworks .list-artworks-item .lai-artist {
			font-style: italic;
			color: var(--inksoft);
			font-size: 1.8rem;
		}

		.sub-list-artworks .list-artworks-item .lai-medium {
			font-size: 1.4rem;
			letter-spacing: 0.18em;
			text-transform: uppercase;
			color: var(--inksoft);
			margin-top: 0.8rem;
		}

		.sub-list-artworks .list-artworks-item .lai-price {
			font-size: 2.2rem;
			color: var(--red);
			font-variant-numeric: tabular-nums;
			margin: 1rem 0 1.8rem;
		}

		.sub-list-artworks .list-artworks-item .sub-cta {
			margin-top: auto;
			justify-content: center;
		}

@media (max-width: 1300px) {
	/* Default */
	.sub-list-artworks .list-artworks {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 650px) {
	/* Default */
	.sub-list-artworks .list-artworks {
		grid-template-columns: 1fr;
		max-width: 52rem;
		margin: 0 auto;
	}
}

@media (max-width: 450px) {
	/* Default */
	.sub-list-artworks .list-artworks-item .lai-title {
		font-size: 2.4rem;
	}

	.sub-list-artworks .list-artworks-item picture { height: 24rem; }
}

/* ============= ---- Sub - List Jobs ---- ================ */
.sub-list-jobs .list-jobs {
	display: grid;
	gap: 2.8rem;
	max-width: 86rem;
	margin: 0 auto;
}

	.sub-list-jobs .list-jobs-item {
		background: var(--paper);
		border: 1px solid var(--rule);
		padding: 3.2rem 3.6rem;
		box-shadow: 0 1.8rem 4rem -2.6rem rgba(51, 41, 28, 0.35);
		text-align: left;
	}

		.sub-list-jobs .list-jobs-item .lji-title { font-size: 2.9rem; }

		.sub-list-jobs .list-jobs-item .lji-meta {
			display: flex;
			gap: 0.8rem 2.6rem;
			flex-wrap: wrap;
			font-size: 1.4rem;
			letter-spacing: 0.2em;
			text-transform: uppercase;
			color: var(--red);
			margin: 0.8rem 0 1.4rem;
		}

		.sub-list-jobs .list-jobs-item .sub-text p { color: var(--inksoft); }

		/* CTA pins left regardless of the block's alignment */
		.sub-list-jobs .list-jobs-item .sub-cta { justify-content: flex-start; }

@media (max-width: 650px) {
	/* Default */
	.sub-list-jobs .list-jobs-item {
		padding: 2.4rem 2rem;
	}
}

@media (max-width: 450px) {
	/* Default */
	.sub-list-jobs .list-jobs-item .lji-title {
		font-size: 2.5rem;
	}
}

/* ============= ---- Sub - List Event Rows ---- ================ */
/* calendar-style archive rows */
.sub-list-event-rows .list-event-rows {
	display: grid;
	gap: 2.6rem;
}

	.sub-list-event-rows .list-event-rows-item {
		display: grid;
		grid-template-areas: "date media body cta";
		grid-template-columns: 11rem 22rem minmax(0, 1fr) auto;
		gap: 2.8rem;
		align-items: center;
		background: var(--paper);
		border: 1px solid var(--rule);
		padding: 2rem 2.8rem 2rem 2rem;
		box-shadow: 0 1.8rem 4rem -2.6rem rgba(51, 41, 28, 0.35);
		text-align: left;
	}

		.sub-list-event-rows .ler-date {
			grid-area: date;
			align-self: stretch;
			display: flex;
			flex-direction: column;
			align-items: center;
			justify-content: center;
			gap: 0.2rem;
			border: 1px solid var(--red);
			outline: 1px solid var(--red);
			outline-offset: 0.3rem;
			background: var(--cream);
			padding: 1.6rem 1rem;
			text-align: center;
		}

			.sub-list-event-rows .ler-date .d {
				font-family: "Playfair Display", serif;
				font-size: 4.4rem;
				line-height: 1;
				color: var(--red);
			}

			.sub-list-event-rows .ler-date .m {
				font-size: 1.5rem;
				letter-spacing: 0.3em;
				text-transform: uppercase;
				color: var(--ink);
				margin-top: 0.4rem;
			}

			.sub-list-event-rows .ler-date .y {
				font-size: 1.4rem;
				color: var(--inksoft);
			}

			/* multi-day events: same markup as single-day plus .date-range + an end part — see events-archive.html comment */
			.sub-list-event-rows .ler-date .range-part {
				display: flex;
				flex-direction: column;
				align-items: center;
			}

			.sub-list-event-rows .ler-date .range-sep {
				font-family: "Great Vibes", cursive;
				font-size: 2rem;
				line-height: 1;
				color: var(--gold);
			}

			/* Date Range */
			.sub-list-event-rows .ler-date.date-range .range-part {
				flex-direction: row;
				align-items: baseline;
				justify-content: center;
				gap: 0.6rem;
			}

			.sub-list-event-rows .ler-date.date-range .d { font-size: 2.8rem; }

			.sub-list-event-rows .ler-date.date-range .m {
				font-size: 1.3rem;
				letter-spacing: 0.2em;
				margin-top: 0;
			}

			.sub-list-event-rows .ler-date.date-range .y { margin-top: 0.4rem; }

		.sub-list-event-rows .ler-media { grid-area: media; }

			.sub-list-event-rows .ler-media picture {
				display: block;
				width: 100%;
				height: 16rem;
			}

		.sub-list-event-rows .ler-body { grid-area: body; }

			.sub-list-event-rows .ler-body .event-meta { margin-bottom: 0.6rem; }

			.sub-list-event-rows .ler-body .ler-title {
				font-size: 2.9rem;
				line-height: 1.15;
				margin-bottom: 0.6rem;
			}

				.sub-list-event-rows .ler-body .ler-title a {
					color: var(--ink);
					text-decoration: none;
					transition: color 0.18s ease;
				}

					.sub-list-event-rows .ler-body .ler-title a:hover { color: var(--red); }

			.sub-list-event-rows .ler-body .ler-desc {
				font-size: 1.9rem;
				color: var(--inksoft);
				text-wrap: pretty;
			}

		.sub-list-event-rows .ler-cta {
			grid-area: cta;
			white-space: nowrap;
		}

@media (max-width: 1300px) {
	/* Default */
	.sub-list-event-rows .list-event-rows-item {
		grid-template-areas: "date body" "cta cta";
		grid-template-columns: 10rem minmax(0, 1fr);
		gap: 2rem;
	}

		.sub-list-event-rows .ler-date { align-self: start; }

		.sub-list-event-rows .ler-media { display: none; }

		.sub-list-event-rows .ler-cta .button {
			display: block;
			width: 100%;
			text-align: center;
		}
}

@media (max-width: 650px) {
	/* Default */
	.sub-list-event-rows .list-event-rows {
		gap: 2rem;
	}

	.sub-list-event-rows .list-event-rows-item {
		grid-template-columns: 9rem minmax(0, 1fr);
		gap: 1.8rem;
		padding: 1.8rem 1.6rem;
	}

		.sub-list-event-rows .ler-date { padding: 1.2rem 0.8rem; }

			.sub-list-event-rows .ler-date .d { font-size: 3rem; }

			.sub-list-event-rows .ler-date .m {
				font-size: 1.3rem;
				letter-spacing: 0.2em;
			}

		.sub-list-event-rows .ler-body .event-meta {
			font-size: 1.3rem;
			letter-spacing: 0.16em;
			gap: 1rem;
		}

		.sub-list-event-rows .ler-body .ler-title { font-size: 2.4rem; }

		.sub-list-event-rows .ler-body .ler-desc { font-size: 1.8rem; }
}

@media (max-width: 450px) {
	/* event rows stack — the date box becomes a compact inline strip (tested to 320px) */
	.sub-list-event-rows .list-event-rows-item {
		grid-template-areas: "date" "body" "cta";
		grid-template-columns: 1fr;
		gap: 1.4rem;
		padding: 1.6rem 1.4rem;
	}

		.sub-list-event-rows .ler-date {
			flex-direction: row;
			align-items: baseline;
			justify-content: flex-start;
			gap: 1rem;
			padding: 0.9rem 1.4rem;
			align-self: stretch;
		}

			.sub-list-event-rows .ler-date .range-part {
				flex-direction: row;
				align-items: baseline;
				gap: 0.6rem;
			}

			.sub-list-event-rows .ler-date .d { font-size: 2.4rem; }

			.sub-list-event-rows .ler-date .m {
				font-size: 1.3rem;
				margin-top: 0;
			}

			.sub-list-event-rows .ler-date .y { margin-left: auto; }

			/* Date Range */
			.sub-list-event-rows .ler-date.date-range .d { font-size: 2.2rem; }

			.sub-list-event-rows .ler-date.date-range .y { margin-top: 0; }

		.sub-list-event-rows .ler-body .ler-title { font-size: 2.2rem; }
}

/* ============= ---- Sub - List Photos ---- ================ */
.sub-list-photos .list-photos {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
}

	.sub-list-photos .list-photos-item {
		background: var(--paper);
		border: 1px solid var(--rule);
		padding: 1rem;
	}

		.sub-list-photos .list-photos-item picture {
			display: block;
			width: 100%;
			height: 24rem;
		}

@media (max-width: 1300px) {
	/* Default */
	.sub-list-photos .list-photos {
		grid-template-columns: repeat(2, 1fr);
	}

		.sub-list-photos .list-photos-item picture { height: 20rem; }
}

@media (max-width: 650px) {
	/* Default */
	.sub-list-photos .list-photos {
		gap: 1.4rem;
	}

		.sub-list-photos .list-photos-item picture { height: 15rem; }
}

/* ============= ---- Sub - Event Facts ---- ================ */
/* event single sidebar facts */
.sub-event-facts div {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
	padding: 1.1rem 0;
	border-bottom: 1px dotted var(--rule);
}

	.sub-event-facts div:last-of-type { border-bottom: none; }

.sub-event-facts dt {
	font-size: 1.4rem;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--gold);
}

.sub-event-facts dd {
	margin: 0;
	font-family: "Playfair Display", serif;
	font-size: 2.2rem;
	line-height: 1.3;
	color: var(--ink);
}

/* ============= ---- Sub - Event Downloads ---- ================ */
/* admin-added files (day plans, menus, resources) */
.sub-event-downloads .led-item:last-of-type .led-link { border-bottom: none; }

.sub-event-downloads .led-link {
	display: flex;
	align-items: center;
	gap: 1.4rem;
	padding: 1.1rem 0;
	border-bottom: 1px dotted var(--rule);
	text-decoration: none;
	color: var(--ink);
}

	.sub-event-downloads .led-link .led-icon {
		flex: none;
		display: flex;
		align-items: center;
		justify-content: center;
		width: 3.8rem;
		height: 3.8rem;
		border: 1px solid var(--rule);
		border-radius: 50%;
		color: var(--gold);
		transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
	}

		.sub-event-downloads .led-link .led-icon svg {
			width: 1.7rem;
			height: 1.7rem;
		}

	.sub-event-downloads .led-link .led-text {
		display: flex;
		flex-direction: column;
		gap: 0.1rem;
		min-width: 0;
	}

		.sub-event-downloads .led-link .led-name {
			font-family: "Playfair Display", serif;
			font-size: 1.9rem;
			line-height: 1.3;
			transition: color 0.25s ease;
		}

		.sub-event-downloads .led-link .led-meta {
			font-size: 1.3rem;
			letter-spacing: 0.18em;
			text-transform: uppercase;
			color: var(--inksoft);
		}

	.sub-event-downloads .led-link:hover .led-icon,
	.sub-event-downloads .led-link:focus-visible .led-icon {
		background-color: var(--gold);
		border-color: var(--gold);
		color: var(--offwhite);
	}

	.sub-event-downloads .led-link:hover .led-name,
	.sub-event-downloads .led-link:focus-visible .led-name { color: var(--red); }

/* ============= ---- Sub - FAQ ---- ================ */
.sub-faq details { border-bottom: 1px dotted var(--rule); }

	.sub-faq details:first-of-type { border-top: 1px dotted var(--rule); }

.sub-faq summary {
	cursor: pointer;
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1.6rem;
	padding: 1.5rem 0.2rem;
	font-family: "Playfair Display", serif;
	font-size: 2.2rem;
	transition: color 0.18s ease;
}

	.sub-faq summary:hover { color: var(--red); }

	.sub-faq summary::-webkit-details-marker { display: none; }

	.sub-faq summary::after {
		content: "+";
		color: var(--red);
		font-size: 2.6rem;
		line-height: 0.8;
		flex: none;
	}

	.sub-faq details[open] summary::after { content: "–"; }

.sub-faq .faq-answer {
	padding: 0 3.4rem 1.8rem 0.2rem;
	color: var(--inksoft);
	font-size: 1.9rem;
	text-wrap: pretty;
}

@media (max-width: 650px) {
	/* Default */
	.sub-faq summary {
		font-size: 2rem;
	}
}

/* ============= ---- Sub - Form ---- ================ */
.sub-form.form-booking {
	position: relative;
	transition: opacity 0.2s ease;
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 1.8rem 2rem;
	margin-top: 2rem;
}

	.sub-form.form-booking .field {
		display: flex;
		flex-direction: column;
		gap: 0.6rem;
		grid-column: span 3;
	}

	.sub-form.form-booking .field-wide { grid-column: span 6; }

	.sub-form.form-booking .field-third { grid-column: span 2; }

	.sub-form.form-booking label {
		font-size: 1.4rem;
		letter-spacing: 0.2em;
		text-transform: uppercase;
		color: var(--inksoft);
	}

		.sub-form.form-booking .field label { white-space: nowrap; }

		.sub-form.form-booking .field-wide label { white-space: normal; }

	.sub-form.form-booking input[type="text"],
	.sub-form.form-booking input[type="email"],
	.sub-form.form-booking input[type="tel"],
	.sub-form.form-booking input[type="date"],
	.sub-form.form-booking input[type="time"],
	.sub-form.form-booking input[type="number"],
	.sub-form.form-booking select,
	.sub-form.form-booking textarea {
		font-family: "Crimson Pro", Georgia, serif;
		font-size: 1.9rem;
		color: var(--ink);
		background: var(--cream);
		border: 1px solid var(--rule);
		border-radius: 0;
		padding: 1rem 1.2rem;
		width: 100%;
	}

		.sub-form.form-booking input[type="text"],
		.sub-form.form-booking input[type="email"],
		.sub-form.form-booking input[type="tel"],
		.sub-form.form-booking input[type="date"],
		.sub-form.form-booking input[type="time"],
		.sub-form.form-booking input[type="number"],
		.sub-form.form-booking select { height: 4.9rem; }

		.sub-form.form-booking textarea { resize: vertical; }

		.sub-form.form-booking input[type="text"]:focus,
		.sub-form.form-booking input[type="email"]:focus,
		.sub-form.form-booking input[type="tel"]:focus,
		.sub-form.form-booking input[type="date"]:focus,
		.sub-form.form-booking input[type="time"]:focus,
		.sub-form.form-booking input[type="number"]:focus,
		.sub-form.form-booking select:focus,
		.sub-form.form-booking textarea:focus {
			outline: none;
			border-color: var(--red);
			box-shadow: 0 0 0 1px var(--red);
		}

	.sub-form.form-booking .form-foot {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 2.4rem;
		margin-top: 0.6rem;
		padding-top: 2rem;
		border-top: 1px dotted var(--rule);
	}

		.sub-form.form-booking .form-foot .booking-note {
			flex: 1;
			font-style: italic;
			font-size: 1.7rem;
			color: var(--inksoft);
			line-height: 1.5;
		}

			.sub-form.form-booking .form-foot .booking-note .fleuron { font-style: normal; }

		.sub-form.form-booking .form-foot .button { flex: none; }

/* ==== WordPress / Contact Form 7 states ==== */
.sub-form.form-booking .wpcf7-form-control-wrap {
	display: block;
	width: 100%;
}

.sub-form.form-booking .wpcf7-list-item { margin: 0; }

.sub-form.form-booking input[type="checkbox"] { display: inline-flex; }

/* submitting: spinner floats over the form, the button locks, the form dims */
.sub-form.form-booking .wpcf7-spinner {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	margin: 0;
	z-index: 5;
}

.sub-form.form-booking.submitting { opacity: 0.55; }

	.sub-form.form-booking.submitting input[type="submit"] { pointer-events: none; }

.sub-form.form-booking .wpcf7-response-output { grid-column: 1 / -1; }

.sub-form.form-booking .acceptance {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	font-size: 1.6rem;
	letter-spacing: 0;
	text-transform: none;
	font-style: italic;
	color: var(--inksoft);
	line-height: 1.5;
}

	.sub-form.form-booking .acceptance input {
		width: 1.8rem;
		height: 1.8rem;
		margin-top: 0.5rem;
		accent-color: var(--red);
		flex: none;
	}

	.sub-form.form-booking .acceptance a { color: var(--red); }

.sub-form.form-booking .wpcf7-not-valid-tip {
	display: block;
	margin-top: 0.5rem;
	font-size: 1.5rem;
	font-style: italic;
	color: var(--red);
}

.sub-form.form-booking input.wpcf7-not-valid,
.sub-form.form-booking textarea.wpcf7-not-valid {
	border-color: var(--red);
	box-shadow: 0 0 0 1px var(--red);
}

.wpcf7 form .wpcf7-response-output {
	margin: 2rem 0 0;
	padding: 1.4rem 2rem;
	border: 1px dotted var(--gold);
	background: var(--cream);
	font-size: 1.7rem;
	font-style: italic;
	color: var(--ink);
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output {
	border: 1px solid var(--red);
	color: var(--darkred);
}

.wpcf7-spinner { background-color: var(--gold); }

/* ==== Col Frame ==== */
/* inline enquiry form panel (contact page) */
.col-frame {
	background: var(--paper);
	border: 1px solid var(--rule);
	outline: 1px solid var(--rule);
	outline-offset: 0.4rem;
	padding: 3.4rem 3.6rem;
	box-shadow: 0 1.8rem 4rem -2.2rem rgba(51, 41, 28, 0.3);
}

	.col-frame .enquiry-success .subheader-title { font-size: 3rem; }

	.col-frame .enquiry-success .success-copy {
		max-width: 42rem;
		margin: 1rem auto 0;
		font-size: 2rem;
		color: var(--inksoft);
	}

/* ==== Pane Swap ==== */
.booking-success:not([hidden]),
.booking-form-wrap:not([hidden]),
.enquiry-success:not([hidden]) { animation: modal-pane 0.3s ease; }

@keyframes modal-pane {
	from {
		opacity: 0;
		transform: translateY(0.8rem);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

@media (max-width: 650px) {
	/* Default */
	.sub-form.form-booking {
		grid-template-columns: 1fr;
	}

		.sub-form.form-booking .field,
		.sub-form.form-booking .field-wide,
		.sub-form.form-booking .field-third { grid-column: 1 / -1; }

		.sub-form.form-booking .form-foot {
			flex-direction: column;
			align-items: flex-start;
		}

	/* ==== Col Frame ==== */
	.col-frame {
		padding: 2.6rem 2rem;
	}
}

@media (max-width: 450px) {
	/* Default */
	.sub-form.form-booking .form-foot .button {
		width: 100%;
		text-align: center;
	}
}

@media (prefers-reduced-motion: reduce) {
	/* ==== Pane Swap ==== */
	.booking-success:not([hidden]),
	.booking-form-wrap:not([hidden]),
	.enquiry-success:not([hidden]) { animation: none; }
}
