/**
 * Weddings landing page.
 *
 * Geometry is the design's (the "Version 1" HTML, a 1440px canvas): section widths, padding,
 * gaps, type sizes and line heights are its numbers. Colour and type are the site's: the
 * design file only approximated them, so its greens, creams, golds and its Cormorant/Jost
 * pairing are replaced by the tokens every rebuilt page uses (Private Dining, Sunday Roast,
 * Carb Café, the room pages) - IvyPresto Display and Work Sans, ink, cream, deep and gold.
 *
 *   design #F4EFE5 page cream     -> cream  #f8f5ed
 *   design #FBF8F2 panel cream    -> paper  #fdfcfa
 *   design #475548 green ink      -> ink    #2f3528
 *   design #3F3F3F body text      -> body   #333333
 *   design #C6A067/#AA9557/#E2C27A gold, #C1866F accent -> gold #cfaf58 / line #c6aa57
 *   design #D8D2C6/#C9C2B4 rules  -> rule   #e2e2e2 / field #d9d4c7
 *
 * Where the design leaves line-height at "normal", that normal belonged to its own fonts, so
 * it is written out here (--lc-wd-lh-serif / --lc-wd-lh-sans) to keep the same box heights
 * with the site's typefaces in place.
 *
 * Below the desktop canvas the layout is this file's own: the design's auto-fit grids leave
 * orphans and its 76px hero heading does not fit a phone.
 */

.lc-wd {
	--lc-wd-cream: #f8f5ed;
	--lc-wd-paper: #fdfcfa;
	--lc-wd-ink: #2f3528;
	--lc-wd-deep: #0d1a13;
	--lc-wd-body: #333333;
	--lc-wd-gold: #cfaf58;
	--lc-wd-gold-line: #c6aa57;
	--lc-wd-rule: #e2e2e2;
	--lc-wd-field: #d9d4c7;
	--lc-wd-mist: #f5f4f2;
	--lc-wd-light: #ffffff;
	--lc-wd-light-soft: rgba(248, 245, 237, 0.85);

	/* The design's photo shades, on the site's ink. */
	--lc-wd-shade: 47, 53, 40;

	--lc-wd-serif: "ivypresto-display", "IvyPresto Display", Georgia, "Times New Roman", serif;
	--lc-wd-sans: "Work Sans", -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;
	--lc-wd-lh-serif: 1.211;
	--lc-wd-lh-sans: 1.445;
	/* Running text: Work Sans is ~17% wider than the design's Jost and has a taller x-height,
	   so at 86.5% of the design's size it sets the same measure and reads the same size -
	   lines break where the design breaks them. Line heights stay the design's, in px.
	   Short capitalised labels and buttons keep the design's sizes. */
	--lc-wd-fs: 0.865;

	/* The site's sticky nav: anchor jumps land clear of it. */
	--lc-wd-nav: 57px;
	--lc-wd-pad-x: 40px;

	background: var(--lc-wd-cream);
	color: var(--lc-wd-body);
	font-family: var(--lc-wd-sans);
	font-size: 16px;
	line-height: var(--lc-wd-lh-sans);
}

.lc-wd *,
.lc-wd *::before,
.lc-wd *::after {
	box-sizing: border-box;
}

.lc-wd [id] {
	scroll-margin-top: var(--lc-wd-nav);
}

/* Element-level resets (0,0,1): they beat the parent theme's element rules because this
   file loads later, and every component class below still overrides them. */
:where(.lc-wd) figure,
:where(.lc-wd) p,
:where(.lc-wd) ul,
:where(.lc-wd) ol,
:where(.lc-wd) dl,
:where(.lc-wd) dd {
	margin: 0;
	padding: 0;
	list-style: none;
}

/* ------------------------------------------------------------------ layout */

.lc-wd-wrap {
	/* The design's boxes are content-box: 1280px of content plus the side padding. */
	max-width: calc(1280px + 2 * var(--lc-wd-pad-x));
	margin: 0 auto;
	padding: 120px var(--lc-wd-pad-x);
}

.lc-wd-wrap--wide {
	max-width: calc(1360px + 2 * var(--lc-wd-pad-x));
}

