/* ------------------------------------------------------------------
   White Heath — everything the donor's stylesheet does not already do.
   All of it namespaced under .wh- so nothing here can reach donor markup,
   and all of it written in the donor's own two typefaces and four colours:
   Playfair Display, Open Sans, #B39575, #0A2022, #777874, #EDEDED.
   ------------------------------------------------------------------ */

:root {
	--wh-gold: #B39575;
	--wh-dark: #0A2022;
	--wh-darker: #021A1A;
	--wh-grey: #777874;
	--wh-light: #EDEDED;
	--wh-paper: #F7F7F7;
}

/* ---------------------------------------------------------- images */

/* Every photograph carries its real width and height so the browser reserves
   the box before the file arrives. The donor has no global img rule, so without
   these two lines those attributes would freeze the images at natural size and
   break the grid on a phone. */
picture { display: block; }
picture img { max-width: 100%; height: auto; }

/* --------------------------------------------------------- top bar */

.wh-topbar {
	background: var(--wh-darker);
	color: #EDEDED;
	font-size: 0.8rem;
	letter-spacing: 0.04em;
	padding: 0.35rem 0;
}
.wh-topbar a { color: #EDEDED; text-decoration: none; margin-right: 1.4rem; }
.wh-topbar a:hover { color: var(--wh-gold); }
.wh-topbar i { color: var(--wh-gold); margin-right: 0.35rem; }
.wh-r20 {
	display: inline-block;
	border: 1px solid var(--wh-gold);
	color: var(--wh-gold);
	padding: 0.05rem 0.6rem;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-size: 0.7rem;
	white-space: nowrap;
}
@media (max-width: 575px) {
	.wh-topbar { font-size: 0.72rem; text-align: center; }
	.wh-topbar .d-flex { justify-content: center !important; }
	.wh-topbar__contact a { margin: 0 0.5rem; }
	.wh-topbar__r20 { width: 100%; margin-top: 0.25rem; }
}

/* -------------------------------------------------------- wordmark */

.wh-logo { display: flex; align-items: center; text-decoration: none; gap: 0.75rem; }
.wh-logo .wh-logo__mark { display: block; line-height: 0; color: var(--wh-gold); flex: 0 0 auto; }
.wh-logo .wh-logo__type { display: block; }
.wh-logo .wh-logo__name {
	display: block;
	font-family: "Playfair Display", Georgia, serif;
	font-size: 1.6rem;
	line-height: 1.1;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wh-darker);
	white-space: nowrap;
}
.wh-logo .wh-logo__sub {
	display: block;
	font-family: "Open Sans", Helvetica, Arial, sans-serif;
	font-size: 0.62rem;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: var(--wh-grey);
	margin-top: 0.2rem;
	white-space: nowrap;
}
header#header nav.navbar .navbar-brand { padding: 0.6rem 0; }
@media (max-width: 575px) {
	.wh-logo .wh-logo__name { font-size: 1.2rem; letter-spacing: 0.12em; }
	.wh-logo .wh-logo__sub { font-size: 0.55rem; letter-spacing: 0.2em; }
	.wh-logo .wh-logo__mark svg { width: 40px; height: 40px; }
}

