/* ==========================================================
   Mooch Hotels – main stylesheet
   ========================================================== */

@font-face { font-family: "Playfair Display"; font-style: italic; font-weight: 600; font-display: swap; src: url("../fonts/playfair-display-latin-600-italic.woff2") format("woff2"); }
@font-face { font-family: "Pacifico"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/pacifico-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/poppins-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 500; font-display: swap; src: url("../fonts/poppins-latin-500-normal.woff2") format("woff2"); }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/poppins-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/poppins-latin-700-normal.woff2") format("woff2"); }

:root {
	--teal: #419282;
	--teal-dark: #2E7466;
	--orange: #F3B05C;
	--ink: #424242;
	--ink-soft: #5A5A5A;
	--card: #F8F9FB;
	--line: #E4E4E4;
	--white: #FFFFFF;
	--font: "Poppins", "Helvetica Neue", Helvetica, Arial, sans-serif;
	--page-pad: clamp(20px, 5vw, 80px);
	--content: 1300px;
}

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
	margin: 0;
	font-family: var(--font);
	font-size: 16px;
	line-height: 1.5;
	color: var(--ink);
	background: var(--white);
	-webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
a:hover { text-decoration: underline; }
button { font: inherit; }

:focus-visible { outline: 3px solid var(--orange); outline-offset: 3px; }

.icon {
	width: 1em; height: 1em;
	fill: none; stroke: currentColor; stroke-width: 2;
	stroke-linecap: round; stroke-linejoin: round;
	flex: none;
}

.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden;
	clip: rect(0 0 0 0); white-space: nowrap;
}

.skip-link {
	position: absolute; left: 12px; top: -60px; z-index: 100;
	background: var(--white); color: var(--ink); padding: 10px 16px; border-radius: 8px; font-weight: 600;
}
.skip-link:focus { top: 12px; }

/* ---------- Buttons ---------- */