.lc-wd-stack {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.lc-wd-stack--20 {
	gap: 20px;
}

.lc-wd-stack--22 {
	gap: 22px;
}

.lc-wd-stack--24 {
	gap: 24px;
}

.lc-wd-center {
	display: flex;
	justify-content: center;
}

.lc-wd-head {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.lc-wd-head--center {
	align-items: center;
	text-align: center;
}

.lc-wd-head--16 {
	gap: 16px;
}

.lc-wd-head--12 {
	gap: 12px;
}

/* ------------------------------------------------------------------- type */

.lc-wd-eyebrow {
	display: flex;
	align-items: center;
	gap: 14px;
	font-size: 15px;
	font-weight: 600;
	line-height: var(--lc-wd-lh-sans);
	letter-spacing: 4px;
	text-transform: uppercase;
	color: var(--lc-wd-gold);
}

.lc-wd-eyebrow--both {
	justify-content: center;
}

.lc-wd-eyebrow__rule {
	flex: 0 0 36px;
	width: 36px;
	height: 1px;
	background: var(--lc-wd-gold-line);
}

/* The 60px gold rule under the labels on the photo and ink sections. */
.lc-wd-rule {
	display: block;
	width: 60px;
	height: 1px;
	background: var(--lc-wd-gold);
}

.lc-wd-h2 {
	margin: 0;
	font-family: var(--lc-wd-serif);
	font-weight: 500;
	line-height: 1.05;
	color: var(--lc-wd-ink);
}

.lc-wd-h2 em,
.lc-wd-hero__title em {
	font-style: italic;
	font-weight: 400;
}

.lc-wd-h2--60 {
	font-size: 60px;
}

.lc-wd-h2--56 {
	font-size: 56px;
}

.lc-wd-h2--52 {
	font-size: 52px;
}

.lc-wd-h2--38 {
	font-size: 38px;
}

.lc-wd-p,
.lc-wd-prose p {
	font-size: 15px;
	line-height: 28px;
}

.lc-wd-prose {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.lc-wd-p--intro {
	max-width: 680px;
	line-height: 27.2px;
}

.lc-wd-p--tight {
	line-height: 27.2px;
}

/* ------------------------------------------------------- buttons and links */

.lc-wd-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	min-height: 52px;
	padding: 0 30px;
	font-family: var(--lc-wd-sans);
	font-size: 15px;
	font-weight: 600;
	line-height: var(--lc-wd-lh-sans);
	letter-spacing: 3px;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}

.lc-wd-btn__arrow {
	flex: 0 0 auto;
	transition: transform 0.25s ease;
}

.lc-wd-btn:hover .lc-wd-btn__arrow,
.lc-wd-btn:focus-visible .lc-wd-btn__arrow {
	transform: translateX(4px);
}

.lc-wd-btn:focus-visible,
.lc-wd-tlink:focus-visible {
	outline: 2px solid var(--lc-wd-gold);
	outline-offset: 3px;
}

/* Ink block with the gold hairline held inside it - the site's button, drawn as inset
   shadows (as the event form's) so no zoom level can drop an edge. */
.lc-wd-btn--primary {
	background: var(--lc-wd-ink);
	border: 1px solid var(--lc-wd-ink);
	box-shadow: inset 0 0 0 4px var(--lc-wd-ink), inset 0 0 0 5px var(--lc-wd-gold);
	color: var(--lc-wd-mist);
}

/* The parent theme paints focused links and buttons, so every state is claimed back. */
.lc-wd-btn--primary:hover,
.lc-wd-btn--primary:focus,
.lc-wd-btn--primary:focus-visible {
	background: var(--lc-wd-gold);
	border-color: var(--lc-wd-gold);
	box-shadow: inset 0 0 0 4px var(--lc-wd-gold), inset 0 0 0 5px var(--lc-wd-deep);
	color: var(--lc-wd-deep);
}

.lc-wd-btn--light {
	background: var(--lc-wd-cream);
	border: 1px solid var(--lc-wd-cream);
	box-shadow: inset 0 0 0 4px var(--lc-wd-cream), inset 0 0 0 5px var(--lc-wd-gold);
	color: var(--lc-wd-ink);
}

.lc-wd-btn--light:hover,
.lc-wd-btn--light:focus,
.lc-wd-btn--light:focus-visible {
	background: var(--lc-wd-light);
	border-color: var(--lc-wd-light);
	box-shadow: inset 0 0 0 4px var(--lc-wd-light), inset 0 0 0 5px var(--lc-wd-gold);
	color: var(--lc-wd-ink);
}

.lc-wd-btn--ghost {
	background: rgba(var(--lc-wd-shade), 0.15);
	border: 1px solid var(--lc-wd-gold);
	color: var(--lc-wd-light);
}

.lc-wd-btn--ghost:hover,
.lc-wd-btn--ghost:focus,
.lc-wd-btn--ghost:focus-visible {
	background: var(--lc-wd-gold);
	border-color: var(--lc-wd-gold);
	color: var(--lc-wd-deep);
}

/* The design's text link: small capitals over a 2px gold rule. */
.lc-wd-tlink {
	display: inline-block;
	padding-bottom: 4px;
	border-bottom: 2px solid var(--lc-wd-gold);
	font-size: 15px;
	font-weight: 600;
	line-height: var(--lc-wd-lh-sans);
	letter-spacing: 2.5px;
	text-transform: uppercase;
	color: var(--lc-wd-ink);
	text-decoration: none;
	transition: color 0.25s ease, border-color 0.25s ease;
}

.lc-wd-tlink:hover,
.lc-wd-tlink:focus {
	color: var(--lc-wd-deep);
	border-color: var(--lc-wd-ink);
}

.lc-wd-tlink--light {
	color: var(--lc-wd-light);
}

.lc-wd-tlink--light:hover,
.lc-wd-tlink--light:focus {
	color: var(--lc-wd-light);
	border-color: var(--lc-wd-light);
}

/* ------------------------------------------------------------ photo cells */

/* Every photo carries the design's gold hairline 10px inside it. */
.lc-wd-frame {
	position: relative;
	display: block;
	overflow: hidden;
	background: var(--lc-wd-ink);
}

.lc-wd-frame::after {
	content: "";
	position: absolute;
	inset: 10px;
	z-index: 1;
	border: 1px solid rgba(207, 175, 88, 0.85);
	pointer-events: none;
}

.lc-wd-frame--14::after {
	inset: 14px;
}

.lc-wd-cover {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
}

/* ------------------------------------------------------------------- hero */

@keyframes lc-wd-zoom {
	from {
		transform: scale(1);
	}
	to {
		transform: scale(1.12);
	}
}

.lc-wd-hero {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 760px;
	overflow: hidden;
	text-align: center;
	color: var(--lc-wd-light);
	background: var(--lc-wd-ink);
}

.lc-wd-hero__slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity 1.6s ease;
}

.lc-wd-hero__slide.is-active {
	opacity: 1;
}

.lc-wd-hero__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	transform-origin: center;
	animation: lc-wd-zoom 12s ease-in-out infinite alternate;
}

.lc-wd-hero__shade {
	position: absolute;
	inset: 0;
	background: rgba(var(--lc-wd-shade), 0.48);
	pointer-events: none;
}

.lc-wd-hero__inner {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 20px;
	max-width: 908px;
	padding: 0 24px;
}

.lc-wd-hero__eyebrow,
.lc-wd-banner__eyebrow {
	font-size: 15px;
	font-weight: 600;
	line-height: var(--lc-wd-lh-sans);
	letter-spacing: 4px;
	text-transform: uppercase;
	color: var(--lc-wd-gold);
}

.lc-wd-hero__title {
	margin: 0;
	font-family: var(--lc-wd-serif);
	font-size: 76px;
	font-weight: 500;
	line-height: 1.02;
	color: var(--lc-wd-light);
	/* The site's hero glow, so white type holds over a light photograph. */
	text-shadow: 0 0 100px rgba(0, 0, 0, 0.61);
}

.lc-wd-hero__text {
	max-width: 640px;
	font-size: calc(18px * var(--lc-wd-fs));
	font-weight: 300;
	line-height: 28.8px;
	color: var(--lc-wd-light);
}

.lc-wd-hero__ctas {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 14px;
	margin-top: 12px;
}

.lc-wd-hero__controls {
	position: absolute;
	right: 0;
	bottom: 28px;
	left: 0;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
}

.lc-wd-hero__controls[hidden] {
	display: none;
}