/* The footer sits on a dark ground, so the wordmark inverts there. */
.wh-logo--foot { margin-bottom: 1rem; }
.wh-logo--foot .wh-logo__name { color: #fff; }
.wh-logo--foot .wh-logo__sub { color: var(--wh-gold); }

/* ------------------------------------------------------------- nav */

header#header nav.navbar li a { font-size: 0.86rem; letter-spacing: 0.06em; }
header#header nav.navbar li.active > a,
header#header nav.navbar li.current-menu-item > a { color: var(--wh-gold); font-weight: 400; }
header#header nav.navbar .navbar-toggler { font-size: 1.4rem; color: var(--wh-darker); }
@media (max-width: 991px) {
	header#header nav.navbar li { margin-left: 0; }
	#navbarToggler { padding-bottom: 1rem; }
	#menu-main-menu-right { margin-top: 0.5rem; }
}

/* ---------------------------------------------------------- slider */

.wh-slider--sub .swiper-slide h1 { font-size: 2.2rem; }
.slider-section .swiper-slide { background-size: cover !important; background-position: center; }
.slider-section .entry-content h1,
.slider-section .entry-content h2 { text-shadow: 0 2px 18px rgba(0, 0, 0, 0.45); }
.slider-section .entry-content p { text-shadow: 0 2px 12px rgba(0, 0, 0, 0.55); }
.slider-section .entry-content .btn-primary,
.slider-section .entry-content .btn-primary-outline { margin: 0.3rem 0.25rem; }

/* The donor floats an availability form over the bottom of the hero. Ours
   carries dates to contact.php rather than to a booking engine. */
.booking-floating-form-wrapper .btnCheckAvail {
	background: var(--wh-gold);
	border: 1px solid var(--wh-gold);
	color: #fff;
	padding: 0.55rem 1.6rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	font-size: 0.8rem;
}
.booking-floating-form-wrapper .btnCheckAvail:hover { background: var(--wh-darker); border-color: var(--wh-darker); }
.booking-floating-form-wrapper input[type=date],
.booking-floating-form-wrapper input[type=number],
.booking-floating-form-wrapper select { min-width: 8rem; }
/* No icon sits beside Guests — the donor's subset has no person glyph — so the
   field takes the padding the icon would have occupied and the row stays level. */
.wh-quick__guests { padding-left: 1rem; }
.wh-quick__guests input[type=number] { max-width: 5rem; }

/* --------------------------------------------------------- age gate */

.wh-gate {
	position: fixed;
	inset: 0;
	z-index: 20000;
	background: rgba(2, 26, 26, 0.94);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.5rem;
	overflow-y: auto;
}
.wh-gate__box {
	background: #fff;
	max-width: 640px;
	width: 100%;
	padding: 2.5rem 2rem;
	text-align: center;
	border-top: 4px solid var(--wh-gold);
}
.wh-gate__mark { display: block; color: var(--wh-gold); line-height: 0; margin-bottom: 1.2rem; }
.wh-gate h2 { font-size: 1.7rem; margin-bottom: 0.7em; }
.wh-gate p { color: var(--wh-grey); }
.wh-gate__buttons { margin-top: 1.6rem; display: flex; gap: 0.75rem; justify-content: center; flex-wrap: wrap; }
.wh-gate__buttons .btn-primary,
.wh-gate__buttons .btn-primary-outline { cursor: pointer; }
body.wh-locked { overflow: hidden; }
@media (max-width: 575px) {
	.wh-gate__box { padding: 1.75rem 1.1rem; }
	.wh-gate h2 { font-size: 1.35rem; }
}

/* ----------------------------------------------------------- cookies */

.wh-cookie {
	position: fixed;
	left: 0; right: 0; bottom: 0;
	z-index: 19000;
	background: #fff;
	border-top: 3px solid var(--wh-gold);
	box-shadow: 0 -6px 24px rgba(0, 0, 0, 0.18);
	max-height: 85vh;
	overflow-y: auto;
}
.wh-cookie__bar {
	display: flex;
	gap: 1.5rem;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	padding: 1.1rem 1.5rem;
	max-width: 1320px;
	margin: 0 auto;
}
.wh-cookie__text { flex: 1 1 22rem; }
.wh-cookie__text p { margin: 0; font-size: 0.85rem; color: var(--wh-grey); }
.wh-cookie__buttons { display: flex; gap: 0.5rem; flex-wrap: wrap; align-items: center; }
.wh-cookie__buttons .btn-primary,
.wh-cookie__buttons .btn-primary-outline { cursor: pointer; white-space: nowrap; }
.wh-btn-plain {
	background: none;
	border: none;
	color: var(--wh-grey);
	text-decoration: underline;
	font-size: 0.85rem;
	padding: 0.4rem 0.6rem;
	cursor: pointer;
}
.wh-btn-plain:hover { color: var(--wh-gold); }
.wh-cookie__panel {
	border-top: 1px solid var(--wh-light);
	padding: 1.25rem 1.5rem 1.75rem;
	max-width: 1320px;
	margin: 0 auto;
}
.wh-cookie__panel h3 { font-size: 1.15rem; }

.wh-check { display: flex; gap: 0.6rem; align-items: flex-start; margin-bottom: 0.7rem; font-size: 0.85rem; color: var(--wh-grey); }
.wh-check input { margin-top: 0.28rem; flex: 0 0 auto; }
.wh-check i { font-style: normal; color: var(--wh-gold); font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.1em; margin-left: 0.3rem; }

/* ------------------------------------------------------------ forms */

.wh-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.wh-form { max-width: 62rem; }
.wh-form__grid { margin-bottom: 0.5rem; }
.wh-field { margin-bottom: 1rem; }
.wh-field label {
	display: block;
	font-size: 0.78rem;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--wh-grey);
	margin-bottom: 0.3rem;
}
.wh-field label i { font-style: normal; color: var(--wh-gold); letter-spacing: 0.06em; }
.wh-field input,
.wh-field select,
.wh-field textarea { width: 100%; }
.wh-checks { margin: 1.25rem 0 1.5rem; }
.wh-form__note { font-size: 0.82rem; color: var(--wh-grey); margin-top: 1rem; }
.wh-invalid input,
.wh-invalid select,
.wh-invalid textarea { border-color: #a33 !important; }
.wh-invalid > span { color: #a33; }

.wh-help {
	border-left: 3px solid var(--wh-gold);
	background: var(--wh-paper);
	padding: 1.1rem 1.3rem;
	margin-bottom: 1.75rem;
}
.wh-help h3 { font-size: 1.2rem; margin-bottom: 0.4em; }
.wh-help p { margin: 0; color: var(--wh-grey); }

/* ------------------------------------------------------------ blocks */

/* A statistic row — five figures, no rounding. */
.wh-stats { display: flex; flex-wrap: wrap; text-align: center; }
.wh-stat { flex: 1 1 9rem; padding: 1.25rem 0.5rem; }
.wh-stat__n {
	display: block;
	font-family: "Playfair Display", Georgia, serif;
	font-size: 2.4rem;
	line-height: 1;
	color: var(--wh-gold);
}
.wh-stat__l {
	display: block;
	margin-top: 0.5rem;
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	color: var(--wh-grey);
}
.licht .wh-stat__l { color: var(--wh-light); }

/* A named card — a room, a package, a space. */
.wh-card { background: #fff; height: 100%; display: flex; flex-direction: column; }
.wh-card picture { display: block; }
.wh-card img { width: 100%; height: auto; display: block; }
.wh-card__body { padding: 1.4rem 1.4rem 1.6rem; flex: 1 1 auto; display: flex; flex-direction: column; }
.wh-card__body h3 { margin-bottom: 0.35em; }
.wh-card__meta {
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--wh-gold);
	margin-bottom: 0.8rem;
}
.wh-card__body p { color: var(--wh-grey); }
.wh-card__foot { margin-top: auto; padding-top: 1rem; display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; flex-wrap: wrap; }
.wh-price { font-family: "Playfair Display", Georgia, serif; font-size: 1.35rem; color: var(--wh-darker); white-space: nowrap; }
.wh-price small { display: block; font-family: "Open Sans", sans-serif; font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.12em; color: var(--wh-grey); }

/* The plain list the donor uses for room features, kept plain. */
.wh-has { list-style: none; padding: 0; margin: 0 0 1rem; }
.wh-has li { position: relative; padding-left: 1.1rem; font-size: 0.88rem; color: var(--wh-grey); margin-bottom: 0.25rem; }
.wh-has li::before { content: ""; position: absolute; left: 0; top: 0.62em; width: 5px; height: 5px; background: var(--wh-gold); }

/* Two-column measured table — distances, gaming floor, opening hours. */
.wh-table { width: 100%; border-collapse: collapse; }
.wh-table th, .wh-table td { text-align: left; padding: 0.7rem 0.9rem 0.7rem 0; border-bottom: 1px solid var(--wh-light); vertical-align: top; }
.wh-table th { font-family: "Playfair Display", Georgia, serif; font-weight: 400; font-size: 1rem; white-space: nowrap; }
.wh-table td { color: var(--wh-grey); font-size: 0.9rem; }
.wh-table .wh-table__n { color: var(--wh-gold); white-space: nowrap; font-size: 0.9rem; }
.licht .wh-table th, .licht .wh-table td { border-bottom-color: rgba(255, 255, 255, 0.16); }
.licht .wh-table td { color: var(--wh-light); }
@media (max-width: 575px) {
	.wh-table th, .wh-table td { display: block; border-bottom: none; padding: 0.1rem 0; }
	.wh-table tr { display: block; border-bottom: 1px solid var(--wh-light); padding: 0.7rem 0; }
}

/* The helpline block — repeated on casino, promotions and host responsibility. */
.wh-helplines {
	border: 1px solid var(--wh-gold);
	padding: 1.4rem 1.5rem;
	background: var(--wh-paper);
}
.wh-helplines h3 { font-size: 1.15rem; }
.wh-helplines ul { list-style: none; padding: 0; margin: 0; }
.wh-helplines li { padding: 0.3rem 0; border-bottom: 1px dotted #d8d2c8; font-size: 0.9rem; }
.wh-helplines li:last-child { border-bottom: none; }
.wh-helplines strong { color: var(--wh-darker); }

/* This block keeps its own cream ground wherever it is placed, including inside
   a .licht section — and .licht paints every descendant white, which would make
   the helpline numbers invisible on it. These are the numbers the Gambling Act
   requires us to show, so they are pinned dark rather than left to inherit. */
.wh-helplines,
.licht .wh-helplines,
.licht .wh-helplines h3,
.licht .wh-helplines p,
.licht .wh-helplines li,
.licht .wh-helplines strong { color: var(--wh-darker); }
.licht .wh-helplines p,
.licht .wh-helplines .wh-foot-note { color: var(--wh-grey) !important; }
.wh-helplines a,
.licht .wh-helplines a:not(.btn-primary):not(.btn-primary-outline) { color: #8a6b47; text-decoration: underline; }
.wh-helplines a:hover,
.licht .wh-helplines a:not(.btn-primary):not(.btn-primary-outline):hover { color: var(--wh-darker); }

/* ---------------------------------------------- at a glance, the icon band */

/* The donor sizes these purely by the image file — roughly 90px wide, gold, and
   sitting in a col-3 beside two lines of text. Ours are drawn, so the sizing
   lives here instead. */
.icon-section .icon {
	display: block;
	width: 100%;
	max-width: 80px;
	height: auto;
	color: var(--wh-gold);
	margin: 0 auto;
}
.icon-section .content h3 {
	font-size: 1.12rem;
	margin-bottom: 0.15em;
	line-height: 1.3;
}
.icon-section .content p {
	margin: 0;
	color: var(--wh-grey);
	font-size: 0.88rem;
}
@media (max-width: 575px) {
	.icon-section .icon { max-width: 52px; }
	.icon-section .content h3 { font-size: 1rem; }
}

/* Numbered editorial sections — 01, 02, 03 down the left of the legal pages. */
.wh-num {
	display: block;
	font-family: "Playfair Display", Georgia, serif;
	font-size: 0.85rem;
	letter-spacing: 0.3em;
	color: var(--wh-gold);
	margin-bottom: 0.4rem;
}

/* Long-form legal copy. */
.wh-legal { max-width: 52rem; }
.wh-legal h2 { font-size: 1.6rem; margin-top: 2.2rem; }
.wh-legal h3 { font-size: 1.15rem; margin-top: 1.6rem; }
.wh-legal p, .wh-legal li { color: var(--wh-grey); }
.wh-legal__updated { font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.14em; color: var(--wh-gold); }

/* ----------------------------------------------------------- footer */

#footerbar.footerbar { background: var(--wh-darker); color: var(--wh-light); padding-top: 3rem; }
#footerbar.footerbar h3.widgettitle { color: #fff; font-size: 1.1rem; letter-spacing: 0.04em; }
#footerbar.footerbar p, #footerbar.footerbar li { color: var(--wh-light); font-size: 0.88rem; }
#footerbar.footerbar a { color: var(--wh-light); text-decoration: none; }
#footerbar.footerbar a:hover { color: var(--wh-gold); }
#footerbar.footerbar .btn-primary { color: #fff !important; }
.wh-foot-nav { list-style: none; padding: 0; margin: 0; }
.wh-foot-nav li { padding: 0.15rem 0; }
.wh-foot-note { font-size: 0.78rem !important; color: #9aa3a3 !important; }
.wh-foot-note p { font-size: 0.78rem !important; color: #9aa3a3 !important; }

.wh-disclaimer {
	border-top: 1px solid rgba(255, 255, 255, 0.14);
	margin-top: 1.5rem;
	padding-top: 1.5rem;
}
.wh-disclaimer p { font-size: 0.78rem !important; color: #9aa3a3 !important; line-height: 1.7; }
.wh-disclaimer a { color: var(--wh-gold) !important; text-decoration: underline; }

#footer { background: #000; padding: 1rem 0; }
#footer, #footer p, #footer span { color: #8b8f8f; font-size: 0.78rem; margin: 0; }
#footer a { color: #8b8f8f; text-decoration: none; }
#footer a:hover { color: var(--wh-gold); }
.wh-legal-menu { list-style: none; padding: 0; margin: 0; }
.wh-legal-menu li { display: inline-block; margin-right: 0.9rem; }
.wh-legal-menu li:last-child { margin-right: 0; }
.wh-r20-foot { text-transform: uppercase; letter-spacing: 0.1em; font-size: 0.7rem !important; color: var(--wh-gold) !important; }

/* ------------------------------------------------------------ misc */

/* The donor's hover blocks need a floor under them when we stack six. */
.hover-blocks-section .block-content-wrapper { min-height: 260px; }

/* A quiet rule between editorial blocks. */
.wh-rule { border: none; border-top: 1px solid var(--wh-light); margin: 2.5rem 0; }
.licht .wh-rule { border-top-color: rgba(255, 255, 255, 0.16); }

/* Pull-quote for the human lines that carry a page. */
.wh-quote {
	font-family: "Playfair Display", Georgia, serif;
	font-size: 1.5rem;
	line-height: 1.5;
	color: var(--wh-darker);
	border-left: 3px solid var(--wh-gold);
	padding-left: 1.4rem;
	margin: 2rem 0;
}
.licht .wh-quote { color: #fff; }

/* Coordinates and elevation under the hero title, harrier-style. */
.wh-coords {
	font-size: 0.72rem;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--wh-gold);
}

.wh-figure img { width: 100%; height: auto; display: block; }
.wh-figure figcaption { font-size: 0.78rem; color: var(--wh-grey); padding-top: 0.5rem; }
