/* 0.7.9: larger photographs, tighter image spacing and a gym-only triptych. */
.home-hero { width: 100%; margin-inline: 0; }
.xinoble-home .site-header-inner { width: min(calc(100% - (2 * var(--xinoble-gutter))), var(--xinoble-wide)); }

/* Restore the original icon-above-copy cards; widen the banner only. */
.home-booking { width: min(calc(100% - (2 * var(--xinoble-gutter))), 88rem); padding: 1.5rem 1.75rem; }
.home-booking .xinoble-section-heading { margin-bottom: 1.5rem; }
.home-booking .booking-platform { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto 1fr; min-height: 0; padding: 1.1rem 1rem; }
.home-booking .booking-platform-grid { gap: .75rem; }
.home-booking .booking-platform-logo,
.home-booking .booking-platform--corporate .booking-platform-logo { margin-bottom: .45rem; }

/* Let the first introduction lead with two generous, unobstructed photographs. */
.home-overview { padding-block: clamp(4rem, 7vw, 6rem); }
.home-overview-intro { display: block; }
.home-overview-copy { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); align-items: end; gap: clamp(2rem, 5vw, 5rem); max-width: none; margin-bottom: clamp(2rem, 4vw, 3.5rem); }
.home-overview-title .xinoble-kicker { margin-bottom: 1rem; }
.home-overview-title h2 { max-width: 15ch; }
.home-overview-lead { padding-bottom: .25rem; }
.home-overview-lead > p { margin: 0 0 1.5rem; color: var(--xinoble-muted); font-size: var(--xinoble-type-body); line-height: 1.85; }
.home-overview-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(.5rem, 1vw, 1rem); min-height: 0; }
.home-overview-panel { position: relative; display: block; height: clamp(25rem, 35vw, 36rem); overflow: hidden; background: #e9dfd1; color: #fff7eb; text-decoration: none; }
.home-overview-panel > img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 450ms ease; }
.home-overview-panel::after { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 45%, rgba(48,39,30,.18) 65%, rgba(48,39,30,.84) 100%); content: ""; pointer-events: none; }
.home-overview-panel-copy { position: absolute; right: clamp(1.25rem, 3vw, 2.5rem); bottom: clamp(1.5rem, 3vw, 2.5rem); left: clamp(1.25rem, 3vw, 2.5rem); z-index: 1; padding-right: 2.5rem; }
.home-overview-panel-copy > small { display: block; margin-bottom: .7rem; color: #f0ddbf; font-size: .65rem; letter-spacing: .16em; line-height: 1.6; }
.home-overview-panel-copy > strong { display: block; font-family: var(--xinoble-display); font-size: var(--xinoble-type-h3); font-weight: 400; line-height: 1.35; }
.home-overview-panel-copy > span { display: block; margin-top: .7rem; font-size: .9rem; line-height: 1.7; }
.home-overview-panel-copy > i { position: absolute; right: 0; bottom: 0; font-size: 1.4rem; font-style: normal; }
.home-overview-panel:hover > img { transform: scale(1.025); }
.home-overview-panel:focus-visible { outline: 3px solid var(--xinoble-gold); outline-offset: 4px; }
.home-overview-facts { margin-top: clamp(2rem, 4vw, 3.5rem); }

/* Titles and photographs share the same centred content width. */
.xinoble-home .xinoble-section:not(.home-booking) > .xinoble-section-heading,
.home-facilities > .xinoble-text-link,
.home-facility-collection,
.home-facility-parking,
.editorial-gallery > .xinoble-photo-groups {
	width: min(100%, var(--xinoble-wide));
	max-width: var(--xinoble-wide);
	margin-inline: auto;
}

/* Equal photo pairs throughout; the gym alone uses the triptych variant. */
.xinoble-photo-groups { display: grid; gap: clamp(1rem, 2vw, 1.75rem); min-width: 0; }
.xinoble-photo-group {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(.375rem, .75vw, .75rem);
	align-items: stretch;
	min-width: 0;
}
.xinoble-photo-groups--gym .xinoble-photo-group[data-photo-count="3"] { grid-template-columns: minmax(0, 2fr) repeat(2, minmax(0, 1fr)); }
.xinoble-photo-group[data-photo-count="1"] { grid-template-columns: minmax(0, 1fr); }
.xinoble-photo-figure { display: flex; flex-direction: column; min-width: 0; margin: 0; }
.xinoble-photo-frame { position: relative; height: clamp(18rem, 26vw, 28rem); min-width: 0; overflow: hidden; background: #e9dfd1; }
.xinoble-photo-target { display: block; width: 100%; height: 100%; }
.xinoble-photo-frame img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	object-position: var(--xinoble-photo-position, 50% 50%);
	transform: scale(var(--xinoble-photo-zoom, 1));
	transform-origin: var(--xinoble-photo-origin, 50% 50%);
}
.xinoble-photo-frame--contain img,
.xinoble-photo-group[data-photo-count="1"] .xinoble-photo-frame img { object-fit: contain; }
.xinoble-photo-figure > figcaption,
.editorial-gallery .xinoble-photo-figure > figcaption {
	display: block;
	flex: 1;
	padding: 1rem 0 0;
	margin: 0;
	font-size: var(--xinoble-type-body);
	line-height: 1.7;
}
.xinoble-photo-figure > figcaption > strong { display: block; font: inherit; font-weight: 500; }
.xinoble-photo-figure > figcaption > p { margin: .4rem 0 0; color: var(--xinoble-muted); font-size: .9rem; line-height: 1.75; }
.hub-section--dark .xinoble-photo-figure > figcaption > p,
.editorial-gallery .xinoble-photo-figure > figcaption > p { color: #d4c6b5; }

/* The gym leads in one row; the other four facility cards form two pairs. */
.home-facility-collection { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(3rem, 5vw, 5rem) clamp(1.5rem, 2.5vw, 2.5rem); margin-bottom: 3rem; }
.home-facility-card { min-width: 0; }
.home-facility-card--gym { grid-column: 1 / -1; }
.home-facility-photo { position: relative; display: block; aspect-ratio: 3 / 2; overflow: hidden; background: #e9dfd1; }
.home-facility-photo > img { display: block; width: 100%; height: 100%; object-fit: cover; }
.home-facility-card:not(.home-facility-card--gym) .home-facility-content { display: block; }
.home-facility-card:not(.home-facility-card--gym) .home-facility-description { margin: 1rem 0; }
.home-facility-content { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); gap: .5rem 3rem; padding-top: 1.5rem; }
.home-facility-content .xinoble-kicker { grid-column: 1; grid-row: 1; margin-bottom: .6rem; }
.home-facility-content h3 { grid-column: 1; grid-row: 2; margin: 0; font-family: var(--xinoble-display); font-weight: 400; }
.home-facility-description { grid-column: 2; grid-row: 1 / 3; align-self: end; max-width: 42rem; margin: 0; color: var(--xinoble-muted); line-height: 1.85; }
.home-facility-content .xinoble-text-link { grid-column: 1; grid-row: 3; align-self: center; justify-self: start; }
.home-facility-facts { grid-column: 2; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 2rem; margin: 1.3rem 0; padding-top: 1rem; border-top: 1px solid var(--xinoble-line); }
.home-facility-facts > div { min-width: 0; }
.home-facility-facts dt { margin-bottom: .4rem; color: var(--xinoble-gold); font-size: .8rem; }
.home-facility-facts dd { margin: 0; line-height: 1.75; }
.home-facility-parking { display: grid; grid-template-columns: 1fr 1.25fr auto; align-items: center; gap: 2rem; padding: 2rem 0; margin-bottom: 2rem; border-block: 1px solid var(--xinoble-line); }
.home-facility-parking h3 { margin: .5rem 0 0; font-family: var(--xinoble-display); font-weight: 400; }
.home-facility-parking > p { margin: 0; color: var(--xinoble-muted); line-height: 1.85; }
.home-facility-parking > a { justify-self: start; white-space: nowrap; }
.hub-breakfast-photo-note { margin: 1rem 0 0; color: var(--xinoble-muted); font-size: .85rem; line-height: 1.75; }

/* Space comparisons use equal frames instead of source-dependent image heights. */
.xinoble-editorial-page .hub-choice-grid { align-items: stretch; }
.xinoble-editorial-page .hub-choice-card { grid-template-rows: auto 1fr; }
.xinoble-editorial-page .hub-choice-grid--spaced { gap: clamp(.625rem, 1.2vw, 1.2rem); }
.xinoble-editorial-page .hub-choice-media { height: clamp(14rem, 22.5vw, 21.5rem); }
.xinoble-editorial-page .hub-choice-grid--two .hub-choice-media { height: clamp(21rem, 35vw, 33rem); }
.xinoble-editorial-page .hub-service-grid--outside { align-items: stretch; }

/* Local arrival diagram: no third-party login, cookies or scripts at page load. */
.xinoble-map { display: flex; flex-direction: column; min-width: 0; width: 100%; height: 100%; border: 1px solid var(--xinoble-line); background: var(--xinoble-paper); color: var(--xinoble-ink); }
.xinoble-map-heading { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .35rem 1rem; padding: 1.1rem 1.25rem; }
.xinoble-map-heading > span { align-self: center; color: var(--xinoble-gold); font-size: .75rem; }
.xinoble-map-heading strong { font-weight: 500; }
.xinoble-map-heading small { grid-column: 1 / -1; color: var(--xinoble-muted); line-height: 1.7; }
.xinoble-map-frame { position: relative; flex: 1 1 auto; min-height: 24rem; }
.xinoble-map-preview { position: absolute; inset: 0; display: block; color: var(--xinoble-ink); background: #ece9e2; }
.xinoble-map-preview img { display: block; width: 100%; height: 100%; object-fit: contain; }
.xinoble-map-open { position: absolute; right: 1rem; bottom: 1rem; display: inline-flex; align-items: center; gap: 1rem; padding: .75rem 1rem; min-height: 2.75rem; background: var(--xinoble-ink); color: var(--xinoble-paper); font-size: .85rem; }
.xinoble-map-preview:focus-visible { outline: 3px solid var(--xinoble-gold); outline-offset: -3px; }
.xinoble-map-links { display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; padding: .75rem 1.25rem; border-top: 1px solid var(--xinoble-line); }
.xinoble-map-links a { display: inline-flex; align-items: center; gap: .6rem; min-height: 2.75rem; color: var(--xinoble-ink); text-decoration: none; }
.xinoble-map-links a:hover { color: var(--xinoble-gold); }
.xinoble-map-links small { flex: 1 0 100%; color: var(--xinoble-muted); line-height: 1.6; }
.arrival-driving-reference { width: 100%; margin: 0 0 1.5rem; border-collapse: collapse; table-layout: fixed; text-align: left; }
.arrival-driving-reference caption { padding: 0 0 1rem; text-align: left; color: var(--xinoble-muted); font-size: .85rem; }
.arrival-driving-reference th, .arrival-driving-reference td { padding: 1rem .5rem; border-bottom: 1px solid var(--xinoble-line); font-size: clamp(.8rem, 1.1vw, 1rem); vertical-align: middle; }
.arrival-driving-reference thead th { color: var(--xinoble-muted); font-weight: 400; }
.arrival-driving-reference tbody th { font-weight: 500; }
.arrival-driving-reference th:first-child { width: 40%; padding-left: 0; }
.xinoble-map--compact { border: 0; }
.xinoble-map--compact .xinoble-map-frame { min-height: 100%; }
.home-location-map { min-height: 35rem; }
.home-location-map > .xinoble-map { min-height: inherit; }
.hub-route-media--map::after,
.hub-business-commute-media--map::after { display: none; }
.hub-route-media--map,
.hub-business-commute-media--map { min-height: 35rem; background: var(--xinoble-paper); }
.hub-route-media--map > .xinoble-map,
.hub-business-commute-media--map > .xinoble-map { min-height: inherit; }
.editorial-related-card--map > .editorial-related-media { display: block; }
.editorial-related-card--map > .editorial-related-copy { color: inherit; text-decoration: none; }
.editorial-related-media .xinoble-map { height: 100%; }

.xinoble-editorial-page .editorial-hero--location { min-height: 0; padding-top: calc(var(--xinoble-header-height) + 3rem); background: var(--xinoble-sand); color: var(--xinoble-ink); }
.editorial-hero--location .editorial-hero-copy { padding-top: 0; padding-bottom: 3rem; }
.editorial-hero--location .editorial-hero-description,
.editorial-hero--location .breadcrumbs { color: var(--xinoble-muted); }
/* A filtered header becomes the containing block for the fixed mobile menu. */
body.menu-open .site-header { -webkit-backdrop-filter: none; backdrop-filter: none; }

@media (max-width: 68rem) {
	.home-booking { width: calc(100% - 3rem); }
	.home-booking .booking-platform-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.home-facility-parking { grid-template-columns: 1fr 1fr; }
	.home-facility-parking > a { grid-column: 2; }
	.hub-business-commute-media--map { min-height: 30rem; }
}
@media (max-width: 48rem) {
	.home-hero { width: 100%; }
	.xinoble-home .site-header-inner { width: calc(100% - 2rem); }
	.home-hero-copy { width: calc(100% - 2rem); }
	.home-booking { width: calc(100% - 2rem); padding: 1.5rem 1rem; }
	.home-booking .booking-platform-grid { grid-template-columns: 1fr; }
	.home-booking .booking-platform { grid-template-columns: 3.55rem minmax(0, 1fr); grid-template-rows: auto; padding: 1rem; }
	.home-booking .booking-platform-logo { grid-column: 1; grid-row: 1; }
	.home-booking .booking-platform-copy { grid-column: 2; grid-row: 1; }
	.home-overview-copy { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
	.home-overview-title h2 { max-width: none; }
	.home-overview-gallery { grid-template-columns: minmax(0, 1fr); gap: .5rem; }
	.home-overview-panel { height: auto; aspect-ratio: 4 / 3; }
	.home-overview-panel-copy > span { font-size: .85rem; }
	.home-facility-collection { grid-template-columns: minmax(0, 1fr); }
	.xinoble-editorial-page .hub-choice-grid--spaced { gap: .55rem; }
	.home-facility-card--gym { grid-column: auto; }
	.xinoble-photo-group { grid-template-columns: minmax(0, 1fr); }
	.xinoble-photo-groups--gym .xinoble-photo-group[data-photo-count="3"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.xinoble-photo-groups:not(.xinoble-photo-groups--gym) .xinoble-photo-frame { height: auto; aspect-ratio: 4 / 3; }
	.xinoble-photo-group .xinoble-photo-figure--overview { grid-column: 1 / -1; }
	.xinoble-photo-group[data-photo-count="2"] .xinoble-photo-figure--overview { grid-column: auto; }
	.xinoble-photo-frame { height: clamp(12rem, 44vw, 19rem); }
	.xinoble-photo-group[data-photo-count="3"] .xinoble-photo-figure--overview .xinoble-photo-frame,
	.xinoble-photo-group[data-photo-count="1"] .xinoble-photo-frame { height: auto; aspect-ratio: 16 / 10; }
	.xinoble-photo-frame > img,
	.xinoble-photo-target > img { position: absolute; inset: 0; }
	.xinoble-photo-figure > figcaption,
	.editorial-gallery .xinoble-photo-figure > figcaption { padding-top: .75rem; font-size: .9rem; }
	.home-facility-content { display: block; }
	.home-facility-description { margin: 1rem 0; }
	.home-facility-parking { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
	.home-facility-parking > a { grid-column: auto; }
	.xinoble-map-frame { min-height: 22rem; }
	.xinoble-map-heading { padding: 1rem; }
	.xinoble-map-links { padding: .6rem 1rem; gap: .5rem 1rem; font-size: .9rem; }
	.home-location-map, .hub-route-media--map, .hub-business-commute-media--map { min-height: 31rem; }
}

@media (prefers-reduced-motion: reduce) {
	.home-overview-panel > img { transition: none; }
	.home-overview-panel:hover > img { transform: none; }
}