.lc-wd-hero__play,
.lc-wd-hero__dot {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	color: var(--lc-wd-cream);
	cursor: pointer;
}

/* The parent theme paints buttons on hover and focus; these stay transparent. */
.lc-wd-hero__play:hover,
.lc-wd-hero__play:focus,
.lc-wd-hero__dot:hover,
.lc-wd-hero__dot:focus {
	background: none;
	color: var(--lc-wd-cream);
}

.lc-wd-hero__play:focus-visible,
.lc-wd-hero__dot:focus-visible {
	outline: 2px solid var(--lc-wd-gold);
	outline-offset: -6px;
}

.lc-wd-hero__icon-play,
.lc-wd-hero.is-paused .lc-wd-hero__icon-pause {
	display: none;
}

.lc-wd-hero.is-paused .lc-wd-hero__icon-play {
	display: block;
}

.lc-wd-hero__dot span {
	display: block;
	width: 10px;
	height: 10px;
	border-radius: 5px;
	background: rgba(248, 245, 237, 0.55);
	transition: width 0.3s ease, background-color 0.3s ease;
}

.lc-wd-hero__dot.is-active span {
	width: 28px;
	background: var(--lc-wd-gold);
}

/* ---------------------------------------------------------------- gallery */

.lc-wd-gallery {
	display: flex;
	flex-direction: column;
	gap: 40px;
}

.lc-wd-gallery__rows {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.lc-wd-gallery__row {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
}

/* Each tile grows by its own width:height, so a row of them shares one height and fills
   the column exactly - the design's justified rows. */
.lc-wd-gallery__tile {
	flex: var(--lc-wd-grow, 1) 1 0;
	min-width: 140px;
	aspect-ratio: var(--lc-wd-ratio, 3 / 2);
}

/* The whole tile is the trigger, so the hit area matches what is drawn. The parent theme
   rounds, fills and colours buttons on every state; each one is claimed back. */
.lc-wd-gallery__btn,
.lc-wd-gallery__btn:hover,
.lc-wd-gallery__btn:active,
.lc-wd-gallery__btn:focus {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	color: inherit;
	cursor: zoom-in;
	overflow: hidden;
}

/* The site's gallery hover: a black scrim fading in, the photo itself still. */
.lc-wd-gallery__btn::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.5);
	opacity: 0;
	transition: opacity 0.8s ease;
	pointer-events: none;
}

.lc-wd-gallery__btn:hover::after,
.lc-wd-gallery__btn:focus-visible::after {
	opacity: 1;
}

.lc-wd-gallery__btn:focus-visible {
	outline: 2px solid var(--lc-wd-gold);
	outline-offset: -2px;
}

/* ------------------------------------------------------- photo banners */

.lc-wd-banner {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	text-align: center;
	color: var(--lc-wd-light);
	background: var(--lc-wd-ink);
}

/* Copy sits in the vertical middle of the banner (changed 2026-10-22; the design had it
   72px off the bottom). */
.lc-wd-banner--venues {
	align-items: center;
	height: 720px;
}

.lc-wd-banner--suppliers {
	height: 480px;
}

.lc-wd-banner__shade {
	position: absolute;
	inset: 0;
	background: rgba(var(--lc-wd-shade), 0.35);
	pointer-events: none;
}

.lc-wd-banner__shade--50 {
	background: rgba(var(--lc-wd-shade), 0.5);
}

.lc-wd-banner__inner {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 22px;
	max-width: 908px;
	padding: 0 24px;
}

.lc-wd-banner__inner--narrow {
	max-width: 688px;
}

.lc-wd-banner .lc-wd-h2,
.lc-wd-how .lc-wd-h2 {
	color: var(--lc-wd-light);
}

.lc-wd-banner__text {
	font-size: 15px;
	font-weight: 300;
	line-height: 28.9px;
	color: var(--lc-wd-light);
}

.lc-wd-banner__text--wide {
	max-width: 680px;
}

/* ------------------------------------------------------------ venues row */

.lc-wd-venues {
	background: var(--lc-wd-cream);
}

.lc-wd-venues__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 20px;
	max-width: calc(1360px + 2 * var(--lc-wd-pad-x));
	margin: 0 auto;
	padding: 56px var(--lc-wd-pad-x) 110px;
}

.lc-wd-venues__item {
	height: 300px;
}

/* ------------------------------------------------------------- key facts */

.lc-wd-facts {
	background: var(--lc-wd-ink);
	color: var(--lc-wd-light);
}

.lc-wd-facts__grid {
	display: grid;
	/* Wide enough for the longest 15px label ("Ceremony & reception spaces", ~303px) on one line. */
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
	max-width: calc(1280px + 2 * var(--lc-wd-pad-x));
	margin: 0 auto;
	padding: 30px var(--lc-wd-pad-x);
	text-align: center;
}

.lc-wd-facts__item {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.lc-wd-facts__value {
	font-family: var(--lc-wd-serif);
	font-size: 34px;
	font-weight: 400;
	line-height: var(--lc-wd-lh-serif);
	color: var(--lc-wd-light);
}

.lc-wd-facts__label {
	font-size: 15px;
	line-height: var(--lc-wd-lh-sans);
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--lc-wd-light-soft);
}

/* Four across no longer fits the labels below 1360px: two by two instead (one column on phones). */
@media (max-width: 1359px) {
	.lc-wd-facts__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		max-width: calc(760px + 2 * var(--lc-wd-pad-x));
	}
}

/* ------------------------------------------------------------- the castle */

.lc-wd-castle {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 72px;
}

.lc-wd-castle__media {
	flex: 1 1 520px;
	min-width: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
}

.lc-wd-castle__img {
	height: 520px;
}

.lc-wd-castle__img:nth-child(2) {
	margin-top: 60px;
}

.lc-wd-castle__copy {
	flex: 1 1 400px;
}

.lc-wd-castle__btn {
	align-self: flex-start;
	margin-top: 8px;
}

/* -------------------------------------------------------------- outdoor */

.lc-wd-outdoor {
	display: flex;
	flex-direction: column;
	gap: 40px;
	padding-bottom: 0;
}

.lc-wd-outdoor__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 20px;
}

.lc-wd-outdoor__img {
	height: 440px;
}

/* ------------------------------------------------------------- packages */

.lc-wd-packages {
	display: flex;
	flex-direction: column;
	gap: 56px;
}