.btn {
	display: inline-flex; align-items: center; justify-content: center;
	min-height: 46px; padding: 0 30px;
	font-size: 16px; font-weight: 600; line-height: 1;
	border-radius: 999px; border: 2px solid transparent;
	cursor: pointer; white-space: nowrap;
	transition: background-color .2s ease, color .2s ease;
}
.btn:hover { text-decoration: none; }
.btn--orange { background: var(--orange); color: var(--white); }
.btn--orange:hover { background: #E89E3F; }
.btn--outline { border-color: var(--white); color: var(--white); border-radius: 8px; font-weight: 700; }
.btn--outline:hover { background: var(--white); color: var(--ink); }

/* ---------- Logo ---------- */

.logo { display: inline-flex; align-items: center; gap: 14px; }
.logo:hover { text-decoration: none; }
.logo__mark {
	width: 48px; height: 48px; border-radius: 12px;
	background: var(--white); color: var(--teal);
	display: flex; align-items: center; justify-content: center;
	font-size: 30px;
}
.logo__mark .icon { stroke-width: 2.4; }
.logo__words { display: flex; flex-direction: column; align-items: center; line-height: 1; }
.logo__name { font-size: 36px; font-weight: 700; color: var(--white); letter-spacing: -1px; }
.logo__m { color: var(--orange); }
.logo__sub { font-size: 12px; font-weight: 700; color: var(--white); letter-spacing: 4px; margin-top: 2px; padding-left: 4px; }

/* ---------- Header ---------- */

.site-header { background: var(--teal); position: relative; z-index: 20; }
.site-header__inner {
	min-height: 80px; padding: 0 var(--page-pad);
	display: flex; align-items: center; gap: 24px;
}

.site-nav { margin-left: auto; display: flex; align-items: center; gap: 50px; }
.site-nav__list { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 28px; }
.site-nav__list a { display: inline-block; font-size: 16px; font-weight: 600; color: var(--white); padding: 8px 0; white-space: nowrap; }
.site-nav__list a::first-letter { color: var(--orange); }
.site-nav__list a:hover { text-decoration: none; color: var(--orange); }
.site-nav__list a[aria-current="page"],
.site-nav__list .current-menu-item > a { color: var(--orange); }
.site-nav__actions { display: flex; align-items: center; gap: 50px; }
.site-nav__login { display: inline-flex; align-items: center; gap: 6px; color: var(--white); font-weight: 600; min-height: 44px; }
.site-nav__login .icon { fill: currentColor; stroke: none; font-size: 16px; }

.menu-toggle {
	display: none; margin-left: auto;
	width: 46px; height: 46px; border: 0; border-radius: 10px;
	background: rgba(255,255,255,0.15); color: var(--white);
	font-size: 26px; cursor: pointer;
	align-items: center; justify-content: center;
}
.menu-toggle__close { display: none; }
.menu-toggle[aria-expanded="true"] .menu-toggle__open { display: none; }
.menu-toggle[aria-expanded="true"] .menu-toggle__close { display: inline-flex; }

@media (max-width: 1280px) {
	.site-nav { gap: 28px; }
	.site-nav__list { gap: 20px; }
	.site-nav__list a { font-size: 15px; }
	.site-nav__actions { gap: 24px; }
	.site-nav__actions .btn { padding: 0 22px; }
}

@media (max-width: 1360px) { /* menu button (was 1100px; room for the Corporate Stays button) */
	.menu-toggle { display: inline-flex; }
	.site-nav {
		display: none;
		position: absolute; left: 0; right: 0; top: 100%;
		background: var(--teal);
		flex-direction: column; align-items: stretch; gap: 20px;
		padding: 12px var(--page-pad) 28px;
		box-shadow: 0 16px 30px rgba(0,0,0,0.18);
	}
	.site-nav.is-open { display: flex; }
	.site-nav__list { flex-direction: column; gap: 0; }
	.site-nav__list a { display: block; padding: 14px 0; border-bottom: 1px solid rgba(255,255,255,0.15); font-size: 18px; }
	.site-nav__actions { justify-content: space-between; gap: 16px; }
}

/* ---------- Hero ---------- */

.hero {
	position: relative;
	background: #2F3433 var(--hero-img) center / cover no-repeat;
	color: var(--white);
}
.hero::before { content: ""; position: absolute; inset: 0; background: rgba(20,24,23,0.25); }
.hero__inner {
	position: relative;
	min-height: 663px;
	padding: 76px var(--page-pad) 0;
	display: flex; flex-direction: column;
}

.hero-search {
	display: flex; align-items: center; gap: 20px;
	width: 100%; min-height: 77px;
	padding: 10px 10px 10px 40px;
	background: var(--white);
	border: 1px solid #F3D3A8; border-radius: 999px;
}
.hero-search__field { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.hero-search__field label { font-size: 12px; font-weight: 700; letter-spacing: 1px; color: var(--teal); text-transform: uppercase; }
.hero-search__field input {
	border: 0; outline: none; padding: 0; background: transparent;
	font: inherit; font-size: 17px; color: var(--ink);
}
.hero-search__field input::placeholder { color: #8A8A8A; }
.hero-search__button {
	flex: none; width: 55px; height: 55px; border: 0; border-radius: 999px;
	background: var(--orange); color: var(--white);
	display: flex; align-items: center; justify-content: center;
	font-size: 22px; cursor: pointer;
	box-shadow: 0 4px 10px rgba(0,0,0,0.15);
	position: relative;
}
.hero-search__button .icon { stroke-width: 2.6; }
.hero-search__button::before {
	content: ""; position: absolute; left: -20px; top: 11px; bottom: 11px;
	width: 1px; background: var(--line);
}
.hero-search:focus-within { box-shadow: 0 0 0 3px rgba(243,176,92,0.6); }

.hero__intro { margin-top: auto; padding-bottom: 150px; max-width: 700px; }
.hero__welcome { margin: 0; font-size: 17px; font-weight: 700; }
.hero__title { margin: 12px 0 0; font-size: clamp(40px, 5vw, 60px); line-height: 1.1; font-weight: 700; letter-spacing: -1px; }
.hero__title span { color: var(--orange); }
.hero__text { margin: 22px 0 26px; font-size: 17px; line-height: 1.4; max-width: 560px; }

/* Live members tracker */
.members {
	position: absolute; left: 50%; bottom: 8px; transform: translateX(-50%);
	display: flex; align-items: center; gap: 20px;
	min-height: 110px; padding: 0 24px 0 20px;
	border: 1px solid var(--orange); border-radius: 40px;
	background: rgba(30,30,30,0.35);
	-webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px);
	white-space: nowrap;
}
.members__live {
	position: absolute; left: 36px; top: -14px;
	height: 26px; padding: 0 12px; border-radius: 999px;
	background: var(--teal); font-size: 12px; font-weight: 700; letter-spacing: 1.2px;
	display: flex; align-items: center; gap: 7px;
}
.members__dot { width: 8px; height: 8px; border-radius: 999px; background: var(--orange); animation: live-pulse 1.8s ease-out infinite; }
@keyframes live-pulse {
	0% { box-shadow: 0 0 0 0 rgba(243,176,92,0.8); }
	70% { box-shadow: 0 0 0 8px rgba(243,176,92,0); }
	100% { box-shadow: 0 0 0 0 rgba(243,176,92,0); }
}
.members__icon {
	width: 70px; height: 70px; border-radius: 999px; background: var(--orange);
	display: flex; align-items: center; justify-content: center; font-size: 36px;
}
.members__icon .icon { stroke-width: 2.2; }
.members__count { display: flex; flex-direction: column; line-height: 1.05; }
.members__number { font-size: 40px; font-weight: 700; color: var(--orange); font-variant-numeric: tabular-nums; min-width: 4.2ch; }
.members__label { font-size: 25px; font-weight: 500; }
.members__divider { width: 1px; height: 56px; background: rgba(255,255,255,0.6); }
.members__growing { font-size: 18px; line-height: 1.2; font-weight: 500; }
.members__trend { color: var(--orange); font-size: 34px; display: flex; }
.members__trend .icon { stroke-width: 2.4; }

@media (max-width: 900px) {
	.hero__inner { min-height: 0; padding-top: 32px; padding-bottom: 40px; }
	.hero__intro { margin-top: 64px; padding-bottom: 40px; }
	.members { position: relative; left: auto; bottom: auto; transform: none; align-self: flex-start; }
}
@media (max-width: 560px) {
	.hero-search { padding-left: 24px; min-height: 68px; }
	.hero-search__button { width: 48px; height: 48px; }
	.members { gap: 14px; padding: 14px 18px; border-radius: 28px; flex-wrap: wrap; white-space: normal; }
	.members__icon { width: 52px; height: 52px; font-size: 26px; }
	.members__number { font-size: 32px; }
	.members__label { font-size: 20px; }
	.members__divider, .members__trend { display: none; }
	.members__growing { width: 100%; font-size: 15px; }
	.members__growing br { display: none; }
}
@media (prefers-reduced-motion: reduce) {
	.members__dot { animation: none; }
}

/* ---------- Sections ---------- */

.section { padding: 34px var(--page-pad) 100px; }
.section-head { text-align: center; }
.section-head__kicker {
	margin: 0; display: inline-flex; align-items: center; gap: 18px;
	font-size: 16px; font-weight: 600; color: var(--ink-soft);
}
.section-head__kicker::before,
.section-head__kicker::after { content: ""; width: 32px; height: 2px; background: currentColor; }
.section-head__kicker--large { font-size: clamp(20px, 2.2vw, 26px); font-weight: 700; }
.section-head__title { margin: 18px 0 0; font-size: clamp(30px, 3.4vw, 42px); line-height: 1.2; font-weight: 700; letter-spacing: -0.5px; }
.section-head__title span { color: var(--orange); }

/* ---------- Location cards ---------- */

.loc-grid {
	list-style: none; margin: 88px auto 0; padding: 0;
	max-width: var(--content);
	display: flex; flex-wrap: wrap; justify-content: center; gap: 31px;
}
/* Three across; an unfinished last row is centred */
.loc-grid > li { flex: 0 0 calc((100% - 62px) / 3); min-width: 0; }

.loc-card {
	display: flex; flex-direction: column; height: 100%;
	background: var(--card); box-shadow: 0 2px 4px rgba(0,0,0,0.05);
	overflow: hidden;
}
.loc-card:hover { text-decoration: none; }
.loc-card__img {
	width: 100%; aspect-ratio: 412 / 255; height: auto; object-fit: cover;
	filter: grayscale(1);
	transition: filter .45s ease, transform .6s ease;
}
.loc-card:hover .loc-card__img,
.loc-card:focus-visible .loc-card__img { filter: grayscale(0); transform: scale(1.04); }
.loc-card__img--empty {
	display: flex; align-items: center; justify-content: center;
	background: #DADADA; color: #9A9A9A; font-size: 56px;
}
.loc-card__name {
	position: relative; z-index: 1; background: var(--card);
	min-height: 73px; padding: 12px;
	display: flex; align-items: center; justify-content: center;
	font-size: 21px; text-align: center;
}

/* Compact grid for long lists: four across, smaller labels */
.loc-grid--compact { gap: 24px; }
.loc-grid--compact > li { flex-basis: calc((100% - 72px) / 4); }
.loc-grid--compact .loc-card__name { min-height: 58px; font-size: 17px; }

@media (max-width: 1024px) {
	.loc-grid { gap: 24px; margin-top: 56px; }
	.loc-grid--compact > li { flex-basis: calc((100% - 48px) / 3); }
	.loc-grid > li { flex-basis: calc((100% - 24px) / 2); }
}
@media (max-width: 760px) {
	.loc-grid--compact > li { flex-basis: calc((100% - 24px) / 2); }
}
@media (max-width: 600px) {
	.loc-grid > li { flex-basis: 100%; }
	.loc-grid--compact { gap: 16px; }
	.loc-grid--compact > li { flex-basis: calc((100% - 16px) / 2); }
	.loc-grid--compact .loc-card__name { font-size: 15px; min-height: 52px; padding: 8px; }
	.loc-card__name { font-size: 19px; min-height: 60px; }
}
@media (prefers-reduced-motion: reduce) {
	.loc-card__img { transition: none; }
	.loc-card:hover .loc-card__img { transform: none; }
}

/* ---------- Testimonials ---------- */

.testimonials { padding-top: 40px; padding-bottom: 110px; }
.testimonial-grid {
	max-width: var(--content); margin: 110px auto 0;
	display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px;
	text-align: center;
}
.testimonial { margin: 0; display: flex; flex-direction: column; align-items: center; gap: 18px; }
.testimonial__mark { font-size: 76px; line-height: 0.75; height: 34px; font-weight: 700; color: var(--teal); }
.testimonial blockquote { margin: 0; font-size: 16px; line-height: 1.5; }
.testimonial figcaption { margin-top: 22px; font-size: 18px; font-weight: 700; }

@media (max-width: 1024px) { .testimonial-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 64px; row-gap: 56px; } }
@media (max-width: 600px) { .testimonial-grid { grid-template-columns: 1fr; } }

/* ---------- Footer ---------- */

.site-footer { margin-top: 60px; }
.site-footer__main {
	background: var(--teal); color: var(--white);
	padding: 50px var(--page-pad);
	display: flex; gap: 30px;
}
.site-footer__brand {
	flex: 0 0 290px; padding-right: 36px; border-right: 1px solid var(--orange);
	display: flex; flex-direction: column; gap: 18px;
}
.site-footer__brand p { margin: 0; font-size: 15px; line-height: 1.5; }
.site-footer__logo .logo__mark { width: 44px; height: 44px; font-size: 26px; }
.site-footer__logo .logo__name { font-size: 32px; }
.socials { list-style: none; margin: 0; padding: 0; display: flex; gap: 12px; }
.socials a {
	width: 44px; height: 44px; border-radius: 999px; border: 1px solid rgba(255,255,255,0.7);
	display: flex; align-items: center; justify-content: center; font-size: 17px;
}
.socials a:hover { background: rgba(255,255,255,0.12); }

.site-footer__right { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.footer-nav { list-style: none; margin: 0; padding: 0 0 28px; display: flex; border-bottom: 1px solid var(--orange); }
.footer-nav li { flex: 1 1 0; border-right: 1px solid var(--orange); }
.footer-nav li:last-child { border-right: 0; }
.footer-nav a { display: flex; flex-direction: column; align-items: center; gap: 12px; font-size: 17px; text-align: center; padding: 4px 8px; }
.footer-nav .icon { font-size: 34px; stroke-width: 1.8; }

.footer-stats { display: flex; padding-top: 28px; }
.footer-stat { flex: 1 1 0; display: flex; align-items: center; justify-content: center; gap: 16px; border-right: 1px solid var(--orange); }
.footer-stat:first-child { justify-content: flex-start; }
.footer-stat:last-child { border-right: 0; }
.footer-stat__icon {
	width: 50px; height: 50px; border-radius: 999px; border: 1px solid var(--white);
	display: flex; align-items: center; justify-content: center; font-size: 24px;
}
.footer-stat__text { display: flex; flex-direction: column; font-size: 16px; line-height: 1.3; }
.footer-stat__text strong { font-size: 32px; font-weight: 700; color: var(--orange); line-height: 1.1; }
.footer-stat__phone { color: var(--orange); font-size: 40px; display: flex; }
.footer-stat__phone .icon { fill: currentColor; stroke: none; }
.footer-stat__contact { font-size: 16px; line-height: 1.4; }

.site-footer__bottom {
	background: #F8F8F8; color: var(--ink);
	padding: 18px var(--page-pad);
	display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap;
	font-size: 14px;
}
.site-footer__bottom p { margin: 0; }
.site-footer__credits { color: var(--ink-soft); }

@media (max-width: 1100px) {
	.site-footer__main { flex-direction: column; gap: 36px; }
	.site-footer__brand { flex: none; border-right: 0; padding-right: 0; }
}
@media (max-width: 760px) {
	.footer-nav { flex-wrap: wrap; row-gap: 22px; }
	.footer-nav li { flex: 0 0 33.333%; border-right: 0; }
	.footer-stats { flex-direction: column; gap: 22px; }
	.footer-stat { justify-content: flex-start; border-right: 0; }
}

/* ---------- Basic pages ---------- */

.page__inner { max-width: 820px; margin: 0 auto; padding: 64px var(--page-pad) 40px; }
.entry__title { font-size: clamp(30px, 4vw, 42px); line-height: 1.2; margin: 0 0 24px; }
.entry__content { font-size: 17px; line-height: 1.7; }

/* ---------- Location pages ---------- */

.location-head { padding: 64px var(--page-pad) 8px; text-align: center; }
.location-head__search { max-width: 965px; margin: 0 auto; text-align: left; }
.location-head__search .hero-search { box-shadow: 0 18px 50px rgba(0,0,0,0.08); }
.location-head__title {
	margin: 64px 0 0;
	font-size: clamp(34px, 4.4vw, 58px); line-height: 1.15; font-weight: 700;
	color: var(--teal); letter-spacing: -1px;
}
.breadcrumb ol { list-style: none; margin: 26px 0 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; font-size: 16px; color: var(--ink-soft); }
.breadcrumb li + li::before { content: "›"; margin-right: 8px; color: #9A9A9A; }
.breadcrumb a { color: var(--ink-soft); }
.breadcrumb [aria-current="page"] { color: var(--orange); font-weight: 600; }

.location-intro { max-width: 820px; margin: 32px auto 0; padding: 0 var(--page-pad); font-size: 17px; line-height: 1.7; text-align: center; }
.location-cards { padding-top: 0; }
.location-cards .loc-grid { margin-top: 64px; }
.location-empty { text-align: center; font-size: 17px; color: var(--ink-soft); margin: 48px 0 0; }

@media (max-width: 600px) {
	.location-head { padding-top: 32px; }
	.location-head__title { margin-top: 40px; }
	.location-cards .loc-grid { margin-top: 40px; }
}

.location-head__sub { margin: 14px auto 0; max-width: 640px; font-size: 18px; color: var(--ink-soft); }

/* Phones and tablets have no hover, so show card photos in full colour there.
   Computers with a mouse keep black and white, turning to colour on hover. */
@media (hover: none) {
	.loc-card__img { filter: none; }
}

/* ---------- Golf course pages ---------- */

.btn--teal { background: var(--teal); color: var(--white); }
.btn--teal:hover { background: var(--teal-dark); }

.course-kicker { margin: 56px 0 0; font-size: 15px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; color: var(--orange); }
.course-page .location-head__title { margin-top: 10px; }

.course-info {
	max-width: 960px; margin: 48px auto 0; padding: 0 var(--page-pad);
	display: flex; gap: 32px; align-items: flex-start;
}
.course-info__photo { flex: 0 0 42%; aspect-ratio: 1.6; object-fit: cover; border-radius: 12px; }
.course-info__body { flex: 1; display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.course-info__label { margin: 0; font-size: 14px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; color: var(--ink-soft); }
.course-layouts { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.course-layouts li { padding: 6px 14px; border-radius: 999px; background: #E6F1EE; color: var(--teal-dark); font-weight: 600; font-size: 15px; }
.course-info__text { font-size: 16px; line-height: 1.7; }

.course-stays { padding-top: 72px; }
.course-note { max-width: 760px; margin: 32px auto 0; padding: 14px 18px; border-radius: 10px; background: #FFF6EA; text-align: center; font-size: 16px; }
.stay-list { list-style: none; max-width: 960px; margin: 40px auto 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.stay {
	display: flex; align-items: center; justify-content: space-between; gap: 20px;
	padding: 20px 24px; background: var(--card); border-radius: 12px; box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}
.stay__name { margin: 0; font-size: 19px; font-weight: 600; }
.stay__address { margin: 4px 0 0; color: var(--ink-soft); font-size: 15px; }
.stay__distance { margin: 6px 0 0; font-size: 14px; font-weight: 600; color: var(--teal-dark); }

@media (max-width: 760px) {
	.course-info { flex-direction: column; margin-top: 32px; }
	.course-info__photo { flex: none; width: 100%; }
	.stay { flex-direction: column; align-items: flex-start; }
	.stay .btn { width: 100%; }
}

/* Course photo banner */
.course-hero {
	position: relative;
	background: #2F3433 var(--hero-img) center / cover no-repeat;
	color: var(--white);
}
.course-hero::before {
	content: ""; position: absolute; inset: 0;
	background: linear-gradient(to bottom, rgba(20,24,23,0.15) 0%, rgba(20,24,23,0.25) 45%, rgba(20,24,23,0.65) 100%);
}
.course-hero__inner {
	position: relative; min-height: 460px;
	padding: 48px var(--page-pad) 44px;
	display: flex; flex-direction: column; justify-content: space-between; gap: 48px;
}
.course-hero .hero-search { max-width: 965px; width: 100%; margin: 0 auto; }
.course-hero__title { max-width: var(--content); width: 100%; margin: 0 auto; }
.course-kicker--light { margin: 0; color: var(--orange); }
.course-hero__name {
	margin: 8px 0 0; font-size: clamp(32px, 4.6vw, 58px); line-height: 1.1; font-weight: 700;
	letter-spacing: -1px; text-shadow: 0 2px 16px rgba(0,0,0,0.35);
}
.course-crumbs { padding: 22px var(--page-pad) 0; }
.course-crumbs .breadcrumb ol { margin-top: 0; }

@media (max-width: 760px) {
	.course-hero__inner { min-height: 340px; padding-top: 24px; padding-bottom: 28px; gap: 32px; }
}
.location-head__title--tight { margin-top: 10px; }

/* ---------- Banners stay put while the page slides up over them ---------- */
.hero,
.course-hero { position: sticky; top: 0; z-index: 0; }

main > *:not(.hero):not(.course-hero) { position: relative; z-index: 1; background: var(--white); display: flow-root; }
.site-footer { position: relative; z-index: 1; }

/* A soft edge where the page meets the banner */
.hero + *,
.course-hero + * { box-shadow: 0 -14px 28px rgba(0,0,0,0.14); }

/* ---------- Course map and hotel cards ---------- */
.course-map {
	max-width: var(--content); height: 440px; margin: 40px auto 0;
	border-radius: 14px; overflow: hidden; background: #E3EEEA; z-index: 0;
}
.course-map__key { max-width: var(--content); margin: 10px auto 0; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; font-size: 14px; color: var(--ink-soft); }
.pin-key { display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; }
.pin-key--course { width: 16px; height: 16px; background: var(--orange); border: 2px solid var(--white); box-shadow: 0 0 0 1px var(--orange); }
.pin-key--hotel { width: 20px; height: 20px; margin-left: 12px; background: var(--teal); color: var(--white); font-size: 11px; font-weight: 700; }

.leaflet-marker-icon.mooch-pin { display: flex; align-items: center; justify-content: center; border-radius: 999px; border: 3px solid var(--white); box-shadow: 0 2px 8px rgba(0,0,0,0.3); }
.leaflet-marker-icon.mooch-pin--hotel { background: var(--teal); color: var(--white); font: 700 13px/1 var(--font); }
.leaflet-marker-icon.mooch-pin--course { background: var(--orange); color: var(--white); }
.mooch-pin--course svg { width: 20px; height: 20px; fill: currentColor; stroke: currentColor; stroke-width: 1.5; stroke-linejoin: round; }
.leaflet-popup-content { font: 14px/1.45 var(--font); }
.leaflet-container .leaflet-popup-content a { color: var(--teal-dark); font-weight: 600; }
.mooch-pop-dist { color: var(--ink-soft); }

.stay-grid {
	list-style: none; max-width: var(--content); margin: 36px auto 0; padding: 0;
	display: flex; flex-wrap: wrap; justify-content: center; gap: 28px;
}
.stay-card { flex: 0 0 calc((100% - 56px) / 3); min-width: 0; display: flex; flex-direction: column; background: var(--card); border-radius: 12px; overflow: hidden; box-shadow: 0 2px 4px rgba(0,0,0,0.05); }
.stay-card__media { position: relative; aspect-ratio: 1.6; background: #DADADA; }
.stay-card__media img { width: 100%; height: 100%; object-fit: cover; }
.stay-card__placeholder { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; color: #8E8E8E; font-size: 14px; }
.stay-card__placeholder .icon { font-size: 44px; }
.stay-card__num {
	position: absolute; left: 12px; top: 12px; width: 32px; height: 32px; border-radius: 999px;
	background: var(--teal); color: var(--white); border: 3px solid var(--white);
	display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 14px;
}
.stay-card__body { padding: 18px 20px 22px; display: flex; flex-direction: column; flex: 1; }
.stay-card__body .btn { margin-top: auto; align-self: flex-start; }
.stay-card__body .stay__distance { margin-bottom: 16px; }

@media (max-width: 1024px) {
	.stay-card { flex-basis: calc((100% - 28px) / 2); }
	.course-map { height: 380px; }
}
@media (max-width: 600px) {
	.stay-card { flex-basis: 100%; }
	.stay-card__body .btn { width: 100%; }
	.course-map { height: 320px; border-radius: 10px; }
}

/* ---------- Buttons (extra) ---------- */
.btn--ghost { background: var(--white); color: var(--teal-dark); border-color: var(--teal); }
.btn--ghost:hover { background: #E6F1EE; }

/* ---------- Search bar Filters dropdown ---------- */
.hero-search--filters { position: relative; }
.filters-btn {
	flex: none; display: inline-flex; align-items: center; gap: 8px; height: 46px; padding: 0 16px;
	border: 1px solid #D5DBD9; border-radius: 999px; background: var(--white); color: var(--ink);
	font: inherit; font-size: 15px; font-weight: 600; cursor: pointer;
}
.filters-btn .icon { font-size: 18px; }
.filters-btn.is-active, .hero-search.is-open .filters-btn { background: #E6F1EE; color: var(--teal-dark); border-color: var(--teal); }
.filters-btn__count {
	min-width: 22px; height: 22px; padding: 0 6px; box-sizing: border-box; border-radius: 999px;
	background: var(--orange); color: var(--white); font-size: 12px; font-weight: 700;
	display: inline-flex; align-items: center; justify-content: center;
}
.filters-btn__count[hidden] { display: none; }
.filter-panel {
	position: absolute; left: 0; right: 0; top: calc(100% + 12px); z-index: 50;
	background: var(--white); color: var(--ink); text-align: left;
	border: 1px solid #ECEEEE; border-radius: 20px; box-shadow: 0 24px 60px rgba(0,0,0,0.22);
	padding: 24px 28px 18px;
}
.filter-panel[hidden] { display: none; }
.filter-panel__cols { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 20px; }
.filter-group { margin: 0; padding: 0; border: 0; min-width: 0; }
.filter-group legend { padding: 0; margin-bottom: 10px; font-size: 13px; font-weight: 700; letter-spacing: 0.8px; text-transform: uppercase; color: var(--teal); }
.filter-opt { display: flex; align-items: center; gap: 10px; min-height: 34px; font-size: 14px; cursor: pointer; border-radius: 6px; }
.filter-opt input { width: 18px; height: 18px; margin: 0; accent-color: var(--teal); flex: none; }
.filter-opt__label { flex: 1; }
.filter-opt__count { font-size: 12px; color: #8A8A8A; }
.filter-panel__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 16px; padding-top: 14px; border-top: 1px solid #ECEEEE; }
.filter-panel__clear { border: 0; background: none; padding: 8px 4px; font: inherit; font-size: 15px; font-weight: 600; color: var(--teal-dark); text-decoration: underline; cursor: pointer; }
.filter-panel__actions { display: flex; gap: 10px; }

@media (max-width: 1100px) { .filter-panel__cols { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 760px) {
	.filters-btn__text { display: none; }
	.filters-btn { padding: 0 12px; }
	.filter-panel { position: fixed; left: 0; right: 0; top: auto; bottom: 0; max-height: 85vh; overflow-y: auto; border-radius: 20px 20px 0 0; padding: 20px; }
	.filter-panel__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.filter-panel__foot { position: sticky; bottom: -20px; background: var(--white); padding-bottom: 8px; }
}

/* ---------- Results page ---------- */
.results-head { padding: 28px var(--page-pad) 6px; border-bottom: 1px solid #ECEEEE; position: relative; z-index: 5; }
.results-head__search { max-width: 965px; margin: 0 auto; }
.results-head .hero-search { box-shadow: 0 14px 40px rgba(0,0,0,0.07); }
.chips { max-width: 1280px; margin: 14px auto 8px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.chip { display: inline-flex; align-items: center; gap: 8px; height: 34px; padding: 0 12px 0 14px; border-radius: 999px; background: #E6F1EE; color: var(--teal-dark); font-size: 14px; font-weight: 600; }
.chip:hover { text-decoration: none; background: #D4E8E2; }
.chip .icon { font-size: 13px; stroke-width: 2.6; }
.chips__clear { font-size: 14px; font-weight: 600; color: var(--ink-soft); text-decoration: underline; padding: 6px; }

.results { display: flex; gap: 32px; align-items: flex-start; padding: 28px var(--page-pad) 80px; }
.results__list { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 18px; }
.results__bar { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.results__title { margin: 0; font-size: clamp(24px, 2.4vw, 30px); line-height: 1.2; font-weight: 700; }
.results__sub { margin: 6px 0 0; font-size: 15px; color: var(--ink-soft); }
.results__sort { display: flex; align-items: center; gap: 8px; font-size: 14px; color: var(--ink-soft); }
.results__sort select { height: 42px; padding: 0 10px; border: 1px solid #D5DBD9; border-radius: 10px; font: inherit; font-size: 14px; color: var(--ink); background: var(--white); }
.results__empty { padding: 48px 24px; border-radius: 14px; background: var(--card); text-align: center; }
.results__empty-title { margin: 0 0 6px; font-size: 18px; font-weight: 600; }
.results__map { flex: 0 0 min(40%, 520px); position: sticky; top: 20px; }
.results-map { height: calc(100vh - 40px); max-height: 900px; min-height: 420px; margin: 0; }

.result-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 18px; }
.result-card { display: flex; min-height: 220px; border: 1px solid #E6EAE9; border-radius: 16px; overflow: hidden; background: var(--white); transition: box-shadow .2s ease, border-color .2s ease; }
.result-card:hover, .result-card:focus-within { border-color: var(--teal); box-shadow: 0 12px 30px rgba(0,0,0,0.10); }
.result-card__media { position: relative; flex: 0 0 280px; background: #DADADA; }
.result-card__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.result-card__band { position: absolute; left: 12px; top: 12px; height: 30px; padding: 0 12px; border-radius: 999px; background: var(--white); color: var(--teal-dark); font-size: 14px; font-weight: 700; display: flex; align-items: center; }
.result-card__body { flex: 1; min-width: 0; padding: 18px 22px; display: flex; flex-direction: column; gap: 6px; }
.result-card__type { margin: 0; font-size: 13px; font-weight: 600; letter-spacing: 0.6px; text-transform: uppercase; color: var(--ink-soft); }
.result-card__name { margin: 0; font-size: 21px; line-height: 1.25; }
.result-card__place { margin: 0; font-size: 14px; color: var(--teal-dark); }
.result-card__tags { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.result-card__tags li { height: 26px; padding: 0 10px; border-radius: 999px; background: #F2F4F4; color: var(--ink-soft); font-size: 13px; display: inline-flex; align-items: center; }
.result-card__foot { margin-top: auto; padding-top: 10px; display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.result-card__price { margin: 0; font-size: 14px; color: var(--ink-soft); }
.result-card__actions { display: flex; gap: 8px; }
.result-card__actions .btn { min-height: 42px; padding: 0 18px; font-size: 15px; }
.pager { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 10px; font-size: 15px; color: var(--ink-soft); }

.leaflet-marker-icon.mooch-pin--wide { border-radius: 999px; font-size: 12px; }
.leaflet-marker-icon.mooch-pin--centre { background: var(--orange); border: 3px solid var(--white); }
.leaflet-marker-icon.mooch-pin.is-hot { background: var(--orange); transform-origin: center; }

@media (max-width: 1024px) {
	.results { flex-direction: column-reverse; }
	.results__map { position: relative; top: 0; flex: none; width: 100%; }
	.results-map { height: 340px; }
}
@media (max-width: 640px) {
	.result-card { flex-direction: column; }
	.result-card__media { flex: none; aspect-ratio: 1.6; }
	.result-card__actions { width: 100%; }
	.result-card__actions .btn { flex: 1; }
}

/* ---------- Hotel page ---------- */
.hotel-body { max-width: var(--content); margin: 40px auto 80px; padding: 0 var(--page-pad); display: flex; gap: 40px; align-items: flex-start; }
.hotel-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }
.hotel-photo-empty { width: 100%; aspect-ratio: 2.4; border-radius: 14px; background: #EEF2F1; color: #8E8E8E; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; font-size: 14px; }
.hotel-photo-empty .icon { font-size: 44px; }
.hotel-text { font-size: 17px; line-height: 1.7; }
.hotel-label { margin: 14px 0 0; font-size: 14px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; color: var(--ink-soft); }
.hotel-golf { margin: 0; font-size: 16px; }
.hotel-golf a { color: var(--teal-dark); font-weight: 600; text-decoration: underline; }
.hotel-map { width: 100%; height: 360px; margin: 0; }
.hotel-side { flex: 0 0 340px; position: sticky; top: 20px; padding: 24px; border-radius: 16px; background: var(--card); box-shadow: 0 2px 6px rgba(0,0,0,0.05); display: flex; flex-direction: column; gap: 12px; }
.hotel-price { margin: 0; font-size: 15px; color: var(--ink-soft); display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.hotel-price__band { height: 32px; padding: 0 12px; border-radius: 999px; background: #E6F1EE; color: var(--teal-dark); font-weight: 700; display: inline-flex; align-items: center; }
.hotel-book { width: 100%; }
.hotel-small { margin: 0; font-size: 13px; color: var(--ink-soft); }
.hotel-facts { margin: 6px 0 0; display: grid; gap: 4px 0; }
.hotel-facts dt { font-size: 13px; font-weight: 600; letter-spacing: 0.6px; text-transform: uppercase; color: var(--ink-soft); margin-top: 8px; }
.hotel-facts dd { margin: 0; font-size: 15px; }
.hotel-facts a { color: var(--teal-dark); font-weight: 600; }
.hotel-claim { margin: 8px 0 0; padding-top: 12px; border-top: 1px solid #E4E8E7; font-size: 14px; color: var(--ink-soft); }
.hotel-claim a { color: var(--teal-dark); font-weight: 600; text-decoration: underline; }
@media (max-width: 900px) {
	.hotel-body { flex-direction: column-reverse; }
	.hotel-side { position: relative; top: 0; flex: none; width: 100%; box-sizing: border-box; }
}
main.results-page > .results-head { z-index: 5; }

/* Side-by-side sections keep their layout under the "cover the banner" rule,
   and span the full width (padding instead of outer margins) so no banner shows at the edges. */
main > .results:not(.hero),
main > .hotel-body:not(.hero),
main > .course-info:not(.hero) { display: flex; }
main > .hotel-body:not(.hero) {
	max-width: none; margin: 0;
	padding: 40px max(var(--page-pad), calc((100% - 1300px) / 2)) 80px;
}
main > .course-info:not(.hero) {
	max-width: none; margin: 0;
	padding: 48px max(var(--page-pad), calc((100% - 960px) / 2)) 0;
}
@media (max-width: 900px) { main > .hotel-body:not(.hero) { flex-direction: column-reverse; } }
@media (max-width: 1024px) { main > .results:not(.hero) { flex-direction: column-reverse; } }
@media (max-width: 760px) { main > .course-info:not(.hero) { flex-direction: column; padding-top: 32px; } }

/* The Filters panel may be wider than the search bar it opens from */
@media (min-width: 761px) {
	.hero-search--filters .filter-panel {
		left: 50%; right: auto; transform: translateX(-50%);
		width: min(1240px, calc(100vw - 40px));
	}
}

/* Map not ready yet */
.map-pending { height: 100%; min-height: 420px; border-radius: 14px; background: #EEF3F1; color: var(--ink-soft); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; text-align: center; padding: 24px; box-sizing: border-box; }
.map-pending .icon { font-size: 34px; color: var(--teal); }
.map-pending strong { color: var(--ink); font-size: 17px; }
.map-pending--short { min-height: 160px; width: 100%; }
@media (max-width: 1024px) { .map-pending { min-height: 160px; } }

/* Filter chips on location pages */
.location-chips { padding: 0 var(--page-pad); }
.location-chips .chips { margin-top: 18px; margin-bottom: 0; }
main > .has-open-panel, .hero.has-open-panel, .course-hero.has-open-panel { z-index: 40 !important; }

/* Filters + Sort by, side by side above the results */
.results__tools { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.results__tools .filters-btn { height: 42px; }
@media (max-width: 640px) {
	.results__tools { width: 100%; }
	.results__tools .filters-btn__text { display: inline; }
	.results__tools .filters-btn { flex: 1; justify-content: center; }
	.results__sort { flex: 1.4; }
	.results__sort select { flex: 1; min-width: 0; }
}

/* Things to do nearby */
.nearby { width: 100%; margin-top: 18px; padding-top: 22px; border-top: 1px solid #E6EAE9; display: flex; flex-direction: column; gap: 10px; }
.nearby[hidden] { display: none; }
.nearby__title { margin: 0; font-size: 24px; font-weight: 700; }
.nearby .hotel-label { margin-top: 8px; }
.nearby-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.nearby-list[hidden] { display: none; }
.nearby-item { display: flex; flex-direction: column; gap: 2px; padding: 14px 16px; border-radius: 12px; background: var(--card); }
.nearby-item__type { font-size: 12px; font-weight: 600; letter-spacing: 0.6px; text-transform: uppercase; color: var(--ink-soft); }
.nearby-item__name { font-size: 16px; font-weight: 600; color: var(--teal-dark); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.nearby-item__dist { font-size: 14px; color: var(--ink-soft); }
.nearby__loading { margin: 0; font-size: 15px; color: var(--ink-soft); }
.nearby__credit { margin: 4px 0 0; font-size: 12px; color: var(--ink-soft); }
.nearby__credit a { color: inherit; text-decoration: underline; }
@media (max-width: 600px) { .nearby-list { grid-template-columns: 1fr; } }
.see-all { text-align: center; margin: 44px 0 0; }
.nearby-item--pick { background: #FFF6EA; }
.nearby-item__name--plain { text-decoration: none; color: var(--ink); }

/* Admin-only check box on hotel pages */
.admin-diag { max-width: var(--content); margin: 0 auto 60px; padding: 16px 20px; border: 2px dashed #C9A54A; border-radius: 12px; background: #FFFBEF; font-size: 14px; line-height: 1.6; position: relative; z-index: 1; }
.admin-diag summary { font-weight: 700; cursor: pointer; }
.admin-diag ol { margin: 10px 0 0; padding-left: 20px; }

/* Reviews link on hotel pages */
.hotel-reviews { width: 100%; gap: 8px; }
.hotel-reviews .icon { font-size: 18px; color: var(--orange); fill: var(--orange); stroke: var(--orange); }

/* Result card footer: price on its own line, buttons below (they wrap on narrow cards) */
.result-card__foot { flex-direction: column; align-items: stretch; gap: 10px; }
.result-card__actions { flex-wrap: wrap; width: 100%; }
.result-card__actions .btn { flex: 1 1 auto; }
.result-card__actions .btn--ghost { flex: 0 1 auto; }
@media (max-width: 640px) { .result-card__actions .btn, .result-card__actions .btn--ghost { flex: 1 1 100%; } }

/* When the results column is narrow (e.g. a laptop with the map beside it), stack each card: photo on top */
.results__list { container-type: inline-size; }
@container (max-width: 700px) {
	.result-card { flex-direction: column; }
	.result-card__media { flex: none; aspect-ratio: 2.2; }
}
@container (max-width: 420px) {
	.result-card__media { aspect-ratio: 1.6; }
	.result-card__actions .btn, .result-card__actions .btn--ghost { flex: 1 1 100%; }
}
.results__list { align-self: stretch; width: 100%; }
@media (min-width: 1025px) { .results__list { width: auto; } }

/* ---------- About page ---------- */
.about-page { color: var(--ink); }
.about-page .hl { color: var(--orange); }
.about-split {
	max-width: var(--content); margin: 0 auto; padding: 100px var(--page-pad);
	display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 72px; align-items: center;
}
.about-split--reverse .about-frame { order: 2; }
.about-frame { border: 3px solid #E9EBEB; border-radius: 30px; padding: 26px; background: var(--white); }
.about-frame img { display: block; width: 100%; border-radius: 16px; }
.about-title { margin: 0 0 24px; font-size: clamp(30px, 3.3vw, 48px); line-height: 1.25; font-weight: 700; letter-spacing: -0.5px; }
.about-title--centre { text-align: center; }
.about-text p, .about-text li { font-size: 18px; line-height: 1.75; }
.about-text p { margin: 0 0 18px; }
.about-text ul { margin: 0 0 22px; padding-left: 1.3em; }
.about-text li { margin-bottom: 14px; }
.about-note { color: var(--teal-dark); font-size: 19px; }
main.about-page > .about-band { background: #F7F8F9; }
.about-model { max-width: var(--content); margin: 0 auto; padding: 100px var(--page-pad) 40px; text-align: center; }
.about-lead { margin: 0 0 28px; font-size: 18px; }
.about-how { margin: 0; font-size: clamp(26px, 2.6vw, 38px); font-weight: 700; color: var(--teal); }
.about-cards { max-width: var(--content); margin: 0 auto; padding: 20px var(--page-pad) 40px; display: flex; flex-direction: column; gap: 28px; }
.about-card { border: 2px solid #E4E6E6; border-radius: 28px; padding: 34px 52px; }
.about-card p { margin: 0; font-size: 18px; line-height: 1.7; }
.about-card strong { color: var(--teal); }
.about-cta-wrap { padding: 60px var(--page-pad) 110px; }
.about-cta {
	position: relative; max-width: var(--content); margin: 0 auto; padding: 130px 40px; border-radius: 30px; overflow: hidden;
	background: #2C2C2C center / cover no-repeat; color: var(--white); text-align: center;
}
.about-cta::before { content: ""; position: absolute; inset: 0; background: rgba(15, 15, 15, 0.72); }
.about-cta > * { position: relative; }
.about-cta h2 { margin: 0 0 22px; font-size: clamp(32px, 4vw, 58px); line-height: 1.15; font-weight: 700; }
.about-cta p { max-width: 900px; margin: 0 auto 30px; font-size: 18px; line-height: 1.6; }
.about-cta p:last-child { margin-bottom: 0; }
.about-cta .btn { min-width: 220px; }

@media (max-width: 900px) {
	.about-split { grid-template-columns: 1fr; gap: 36px; padding: 60px var(--page-pad); }
	.about-split--reverse .about-frame { order: 0; }
	.about-frame { padding: 14px; border-radius: 22px; }
	.about-model { padding-top: 60px; }
	.about-card { padding: 24px 24px; border-radius: 20px; }
	.about-cta { padding: 80px 24px; border-radius: 22px; }
}
main.about-page > .about-split:not(.hero) { display: grid; }
.about-page p:empty { display: none; }
main.about-page > .about-cards:not(.hero) { display: flex; }

/* ---------- Become A Host page ---------- */
.host-page { color: var(--ink); }
.host-page h2 span, .host-hero__title span { color: var(--orange); }
.host-kicker { margin: 0 0 12px; font-size: 14px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--orange); }
.host-btn { min-height: 56px; padding: 0 30px; font-size: 16px; }
.host-h2 { margin: 0 0 16px; text-align: center; font-size: clamp(30px, 3.4vw, 48px); line-height: 1.2; font-weight: 700; }
.host-sub { max-width: 720px; margin: 0 auto 44px; text-align: center; font-size: 19px; line-height: 1.6; color: var(--ink-soft); }

/* 1. Opening */
main.host-page > .host-hero:not(.hero) { background: var(--teal); color: var(--white); }
.host-hero__inner { max-width: var(--content); margin: 0 auto; padding: 80px var(--page-pad) 90px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 60px; align-items: center; }
.host-hero .host-kicker { color: #FFD9A6; }
.host-hero__title { margin: 0 0 20px; font-size: clamp(34px, 4.2vw, 58px); line-height: 1.1; font-weight: 700; letter-spacing: -1px; }
.host-hero__title span { color: var(--orange); }
.host-hero__lead { margin: 0 0 30px; font-size: 19px; line-height: 1.6; opacity: .95; }
.host-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 22px; }
.host-hero__more { color: var(--white); font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
.host-hero__price { margin: 22px 0 0; font-size: 15px; opacity: .85; }
.host-video { position: relative; aspect-ratio: 16 / 9; border-radius: 22px; overflow: hidden; background: #222 var(--poster) center / cover no-repeat; box-shadow: 0 24px 60px rgba(0,0,0,0.28); border: 6px solid rgba(255,255,255,0.9); }
.host-video iframe, .host-video video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: #000; }
.host-video video { object-fit: cover; background: #fafaf7; } /* fill the frame: no black bars at the sides */
.host-video__play, .host-video__soon { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; border: 0; background: rgba(0,0,0,0.12); cursor: pointer; }
.host-video__soon { cursor: default; background: rgba(0,0,0,0.25); }
.host-video__btn { width: 86px; height: 86px; border-radius: 999px; background: var(--orange); color: var(--white); display: flex; align-items: center; justify-content: center; box-shadow: 0 8px 24px rgba(0,0,0,0.3); transition: transform .2s ease; }
.host-video__btn .icon { font-size: 34px; fill: currentColor; margin-left: 4px; }
.host-video__play:hover .host-video__btn, .host-video__play:focus-visible .host-video__btn { transform: scale(1.08); }
.host-video__btn--off { background: rgba(255,255,255,0.85); color: var(--teal-dark); }
.host-video__subs { position: absolute; left: 6%; right: 6%; bottom: 15%; height: 0; z-index: 3; pointer-events: none; opacity: 0; transition: opacity .2s; }
.host-video.is-playing .host-video__subs { opacity: 1; }
.host-video__subs.is-off { opacity: 0 !important; }
.host-video__cue { position: absolute; left: 0; right: 0; bottom: 0; margin: 0 auto; width: fit-content; max-width: 100%; text-align: center; color: #fff; background: rgba(20, 30, 28, .72); border-radius: 6px; padding: 3px 10px; font-size: clamp(12px, 2.1vw, 20px); line-height: 1.3; font-weight: 500; opacity: 0; }
.host-video__cue.is-on { opacity: 1; }
.host-video__cc { position: absolute; top: 12px; right: 12px; z-index: 4; border: 0; border-radius: 999px; padding: 4px 10px; font: inherit; font-size: 12px; font-weight: 700; letter-spacing: .04em; background: rgba(20, 30, 28, .6); color: #fff; cursor: pointer; }
.host-video__cc.is-on { background: var(--orange); color: #1F2E2B; }
.host-hero__join { margin: 22px 0 0; text-align: center; }
.host-hero__join .host-btn { min-width: min(100%, 340px); }
.host-video__label { padding: 6px 14px; border-radius: 999px; background: rgba(0,0,0,0.55); color: var(--white); font-weight: 600; font-size: 15px; }

/* 2. Story */
.host-story__inner { max-width: 780px; margin: 0 auto; padding: 100px var(--page-pad) 90px; font-size: 19px; line-height: 1.75; }
.host-story__inner p { margin: 0 0 22px; }
.host-story__open { font-size: 23px; line-height: 1.55; font-weight: 500; }
.host-say { margin: 34px 0 !important; padding-left: 22px; border-left: 5px solid var(--teal); font-size: clamp(24px, 2.6vw, 32px); line-height: 1.3; font-weight: 700; color: var(--teal-dark); }
.host-say--orange { border-left-color: var(--orange); color: var(--ink); }
.host-story__when { font-style: italic; color: var(--ink-soft); }
.host-story__close { font-size: 23px; font-weight: 600; }

/* 3. Welcome */
main.host-page > .host-welcome:not(.hero) { background: #FFF8EE; }
.host-welcome { padding: 90px var(--page-pad); }
.host-tiles { list-style: none; max-width: var(--content); margin: 0 auto; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.host-tile { display: flex; flex-direction: column; align-items: center; gap: 16px; padding: 34px 20px; border-radius: 22px; background: var(--white); box-shadow: 0 6px 20px rgba(0,0,0,0.06); text-align: center; }
.host-tile__icon { width: 70px; height: 70px; border-radius: 999px; background: #E6F1EE; color: var(--teal); display: flex; align-items: center; justify-content: center; }
.host-tile__icon .icon { font-size: 32px; }
.host-tile__text { font-size: 19px; font-weight: 600; }

/* 4. How it works */
.host-how__inner { max-width: var(--content); margin: 0 auto; padding: 100px var(--page-pad); }
.host-cards { list-style: none; margin: 40px 0 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 24px; }
.host-card { flex: 0 1 calc((100% - 48px) / 3); box-sizing: border-box; padding: 32px 30px; border: 2px solid #E4E6E6; border-radius: 24px; }
.host-card__icon { width: 56px; height: 56px; border-radius: 16px; background: var(--teal); color: var(--white); display: flex; align-items: center; justify-content: center; margin-bottom: 18px; }
.host-card__icon .icon { font-size: 26px; }
.host-card h3 { margin: 0 0 8px; font-size: 21px; font-weight: 700; }
.host-card p { margin: 0; font-size: 16px; line-height: 1.65; color: var(--ink-soft); }

/* 5. Offer */
main.host-page > .host-offer:not(.hero) { background: #F7F8F9; }
.host-offer { padding: 90px var(--page-pad); }
.host-offer__card { max-width: 620px; margin: 0 auto; padding: 50px 44px; border-radius: 28px; background: var(--white); box-shadow: 0 20px 50px rgba(0,0,0,0.08); border-top: 8px solid var(--orange); text-align: center; }
.host-offer__price { margin: 0; font-size: clamp(34px, 4vw, 50px); font-weight: 700; color: var(--teal-dark); line-height: 1.1; }
.host-offer__until { margin: 8px 0 26px; font-size: 17px; color: var(--ink-soft); }
.host-offer__list { list-style: none; margin: 0 auto 22px; padding: 0; max-width: 420px; text-align: left; }
.host-offer__list li { position: relative; padding: 8px 0 8px 34px; font-size: 17px; border-bottom: 1px solid #EEF0F0; }
.host-offer__list li::before { content: ""; position: absolute; left: 4px; top: 13px; width: 16px; height: 9px; border-left: 3px solid var(--teal); border-bottom: 3px solid var(--teal); transform: rotate(-45deg); }
.host-offer__note { margin: 0 0 26px; font-size: 16px; font-style: italic; color: var(--ink-soft); }
.host-admin-note { margin: 18px 0 0; padding: 10px 14px; border: 2px dashed #C9A54A; border-radius: 10px; background: #FFFBEF; font-size: 14px; }

/* 6. Balance */
.host-balance { max-width: 820px; margin: 0 auto; padding: 100px var(--page-pad) 70px; text-align: center; font-size: 19px; line-height: 1.7; }
.host-balance p { margin: 0 0 16px; }
.host-balance__lead { font-size: 22px; color: var(--ink-soft); }
.host-balance__big { font-size: clamp(30px, 3.6vw, 46px) !important; font-weight: 700; line-height: 1.2; color: var(--teal-dark); }
.host-balance__end { font-size: 22px; font-weight: 600; color: var(--orange); }

/* 7. FAQ */
main.host-page > .host-faq:not(.hero) { background: #F7F8F9; }
.host-faq__inner { max-width: 940px; margin: 0 auto; padding: 90px var(--page-pad); }
.host-faq__list { margin-top: 36px; border-top: 1px solid #DDE1E0; }
.faq { border-bottom: 1px solid #DDE1E0; }
.faq summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 24px 4px; cursor: pointer; font-size: 19px; font-weight: 600; color: var(--ink); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary:hover { color: var(--teal-dark); }
.faq summary:focus-visible { outline: 3px solid var(--orange); outline-offset: 2px; border-radius: 6px; }
.faq__icon { position: relative; flex: none; width: 30px; height: 30px; border-radius: 999px; background: var(--teal); }
.faq__icon::before, .faq__icon::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 2.5px; background: var(--white); transform: translate(-50%, -50%); transition: transform .2s ease; }
.faq__icon::after { transform: translate(-50%, -50%) rotate(90deg); }
.faq[open] .faq__icon { background: var(--orange); }
.faq[open] .faq__icon::after { transform: translate(-50%, -50%) rotate(0deg); }
.faq__body { padding: 0 4px 22px; font-size: 17px; line-height: 1.7; color: var(--ink-soft); }
.faq__body p { margin: 0 0 12px; }
.faq__body strong { color: var(--ink); }

/* 8. Final */
.host-final .about-cta h2 { margin-bottom: 18px; }

@media (max-width: 1000px) {
	.host-hero__inner { grid-template-columns: 1fr; gap: 40px; padding-top: 50px; padding-bottom: 60px; }
	.host-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.host-card { flex-basis: calc((100% - 24px) / 2); }
}
@media (max-width: 600px) {
	.host-tiles { gap: 14px; }
	.host-tile { padding: 24px 12px; }
	.host-card { flex-basis: 100%; }
	.host-offer__card { padding: 36px 22px; }
	.host-story__inner, .host-balance, .host-how__inner { padding-top: 64px; padding-bottom: 56px; }
	.host-btn { width: 100%; }
}

/* ---------- Floating Become A Host button ---------- */
.float-host {
	position: fixed; right: 28px; bottom: calc(28px + env(safe-area-inset-bottom, 0px)); z-index: 90;
	display: inline-flex; align-items: center; gap: 10px; min-height: 54px; padding: 0 26px 0 20px;
	border-radius: 999px; background: var(--orange); color: var(--white); font-weight: 600; font-size: 16px;
	box-shadow: 0 10px 28px rgba(0,0,0,0.22);
	opacity: 0; transform: translateY(20px); pointer-events: none;
	transition: opacity .25s ease, transform .25s ease, background-color .2s ease;
}
.float-host .icon { font-size: 22px; }
.float-host.is-visible { opacity: 1; transform: none; pointer-events: auto; }
.float-host:hover { background: #E89E43; text-decoration: none; }
.float-host:focus-visible { outline: 3px solid var(--teal-dark); outline-offset: 3px; }
@media (max-width: 600px) {
	.float-host { right: 50%; transform: translate(50%, 20px); bottom: calc(16px + env(safe-area-inset-bottom, 0px)); min-height: 50px; padding: 0 22px 0 18px; font-size: 15px; white-space: nowrap; }
	.float-host.is-visible { transform: translate(50%, 0); }
}
@media (prefers-reduced-motion: reduce) { .float-host { transition: opacity .01s; } }

/* Still have questions? */
.host-ask { margin-top: 70px; padding: 48px 32px; border-radius: 24px; background: var(--white); box-shadow: 0 10px 30px rgba(0,0,0,0.06); text-align: center; }
.host-ask__title { margin: 0 0 18px; font-size: clamp(26px, 2.6vw, 34px); font-weight: 700; }
.host-ask p { margin: 0 auto 14px; max-width: 640px; font-size: 18px; line-height: 1.6; color: var(--ink-soft); }
.host-ask a:not(.btn) { color: var(--teal-dark); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.host-ask .host-btn { margin-top: 14px; }

/* ---------- About page (redesign) ---------- */
.about-photo { border-radius: 22px; overflow: hidden; border: 6px solid rgba(255,255,255,0.9); box-shadow: 0 24px 60px rgba(0,0,0,0.25); }
.about-photo img { display: block; width: 100%; height: auto; }
.about-photo--light { border-color: var(--white); box-shadow: 0 16px 40px rgba(0,0,0,0.12); }
.about-v2 .host-story { padding-bottom: 90px; }
.about-v2 .host-story__inner { padding-bottom: 40px; }
.about-stats { max-width: 900px; margin: 0 auto; padding: 0 var(--page-pad); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.about-stat { padding: 34px 30px; border-radius: 24px; background: var(--teal); color: var(--white); text-align: center; }
.about-stat--orange { background: var(--orange); }
.about-stat__num { margin: 0 0 6px; font-size: clamp(40px, 5vw, 64px); font-weight: 700; line-height: 1; letter-spacing: -1px; }
.about-stat__text { margin: 0; font-size: 17px; line-height: 1.5; opacity: .95; }
main.about-v2 > .about-impact:not(.hero) { background: #FFF8EE; }
.about-impact__inner { max-width: var(--content); margin: 0 auto; padding: 100px var(--page-pad); display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 64px; align-items: center; }
.host-h2.about-left { text-align: left; }
.about-points { list-style: none; margin: 26px 0 10px; padding: 0; display: flex; flex-direction: column; gap: 18px; }
.about-points li { display: flex; gap: 16px; align-items: flex-start; font-size: 17px; line-height: 1.65; }
.about-points__icon { flex: none; width: 46px; height: 46px; border-radius: 14px; background: var(--white); color: var(--teal); display: flex; align-items: center; justify-content: center; box-shadow: 0 4px 12px rgba(0,0,0,0.06); }
.about-points__icon .icon { font-size: 22px; }
.about-v2 .host-card p { font-size: 15.5px; }
@media (max-width: 1000px) {
	.about-impact__inner { grid-template-columns: 1fr; gap: 40px; padding: 70px var(--page-pad); }
}
@media (max-width: 600px) {
	.about-stats { grid-template-columns: 1fr; }
}
.admin-diag--results { margin: 0; max-width: none; }
.admin-diag--results p, .admin-diag--results ul { margin: 6px 0; }
.admin-diag a, .admin-pos a { color: var(--teal-dark); font-weight: 600; text-decoration: underline; }
.admin-pos { margin: 0; font-size: 12.5px; color: #8A6A1A; }
.admin-pos span { color: #A08A55; }

/* ---------- Request to Book ---------- */
.rq-form { display: flex; flex-direction: column; gap: 12px; }
.rq-form__title { margin: 0; font-size: 22px; font-weight: 700; }
.rq-form__intro { margin: 0 0 4px; font-size: 14px; line-height: 1.55; color: var(--ink-soft); }
.rq-form label { display: flex; flex-direction: column; gap: 4px; font-size: 13px; font-weight: 600; color: var(--ink-soft); }
.rq-form input[type=text], .rq-form input[type=email], .rq-form input[type=tel], .rq-form input[type=date], .rq-form select, .rq-form textarea {
	width: 100%; box-sizing: border-box; min-height: 44px; padding: 8px 12px; border: 1px solid #CFD6D4; border-radius: 10px;
	font: inherit; font-size: 15px; font-weight: 400; color: var(--ink); background: var(--white);
}
.rq-form textarea { min-height: 80px; resize: vertical; }
.rq-form input:focus-visible, .rq-form select:focus-visible, .rq-form textarea:focus-visible { outline: 3px solid var(--orange); outline-offset: 1px; border-color: transparent; }
.rq-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.rq-row--3 { grid-template-columns: 1fr 1fr 1fr; }
.rq-consent { flex-direction: row !important; align-items: flex-start; gap: 10px !important; font-weight: 400 !important; font-size: 13px !important; line-height: 1.5; }
.rq-consent input { width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--teal); flex: none; }
.rq-consent a { color: var(--teal-dark); text-decoration: underline; }
.rq-submit { width: 100%; }
.rq-small { margin: 0; font-size: 12.5px; color: var(--ink-soft); }
.rq-status { margin: 0; padding: 10px 12px; border-radius: 10px; font-size: 14px; line-height: 1.5; }
.rq-status[data-state=sent] { background: #E6F1EE; color: var(--teal-dark); }
.rq-status[data-state=error] { background: #FDECEC; color: #9B1C1C; }
.rq-form.is-sent label, .rq-form.is-sent .rq-row, .rq-form.is-sent .rq-small { display: none; }
.rq-trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.rq-details { border-top: 1px solid #E4E8E7; padding-top: 10px; }
.rq-details summary { cursor: pointer; font-size: 14px; font-weight: 600; color: var(--teal-dark); text-decoration: underline; text-underline-offset: 3px; }
.rq-details[open] summary { margin-bottom: 12px; }

/* ---------- Reserve panel ---------- */
.rv { display: flex; flex-direction: column; gap: 12px; }
.rv-nights { margin: 0 0 6px; font-size: 13px; font-weight: 600; color: var(--ink-soft); text-transform: uppercase; letter-spacing: .6px; }
.rv-room { display: flex; flex-direction: column; gap: 8px; padding: 14px; margin-bottom: 10px; border: 1px solid #DCE2E0; border-radius: 12px; background: var(--white); }
.rv-room__info { display: flex; flex-direction: column; gap: 2px; font-size: 14px; color: var(--ink-soft); }
.rv-room__info strong { font-size: 16px; color: var(--ink); }
.rv-room__price { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.rv-total { font-size: 20px; font-weight: 700; color: var(--teal-dark); }
.rv-small { font-size: 12px; color: var(--ink-soft); flex-basis: 100%; margin-top: -8px; }
.rv-qty { display: flex; align-items: center; gap: 6px; font-size: 13px; }
.rv-qty select { min-height: 38px; border: 1px solid #CFD6D4; border-radius: 8px; padding: 0 6px; font: inherit; }
.rv-choose { min-height: 40px; padding: 0 18px; margin-left: auto; }
.rv-chosen { margin: 0; padding: 12px; border-radius: 10px; background: #E6F1EE; font-size: 14px; line-height: 1.5; }
.rv-policy { margin: 0; font-size: 13px; line-height: 1.5; color: var(--ink-soft); }
.rv-back { border: 0; background: none; padding: 4px 0; font: inherit; font-size: 14px; color: var(--teal-dark); text-decoration: underline; cursor: pointer; text-align: left; }
.rv-manage { margin: 0; font-size: 14px; } .rv-manage a { color: var(--teal-dark); font-weight: 600; text-decoration: underline; }
.hotel-or a { color: var(--teal-dark); font-weight: 600; text-decoration: underline; }

/* ---------- Host area ---------- */
main.host-area { background: #F4F6F6; }
.ha-inner { max-width: 1100px; margin: 0 auto; padding: 40px var(--page-pad) 80px; }
.ha-inner--narrow { max-width: 720px; }
.ha-top { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; flex-wrap: wrap; margin-bottom: 18px; }
.ha-title { margin: 0; font-size: clamp(26px, 3vw, 36px); font-weight: 700; }
.ha-top__links { display: flex; gap: 18px; } .ha-top__links a { color: var(--teal-dark); font-weight: 600; }
.ha-switch { margin-bottom: 14px; } .ha-switch select { margin-left: 8px; min-height: 40px; border-radius: 8px; border: 1px solid #CFD6D4; font: inherit; padding: 0 8px; }
.ha-tabs { display: flex; gap: 4px; flex-wrap: wrap; margin: 10px 0 18px; border-bottom: 2px solid #E0E5E4; }
.ha-tabs a { padding: 12px 18px; font-weight: 600; color: var(--ink-soft); border-bottom: 3px solid transparent; margin-bottom: -2px; }
.ha-tabs a[aria-current] { color: var(--teal-dark); border-bottom-color: var(--orange); }
.ha-tabs a:hover { text-decoration: none; color: var(--ink); }
.ha-panel { background: var(--white); border-radius: 16px; padding: 26px 28px; margin-bottom: 20px; box-shadow: 0 2px 8px rgba(0,0,0,0.04); }
.ha-panel h2 { margin: 0 0 14px; font-size: 21px; }
.ha-help { margin: 8px 0 14px; font-size: 14px; color: var(--ink-soft); }
.ha-empty { color: var(--ink-soft); }
.ha-notice { margin-bottom: 14px; padding: 14px 18px; border-radius: 12px; background: #FFF6EA; border-left: 5px solid var(--orange); font-size: 15px; }
.ha-notice a { color: var(--teal-dark); font-weight: 600; margin-left: 6px; }
.ha-msg { margin: 0 0 16px; padding: 12px 16px; border-radius: 10px; background: #E6F1EE; color: var(--teal-dark); font-weight: 600; }
.ha-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.ha-span2 { grid-column: span 2; } .ha-span3 { grid-column: 1 / -1; }
.host-area label { display: flex; flex-direction: column; gap: 4px; font-size: 13px; font-weight: 600; color: var(--ink-soft); }
.host-area input[type=text], .host-area input[type=number], .host-area input[type=email], .host-area input[type=date], .host-area input[type=time], .host-area select, .host-area textarea {
	min-height: 42px; padding: 8px 10px; border: 1px solid #CFD6D4; border-radius: 10px; font: inherit; font-size: 15px; font-weight: 400; color: var(--ink); background: var(--white); box-sizing: border-box; width: 100%;
}
.ha-switch select, .ha-cal-head select { width: auto; }
.ha-row { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin-top: 14px; }
.ha-room { padding: 18px 0; border-top: 1px solid #ECEFEF; }
.ha-room:first-of-type { border-top: 0; padding-top: 0; }
.ha-room--new h3 { margin: 0 0 10px; font-size: 17px; }
.ha-link-danger { border: 0; background: none; color: #B42318; font: inherit; font-weight: 600; text-decoration: underline; cursor: pointer; }
.ha-ical { display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--ink-soft); flex: 1; min-width: 260px; }
.ha-ical input { font-size: 12px !important; min-height: 34px !important; }
.ha-booking { display: flex; justify-content: space-between; gap: 18px; padding: 16px 0; border-top: 1px solid #ECEFEF; }
.ha-booking p { margin: 0 0 4px; }
.ha-booking__dates { font-weight: 700; font-size: 16px; }
.ha-booking__contact a { color: var(--teal-dark); }
.ha-booking__notes { font-style: italic; color: var(--ink-soft); }
.ha-booking__actions { display: flex; flex-direction: column; gap: 8px; align-items: flex-end; }
.ha-booking__actions .btn { min-height: 40px; padding: 0 18px; }
.ha-badge { display: inline-block; padding: 3px 10px; border-radius: 999px; background: #E6F1EE; color: var(--teal-dark); font-size: 12.5px; font-weight: 700; }
.ha-booking--pending .ha-badge, .ha-badge--pending { background: #FFF1DC; color: #8A5A12; }
.ha-badge--cancelled, .ha-badge--declined { background: #F2F2F2; color: #666; }
.ha-past summary { cursor: pointer; font-weight: 600; color: var(--ink-soft); margin-top: 10px; }
.ha-cal-head { display: flex; justify-content: space-between; align-items: center; gap: 14px; flex-wrap: wrap; margin-bottom: 14px; }
.ha-cal-head label { flex-direction: row; align-items: center; gap: 8px; }
.ha-cal-nav { display: flex; align-items: center; gap: 14px; font-size: 18px; }
.ha-cal-nav a { display: inline-flex; width: 36px; height: 36px; border-radius: 999px; align-items: center; justify-content: center; background: #E6F1EE; color: var(--teal-dark); font-size: 22px; }
.ha-cal { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.ha-cal__dn { text-align: center; font-size: 12px; font-weight: 700; color: var(--ink-soft); padding: 4px 0; }
.ha-cal__day { min-height: 72px; padding: 6px 8px; border-radius: 10px; background: #F7FAF9; border: 1px solid #E3EAE8; display: flex; flex-direction: column; font-size: 12px; }
.ha-cal__day--blank { background: none; border: 0; }
.ha-cal__num { font-weight: 700; font-size: 14px; }
.ha-cal__price { color: var(--teal-dark); font-weight: 600; margin-top: auto; }
.ha-cal__free { color: var(--ink-soft); }
.ha-cal__day.is-full { background: #FFF1DC; border-color: #F3D3A8; }
.ha-cal__day.is-closed { background: repeating-linear-gradient(45deg, #F1F1F1, #F1F1F1 6px, #E7E7E7 6px, #E7E7E7 12px); color: #888; }
.ha-cal__day.is-price .ha-cal__price { color: var(--orange); }
.ha-cal__day.is-past { opacity: .45; }
.ha-legend { display: flex; flex-wrap: wrap; gap: 6px 16px; align-items: center; font-size: 13px; color: var(--ink-soft); margin-top: 12px; }
.lg { display: inline-block; width: 14px; height: 14px; border-radius: 4px; margin-right: 4px; vertical-align: -2px; }
.lg--full { background: #FFF1DC; border: 1px solid #F3D3A8; } .lg--closed { background: #E7E7E7; } .lg--price { background: var(--orange); }
.ha-days { border: 0; padding: 0; margin: 14px 0; display: flex; flex-wrap: wrap; gap: 10px 16px; }
.ha-days legend { font-size: 13px; font-weight: 600; color: var(--ink-soft); margin-bottom: 6px; }
.ha-days label, .ha-check { flex-direction: row !important; align-items: center; gap: 8px !important; font-weight: 400 !important; font-size: 15px !important; color: var(--ink) !important; }
.ha-settings { display: flex; flex-direction: column; gap: 16px; } .ha-settings fieldset { border: 0; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.ha-settings legend { font-size: 13px; font-weight: 600; color: var(--ink-soft); margin-bottom: 6px; }
.ha-settings .btn, .ha-dates .btn { align-self: flex-start; }
@media (max-width: 700px) {
	.ha-grid { grid-template-columns: 1fr 1fr; } .ha-span2, .ha-span3 { grid-column: 1 / -1; }
	.ha-booking { flex-direction: column; } .ha-booking__actions { align-items: stretch; flex-direction: row; }
	.ha-cal__day { min-height: 58px; padding: 4px; font-size: 10.5px; } .ha-cal__free { display: none; }
	.ha-panel { padding: 20px 16px; }
}
.host-area [hidden], .rv [hidden] { display: none !important; }
/* Date boxes share the row evenly on phones instead of overflowing */
.rq-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rq-row--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.rq-form label, .rq-form input, .rq-form select { min-width: 0; max-width: 100%; }
.rq-form input[type=date] { -webkit-appearance: none; appearance: none; padding: 8px 8px; font-size: 14px; }

/* Host area: reservations add-on panel */
.ha-upsell { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 28px; align-items: center; margin-bottom: 20px; padding: 30px; border-radius: 18px; background: var(--white); border-top: 6px solid var(--orange); box-shadow: 0 10px 30px rgba(0,0,0,0.06); }
.ha-upsell h2 { margin: 0 0 10px; font-size: 26px; }
.ha-upsell p { margin: 0 0 12px; font-size: 16px; line-height: 1.6; color: var(--ink-soft); }
.ha-upsell ul { margin: 0; padding-left: 20px; line-height: 1.9; }
.ha-upsell__price { text-align: center; padding: 24px; border-radius: 14px; background: #FFF8EE; }
.ha-upsell__amount { font-size: 34px !important; font-weight: 700; color: var(--teal-dark) !important; margin-bottom: 4px !important; line-height: 1.1; }
.ha-upsell__ended { color: #8A5A12 !important; font-weight: 600; }
@media (max-width: 760px) { .ha-upsell { grid-template-columns: 1fr; padding: 22px; } }

/* ---------- The Mooch Way ---------- */
.mooch-way .host-story__inner { padding-bottom: 30px; }
.mw-stat { grid-template-columns: 1fr !important; max-width: 640px; }
.mw-after-stat { padding-top: 40px !important; }
.mw-text { font-size: 18px; line-height: 1.75; margin: 18px 0; }
.mw-values .host-card { text-align: left; }
main.mooch-way > .mw-team:not(.hero) { background: var(--white); }
.mw-team__inner { max-width: var(--content); margin: 0 auto; padding: 100px var(--page-pad); }
.mw-people { list-style: none; margin: 44px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 30px; }
.mw-person { text-align: center; }
.mw-person img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 20px; display: block; box-shadow: 0 10px 26px rgba(0,0,0,0.10); }
.mw-person h3 { margin: 20px 0 4px; font-size: 22px; font-weight: 700; color: var(--teal-dark); }
.mw-person__role { margin: 0 0 14px; padding-bottom: 14px; position: relative; font-size: 16px; color: var(--ink-soft); }
.mw-person__role::after { content: ""; position: absolute; left: 50%; bottom: 0; width: 36px; height: 3px; border-radius: 2px; background: var(--orange); transform: translateX(-50%); }
.mw-bio-btn { margin-top: 12px; padding: 9px 22px; border-radius: 999px; border: 0; background: var(--teal); color: var(--white); font: inherit; font-weight: 600; font-size: 14px; cursor: pointer; }
.mw-bio-btn:hover { background: var(--teal-dark); }
.mw-bio-btn:focus-visible { outline: 3px solid var(--orange); outline-offset: 2px; }
.mw-bio-dialog { width: min(980px, calc(100vw - 32px)); max-height: calc(100vh - 48px); padding: 0; border: 0; border-radius: 22px; box-shadow: 0 24px 60px rgba(0,0,0,0.25); text-align: left; }
.mw-bio-dialog::backdrop { background: rgba(20, 40, 36, 0.55); }
.mw-bio-dialog__inner { position: relative; display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 40px; padding: 40px 44px; }
.mw-bio-dialog__side { text-align: center; }
.mw-bio-dialog__side img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 16px; display: block; }
.mw-bio-dialog__side h3 { margin: 22px 0 4px; font-size: 24px; font-weight: 700; color: var(--teal-dark); }
.mw-bio-dialog__text h4 { margin: 0 0 14px; font-size: 28px; font-weight: 700; color: var(--ink); }
.mw-bio-dialog__text p { margin: 0 0 16px; font-size: 16px; line-height: 1.7; color: var(--ink); }
.mw-bio-dialog__close { position: absolute; top: 12px; right: 14px; width: 44px; height: 44px; border: 0; border-radius: 999px; background: transparent; font-size: 34px; line-height: 1; color: var(--ink); cursor: pointer; }
.mw-bio-dialog__close:hover { background: var(--card); }
.mw-bio-dialog__close:focus-visible { outline: 3px solid var(--orange); }
@media (max-width: 760px) {
	.mw-bio-dialog__inner { grid-template-columns: 1fr; gap: 20px; padding: 56px 22px 24px; }
	.mw-bio-dialog__side img { max-width: 220px; margin: 0 auto; }
}
body.has-open-dialog { overflow: hidden; }
.mw-bio summary { list-style: none; cursor: pointer; }
.mw-bio summary::-webkit-details-marker { display: none; }
.mw-bio__intro { display: block; font-size: 15.5px; line-height: 1.6; color: var(--ink); margin: 0; }
.mw-bio__more { display: inline-block; margin-top: 12px; padding: 9px 20px; border-radius: 999px; background: var(--teal); color: var(--white); font-weight: 600; font-size: 14px; }
.mw-bio[open] .mw-bio__more { background: var(--white); color: var(--teal-dark); border: 2px solid var(--teal); }
.mw-bio[open] .mw-bio__intro { display: none; }
.mw-bio[open] .mw-bio__more::after { content: " – close"; }
.mw-bio__full { margin-top: 12px; text-align: left; font-size: 15px; line-height: 1.7; color: var(--ink-soft); }
.mw-bio summary:focus-visible .mw-bio__more { outline: 3px solid var(--orange); outline-offset: 2px; }
@media (max-width: 1000px) { .mw-people { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .mw-people { grid-template-columns: 1fr; max-width: 360px; margin-left: auto; margin-right: auto; } }
.mw-benefits { list-style: none; max-width: var(--content); margin: 30px auto 0; padding: 0 var(--page-pad); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
.mw-host-link { font-size: 15px !important; margin-top: 18px !important; opacity: .9; }
.mw-host-link a { color: var(--white); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 1000px) { .mw-benefits { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .mw-benefits { grid-template-columns: 1fr; } }

/* Google reviews */
.greviews { width: 100%; margin-top: 18px; padding-top: 22px; border-top: 1px solid #E6EAE9; display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
.greviews__intro { margin: 0; color: var(--ink-soft); }
.greviews .btn .icon { color: var(--orange); }
.greviews__out { width: 100%; display: flex; flex-direction: column; gap: 14px; }
.greviews__summary { margin: 0; font-size: 17px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.greviews__stars span { color: #D7DCDB; font-size: 18px; } .greviews__stars span.on { color: #F5A623; }
.greview { display: flex; gap: 12px; padding: 16px; border-radius: 12px; background: var(--card); }
.greview img { width: 36px; height: 36px; border-radius: 999px; flex: none; }
.greview p { margin: 0; }
.greview__who { font-weight: 600; } .greview__who a { color: var(--teal-dark); } .greview__who span { font-weight: 400; color: var(--ink-soft); font-size: 13px; margin-left: 6px; }
.greview__text { margin-top: 6px !important; font-size: 15px; line-height: 1.6; white-space: pre-line; }
.greviews__credit { margin: 0; font-size: 13px; color: var(--ink-soft); } .greviews__credit a { color: var(--teal-dark); text-decoration: underline; }
.greviews [hidden] { display: none !important; }

/* ---------- Corporate Stays ---------- */

.site-nav__corp { border-width: 2px; border-radius: 999px; font-weight: 600; }
@media (min-width: 1361px) and (max-width: 1560px) { .site-nav__actions:has(.site-nav__corp) { gap: 22px; } .site-nav__actions:has(.site-nav__corp) .btn { padding: 0 20px; } }
@media (max-width: 1280px) { .site-nav__actions .site-nav__corp { padding: 0 16px; } }
@media (max-width: 1360px) { .site-nav__actions { flex-wrap: wrap; } }

.corp-why { padding: 8px var(--page-pad) 8px; max-width: calc(var(--content) + 2 * var(--page-pad)); margin: 0 auto; }
.corp-why__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.corp-why__item { background: var(--card); border: 1px solid var(--line); border-radius: 16px; padding: 24px; }
.corp-why__item p { margin: 0; color: var(--ink-soft); }
.corp-why__icon { display: inline-flex; width: 44px; height: 44px; border-radius: 12px; align-items: center; justify-content: center; background: rgba(65,146,130,0.12); color: var(--teal-dark); font-size: 22px; }
.corp-why__title { font-size: 19px; margin: 14px 0 6px; color: var(--ink); }
.corp-why__hosts { text-align: center; margin: 22px 0 0; font-weight: 500; }
.corp-why__hosts a { color: var(--teal-dark); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 800px) { .corp-why__list { grid-template-columns: 1fr; } }

.corp-hosts { background: #EEF5F3; padding: 64px var(--page-pad); scroll-margin-top: 90px; }
.corp-hosts__inner { max-width: var(--content); margin: 0 auto; display: grid; grid-template-columns: 1fr 1.25fr; gap: 48px; align-items: start; }
.corp-hosts__title { font-size: clamp(28px, 3.4vw, 40px); line-height: 1.15; margin: 4px 0 14px; color: var(--teal-dark); }
.corp-hosts__points { margin: 18px 0 0; padding-left: 20px; font-weight: 500; }
.corp-hosts__points li { margin: 6px 0; }
.corp-hosts__form { background: var(--white); border-radius: 18px; padding: 28px; box-shadow: 0 10px 30px rgba(0,0,0,0.06); }
.corp-form { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.corp-form label { display: flex; flex-direction: column; gap: 6px; font-size: 14px; font-weight: 600; }
.corp-form input[type=text], .corp-form input[type=email], .corp-form input[type=tel], .corp-form select, .corp-form textarea { font: inherit; font-weight: 400; font-size: 16px; padding: 11px 12px; border: 1px solid #CFCFCF; border-radius: 10px; width: 100%; }
.corp-form fieldset { border: 0; margin: 0; padding: 0; }
.corp-form legend { font-size: 14px; font-weight: 600; margin-bottom: 8px; }
.corp-form__checks { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 16px; }
.corp-form label.corp-check { flex-direction: row; align-items: flex-start; gap: 8px; font-weight: 400; font-size: 15px; }
.corp-check input { margin-top: 4px; }
.corp-form__wide { grid-column: 1 / -1; }
.corp-form .btn { justify-self: start; }
.corp-form__small { margin: 0; font-size: 14px; color: var(--ink-soft); }
.corp-form__small a { color: var(--teal-dark); text-decoration: underline; }
.corp-form__trap { position: absolute; left: -9999px; }
.corp-req { color: #B4572B; }
.corp-note { margin: 0 0 18px; padding: 12px 14px; border-radius: 10px; background: #FFF4E5; }
.corp-note--ok { background: #E6F4EF; }
@media (max-width: 900px) { .corp-hosts__inner { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .corp-form, .corp-form__checks { grid-template-columns: 1fr; } .corp-hosts__form { padding: 20px; } }

/* Be Inspired › Sailing › England: regions of places */
.area-region { margin-top: 64px; }
.area-region:first-child { margin-top: 56px; }
.area-region__title { text-align: center; color: var(--teal-dark); font-size: clamp(24px, 3vw, 32px); margin: 0; }
.area-region__sub { text-align: center; margin: 6px 0 0; color: var(--orange); font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; font-size: 13px; }
.area-spots .area-region .loc-grid { margin-top: 28px; }
@media (max-width: 600px) { .area-region { margin-top: 44px; } }

/* Lakes & Mountains: county and area card headings */
.location-cards__title{font-size:1.35rem;margin:28px 0 12px}
.location-cards__title:first-child{margin-top:0}
.location-cards__note{margin:-6px 0 14px;color:var(--muted,#5b6470)}
.location-cards__why{font-size:1.05rem;max-width:760px;margin:0 0 18px}

/* Fly fishing river details */
.fly-facts{display:grid;gap:0;margin:0 0 16px;max-width:860px;border-top:1px solid var(--line,#e3e6ea)}
.fly-facts>div{display:grid;grid-template-columns:minmax(120px,220px) 1fr;gap:12px;padding:10px 0;border-bottom:1px solid var(--line,#e3e6ea)}
.fly-facts dt{font-weight:600;margin:0}
.fly-facts dd{margin:0}
@media (max-width:600px){.fly-facts>div{grid-template-columns:1fr;gap:2px}}
.location-cards>.location-cards__why:first-child{margin-top:14px}

.fly-beats{list-style:none;margin:0 0 18px;padding:0;max-width:860px;border-top:1px solid var(--line,#e3e6ea)}
.fly-beats li{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;padding:10px 0;border-bottom:1px solid var(--line,#e3e6ea)}
.fly-beats strong{font-weight:600}
.fly-beats span{flex:1 1 320px;color:var(--muted,#5b6470)}
.fly-beats a{font-weight:600;white-space:nowrap}

/* "Add Mooch to your home screen" tip (phones) */
.app-tip{position:fixed;left:12px;right:12px;bottom:12px;z-index:9999;display:flex;align-items:center;gap:12px;padding:12px 14px;background:#fff;color:#1f2a2e;border-radius:16px;box-shadow:0 8px 30px rgba(0,0,0,.18)}
.app-tip[hidden]{display:none}
.app-tip img{border-radius:10px;flex:0 0 auto}
.app-tip__text{margin:0;flex:1;font-size:.95rem;line-height:1.35}
.app-tip__add{padding:8px 16px;flex:0 0 auto}
.app-tip__close{background:none;border:0;font-size:1.6rem;line-height:1;color:#5b6470;padding:4px 6px;cursor:pointer}
.app-tip__add[hidden]{display:none}

/* moochhotels.co.uk/app */
.app-get{max-width:720px;margin:0 auto;padding:32px 16px 56px}
.app-get__hero{text-align:center;margin-bottom:24px}
.app-get__hero img{border-radius:26px;box-shadow:0 8px 24px rgba(0,0,0,.15)}
.app-get__hero h1{font-size:2rem;margin:18px 0 8px}
.app-get__hero p{margin:0 auto;max-width:460px;color:var(--muted,#5b6470)}
.app-get__box{background:#fff;border:1px solid var(--line,#e3e6ea);border-radius:18px;padding:20px 22px;margin:0 0 16px}
.app-get__box[hidden]{display:none}
.app-get__box h2{font-size:1.25rem;margin:0 0 10px}
.app-get__steps{margin:0;padding-left:1.3em;line-height:1.7}
.app-get__share{width:20px;height:20px;vertical-align:-4px;color:#1a73e8;margin:0 2px}
.app-get__small{font-size:.9rem;color:var(--muted,#5b6470);margin:10px 0 0}
.app-get__small[hidden],.app-get__install-wrap[hidden]{display:none}
.app-get__qr{width:200px;height:200px;margin:8px 0 0}
.app-get__qr svg{width:100%;height:100%}
.app-get__box--share{text-align:center}
.app-get .app-get__box[hidden]{display:none}
.app-get__hero img{margin:0 auto}

/* "Get the App" links – hidden inside the installed app */
@media (display-mode: standalone) { .get-app { display: none !important; } }
@media (max-width: 900px) { .footer-nav li.get-app { flex-basis: 100%; } }

/* "Share Mooch" – only inside the installed app (html.is-app is set in the <head>) */
.share-app { display: none !important; }
.is-app .get-app { display: none !important; }
.is-app .footer-nav li.share-app { display: block !important; }
.is-app a.share-app { display: inline-flex !important; }
@media (max-width: 900px) { .is-app .footer-nav li.share-app { flex-basis: 100%; } }
.site-nav__share .icon { fill: none; stroke: currentColor; stroke-width: 2; }

/* Share buttons on /app */
.app-share{list-style:none;margin:14px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px}
.app-share li[hidden]{display:none}
.app-share a,.app-share button{display:flex;flex-direction:column;align-items:center;gap:6px;width:100%;padding:12px 6px;border:1px solid var(--line,#e3e6ea);border-radius:14px;background:#fff;color:var(--teal-dark);font:inherit;font-weight:600;font-size:.9rem;cursor:pointer;text-decoration:none}
.app-share a:hover,.app-share button:hover{border-color:var(--teal);text-decoration:none}
.app-share .icon{font-size:26px;stroke-width:1.8}

/* Home page: Get the Mooch App */
.section.app-promo { padding-top: 0; padding-bottom: 90px; }
.app-promo__inner { max-width: var(--content); margin: 0 auto; background: var(--teal); color: var(--white); border-radius: 28px; padding: 44px clamp(24px, 5vw, 64px); display: flex; align-items: center; justify-content: space-between; gap: 40px; }
.app-promo__text { max-width: 560px; }
.app-promo__kicker { margin: 0 0 8px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; font-size: 13px; opacity: .9; }
.app-promo__title { margin: 0 0 14px; font-size: clamp(28px, 3.2vw, 40px); line-height: 1.15; font-weight: 700; color: var(--white); }
.app-promo__title span { color: var(--orange); }
.app-promo__text p { margin: 0 0 18px; font-size: 17px; line-height: 1.55; }
.app-promo__how { margin-bottom: 10px !important; opacity: .9; font-size: 15px !important; }
.app-promo .btn { display: inline-flex; align-items: center; gap: 8px; }
.app-promo .btn .icon { font-size: 20px; }
.app-promo__qr { position: relative; flex: 0 0 auto; display: flex; flex-direction: column; align-items: center; gap: 10px; background: var(--white); color: var(--teal-dark); border-radius: 22px; padding: 20px 20px 14px; box-shadow: 0 12px 30px rgba(0,0,0,.18); transition: transform .15s ease; }
.app-promo__qr:hover { transform: translateY(-3px); text-decoration: none; }
.app-promo__code { display: block; width: 200px; height: 200px; }
.app-promo__code svg { width: 100%; height: 100%; display: block; }
.app-promo__icon { position: absolute; top: calc(20px + 100px - 22px); left: 50%; transform: translateX(-50%); border-radius: 10px; border: 4px solid var(--white); box-sizing: content-box; }
.app-promo__caption { font-weight: 600; font-size: 14px; }
@media (max-width: 760px) {
	.app-promo__inner { flex-direction: column; text-align: center; padding: 34px 22px; gap: 26px; }
	.app-promo__on-desk { display: none; }
	.app-promo__how { display: none; }
	.app-promo__code { width: 170px; height: 170px; }
	.app-promo__icon { top: calc(20px + 85px - 22px); }
}
/* Inside the installed app: no "Get the app" – the same box becomes "Share Mooch" with the QR code to show a friend. */
.is-app .app-promo__get { display: none !important; }
.is-app .app-promo__share[hidden] { display: block !important; }
.is-app span.app-promo__share[hidden] { display: inline !important; }
.app-get__qr--share { margin: 8px auto 12px !important; }

/* Header: keep Login clear of the edge on wide screens */
.site-nav__actions a { white-space: nowrap; }
@media (min-width: 1361px) {
	.site-nav__app, .site-nav__share { display: none !important; } /* in the ☰ menu, footer and home page instead */
}
@media (min-width: 1361px) and (max-width: 1600px) {
	.site-nav__actions { gap: 28px; }
}
@media (min-width: 1361px) and (max-width: 1440px) {
	.site-nav { gap: 26px; }
	.site-nav__list { gap: 20px; }
	.site-nav__actions { gap: 20px; }
	.site-nav__actions .btn { padding: 0 20px; }
}
/* "Get the Mooch App" now sits above the footer on every page */
.section.app-promo { padding: 60px var(--page-pad) 70px; background: var(--white); }

/* "← Back" bar: hotel pages always; every inner page inside the installed app */
.back-bar { display: none; padding: 14px var(--page-pad) 0; max-width: calc(var(--content) + 2 * var(--page-pad)); margin: 0 auto; }
.back-bar--always, .is-app .back-bar { display: block; }
.back-bar__link { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 6px 14px 6px 10px; border: 1px solid var(--line, #e3e6ea); border-radius: 999px; background: var(--white); color: var(--teal-dark); font-weight: 600; font-size: 15px; }
.back-bar__link:hover { border-color: var(--teal); text-decoration: none; }
.back-bar__link .icon { font-size: 18px; stroke-width: 2.2; }

/* Football ground pin (red, with a ball) and the map key */
.leaflet-marker-icon.mooch-pin--stadium { background: #D9433A; color: var(--white); border-width: 4px; box-shadow: 0 3px 12px rgba(0,0,0,.35); }
.mooch-pin--stadium svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linejoin: round; stroke-linecap: round; }
.map-key { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 8px; margin: 10px 0 0; font-size: 14px; color: var(--ink-soft, #5b6470); }
.map-key__dot { display: inline-block; width: 14px; height: 14px; border-radius: 50%; border: 2px solid var(--white); box-shadow: 0 0 0 1px rgba(0,0,0,.15); }
.map-key__dot--stadium { background: #D9433A; }
.map-key__dot--hotel { background: var(--teal); margin-left: 10px; }

/* ---------- Review Mooch on Google ---------- */
.section.review-us { padding-top: 0; padding-bottom: 40px; }
.review-us__inner { max-width: var(--content); margin: 0 auto; background: var(--card, #F4F7F6); border: 1px solid #E6EAE9; border-radius: 28px; padding: 36px clamp(24px, 5vw, 64px); display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; }
.review-us__inner:has(.review-us__reviews) { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); align-items: start; }
.review-us__stars { margin: 0 0 6px; color: #F5A623; font-size: 22px; letter-spacing: 3px; }
.review-us__title { margin: 0 0 10px; font-size: clamp(24px, 2.6vw, 32px); line-height: 1.2; color: var(--teal-dark); }
.review-us__text p { margin: 0 0 16px; font-size: 16px; line-height: 1.55; max-width: 560px; }
.review-us__actions { margin-bottom: 0 !important; }
.review-us .btn { display: inline-flex; align-items: center; gap: 8px; }
.review-us .btn--orange .icon { color: inherit; }
.review-us__thanks { margin: 12px 0 0 !important; font-weight: 600; color: var(--teal-dark); }
.review-us__thanks[hidden] { display: none; }
.review-us__reviews { margin-top: 0; padding-top: 0; border-top: 0; }
.review-us__reviews .greview { background: var(--white, #fff); }
.review-us__reviews .greviews__out > .greview:nth-of-type(n+4) { display: none; } /* three is plenty here */
@media (max-width: 860px) { .review-us__inner:has(.review-us__reviews) { grid-template-columns: minmax(0, 1fr); } }

/* Airport pin (England › Airports › each airport) */
.leaflet-marker-icon.mooch-pin--airport { background: #2563A8; color: var(--white); border-width: 4px; box-shadow: 0 3px 12px rgba(0,0,0,.35); }
.mooch-pin--airport svg { width: 24px; height: 24px; fill: currentColor; stroke: none; }
.map-key__dot--airport { background: #2563A8; }

/* ---------- Search as you type ---------- */
.hero-search__field { position: relative; }
.suggest { position: absolute; left: -16px; right: -16px; top: calc(100% + 14px); z-index: 60; list-style: none; margin: 0; padding: 6px; background: var(--white, #fff); border: 1px solid #E3E8E7; border-radius: 16px; box-shadow: 0 18px 40px rgba(0,0,0,.14); max-height: min(70vh, 460px); overflow-y: auto; text-align: left; }
.suggest[hidden] { display: none; }
.suggest__head { padding: 10px 12px 4px; font-size: 11px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--ink-soft, #6A6A6A); }
.suggest__item { display: flex; align-items: center; gap: 12px; padding: 9px 12px; border-radius: 10px; cursor: pointer; }
.suggest__item:hover, .suggest__item.is-active { background: #EEF6F4; }
.suggest__kind { flex: none; width: 30px; height: 30px; border-radius: 9px; background: #E6F1EE center / 16px no-repeat; }
.suggest__kind--place { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232E7466' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.1-7-11.5a7 7 0 0 1 14 0C19 14.9 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E"); }
.suggest__kind--hotel { background-color: #FDF0DF; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B9762A' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6.5v11M4 9.5h13.5a2.5 2.5 0 0 1 2.5 2.5v5.5M4 14.5h16'/%3E%3C/svg%3E"); }
.suggest__kind--idea { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232E7466' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 18h6M10 21h4M12 3a6 6 0 0 0-3.5 10.9c.6.5 1 1.2 1 2.1h5c0-.9.4-1.6 1-2.1A6 6 0 0 0 12 3z'/%3E%3C/svg%3E"); }
.suggest__text { display: flex; flex-direction: column; min-width: 0; }
.suggest__title { font-weight: 600; color: var(--ink, #222); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.suggest__sub { font-size: 13px; color: var(--ink-soft, #6A6A6A); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.suggest mark { background: none; color: var(--teal-dark, #2E7466); font-weight: 700; }
.suggest__none { padding: 12px; color: var(--ink-soft, #6A6A6A); font-size: 14px; }
@media (max-width: 640px) { .suggest { left: -14px; right: -112px; } }

/* ---------- Mooch helper (chat: "would you like someone to contact you?") ---------- */
.mh { position: fixed; right: 18px; bottom: 18px; z-index: 9990; display: flex; flex-direction: column; align-items: flex-end; gap: 10px; font-size: 15px; } /* bottom-right; the Become A Host button is bottom-left */
body:has(.app-tip:not([hidden])) .mh { bottom: 104px; }
.mh-launch { display: inline-flex; align-items: center; gap: 8px; border: 3px solid var(--orange, #F3B05C); border-radius: 999px; padding: 11px 17px; background: var(--teal, #419282); color: #fff; font: inherit; font-weight: 600; cursor: pointer; box-shadow: 0 8px 24px rgba(0,0,0,.22); }
.mh-launch:hover { background: var(--teal-dark, #2E7466); }
.mh-launch .icon, .mh-launch svg { width: 20px; height: 20px; }
.mh.is-open .mh-launch { display: none; }
.mh-teaser { position: relative; margin: 0; max-width: 260px; padding: 12px 30px 12px 14px; background: #fff; color: var(--ink, #222); border: 2px solid var(--orange, #F3B05C); border-radius: 16px 16px 4px 16px; box-shadow: 0 10px 30px rgba(0,0,0,.18); line-height: 1.45; cursor: pointer; animation: mh-pop .25s ease-out; }
.mh-teaser[hidden] { display: none; }
.mh-teaser__close { position: absolute; top: 4px; right: 6px; border: 0; background: none; font-size: 20px; line-height: 1; color: #8A8A8A; cursor: pointer; padding: 2px 4px; }
.mh-panel { width: min(370px, calc(100vw - 24px)); height: min(560px, calc(100vh - 40px)); display: flex; flex-direction: column; background: #fff; border: 3px solid var(--orange, #F3B05C); border-radius: 20px; box-shadow: 0 18px 50px rgba(0,0,0,.28); overflow: hidden; animation: mh-pop .2s ease-out; }
.mh-panel[hidden] { display: none; }
.mh-head { display: flex; align-items: center; gap: 10px; padding: 14px 14px 14px 16px; background: var(--teal, #419282); color: #fff; }
.mh-head__mark { width: 38px; height: 38px; border-radius: 11px; background: #fff; color: var(--teal, #419282); display: flex; align-items: center; justify-content: center; flex: none; }
.mh-head__mark svg, .mh-head__mark .icon { width: 22px; height: 22px; }
.mh-head__text { display: flex; flex-direction: column; line-height: 1.25; flex: 1; }
.mh-head__text span { font-size: 12.5px; opacity: .9; }
.mh-close { border: 0; background: rgba(255,255,255,.15); color: #fff; width: 32px; height: 32px; border-radius: 999px; font-size: 22px; line-height: 1; cursor: pointer; }
.mh-log { flex: 1; overflow-y: auto; padding: 16px 14px 8px; display: flex; flex-direction: column; gap: 8px; background: #F6F8F7; }
.mh-msg { margin: 0; max-width: 85%; padding: 10px 13px; border-radius: 16px; line-height: 1.45; animation: mh-pop .18s ease-out; }
.mh-msg--bot { align-self: flex-start; background: #fff; color: var(--ink, #222); border-bottom-left-radius: 4px; box-shadow: 0 1px 2px rgba(0,0,0,.06); }
.mh-msg--me { align-self: flex-end; background: var(--teal, #419282); color: #fff; border-bottom-right-radius: 4px; }
.mh-typing { display: inline-flex; gap: 4px; padding: 13px 14px; }
.mh-typing span { width: 7px; height: 7px; border-radius: 50%; background: #B8C4C1; animation: mh-dot 1s infinite; }
.mh-typing span:nth-child(2) { animation-delay: .15s; } .mh-typing span:nth-child(3) { animation-delay: .3s; }
.mh-reply { padding: 10px 12px; border-top: 1px solid #E8ECEB; background: #fff; }
.mh-reply:empty { display: none; }
.mh-choices { display: flex; flex-wrap: wrap; gap: 8px; }
.mh-choice { border: 1.5px solid var(--teal, #419282); background: #fff; color: var(--teal-dark, #2E7466); border-radius: 999px; padding: 8px 14px; font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; }
.mh-choice:hover, .mh-choice:focus-visible { background: var(--teal, #419282); color: #fff; }
.mh-choice--ghost { border-color: #D3DAD8; color: var(--ink-soft, #5A5A5A); }
.mh-ask { display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-end; }
.mh-ask input, .mh-ask textarea { flex: 1; min-width: 0; border: 1px solid #CFD8D6; border-radius: 14px; padding: 10px 12px; font: inherit; font-size: 16px; resize: none; }
.mh-ask input:focus, .mh-ask textarea:focus { outline: 2px solid var(--teal, #419282); outline-offset: 0; border-color: transparent; }
.mh-send { flex: none; width: 42px; height: 42px; border: 0; border-radius: 999px; background: var(--orange, #F3B05C); color: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.mh-send svg { width: 20px; height: 20px; fill: currentColor; }
.mh-skip { border: 0; background: none; color: var(--teal-dark, #2E7466); font: inherit; font-size: 14px; font-weight: 600; text-decoration: underline; cursor: pointer; padding: 4px 2px; }
.mh-err { flex-basis: 100%; margin: 0; color: #B32D2E; font-size: 13px; }
.mh-err[hidden] { display: none; }
.mh-wait { margin: 0; color: var(--ink-soft, #5A5A5A); }
.mh-small { margin: 0; padding: 6px 12px 10px; font-size: 11.5px; color: #8A8A8A; background: #fff; }
.mh-small a { color: inherit; text-decoration: underline; }
@keyframes mh-pop { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@keyframes mh-dot { 0%, 80%, 100% { opacity: .35; } 40% { opacity: 1; } }
@media (max-width: 600px) { body:has(.float-host) .mh { bottom: calc(92px + env(safe-area-inset-bottom, 0px)); } } /* phones: above the wide Become A Host button */
@media (max-width: 520px) { .mh { right: 12px; bottom: 12px; } .mh-launch { padding: 10px 15px; font-size: 14px; } .mh-panel { height: min(560px, calc(100vh - 24px)); } }
@media (prefers-reduced-motion: reduce) { .mh-panel, .mh-msg, .mh-teaser { animation: none; } .mh-typing span { animation: none; } }

/* Floating Become A Host button: bottom-left on computers (the Mooch helper is bottom-right) */
@media (min-width: 601px) { .float-host { right: auto; left: 28px; } }

/* ---------- Language drop-down (GTranslate) in the header ---------- */
.site-nav { order: 4; }
.site-lang { order: 5; position: relative; z-index: 40; display: flex; align-items: center; min-height: 44px; margin-left: 4px; }
.site-lang select, .site-lang .gt_selector { appearance: auto; height: 38px; max-width: 150px; padding: 0 10px; border: 1px solid rgba(255,255,255,.55); border-radius: 999px; background: rgba(255,255,255,.12); color: #fff; font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; }
.site-lang select option { color: #222; background: #fff; }
.site-lang .gt_switcher, .site-lang .gt_float_switcher { font-family: inherit !important; box-shadow: 0 6px 18px rgba(0,0,0,.15) !important; border-radius: 12px !important; }
.site-lang .gt_switcher { width: auto !important; }
.site-lang a { text-decoration: none; }
@media (max-width: 1360px) { /* menu button showing: language next to it */
	.site-lang { order: 0; margin-left: auto; }
	.site-header__inner .menu-toggle { margin-left: 10px; }
}
@media (min-width: 1361px) { .site-lang { margin-left: 18px; } }
@media (max-width: 480px) {
	.site-header__inner { gap: 10px; }
	.site-lang select, .site-lang .gt_selector { max-width: 96px; height: 36px; font-size: 13px; padding: 0 4px; }
	.site-header__inner .menu-toggle { margin-left: 6px; flex: none; }
}

/* Search suggestions: "Family friendly places to stay in Norfolk" */
.suggest__kind--filter { background-color: #FDF0DF; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B9762A' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='M20 20l-4.2-4.2'/%3E%3C/svg%3E"); }

/* Language menu (GTranslate "float" style): opens downwards over the page, never off the top of the screen,
   and never makes the header taller or wider. */
.site-lang { height: 44px; min-height: 44px; width: 88px; flex: none; }
.site-lang .gtranslate_wrapper, .site-lang #gt_float_wrapper { position: static !important; }
.site-lang .gt_float_switcher { position: absolute !important; top: 3px; right: 0; display: block !important; width: auto; background: #fff; overflow: visible !important; z-index: 1000; }
.site-lang .gt_float_switcher .gt-selected, .site-lang .gt_float_switcher .gt-current-lang { white-space: nowrap; }
.site-lang .gt_float_switcher .gt-current-lang { display: flex; align-items: center; gap: 6px; padding: 8px 12px !important; }
.site-lang .gt_float_switcher .gt-current-lang img { width: 24px; height: auto; }
/* The list drops out underneath as its own panel – the button stays the same size. */
.site-lang .gt_float_switcher .gt_options { position: absolute !important; top: calc(100% + 6px); right: 0; width: max-content; min-width: 190px; max-width: min(240px, calc(100vw - 32px)); max-height: min(320px, 60vh) !important; overflow-y: auto !important; background: #fff; border-radius: 12px; box-shadow: 0 10px 28px rgba(0,0,0,.18); z-index: 1001; }
.site-lang .gt_float_switcher .gt_options a { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.results__wider { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px; margin-top: 14px; }

/* The Back button floats at the top-left as you scroll, so it's always in reach. */
.back-bar--always, .is-app .back-bar { position: sticky; top: 0; z-index: 60; height: 54px; padding-top: 0; overflow: visible; pointer-events: none; }
.back-bar--always .back-bar__link, .is-app .back-bar .back-bar__link { pointer-events: auto; margin-top: 10px; box-shadow: 0 4px 14px rgba(0,0,0,.14); max-width: calc(100vw - 32px); }
.back-bar__link span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.admin-bar .back-bar--always, .admin-bar.is-app .back-bar { top: 32px; }
@media (max-width: 782px) { .admin-bar .back-bar--always, .admin-bar.is-app .back-bar { top: 46px; } }
.location-cards__title[id] { scroll-margin-top: 80px; }

/* While the Filters panel is open the helper bubble is hidden (it covered the Clear button). */
body.filters-open .mh, body:has(.hero-search.is-open) .mh { display: none; }

/* Own attractions: partners (paid) first, with photo, badge, offer and booking button */
.nearby-item--partner { grid-column: 1 / -1; flex-direction: row; gap: 16px; background: #EEF6F4; border: 1px solid #CFE5E0; }
.nearby-item__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.nearby-item__img { width: 160px; height: 120px; object-fit: cover; border-radius: 10px; flex: 0 0 auto; }
.nearby-item__badge { display: inline-block; margin-left: 6px; padding: 2px 8px; border-radius: 999px; background: var(--teal-dark, #2F6F63); color: #fff; font-size: 11px; letter-spacing: 0.4px; vertical-align: 1px; }
.nearby-item__desc { margin: 6px 0 0; font-size: 15px; color: var(--ink); }
.nearby-item__offer { margin: 6px 0 0; font-size: 15px; font-weight: 600; color: #8A4B00; }
.nearby-item__book { margin-top: 8px; align-self: flex-start; font-size: 14px; font-weight: 600; color: var(--teal-dark); }
.nearby-item--partner .nearby-item__book { color: #fff; }
.nearby__cta { margin: 6px 0 0; font-size: 14px; color: var(--ink-soft); }
.nearby__cta a { color: var(--teal-dark); font-weight: 600; }
@media (max-width: 600px) { .nearby-item--partner { flex-direction: column; } .nearby-item__img { width: 100%; height: 160px; } }
.attr-apply { max-width: 560px; display: grid; gap: 4px; }
.attr-apply label { display: block; font-weight: 600; margin-bottom: 4px; }
.attr-apply input:not([type=radio]), .attr-apply textarea { width: 100%; padding: 10px 12px; border: 1px solid #C9D3D1; border-radius: 8px; font: inherit; }
.attr-apply fieldset { border: 0; padding: 0; margin: 6px 0; }
.attr-apply fieldset label { font-weight: 400; display: inline-flex; gap: 6px; margin-right: 18px; }
.attr-apply__hp { position: absolute; left: -9999px; }
.attr-apply__msg { color: #b32d2e; }
.attr-apply__done { padding: 16px; border-radius: 10px; background: #EEF6F4; font-weight: 600; }
.btn--small { padding: 8px 14px; font-size: 14px; min-height: 0; }

/* App notifications: the "Get last-minute deals?" card */
.push-ask { position: fixed; left: 12px; right: 12px; bottom: calc(14px + env(safe-area-inset-bottom)); z-index: 10000; max-width: 460px; margin: 0 auto; display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; border-radius: 16px; background: #fff; box-shadow: 0 10px 34px rgba(18, 52, 46, .22); border: 1px solid #E1EAE8; }
.push-ask[hidden] { display: none; }
.push-ask img { border-radius: 10px; flex: 0 0 auto; }
.push-ask__title { margin: 0; font-weight: 700; font-size: 16px; color: var(--ink); }
.push-ask__sub { margin: 2px 0 0; font-size: 14px; color: var(--ink-soft); }
.push-ask__btns { margin: 10px 0 0; display: flex; gap: 14px; align-items: center; }
.push-ask__no { background: none; border: 0; padding: 6px 2px; font: inherit; font-size: 14px; color: var(--ink-soft); text-decoration: underline; cursor: pointer; }
.push-asking .mh, .push-asking .app-tip { display: none !important; }

/* ---------- Christmas Markets (special events) ---------- */
main > .xmas-hero:not(.hero), .xmas-hero { position: relative; overflow: hidden; background: linear-gradient(135deg, #1F4D44 0%, #2E7466 55%, #7A1F2B 140%); color: #fff; padding: 56px 20px 64px; }
.xmas-hero__inner { position: relative; z-index: 1; max-width: 860px; margin: 0 auto; text-align: center; }
.xmas-kicker { margin: 0 0 8px; font-size: 13px; font-weight: 700; letter-spacing: 1.6px; text-transform: uppercase; color: var(--orange, #F3B05C); }
.xmas-hero__title { margin: 0 0 14px; font-size: clamp(34px, 6vw, 56px); line-height: 1.05; letter-spacing: -1px; }
.xmas-hero__lead p { margin: 0 auto; max-width: 680px; font-size: 18px; line-height: 1.55; opacity: .95; }
.xmas-hero__snow { position: absolute; inset: 0; background-image: radial-gradient(2px 2px at 20px 30px, rgba(255,255,255,.55) 50%, transparent 51%), radial-gradient(1.5px 1.5px at 90px 80px, rgba(255,255,255,.45) 50%, transparent 51%), radial-gradient(2.5px 2.5px at 150px 20px, rgba(255,255,255,.35) 50%, transparent 51%), radial-gradient(1.5px 1.5px at 60px 130px, rgba(255,255,255,.4) 50%, transparent 51%); background-size: 180px 160px; opacity: .8; }
.xmas-wrap { max-width: 1180px; margin: 0 auto; padding: 28px 16px 56px; }
.xmas-filter { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin: 0 0 24px; }
.xmas-chip { border: 1.5px solid #CFE0DC; background: #fff; color: var(--teal-dark); border-radius: 999px; padding: 8px 16px; font: inherit; font-size: 15px; font-weight: 600; cursor: pointer; }
.xmas-chip.is-on { background: var(--teal); border-color: var(--teal); color: #fff; }
.xmas-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 20px; }
.xmas-card { display: flex; flex-direction: column; background: #fff; border-radius: 18px; overflow: hidden; border: 1px solid #E3ECEA; box-shadow: 0 6px 20px rgba(18,52,46,.07); }
.xmas-card[hidden] { display: none; }
.xmas-card.is-over { opacity: .65; }
.xmas-card__media { position: relative; aspect-ratio: 16 / 9; background: #E8F1EF; }
.xmas-card__media { overflow: hidden; }
.xmas-card__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.xmas-card__placeholder { position: absolute; inset: 0; background: linear-gradient(135deg, #2E7466, #7A1F2B); }
.xmas-badge { position: absolute; left: 12px; top: 12px; padding: 5px 11px; border-radius: 999px; font-size: 12px; font-weight: 700; letter-spacing: .4px; background: #fff; color: var(--ink); box-shadow: 0 2px 8px rgba(0,0,0,.15); }
.xmas-badge--on { background: #B3261E; color: #fff; }
.xmas-badge--soon { background: #fff; color: var(--teal-dark); }
.xmas-badge--pause { background: #FFF1DD; color: #7A4A00; }
.xmas-badge--over { background: #EEE; color: #555; }
.xmas-card__body { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.xmas-card__where { margin: 0; font-size: 12px; font-weight: 700; letter-spacing: .8px; text-transform: uppercase; color: var(--ink-soft); }
.xmas-card__title { margin: 0 0 4px; font-size: 21px; line-height: 1.2; color: var(--teal-dark); }
.xmas-dates { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.xmas-dates li, .xmas-card__venue { display: flex; gap: 8px; align-items: flex-start; font-size: 15px; color: var(--ink); margin: 0; }
.xmas-dates li:first-child { font-weight: 700; }
.xmas-dates .icon, .xmas-card__venue .icon { width: 16px; height: 16px; flex: 0 0 16px; margin-top: 3px; color: var(--teal); }
.xmas-card__venue { color: var(--ink-soft); }
.xmas-card__note { margin: 2px 0 0; font-size: 14px; font-weight: 600; color: #8A4B00; }
.xmas-card__h3 { margin: 10px 0 2px; font-size: 13px; font-weight: 700; letter-spacing: .8px; text-transform: uppercase; color: var(--ink-soft); }
.xmas-hotels { list-style: none; margin: 0; padding: 0; }
.xmas-hotels li { display: flex; justify-content: space-between; gap: 10px; padding: 6px 0; border-bottom: 1px solid #EEF2F1; font-size: 15px; }
.xmas-hotels li:last-child { border-bottom: 0; }
.xmas-hotels a { color: var(--teal-dark); font-weight: 600; }
.xmas-hotels span { color: var(--ink-soft); white-space: nowrap; }
.xmas-card__actions { margin: auto 0 0; padding-top: 12px; display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }
.xmas-card__site { font-size: 14px; font-weight: 600; color: var(--teal-dark); text-decoration: underline; text-underline-offset: 3px; }
.xmas-small { margin: 26px 0 0; text-align: center; font-size: 13px; color: var(--ink-soft); }
@media (max-width: 600px) { .xmas-hero { padding: 40px 16px 48px; } .xmas-list { grid-template-columns: 1fr; } .xmas-card__actions .btn { white-space: normal; text-align: center; } }
/* Home page: festive banner */
.xmas-promo { padding: 34px var(--page-pad) 0; }
.xmas-promo__card { position: relative; overflow: hidden; max-width: 1180px; margin: 0 auto; display: flex; align-items: center; gap: 22px; padding: 22px 28px; border-radius: 20px; background: linear-gradient(120deg, #1F4D44 0%, #2E7466 50%, #7A1F2B 120%); color: #fff; text-decoration: none; box-shadow: 0 10px 30px rgba(18,52,46,.18); transition: transform .2s ease, box-shadow .2s ease; }
.xmas-promo__card:hover { text-decoration: none; transform: translateY(-2px); box-shadow: 0 14px 36px rgba(18,52,46,.24); }
.xmas-promo__snow { position: absolute; inset: 0; pointer-events: none; background-image: radial-gradient(2px 2px at 20px 30px, rgba(255,255,255,.55) 50%, transparent 51%), radial-gradient(1.5px 1.5px at 90px 70px, rgba(255,255,255,.45) 50%, transparent 51%), radial-gradient(2.5px 2.5px at 150px 18px, rgba(255,255,255,.35) 50%, transparent 51%); background-size: 180px 100px; }
.xmas-promo__icon { position: relative; flex: 0 0 auto; width: 64px; height: 64px; }
.xmas-promo__text { position: relative; flex: 1; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.xmas-promo__kicker { font-size: 12px; font-weight: 700; letter-spacing: 1.4px; text-transform: uppercase; color: var(--orange, #F3B05C); }
.xmas-promo__title { font-size: clamp(22px, 3vw, 30px); font-weight: 700; line-height: 1.15; }
.xmas-promo__sub { font-size: 15px; line-height: 1.45; opacity: .95; }
.xmas-promo__btn { position: relative; flex: 0 0 auto; }
@media (max-width: 700px) { .xmas-promo { padding-top: 24px; } .xmas-promo__card { flex-wrap: wrap; padding: 18px; gap: 14px; } .xmas-promo__icon { width: 48px; height: 48px; } .xmas-promo__icon svg { width: 48px; height: 48px; } .xmas-promo__text { flex-basis: calc(100% - 64px); } .xmas-promo__btn { width: 100%; } }
/* Christmas: falling snow, fairy lights, twinkling tree */
@keyframes xmas-snow { from { background-position: 0 0, 0 0, 0 0, 0 0; } to { background-position: 30px 160px, -20px 160px, 40px 160px, -10px 160px; } }
@keyframes xmas-snow-s { from { background-position: 0 0, 0 0, 0 0; } to { background-position: 20px 100px, -15px 100px, 30px 100px; } }
@keyframes xmas-twinkle { 0%, 100% { opacity: 1; filter: drop-shadow(0 0 4px currentColor); } 50% { opacity: .35; filter: none; } }
@keyframes xmas-star { 0%, 100% { transform: scale(1); filter: drop-shadow(0 0 2px #F3B05C); } 50% { transform: scale(1.18); filter: drop-shadow(0 0 7px #FFD27A); } }
@keyframes xmas-sway { 0%, 100% { transform: rotate(-2.5deg); } 50% { transform: rotate(2.5deg); } }
@keyframes xmas-shine { 0% { left: -60%; } 60%, 100% { left: 130%; } }
.xmas-hero__snow, .xmas-promo__snow { animation: xmas-snow 9s linear infinite; }
.xmas-promo__snow { animation-name: xmas-snow-s; animation-duration: 6s; }
.xmas-hero__snow--far, .xmas-promo__snow--far { right: auto; bottom: auto; opacity: .45; transform: scale(.6); transform-origin: 0 0; width: 170%; height: 170%; animation-duration: 14s; }
.xmas-promo__snow--far { animation-duration: 10s; }
.xmas-lights { position: absolute; left: 0; right: 0; top: 0; height: 26px; display: flex; justify-content: space-around; pointer-events: none; z-index: 2; }
.xmas-lights::before { content: ""; position: absolute; left: -2%; right: -2%; top: -14px; height: 26px; border-bottom: 1.5px solid rgba(255,255,255,.35); border-radius: 0 0 50% 50% / 0 0 14px 14px; }
.xmas-lights i { position: relative; width: 8px; height: 12px; margin-top: 8px; border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; color: #F3B05C; background: currentColor; animation: xmas-twinkle 1.6s ease-in-out infinite; }
.xmas-lights i::before { content: ""; position: absolute; left: 2px; top: -3px; width: 4px; height: 3px; border-radius: 1px; background: rgba(255,255,255,.6); }
.xmas-lights i:nth-child(4n+1) { color: #E05A4F; animation-delay: .2s; }
.xmas-lights i:nth-child(4n+2) { color: #F3B05C; animation-delay: .9s; margin-top: 11px; }
.xmas-lights i:nth-child(4n+3) { color: #8FD3C4; animation-delay: .5s; }
.xmas-lights i:nth-child(4n) { color: #FFFFFF; animation-delay: 1.3s; margin-top: 11px; }
.xmas-lights i:nth-child(n+15) { display: none; }
@media (min-width: 700px) { .xmas-lights i:nth-child(n+15) { display: block; } }
.xmas-lights--hero i:nth-child(n+29) { display: none; }
@media (min-width: 1000px) { .xmas-lights--hero i:nth-child(n+29) { display: block; } }
.xmas-promo__card { padding-top: 34px; }
.xmas-tree { transform-origin: 32px 58px; animation: xmas-sway 4s ease-in-out infinite; }
.xmas-bulb { animation: xmas-twinkle 1.4s ease-in-out infinite; color: #F3B05C; }
.xmas-bulb:nth-of-type(2n) { animation-delay: .7s; }
.xmas-bulb:nth-of-type(3n) { animation-delay: .35s; }
.xmas-star { transform-box: fill-box; transform-origin: center; animation: xmas-star 2.2s ease-in-out infinite; }
.xmas-promo__btn { overflow: hidden; }
.xmas-promo__btn::after { content: ""; position: absolute; top: 0; bottom: 0; left: -60%; width: 40%; background: linear-gradient(100deg, transparent, rgba(255,255,255,.55), transparent); transform: skewX(-20deg); animation: xmas-shine 3.5s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce) {
	.xmas-hero__snow, .xmas-promo__snow, .xmas-lights i, .xmas-tree, .xmas-bulb, .xmas-star, .xmas-promo__btn::after { animation: none !important; }
}
/* Christmas: festive card headings */
@font-face { font-family: "Mountains of Christmas"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/mountains-of-christmas-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Mountains of Christmas"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/mountains-of-christmas-latin-700-normal.woff2") format("woff2"); }
.xmas-card__body { position: relative; background: linear-gradient(180deg, #FFF8F3 0%, #fff 70px); }
.xmas-card__body::before { content: ""; position: absolute; left: 0; right: 0; top: -9px; height: 14px; background: radial-gradient(circle at 10px 12px, #FFF8F3 9px, transparent 10px) 0 0 / 20px 14px repeat-x; filter: drop-shadow(0 -1px 0 rgba(255,255,255,.9)); }
.xmas-card__garland { display: flex; justify-content: space-between; margin: -2px 4px 4px; height: 14px; position: relative; }
.xmas-card__garland::before { content: ""; position: absolute; left: -4px; right: -4px; top: -6px; height: 12px; border-bottom: 1.5px solid #5E8F84; border-radius: 0 0 50% 50% / 0 0 10px 10px; opacity: .6; }
.xmas-card__garland i { position: relative; width: 7px; height: 10px; margin-top: 3px; border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; color: #F3B05C; background: currentColor; animation: xmas-twinkle 1.6s ease-in-out infinite; }
.xmas-card__garland i:nth-child(4n+1) { color: #D93B30; animation-delay: .3s; }
.xmas-card__garland i:nth-child(4n+2) { color: #F3B05C; animation-delay: 1s; margin-top: 5px; }
.xmas-card__garland i:nth-child(4n+3) { color: #3E8C78; animation-delay: .6s; }
.xmas-card__garland i:nth-child(4n) { color: #C9A227; animation-delay: 1.3s; margin-top: 5px; }
.xmas-card__where { color: #A8741A; letter-spacing: 1.2px; }
.xmas-card__where span { color: #8FB9C9; font-size: 11px; }
.xmas-card__title { display: flex; align-items: center; gap: 8px; margin: 2px 0 8px; font-family: "Mountains of Christmas", "Poppins", cursive; font-weight: 700; font-size: 31px; line-height: 1.02; letter-spacing: .2px; color: #B3261E; text-shadow: 0 1px 0 #fff, 0 2px 6px rgba(179,38,30,.18); }
.xmas-card__title span { flex: 1; min-width: 0; }
.xmas-holly { flex: 0 0 34px; filter: drop-shadow(0 1px 1px rgba(0,0,0,.15)); }
.xmas-hero__title { font-family: "Mountains of Christmas", "Poppins", cursive; font-weight: 700; font-size: clamp(44px, 8vw, 76px); letter-spacing: 0; text-shadow: 0 0 18px rgba(243,176,92,.55), 0 3px 0 rgba(0,0,0,.18); }
.xmas-promo__title { font-family: "Mountains of Christmas", "Poppins", cursive; font-size: clamp(28px, 3.6vw, 38px); text-shadow: 0 0 14px rgba(243,176,92,.45); }
@media (prefers-reduced-motion: reduce) { .xmas-card__garland i { animation: none !important; } }
/* Christmas page heading: illustrated night scene */
main > .xmas-hero:not(.hero), .xmas-hero { min-height: 480px; display: flex; align-items: flex-start; justify-content: center; padding: 74px 20px 170px; background: #0A1F33; }
.xs { position: absolute; inset: 0; z-index: 0; overflow: hidden; }
.xs svg { display: block; }
.xs__sky { position: absolute; inset: 0; width: 100%; height: 100%; }
.xs__star { animation: xs-star 3s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
.xs__sparkle { animation: xs-sparkle 3.2s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
@keyframes xs-star { 0%, 100% { opacity: .95; } 50% { opacity: .2; } }
@keyframes xs-sparkle { 0%, 100% { opacity: .2; transform: scale(.5) rotate(0deg); } 50% { opacity: 1; transform: scale(1.15) rotate(45deg); } }
.xs__chalets { position: absolute; left: max(0px, calc(50% - 720px)); bottom: 0; width: clamp(190px, 25vw, 360px); height: auto; }
.xs__tree { position: absolute; right: max(4px, calc(50% - 700px)); bottom: 0; width: clamp(150px, 21vw, 300px); height: auto; filter: drop-shadow(0 0 22px rgba(255, 210, 94, .18)); }
.xs__bigtree { transform-origin: 150px 334px; animation: xs-sway 6s ease-in-out infinite; }
@keyframes xs-sway { 0%, 100% { transform: rotate(-.8deg); } 50% { transform: rotate(.8deg); } }
.xs__light, .xs__bulb { animation: xs-light 1.5s ease-in-out infinite; }
@keyframes xs-light { 0%, 100% { opacity: 1; filter: drop-shadow(0 0 5px currentColor); } 50% { opacity: .35; filter: none; } }
.xs__bulb { color: #FFD27A; }
.xs__window { animation: xs-window 4s ease-in-out infinite; }
@keyframes xs-window { 0%, 100% { opacity: 1; } 50% { opacity: .82; } }
.xs__topstar { transform-box: fill-box; transform-origin: center; animation: xs-topstar 2.4s ease-in-out infinite; }
@keyframes xs-topstar { 0%, 100% { transform: scale(1); filter: drop-shadow(0 0 6px #FFD25E); } 50% { transform: scale(1.14); filter: drop-shadow(0 0 16px #FFE39A); } }
.xs__sleigh { position: absolute; top: 9%; left: 0; width: clamp(180px, 20vw, 280px); height: auto; opacity: 0; animation: xs-sleigh 30s linear infinite 3s; filter: drop-shadow(0 0 6px rgba(243, 210, 122, .6)); }
@keyframes xs-sleigh { 0% { transform: translate(-260px, 40px) rotate(-4deg); opacity: 0; } 3% { opacity: 1; } 45% { transform: translate(calc(100vw + 40px), -30px) rotate(-6deg); opacity: 1; } 47%, 100% { transform: translate(calc(100vw + 60px), -30px); opacity: 0; } }
.xs__snow { position: absolute; inset: 0; pointer-events: none; }
.xs__flake { position: absolute; top: -30px; width: var(--s); height: var(--s); border-radius: 50%; background: #fff; animation: xs-fall var(--d) linear infinite; }
.xs__flake--big { background: none; color: #fff; font-size: var(--s); line-height: 1; width: auto; height: auto; text-shadow: 0 0 6px rgba(255, 255, 255, .7); }
@keyframes xs-fall { 0% { transform: translate(0, -20px) rotate(0deg); } 50% { transform: translate(var(--w), 260px) rotate(180deg); } 100% { transform: translate(0, 540px) rotate(360deg); } }
.xmas-lights--hero { z-index: 3; }
.xmas-hero__inner { position: relative; z-index: 2; }
.xmas-hero__title { text-shadow: 0 0 22px rgba(255, 215, 120, .55), 0 3px 10px rgba(0, 0, 0, .45); }
.xmas-hero__lead p { text-shadow: 0 2px 10px rgba(0, 0, 0, .5); }
@media (max-width: 700px) {
	main > .xmas-hero:not(.hero), .xmas-hero { min-height: 470px; padding: 52px 16px 150px; }
	.xs__chalets { width: 170px; left: -18px; }
	.xs__tree { width: 140px; right: -6px; }
}
@media (prefers-reduced-motion: reduce) {
	.xs__star, .xs__sparkle, .xs__bigtree, .xs__light, .xs__bulb, .xs__window, .xs__topstar, .xs__flake { animation: none !important; }
	.xs__sleigh { display: none; }
	.xs__flake { top: auto; }
}

/* ---------- Add Mooch to your phone: picture guide ---------- */
.app-get__big{text-align:center;margin:6px 0 14px}
.app-get__big .btn{font-size:1.1rem;padding:14px 26px}
.app-get__big[hidden],.app-get__manual[hidden],.app-get__cards[hidden]{display:none}
.app-get__box--warn{border-color:#F3B05C;background:#fff8ee}
.app-get__copy-link{background:none;border:0;padding:0;color:#1a73e8;text-decoration:underline;font:inherit;cursor:pointer;text-align:left}
.app-get__cards{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;counter-reset:step}
.app-get__cards li{counter-increment:step;display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;font-size:.92rem;line-height:1.4}
.app-get__cards li span::before{content:counter(step);display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#419282;color:#fff;font-weight:700;font-size:.8rem;margin-right:6px;vertical-align:1px}
.app-shot{width:100%;max-width:150px;height:auto;display:block}
.app-shot__ring{animation:appRing 1.4s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
@keyframes appRing{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(1.12)}}
@media (max-width:560px){.app-get__cards{grid-template-columns:1fr;gap:18px}.app-get__cards li{flex-direction:row;text-align:left}.app-shot{max-width:130px;flex:0 0 130px}}
@media (prefers-reduced-motion:reduce){.app-shot__ring,.app-point__arrow{animation:none}}
.app-point{position:fixed;inset:0;z-index:100000;background:rgba(15,25,30,.78);color:#fff}
.app-point[hidden]{display:none}
.app-point__card{position:absolute;left:16px;right:16px;top:30%;max-width:420px;margin:0 auto;background:#fff;color:#1f2a2e;border-radius:16px;padding:18px 20px;text-align:center;box-shadow:0 10px 40px rgba(0,0,0,.3)}
.app-point__step{margin:0 0 14px;font-size:1.05rem;line-height:1.45;white-space:pre-line;text-align:left}
.app-point__arrow{position:absolute;width:46px;height:70px;animation:appBounce 1s ease-in-out infinite}
.app-point--bottom-right .app-point__arrow{right:18px;bottom:62px}
.app-point--bottom-middle .app-point__arrow{left:calc(50% - 23px);bottom:52px}
.app-point--top-right .app-point__arrow{right:20px;top:8px;transform:rotate(180deg);animation-name:appBounceUp}
@keyframes appBounce{0%,100%{translate:0 0}50%{translate:0 12px}}
@keyframes appBounceUp{0%,100%{translate:0 0}50%{translate:0 -12px}}
.app-tip__how{padding:8px 14px;flex:0 0 auto;white-space:nowrap}
.app-tip__how[hidden]{display:none}
body:has(.app-point:not([hidden])) .mh{display:none!important}
.app-point--bottom-right .app-point__arrow{bottom:8px}
.app-point--bottom-middle .app-point__arrow{bottom:8px}
.push-on[hidden]{display:none}

/* Speed: Christmas animations that the phone's graphics chip can run on its own
   (movement and fading only – no repainting every frame). These replace the versions above. */
@keyframes xmas-snow { from { translate: 0 0; } to { translate: 0 160px; } }
@keyframes xmas-snow-s { from { translate: 0 0; } to { translate: 0 100px; } }
@keyframes xmas-snow-far { from { translate: 0 0; } to { translate: 0 96px; } }
@keyframes xmas-snow-far-s { from { translate: 0 0; } to { translate: 0 60px; } }
.xmas-hero__snow { top: -160px; will-change: translate; }
.xmas-promo__snow { top: -100px; will-change: translate; }
.xmas-hero__snow--far { top: -96px; animation-name: xmas-snow-far; }
.xmas-promo__snow--far { top: -60px; animation-name: xmas-snow-far-s; }
@keyframes xmas-twinkle { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }
.xmas-lights i, .xmas-bulb { filter: drop-shadow(0 0 3px currentColor); }
@keyframes xmas-star { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.18); } }
.xmas-star { filter: drop-shadow(0 0 4px #FFD27A); }
@keyframes xmas-shine { 0% { transform: translateX(0) skewX(-20deg); } 60%, 100% { transform: translateX(475%) skewX(-20deg); } }
@keyframes xs-light { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }
.xs__light, .xs__bulb { filter: drop-shadow(0 0 4px currentColor); }
@keyframes xs-topstar { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.14); } }
.xs__topstar { filter: drop-shadow(0 0 10px #FFE39A); }
.hero__tagline { margin: 6px 0 0; font-size: clamp(22px, 2.6vw, 30px); line-height: 1.2; font-weight: 600; color: #fff; }
.hero__tagline + .hero__text { margin-top: 14px; }
@media (max-width: 480px) { .hero-search__field input::placeholder { font-size: 13px; letter-spacing: -.2px; } }
@media (max-width: 560px) { .hero-search { gap: 8px; padding-left: 20px; } }
/* "In the press" badge on hotel pages and cards */
.press-badge { display: inline-flex; align-items: center; gap: 7px; margin: 0 0 12px; padding: 6px 12px; border-radius: 999px; background: #FFF4E2; border: 1px solid #F3B05C; color: #7A4A0C; font-size: 14px; font-weight: 600; line-height: 1.3; }
.press-badge svg { flex: 0 0 auto; color: #E8892B; }
.result-card .press-badge { margin: 4px 0 6px; font-size: 13px; padding: 4px 10px; }
/* Map pins: hovering a pin (or its card) turns it orange */
.leaflet-marker-icon.mooch-pin--hotel { transition: background-color .15s ease, transform .15s ease; cursor: pointer; }
.leaflet-marker-icon.mooch-pin--hotel:hover, .leaflet-marker-icon.mooch-pin--hotel.is-hot { background: var(--orange); }
.result-card.is-hot { box-shadow: 0 0 0 2px var(--orange), 0 6px 18px rgba(0,0,0,.08); }
.map-unplaced { margin: 8px 0 0; font-size: 13px; color: var(--ink-soft); }
/* Links Golf county pages: map of the courses */
.area-course-map { max-width: var(--content); margin: 0 auto 28px; }
.area-course-map .course-map { height: 440px; border-radius: 16px; overflow: hidden; }
.leaflet-marker-icon.mooch-pin--course { transition: background-color .15s ease; cursor: pointer; }
.area-course-map .leaflet-marker-icon.mooch-pin--course:hover, .area-course-map .leaflet-marker-icon.mooch-pin--course.is-hot { background: var(--teal); }
li[data-hotel].is-hot .loc-card { box-shadow: 0 0 0 3px var(--orange), 0 8px 22px rgba(0,0,0,.12); }
@media (max-width: 700px) { .area-course-map .course-map { height: 340px; } }

/* Keeping the map in view */
/* Computers: on Links Golf county pages the map sits beside the cards and stays put while you scroll. */
@media (min-width: 1001px) {
	main > .location-cards:has(> .area-course-map) { display: grid; grid-template-columns: minmax(0, 1fr) min(42%, 540px); gap: 28px; align-items: start; }
	.location-cards:has(> .area-course-map) > .area-course-map { grid-column: 2; grid-row: 1; position: sticky; top: 70px; margin: 0; max-width: none; width: 100%; }
	.location-cards:has(> .area-course-map) > .loc-grid { grid-column: 1; grid-row: 1; margin: 0; }
	.location-cards:has(> .area-course-map) > .loc-grid > li { flex-basis: calc((100% - 31px) / 2); }
	.area-course-map .course-map { height: calc(100vh - 160px); min-height: 420px; }
	.results__map { top: 70px; }
}
/* Phones: a "Map" button once the map has scrolled away; it opens the map full screen. */
.map-fab { position: fixed; left: 50%; bottom: 18px; transform: translateX(-50%); z-index: 9990; display: inline-flex; align-items: center; gap: 8px; padding: 12px 22px; border: 0; border-radius: 999px; background: #1F2A2E; color: #fff; font: 700 15px/1 var(--font); box-shadow: 0 8px 24px rgba(0,0,0,.28); cursor: pointer; }
.map-fab[hidden] { display: none; }
.map-fab svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linejoin: round; }
.map-full__close { display: none; }
.is-full { position: fixed !important; inset: 0; z-index: 100000; margin: 0 !important; max-width: none !important; width: auto !important; background: #fff; padding: 58px 0 0 !important; top: 0 !important; }
.is-full .course-map { height: 100% !important; min-height: 0 !important; border-radius: 0 !important; }
.is-full .map-full__close { display: inline-flex; align-items: center; gap: 6px; position: absolute; top: 9px; left: 12px; z-index: 2; padding: 10px 16px; border: 0; border-radius: 999px; background: var(--teal); color: #fff; font: 700 15px/1 var(--font); cursor: pointer; }
.is-full .map-full__close::before { content: "←"; }
.is-full .course-map__key, .is-full .map-unplaced, .is-full .map-key { display: none; }
html.map-is-full, html.map-is-full body { overflow: hidden; }
html.map-is-full .mh, html.map-is-full .app-tip { display: none !important; }

/* Links Golf county pages: green fees table */
.fees-table { max-width: var(--content); margin: 40px auto 0; background: #fff; border: 1px solid #E3ECEA; border-radius: 18px; box-shadow: 0 6px 22px rgba(18,52,46,.06); overflow: hidden; }
.fees-table__head { padding: 22px 24px 14px; background: linear-gradient(120deg, #1F4D44, #2E7466); color: #fff; }
.fees-table__head h2 { margin: 0 0 4px; font-size: clamp(20px, 2.2vw, 26px); color: #fff; }
.fees-table__head p { margin: 0; font-size: 14px; opacity: .9; }
.fees-table table { width: 100%; border-collapse: collapse; font-size: 15px; }
.fees-table th { text-align: left; padding: 12px 24px; font-size: 12px; font-weight: 700; letter-spacing: .8px; text-transform: uppercase; color: var(--ink-soft, #5b6470); background: #F6F8F8; border-bottom: 1px solid #E3ECEA; }
.fees-table td { padding: 14px 24px; border-bottom: 1px solid #EEF2F1; vertical-align: middle; }
.fees-table tbody tr { transition: background-color .15s ease; }
.fees-table tbody tr:hover, .fees-table tbody tr.is-hot { background: #FFF6E9; }
.fees-table tbody tr:last-child td { border-bottom: 0; }
.fees-table__course { font-weight: 600; }
.fees-table__course a { color: var(--teal-dark, #2E7466); text-decoration: none; }
.fees-table__course a:hover { text-decoration: underline; }
.fees-table__rank { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; margin-right: 12px; border-radius: 50%; background: #F3B05C; color: #fff; font-size: 13px; font-weight: 700; flex: 0 0 auto; vertical-align: middle; }
.fees-table__town { color: var(--ink-soft, #5b6470); }
.fees-table__num { text-align: right; white-space: nowrap; position: relative; min-width: 150px; }
.fees-table td.fees-table__num { padding-bottom: 18px; }
.fees-table__num strong { font-size: 17px; color: var(--ink, #1f2a2e); position: relative; }
.fees-table__conv { display: block; font-size: 12px; color: var(--ink-soft, #5b6470); position: relative; }
.fees-table__range { display: block; font-size: 12px; color: var(--ink-soft, #5b6470); position: relative; }
.fees-table__bar { position: absolute; right: 24px; bottom: 8px; height: 4px; width: calc((100% - 48px) * var(--w)); max-width: calc(100% - 48px); border-radius: 4px; background: linear-gradient(90deg, #F8D6A8, #F3B05C); }
.fees-table__ask { font-size: 14px; color: var(--ink-soft, #5b6470); font-style: italic; }
.fees-table__foot { margin: 0; padding: 12px 24px 16px; font-size: 12.5px; color: var(--ink-soft, #5b6470); background: #F6F8F8; border-top: 1px solid #E3ECEA; }
@media (min-width: 1001px) {
	main > .location-cards:has(> .area-course-map) > .fees-table { grid-column: 1; grid-row: 2; margin: 8px 0 0; max-width: none; }
	main > .location-cards:has(> .area-course-map) > .area-course-map { grid-row: 1 / span 2; }
}
@media (max-width: 640px) {
	.fees-table th, .fees-table td { padding-left: 14px; padding-right: 14px; }
	.fees-table__town { display: none; }
	.fees-table th:nth-child(2) { display: none; }
	.fees-table__bar { right: 14px; width: calc((100% - 28px) * var(--w)); }
	.fees-table__rank { width: 22px; height: 22px; margin-right: 8px; font-size: 12px; }
}
.fees-table th.fees-table__num { text-align: right; }

/* ---------- Santa's Magical Days Out (christmas-for-kids) ---------- */
.kx-hero { background: #1B1145 !important; }
.ks .xs__sleigh.ks__sleigh { top: 7%; width: clamp(220px, 24vw, 330px); animation-duration: 22s; animation-delay: 1s; filter: drop-shadow(0 0 8px rgba(255, 220, 140, .7)); }
.ks__nose { animation: ks-nose 1s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
@keyframes ks-nose { 0%, 100% { filter: drop-shadow(0 0 2px #FF3B30); opacity: .8; } 50% { filter: drop-shadow(0 0 8px #FF6B5E) drop-shadow(0 0 14px #FF3B30); opacity: 1; } }
.ks__left { position: absolute; left: max(-10px, calc(50% - 730px)); bottom: 0; width: clamp(220px, 28vw, 400px); height: auto; }
.ks__presents { position: absolute; right: max(0px, calc(50% - 720px)); bottom: 0; width: clamp(180px, 23vw, 330px); height: auto; filter: drop-shadow(0 0 20px rgba(255, 140, 200, .2)); }
.ks__wave { transform-box: view-box; transform-origin: 235px 150px; animation: ks-wave 1.6s ease-in-out infinite; }
@keyframes ks-wave { 0%, 100% { transform: rotate(0deg); } 50% { transform: rotate(-22deg); } }
.ks__ginger { animation: ks-ginger 1.8s ease-in-out infinite; }
@keyframes ks-ginger { 0%, 100% { transform: translate(290px, 112px) rotate(-7deg); } 25% { transform: translate(290px, 104px) rotate(0deg); } 50% { transform: translate(290px, 112px) rotate(7deg); } 75% { transform: translate(290px, 104px) rotate(0deg); } }
.ks__sign { transform-box: fill-box; transform-origin: 10% 0; animation: ks-sign 4s ease-in-out infinite; }
@keyframes ks-sign { 0%, 100% { transform: rotate(-2deg); } 50% { transform: rotate(3deg); } }
.ks__gift { transform-box: fill-box; transform-origin: 50% 100%; animation: ks-gift 2.4s ease-in-out infinite; }
@keyframes ks-gift { 0%, 70%, 100% { transform: translateY(0) scale(1, 1); } 78% { transform: translateY(0) scale(1.08, .9); } 86% { transform: translateY(-12px) scale(.96, 1.06); } 93% { transform: translateY(0) scale(1.04, .96); } }
.kx .xmas-hero__title { background: linear-gradient(90deg, #FFE9A8, #FFFFFF 30%, #FFB3C7 55%, #FFE9A8 80%); background-size: 200% auto; -webkit-background-clip: text; background-clip: text; color: transparent; animation: kx-shimmer 6s linear infinite; filter: drop-shadow(0 0 16px rgba(255, 200, 230, .45)) drop-shadow(0 3px 8px rgba(0,0,0,.4)); text-shadow: none; }
@keyframes kx-shimmer { to { background-position: -200% center; } }
.kx-hero__count { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 18px 0 0; }
.kx-hero__count span { padding: 6px 14px; border-radius: 999px; background: rgba(255, 255, 255, .14); border: 1px solid rgba(255, 255, 255, .3); color: #fff; font-size: 14px; font-weight: 700; backdrop-filter: blur(4px); }
.kx-filters { display: flex; flex-direction: column; align-items: center; gap: 10px; margin-bottom: 26px; }
.kx-filters .xmas-filter { margin: 0; justify-content: center; }
.kx .xmas-chip.is-on { background: #C2185B; border-color: #C2185B; }
.kx-filters .xmas-filter + .xmas-filter .xmas-chip { font-size: 14px; padding: 6px 14px; }
.kx-filters .xmas-filter + .xmas-filter .xmas-chip.is-on { background: var(--teal); border-color: var(--teal); }
.kx-card { animation: kx-pop .6s cubic-bezier(.2, 1.4, .4, 1) both; animation-delay: calc(var(--i, 0) * 70ms); }
@keyframes kx-pop { from { opacity: 0; transform: translateY(18px) scale(.97); } to { opacity: 1; transform: none; } }
.kx-card:hover .kx-art { transform: scale(1.08) rotate(-2deg); }
.kx-card__media { display: flex; align-items: center; justify-content: center; background: linear-gradient(150deg, #3A1F6E, #7A2D6B); aspect-ratio: 16 / 8; }
.kx-card--lights .kx-card__media { background: linear-gradient(150deg, #0B2A4A, #3A1F6E); }
.kx-card--train .kx-card__media { background: linear-gradient(150deg, #10403A, #2E7466); }
.kx-card--sleepover .kx-card__media { background: linear-gradient(150deg, #1B1145, #2F4AA0); }
.kx-card--resort .kx-card__media { background: linear-gradient(150deg, #1F4D44, #3E8C78); }
.kx-card--wonderland .kx-card__media, .kx-card--show .kx-card__media { background: linear-gradient(150deg, #7A1F2B, #C2185B); }
.kx-card--farm .kx-card__media { background: linear-gradient(150deg, #4A2E1A, #8C5A2E); }
.kx-card--skating .kx-card__media { background: linear-gradient(150deg, #13406B, #5AA8D6); }
.kx-card__snow { position: absolute; inset: -40px 0 0; pointer-events: none; background-image: radial-gradient(2px 2px at 20px 30px, rgba(255,255,255,.7) 50%, transparent 51%), radial-gradient(1.5px 1.5px at 90px 70px, rgba(255,255,255,.55) 50%, transparent 51%), radial-gradient(2.5px 2.5px at 150px 18px, rgba(255,255,255,.5) 50%, transparent 51%); background-size: 180px 100px; animation: kx-snow 7s linear infinite; }
@keyframes kx-snow { to { transform: translateY(100px); } }
.kx-art { position: relative; width: 44%; max-width: 170px; height: auto; transition: transform .35s cubic-bezier(.2, 1.4, .4, 1); filter: drop-shadow(0 6px 14px rgba(0,0,0,.3)); }
.kx-bulb { animation: xs-light 1.4s ease-in-out infinite; }
.kx-puff { transform-box: fill-box; transform-origin: center; animation: kx-puff 1.8s ease-out infinite; }
@keyframes kx-puff { 0% { transform: translate(0, 4px) scale(.5); opacity: .9; } 100% { transform: translate(-10px, -10px) scale(1.6); opacity: 0; } }
.kx-wheel { transform-box: view-box; transform-origin: 40px 30px; animation: kx-spin 10s linear infinite; }
@keyframes kx-spin { to { transform: rotate(360deg); } }
.kx-window { animation: xs-window 2.5s ease-in-out infinite; }
.kx-zz { animation: kx-zz 2.4s ease-in-out infinite; }
@keyframes kx-zz { 0%, 100% { opacity: .2; transform: translate(0, 4px); } 50% { opacity: 1; transform: translate(4px, -4px); } }
.kx-nose { animation: ks-nose 1s ease-in-out infinite; }
.kx-star { transform-box: fill-box; transform-origin: center; animation: xs-topstar 2.2s ease-in-out infinite; }
.kx-blade { animation: kx-zz 2s ease-in-out infinite; }
.kx-kind { position: absolute; right: 12px; top: 12px; padding: 5px 11px; border-radius: 999px; font-size: 12px; font-weight: 700; background: rgba(255,255,255,.18); color: #fff; border: 1px solid rgba(255,255,255,.35); }
.kx-card[data-k="break"] .kx-kind { background: #F3B05C; border-color: #F3B05C; color: #3A1F00; }
.xmas-badge--sold { background: #1F2A2E; color: #fff; }
.xmas-badge--hot { background: #C2185B; color: #fff; animation: kx-pulse 1.6s ease-in-out infinite; }
.xmas-badge--sale { background: #2E7D32; color: #fff; }
@keyframes kx-pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(194, 24, 91, .55); } 50% { box-shadow: 0 0 0 8px rgba(194, 24, 91, 0); } }
.kx-card .xmas-card__title { font-family: "Mountains of Christmas", "Poppins", cursive; font-size: 27px; line-height: 1.1; color: #7A1F4B; }
.kx-blurb { margin-top: 4px; }
.kx-facts { list-style: none; margin: 12px 0 4px; padding: 12px 14px; display: grid; gap: 7px; border-radius: 12px; background: #FFF6FA; border: 1.5px dashed #F4B6CD; font-size: 14.5px; line-height: 1.4; }
.kx-facts li { display: flex; gap: 9px; align-items: flex-start; }
.kx-facts .icon, .kx-facts svg { flex: 0 0 18px; width: 18px; height: 18px; margin-top: 1px; color: #C2185B; }
.kx-ic { flex: 0 0 18px; text-align: center; font-size: 15px; line-height: 1.3; }
.kx-fam { font-style: normal; font-size: 11px; font-weight: 700; padding: 1px 7px; border-radius: 999px; background: #E3F2EE; color: var(--teal-dark); white-space: nowrap; }
.kx-empty { text-align: center; padding: 30px 0; font-weight: 600; }
.kx-also { text-align: center; margin: 22px 0 10px; font-weight: 700; }
.kx-also a { display: inline-block; padding: 12px 20px; border-radius: 999px; background: #E8F1EF; color: var(--teal-dark); text-decoration: none; }
.kx-also a:hover { background: #D4E6E1; }
@media (max-width: 700px) {
	.ks__left { width: 210px; left: -26px; }
	.ks__presents { width: 150px; right: -8px; }
	.ks .xs__sleigh.ks__sleigh { top: 4%; }
}
@media (prefers-reduced-motion: reduce) {
	.ks__nose, .ks__wave, .ks__ginger, .ks__sign, .ks__gift, .kx .xmas-hero__title, .kx-card, .kx-card__snow, .kx-bulb, .kx-puff, .kx-wheel, .kx-window, .kx-zz, .kx-nose, .kx-star, .kx-blade, .xmas-badge--hot { animation: none !important; }
	.ks__ginger { transform: translate(290px, 112px); }
}

/* Home page: the Christmas banner fades between Christmas Markets and Santa's Magical Days Out */
.xmas-promo__deck { display: grid; max-width: 1180px; margin: 0 auto; }
.xmas-promo__deck > .xmas-promo__card { grid-area: 1 / 1; width: 100%; opacity: 0; visibility: hidden; transform: scale(.985); transition: opacity .9s ease, transform .9s ease, visibility 0s linear .9s, box-shadow .2s ease; }
.xmas-promo__deck > .xmas-promo__card.is-on { opacity: 1; visibility: visible; transform: none; transition: opacity .9s ease, transform .9s ease, visibility 0s, box-shadow .2s ease; }
.xmas-promo__deck > .xmas-promo__card.is-on:hover { transform: translateY(-2px); }
.xmas-promo__dots { display: flex; justify-content: center; gap: 8px; margin-top: 10px; }
.xmas-promo__dots button { width: 10px; height: 10px; padding: 0; border: 0; border-radius: 50%; background: #CFE0DC; cursor: pointer; transition: width .3s ease, background .3s ease; }
.xmas-promo__dots button.is-on { width: 26px; border-radius: 6px; background: var(--teal); }
.xmas-promo__card--kids { background: linear-gradient(120deg, #2A1760 0%, #5B2A86 50%, #C2185B 115%); box-shadow: 0 10px 30px rgba(58, 31, 110, .25); }
.xmas-promo__card--kids .xmas-promo__kicker { color: #FFD25E; }
.xmas-promo__card--kids .xmas-promo__title { text-shadow: 0 0 14px rgba(255, 179, 199, .6); }
.kx-hat { transform-origin: 30px 50px; animation: kx-hat 2.6s ease-in-out infinite; }
@keyframes kx-hat { 0%, 100% { transform: rotate(-4deg); } 50% { transform: rotate(4deg); } }
.kx-gift { transform-box: fill-box; transform-origin: 50% 100%; animation: ks-gift 2s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce) {
	.xmas-promo__deck > .xmas-promo__card { transition: none; }
	.kx-hat, .kx-gift { animation: none !important; }
}

/* Park / landscape / lake / mountain pages: "About" panel */
.area-about { max-width: 860px; margin: 6px 0 26px; padding: 20px 22px; border-radius: 16px; background: #F3F8F7; border: 1px solid #DCEAE6; }
.area-about__title { margin: 0 0 8px; font-size: 1.25rem; color: var(--teal-dark); }
.area-about__facts { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 10px; }
.area-about__facts span { padding: 3px 11px; border-radius: 999px; background: #fff; border: 1px solid #CFE0DC; font-size: 13px; font-weight: 600; color: var(--teal-dark); }
.area-about__text { margin: 0 0 14px; font-size: 1.02rem; line-height: 1.6; }
.area-about__links { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin: 0; }
.area-about__link { display: inline-flex; align-items: center; gap: 5px; font-weight: 600; color: var(--teal-dark); }
.area-about__link .icon, .area-about__link svg { width: 16px; height: 16px; }
.leaflet-marker-icon.mooch-pin--landmark { background: #2E7D4F; color: var(--white); border-width: 4px; box-shadow: 0 3px 12px rgba(0,0,0,.35); }
.mooch-pin--landmark svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linejoin: round; stroke-linecap: round; }
.map-key__dot--landmark { background: #2E7D4F; }
.area-about__map { max-width: 860px; margin: -10px 0 28px; }
.area-about__map .course-map { height: 380px; border-radius: 16px; overflow: hidden; }
@media (max-width: 700px) { .area-about__map .course-map { height: 300px; } }
/* Scripts placed straight inside <main> must never show (main > * is display:flow-root). */
main > script { display: none !important; }
/* Host area: news bar form */
.ha-news-form label:has(> input[type=checkbox]) { flex-direction: row; align-items: center; gap: 8px; font-size: 15px; color: var(--ink); }
.ha-news-form .nb-row input { width: auto !important; }
.ha-news-form .description { font-weight: 400; color: var(--ink-soft); font-size: 13px; }
.ha-news-preview { margin: 0 0 18px; }
.host-area input[type=url] { min-height: 42px; padding: 8px 10px; border: 1px solid #CFD6D4; border-radius: 10px; font: inherit; font-size: 15px; font-weight: 400; color: var(--ink); background: var(--white); box-sizing: border-box; }
.ha-sub { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.ha-sub .btn { margin-left: auto; }
.ha-sub--ended { background: #FDECEC; border-left-color: #C62828; }
.area-pins-map { max-width: none; margin: 34px 0 10px; }
.area-pins-map .course-map { height: 460px; }
@media (max-width: 700px) { .area-pins-map .course-map { height: 340px; } }

/* Written guides on Be Inspired pages (e.g. Cycling › Channel Islands) */
.act-guide { max-width: 1180px; margin: 0 auto; padding: 22px 24px; border-radius: 16px; background: #F3F8F7; border: 1px solid #DCEAE6; }
.act-guide__intro { margin: 0 0 16px; font-size: 1.05rem; line-height: 1.6; max-width: 880px; }
.act-guide__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 26px; }
.act-guide__h { margin: 0 0 6px; font-size: 1.05rem; color: var(--teal-dark); }
.act-guide__part p, .act-guide--one p { margin: 0; line-height: 1.55; }
.act-guide__list { margin: 0; padding-left: 18px; line-height: 1.55; }
.act-guide__list li { margin-bottom: 5px; }
.act-guide__more { margin: 16px 0 0; font-weight: 600; color: var(--teal-dark); }
.act-guide--one { max-width: 880px; }
@media (max-width: 760px) { .act-guide__grid { grid-template-columns: 1fr; } .act-guide { padding: 18px 16px; } }
.act-guide__grid--top { margin-bottom: 6px; }
.act-guide__where { margin: 18px 0 10px; padding-top: 14px; border-top: 1px solid #DCEAE6; font-size: 1.15rem; color: var(--teal-dark); }
.act-guide__outro { margin: 16px 0 0; padding: 12px 14px; border-radius: 10px; background: #FFF6EA; border-left: 4px solid var(--orange); line-height: 1.55; }
.act-guide__stay { display: block; margin-top: 5px; font-size: .9rem; color: var(--ink-soft); }
.act-guide__stay a { font-weight: 600; color: var(--teal-dark); }
.act-guide__stay span { color: var(--ink-soft); font-size: .85em; }
.act-guide__grid--after { margin-top: 16px; padding-top: 14px; border-top: 1px solid #DCEAE6; grid-template-columns: 1fr; }
.act-guide a { color: var(--teal-dark); }
.act-guide__grid > .act-guide__part:only-child { grid-column: 1 / -1; }
.act-guide__grid--top > .act-guide__part:only-child .act-guide__list { columns: 2; column-gap: 26px; }
.act-guide__grid--top > .act-guide__part:only-child .act-guide__list li { break-inside: avoid; }
@media (max-width: 760px) { .act-guide__grid--top > .act-guide__part:only-child .act-guide__list { columns: 1; } }

/* ---------- Plan my trip (/plan-my-trip/) ---------- */
.tp { background: #FBFAF7; padding-bottom: 72px; }
main.tp > .tp-wrap { background: transparent; }
.tp-wrap { max-width: 980px; margin: 0 auto; padding: 0 var(--page-pad); }
main.tp > .tp-hero { background: linear-gradient(160deg, var(--teal-dark), var(--teal)); color: #fff; padding: 56px 0 88px; }
.tp-hero h1 { font-size: clamp(28px, 4.4vw, 44px); line-height: 1.15; margin: 6px 0 14px; max-width: 760px; }
.tp-lead { font-size: 17px; max-width: 700px; opacity: .95; margin: 0; }
.tp-kicker { text-transform: uppercase; letter-spacing: .12em; font-size: 12px; font-weight: 700; margin: 0; color: var(--orange); }
.tp-form { background: #fff; border-radius: 18px; box-shadow: 0 10px 40px rgba(30,60,55,.12); padding: clamp(20px, 4vw, 40px); margin-top: -56px; position: relative; }
.tp-step { border: 0; padding: 0; margin: 0 0 30px; min-width: 0; }
.tp-step legend { display: flex; align-items: center; gap: 12px; font-size: 20px; font-weight: 700; color: var(--ink); margin-bottom: 16px; padding: 0; }
.tp-step legend span { width: 30px; height: 30px; border-radius: 50%; background: var(--orange); color: #fff; font-size: 15px; display: grid; place-items: center; }
.tp-row { display: grid; grid-template-columns: 1fr; gap: 14px; margin-bottom: 18px; }
@media (min-width: 720px) { .tp-row { grid-template-columns: 2fr 1fr 1fr; } .tp-pdf .tp-row { grid-template-columns: 1fr 1.6fr; } }
.tp-field { display: flex; flex-direction: column; gap: 6px; font-size: 14px; font-weight: 600; color: var(--ink-soft); }
.tp-field input, .tp-field select { font: inherit; font-weight: 400; color: var(--ink); height: 48px; padding: 0 14px; border: 1.5px solid var(--line); border-radius: 10px; background: #fff; width: 100%; }
.tp-field input:focus, .tp-field select:focus { outline: none; border-color: var(--teal); box-shadow: 0 0 0 3px rgba(65,146,130,.18); }
.tp-label { font-weight: 700; font-size: 15px; margin: 0 0 10px; }
.tp-label small { font-weight: 400; color: var(--ink-soft); }
.tp-hint { font-size: 13px; color: var(--ink-soft); margin: 8px 0 0; }
.tp-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.tp-chip, .tp-radio { position: relative; cursor: pointer; }
.tp-chip input, .tp-radio input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.tp-chip span, .tp-radio span { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 8px 16px; border-radius: 999px; border: 1.5px solid var(--line); background: #fff; font-size: 14px; transition: background .15s, border-color .15s; }
.tp-chip input:checked + span, .tp-radio input:checked + span { background: #E6F1EE; border-color: var(--teal); color: var(--teal-dark); font-weight: 600; }
.tp-chip input:focus-visible + span, .tp-radio input:focus-visible + span { box-shadow: 0 0 0 3px rgba(65,146,130,.3); }
.tp-slots { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 18px; margin-bottom: 22px; }
.tp-slot { background: var(--card); border-radius: 14px; padding: 16px; }
.tp-slot .tp-radio { display: block; margin-bottom: 6px; }
.tp-slot .tp-radio span { width: 100%; border-radius: 10px; }
.tp-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.tp-go { font-size: 17px; padding: 14px 34px; border: 0; cursor: pointer; border-radius: 10px; }
.tp-go:disabled { opacity: .7; cursor: wait; }
.tp-error { background: #FDECEA; color: #8A2A1E; padding: 10px 14px; border-radius: 10px; font-size: 14px; }
.tp-note { background: #FFF6E8; border-radius: 10px; padding: 10px 14px; font-size: 14px; }
.tp-plan { margin-top: 40px; scroll-margin-top: 90px; }
.tp-plan.is-busy { opacity: .5; pointer-events: none; }
.tp-plan__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 18px; }
.tp-plan__head h2 { margin: 4px 0 0; font-size: clamp(24px, 3.4vw, 34px); }
.tp-link { background: none; border: 0; color: var(--teal-dark); font: inherit; font-weight: 600; cursor: pointer; padding: 6px 0; }
.tp-stay { background: #fff; border-radius: 16px; box-shadow: 0 4px 22px rgba(30,60,55,.08); padding: 20px; display: grid; gap: 18px; margin-bottom: 26px; }
@media (min-width: 820px) { .tp-stay { grid-template-columns: 1.6fr 1fr; } }
.tp-stay__main { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; }
.tp-stay__main img { width: 170px; height: 125px; object-fit: cover; border-radius: 12px; }
.tp-stay h3 { margin: 4px 0; font-size: 21px; }
.tp-stay h3 a { color: var(--teal-dark); }
.tp-stay p { margin: 0 0 12px; color: var(--ink-soft); font-size: 14px; }
.tp-stay__alt button { display: block; width: 100%; text-align: left; background: var(--card); border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; margin-bottom: 8px; font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; color: var(--ink); }
.tp-stay__alt button:hover { border-color: var(--teal); }
.tp-stay__alt small { display: block; font-weight: 400; color: var(--ink-soft); }
.tp-day { background: #fff; border-radius: 16px; padding: 20px 20px 14px; margin-bottom: 18px; box-shadow: 0 2px 14px rgba(30,60,55,.06); }
.tp-day h3 { margin: 0 0 12px; font-size: 20px; color: var(--teal-dark); border-bottom: 3px solid var(--orange); display: inline-block; padding-bottom: 2px; }
.tp-day h3 small { font-size: 14px; color: var(--ink-soft); font-weight: 500; margin-left: 6px; }
.tp-day ol { list-style: none; margin: 0; padding: 0; }
.tp-item { display: grid; grid-template-columns: 82px 1fr auto; gap: 12px; align-items: start; padding: 12px 0; border-top: 1px solid var(--line); }
.tp-item:first-child { border-top: 0; }
.tp-item__slot { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-soft); padding-top: 4px; }
.tp-item__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.tp-item__cat { font-size: 12px; font-weight: 600; color: #B57521; }
.tp-item__name { font-size: 16px; }
.tp-item__name a { color: var(--ink); text-decoration: underline; text-decoration-color: rgba(65,146,130,.4); text-underline-offset: 3px; }
.tp-item__meta, .tp-item__note { font-size: 13px; color: var(--ink-soft); }
.tp-item--stay .tp-item__name, .tp-item--free .tp-item__name { font-weight: 600; color: var(--teal-dark); }
.tp-item__tools { display: flex; gap: 4px; }
.tp-item__tools button { height: 32px; min-width: 32px; padding: 0 8px; border: 1px solid var(--line); border-radius: 8px; background: #fff; cursor: pointer; font-size: 13px; color: var(--ink); }
.tp-item__tools button:hover { border-color: var(--teal); color: var(--teal-dark); }
.tp-item__tools button:disabled { opacity: .4; }
@media (max-width: 640px) {
	.tp-item { grid-template-columns: 1fr; gap: 6px; }
	.tp-item__tools span { display: inline; }
}
@media (min-width: 641px) and (max-width: 860px) { .tp-item__tools span { display: none; } }
.tp-empty { color: var(--ink-soft); font-size: 14px; padding: 10px 0; }
.tp-add { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding-top: 12px; border-top: 1px dashed var(--line); font-size: 13px; color: var(--ink-soft); }
.tp-add select { height: 34px; border: 1px solid var(--line); border-radius: 8px; padding: 0 8px; font: inherit; font-size: 13px; background: #fff; }
.tp-add button { height: 34px; padding: 0 14px; border: 0; border-radius: 8px; background: #E6F1EE; color: var(--teal-dark); font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; }
.tp-pdf { background: linear-gradient(160deg, #FFF6E8, #fff); border: 1.5px solid #F7D9AE; border-radius: 18px; padding: clamp(20px, 4vw, 34px); margin-top: 28px; }
.tp-pdf h3 { margin: 0 0 6px; font-size: 23px; }
.tp-pdf > p { margin: 0 0 18px; color: var(--ink-soft); }
.tp-pdf .btn { border: 0; cursor: pointer; font-size: 16px; padding: 13px 28px; border-radius: 10px; }
.tp-check { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; margin-bottom: 16px; color: var(--ink-soft); }
.tp-check input { margin-top: 4px; accent-color: var(--teal); }
.tp-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.tp-credit { font-size: 12px; color: var(--ink-soft); margin-top: 18px; }
main > .tp-promo { background: transparent; padding: 28px var(--page-pad) 8px; }
.tp-promo__inner { max-width: var(--content); margin: 0 auto; background: linear-gradient(140deg, var(--teal-dark), var(--teal)); color: #fff; border-radius: 20px; padding: clamp(22px, 4vw, 38px); display: flex; flex-wrap: wrap; gap: 18px 32px; align-items: center; justify-content: space-between; }
.tp-promo h2 { margin: 4px 0 6px; font-size: clamp(22px, 3vw, 30px); line-height: 1.2; }
.tp-promo p { margin: 0; max-width: 680px; opacity: .95; }
.tp-promo .tp-kicker { color: var(--orange); opacity: 1; }
.tp-promo .btn { display: inline-flex; align-items: center; gap: 8px; font-size: 17px; padding: 14px 28px; border-radius: 10px; white-space: nowrap; }
.tp-promo .btn .icon { width: 20px; height: 20px; }
/* 1.9.111: the same size as the Christmas banner above it – 1180px wide, compact padding, one-line text */
main > .tp-promo { padding: 16px var(--page-pad) 8px; }
.tp-promo__inner { max-width: 1180px; padding: 20px 28px; gap: 20px; flex-wrap: nowrap; border-radius: 20px; box-shadow: 0 10px 22px rgba(18,52,46,.16); }
.tp-promo__inner > div { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.tp-promo .tp-kicker { font-size: 12px; font-weight: 700; letter-spacing: 1.4px; text-transform: uppercase; }
.tp-promo h2 { margin: 0; font-size: clamp(24px, 2.8vw, 32px); line-height: 1.1; }
.tp-promo p:not(.tp-kicker) { font-size: 14.5px; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; max-width: none; }
.tp-promo .btn { flex: 0 0 auto; font-size: 16px; padding: 12px 22px; }
@media (max-width: 700px) {
	main > .tp-promo { padding-top: 12px; }
	.tp-promo__inner { padding: 14px; gap: 10px; align-items: center; }
	.tp-promo .tp-kicker { font-size: 10.5px; letter-spacing: 1px; }
	.tp-promo h2 { font-size: 20px; }
	.tp-promo p:not(.tp-kicker) { font-size: 13px; -webkit-line-clamp: 2; }
	.tp-promo .btn { padding: 9px 12px; font-size: 13px; gap: 6px; }
	.tp-promo .btn .icon { width: 16px; height: 16px; }
}
@media (max-width: 400px) { .tp-promo p:not(.tp-kicker) { display: none; } }
/* 1.9.112: under the location cards */
main > .tp-promo--after-locations { padding: 0 var(--page-pad) 48px; }
.locations + .tp-promo--after-locations { margin-top: -42px; }
.hotel-plan { width: 100%; gap: 8px; margin-top: 10px; }
.hotel-plan .icon { font-size: 18px; color: var(--teal); }
/* Plan my trip: places to stay cards */
.tp-stays { margin-bottom: 26px; }
.tp-stays__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; margin-bottom: 12px; }
.tp-stays__head h3 { margin: 0; font-size: 22px; }
.tp-stays__head .tp-hint { margin: 0; }
.tp-stays__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
.tp-hotel { background: #fff; border: 2px solid transparent; border-radius: 16px; overflow: hidden; box-shadow: 0 4px 18px rgba(30,60,55,.08); display: flex; flex-direction: column; }
.tp-hotel.is-on { border-color: var(--teal); box-shadow: 0 6px 24px rgba(46,116,102,.22); }
.tp-hotel img, .tp-hotel__noimg { width: 100%; height: 150px; object-fit: cover; }
.tp-hotel__noimg { display: grid; place-items: center; background: #E6F1EE; font-size: 40px; }
.tp-hotel__body { padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 4px; flex: 1; }
.tp-hotel__pick { align-self: flex-start; background: var(--teal); color: #fff; font-size: 12px; font-weight: 700; border-radius: 999px; padding: 3px 10px; }
.tp-hotel h4 { margin: 2px 0 0; font-size: 17px; line-height: 1.3; }
.tp-hotel h4 a { color: var(--ink); }
.tp-hotel p { margin: 0; font-size: 13.5px; color: var(--ink-soft); }
.tp-hotel__km { font-weight: 600; color: var(--teal-dark) !important; }
.tp-hotel__badges { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px !important; }
.tp-badge { background: #FFF3E0; color: #8A5A14; border-radius: 999px; padding: 2px 9px; font-size: 12px; font-weight: 600; }
.tp-hotel__acts { margin-top: auto; padding-top: 12px; display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.tp-hotel__acts .btn { padding: 10px 18px; border-radius: 10px; font-size: 14px; }
.tp-choose { background: #E6F1EE; color: var(--teal-dark); border: 0; border-radius: 10px; padding: 10px 16px; font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; }
.tp-choose:hover { background: #D4E8E2; }
.tp-hotel__acts .tp-link { font-size: 14px; text-decoration: underline; }
/* Plan my trip: "please wait" pop-up */
main.tp > .tp-wait.tp-wait { position: fixed; inset: 0; z-index: 9999; background: rgba(20,45,40,.55); backdrop-filter: blur(3px); display: grid; place-items: center; padding: 20px; }
main.tp > .tp-wait[hidden] { display: none; }
.tp-wait__box { background: #fff; border-radius: 22px; padding: 34px 28px 28px; max-width: 440px; width: 100%; text-align: center; box-shadow: 0 20px 60px rgba(0,0,0,.25); }
.tp-wait__box h2 { margin: 16px 0 8px; font-size: 22px; line-height: 1.25; }
.tp-wait__msg { margin: 0 0 12px; color: var(--teal-dark); font-weight: 600; min-height: 1.5em; }
.tp-wait__hint { margin: 0; font-size: 13px; color: var(--ink-soft); }
.tp-wait__anim { position: relative; width: 92px; height: 92px; margin: 0 auto; }
.tp-wait__anim span { position: absolute; inset: 0; display: grid; place-items: center; font-size: 38px; animation: tp-bob 1.6s ease-in-out infinite; }
.tp-wait__anim i { position: absolute; inset: 0; border-radius: 50%; border: 4px solid transparent; border-top-color: var(--orange); animation: tp-spin 1.1s linear infinite; }
.tp-wait__anim i:nth-child(3) { inset: 9px; border-top-color: var(--teal); animation-duration: 1.6s; animation-direction: reverse; }
.tp-wait__anim i:nth-child(4) { inset: 18px; border-top-color: #9CCFC4; animation-duration: 2.2s; }
@keyframes tp-spin { to { transform: rotate(360deg); } }
@keyframes tp-bob { 50% { transform: translateY(-4px); } }
@media (prefers-reduced-motion: reduce) { .tp-wait__anim span, .tp-wait__anim i { animation: none; } }
html.tp-locked, html.tp-locked body { overflow: hidden; }
/* Plan my trip: plan ready – download, save to phone, QR */
.tp-ready { display: grid; gap: 22px; align-items: center; }
@media (min-width: 760px) { .tp-ready { grid-template-columns: 1fr 210px; } }
.tp-ready h3 { color: var(--teal-dark); }
.tp-ready__btns { display: flex; flex-wrap: wrap; gap: 10px; margin: 14px 0 12px; }
.tp-ready__btns .btn { display: inline-flex; align-items: center; }
.tp-btn2 { background: #fff; border: 1.5px solid var(--teal); color: var(--teal-dark); border-radius: 10px; padding: 12px 18px; font: inherit; font-size: 15px; font-weight: 700; cursor: pointer; }
.tp-btn2:hover { background: #E6F1EE; }
.tp-ready .tp-hint { margin: 4px 0 0; }
.tp-ready__qr { background: #fff; border-radius: 16px; padding: 16px; text-align: center; box-shadow: 0 4px 16px rgba(30,60,55,.1); }
.tp-qr { width: 170px; height: 170px; margin: 0 auto 10px; }
.tp-qr svg { width: 100%; height: 100%; display: block; }
.mt-app-btns { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.tp-ready__qr p { margin: 0; font-size: 13px; color: var(--ink-soft); }
.mt-shareqr { display: flex; gap: 22px; align-items: center; background: #fff; border-radius: 18px; padding: 18px; margin: 0 0 22px; box-shadow: 0 2px 14px rgba(30,60,55,.06); }
.mt-shareqr .tp-qr { width: 150px; height: 150px; margin: 0; flex: none; }
.mt-shareqr h2 { margin: 0 0 6px; font-size: 19px; }
.mt-shareqr p { margin: 0 0 10px; font-size: 15px; color: var(--ink-soft); }
@media (max-width: 480px) { .mt-shareqr { flex-direction: column; text-align: center; } .mt-shareqr .tp-qr { width: 200px; height: 200px; } }
/* My trip (/my-trip/…) and My trips (/my-trips/) */
main.mt > .mt-hero { padding-bottom: 40px; }
.mt-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.mt-actions .tp-btn2 { background: rgba(255,255,255,.12); color: #fff; border-color: rgba(255,255,255,.7); }
.mt-keep { display: flex; gap: 16px; align-items: flex-start; background: #fff; border: 2px solid #F7D9AE; border-radius: 18px; padding: 18px; margin: 22px 0; }
.mt-keep.is-saved { border-color: var(--teal); }
.mt-keep img { border-radius: 14px; flex: none; }
.mt-keep__title { margin: 0 0 6px; font-size: 19px; }
.mt-keep p { margin: 0 0 10px; font-size: 15px; }
.mt-keep__saved { color: var(--teal-dark); font-weight: 600; }
.mt-steps { margin: 6px 0 0; padding-left: 20px; font-size: 15px; }
.mt-steps li { margin-bottom: 6px; }
.mt-ico { display: inline-grid; place-items: center; width: 24px; height: 24px; border: 1.5px solid #007AFF; color: #007AFF; border-radius: 6px; font-size: 13px; vertical-align: middle; }
.mt-stay { background: #fff; border-radius: 16px; padding: 20px; margin-bottom: 18px; box-shadow: 0 2px 14px rgba(30,60,55,.06); }
.mt-stay h2 { margin: 4px 0 4px; font-size: 22px; }
.mt-stay h2 a { color: var(--teal-dark); }
.mt-stay p { margin: 0 0 8px; color: var(--ink-soft); }
.mt-stay p a { color: var(--ink); }
.mt .tp-item { grid-template-columns: 82px 1fr; }
@media (max-width: 640px) { .mt .tp-item { grid-template-columns: 1fr; } }
.mt-alts { background: #fff; border-radius: 16px; padding: 18px 20px; margin-bottom: 18px; }
.mt-alts h3 { margin: 0 0 8px; font-size: 18px; }
.mt-alts ul { margin: 0; padding-left: 18px; }
.mt-alts li { margin-bottom: 6px; }
.mt-alts a { color: var(--teal-dark); font-weight: 600; }
.mt-alts small { color: var(--ink-soft); }
.mt-list { list-style: none; margin: 24px 0; padding: 0; display: grid; gap: 12px; }
.mt-card { display: flex; align-items: center; background: #fff; border-radius: 14px; box-shadow: 0 2px 14px rgba(30,60,55,.08); }
.mt-card a { flex: 1; display: flex; gap: 14px; align-items: center; padding: 16px; color: var(--ink); }
.mt-card__icon { font-size: 28px; }
.mt-card strong { display: block; font-size: 17px; }
.mt-card small { color: var(--ink-soft); }
.mt-card button { background: none; border: 0; font-size: 18px; color: var(--ink-soft); padding: 16px; cursor: pointer; }
.mt-empty { background: #fff; border-radius: 14px; padding: 18px; margin: 24px 0; }
.my-trips-pill { position: fixed; left: 16px; bottom: 18px; z-index: 900; display: inline-flex; align-items: center; gap: 6px; background: var(--teal-dark); color: #fff; font-weight: 700; font-size: 14px; padding: 10px 16px; border-radius: 999px; box-shadow: 0 6px 20px rgba(0,0,0,.2); max-width: calc(100% - 180px); }
.my-trips-pill span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.my-trips-pill[hidden] { display: none; }
.mt [hidden], .tp [hidden] { display: none !important; }
.mt-keep__text { flex: 1; min-width: 0; }
.mt-keep .btn { white-space: normal; text-align: center; }
@media (max-width: 480px) { .mt-keep { flex-direction: column; } }
.tp-cancel { display: inline-block; margin-left: 18px; color: var(--ink-soft); text-decoration: underline; font-size: 15px; }
@media (max-width: 520px) { .tp-cancel { display: block; margin: 14px 0 0; } }
.mt-switch { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 18px 0 0; font-size: 14px; }
.mt-switch span { font-weight: 700; color: var(--ink-soft); }
.mt-switch a { background: #fff; border: 1.5px solid var(--line); border-radius: 999px; padding: 7px 14px; color: var(--ink); font-weight: 600; }
.mt-switch a.is-on { border-color: var(--teal); background: #E6F1EE; color: var(--teal-dark); }
.mt-switch small { font-weight: 400; color: var(--ink-soft); }
/* Mooch app home page: the latest saved trip, one tap away */
.my-trip-card { max-width: var(--content); margin: 16px auto 0; padding: 0 var(--page-pad); position: relative; z-index: 2; }
main > .my-trip-card.my-trip-card { background: var(--white); padding-bottom: 16px; margin-top: 0; padding-top: 16px; max-width: none; }
main > .my-trip-card > * { max-width: var(--content); margin-left: auto; margin-right: auto; }
.my-trip-card__main { display: flex; align-items: center; gap: 14px; background: var(--teal-dark); color: #fff; border-radius: 18px; padding: 16px 18px; box-shadow: 0 8px 24px rgba(30,60,55,.25); }
.my-trip-card__main:hover { text-decoration: none; }
.my-trip-card__icon { font-size: 34px; }
.my-trip-card__text { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.my-trip-card__text small { font-size: 12px; text-transform: uppercase; letter-spacing: .1em; color: var(--orange); font-weight: 700; }
.my-trip-card__text strong { font-size: 20px; line-height: 1.2; }
.my-trip-card__text em { font-style: normal; font-size: 14px; opacity: .85; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.my-trip-card__go { background: var(--orange); color: #1F2E2B; font-weight: 700; border-radius: 999px; padding: 8px 14px; font-size: 15px; }
.my-trip-card__all { display: inline-block; margin: 8px 4px 0; font-size: 14px; font-weight: 600; color: var(--teal-dark); text-decoration: underline; }
.my-trip-card__row { display: flex; gap: 10px; align-items: stretch; }
.my-trip-card__row .my-trip-card__main { flex: 1; min-width: 0; }
.my-trip-card__del { flex: none; width: 48px; border: 0; border-radius: 18px; background: #E6F1EE; color: var(--teal-dark); font-size: 18px; font-weight: 700; cursor: pointer; }
.my-trip-card__ask { margin-top: 10px; background: #FFF6E8; border-radius: 12px; padding: 10px 14px; font-size: 15px; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.my-trip-card__ask[hidden] { display: none; }
.my-trip-card__ask button { border: 0; border-radius: 999px; padding: 7px 14px; font: inherit; font-weight: 700; cursor: pointer; }
.my-trip-card__yes { background: #B3412E; color: #fff; }
.my-trip-card__no { background: #E6F1EE; color: var(--teal-dark); }
.my-trip-card__track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.my-trip-card__track::-webkit-scrollbar { display: none; }
.my-trip-card__item { flex: 0 0 100%; min-width: 0; max-width: 100%; scroll-snap-align: start; padding: 0 0 10px; box-sizing: border-box; overflow: hidden; }
.my-trip-card__text { overflow: hidden; }
.my-trip-card__dots { display: flex; justify-content: center; gap: 6px; margin-top: 2px; }
.my-trip-card__dots i { width: 8px; height: 8px; border-radius: 50%; background: #C9DDD7; }
.my-trip-card__dots i.is-on { background: var(--teal-dark); }
/* Get directions card (hotel and trip pages) */
.dir-card { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 14px; margin: 14px 0; }
.dir-card__title { margin: 0 0 10px; font-weight: 700; font-size: 16px; color: var(--ink); display: flex; align-items: center; gap: 6px; }
.dir-card__title .icon { color: var(--teal); }
.dir-card__modes { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.dir-card__mode { display: flex; flex-direction: column; align-items: center; gap: 2px; background: #E6F1EE; color: var(--teal-dark); border-radius: 12px; padding: 10px 4px; font-size: 13px; font-weight: 600; text-align: center; line-height: 1.2; }
.dir-card__mode span { font-size: 22px; }
.dir-card__mode:hover { background: #D4E8E2; text-decoration: none; }
.dir-card__far { margin: 10px 0 0; font-size: 14px; color: var(--ink-soft); }
.dir-card__me { background: none; border: 0; padding: 0; font: inherit; font-weight: 600; color: var(--teal-dark); text-decoration: underline; cursor: pointer; }
.dir-card__dist { display: block; margin-top: 4px; }
.dir-card--compact { border: 0; padding: 0; margin: 8px 0 0; background: transparent; }
.dir-card--compact .dir-card__modes { display: flex; flex-wrap: wrap; gap: 6px; }
.dir-card--compact .dir-card__mode { flex-direction: row; gap: 4px; padding: 5px 10px; border-radius: 999px; font-size: 12px; white-space: nowrap; }
.dir-card--compact .dir-card__mode span { font-size: 14px; }
.mt-stay .dir-card { margin-top: 16px; }

/* Translated menus have longer words: first tighten the spacing and text, so everything still fits in the bar */
.site-header.is-tight1 .site-nav { gap: 22px; }
.site-header.is-tight1 .site-nav__list { gap: 16px; }
.site-header.is-tight1 .site-nav__actions { gap: 18px; }
.site-header.is-tight1 .site-nav__actions .btn { padding: 0 18px; }
.site-header.is-tight1 .site-lang { margin-left: 8px; }
.site-header.is-tight2 .site-nav__list a, .site-header.is-tight2 .site-nav__login { font-size: 14px; }
.site-header.is-tight2 .site-nav__actions .btn { font-size: 14px; padding: 0 14px; min-height: 42px; }
.site-header.is-tight2 .site-nav__list { gap: 12px; }
.site-header.is-tight2 .site-nav { gap: 16px; }
.site-header.is-tight2 .site-nav__actions { gap: 14px; }
.site-header.is-tight2 .site-header__inner { gap: 14px; }
.site-header.is-tight3 .site-nav__list a, .site-header.is-tight3 .site-nav__login { font-size: 13px; }
.site-header.is-tight3 .site-nav__actions .btn { font-size: 13px; padding: 0 12px; }
.site-header.is-tight3 .site-nav__list { gap: 10px; }
.site-header.is-tight3 .site-header__logo { flex: none; }

/* Header too wide to fit on one line (e.g. a translated menu with longer words): use the ☰ menu,
   so the language switcher and Login never get pushed off the edge of the screen. */
.site-header.is-compact .menu-toggle { display: inline-flex; margin-left: 10px; }
.site-header.is-compact .site-lang { order: 0; margin-left: auto; }
.site-header.is-compact .site-nav {
	display: none; position: absolute; left: 0; right: 0; top: 100%; margin-left: 0;
	background: var(--teal); flex-direction: column; align-items: stretch; gap: 20px;
	padding: 12px var(--page-pad) 28px; box-shadow: 0 16px 30px rgba(0,0,0,0.18);
}
.site-header.is-compact .site-nav.is-open { display: flex; }
.site-header.is-compact .site-nav__list { flex-direction: column; gap: 0; }
.site-header.is-compact .site-nav__list a { display: block; padding: 14px 0; border-bottom: 1px solid rgba(255,255,255,0.15); font-size: 18px; }
.site-header.is-compact .site-nav__actions { justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.site-header.is-compact .site-nav__app, .site-header.is-compact .site-nav__share { display: inline-flex !important; }

/* ---------- County walking guide (Walking & Hiking › a county) ---------- */
.walks { --moss: #EEF5F2; --earth: #8A6A4A; max-width: var(--content); margin: 0 auto; padding: 10px var(--page-pad) 0; }
.walks h2 { font-size: clamp(28px, 4vw, 40px); line-height: 1.15; margin: 0 0 14px; color: #1F2E2B; }
.walks h3 { font-size: clamp(22px, 3vw, 28px); margin: 0 0 6px; color: #1F2E2B; }
.walks-kicker { margin: 0 0 6px; font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--teal-dark); }
.walks-sub { margin: 0 0 18px; color: var(--ink-soft); }
.walks-intro { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 40px; align-items: center; padding: 34px 0 40px; }
.walks-intro__text p { font-size: 17px; line-height: 1.7; margin: 0 0 14px; }
.walks-intro__jump { display: flex; flex-wrap: wrap; gap: 18px; align-items: center; margin-top: 22px !important; }
.walks-link { font-weight: 600; color: var(--teal-dark); }
.walks-stats { list-style: none; margin: 0; padding: 22px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; background: var(--moss); border-radius: 22px; }
.walks-stats li { background: #fff; border-radius: 16px; padding: 16px 14px; text-align: center; box-shadow: 0 4px 14px rgba(30, 60, 55, .06); }
.walks-stats strong { display: block; font-size: 30px; line-height: 1.1; color: var(--teal-dark); }
.walks-stats span { font-size: 13px; color: var(--ink-soft); }

.walks-picks { padding: 10px 0 44px; }
.walks-picks__grid { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 200px; gap: 16px; }
.walk-pick { position: relative; display: block; border-radius: 20px; overflow: hidden; color: #fff; text-decoration: none; background: var(--teal-dark); box-shadow: 0 10px 26px rgba(30, 60, 55, .16); }
.walk-pick:hover { text-decoration: none; }
.walk-pick--big { grid-column: span 2; grid-row: span 2; }
.walk-pick__img { position: absolute; inset: 0; background: center / cover no-repeat; transition: transform .5s ease; }
.walk-pick:hover .walk-pick__img { transform: scale(1.05); }
.walk-pick__img.is-empty, .walk-card__img.is-empty { background: linear-gradient(135deg, #5c9a7d 0%, #2E7466 55%, #24584e 100%); }
.walk-pick__body { position: absolute; inset: auto 0 0 0; padding: 50px 18px 16px; display: flex; flex-direction: column; gap: 4px; background: linear-gradient(to top, rgba(10, 25, 22, .85), rgba(10, 25, 22, 0)); }
.walk-pick__body strong { font-size: 17px; line-height: 1.25; }
.walk-pick--big .walk-pick__body strong { font-size: 24px; }
.walk-pick__body > span:last-child { font-size: 13px; opacity: .9; }
.walk-pick .walk-badge { align-self: flex-start; }

.walk-badge { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 700; background: #fff; color: #1F2E2B; }
.walk-badge--easy { background: #DDF2E3; color: #1E6B3A; }
.walk-badge--moderate { background: #FDEBD3; color: #8A4B08; }
.walk-badge--difficult { background: #F9DAD5; color: #9A2D1E; }

.walks-find { padding: 34px 0 10px; border-top: 1px solid var(--line); }
.walks-filters { position: sticky; top: 0; z-index: 5; background: rgba(255, 255, 255, .97); backdrop-filter: blur(6px); padding: 14px 0 6px; margin-bottom: 18px; border-bottom: 1px solid var(--line); }
.walks-filters__row { display: flex; flex-wrap: wrap; gap: 12px; margin: 10px 0 12px; }
.walks-field { display: flex; flex-direction: column; gap: 4px; font-size: 12px; font-weight: 600; color: var(--ink-soft); min-width: 170px; }
.walks-field--grow { flex: 1; min-width: 200px; }
.walks-field select, .walks-field input { height: 44px; border: 1px solid #cfd8d5; border-radius: 12px; padding: 0 12px; font: inherit; font-size: 15px; color: var(--ink); background: #fff; }
.walks-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.walk-chip { border: 1px solid #cfd8d5; background: #fff; border-radius: 999px; padding: 7px 13px; font: inherit; font-size: 14px; font-weight: 500; color: var(--ink); cursor: pointer; transition: background .15s, border-color .15s; }
.walk-chip em { font-style: normal; font-size: 12px; color: var(--ink-soft); margin-left: 2px; }
.walk-chip[aria-pressed="true"] { background: var(--teal-dark); border-color: var(--teal-dark); color: #fff; }
.walk-chip[aria-pressed="true"] em { color: rgba(255, 255, 255, .8); }
.walks-count { margin: 10px 0 4px; font-weight: 600; color: var(--teal-dark); }
.walks-clear { border: 0; background: none; color: #B3412E; font: inherit; font-weight: 600; cursor: pointer; text-decoration: underline; margin-left: 8px; }

.walks-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.walk-card { display: flex; flex-direction: column; background: #fff; border: 1px solid #e3ebe8; border-radius: 20px; overflow: hidden; box-shadow: 0 6px 20px rgba(30, 60, 55, .07); scroll-margin-top: 220px; transition: box-shadow .3s; }
.walk-card[hidden] { display: none; }
.walk-card.is-flash { box-shadow: 0 0 0 4px var(--orange), 0 6px 20px rgba(30, 60, 55, .1); }
.walk-card__img { position: relative; height: 170px; background: center / cover no-repeat #dfe9e5; }
.walk-card__img .walk-badge { position: absolute; top: 12px; left: 12px; box-shadow: 0 2px 8px rgba(0, 0, 0, .15); }
.walk-card__ph { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 46px; opacity: .55; }
.walk-card__town { position: absolute; left: 12px; bottom: 10px; padding: 3px 10px; border-radius: 8px; background: rgba(10, 25, 22, .7); color: #fff; font-size: 13px; font-weight: 600; }
.walk-card__body { display: flex; flex-direction: column; gap: 10px; padding: 16px 18px 18px; flex: 1; }
.walk-card__body h4 { margin: 0; font-size: 18px; line-height: 1.3; color: #1F2E2B; }
.walk-card__stats { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 14px; color: var(--ink-soft); }
.walk-card__stats strong { color: var(--teal-dark); font-size: 16px; }
.walk-card__stats small { font-size: 12px; }
.walk-card__facts { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.walk-card__facts li { font-size: 12.5px; padding: 3px 9px; border-radius: 8px; background: var(--moss); color: #24584e; }
.walk-card__facts li.is-no { background: #f3f3f3; color: #777; }
.walk-card__food, .walk-card__start { margin: 0; font-size: 14px; line-height: 1.45; }
.walk-card__more summary { cursor: pointer; font-weight: 600; color: var(--teal-dark); font-size: 14px; }
.walk-card__more p { margin: 8px 0 0; font-size: 14px; line-height: 1.55; color: var(--ink-soft); }
.walk-card__acts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; padding-top: 6px; }
.walk-btn { display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border-radius: 999px; border: 1px solid #cfd8d5; font-size: 14px; font-weight: 600; color: var(--teal-dark); text-decoration: none; }
.walk-btn:hover { text-decoration: none; border-color: var(--teal-dark); }
.walk-btn--main { background: var(--orange); border-color: var(--orange); color: #1F2E2B; }
.walk-card__maps { flex-basis: 100%; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; padding-top: 10px; margin-top: 4px; border-top: 1px dashed #dbe3e0; font-size: 13px; color: #5b6b67; }
.walk-card__maps > span { flex-basis: 100%; font-weight: 600; }
.walk-map-link { display: inline-flex; align-items: center; min-height: 32px; padding: 0 12px; border-radius: 999px; background: #eef4f2; color: var(--teal-dark); font-weight: 600; text-decoration: none; }
.walk-map-link:hover { background: #dfeae6; text-decoration: none; }
.walks-none { padding: 30px; text-align: center; background: var(--moss); border-radius: 16px; }

.walks-tips { margin: 44px 0 10px; padding: 26px 28px; background: #FFF6E8; border-radius: 22px; }
.walks-tips ul { margin: 10px 0 0; padding-left: 20px; line-height: 1.6; }
.walks-tips li { margin-bottom: 6px; }
.walks-map-sec { padding: 40px 0 50px; scroll-margin-top: 20px; }
.walks-map { height: 520px; border-radius: 22px; overflow: hidden; border: 1px solid #e3ebe8; box-shadow: 0 10px 26px rgba(30, 60, 55, .1); z-index: 1; }
.walks-map__key { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin: 12px 0 0; font-size: 14px; color: var(--ink-soft); }
.walks-dot { display: inline-block; width: 12px; height: 12px; border-radius: 50%; margin-right: -8px; border: 2px solid #fff; box-shadow: 0 0 0 1px rgba(0,0,0,.15); }
.walks-dot--easy { background: #2E8B57; } .walks-dot--moderate { background: #E08A1E; } .walks-dot--difficult { background: #C0392B; }
.walks-pop { display: flex; flex-direction: column; gap: 5px; font-family: var(--font); min-width: 200px; }
.walks-pop strong { font-size: 15px; line-height: 1.3; color: #1F2E2B; }
.walks-pop span:not(.walk-badge) { font-size: 13px; color: var(--ink-soft); }
.walks-pop .walk-badge { align-self: flex-start; }
.walks-pop a { font-weight: 600; color: var(--teal-dark); }
@media (max-width: 640px) { .walks-map { height: 420px; } }
.walks-admin-note { max-width: var(--content); margin: 10px auto; }

@media (max-width: 1000px) {
	.walks-intro { grid-template-columns: 1fr; gap: 24px; padding-top: 20px; }
	.walks-stats { grid-template-columns: repeat(3, 1fr); }
	.walks-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.walks-picks__grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 180px; }
}
@media (max-width: 640px) {
	.walks-stats { grid-template-columns: repeat(2, 1fr); padding: 14px; gap: 10px; }
	.walks-stats strong { font-size: 24px; }
	.walks-grid { grid-template-columns: 1fr; }
	.walks-picks__grid { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 12px; padding-bottom: 8px; margin: 0 calc(var(--page-pad) * -1); padding-left: var(--page-pad); padding-right: var(--page-pad); scrollbar-width: none; }
	.walks-picks__grid::-webkit-scrollbar { display: none; }
	.walk-pick, .walk-pick--big { flex: 0 0 78%; height: 230px; scroll-snap-align: start; }
	.walks-filters { position: static; }
	.walks-field { min-width: 0; flex: 1 1 calc(50% - 6px); }
	.walks-field--grow { flex-basis: 100%; order: -1; }
	.walk-card__img { height: 140px; }
	.walks-chips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding-bottom: 4px; }
	.walks-chips::-webkit-scrollbar { display: none; }
	.walk-chip { flex: none; }
}

.leaflet-tooltip.walks-tip { font-family: var(--font); font-size: 13px; line-height: 1.35; padding: 7px 10px; border-radius: 10px; border: 0; box-shadow: 0 6px 18px rgba(0,0,0,.18); color: var(--ink-soft); width: 240px; white-space: normal; }
.leaflet-tooltip.walks-tip strong { color: #1F2E2B; font-size: 14px; }

/* Cycling guides (share the walking guide's layout) */
.rides-types { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.rides-types .walk-chip { font-size: 15px; padding: 9px 16px; }
.ride-type { margin: 0 0 4px; font-size: 13px; font-weight: 600; color: var(--teal-dark); display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ride-trail { display: inline-block; padding: 2px 8px; border-radius: 4px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: #fff; background: #2468b4; }
.ride-trail--green { background: #2f8a4a; }
.ride-trail--red { background: #c0392b; }
.ride-trail--black { background: #1b1b1b; }

/* ---------- Horse Racing: the racing guide, calendar and racecards ---------- */
.racing { --flat: #2B5C9E; --flat-bg: #E3ECF8; --jumps: #A2461F; --jumps-bg: #F8E6DD; --gold: #B8860B; --gold-bg: #FBF1D6; --gold-ink: #6B4D00; }
.race-guide-wrap { padding-top: 0; }
.race-intro .walks-intro__text h2 { font-size: clamp(28px, 4vw, 40px); }
.race-code { display: inline-block; padding: 4px 11px; border-radius: 999px; font-size: 12px; font-weight: 700; letter-spacing: .02em; box-shadow: 0 2px 8px rgba(0, 0, 0, .15); }
.race-code--flat { background: #E3ECF8; color: #2B5C9E; }
.race-code--jumps { background: #F8E6DD; color: #A2461F; }
.race-code--both { background: linear-gradient(90deg, #E3ECF8 50%, #F8E6DD 50%); color: #1F2E2B; }
.walk-card__img .race-code { position: absolute; top: 12px; left: 12px; }
.race-dot { display: inline-block; width: 9px; height: 9px; border-radius: 3px; flex: none; vertical-align: middle; }
.race-dot--flat { background: #2B5C9E; }
.race-dot--jumps { background: #A2461F; }
.race-tag { font-style: normal; font-size: 10.5px; font-weight: 700; letter-spacing: .05em; padding: 1px 5px; border-radius: 4px; background: #eef2f1; color: #4b5b57; }
.race-tag--next { background: var(--orange); color: #1F2E2B; }
.race-gold { align-self: flex-start; display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 11.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; background: #E8C55A; color: #3B2A00; }

/* The big days */
.race-big { padding: 10px 0 44px; }
.race-big h3, .race-cal h3 { font-size: 26px; margin: 0 0 6px; }
.race-big__grid { display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: 210px; gap: 16px; margin-top: 18px; }
.race-big__tile { position: relative; display: block; border-radius: 20px; overflow: hidden; color: #fff; text-decoration: none; background: #1d3b35; box-shadow: 0 10px 26px rgba(30, 60, 55, .18); }
.race-big__tile:hover { text-decoration: none; }
.race-big__tile.is-first { grid-column: span 2; grid-row: span 2; }
.race-big__img { position: absolute; inset: 0; background: center / cover no-repeat; transition: transform .5s ease; }
.race-big__img.is-empty { background: radial-gradient(circle at 70% 30%, #4a8f72 0%, #1f5a47 45%, #0f2f27 100%); }
.race-big__tile:hover .race-big__img { transform: scale(1.05); }
.race-big__date { position: absolute; top: 14px; right: 14px; display: flex; flex-direction: column; align-items: center; min-width: 58px; padding: 6px 8px 7px; border-radius: 14px; background: #fff; color: #1F2E2B; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; box-shadow: 0 4px 14px rgba(0, 0, 0, .25); }
.race-big__date strong { font-size: 26px; line-height: 1; letter-spacing: 0; }
.race-big__body { position: absolute; inset: auto 0 0 0; padding: 60px 18px 16px; display: flex; flex-direction: column; gap: 4px; background: linear-gradient(to top, rgba(8, 22, 19, .92), rgba(8, 22, 19, 0)); }
.race-big__body strong { font-size: 20px; line-height: 1.2; }
.race-big__tile.is-first .race-big__body strong { font-size: 32px; }
.race-big__body > span:not(.race-gold) { font-size: 13.5px; opacity: .92; }
.race-big__body em { font-style: normal; font-size: 13px; opacity: .8; }

/* Course cards */
.race-card h4 { font-size: 22px; }
.race-next { margin: 0 0 10px; padding: 9px 12px; border-radius: 12px; background: #EEF5F3; font-size: 13.5px; color: #24584e; }
.race-next span { display: block; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; opacity: .75; }
.race-next strong { color: #1F2E2B; }
.race-next em { font-style: normal; font-size: 11px; font-weight: 700; padding: 1px 7px; border-radius: 999px; background: #E8C55A; color: #3B2A00; margin-left: 4px; }
.race-next.is-premier { background: #FBF1D6; color: #6B4D00; }
.race-stats__gold strong { color: #9a6f00; }
.race-sig { margin: 0 0 10px; font-size: 13.5px; line-height: 1.5; color: #4b5b57; }
.walk-card__facts li.is-part { background: #FBF1D6; color: #6B4D00; }
.walk-card__facts li.is-unknown { background: #f3f3f3; color: #666; }

/* The calendar */
.race-cal { padding: 20px 0 44px; scroll-margin-top: 200px; }
.race-cal__months { display: flex; flex-wrap: wrap; gap: 6px; margin: 18px 0 14px; }
.race-mon { font: inherit; font-size: 15px; font-weight: 700; padding: 8px 14px; border-radius: 12px; border: 1px solid #d6e2de; background: #fff; color: #1F2E2B; cursor: pointer; display: inline-flex; align-items: baseline; gap: 6px; }
.race-mon small { font-size: 11px; font-weight: 600; color: #6b7d78; }
.race-mon[aria-pressed="true"] { background: var(--teal-dark); border-color: var(--teal-dark); color: #fff; }
.race-mon[aria-pressed="true"] small { color: #cfe7e0; }
.race-cal__filters { display: flex; flex-wrap: wrap; gap: 12px 16px; align-items: flex-end; margin-bottom: 10px; }
.race-cal__filters .walks-chips { margin: 0; }
.race-cal__count { margin: 6px 0 12px; font-weight: 600; color: #4b5b57; }
.race-book { border: 1px solid #e3ebe8; border-radius: 20px; overflow: hidden; background: #fff; box-shadow: 0 6px 20px rgba(30, 60, 55, .06); }
.race-day { display: grid; grid-template-columns: 84px minmax(0, 1fr); border-top: 1px solid #edf1f0; }
.race-day:first-child { border-top: 0; }
.race-day.is-weekend { background: #F6FAF8; }
.race-day.is-past { opacity: .55; }
.race-day__date { padding: 12px 14px; border-right: 1px solid #edf1f0; }
.race-day__date strong { display: block; font-size: 24px; line-height: 1; color: #1F2E2B; }
.race-day__date span { font-size: 11.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #6b7d78; }
.race-day__meets { padding: 10px 12px; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; min-width: 0; }
.race-meet { display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; border-radius: 10px; border: 1px solid #dfe7e4; background: #fff; font-size: 14px; color: #1F2E2B; text-decoration: none; }
.race-meet:hover { border-color: var(--teal-dark); text-decoration: none; }
.race-meet em { font-style: normal; }
.race-meet.is-premier { background: #FBF1D6; border-color: #E2C063; color: #5a4100; font-weight: 600; }
.race-meet--key { padding: 2px 8px; font-size: 12.5px; }
.race-book__none { margin: 0; padding: 26px; text-align: center; color: #6b7d78; }
.race-cal__key { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; font-size: 13px; color: #4b5b57; margin: 12px 0 4px; }
.race-cal__note { font-size: 12.5px; color: #6b7d78; margin: 6px 0 0; }

/* Racecard on a racecourse page */
.racecard { --flat: #2B5C9E; }
.racecard__head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 20px; align-items: flex-start; padding-top: 26px; }
.racecard__head h2 { margin: 0 0 10px; font-size: clamp(26px, 3.6vw, 38px); }
.racecard__badges { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
.race-pill { display: inline-block; padding: 4px 11px; border-radius: 999px; font-size: 12.5px; font-weight: 600; background: #EEF5F3; color: #24584e; }
.racecard__next { min-width: 200px; padding: 14px 20px; border-radius: 18px; background: var(--teal-dark); color: #fff; text-align: center; box-shadow: 0 10px 26px rgba(30, 60, 55, .18); }
.racecard__next span { display: block; font-size: 11.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; opacity: .85; }
.racecard__next strong { display: block; font-size: 34px; line-height: 1.1; }
.racecard__next em { font-style: normal; font-size: 13px; opacity: .9; }
.racecard__next.is-premier { background: linear-gradient(135deg, #C99A1E, #8C6508); }
.racecard__stats { margin: 22px 0; grid-template-columns: repeat(4, 1fr); padding: 16px; }
.racecard__cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.racecard__col { padding: 20px; border: 1px solid #e3ebe8; border-radius: 20px; background: #fff; box-shadow: 0 6px 20px rgba(30, 60, 55, .06); }
.racecard__col h3 { margin: 0 0 10px; font-size: 18px; }
.racecard__col p { font-size: 14.5px; line-height: 1.6; margin: 0 0 10px; }
.racecard__col dl { margin: 0 0 12px; display: grid; gap: 8px; font-size: 14px; }
.racecard__col dt { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #6b7d78; }
.racecard__col dd { margin: 0; }
.racecard__links { display: flex; flex-wrap: wrap; gap: 8px; }
.racecard__notes { margin: 16px 0 0; padding: 14px 18px; border-radius: 14px; background: #F6FAF8; font-size: 14px; line-height: 1.6; }
.racecard__fx { margin-top: 30px; scroll-margin-top: 200px; }
.racecard__fx h3 { font-size: 24px; margin: 0 0 14px; }
.racecard__months { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 12px; }
.racecard__month { padding: 14px 16px; border: 1px solid #e3ebe8; border-radius: 16px; background: #fff; }
.racecard__month h4 { margin: 0 0 8px; font-size: 15px; color: var(--teal-dark); }
.racecard__month ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; font-size: 13.5px; }
.racecard__month li { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.racecard__month li em { font-style: normal; font-size: 11.5px; font-weight: 700; color: #6B4D00; }
.racecard__month li.is-premier { padding: 3px 6px; margin: 0 -6px; border-radius: 8px; background: #FBF1D6; }
.racecard__month li.is-next { padding: 3px 6px; margin: 0 -6px; border-radius: 8px; box-shadow: inset 0 0 0 2px var(--orange); }
.racecard__month li.is-past { opacity: .5; }
#racecard-stay { display: block; scroll-margin-top: 200px; }

@media (max-width: 900px) {
	.race-big__grid { grid-template-columns: 1fr 1fr; }
	.racecard__cols { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
	.race-big__grid { grid-template-columns: 1fr; grid-auto-rows: 190px; }
	.race-big__tile.is-first { grid-column: auto; grid-row: span 1; }
	.race-big__tile.is-first .race-big__body strong { font-size: 24px; }
	.race-day { grid-template-columns: 62px minmax(0, 1fr); }
	.race-day__date { padding: 10px; }
	.race-day__date strong { font-size: 20px; }
	.racecard__stats { grid-template-columns: repeat(2, 1fr); }
	.racecard__next { width: 100%; }
	.race-mon { padding: 7px 10px; font-size: 14px; }
}

.race-day[hidden], .race-meet[hidden], .race-more[hidden] { display: none !important; }
.race-grid.is-collapsed > .race-card:nth-child(n+13) { display: none; }
.race-more { text-align: center; margin: 22px 0 0; }
.race-mapdot--flat { background: #2B5C9E; }
.race-mapdot--both { background: #7A5A8C; }
.race-mapdot--jumps { background: #A2461F; }
.walk-badge--flat { background: #E3ECF8; color: #2B5C9E; }
.walk-badge--jumps { background: #F8E6DD; color: #A2461F; }
.walk-badge--both { background: #EEE6F3; color: #5B3F6E; }

/* Racing 1.9.49: Irish dual-purpose meetings, card photos that link, course fixtures below the hotels */
.race-dot--mixed { background: linear-gradient(135deg, #2B5C9E 50%, #A2461F 50%); }
.race-code--mixed { background: linear-gradient(90deg, #E3ECF8 50%, #F8E6DD 50%); color: #1F2E2B; }
a.race-card__img { display: block; text-decoration: none; color: #fff; position: relative; }
.race-card__go { position: absolute; right: 10px; top: 12px; background: rgba(31,42,46,.82); color: #fff; font-size: 12.5px; font-weight: 700; padding: 5px 10px; border-radius: 999px; opacity: 0; transform: translateY(4px); transition: opacity .2s, transform .2s; }
a.race-card__img:hover .race-card__go, a.race-card__img:focus-visible .race-card__go { opacity: 1; transform: none; }
a.race-card__img:hover { filter: brightness(1.05); }
.race-card h4 a { color: inherit; text-decoration: none; }
.race-card h4 a:hover { text-decoration: underline; }
.racecard--fx { margin-top: 8px; }
@media (hover: none) { .race-card__go { opacity: 1; transform: none; } }

/* Weddings & Special Occasions: the wedding venue guide (1.9.51) */
.wed-guide-wrap + .race-guide-wrap, .wed-guide-wrap + .location-cards { padding-top: 0; }
.wed-grid.is-collapsed > .wed-card:nth-child(n+13) { display: none; }
.wed-more[hidden] { display: none !important; }
.weddings .walks-kicker { color: #9C7A3C; }
.wed-type { position: absolute; top: 12px; left: 12px; display: inline-block; padding: 4px 11px; border-radius: 999px; font-size: 12px; font-weight: 700; background: #F6EEDD; color: #5D2B4D; box-shadow: 0 2px 8px rgba(0,0,0,.15); }
.wed-lic { margin: 0; font-size: 13.5px; font-weight: 700; color: #6a5f66; }
.wed-lic.is-yes { color: #2c5a34; }
.wed-caps { list-style: none; margin: 0; padding: 9px 0; display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid #ece6e9; border-bottom: 1px solid #ece6e9; text-align: center; }
.wed-caps strong { display: block; font-size: 21px; line-height: 1.1; color: #5D2B4D; font-variant-numeric: tabular-nums; }
.wed-caps span { display: block; font-size: 10.5px; letter-spacing: .06em; text-transform: uppercase; color: #6a5f66; margin-top: 3px; }
.wed-hl { margin: 0; font-size: 14px; line-height: 1.5; }
.wed-sizes { align-items: center; }
.wed-lbl { font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #6a5f66; margin-right: 4px; }
.walks-map__key .walks-dot { margin-left: 10px; }
.walks-field[hidden] { display: none !important; }
/* Wedding venue pages (1.9.53) */
a.wed-card__img { display: block; text-decoration: none; color: #fff; position: relative; }
.wed-card h4 a { color: inherit; text-decoration: none; }
.wed-card h4 a:hover { text-decoration: underline; }
.wed-card .race-card__go { top: auto; bottom: 12px; right: 10px; }
.wed-card .walk-card__town { max-width: 55%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wed-type--inline { position: static; box-shadow: none; }
.wedcard__price em { font-style: normal; font-size: 15px; font-weight: 700; line-height: 1.35; display: block; margin-top: 6px; }
.wedcard__price { max-width: 320px; }
.wedcard__small { font-size: 13px; color: #6a5f66; }
.mooch-pin--stadium svg circle, .mooch-pin--stadium svg path { vector-effect: non-scaling-stroke; }

/* Christmas banner (1.9.56): the two cards slide sideways and are a wider, shorter strip */
/* 1.9.57: a slow, soft cross-fade – both cards are on screen together as one fades out and the next fades in */
.xmas-promo__deck { display: grid; border-radius: 20px; max-width: 1180px; margin: 0 auto; touch-action: pan-y; }
.xmas-promo__deck > .xmas-promo__card { grid-area: 1 / 1; width: 100%; box-shadow: none; opacity: 0; visibility: hidden; transform: scale(1.015); filter: blur(2px); transition: opacity 1.4s cubic-bezier(.4, 0, .2, 1), transform 1.6s cubic-bezier(.4, 0, .2, 1), filter 1.4s ease, visibility 0s linear 1.4s; }
.xmas-promo__deck > .xmas-promo__card.is-on { opacity: 1; visibility: visible; transform: none; filter: none; z-index: 1; transition: opacity 1.4s cubic-bezier(.4, 0, .2, 1), transform 1.6s cubic-bezier(.4, 0, .2, 1), filter 1.4s ease, visibility 0s; }
.xmas-promo__deck > .xmas-promo__card.is-on:hover { transform: none; }
.xmas-promo__deck > .xmas-promo__card.is-on .xmas-promo__text { animation: xmas-rise 1.2s cubic-bezier(.2, .7, .2, 1) both; }
@keyframes xmas-rise { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .xmas-promo__deck > .xmas-promo__card, .xmas-promo__deck > .xmas-promo__card.is-on { transition: none; filter: none; transform: none; } .xmas-promo__deck > .xmas-promo__card.is-on .xmas-promo__text { animation: none; } }
.xmas-promo--deck { filter: drop-shadow(0 10px 22px rgba(18,52,46,.16)); }
.xmas-promo__card { padding: 30px 28px 16px; gap: 20px; min-height: 0; }
.xmas-promo__title { font-size: clamp(24px, 2.8vw, 32px); line-height: 1.1; }
.xmas-promo__sub { font-size: 14.5px; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
.xmas-promo__icon, .xmas-promo__icon svg { width: 52px; height: 52px; }
.xmas-promo__dots button { width: 12px; height: 12px; }
.xmas-promo__dots button.is-on { width: 28px; }
@media (max-width: 700px) {
	.xmas-promo__card { flex-wrap: nowrap; align-items: center; padding: 28px 14px 12px; gap: 10px; }
	.xmas-promo__icon, .xmas-promo__icon svg { width: 36px; height: 36px; }
	.xmas-promo__text { flex: 1 1 auto; flex-basis: auto; }
	.xmas-promo__kicker { font-size: 10.5px; letter-spacing: 1px; }
	.xmas-promo__title { font-size: 23px; }
	.xmas-promo__sub { font-size: 13px; -webkit-line-clamp: 2; }
	.xmas-promo__btn { width: auto; padding: 9px 12px; font-size: 13px; white-space: nowrap; align-self: center; }
}
@media (max-width: 400px) { .xmas-promo__sub { display: none; } }

/* Home: Steve's "Book direct" video (1.9.60) */
.book-direct { padding-top: 40px; padding-bottom: 40px; }
.book-direct__inner { max-width: 1080px; margin: 0 auto; display: grid; grid-template-columns: minmax(240px, 340px) 1fr; gap: 56px; align-items: center; }
.book-direct__video { position: relative; border-radius: 24px; overflow: hidden; box-shadow: 0 18px 40px rgba(18, 52, 46, .22); background: #12342e; aspect-ratio: 9 / 16; }
.book-direct__video video { display: block; width: 100%; height: 100%; object-fit: cover; }
.book-direct__text .section-head__kicker { justify-content: flex-start; }
.book-direct__text .section-head__title { margin-top: 10px; }
.book-direct__lead { font-size: 17px; line-height: 1.6; margin: 16px 0 18px; }
.book-direct__list { list-style: none; margin: 0 0 26px; padding: 0; display: grid; gap: 12px; }
.book-direct__list li { position: relative; padding-left: 32px; line-height: 1.5; }
.book-direct__list li::before { content: "✓"; position: absolute; left: 0; top: 0; width: 22px; height: 22px; border-radius: 50%; background: var(--teal, #2E7466); color: #fff; font-size: 13px; font-weight: 700; display: flex; align-items: center; justify-content: center; }
@media (max-width: 760px) {
	.book-direct__inner { grid-template-columns: 1fr; gap: 28px; }
	.book-direct__video { max-width: 320px; margin: 0 auto; }
	.book-direct__text { text-align: center; }
	.book-direct__text .section-head__kicker { justify-content: center; }
	.book-direct__list { text-align: left; }
}

.book-direct__play { position: absolute; inset: 0; margin: auto; width: 84px; height: 84px; border: 0; border-radius: 50%; background: rgba(243, 176, 92, .95); color: #1f2a2e; cursor: pointer; display: flex; align-items: center; justify-content: center; box-shadow: 0 8px 24px rgba(0, 0, 0, .3); transition: transform .2s ease, opacity .2s ease; }
.book-direct__play svg { width: 38px; height: 38px; margin-left: 5px; fill: currentColor; }
.book-direct__play:hover, .book-direct__play:focus-visible { transform: scale(1.08); }
.book-direct__video.is-playing .book-direct__play { opacity: 0; pointer-events: none; }

/* Where the money goes (1.9.67) */
.money { padding: 48px var(--page-pad); }
.money__inner { max-width: 1080px; margin: 0 auto; text-align: center; }
.money__lead { max-width: 720px; margin: 10px auto 26px; font-size: 17px; line-height: 1.6; }
.money__stats { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.money__stat { padding: 30px 24px; border-radius: 22px; background: var(--teal); color: var(--white); }
.money__stat--orange { background: var(--orange); color: #1f2a2e; }
.money__num { margin: 0 0 8px; font-size: clamp(40px, 5vw, 58px); font-weight: 700; line-height: 1; letter-spacing: -1px; }
.money__text { margin: 0; font-size: 15.5px; line-height: 1.5; }
.money__note { margin: 16px 0 0; font-size: 13.5px; color: var(--ink-soft); }
.money__note a { font-weight: 600; color: var(--teal-dark); margin-left: 6px; white-space: nowrap; }
.money-sec { padding: 40px var(--page-pad); }
.money-sec--tint { background: #F3F8F7; }
.money-sec__inner { max-width: 820px; margin: 0 auto; }
.money-sec__inner > p { font-size: 17px; line-height: 1.65; }
.money-table-wrap { overflow-x: auto; margin: 18px 0; }
.money-table { width: 100%; border-collapse: collapse; font-size: 16px; background: #fff; border-radius: 14px; overflow: hidden; box-shadow: 0 2px 10px rgba(18,52,46,.06); }
.money-table th { text-align: left; background: var(--teal-dark); color: #fff; font-weight: 600; padding: 10px 14px; font-size: 14px; }
.money-table td { padding: 11px 14px; border-bottom: 1px solid #E3ECEA; }
.money-table td:last-child { text-align: right; white-space: nowrap; }
.money-table__total td { font-weight: 700; color: var(--teal-dark); font-size: 18px; border-bottom: 0; }
.money-small { font-size: 14px !important; color: var(--ink-soft); }
.money-list { margin: 14px 0 0; padding-left: 20px; font-size: 17px; line-height: 1.6; }
.money-list li { margin-bottom: 10px; }
.money-list--small { font-size: 14.5px; }
.money-list a { font-weight: 600; color: var(--teal-dark); }
.money-btn-light { background: #fff; color: var(--teal-dark); }
.about-cta__btns { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }
@media (max-width: 760px) { .money__stats { grid-template-columns: 1fr; } .money { padding: 36px var(--page-pad); } }
.money .host-h2 span { color: var(--orange); }

/* ---------- The Mooch Blog (1.9.69) ---------- */
main > .blog-hero.blog-hero { background: #F3F8F7; }
.blog-hero__inner { max-width: var(--content); margin: 0 auto; padding: 64px var(--page-pad) 36px; }
.blog-hero__title { font-size: clamp(32px, 4.4vw, 52px); line-height: 1.12; color: var(--teal-dark); margin: 6px 0 14px; max-width: 900px; }
.blog-hero__title span { color: var(--orange); }
.blog-hero__lead { font-size: 18px; line-height: 1.6; color: var(--ink-soft); max-width: 720px; margin: 0 0 26px; }
.blog-filters { display: flex; flex-wrap: wrap; gap: 10px; }
.blog-filter { display: inline-flex; align-items: center; min-height: 40px; padding: 0 18px; border-radius: 999px; background: #fff; border: 1px solid #D5E5E1; color: var(--teal-dark); font-weight: 600; font-size: 15px; text-decoration: none; }
.blog-filter:hover { background: #E6F1EE; text-decoration: none; }
.blog-filter[aria-current="page"] { background: var(--teal-dark); border-color: var(--teal-dark); color: #fff; }
.blog-list { padding: 48px var(--page-pad) 64px; }
.blog-list__inner { max-width: var(--content); margin: 0 auto; }
main > .blog-list--related.blog-list { background: #F3F8F7; }
.blog-list--related .host-h2 { margin: 0 0 28px; }
.blog-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.blog-card { display: flex; flex-direction: column; background: #fff; border-radius: 18px; overflow: hidden; box-shadow: 0 2px 14px rgba(18,52,46,.08); transition: transform .2s ease, box-shadow .2s ease; }
.blog-card:hover { transform: translateY(-3px); box-shadow: 0 8px 26px rgba(18,52,46,.13); }
.blog-card__media { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--teal-dark); }
.blog-card__media img, .post-media__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.post-media__blank { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; min-height: 180px; background: linear-gradient(135deg, var(--teal-dark), var(--teal)); }
.post-media__blank span { font-size: 72px; font-weight: 800; color: var(--orange); line-height: 1; }
.blog-card__body { padding: 20px 22px 24px; display: flex; flex-direction: column; gap: 8px; }
.blog-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0; font-size: 13px; color: var(--ink-soft); }
.blog-chip { display: inline-block; padding: 3px 12px; border-radius: 999px; background: #FDF0DD; color: #8A5310; font-size: 13px; font-weight: 700; text-decoration: none; }
a.blog-chip:hover { background: #FBE3C0; text-decoration: none; }
.blog-card__title { font-size: 21px; line-height: 1.3; margin: 0; }
.blog-card__title a { color: var(--teal-dark); text-decoration: none; }
.blog-card__title a:hover { text-decoration: underline; }
.blog-card__excerpt { margin: 0; font-size: 15px; line-height: 1.6; color: var(--ink-soft); }
.blog-card--featured { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); }
.blog-card--featured .blog-card__media { aspect-ratio: auto; min-height: 340px; }
.blog-card--featured .blog-card__body { padding: 36px 40px; justify-content: center; gap: 12px; }
.blog-card--featured .blog-card__title { font-size: clamp(24px, 2.6vw, 34px); }
.blog-card--featured .blog-card__excerpt { font-size: 17px; }
.blog-empty { text-align: center; max-width: 640px; margin: 0 auto; padding: 40px 0; }
.blog-empty h2 { color: var(--teal-dark); font-size: 28px; margin: 0 0 10px; }
.blog-empty p { color: var(--ink-soft); font-size: 17px; line-height: 1.6; margin: 0 0 22px; }
.blog-list .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 40px; }
.blog-list .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 14px; border-radius: 999px; border: 1px solid #D5E5E1; color: var(--teal-dark); font-weight: 600; text-decoration: none; }
.blog-list .page-numbers.current { background: var(--teal-dark); border-color: var(--teal-dark); color: #fff; }
main > .blog-cta.blog-cta { background: var(--teal-dark); padding: 56px var(--page-pad); text-align: center; }
.blog-cta__inner { max-width: 820px; margin: 0 auto; }
.blog-cta h2, .post-cta h2 { color: #fff; font-size: clamp(26px, 3vw, 36px); margin: 0 0 18px; }
.blog-cta h2 span, .post-cta h2 span { color: var(--orange); }
.blog-cta .about-cta__btns, .post-cta .about-cta__btns { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin: 0; }
.post-page { padding-bottom: 0; }
.post { max-width: 820px; margin: 0 auto; padding: 48px var(--page-pad) 56px; }
.post__back { display: inline-flex; align-items: center; gap: 6px; color: var(--teal-dark); font-weight: 600; font-size: 15px; text-decoration: none; margin-bottom: 20px; }
.post__back svg { width: 18px; height: 18px; }
.post__head { margin-bottom: 26px; }
.post__head .blog-chip { margin-bottom: 12px; }
.post__title { font-size: clamp(30px, 4vw, 46px); line-height: 1.15; color: var(--teal-dark); margin: 4px 0 14px; }
.post__lead { font-size: 20px; line-height: 1.55; color: var(--ink); margin: 0 0 14px; }
.post__meta { font-size: 14px; color: var(--ink-soft); margin: 0; }
.post__media { margin: 0 0 32px; border-radius: 20px; overflow: hidden; aspect-ratio: 16 / 9; }
.post__content { font-size: 18px; line-height: 1.75; color: var(--ink); }
.post__content h2 { color: var(--teal-dark); font-size: 28px; line-height: 1.25; margin: 40px 0 12px; }
.post__content h3 { color: var(--teal-dark); font-size: 22px; margin: 32px 0 10px; }
.post__content img { max-width: 100%; height: auto; border-radius: 14px; }
.post__content blockquote { margin: 28px 0; padding: 4px 0 4px 22px; border-left: 4px solid var(--orange); font-size: 21px; color: var(--teal-dark); font-weight: 500; }
.post__content a { color: var(--teal-dark); text-decoration: underline; }
.post__foot { margin-top: 40px; }
.post-share { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 20px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.post-share__label { font-weight: 600; color: var(--teal-dark); margin-right: 6px; }
.post-share__btn { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; background: #E6F1EE; color: var(--teal-dark); border: 0; cursor: pointer; }
.post-share__btn:hover { background: var(--teal-dark); color: #fff; }
.post-share__btn svg { width: 20px; height: 20px; }
.post-share__done { font-size: 14px; color: var(--teal-dark); font-weight: 600; }
.post-cta { margin-top: 36px; background: var(--teal-dark); border-radius: 22px; padding: 36px 32px; text-align: center; }
.post-cta p { color: #DDEAE7; font-size: 17px; line-height: 1.6; margin: 0 0 20px; }
@media (max-width: 960px) {
	.blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.blog-card--featured { grid-template-columns: 1fr; }
	.blog-card--featured .blog-card__media { min-height: 0; aspect-ratio: 16 / 10; }
	.blog-card--featured .blog-card__body { padding: 22px 22px 26px; }
}
@media (max-width: 640px) {
	.blog-grid { grid-template-columns: 1fr; }
	.blog-hero__inner { padding-top: 44px; }
	.post__content { font-size: 17px; }
}
.blog-list--related .host-h2 span { color: var(--orange); }
.blog-more { text-align: center; margin: -14px 0 26px; } .blog-more a { color: var(--teal-dark); font-weight: 600; }
/* Upright (phone) videos in posts: fit the screen, centred (1.9.70) */
.post__content .wp-block-video { margin: 8px auto 28px; text-align: center; }
.post__content .wp-block-video video, .post__content video { display: block; width: auto; max-width: 100%; max-height: 78vh; margin: 0 auto; border-radius: 18px; background: #000; }
.post__content .wp-block-video figcaption { font-size: 14px; color: var(--ink-soft); margin-top: 8px; }
/* Post video play button (1.9.71) */
.post__content .wp-block-video { text-align: center; }
.post-video { position: relative; display: inline-block; max-width: 100%; vertical-align: top; }
.post-video__play { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 96px; height: 96px; border-radius: 50%; border: 0; background: var(--orange); color: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center; box-shadow: 0 8px 26px rgba(0,0,0,.3); transition: transform .15s ease; }
.post-video__play:hover { transform: translate(-50%, -50%) scale(1.06); }
.post-video__play svg { width: 44px; height: 44px; fill: currentColor; margin-left: 5px; }
.post-video.is-playing .post-video__play { display: none; }
/* Blog cards: the whole card is clickable, with a clear "Read / Watch" prompt (1.9.72) */
.blog-card { position: relative; cursor: pointer; }
.blog-card__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.blog-card__media { position: relative; }
.blog-card__play { position: absolute; right: 18px; bottom: 18px; width: 64px; height: 64px; border-radius: 50%; background: var(--orange); display: flex; align-items: center; justify-content: center; box-shadow: 0 6px 20px rgba(0,0,0,.3); transition: transform .2s ease; }
.blog-card__play svg { width: 34px; height: 34px; fill: #fff; margin-left: 4px; }
.blog-card:hover .blog-card__play { transform: scale(1.08); }
.blog-card__more { margin-top: 6px; font-weight: 700; font-size: 15px; color: var(--teal-dark); }
.blog-card:hover .blog-card__more { color: #C47C1F; text-decoration: underline; }
.blog-card:hover .blog-card__title a { text-decoration: underline; }
.blog-card--featured .blog-card__more { font-size: 17px; }
.blog-card:focus-within { outline: 3px solid var(--orange); outline-offset: 3px; }
/* Blog in the Mooch corporate colours: teal header/footer teal, grey headings, orange highlights (1.9.74) */
main > .blog-hero.blog-hero { background: var(--card); }
.blog-hero__title, .post__title, .post__content h2, .post__content h3, .blog-card__title a, .blog-empty h2 { color: var(--ink); }
.blog-hero__title span { color: var(--orange); }
.blog-filter { border-color: #CFE4DF; color: var(--teal-dark); }
.blog-filter:hover { background: #EAF4F1; }
.blog-filter[aria-current="page"] { background: var(--teal); border-color: var(--teal); color: #fff; }
.blog-chip { background: #EAF4F1; color: var(--teal-dark); }
a.blog-chip:hover { background: #D9ECE7; }
.blog-card__media { background: var(--teal); }
.post-media__blank { background: var(--teal); }
.blog-card__more { color: var(--teal); }
.blog-card:hover .blog-card__more, .blog-card:hover .blog-card__title a { color: #D98E2B; }
main > .blog-list--related.blog-list { background: var(--card); }
main > .blog-cta.blog-cta { background: var(--teal); }
.post-cta { background: var(--teal); }
.post-cta p { color: #F1F8F6; }
.post__content blockquote { color: var(--ink); }
.post__content a { color: var(--teal-dark); }
.post-share__label { color: var(--ink); }
.post-share__btn { background: #EAF4F1; color: var(--teal); }
.post-share__btn:hover { background: var(--teal); color: #fff; }
.blog-list .page-numbers { border-color: #CFE4DF; color: var(--teal-dark); }
.blog-list .page-numbers.current { background: var(--teal); border-color: var(--teal); }

/* ===== How Mooch works (1.9.75) ===== */
.hero__how { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 0 18px; color: #fff; font-weight: 600; font-size: 15px; text-decoration: none; vertical-align: middle; }
.hero__how:hover { text-decoration: underline; }
.hero__how-play { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; background: var(--orange); flex: none; }
.hero__how-play svg { width: 16px; height: 16px; fill: #fff; margin-left: 2px; }
@media (max-width: 600px) { .hero__how { display: flex; margin: 16px 0 0; font-size: 14px; } }

.how-page { background: var(--white); }
main > .how-hero.how-hero { background: var(--teal); color: #fff; padding: 72px 20px 56px; text-align: center; }
.how-hero__inner { max-width: 860px; margin: 0 auto; }
.how-hero .host-kicker { color: #FFD9A6; }
.how-hero__title { margin: 0 0 18px; font-size: clamp(32px, 4.4vw, 56px); line-height: 1.12; font-weight: 700; color: #fff; }
.how-hero__title span { color: var(--orange); display: block; }
.how-hero__lead { margin: 0 auto 30px; max-width: 640px; font-size: 18px; line-height: 1.55; color: rgba(255,255,255,.92); }
.how-tabs { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.how-tab { padding: 11px 22px; border-radius: 999px; border: 2px solid rgba(255,255,255,.7); color: #fff; font-weight: 700; text-decoration: none; font-size: 15px; }
.how-tab:hover { background: #fff; color: var(--teal-dark); border-color: #fff; }

main > .how-sec.how-sec { padding: 72px 20px; background: var(--white); scroll-margin-top: 80px; }
main > .how-sec--tint.how-sec--tint { background: var(--card); }
.how-sec__inner { max-width: 1040px; margin: 0 auto; }
.how-sec__head { margin-bottom: 28px; }
.how-sec__kicker { margin: 0 0 8px; font-size: 14px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--teal); }
.how-sec .host-h2 { color: var(--ink); margin-bottom: 12px; }
.how-sec .host-h2 span { color: var(--teal); }
.how-sec__lead { margin: 0; max-width: 720px; font-size: 17px; line-height: 1.6; color: var(--ink); }

.how-video { position: relative; aspect-ratio: 16 / 9; max-height: 78vh; margin: 0 auto; border-radius: 16px; overflow: hidden; background: #0f2924; box-shadow: 0 18px 50px rgba(20,60,52,.18); }
.how-video video, .how-video iframe { display: block; width: 100%; height: 100%; border: 0; object-fit: contain; background: #0f2924; }
.how-video__play { position: absolute; left: 50%; top: 50%; width: 96px; height: 96px; margin: -48px 0 0 -48px; border: 0; border-radius: 50%; background: var(--orange); box-shadow: 0 8px 26px rgba(0,0,0,.3); cursor: pointer; display: flex; align-items: center; justify-content: center; transition: transform .15s; }
.how-video__play:hover { transform: scale(1.06); }
.how-video__play svg { width: 42px; height: 42px; fill: #fff; margin-left: 5px; }
.how-video.is-playing .how-video__play { display: none; }
.how-note { margin: 12px 0 0; font-size: 14px; color: #6b6b6b; text-align: center; }

.how-steps { list-style: none; margin: 40px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.how-step { background: var(--card); border-radius: 14px; padding: 22px 20px; border-top: 4px solid var(--teal); }
.how-step__n { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; background: var(--orange); color: #fff; font-weight: 700; margin-bottom: 12px; }
.how-step h3 { margin: 0 0 6px; font-size: 18px; color: var(--ink); }
.how-step p { margin: 0; font-size: 15px; line-height: 1.5; color: var(--ink); }

.how-btns { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin: 34px 0 0; }

.how-soon { text-align: center; padding: 56px 24px; border-radius: 16px; background: #fff; border: 2px dashed rgba(65,146,130,.45); }
.how-soon__icon { display: inline-flex; align-items: center; justify-content: center; width: 64px; height: 64px; border-radius: 50%; background: #E6F1EE; color: var(--teal); margin-bottom: 12px; }
.how-soon__icon svg { width: 28px; height: 28px; }
.how-soon__title { margin: 0 0 6px; font-size: 22px; font-weight: 700; color: var(--teal-dark); }
.how-soon p { margin: 0 auto; max-width: 520px; color: var(--ink); line-height: 1.55; }

@media (max-width: 900px) { .how-steps { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) {
  main > .how-hero.how-hero { padding: 52px 16px 40px; }
  main > .how-sec.how-sec { padding: 52px 16px; }
  .how-steps { grid-template-columns: 1fr; }
  .how-video { border-radius: 10px; }
  .how-video__play { width: 72px; height: 72px; margin: -36px 0 0 -36px; }
  .how-btns .btn { width: 100%; justify-content: center; text-align: center; }
}

/* ===== Membership terms (1.9.77) ===== */
main > .terms-hero.terms-hero { background: var(--teal); color: #fff; padding: 64px 20px 44px; }
.terms-wrap { max-width: 820px; margin: 0 auto; }
.terms-hero .host-kicker { color: #FFD9A6; }
.terms-hero h1 { margin: 0 0 12px; color: #fff; font-size: clamp(32px, 4vw, 48px); }
.terms-lead { margin: 0; font-size: 17px; color: rgba(255,255,255,.92); }
main > .terms-body.terms-body { padding: 48px 20px 72px; }
.terms-body h2 { margin: 34px 0 10px; font-size: 22px; color: var(--teal-dark); }
.terms-body h2:first-child { margin-top: 0; }
.terms-body ul { padding-left: 22px; }
.terms-body li { margin-bottom: 8px; }
@media (max-width: 560px) { main > .terms-hero.terms-hero { padding: 44px 16px 32px; } main > .terms-body.terms-body { padding: 32px 16px 52px; } }

/* ===== Become an Affiliate (1.9.84) ===== */
.aff-wrap { max-width: 1080px; margin: 0 auto; position: relative; }
.aff-wrap--narrow { max-width: 760px; }
main > .aff-hero.aff-hero { background: var(--teal); color: #fff; padding: 72px 20px 64px; }
.aff-hero .host-kicker { color: #FFD9A6; }
.aff-hero__title { margin: 0 0 18px; max-width: 760px; font-size: clamp(32px, 4.2vw, 54px); line-height: 1.12; color: #fff; }
.aff-hero__title span { display: block; color: var(--orange); }
.aff-hero__lead { max-width: 640px; margin: 0 0 28px; font-size: 18px; line-height: 1.6; color: rgba(255,255,255,.92); }
.aff-hero__btns { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; margin: 0; }
.aff-hero__link { color: #fff; font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
.aff-badge { position: absolute; right: 0; top: 50%; transform: translateY(-50%); width: 210px; height: 210px; border-radius: 50%; background: var(--orange); color: #1f2a2e; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; box-shadow: 0 16px 40px rgba(0,0,0,.18); padding: 24px; }
.aff-badge strong { font-size: 64px; line-height: 1; }
.aff-badge span { font-size: 15px; font-weight: 700; margin-top: 6px; line-height: 1.3; }
main > .aff-sec.aff-sec { padding: 72px 20px; background: var(--white); scroll-margin-top: 80px; }
main > .aff-sec--tint.aff-sec--tint { background: var(--card); }
.aff-sec .host-h2 { color: var(--ink); }
.aff-sec .host-h2 span { color: var(--teal); }
.aff-lead { text-align: center; max-width: 680px; margin: 0 auto 28px; font-size: 17px; line-height: 1.6; color: var(--ink); }
.aff-small { margin: 14px auto 0; max-width: 720px; text-align: center; font-size: 14px; color: #6b6b6b; }
.aff-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-top: 30px; }
.aff-card { background: var(--card); border-radius: 16px; padding: 24px 20px; border-top: 4px solid var(--teal); }
.aff-card__icon { display: inline-flex; width: 48px; height: 48px; border-radius: 50%; background: #E6F1EE; color: var(--teal); align-items: center; justify-content: center; margin-bottom: 12px; }
.aff-card__icon svg { width: 24px; height: 24px; }
.aff-card h3 { margin: 0 0 8px; font-size: 18px; color: var(--ink); }
.aff-card p { margin: 0; font-size: 15px; line-height: 1.55; color: var(--ink); }
.aff-steps { list-style: none; margin: 30px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.aff-steps li { background: #fff; border-radius: 16px; padding: 24px 20px; box-shadow: 0 4px 16px rgba(20,60,52,.06); }
.aff-steps__n { display: inline-flex; width: 38px; height: 38px; border-radius: 50%; background: var(--orange); color: #fff; font-weight: 700; align-items: center; justify-content: center; margin-bottom: 12px; }
.aff-steps h3 { margin: 0 0 6px; font-size: 18px; color: var(--ink); }
.aff-steps p { margin: 0; font-size: 15px; line-height: 1.55; color: var(--ink); overflow-wrap: anywhere; }
.aff-steps code { font-size: 13px; background: #E6F1EE; padding: 1px 5px; border-radius: 4px; }
.aff-table-wrap { overflow-x: auto; }
.aff-table { width: 100%; max-width: 860px; margin: 0 auto; border-collapse: separate; border-spacing: 0; background: #fff; border-radius: 14px; overflow: hidden; box-shadow: 0 4px 18px rgba(20,60,52,.08); }
.aff-table th, .aff-table td { padding: 14px 16px; text-align: center; border-bottom: 1px solid #EEF1F0; font-size: 16px; }
.aff-table th { background: var(--teal); color: #fff; font-weight: 700; }
.aff-table th:first-child, .aff-table td:first-child { text-align: left; font-weight: 700; color: var(--ink); }
.aff-table th:first-child { color: #fff; }
.aff-table td { color: var(--teal-dark); font-weight: 700; }
.aff-table small { display: block; font-size: 12px; font-weight: 500; opacity: .8; }
.aff-two { display: grid; grid-template-columns: 1fr 1fr; gap: 44px; }
.aff-list { margin: 0; padding-left: 20px; font-size: 16px; line-height: 1.6; color: var(--ink); }
.aff-list li { margin-bottom: 8px; }
.aff-faq { margin: 0; }
.aff-faq dt { font-weight: 700; color: var(--ink); margin-top: 14px; }
.aff-faq dd { margin: 4px 0 0; color: var(--ink); line-height: 1.55; }
.aff-form { background: #fff; border-radius: 16px; box-shadow: 0 8px 28px rgba(20,60,52,.10); padding: 10px; }
.aff-form iframe { display: block; width: 100%; min-height: 820px; border: 0; border-radius: 10px; }
@media (max-width: 980px) { .aff-cards, .aff-steps { grid-template-columns: repeat(2, 1fr); } .aff-badge { position: static; transform: none; width: 150px; height: 150px; margin-top: 28px; } .aff-badge strong { font-size: 44px; } .aff-badge span { font-size: 13px; } }
@media (max-width: 640px) { main > .aff-hero.aff-hero { padding: 52px 16px 44px; } main > .aff-sec.aff-sec { padding: 52px 16px; } .aff-cards, .aff-steps, .aff-two { grid-template-columns: 1fr; } .aff-table th, .aff-table td { padding: 10px 8px; font-size: 14px; } }

/* Sponsored wedding venues (1.9.86) */
.wed-card.is-sponsored{border:2px solid var(--orange,#f28c28);box-shadow:0 4px 18px rgba(242,140,40,.18)}
.wed-sponsored{position:absolute;top:.7rem;right:.7rem;z-index:2;display:inline-block;box-shadow:0 2px 6px rgba(0,0,0,.2);background:var(--orange,#f28c28);color:#fff;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:.18rem .55rem;border-radius:999px;margin-right:.4rem;vertical-align:middle}

/* Wedding venues in search suggestions (1.9.88) */
.suggest__kind--venue { background-color: #FBEAF0; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B0466B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='15' r='5.5'/%3E%3Cpath d='M9.5 5.5 12 3l2.5 2.5L12 9z'/%3E%3C/svg%3E"); }

/* Photo credit on a Christmas market card (1.9.91) */
.xmas-card__media { position: relative; }
.xmas-card__credit { position: absolute; right: 6px; bottom: 6px; z-index: 2; font-size: 10px; line-height: 1.3; color: #fff; background: rgba(0,0,0,.45); padding: 2px 6px; border-radius: 4px; text-decoration: none; }
.xmas-card__credit:hover { text-decoration: underline; }

/* Golf county pages (1.9.117): one wide map of every club above the cards */
.ge-map { max-width: none; margin: 0 0 22px; }
.ge-map .course-map { height: 420px; border-radius: 16px; overflow: hidden; }
@media (max-width: 700px) { .ge-map .course-map { height: 300px; } }
.ge-card.is-hot { box-shadow: 0 0 0 3px var(--orange), 0 8px 22px rgba(0,0,0,.12); }
.ge-card { scroll-margin-top: 90px; }
.leaflet-marker-icon.mooch-pin--ge-stay, .leaflet-marker-icon.mooch-pin--ge-stay:hover { background: #1F2A2E; color: #fff; font-size: 15px; box-shadow: 0 0 0 3px #fff, 0 4px 14px rgba(0,0,0,.35); }
/* Golf county cards (1.9.119): places to eat and taxis near each club */
.ge-near { border-top: 1px dashed #DCE6E3; padding-top: 12px; margin-top: 4px; }
.ge-near ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.ge-near li { font-size: 14px; line-height: 1.4; }
.ge-near__name { font-weight: 700; color: var(--ink); }
.ge-near__name a { color: var(--teal); }
.ge-near__meta { display: block; font-size: 13px; color: var(--ink-soft); }
.ge-near--taxi .ge-near__meta { display: inline; }
.ge-near__meta a { color: var(--teal); font-weight: 600; }
.ge-near__why { display: block; font-size: 12.5px; color: #A06A16; }
.ge-near li > a { color: var(--teal); font-weight: 600; }

/* Weather strip (1.9.123): today + 4 days under the page heading */
.wx { box-sizing: border-box; display: inline-block; padding: 8px 12px 6px; border-radius: 14px; background: rgba(255,255,255,.72); border: 1px solid rgba(255,255,255,.6); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.wx[hidden] { display: none; }
.wx__h { margin: 0 0 4px; font-size: 10.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #8A5A10; }
.wx__days { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, 46px); gap: 2px; text-align: center; }
.wx__days li { display: grid; justify-items: center; gap: 2px; }
.wx__d { font-size: 11px; font-weight: 600; color: #3B4446; }
.wx__days svg { width: 28px; height: 28px; }
.wx__t { font-size: 14px; font-weight: 700; color: #1F2A2E; line-height: 1; }
.wx__l { font-size: 11px; color: #4B5557; }
.wx__credit { margin: 3px 0 0; font-size: 9.5px; color: #4B5557; text-align: right; }

/* 1.9.127: the weather is a small see-through panel on the right of the photo (or under the heading on plain pages) */
.course-hero__title.has-wx { display: flex; flex-direction: column; }
.course-hero__wx { align-self: flex-end; margin-bottom: 14px; }
@media (min-width: 900px) {
	.course-hero__title.has-wx { display: grid; grid-template-columns: 1fr auto; grid-template-areas: "kick wx" "name wx"; align-items: end; column-gap: 24px; }
	.course-hero__title.has-wx .course-kicker { grid-area: kick; }
	.course-hero__title.has-wx .course-hero__name { grid-area: name; }
	.course-hero__wx { grid-area: wx; margin: 0; align-self: end; }
}
.location-head__wx { display: flex; justify-content: center; margin: 14px 0 0; }
.location-head__wx .wx { background: rgba(244,248,247,.9); border-color: #E3ECEA; }
.course-hero__wx .wx { background: rgba(15,22,21,.38); border-color: rgba(255,255,255,.28); box-shadow: 0 6px 22px rgba(0,0,0,.18); }
.course-hero__wx .wx__h { color: #F6C77E; }
.course-hero__wx .wx__d, .course-hero__wx .wx__t { color: #fff; }
.course-hero__wx .wx__l, .course-hero__wx .wx__credit { color: rgba(255,255,255,.78); }

/* 1.9.128: hotels on maps are small pins – hover shows name and price, click opens the hotel */
.leaflet-marker-icon.mooch-pin--dot { width: 18px; height: 18px; border-radius: 50%; background: var(--teal); border: 3px solid #fff; box-shadow: 0 1px 5px rgba(0,0,0,.35); cursor: pointer; transition: transform .15s ease, background-color .15s ease, opacity .2s ease; }
.leaflet-marker-icon.mooch-pin--dot:hover, .leaflet-marker-icon.mooch-pin--dot.is-hot { background: var(--orange); transform: scale(1.45); z-index: 5000 !important; }
.course-map.is-focus .leaflet-marker-icon.mooch-pin--dot:not(.is-hot) { opacity: 0; pointer-events: none; }
.leaflet-tooltip.mooch-tip { font: 600 13px/1.35 var(--font); color: #1F2A2E; padding: 6px 10px; border-radius: 10px; border: 0; box-shadow: 0 4px 16px rgba(0,0,0,.2); }
.mooch-tip .mooch-tip-band { color: var(--teal); font-weight: 700; margin-left: 4px; }
.mooch-tip .mooch-pop-dist { font-weight: 500; color: #5F6B6E; font-size: 12px; }

/* 1.9.129: home page strapline in a handwritten script */

/* 1.9.130: home page money facts – quieter, below the app section */
.money--home { padding: 36px var(--page-pad) 40px; background: #F6F9F8; }
.money--home .host-h2 { font-size: clamp(22px, 2.4vw, 28px); }
.money--home .money__lead { font-size: 15px; margin: 6px auto 18px; color: var(--ink-soft); }
.money--home .money__stats { gap: 14px; max-width: 900px; margin: 0 auto; }
.money--home .money__stat, .money--home .money__stat--orange { padding: 18px 16px; border-radius: 16px; background: #fff; color: var(--ink); border: 1px solid #E3ECEA; box-shadow: none; }
.money--home .money__num { font-size: clamp(26px, 3vw, 34px); margin-bottom: 6px; color: var(--teal-dark); letter-spacing: -.5px; }
.money--home .money__stat--orange .money__num { color: #C9822B; }
.money--home .money__text { font-size: 14px; color: var(--ink-soft); }
.money--home .money__note { font-size: 12.5px; }
/* 1.9.131: home page intro – a little bigger and bolder, key promise in orange */
.hero__intro .hero__text { font-size: clamp(16px, 1.5vw, 19px); font-weight: 500; line-height: 1.55; max-width: 560px; }
.hero__hl { color: var(--orange); font-weight: 700; }


/* 1.9.133: course dots (Links Golf and golf county maps) */
.leaflet-marker-icon.mooch-pin--dot-course { background: var(--orange); }
.leaflet-marker-icon.mooch-pin--dot-course:hover, .leaflet-marker-icon.mooch-pin--dot-course.is-hot { background: var(--teal); }
.course-map.is-focus .leaflet-marker-icon.mooch-pin--course:not(.mooch-pin--dot) { opacity: .35; }
/* 1.9.134: courses show as small flags (not plain dots) */
.leaflet-marker-icon.mooch-pin--dot-course { width: 26px; height: 26px; border-width: 2px; display: flex; align-items: center; justify-content: center; }
.leaflet-marker-icon.mooch-pin--dot-course svg { width: 14px; height: 14px; fill: none; stroke: #fff; stroke-width: 2.4; stroke-linejoin: round; stroke-linecap: round; }
.leaflet-marker-icon.mooch-pin--dot-course:hover, .leaflet-marker-icon.mooch-pin--dot-course.is-hot { transform: scale(1.3); }
/* 1.9.135: courses are a golf flag on a pole – no circle */
.leaflet-marker-icon.mooch-pin--dot-course { width: 24px !important; height: 34px !important; background: none !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; display: block; transform-origin: 7px 32px; filter: drop-shadow(0 1px 2px rgba(0,0,0,.45)); }
.leaflet-marker-icon.mooch-pin--dot-course svg { width: 24px; height: 34px; display: block; }
.leaflet-marker-icon.mooch-pin--dot-course .f-pole { stroke: #fff; stroke-width: 2.2; stroke-linecap: round; fill: none; }
.leaflet-marker-icon.mooch-pin--dot-course .f-flag { fill: var(--orange); stroke: #fff; stroke-width: 1; stroke-linejoin: round; }
.leaflet-marker-icon.mooch-pin--dot-course .f-hole { fill: rgba(31,42,46,.55); }
.leaflet-marker-icon.mooch-pin--dot-course:hover .f-flag, .leaflet-marker-icon.mooch-pin--dot-course.is-hot .f-flag { fill: var(--teal); }
.leaflet-marker-icon.mooch-pin--dot-course:hover, .leaflet-marker-icon.mooch-pin--dot-course.is-hot { transform: scale(1.35); }

/* 1.9.136: a little smaller and calmer; "& Mooch Mooch More" on the same line as the name */
.hero__intro .hero__welcome { font-size: 15px; }
.hero__intro .hero__title { font-size: clamp(34px, 4.2vw, 50px); margin-top: 8px; }
.hero__title .hero__mooch { font-family: "Playfair Display", Georgia, "Times New Roman", serif; font-style: italic; font-weight: 600; font-size: .5em; letter-spacing: .01em; color: rgba(255,255,255,.92); white-space: nowrap; margin-left: .2em; }
.hero__title .hero__mooch span { color: var(--orange); }
.hero__intro .hero__tagline { font-size: clamp(19px, 2.1vw, 25px); margin-top: 8px; }
.hero__intro .hero__text { font-size: clamp(15px, 1.3vw, 17px); margin-top: 14px; }

/* 1.9.137: live members counter in the footer; the home banner gets its space back */
.hero__intro { padding-bottom: 56px; }
.members.members--footer { position: relative; left: auto; bottom: auto; transform: none; margin-top: 14px; min-height: 84px; gap: 14px; padding: 0 20px 0 14px; background: rgba(0,0,0,.14); border-color: var(--orange); }
.members--footer .members__live { left: 26px; top: -12px; height: 22px; font-size: 11px; background: var(--teal-dark, #2E7466); }
.members--footer .members__icon { width: 52px; height: 52px; font-size: 26px; }
.members--footer .members__number { font-size: 30px; }
.members--footer .members__label { font-size: 18px; }
.members--footer .members__divider { height: 40px; }
.members--footer .members__growing { font-size: 14.5px; }
.members--footer .members__trend { font-size: 26px; }
@media (max-width: 560px) { .members.members--footer { flex-wrap: nowrap; white-space: nowrap; padding: 14px 16px; gap: 10px; } .members--footer .members__number { font-size: 26px; } .members--footer .members__growing { font-size: 13px; } }
@media (max-width: 900px) { .hero__intro { padding-bottom: 24px; } }
@media (max-width: 560px) {
	.members.members--footer { min-height: 74px; padding: 12px 18px 10px 12px; gap: 12px; align-self: flex-start; }
	.members--footer .members__icon { width: 44px; height: 44px; flex: 0 0 44px; font-size: 22px; }
	.members--footer .members__divider, .members--footer .members__trend { display: none; }
	.members--footer .members__growing br { display: none; }
	.members--footer .members__growing { white-space: normal; max-width: 90px; line-height: 1.25; }
}
/* 1.9.138: welcome text lifted up the banner, with a little more air between the lines */
.hero__intro { margin-top: clamp(36px, 6vh, 64px); padding-bottom: 64px; }
.hero__intro .hero__title { margin-top: 10px; }
.hero__intro .hero__tagline { margin-top: 12px; }
.hero__intro .hero__text { margin-top: 18px; margin-bottom: 26px; }
@media (max-width: 900px) { .hero__intro { margin-top: 40px; padding-bottom: 24px; } }
.inspire-pick { max-width: var(--content); margin: 0 auto 18px; text-align: center; font-size: clamp(22px, 2.4vw, 28px); font-weight: 700; color: var(--teal-dark, #2E7466); }
/* 1.9.140: "New to Mooch?" video pop-up */
.how-pop { width: min(960px, 94vw); max-width: none; padding: 0; border: 0; border-radius: 16px; background: #000; overflow: visible; }
.how-pop::backdrop { background: rgba(10, 30, 26, .78); backdrop-filter: blur(3px); }
.how-pop__frame { position: relative; aspect-ratio: 16 / 9; border-radius: 16px; overflow: hidden; background: #000; }
.how-pop__frame video, .how-pop__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; }
.how-pop__close { position: absolute; top: -18px; right: -18px; z-index: 2; width: 40px; height: 40px; border-radius: 50%; border: 0; background: #fff; color: #1f3d37; font-size: 26px; line-height: 40px; cursor: pointer; box-shadow: 0 4px 14px rgba(0,0,0,.3); }
.how-pop__more { margin: 0; padding: 12px 16px; text-align: center; background: #fff; border-radius: 0 0 16px 16px; font-size: 14px; }
.how-pop__more a { color: var(--teal-dark, #2E7466); font-weight: 600; }
.how-pop:has(.how-pop__more) .how-pop__frame { border-radius: 16px 16px 0 0; }
@media (max-width: 600px) { .how-pop__close { top: -48px; right: 0; } }

/* 1.9.147: AA ratings */
.aa-rating { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; margin: 2px 0 6px; font-size: 13px; font-weight: 600; line-height: 1.3; color: #3E4B48; }
.aa-rating__stars { color: #E8A317; font-size: 15px; letter-spacing: 1px; }
.aa-rating__stars.is-red { color: #C8102E; }
.aa-rating__by { color: #1F4F47; }
.aa-rating__dot { color: #9AA6A3; }
.aa-rating--page { margin: 0 0 12px; padding: 8px 12px; border-radius: 12px; background: #FFF9EC; border: 1px solid #F1DDB0; font-size: 14px; }
.aa-rating--page .aa-rating__stars { font-size: 17px; }

/* 1.9.148: "Google rating" link on each card's picture (opens Google Maps) */
.result-card { position: relative; }
.result-card__greviews { position: absolute; left: 12px; top: 50px; z-index: 2; display: inline-flex; align-items: center; gap: 5px; height: 28px; padding: 0 11px; border-radius: 999px; background: rgba(255,255,255,.94); color: #1F4F47; font-size: 13px; font-weight: 600; text-decoration: none; box-shadow: 0 1px 4px rgba(0,0,0,.18); }
.result-card__greviews.is-top { top: 12px; }
.result-card__greviews span { color: #E8A317; font-size: 14px; }
.result-card__greviews:hover, .result-card__greviews:focus-visible { background: #fff; color: #2E7466; text-decoration: underline; }

/* 1.9.149: Tripadvisor link under the Google one */
.result-card__tripadvisor { top: 86px; }
.result-card__tripadvisor.is-top { top: 48px; }
.result-card__tripadvisor span { color: #34E0A1; font-size: 12px; }

/* 1.9.152: Google rating pop-up */
.gpop { width: min(760px, 94vw); max-width: none; padding: 0; border: 0; border-radius: 16px; overflow: hidden; background: #fff; box-shadow: 0 20px 60px rgba(0,0,0,.35); }
.gpop::backdrop { background: rgba(10,30,26,.7); }
.gpop__bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; background: #1F4F47; color: #fff; }
.gpop__title { margin: 0; font-size: 16px; font-weight: 600; color: #fff; }
.gpop__close { width: 36px; height: 36px; border: 0; border-radius: 50%; background: rgba(255,255,255,.15); color: #fff; font-size: 24px; line-height: 36px; cursor: pointer; }
.gpop__map { display: block; width: 100%; height: min(460px, 60vh); border: 0; }
.gpop__more { margin: 0; padding: 10px 16px; text-align: center; font-size: 14px; }
.gpop__more a { color: #2E7466; font-weight: 600; }

/* 1.9.153: Tripadvisor button removed */
.result-card__tripadvisor { display: none !important; }

/* 1.9.154: voice search button in the search bar */
.hero-search__mic { flex: none; width: 46px; height: 46px; border: 0; border-radius: 50%; background: #E6F1EE; color: var(--teal-dark, #2E7466); display: flex; align-items: center; justify-content: center; cursor: pointer; }
.hero-search__mic[hidden] { display: none; }
.hero-search__mic:hover, .hero-search__mic:focus-visible { background: #D3E8E2; }
.hero-search__mic.is-listening { background: #C8102E; color: #fff; animation: mooch-mic 1.2s ease-in-out infinite; }
@keyframes mooch-mic { 0%, 100% { box-shadow: 0 0 0 0 rgba(200,16,46,.45); } 50% { box-shadow: 0 0 0 10px rgba(200,16,46,0); } }
@media (prefers-reduced-motion: reduce) { .hero-search__mic.is-listening { animation: none; } }
@media (max-width: 560px) { .hero-search__mic { width: 40px; height: 40px; } }

/* 1.9.156: bolder golf flags on maps */
.leaflet-marker-icon.mooch-pin--dot-course { width: 30px !important; height: 42px !important; transform-origin: 9px 40px; filter: drop-shadow(0 1px 1.5px rgba(0,0,0,.55)) drop-shadow(0 0 1px rgba(0,0,0,.35)); }
.leaflet-marker-icon.mooch-pin--dot-course svg { width: 30px; height: 42px; }
.leaflet-marker-icon.mooch-pin--dot-course .f-halo { stroke: #fff; stroke-width: 4; stroke-linecap: round; fill: none; }
.leaflet-marker-icon.mooch-pin--dot-course .f-pole { stroke: #1F2E2B; stroke-width: 1.8; stroke-linecap: round; fill: none; }
.leaflet-marker-icon.mooch-pin--dot-course .f-flag { fill: #E8761A; stroke: #fff; stroke-width: 1.4; stroke-linejoin: round; }
.leaflet-marker-icon.mooch-pin--dot-course .f-hole { fill: #1F2E2B; stroke: #fff; stroke-width: 1; }
.leaflet-marker-icon.mooch-pin--dot-course:hover .f-flag, .leaflet-marker-icon.mooch-pin--dot-course.is-hot .f-flag { fill: #2E7466; }

/* ---------- Golf break planner (/golf-planner/) – 1.9.159 ---------- */
@media (min-width: 720px) { .tp-row.gp-row3 { grid-template-columns: 1fr 1fr 1fr; } .tp-row.gp-row2 { grid-template-columns: 1fr 1fr; } }
.gp-msg { margin: 18px 0 0; position: relative; z-index: 1; }
.gp-summary { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; padding: 18px 24px; }
.gp-summary p { margin: 0; }
.gp-h2 { font-size: clamp(22px, 3vw, 30px); margin: 36px 0 16px; color: var(--teal-dark); }
.gp-unlock { margin-top: 28px; background: var(--teal-dark); color: #fff; border-radius: 18px; padding: 26px; display: grid; gap: 18px; align-items: center; }
@media (min-width: 760px) { .gp-unlock { grid-template-columns: 1.4fr 1fr; } }
.gp-unlock h2 { margin: 0 0 10px; font-size: 26px; color: #fff; }
.gp-unlock ul { margin: 0; padding-left: 20px; line-height: 1.7; }
.gp-unlock .tp-hint { color: #E6F1EE; }
.gp-unlock .tp-link { color: #fff; text-decoration: underline; }
.gp-packs { display: grid; gap: 18px; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); }
.gp-pack { background: #fff; border-radius: 16px; box-shadow: 0 4px 22px rgba(30,60,55,.08); padding: 20px; display: flex; flex-direction: column; gap: 6px; border: 2px solid transparent; }
.gp-pack.is-chosen { border-color: var(--teal); }
.gp-pack img { width: 100%; height: 160px; object-fit: cover; border-radius: 12px; margin: 6px 0; }
.gp-pack h3 { margin: 4px 0 0; font-size: 20px; }
.gp-pack h3 a { color: var(--teal-dark); }
.gp-pack p { margin: 0; }
.gp-pack__kind { font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #8A5310; }
.gp-pack__where { color: var(--ink-soft); font-size: 14px; }
.gp-pack__why { font-size: 15px; margin: 6px 0 !important; }
.gp-label { font-weight: 700; font-size: 14px; margin-top: 6px !important; }
.gp-courses { margin: 0 0 8px; padding-left: 18px; font-size: 15px; line-height: 1.5; }
.gp-courses small { color: var(--ink-soft); }
.gp-cost { display: flex; justify-content: space-between; align-items: baseline; border-top: 1px solid var(--line); padding-top: 10px; margin-top: auto !important; }
.gp-cost strong { font-size: 26px; color: var(--teal-dark); }
.gp-pack form { margin-top: 10px; }
.gp-pack form .btn { width: 100%; }
.gp-locked { margin-top: auto !important; background: var(--card); border-radius: 10px; padding: 10px 12px; font-size: 14px; color: var(--ink-soft); }
.gp-plan { margin-top: 26px; }
.gp-plan > summary { cursor: pointer; font-size: 20px; font-weight: 700; color: var(--teal-dark); margin-bottom: 14px; }
.gp-plan .tp-item { grid-template-columns: 82px 1fr; }
.gp-plan .tp-item small { color: var(--ink-soft); }
.gp-reqs { scroll-margin-top: 90px; }
.gp-req { background: #fff; border-radius: 14px; padding: 16px 18px; margin-bottom: 12px; box-shadow: 0 2px 14px rgba(30,60,55,.06); }
.gp-req header { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.gp-req header p { margin: 0; }
.gp-req header small { color: var(--ink-soft); margin-left: 4px; }
.gp-req__kind { display: inline-block; font-size: 12px; font-weight: 700; background: #FFF1DC; color: #7A4A0E; border-radius: 6px; padding: 2px 8px; margin-right: 4px; }
.gp-status { font: inherit; font-size: 14px; height: 38px; border-radius: 8px; border: 1.5px solid var(--line); padding: 0 10px; background: #fff; }
.gp-status.is-sent { border-color: #C98A2E; background: #FFF6E8; }
.gp-status.is-ok { border-color: var(--teal); background: #E6F1EE; }
.gp-status.is-alt { border-color: #5B6FB0; background: #EEF1FA; }
.gp-status.is-no { border-color: #B5463A; background: #FDECEA; }
.gp-req details { margin: 10px 0; }
.gp-req summary { cursor: pointer; font-weight: 600; color: var(--teal-dark); font-size: 14px; }
.gp-req__subj { font-weight: 600; margin: 10px 0 4px; }
.gp-req__body { white-space: pre-wrap; font: inherit; font-size: 14px; background: var(--card); border-radius: 10px; padding: 12px; margin: 0; }
.gp-req__acts { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; margin: 8px 0 0; }
.gp-small { margin-top: 24px; }

/* ---------- Trip Planner hub (/trip-planner/) – 1.9.163 ---------- */
.pl-grid { display: grid; gap: 20px; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); margin-top: -56px; position: relative; }
.pl-card { background: #fff; border-radius: 18px; box-shadow: 0 10px 40px rgba(30,60,55,.12); padding: 28px; display: flex; flex-direction: column; gap: 8px; color: var(--ink); text-decoration: none; border: 2px solid transparent; transition: border-color .15s, transform .15s; }
.pl-card:hover, .pl-card:focus-visible { border-color: var(--teal); transform: translateY(-2px); }
.pl-card__icon { width: 46px; height: 46px; border-radius: 12px; background: #E6F1EE; color: var(--teal-dark); display: grid; place-items: center; margin-bottom: 4px; }
.pl-card__icon svg { width: 22px; height: 22px; }
.pl-card__title { font-size: 24px; font-weight: 700; color: var(--teal-dark); }
.pl-card__text { color: var(--ink-soft); font-size: 15px; line-height: 1.55; }
.pl-card__foot { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: auto; padding-top: 14px; }
.pl-card__price { font-weight: 600; font-size: 14px; color: var(--teal-dark); }
.pl-more { text-align: center; margin-top: 22px; }
.gp-reply { border-left: 4px solid var(--teal); padding-left: 12px; margin: 10px 0; }
.gp-reply__head { font-weight: 600; font-size: 14px; color: var(--teal-dark); margin: 0 0 6px; }
.gp-sent { font-weight: 600; color: var(--teal-dark); font-size: 14px; }
.gp-err { color: #8A2A1E; font-size: 14px; }
.gp-status.is-reply { border-color: #1F4F47; background: #DCEFEA; font-weight: 600; }
.gp-call { display: inline-flex; align-items: center; gap: 8px; }
.gp-callhint { font-size: 14px; color: var(--ink-soft); margin: 8px 0 0; }

/* ---------- Romantic break planner – 1.9.168 ---------- */
main.rb > .rb-hero { background: linear-gradient(160deg, #6E2C48, #B4546E); }
.rb .tp-kicker { color: #FFD4A8; }
.rb .tp-form .tp-kicker, .rb .gp-pack__kind { color: #8E3557; }
.gp-narrow { max-width: 260px; }
.rb-list { list-style: none; margin: 0; padding: 0; background: #fff; border-radius: 16px; box-shadow: 0 2px 14px rgba(30,60,55,.06); }
.rb-list li { border-top: 1px solid var(--line); }
.rb-list li:first-child { border-top: 0; }
.rb-list label { display: grid; grid-template-columns: 22px 92px 1fr; gap: 12px; align-items: start; padding: 14px 18px; cursor: pointer; font-size: 15px; }
.rb-list input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--teal); }
.rb-list input:checked ~ span { text-decoration: line-through; color: var(--ink-soft); }
.rb-when { font-weight: 700; color: #8E3557; font-size: 14px; }
.rb-quote { background: #fff; border-left: 4px solid #B4546E; border-radius: 0 12px 12px 0; margin: 0 0 10px; padding: 14px 18px; font-family: 'Playfair Display', Georgia, serif; font-style: italic; font-size: 18px; }

/* ---------- School holiday planner – 1.9.169 ---------- */
main.sh > .sh-hero { background: linear-gradient(160deg, #1E5A7A, #2F8FB0); }
.sh .tp-kicker { color: #FFD27A; }
.sh .gp-pack__kind { color: #1E5A7A; }
.sh-rain { margin: 10px 0 2px; padding: 10px 12px; background: #EEF5F9; border-radius: 10px; font-size: 14px; }
.sh-links li a, .sh-links .sh-free { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 14px 18px; color: var(--ink); text-decoration: none; }
.sh-links li a span { color: var(--teal-dark); font-weight: 600; font-size: 14px; }
.sh-links .sh-free > span { color: var(--ink-soft); font-size: 14px; }
.rb-list label.sh-pack { grid-template-columns: 22px 1fr; }
.sh-more > summary { cursor: pointer; font-weight: 700; color: var(--teal-dark); background: #fff; border-radius: 14px; padding: 14px 20px; margin-bottom: 18px; box-shadow: 0 2px 14px rgba(30,60,55,.06); }

/* ---------- Book-direct perks – 1.9.173 ---------- */
.perk-badge { display: flex; gap: 6px; align-items: flex-start; margin: 6px 0 4px; padding: 6px 10px; background: #FFF4E3; border: 1px solid #F3D3A4; border-radius: 8px; font-size: 13px; line-height: 1.35; color: #5A3A0C; }
.perk-badge strong { color: #7A4A0E; }
.perk-box { background: #FFF4E3; border: 2px dashed #E3A65A; border-radius: 14px; padding: 14px 16px; margin: 0 0 16px; }
.perk-box__kicker { margin: 0 0 4px; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #8A5310; }
.perk-box__text { margin: 0 0 6px; font-size: 17px; font-weight: 700; color: var(--ink); }
.perk-box__terms { margin: 0 0 8px; font-size: 13px; color: var(--ink-soft); }
.perk-box__how { margin: 0 0 4px; font-size: 13px; }
.perk-box__code { margin: 0; display: flex; gap: 8px; align-items: center; }
.perk-box__code code { font-size: 16px; font-weight: 700; background: #fff; border-radius: 6px; padding: 4px 10px; letter-spacing: .04em; color: var(--teal-dark); }
.perk-copy { border: 1.5px solid var(--teal); background: #fff; color: var(--teal-dark); border-radius: 999px; padding: 4px 12px; font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; }
.perks-list { margin: 32px 0; }
.perks-grid { display: grid; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.perk-card { display: flex; flex-direction: column; gap: 4px; background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 14px 16px; color: var(--ink); text-decoration: none; }
.perk-card:hover, .perk-card:focus-visible { border-color: var(--teal); }
.perk-card__name { font-weight: 700; color: var(--teal-dark); }
.perk-card__place { font-size: 13px; color: var(--ink-soft); }
.perk-card__text { margin-top: 4px; }
.perk-card__code { margin-top: auto; padding-top: 6px; font-size: 12px; font-weight: 700; letter-spacing: .04em; color: #8A5310; }

/* ---------- Price match sticker – 1.9.174 ---------- */
.pm-sticker { position: absolute; right: 12px; top: 12px; z-index: 3; width: 64px; height: 64px; border-radius: 50%; background: #E8761A; color: #fff; border: 3px solid #fff; box-shadow: 0 2px 8px rgba(0,0,0,.25); display: grid; place-items: center; text-align: center; font-size: 12px; font-weight: 800; line-height: 1.05; letter-spacing: .02em; text-transform: uppercase; transform: rotate(-12deg); pointer-events: none; }
.pm-sticker--hero { right: clamp(16px, 4vw, 48px); top: auto; bottom: clamp(16px, 3vw, 32px); width: 84px; height: 84px; font-size: 15px; }
.course-hero { position: relative; }
.loc-card { position: relative; }
.loc-card .pm-sticker { width: 54px; height: 54px; font-size: 11px; right: 10px; top: 10px; }
.pm-box { display: flex; gap: 12px; align-items: center; background: #FFF4E3; border-radius: 14px; padding: 12px 14px; margin: 0 0 16px; }
.pm-sticker--box { position: static; flex: 0 0 auto; width: 52px; height: 52px; font-size: 11px; transform: rotate(-12deg); }
.pm-box__title { margin: 0 0 2px; font-weight: 700; }
.pm-box__text { margin: 0; font-size: 13px; color: var(--ink-soft); }

/* ---------- Wedding planner – 1.9.175 ---------- */
main.wd > .wd-hero { background: linear-gradient(160deg, #5B4A6E, #9C7FA6); }
.wd .tp-kicker { color: #FFE0B8; }
.wd-venue.is-chosen { outline: 2px solid var(--teal); }
.wd-hl { margin: 8px 0 6px; font-size: 15px; }
.wd-facts { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0; }
.wd-facts span { font-size: 12px; background: var(--card); border-radius: 999px; padding: 3px 10px; }
.wd-price { font-size: 14px; margin: 6px 0; color: var(--ink-soft); }
.wd-choose { margin-top: 8px; }
.wd-share { background: #fff; border-radius: 14px; padding: 16px 18px; margin-top: 16px; box-shadow: 0 2px 14px rgba(30,60,55,.06); }
.wd-link { font-size: 13px !important; word-break: break-all; }
.wd-pm { font-size: 12px; font-weight: 700; color: #B85A0E; }
.wd-cat { margin: 18px 0 10px; font-size: 18px; color: var(--teal-dark); }
.wd-budget { width: 100%; border-collapse: collapse; background: #fff; border-radius: 14px; overflow: hidden; box-shadow: 0 2px 14px rgba(30,60,55,.06); }
.wd-budget th, .wd-budget td { padding: 10px 14px; border-top: 1px solid var(--line); text-align: left; font-size: 14px; }
.wd-budget tr:first-child th, .wd-budget tr:first-child td { border-top: 0; }
.wd-budget td:last-child { text-align: right; font-weight: 700; white-space: nowrap; }
.wd-budget td:nth-child(2) { width: 40%; }
.wd-bar { display: block; height: 10px; border-radius: 6px; background: linear-gradient(90deg, #9C7FA6, #5B4A6E); max-width: 100%; }
@media (max-width: 600px) { .wd-budget td:nth-child(2) { display: none; } }

/* ---------- Supplier hub (Host area) – 1.9.178 ---------- */
.sup-code code { font-size: 18px; font-weight: 700; background: #E6F1EE; color: var(--teal-dark); padding: 4px 10px; border-radius: 6px; }
.sup-jump { margin: 8px 0 18px; font-weight: 600; }
.sup-h { margin: 28px 0 6px; font-size: 24px; color: var(--teal-dark); border-bottom: 3px solid var(--orange); display: inline-block; padding-bottom: 2px; }
.sup-cat { margin: 18px 0 10px; font-size: 17px; color: var(--ink-soft); text-transform: uppercase; letter-spacing: .06em; }
.sup-grid { display: grid; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.sup-card { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 16px 18px; display: flex; flex-direction: column; gap: 6px; }
.sup-card__head { display: flex; gap: 12px; align-items: center; }
.sup-card__head img { width: 56px; height: 56px; object-fit: contain; border-radius: 8px; background: #fff; }
.sup-card h4 { margin: 0; font-size: 18px; color: var(--teal-dark); }
.sup-card p { margin: 0; }
.sup-card__offer { font-weight: 700; font-size: 16px; color: #7A4A0E; background: #FFF4E3; border-radius: 8px; padding: 6px 10px; }
.sup-card__about, .sup-card__terms { font-size: 14px; color: var(--ink-soft); }
.sup-card__claim { font-size: 14px; }
.sup-card__claim code { font-weight: 700; color: var(--teal-dark); }
.sup-card__links { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; margin-top: auto !important; padding-top: 6px; }
.sup-localhead { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 12px; }
.sup-county select { font: inherit; height: 40px; border-radius: 8px; border: 1.5px solid var(--line); padding: 0 10px; margin-left: 6px; }

/* 1.9.179: "Book direct in 4 clicks or less" – straight, under the search bar, in the site's own font */
.hero__strap { display: flex; align-items: center; gap: 10px; margin: 14px 0 0 40px; font-family: inherit; font-size: clamp(15px, 1.4vw, 18px); font-weight: 500; line-height: 1.3; letter-spacing: .01em; color: #fff; text-shadow: 0 1px 8px rgba(0,0,0,.45); }
.hero__strap svg { flex: 0 0 auto; color: var(--orange); filter: drop-shadow(0 1px 4px rgba(0,0,0,.35)); }
.hero__strap strong { color: var(--orange); font-weight: 700; }
.hero__tagline + .hero__text { margin-top: 14px; }
@media (max-width: 760px) { .hero__strap { margin: 10px 0 0 6px; font-size: 15px; } }

/* ---------- For businesses (/for-businesses/) – 1.9.180 ---------- */
main.biz > .biz-hero { background: linear-gradient(160deg, #1F4F47, #2E7466); }
.biz-paths { display: grid; gap: 14px; grid-template-columns: 1fr; margin-top: -56px; position: relative; }
@media (min-width: 640px) { .biz-paths { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1000px) { .biz-paths { grid-template-columns: repeat(4, 1fr); } }
.biz-path { background: #fff; border-radius: 16px; box-shadow: 0 10px 30px rgba(30,60,55,.12); padding: 18px 18px 20px; display: flex; flex-direction: column; gap: 4px; color: var(--ink); text-decoration: none; border: 2px solid transparent; }
.biz-path:hover, .biz-path:focus-visible { border-color: var(--teal); }
.biz-path__k { font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #9A5A12; }
.biz-path strong { font-size: 19px; color: var(--teal-dark); }
.biz-path span:last-child { font-size: 14px; color: var(--ink-soft); }
.biz-sec { margin-top: 44px; scroll-margin-top: 90px; }
.biz-sec h2 { margin: 2px 0 10px; font-size: clamp(24px, 3vw, 32px); color: var(--teal-dark); }
.biz-sec .tp-kicker { color: #9A5A12; }
.biz-why { margin: 0 0 18px; padding-left: 20px; line-height: 1.7; }
.biz-form { margin-top: 0; }
.biz-form textarea { font: inherit; font-weight: 400; color: var(--ink); padding: 12px 14px; border: 1.5px solid var(--line); border-radius: 10px; width: 100%; }
.biz-form .tp-field select { font: inherit; font-weight: 400; height: 48px; padding: 0 14px; border: 1.5px solid var(--line); border-radius: 10px; background: #fff; width: 100%; }
.biz-gap { margin-top: 14px; }
.biz-agree { display: block; margin: 16px 0 18px; }
.biz-agree span { display: block !important; border-radius: 12px !important; line-height: 1.45; padding: 10px 14px 10px 40px !important; position: relative; }
.biz-agree input { width: 20px; height: 20px; left: 12px; top: 12px; inset: auto; opacity: 1 !important; accent-color: var(--teal); z-index: 1; }
.biz-ok { background: #E6F1EE; border: 2px solid var(--teal); border-radius: 12px; padding: 16px 18px; font-weight: 600; color: var(--teal-dark); }

/* Host guide download – 1.9.180 */
.host-hero__actions { display: flex; flex-wrap: wrap; gap: 10px 22px; align-items: center; }
.host-guide-link { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; color: var(--teal); text-decoration: underline; text-underline-offset: 3px; }
.host-guide-link:hover { color: var(--orange); }
.host-guide-link svg { flex: none; }
.host-hero .host-guide-link { color: var(--white); }
.host-hero .host-guide-link:hover { color: var(--orange); }

/* Tourist Guide – 1.9.183 */
main.tg .tp-wrap { max-width: 1160px; }
.tg-filters { background: #fff; border-radius: 18px; box-shadow: 0 8px 30px rgba(0,0,0,.08); padding: 16px 18px; margin-top: -48px; position: relative; display: grid; gap: 10px; }
.tg-filters__row { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.tg-filters__k { font-weight: 600; font-size: 13px; text-transform: uppercase; letter-spacing: .06em; color: var(--teal-dark); min-width: 72px; }
.tg-chip { border: 1.5px solid #d9e4e1; background: #fff; border-radius: 999px; padding: 7px 14px; font: inherit; font-size: 14px; cursor: pointer; color: #333; }
.tg-chip small { color: #888; margin-left: 2px; }
.tg-chip:hover { border-color: var(--teal); }
.tg-chip.is-on { background: var(--teal); border-color: var(--teal); color: #fff; }
.tg-chip.is-on small { color: rgba(255,255,255,.8); }
.tg-count { margin: 14px 0 0; font-weight: 600; color: var(--teal-dark); min-height: 1em; }
.tg-county__region { font-size: 14px; font-weight: 500; color: #888; margin-left: 6px; }
.tg-grid { display: grid; gap: 18px; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.tg-card { display: flex; flex-direction: column; background: #fff; border-radius: 16px; overflow: hidden; box-shadow: 0 4px 18px rgba(0,0,0,.07); color: inherit; text-decoration: none; transition: transform .2s, box-shadow .2s; }
.tg-card[hidden] { display: none; }
.tg-card:hover { transform: translateY(-3px); box-shadow: 0 10px 28px rgba(0,0,0,.12); text-decoration: none; }
.tg-card__img { position: relative; aspect-ratio: 16 / 10; background: #e8efed; overflow: hidden; }
.tg-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tg-card__free { position: absolute; top: 10px; left: 10px; background: var(--orange); color: #fff; font-weight: 700; font-size: 12px; padding: 4px 10px; border-radius: 999px; }
.tg-card__body { padding: 14px 16px 16px; display: grid; gap: 4px; }
.tg-card__cat { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: #a26a1d; }
.tg-card__name { font-size: 17px; line-height: 1.3; color: var(--teal-dark); }
.tg-card__place, .tg-card__price { font-size: 14px; color: #555; }
.tg-card__price { font-weight: 600; color: #333; }
.tg-none, .tg-small { font-size: 14px; color: #666; }
.tg-county[hidden] { display: none; }
.tg-strip { max-width: 1160px; margin: 0 auto; padding-top: 10px; }
.tg-strip__head { display: flex; flex-wrap: wrap; gap: 6px 18px; align-items: baseline; justify-content: space-between; margin-bottom: 16px; }
.tg-strip__head h2 { margin: 0; color: var(--teal-dark); font-size: clamp(22px, 3vw, 28px); }
.tg-strip__head a { font-weight: 600; }
main.tg > .tg-top { position: relative; min-height: 360px; display: flex; align-items: flex-end; background: var(--teal-dark); color: #fff; overflow: hidden; }
.tg-top__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.tg-top__shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.05) 30%, rgba(0,0,0,.65)); }
.tg-top__text { position: relative; padding-top: 80px; padding-bottom: 32px; width: 100%; }
.tg-top h1 { color: #fff; margin: 4px 0 6px; font-size: clamp(30px, 5vw, 48px); }
.tg-top .tp-kicker { color: #ffd9a3; }
.tg-crumbs { font-size: 14px; margin: 0 0 8px; }
.tg-crumbs a { color: #fff; }
.tg-top__place { margin: 0; font-size: 17px; }
main.tg > .tg-body { display: grid; gap: 28px; padding-top: 28px; }
@media (min-width: 900px) { .tg-body { grid-template-columns: 1fr 320px; align-items: start; } .tg-side { position: sticky; top: 90px; } }
.tg-desc { font-size: 19px; line-height: 1.6; margin-top: 0; }
.tg-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.tg-tip { background: #fff6e8; border-left: 4px solid var(--orange); border-radius: 10px; padding: 14px 16px; margin: 22px 0 0; line-height: 1.55; }
.tg-dl { display: grid; grid-template-columns: 1fr; gap: 4px 20px; margin: 0; }
.tg-dl dt { font-weight: 700; color: var(--teal-dark); margin-top: 10px; }
.tg-dl dd { margin: 0; line-height: 1.55; }
@media (min-width: 640px) { .tg-dl { grid-template-columns: 180px 1fr; } .tg-dl dt { margin-top: 0; } .tg-dl dt, .tg-dl dd { padding: 10px 0; border-bottom: 1px solid #ececec; } }
.tg-box { background: #fff; border-radius: 16px; box-shadow: 0 6px 24px rgba(0,0,0,.08); padding: 20px; }
.tg-box h2 { margin: 0 0 10px; font-size: 22px; color: var(--teal-dark); }
.tg-prices { display: grid; grid-template-columns: auto 1fr; gap: 8px 14px; margin: 0; }
.tg-prices dt { font-weight: 700; }
.tg-prices dd { margin: 0; }
.tg-member { background: #eef6f4; border-radius: 10px; padding: 10px 12px; font-size: 14px; margin: 14px 0 0; }
.tg-check { margin-bottom: 0; }
.tg-stays { display: grid; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); margin-bottom: 16px; }
.tg-stay { display: flex; gap: 12px; align-items: center; background: #fff; border-radius: 14px; box-shadow: 0 3px 14px rgba(0,0,0,.07); padding: 10px; color: inherit; text-decoration: none; }
.tg-stay:hover { text-decoration: none; box-shadow: 0 8px 22px rgba(0,0,0,.12); }
.tg-stay__img { flex: none; width: 76px; height: 76px; border-radius: 10px; background: #e8efed; overflow: hidden; }
.tg-stay__img img { width: 100%; height: 100%; object-fit: cover; }
.tg-stay__body { display: grid; gap: 3px; font-size: 14px; color: #555; }
.tg-stay__body strong { color: var(--teal-dark); font-size: 16px; }

/* Impact counter + Why Mooch – 1.9.184 */
main > .impact { background: #F3F8F7; padding: 34px var(--page-pad); }
.impact__inner { max-width: 1160px; margin: 0 auto; text-align: center; }
.impact__k { font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #a26a1d; margin: 0 0 14px; }
.impact__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; grid-template-columns: 1fr; }
@media (min-width: 760px) { .impact__list { grid-template-columns: repeat(3, 1fr); } }
.impact__list li { background: #fff; border-radius: 16px; padding: 18px 18px 20px; box-shadow: 0 4px 18px rgba(0,0,0,.06); display: grid; gap: 6px; align-content: start; }
.impact__n { font-family: Poppins, sans-serif; font-size: clamp(34px, 5vw, 46px); line-height: 1; color: var(--teal-dark); }
.impact__n--orange { color: var(--orange); }
.impact__list span { font-size: 15px; line-height: 1.45; color: #444; }
.impact__more { margin: 16px 0 0; font-weight: 600; }
main.why > .impact { background: transparent; padding-top: 0; margin-top: -56px; }
.why-hero h1 span { color: var(--orange); }
.why-hero__btns { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.why-pillars { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.why-pillar { background: #fff; border-radius: 16px; padding: 20px; box-shadow: 0 4px 18px rgba(0,0,0,.06); }
.why-pillar h3 { margin: 10px 0 6px; color: var(--teal-dark); font-size: 19px; }
.why-pillar p { margin: 0; line-height: 1.55; color: #444; }
.why-pillar__ic { display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: #E6F1EE; color: var(--teal-dark); flex: none; }
.why-pillar__ic svg { width: 24px; height: 24px; }
.why-table-wrap { overflow-x: auto; background: #fff; border-radius: 16px; box-shadow: 0 4px 18px rgba(0,0,0,.06); }
.why-table { width: 100%; border-collapse: collapse; min-width: 560px; }
.why-table th, .why-table td { text-align: left; padding: 14px 16px; border-bottom: 1px solid #eee; vertical-align: top; line-height: 1.45; }
.why-table thead th { font-size: 15px; color: #666; }
.why-table tbody th { font-weight: 600; color: #333; width: 28%; }
.why-table .why-table__us { background: #F3F8F7; color: var(--teal-dark); font-weight: 600; }
.why-table thead .why-table__us { color: var(--teal-dark); font-size: 17px; }
.why-table tbody tr:last-child th, .why-table tbody tr:last-child td { border-bottom: 0; }
.why-hub { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.why-hub__item { display: flex; gap: 14px; align-items: flex-start; background: #fff; border-radius: 16px; padding: 16px; box-shadow: 0 4px 18px rgba(0,0,0,.06); color: #444; text-decoration: none; line-height: 1.45; }
.why-hub__item:hover { text-decoration: none; box-shadow: 0 8px 24px rgba(0,0,0,.1); }
.why-hub__item strong { display: block; color: var(--teal-dark); font-size: 17px; margin-bottom: 2px; }
main.why > .money { margin-top: 40px; }
.why-cta { margin: 40px 0 56px; background: linear-gradient(160deg, var(--teal-dark), var(--teal)); color: #fff; border-radius: 20px; padding: 28px; display: grid; gap: 10px 28px; align-items: center; }
@media (min-width: 820px) { .why-cta { grid-template-columns: 1fr auto; } }
.why-cta h2 { color: #fff; margin: 0 0 6px; }
.why-cta p { margin: 0; }
.why-pillars { grid-template-columns: 1fr; }
@media (min-width: 640px) { .why-pillars { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1000px) { .why-pillars { grid-template-columns: repeat(4, 1fr); } }
main.why > .impact .impact__k { visibility: hidden; margin-bottom: 0; height: 0; }
main.why > .impact .impact__inner { max-width: 980px; }

.tg-card__img--none { display: grid; place-items: center; background: linear-gradient(160deg, var(--teal-dark), var(--teal)); color: rgba(255,255,255,.55); }
.tg-card__img--none svg { width: 56px; height: 56px; }
.tg-card__img--none { gap: 6px; align-content: center; }
.tg-card__soon { font-size: 13px; font-weight: 600; color: rgba(255,255,255,.85); letter-spacing: .02em; }

/* Tourist Guide by county – 1.9.189 */
.tg-region:first-child .gp-h2 { margin-top: 28px; }
.tg-counties { display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); }
.tg-county-card { position: relative; display: block; border-radius: 16px; overflow: hidden; aspect-ratio: 4 / 3; color: #fff; text-decoration: none; box-shadow: 0 4px 18px rgba(0,0,0,.1); }
.tg-county-card:hover { text-decoration: none; }
.tg-county-card__img { position: absolute; inset: 0; background: #e8efed; }
.tg-county-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.tg-county-card:hover .tg-county-card__img img { transform: scale(1.05); }
.tg-county-card__img.tg-card__img--none { display: grid; place-items: center; }
.tg-county-card__img.tg-card__img--none svg { width: 64px; height: 64px; margin-bottom: 40px; }
.tg-county-card__body { position: absolute; inset: auto 0 0 0; padding: 40px 16px 14px; background: linear-gradient(180deg, transparent, rgba(0,0,0,.7)); display: grid; gap: 2px; }
.tg-county-card__body strong { font-size: 22px; line-height: 1.15; }
.tg-county-card__body span { font-size: 14px; opacity: .9; }
.tg-filters--county { margin-top: -28px; }
.tg-one > .tp-wrap > .tg-grid { margin-top: 18px; }
.tg-county-foot { margin-top: 28px; }
.tg-county-card__img.tg-card__img--none { background: linear-gradient(160deg, var(--teal-dark), var(--teal)); color: rgba(255,255,255,.5); }
@media (max-width: 560px) { .tg-counties { grid-template-columns: 1fr 1fr; gap: 12px; } .tg-county-card__body { padding: 30px 12px 10px; } .tg-county-card__body strong { font-size: 17px; } .tg-county-card__body span { font-size: 12.5px; } .tg-county-card__img.tg-card__img--none svg { width: 44px; height: 44px; margin-bottom: 36px; } }
.impact.impact--home { background: #F3F8F7; padding: 34px var(--page-pad) 8px; }
.impact--home + .money { padding-top: 24px; }

/* Footer links: always one line with the orange dividers – the text and icons shrink to fit
   instead of running off the right (iPad, laptops). 1.9.203 */
.footer-nav { flex-wrap: nowrap; justify-content: center; }
.footer-nav li { flex: 1 1 0; min-width: 0; }
.footer-nav a { font-size: clamp(10px, 1.08vw, 15px); gap: 6px; padding: 2px 3px; line-height: 1.25; }
.footer-nav .icon { font-size: clamp(18px, 2vw, 28px); }
@media (max-width: 1440px) {
	.site-footer__main { flex-direction: column; gap: 30px; }
	.site-footer__brand { flex: none; border-right: 0; padding-right: 0; }
	.footer-nav a { font-size: clamp(10px, 1.02vw, 14px); }
}
@media (min-width: 761px) { .footer-nav li.get-app, .is-app .footer-nav li.share-app { flex: 1 1 0; } }
@media (max-width: 760px) {
	.footer-nav { flex-wrap: wrap; }
	.footer-nav li { flex: 0 0 33.333%; border-right: 0; }
	.footer-nav a { font-size: 15px; padding: 4px 6px; }
	.footer-nav .icon { font-size: 28px; }
}
.footer-stats { flex-wrap: wrap; row-gap: 18px; }
.tg-one .tg-grid[hidden], .tg-area[hidden] { display: none; }
.tg-area { font-size: clamp(20px, 2.6vw, 26px); margin: 30px 0 14px; }

/* Tourist Guide county map – 1.9.201 */
.tg-map { height: 400px; border-radius: 16px; overflow: hidden; margin: 22px 0 6px; box-shadow: 0 4px 18px rgba(0,0,0,.08); z-index: 0; background: #e8efed; }
@media (max-width: 640px) { .tg-map { height: 300px; } }
.tg-pin span { display: block; width: 26px; height: 26px; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); background: var(--teal-dark); border: 3px solid #fff; box-shadow: 0 2px 6px rgba(0,0,0,.35); }
.tg-pin--free span { background: var(--orange); }
.tg-pin { background: none; border: 0; }
.leaflet-popup-content .tg-pop__cat { display: block; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #a26a1d; }
.leaflet-popup-content strong { display: block; font-size: 15px; color: var(--teal-dark); margin: 2px 0; }
.leaflet-popup-content .tg-pop__meta { display: block; font-size: 13px; color: #555; margin-bottom: 6px; }
.leaflet-popup-content a { font-weight: 700; }
.tg-map-key { font-size: 13px; color: #555; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0 0 4px; }
.tg-key { display: inline-block; width: 12px; height: 12px; border-radius: 50%; background: var(--teal-dark); margin-left: 6px; }
.tg-key--free { background: var(--orange); margin-left: 0; }
.footer-nav li.get-app { border-right: 0; }
.footer-nav { border-bottom: 0; padding-bottom: 0; }
.leaflet-tooltip.tg-tip { font-family: Poppins, sans-serif; font-weight: 600; font-size: 13px; color: var(--teal-dark); padding: 5px 10px; border-radius: 8px; box-shadow: 0 2px 10px rgba(0,0,0,.18); }

/* Header "More" menu – the footer links that aren't in the top menu. 1.9.209 */
.site-more { order: 6; position: relative; flex: none; margin-left: 10px; }
.site-more__toggle { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border: 0; border-radius: 10px; background: rgba(255,255,255,.15); color: var(--white); font-size: 26px; cursor: pointer; }
.site-more__toggle .menu-toggle__close { display: none; }
.site-more__toggle[aria-expanded="true"] .menu-toggle__open { display: none; }
.site-more__toggle[aria-expanded="true"] .menu-toggle__close { display: inline-flex; }
.site-more__panel { position: absolute; right: 0; top: calc(100% + 10px); z-index: 1002; background: #fff; border-radius: 14px; box-shadow: 0 14px 34px rgba(0,0,0,.2); padding: 8px; min-width: 240px; }
.site-more__panel[hidden] { display: none; }
.site-more__list, .site-nav__more { list-style: none; margin: 0; padding: 0; }
.site-more__list a { display: flex; align-items: center; gap: 12px; padding: 11px 14px; border-radius: 10px; color: var(--teal-dark); font-weight: 600; font-size: 15px; white-space: nowrap; }
.site-more__list a:hover { background: #EEF6F4; text-decoration: none; }
.site-more__list .icon { font-size: 20px; color: var(--teal); flex: none; }
.site-nav__more { display: none; }
@media (max-width: 1360px) {
	.site-more { display: none; } /* the menu button shows everything */
	.site-nav__more { display: flex; flex-direction: column; align-items: center; border-top: 1px solid rgba(255,255,255,.25); padding-top: 4px; }
	.site-nav__more a { display: flex; align-items: center; justify-content: center; gap: 10px; color: var(--white); font-weight: 600; font-size: 18px; padding: 14px 0; border-bottom: 1px solid rgba(255,255,255,.15); }
	.site-nav__more .icon { font-size: 20px; color: var(--orange); flex: none; }
}

/* 1.9.211 Tourist Guide back button */
.tg-back { display: inline-flex; align-items: center; gap: 6px; margin: 0 0 12px; padding: 8px 16px; border-radius: 999px; background: rgba(255,255,255,.18); border: 1px solid rgba(255,255,255,.45); color: #fff; font-weight: 600; font-size: 15px; text-decoration: none; backdrop-filter: blur(4px); }
.tg-back:hover, .tg-back:focus-visible { background: #fff; color: #1F4F47; }
.tg-back span { font-size: 18px; line-height: 1; }

/* 1.9.213 Language switcher keeps the same size in every language (some flags, e.g. Welsh, don't load – hide their alt text) */
.site-lang .gt_float_switcher .gt-current-lang { width: 88px; box-sizing: border-box; justify-content: center; overflow: hidden; }
.site-lang .gt_float_switcher img { font-size: 0; color: transparent; overflow: hidden; }
/* Longer translated words: buttons wrap instead of running off the side of a phone */
.btn.js-greviews { white-space: normal; max-width: 100%; height: auto; min-height: 44px; text-align: center; }
/* 1.9.214: one more squeeze, then (translated menus only, in practice) the menu moves into a single ☰ button */
.site-header.is-tight4 .site-nav__list a, .site-header.is-tight4 .site-nav__login { font-size: 12px; }
.site-header.is-tight4 .site-nav__list { gap: 7px; }
.site-header.is-tight4 .site-nav__actions .btn { font-size: 12px; padding: 0 10px; }
.site-header.is-tight4 .site-header__inner { gap: 10px; }
@media (min-width: 1361px) {
	.site-header.is-compact .site-more { display: none; }
	.site-header.is-compact .site-nav__more { display: flex; flex-direction: column; border-top: 1px solid rgba(255,255,255,.25); padding-top: 4px; }
	.site-header.is-compact .site-nav__more a { display: flex; align-items: center; gap: 10px; color: var(--white); font-weight: 600; font-size: 18px; padding: 14px 0; border-bottom: 1px solid rgba(255,255,255,.15); }
	.site-header.is-compact .site-nav__more .icon { font-size: 20px; color: var(--orange); flex: none; }
	.site-header.is-compact .site-nav { max-height: calc(100vh - 80px); overflow-y: auto; }
}
@media (min-width: 1361px) {
	.site-header.is-compact .site-lang { order: 5; margin-left: auto; }
	.site-header.is-compact .menu-toggle { order: 6; margin-left: 10px; }
	.site-header.is-compact .site-nav__list a { text-align: left; }
	.site-header.is-compact .site-nav__list { align-items: stretch; }
}
@media (min-width: 1361px) { .site-header.is-compact .site-header__inner:not(:has(.site-lang)) .menu-toggle { margin-left: auto; } }

/* 1.9.215: last squeeze before the ☰ – long menu words (e.g. French) go onto two short lines */
.site-header.is-tight5 .site-nav__list a { white-space: normal; display: block; max-width: 92px; line-height: 1.15; text-align: center; }
.site-header.is-tight5 .site-nav__login { white-space: normal; max-width: 86px; line-height: 1.15; text-align: left; }
.site-header.is-tight5 .site-nav__actions .btn { white-space: normal; max-width: 110px; line-height: 1.15; height: auto; min-height: 40px; text-align: center; }

/* 1.9.222 Place-to-stay summary and link sections */
.hotel-about { margin: 0 0 22px; font-size: 16px; line-height: 1.65; color: var(--ink, #2b2b2b); }
.sc-links { margin-top: 30px; }
.sc-more { margin: 10px 0 0; font-weight: 600; }
.sc-more a { color: var(--teal, #2E7466); }

/* 1.9.225 Phones: the lighter copy of the big header photo */
@media (max-width: 800px) { .course-hero.has-sm, .hero.has-sm { background-image: var(--hero-img-sm); } }

/* 1.9.226 Town/county summary and "places to stay by type" pages */
.place-summary { max-width: var(--content, 1200px); margin: 0 auto 8px; padding: 18px var(--page-pad, 20px) 0; }
.place-summary__text { margin: 0; font-size: 16px; line-height: 1.65; max-width: 860px; }
.place-summary__links { margin: 12px 0 0; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-size: 14px; }
.place-summary__links a { display: inline-flex; gap: 6px; align-items: center; padding: 5px 12px; border-radius: 999px; background: #E3EFEC; color: var(--teal, #2E7466); font-weight: 600; text-decoration: none; }
.place-summary__links a span { font-weight: 500; opacity: .75; }
.place-summary__links a:hover { background: var(--teal, #2E7466); color: #fff; }
.sbt-body { padding-block: 24px 48px; }
.sbt-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 18px; }
.sbt-card { background: #fff; border: 1px solid #E2E0D8; border-radius: 14px; padding: 18px 20px; }
.sbt-card h2 { margin: 0 0 8px; font-size: 20px; }
.sbt-card h2 a { color: var(--teal, #2E7466); text-decoration: none; }
.sbt-card ul, .sbt-list { list-style: none; margin: 0; padding: 0; }
.sbt-card li, .sbt-list li { display: flex; justify-content: space-between; gap: 10px; padding: 6px 0; border-top: 1px solid #EEF1F0; }
.sbt-card li:first-child { border-top: 0; }
.sbt-card li span, .sbt-list li span { color: #6A7774; font-size: 14px; white-space: nowrap; }
.sbt-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); column-gap: 28px; }
.sbt-group { margin-bottom: 26px; }
.sbt-more { margin-top: 12px; font-weight: 600; }