/* A slider: three cards in view (two on tablets, one on phones), scroll-snapped, with
   prev/next arrows centred on the photos. */
.lc-wd-packages__slider {
	--lc-wd-pk-img: 360px;

	position: relative;
}

.lc-wd-packages__grid {
	--lc-wd-pk-per: 3;
	--lc-wd-pk-gap: 24px;

	display: flex;
	gap: var(--lc-wd-pk-gap);
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}

.lc-wd-packages__grid::-webkit-scrollbar {
	display: none;
}

.lc-wd-packages__grid:focus-visible {
	outline: 2px solid var(--lc-wd-gold);
	outline-offset: 4px;
}

.lc-wd-packages__grid > .lc-wd-package {
	flex: 0 0 calc((100% - (var(--lc-wd-pk-per) - 1) * var(--lc-wd-pk-gap)) / var(--lc-wd-pk-per));
	min-width: 0;
	scroll-snap-align: start;
}

/* The lightbox's arrow buttons, sat on the photos' centre line, half outside the strip. */
.lc-wd .lc-wd-slider__btn {
	position: absolute;
	top: calc(var(--lc-wd-pk-img) / 2);
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	margin: 0;
	padding: 0;
	border: 1px solid #cfaf58;
	border-radius: 0;
	background: rgba(47, 53, 40, 0.85);
	color: #cfaf58;
	font-family: var(--lc-wd-sans);
	font-size: 28px;
	line-height: 1;
	cursor: pointer;
	transform: translateY(-50%);
	transition: background-color 0.2s ease, color 0.2s ease, opacity 0.2s ease;
}

.lc-wd .lc-wd-slider__btn[hidden] {
	display: none;
}

.lc-wd .lc-wd-slider__btn:hover,
.lc-wd .lc-wd-slider__btn:focus,
.lc-wd .lc-wd-slider__btn:focus-visible {
	background: #cfaf58;
	color: #0d1a13;
}

.lc-wd .lc-wd-slider__btn:focus-visible {
	outline: 2px solid var(--lc-wd-ink);
	outline-offset: 2px;
}

.lc-wd .lc-wd-slider__btn:disabled {
	opacity: 0.35;
	cursor: default;
	background: rgba(47, 53, 40, 0.85);
	color: #cfaf58;
}

.lc-wd-slider__prev {
	left: -24px;
}

.lc-wd-slider__next {
	right: -24px;
}

.lc-wd-package {
	display: flex;
	flex-direction: column;
	background: var(--lc-wd-paper);
	border: 1px solid var(--lc-wd-rule);
	/* No top border: the photo runs to the card's top edge (changed 2026-10-21). */
	border-top: 0;
}

.lc-wd-package__img {
	height: 360px;
}

.lc-wd-package__body {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 28px 26px 30px;
}

.lc-wd-package__num {
	font-size: 15px;
	font-weight: 500;
	line-height: var(--lc-wd-lh-sans);
	letter-spacing: 4px;
	color: var(--lc-wd-gold);
}

.lc-wd-package__title {
	margin: 0;
	font-family: var(--lc-wd-serif);
	font-size: 32px;
	font-weight: 500;
	line-height: 1.1;
	color: var(--lc-wd-ink);
}

.lc-wd-package__text {
	font-size: 15px;
	line-height: 24px;
}

.lc-wd-package__link {
	align-self: flex-start;
	margin-top: auto;
}

.lc-wd-packages__close {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
	padding-top: 8px;
	text-align: center;
}

.lc-wd-packages__note {
	font-family: var(--lc-wd-serif);
	font-size: 28px;
	font-style: italic;
	line-height: var(--lc-wd-lh-serif);
	color: var(--lc-wd-ink);
}

/* ------------------------------------------------------------- included */

.lc-wd-included {
	background: var(--lc-wd-paper);
}

.lc-wd-included__inner {
	display: flex;
	flex-direction: column;
	gap: 32px;
	max-width: calc(1280px + 2 * var(--lc-wd-pad-x));
	margin: 0 auto;
	padding: 64px var(--lc-wd-pad-x);
}

/* Three to a row, as the design's grid; built with flex so a short last row (one or two
   items) sits in the middle of the section. The text inside each item stays left-aligned. */
.lc-wd-included__grid {
	--lc-wd-cols: 3;
	--lc-wd-col-gap: 40px;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 20px var(--lc-wd-col-gap);
}

.lc-wd-included__item {
	flex: 0 0 calc((100% - (var(--lc-wd-cols) - 1) * var(--lc-wd-col-gap)) / var(--lc-wd-cols));
	min-width: 0;
	text-align: left;
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding-top: 14px;
	border-top: 1px solid var(--lc-wd-gold-line);
}

.lc-wd-included__title {
	font-family: var(--lc-wd-serif);
	font-size: 21px;
	font-weight: 500;
	line-height: var(--lc-wd-lh-serif);
	color: var(--lc-wd-ink);
}

.lc-wd-included__text {
	font-size: 15px;
	line-height: 22.4px;
}

/* ----------------------------------------------------------------- food */

.lc-wd-food {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 56px;
	padding-top: 100px;
	padding-bottom: 100px;
}

.lc-wd-food__media {
	flex: 1 1 480px;
	min-width: 0;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}

.lc-wd-food__img {
	height: 300px;
}

.lc-wd-food__copy {
	flex: 1 1 400px;
}

.lc-wd-food__list li {
	padding: 14px 0;
	border-bottom: 1px solid rgba(198, 170, 87, 0.45);
	font-family: var(--lc-wd-serif);
	font-size: 22px;
	line-height: var(--lc-wd-lh-serif);
	color: var(--lc-wd-ink);
}

.lc-wd-food__link {
	align-self: flex-start;
}

/* --------------------------------------------------------- how it works */

.lc-wd-how {
	background: var(--lc-wd-ink);
	color: var(--lc-wd-light);
}

.lc-wd-how__inner {
	display: flex;
	flex-direction: column;
	gap: 56px;
	max-width: calc(1280px + 2 * var(--lc-wd-pad-x));
	margin: 0 auto;
	padding: 110px var(--lc-wd-pad-x);
}

.lc-wd-how__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 48px;
}

.lc-wd-how__step {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding-top: 24px;
	border-top: 1px solid rgba(207, 175, 88, 0.6);
}

.lc-wd-how__num {
	font-family: var(--lc-wd-serif);
	font-size: 44px;
	line-height: 1;
	color: var(--lc-wd-gold);
}

.lc-wd-how__title {
	font-family: var(--lc-wd-serif);
	font-size: 28px;
	font-weight: 500;
	line-height: var(--lc-wd-lh-serif);
	color: var(--lc-wd-light);
}

.lc-wd-how__text {
	font-size: 15px;
	line-height: 25.5px;
	color: var(--lc-wd-light-soft);
}

/* --------------------------------------------------------------- extras */

.lc-wd-extras {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 56px;
}

.lc-wd-extras__copy {
	flex: 1 1 380px;
}

.lc-wd-extras__media {
	flex: 1 1 520px;
	min-width: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	align-items: center;
	gap: 20px;
}

.lc-wd-extras__img {
	height: 440px;
}

.lc-wd-extras__img:nth-child(2) {
	height: 360px;
}

/* ----------------------------------------------------------------- stay */

.lc-wd-stay {
	display: flex;
	flex-direction: column;
	gap: 56px;
}

.lc-wd-stay__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	align-items: center;
	gap: 20px;
}

.lc-wd-room {
	height: 380px;
	text-decoration: none;
}

.lc-wd-room:nth-child(3n + 2) {
	height: 460px;
}

.lc-wd-room .lc-wd-cover {
	transition: transform 0.6s ease;
}

a.lc-wd-room:hover .lc-wd-cover,
a.lc-wd-room:focus-visible .lc-wd-cover {
	transform: scale(1.04);
}

.lc-wd-room__name {
	position: absolute;
	right: 10px;
	bottom: 10px;
	left: 10px;
	z-index: 1;
	padding: 0 22px 20px;
	font-family: var(--lc-wd-serif);
	font-size: 26px;
	font-style: italic;
	line-height: var(--lc-wd-lh-serif);
	color: var(--lc-wd-light);
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.55), 0 0 18px rgba(0, 0, 0, 0.45);
}

/* ------------------------------------------------------------------ faq */

.lc-wd-faq {
	background: var(--lc-wd-paper);
}

.lc-wd-faq__inner {
	display: flex;
	flex-direction: column;
	gap: 40px;
	max-width: calc(920px + 2 * var(--lc-wd-pad-x));
	margin: 0 auto;
	padding: 110px var(--lc-wd-pad-x);
}

.lc-wd-faq__list {
	border-top: 1px solid var(--lc-wd-rule);
}

.lc-wd-faq__item {
	border-bottom: 1px solid var(--lc-wd-rule);
}

.lc-wd-faq__q {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	min-height: 64px;
	padding: 20px 0;
	list-style: none;
	cursor: pointer;
	font-family: var(--lc-wd-serif);
	font-size: 25px;
	font-weight: 500;
	line-height: var(--lc-wd-lh-serif);
	color: var(--lc-wd-ink);
}

.lc-wd-faq__q::-webkit-details-marker,
.lc-wd-faq__q::marker {
	display: none;
	content: "";
}

.lc-wd-faq__q:focus-visible {
	outline: 2px solid var(--lc-wd-gold);
	outline-offset: 2px;
}

.lc-wd-faq__sign {
	flex: 0 0 auto;
	font-family: var(--lc-wd-sans);
	font-size: 26px;
	font-weight: 300;
	line-height: var(--lc-wd-lh-sans);
	color: var(--lc-wd-gold);
}

.lc-wd-faq__sign::before {
	content: "+";
}

.lc-wd-faq__item[open] .lc-wd-faq__sign::before {
	content: "\2212";
}

.lc-wd-faq__a {
	padding: 0 40px 24px 0;
	font-size: 15px;
	line-height: 28px;
}

.lc-wd-faq__a p + p {
	margin-top: 12px;
}

/* -------------------------------------------------------------- enquire */

.lc-wd-enquire {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 64px;
}

.lc-wd-enquire__img {
	flex: 1 1 420px;
	min-width: 0;
	min-height: 560px;
}

.lc-wd-enquire__copy {
	flex: 1 1 480px;
}

/* The wedding enquiry form is an Elementor Form widget; these rules give it the design's
   fields and the page's button, and beat the plugin's own spacing rules. */
.lc-wd .lc-wd-form .elementor-widget-wrap,
.lc-wd .lc-wd-form .elementor-widget-wrap.elementor-element-populated,
.lc-wd .lc-wd-form .elementor-section .elementor-container,
.lc-wd .lc-wd-form .elementor-column-gap-default > .elementor-column > .elementor-element-populated {
	padding: 0;
}

.lc-wd .lc-wd-form .elementor-form .elementor-form-fields-wrapper {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	align-items: start;
	gap: 16px;
	margin: 0 !important;
}

/* The honeypot's wrapper carries no field-group class and draws nothing, but as a grid item
   it would still open an empty row (and a 16px gap) above the note box. */
.lc-wd .lc-wd-form .elementor-form .elementor-form-fields-wrapper > :not(.elementor-field-group) {
	display: none !important;
}

/* Elementor gives every field flex-basis: 100%, which stretches a field to fill its grid
   cell (the first one came out 56px tall). Each part keeps its own height. */
.lc-wd .lc-wd-form .elementor-form .elementor-field-group > * {
	flex: 0 0 auto !important;
}

/* Elementor wraps each group's label and field (flex-wrap: wrap); inside a grid cell that
   splits them side by side, so the label is held above the field explicitly. */
.lc-wd .lc-wd-form .elementor-form .elementor-field-group {
	display: flex;
	flex-direction: column;
	flex-wrap: nowrap !important;
	align-items: stretch !important;
	gap: 6px;
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

.lc-wd .lc-wd-form .elementor-form .elementor-field-type-textarea,
.lc-wd .lc-wd-form .elementor-form .elementor-field-type-acceptance,
.lc-wd .lc-wd-form .elementor-form .elementor-field-type-submit {
	grid-column: 1 / -1;
}

/* The note box sits 22px under the grid in the design, a step further than the grid gap. */
.lc-wd .lc-wd-form .elementor-form .elementor-field-type-textarea {
	margin-top: 6px !important;
}

.lc-wd .lc-wd-form .elementor-field-label {
	display: block;
	margin: 0;
	padding: 0;
	font-family: var(--lc-wd-sans);
	font-size: 15px;
	font-weight: 400;
	line-height: var(--lc-wd-lh-sans);
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--lc-wd-ink) !important;
}

.lc-wd .lc-wd-form .elementor-field-textual,
.lc-wd .lc-wd-form input[type="text"],
.lc-wd .lc-wd-form input[type="email"],
.lc-wd .lc-wd-form input[type="tel"],
.lc-wd .lc-wd-form input[type="number"],
.lc-wd .lc-wd-form input[type="date"],
.lc-wd .lc-wd-form select,
.lc-wd .lc-wd-form textarea {
	-webkit-appearance: none;
	appearance: none;
	box-sizing: border-box;
	width: 100%;
	height: 50px;
	min-height: 50px;
	margin: 0;
	padding: 0 14px;
	background-color: #ffffff !important;
	border: 1px solid var(--lc-wd-field) !important;
	border-radius: 0 !important;
	box-shadow: none;
	font-family: var(--lc-wd-sans);
	font-size: 15px;
	font-weight: 400;
	line-height: 1.4;
	color: var(--lc-wd-body) !important;
}

.lc-wd .lc-wd-form input:focus,
.lc-wd .lc-wd-form select:focus,
.lc-wd .lc-wd-form textarea:focus {
	border-color: var(--lc-wd-gold) !important;
	outline: 1px solid var(--lc-wd-gold);
	outline-offset: 0;
}

.lc-wd .lc-wd-form select {
	padding-right: 40px;
	background-image: none;
	cursor: pointer;
}

.lc-wd .lc-wd-form .elementor-select-wrapper .select-caret-down-wrapper {
	right: 14px;
	color: var(--lc-wd-ink);
}

/* Four rows, as the design's box: 114px. */
.lc-wd .lc-wd-form textarea,
.lc-wd .lc-wd-form .elementor-form textarea.elementor-field-textual {
	height: 114px !important;
	min-height: 114px;
	padding: 12px 14px !important;
	resize: vertical;
}

.lc-wd .lc-wd-form .elementor-field-type-acceptance .elementor-field-subgroup,
.lc-wd .lc-wd-form .elementor-field-option {
	display: flex;
	align-items: center;
	gap: 12px;
}

.lc-wd .lc-wd-form .elementor-field-type-acceptance input[type="checkbox"] {
	-webkit-appearance: none;
	appearance: none;
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
	margin: 0;
	background: #ffffff;
	border: 1px solid var(--lc-wd-gold);
	border-radius: 0;
	cursor: pointer;
}

.lc-wd .lc-wd-form .elementor-field-type-acceptance input[type="checkbox"]:checked {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M4 10.5l4 4 8-8.5' fill='none' stroke='%23CFAF58' stroke-width='2'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 14px 14px;
}

.lc-wd .lc-wd-form .elementor-field-option label {
	margin: 0;
	font-family: var(--lc-wd-sans);
	font-size: 15px;
	line-height: 1.5;
	letter-spacing: 0;
	text-transform: none;
	color: var(--lc-wd-body);
}

/* The send button is the page's primary button: its own width, flush left, with the arrow
   the design's other primary buttons carry. */
.lc-wd .lc-wd-form .elementor-form .elementor-field-group.elementor-field-type-submit {
	align-items: flex-start !important;
	margin-top: 6px !important;
}

.lc-wd .lc-wd-form .elementor-form .elementor-button .elementor-button-content-wrapper {
	display: inline-flex;
	align-items: center;
	gap: 12px;
}

.lc-wd .lc-wd-form .elementor-form .elementor-button .elementor-button-text::after {
	content: "";
	display: inline-block;
	width: 16px;
	height: 10px;
	margin-left: 12px;
	vertical-align: middle;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 10' fill='none' stroke='black' stroke-width='1.4'%3E%3Cpath d='M0 5h14M10 1l4 4-4 4'/%3E%3C/svg%3E") no-repeat center / 16px 10px;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 10' fill='none' stroke='black' stroke-width='1.4'%3E%3Cpath d='M0 5h14M10 1l4 4-4 4'/%3E%3C/svg%3E") no-repeat center / 16px 10px;
	transition: transform 0.25s ease;
}

.lc-wd .lc-wd-form .elementor-form .elementor-button:hover .elementor-button-text::after,
.lc-wd .lc-wd-form .elementor-form .elementor-button:focus-visible .elementor-button-text::after {
	transform: translateX(4px);
}

.lc-wd .lc-wd-form .elementor-form .elementor-button,
.lc-wd .lc-wd-form button[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: auto !important;
	min-height: 52px;
	padding: 0 30px;
	background: var(--lc-wd-ink) !important;
	border: 1px solid var(--lc-wd-ink);
	border-radius: 0;
	box-shadow: inset 0 0 0 4px var(--lc-wd-ink), inset 0 0 0 5px var(--lc-wd-gold);
	font-family: var(--lc-wd-sans);
	font-size: 15px;
	font-weight: 600;
	line-height: var(--lc-wd-lh-sans);
	letter-spacing: 3px;
	text-transform: uppercase;
	color: var(--lc-wd-mist) !important;
	cursor: pointer;
	transition: background-color 0.25s ease, color 0.25s ease, box-shadow 0.25s ease;
}

.lc-wd .lc-wd-form .elementor-form .elementor-button .elementor-button-text {
	color: inherit !important;
}

.lc-wd .lc-wd-form .elementor-form .elementor-button:hover,
.lc-wd .lc-wd-form .elementor-form .elementor-button:focus-visible {
	background: var(--lc-wd-gold) !important;
	border-color: var(--lc-wd-gold);
	box-shadow: inset 0 0 0 4px var(--lc-wd-gold), inset 0 0 0 5px var(--lc-wd-deep);
	color: var(--lc-wd-deep) !important;
}

.lc-wd .lc-wd-form .elementor-message {
	margin-top: 16px;
	font-family: var(--lc-wd-sans);
	font-size: 15px;
	line-height: 1.6;
	color: var(--lc-wd-ink);
}

.lc-wd .lc-wd-form .elementor-error .elementor-field-textual {
	border-color: #b3261e !important;
}

/* --------------------------------------------------------------- lightbox */

/* The gallery viewer Private Dining and Sunday Roast use: full screen, one slideshow across
   every photo, prev/next, a counter, arrow keys and Escape. The dialog is appended to <body>,
   outside .lc-wd, so its colours are written out rather than taken from the page tokens
   (on those two pages the tokens never resolve, which loses the gold border and hover). */
.lc-wd-lb {
	width: 100vw;
	max-width: 100vw;
	height: 100dvh;
	max-height: 100dvh;
	margin: 0;
	padding: 0;
	border: 0;
	background: rgba(13, 26, 19, 0.96);
	color: #fff;
	overflow: hidden;
}

.lc-wd-lb::backdrop {
	background: rgba(13, 26, 19, 0.9);
}

/* The photo fills the screen: full width with its height following, or full height with
   its width following - whichever the photo's shape allows. The controls sit over it. */
.lc-wd-lb__frame {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	padding: 0;
}

.lc-wd-lb__img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: contain;
}

.lc-wd-lb__btn {
	position: absolute;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	margin: 0;
	padding: 0;
	border: 1px solid #cfaf58;
	border-radius: 0;
	background: rgba(47, 53, 40, 0.85);
	color: #cfaf58;
	font-size: 28px;
	line-height: 1;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.lc-wd-lb__btn:hover,
.lc-wd-lb__btn:focus,
.lc-wd-lb__btn:focus-visible {
	background: #cfaf58;
	color: #0d1a13;
}

.lc-wd-lb__btn:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 2px;
}

.lc-wd-lb__close {
	top: 20px;
	right: 20px;
}

.lc-wd-lb__prev {
	top: 50%;
	left: 20px;
	transform: translateY(-50%);
}

.lc-wd-lb__next {
	top: 50%;
	right: 20px;
	transform: translateY(-50%);
}

/* Purely a readout: it spans the whole width, and on phones the arrows sit at the same
   height, so it must never take a tap meant for them (it swallowed them, 2026-10-21). */
.lc-wd-lb__count {
	position: absolute;
	z-index: 1;
	bottom: 22px;
	pointer-events: none;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.8);
	left: 0;
	width: 100%;
	margin: 0;
	text-align: center;
	font-family: "Work Sans", -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;
	font-size: 15px;
	letter-spacing: 0.12em;
	color: #cfaf58;
}

html.lc-wd-lb-open,
html.lc-wd-lb-open body {
	overflow: hidden;
}

/* ============================================================ responsive */

@media (max-width: 1200px) {
	.lc-wd {
		--lc-wd-pad-x: 32px;
	}

	.lc-wd-castle,
	.lc-wd-extras,
	.lc-wd-food {
		gap: 48px;
	}
}

@media (max-width: 1024px) {
	.lc-wd {
		--lc-wd-nav: 0px;
	}

	.lc-wd-wrap {
		padding-top: 96px;
		padding-bottom: 96px;
	}

	.lc-wd-outdoor {
		padding-bottom: 0;
	}

	.lc-wd-food {
		padding-top: 80px;
		padding-bottom: 80px;
	}

	.lc-wd-hero {
		height: 680px;
	}

	.lc-wd-hero__title {
		font-size: 60px;
	}

	.lc-wd-h2--60 {
		font-size: 50px;
	}

	.lc-wd-h2--56 {
		font-size: 48px;
	}

	.lc-wd-h2--52 {
		font-size: 44px;
	}

	.lc-wd-h2--38 {
		font-size: 34px;
	}

	/* The justified rows become an even three-up grid: five tiles of very different
	   shapes squeezed into a tablet row would leave slivers. */
	.lc-wd-gallery__rows {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 12px;
	}

	.lc-wd-gallery__row {
		display: contents;
	}

	.lc-wd-gallery__tile {
		flex: none;
		min-width: 0;
		aspect-ratio: 4 / 3;
	}

	.lc-wd-banner--venues {
		height: 620px;
	}

	.lc-wd-venues__grid {
		grid-template-columns: repeat(6, minmax(0, 1fr));
		padding-top: 40px;
		padding-bottom: 88px;
	}

	/* Three across, then two across under them: no lone tile. */
	.lc-wd-venues__item {
		grid-column: span 2;
		height: 260px;
	}

	.lc-wd-venues__item:nth-child(n + 4) {
		grid-column: span 3;
	}

	/* The design's auto-fit grids strand the last item on a row of its own at tablet
	   widths; these hold a whole row instead. */
	.lc-wd-facts__grid {
		gap: 16px;
	}

	.lc-wd-facts__value {
		font-size: 28px;
	}

	.lc-wd-outdoor__grid,
	.lc-wd-stay__grid,
	.lc-wd-how__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.lc-wd-outdoor__grid,
	.lc-wd-stay__grid {
		gap: 14px;
	}

	.lc-wd-how__grid {
		gap: 28px;
	}

	.lc-wd-outdoor__img {
		height: 340px;
	}

	.lc-wd-room {
		height: 300px;
	}

	.lc-wd-room:nth-child(3n + 2) {
		height: 360px;
	}

	.lc-wd-room__name {
		padding: 0 16px 16px;
		font-size: 22px;
	}

	.lc-wd-included__grid {
		--lc-wd-cols: 2;
	}

	.lc-wd-castle__media {
		flex-basis: 100%;
	}

	.lc-wd-castle__img {
		height: 460px;
	}

	.lc-wd-packages__slider {
		--lc-wd-pk-img: 320px;
	}

	.lc-wd-packages__grid {
		--lc-wd-pk-per: 2;
	}

	.lc-wd-package__img {
		height: 320px;
	}

	.lc-wd-food__media,
	.lc-wd-extras__media {
		flex-basis: 100%;
	}

	.lc-wd-enquire__img {
		flex-basis: 100%;
		min-height: 440px;
	}
}

@media (max-width: 767px) {
	.lc-wd {
		--lc-wd-pad-x: 20px;
	}

	/* Keeps "Start Planning Your Day" on one line at 15px down to 360px. */
	.lc-wd-btn {
		padding-left: 16px;
		padding-right: 16px;
		letter-spacing: 1.5px;
	}

	.lc-wd-wrap {
		padding-top: 72px;
		padding-bottom: 72px;
	}

	.lc-wd-outdoor {
		padding-bottom: 0;
	}

	.lc-wd-food {
		padding-top: 64px;
		padding-bottom: 64px;
	}

	.lc-wd-hero {
		height: auto;
		min-height: 640px;
		padding: 96px 0 104px;
	}

	.lc-wd-hero__inner {
		gap: 18px;
		padding: 0 20px;
	}

	.lc-wd-hero__title {
		font-size: 42px;
		line-height: 1.08;
	}

	.lc-wd-hero__text {
		font-size: 15px;
		line-height: 25px;
	}

	.lc-wd-hero__ctas {
		flex-direction: column;
		align-items: stretch;
		width: 100%;
		max-width: 340px;
	}

	.lc-wd-hero__controls {
		bottom: 12px;
	}

	.lc-wd-h2--60 {
		font-size: 40px;
	}

	.lc-wd-h2--56,
	.lc-wd-h2--52 {
		font-size: 36px;
	}

	.lc-wd-h2--38 {
		font-size: 30px;
	}

	.lc-wd-eyebrow,
	.lc-wd-hero__eyebrow,
	.lc-wd-banner__eyebrow {
		font-size: 15px;
		letter-spacing: 3px;
	}

	.lc-wd-gallery {
		gap: 32px;
	}

	.lc-wd-gallery__rows {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
	}

	.lc-wd-banner--venues {
		height: auto;
		min-height: 560px;
		padding: 88px 0;
	}

	.lc-wd-banner--suppliers {
		height: auto;
		min-height: 440px;
		padding: 80px 0;
	}

	.lc-wd-banner__inner {
		gap: 18px;
		padding: 0 20px;
	}

	.lc-wd-banner__text {
		font-size: 15px;
		line-height: 25px;
	}

	.lc-wd-venues__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
		padding-top: 24px;
		padding-bottom: 64px;
	}

	/* One wide, then two pairs. */
	.lc-wd-venues__item,
	.lc-wd-venues__item:nth-child(n + 4) {
		grid-column: auto;
		height: 200px;
	}

	.lc-wd-venues__item:first-child {
		grid-column: 1 / -1;
		height: 240px;
	}

	.lc-wd-facts__grid {
		grid-template-columns: 1fr;
		gap: 24px 16px;
		padding-top: 32px;
		padding-bottom: 32px;
	}

	.lc-wd-facts__value {
		font-size: 28px;
	}

	.lc-wd-facts__label {
		font-size: 15px;
		letter-spacing: 1.5px;
	}

	.lc-wd-castle,
	.lc-wd-extras,
	.lc-wd-food,
	.lc-wd-enquire {
		gap: 40px;
	}

	.lc-wd-castle__media {
		gap: 12px;
	}

	.lc-wd-castle__img {
		height: 300px;
	}

	.lc-wd-castle__img:nth-child(2) {
		margin-top: 40px;
	}

	.lc-wd-castle__copy,
	.lc-wd-food__copy,
	.lc-wd-extras__copy,
	.lc-wd-enquire__copy {
		flex-basis: 100%;
	}

	/* Photo rows become a swipeable strip rather than three tall stacked photos. */
	.lc-wd-outdoor__grid,
	.lc-wd-stay__grid {
		display: flex;
		gap: 12px;
		margin: 0 calc(-1 * var(--lc-wd-pad-x));
		padding: 0 var(--lc-wd-pad-x) 4px;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scroll-padding: 0 var(--lc-wd-pad-x);
		scrollbar-width: none;
	}

	.lc-wd-outdoor__grid::-webkit-scrollbar,
	.lc-wd-stay__grid::-webkit-scrollbar {
		display: none;
	}

	.lc-wd-outdoor__img,
	.lc-wd-room,
	.lc-wd-room:nth-child(3n + 2) {
		flex: 0 0 82%;
		height: 380px;
		scroll-snap-align: start;
	}

	.lc-wd-packages {
		gap: 40px;
	}

	.lc-wd-packages__slider {
		--lc-wd-pk-img: 280px;
	}

	.lc-wd-packages__grid {
		--lc-wd-pk-per: 1;
		--lc-wd-pk-gap: 20px;
	}

	.lc-wd-package__img {
		height: 280px;
	}

	/* No room outside the strip on phones: the arrows sit inside the photo's edges. */
	.lc-wd-slider__prev {
		left: 8px;
	}

	.lc-wd-slider__next {
		right: 8px;
	}

	.lc-wd-package__body {
		padding: 24px 22px 26px;
	}

	.lc-wd-package__title {
		font-size: 28px;
	}

	.lc-wd-packages__note {
		font-size: 24px;
	}

	.lc-wd-included__inner {
		padding-top: 56px;
		padding-bottom: 56px;
	}

	.lc-wd-included__grid {
		--lc-wd-cols: 1;
		gap: 18px;
	}

	.lc-wd-food__media {
		gap: 10px;
	}

	.lc-wd-food__img {
		height: 180px;
	}

	.lc-wd-food__list li {
		font-size: 20px;
	}

	.lc-wd-how__inner {
		gap: 40px;
		padding-top: 72px;
		padding-bottom: 72px;
	}

	.lc-wd-how__grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 32px;
	}

	.lc-wd-how__num {
		font-size: 38px;
	}

	.lc-wd-how__title {
		font-size: 24px;
	}

	.lc-wd-extras__media {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
	}

	.lc-wd-extras__img {
		height: 300px;
	}

	.lc-wd-extras__img:nth-child(2) {
		height: 240px;
	}

	.lc-wd-room__name {
		font-size: 24px;
	}

	.lc-wd-faq__inner {
		gap: 32px;
		padding-top: 72px;
		padding-bottom: 72px;
	}

	.lc-wd-faq__q {
		font-size: 21px;
		padding: 18px 0;
	}

	.lc-wd-faq__a {
		padding-right: 0;
	}

	.lc-wd-enquire__img {
		min-height: 340px;
	}

	.lc-wd .lc-wd-form .elementor-form .elementor-form-fields-wrapper {
		grid-template-columns: minmax(0, 1fr);
	}

	.lc-wd .lc-wd-form .elementor-form .elementor-button {
		width: 100% !important;
	}

	.lc-wd-lb__prev,
	.lc-wd-lb__next {
		top: auto;
		bottom: 12px;
		transform: none;
	}

	.lc-wd-lb__prev {
		left: 12px;
	}

	.lc-wd-lb__next {
		right: 12px;
	}

	.lc-wd-lb__close {
		top: 12px;
		right: 12px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.lc-wd-hero__img {
		animation: none;
	}

	.lc-wd-hero__slide,
	.lc-wd-room .lc-wd-cover,
	.lc-wd-btn__arrow {
		transition: none;
	}
}
