/**
 * Hotel The Hills — design layer on top of theme.json.
 * Loaded on the front end and in the editor (add_editor_style) for parity.
 */

:root {
	--hth-ease: cubic-bezier(.2, .7, .1, 1);
	--hth-ease-out: cubic-bezier(.16, 1, .3, 1);
	--hth-header-h: 88px;
	--hth-gutter: clamp(1rem, 4vw, 3rem);
	--hth-line: color-mix(in srgb, currentColor 18%, transparent);
	--hth-label: color-mix(in srgb, var(--wp--preset--color--pine) 70%, var(--wp--preset--color--ink));
}

html { scroll-padding-top: calc(var(--hth-header-h) + 1rem); }
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; overflow-x: clip; }
::selection { background: var(--wp--preset--color--champagne); color: var(--wp--preset--color--midnight); }

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 2px solid var(--wp--preset--color--champagne);
	outline-offset: 3px;
}

.skip-link.screen-reader-text:focus {
	z-index: 1000;
	padding: 1rem 1.5rem;
	background: var(--wp--preset--color--midnight);
	color: var(--wp--preset--color--ivory);
	font: 600 .875rem var(--wp--preset--font-family--body);
	clip-path: none;
	height: auto;
	width: auto;
	top: 1rem;
	left: 1rem;
}

h1 em, h2 em, h3 em, .is-style-hth-display em { font-style: italic; font-weight: 300; }
.has-display-font-size { line-height: .98; letter-spacing: -.02em; }

/* ------------------------------------------------------------------ */
/* Block styles                                                        */
/* ------------------------------------------------------------------ */

.is-style-hth-eyebrow {
	display: flex;
	align-items: center;
	gap: .9rem;
	margin-bottom: 1.25rem;
	font-family: var(--wp--preset--font-family--body);
	font-size: .6875rem !important;
	font-weight: 600;
	letter-spacing: .26em;
	line-height: 1.3;
	text-transform: uppercase;
	color: var(--hth-label);
}
.is-style-hth-eyebrow::before { content: ""; width: 2.25rem; height: 1px; background: currentColor; opacity: .7; }
.has-text-align-center.is-style-hth-eyebrow { justify-content: center; }
.has-text-color .is-style-hth-eyebrow,
.hth-section--dark .is-style-hth-eyebrow,
.wp-block-cover .is-style-hth-eyebrow,
.has-midnight-background-color .is-style-hth-eyebrow,
.has-forest-background-color .is-style-hth-eyebrow { color: var(--wp--preset--color--champagne); }

.is-style-hth-lead { font-size: clamp(1.15rem, 1.7vw, 1.4rem); line-height: 1.6; font-weight: 400; max-width: 40ch; }
.wp-block-post-excerpt.is-style-hth-lead .wp-block-post-excerpt__excerpt { max-width: 46ch; }

.is-style-hth-display { font-weight: 300; }

/* Buttons */
.wp-block-button.hth-button-champagne .wp-block-button__link { background: var(--wp--preset--color--champagne); border-color: var(--wp--preset--color--champagne); color: var(--wp--preset--color--midnight); }
.wp-block-button.hth-button-champagne .wp-block-button__link:hover { background: var(--wp--preset--color--ivory); border-color: var(--wp--preset--color--ivory); color: var(--wp--preset--color--midnight); }
.wp-block-button.is-style-hth-light .wp-block-button__link { background: transparent; border-color: color-mix(in srgb, currentColor 55%, transparent); color: inherit; }
.wp-block-button.is-style-hth-light .wp-block-button__link:hover { background: var(--wp--preset--color--ivory); border-color: var(--wp--preset--color--ivory); color: var(--wp--preset--color--midnight); }
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: inherit; border-color: currentColor; }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--wp--preset--color--midnight); color: var(--wp--preset--color--ivory); }
.wp-block-button.is-style-hth-text .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: .9em;
	padding: .4em 0;
	border: 0;
	background: none;
	color: inherit;
}
.wp-block-button.is-style-hth-text .wp-block-button__link::after {
	content: "";
	width: 28px;
	height: 12px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 12'%3E%3Cpath d='M0 6h26M21 1l5 5-5 5' fill='none' stroke='black' stroke-width='1.2'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 12'%3E%3Cpath d='M0 6h26M21 1l5 5-5 5' fill='none' stroke='black' stroke-width='1.2'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform .4s var(--hth-ease);
}
.wp-block-button.is-style-hth-text .wp-block-button__link:hover { background: none; color: inherit; }
.wp-block-button.is-style-hth-text .wp-block-button__link:hover::after { transform: translateX(6px); }
.wp-block-button__link { transition: background-color .35s var(--hth-ease), color .35s var(--hth-ease), border-color .35s var(--hth-ease); }

/* Lists */
.is-style-hth-amenities { columns: 2 220px; column-gap: 2.5rem; padding-left: 0; list-style: none; }
.is-style-hth-amenities li,
.is-style-hth-ruled li { break-inside: avoid; position: relative; padding: .8rem 0 .8rem 1.75rem; border-bottom: 1px solid var(--hth-line); }
.is-style-hth-amenities li::before,
ul.is-style-hth-ruled li::before { content: ""; position: absolute; left: 0; top: 1.4em; width: .9rem; height: 1px; background: var(--wp--preset--color--champagne); }
.is-style-hth-ruled { padding-left: 0; list-style: none; counter-reset: hth; }
ol.is-style-hth-ruled li { counter-increment: hth; padding-left: 3rem; }
ol.is-style-hth-ruled li::before { content: counter(hth, decimal-leading-zero); position: absolute; left: 0; top: .95rem; font-family: var(--wp--preset--font-family--display); font-size: 1.05rem; color: var(--wp--preset--color--champagne); }
.is-style-hth-ruled li strong { display: block; margin-bottom: .2rem; font-family: var(--wp--preset--font-family--display); font-size: 1.4rem; font-weight: 500; }

/* FAQ */
.wp-block-details.is-style-hth-faq { padding: 0; border-bottom: 1px solid var(--hth-line); }
.wp-block-details.is-style-hth-faq:first-child { border-top: 1px solid var(--hth-line); }
.wp-block-details.is-style-hth-faq summary {
	position: relative;
	padding: 1.5rem 3rem 1.5rem 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.3rem, 2vw, 1.6rem);
	line-height: 1.3;
	list-style: none;
	cursor: pointer;
}
.wp-block-details.is-style-hth-faq summary::-webkit-details-marker { display: none; }
.wp-block-details.is-style-hth-faq summary::after,
.wp-block-details.is-style-hth-faq summary::before { content: ""; position: absolute; right: .5rem; top: 50%; width: 16px; height: 1px; background: currentColor; transition: transform .35s var(--hth-ease); }
.wp-block-details.is-style-hth-faq summary::before { transform: rotate(90deg); }
.wp-block-details.is-style-hth-faq[open] summary::before { transform: rotate(0deg); }
.wp-block-details.is-style-hth-faq > :not(summary) { max-width: 62ch; padding-bottom: 1.5rem; margin-top: 0; }

/* Separator: mountain ridge */
.wp-block-separator.is-style-hth-ridge {
	height: 22px;
	border: 0 !important;
	background: currentColor;
	opacity: .35;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 22' preserveAspectRatio='none'%3E%3Cpath d='M0 21 L60 14 L95 17 L140 6 L180 13 L230 3 L270 12 L320 8 L360 15 L410 5 L455 13 L500 9 L545 16 L600 12' fill='none' stroke='black' stroke-width='1'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 22' preserveAspectRatio='none'%3E%3Cpath d='M0 21 L60 14 L95 17 L140 6 L180 13 L230 3 L270 12 L320 8 L360 15 L410 5 L455 13 L500 9 L545 16 L600 12' fill='none' stroke='black' stroke-width='1'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
}

.wp-block-image.is-style-hth-arch img { border-radius: 999px 999px 0 0; }

.hth-placeholder-note { padding: 1rem 1.25rem; border: 1px dashed var(--wp--preset--color--champagne); font-size: .875rem; }

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

.hth-site-header {
	position: sticky;
	top: 0;
	z-index: 60;
	background: color-mix(in srgb, var(--wp--preset--color--ivory) 92%, transparent);
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
	border-bottom: 1px solid transparent;
	transition: background-color .45s var(--hth-ease), color .45s var(--hth-ease), border-color .45s var(--hth-ease), transform .45s var(--hth-ease);
}
.hth-site-header.is-scrolled { border-bottom-color: var(--hth-line); }
.admin-bar .hth-site-header { top: var(--wp-admin--admin-bar--height, 32px); }

.hth-site-header--overlay {
	position: fixed;
	left: 0;
	right: 0;
	color: var(--wp--preset--color--ivory);
	background: linear-gradient(180deg, rgba(10, 16, 26, .55), rgba(10, 16, 26, 0));
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
}
.hth-site-header--overlay.is-scrolled {
	background: color-mix(in srgb, var(--wp--preset--color--midnight) 88%, transparent);
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
	border-bottom-color: color-mix(in srgb, var(--wp--preset--color--ivory) 10%, transparent);
}
.hth-site-header.is-hidden { transform: translateY(-100%); }

.hth-header__inner { gap: 1.5rem; min-height: 56px; }
.hth-header__brand { gap: .75rem; min-width: 0; }
.hth-header__brand .wp-block-site-logo img { max-height: 56px; width: auto; }
.hth-header__brand .wp-block-site-logo a { position: relative; display: block; }
.hth-header__brand:has(.wp-block-site-logo img) .wp-block-site-title { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.hth-logo-light { display: none; }
.hth-site-header--overlay:not(.is-scrolled) .wp-block-site-logo:has(.hth-logo-light) img:not(.hth-logo-light) { visibility: hidden; }
.hth-site-header--overlay:not(.is-scrolled) .hth-logo-light { display: block; position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; object-position: left center; }
.wp-block-site-title a { color: inherit; }
.hth-header__nav { gap: clamp(1rem, 2.5vw, 2.5rem); }
.hth-nav .wp-block-navigation-item__content { padding: .5rem 0; text-decoration: none; position: relative; }
.hth-nav .wp-block-navigation-item__content::after { content: ""; position: absolute; left: 0; right: 0; bottom: .2rem; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform .45s var(--hth-ease); }
.hth-nav .wp-block-navigation-item__content:hover::after,
.hth-nav .current-menu-item > .wp-block-navigation-item__content::after { transform: scaleX(1); transform-origin: left; }
.hth-header__cta .wp-block-button__link { padding: .9em 1.5em; }
.hth-site-header--overlay .hth-header__cta .wp-block-button__link { background: transparent; border-color: color-mix(in srgb, var(--wp--preset--color--ivory) 60%, transparent); color: inherit; }
.hth-site-header--overlay .hth-header__cta .wp-block-button__link:hover { background: var(--wp--preset--color--champagne); border-color: var(--wp--preset--color--champagne); color: var(--wp--preset--color--midnight); }

/* Mobile navigation overlay */
.hth-nav .wp-block-navigation__responsive-container.is-menu-open {
	padding: calc(var(--hth-header-h) + 1rem) var(--hth-gutter) 2rem;
	background: var(--wp--preset--color--midnight) !important;
	color: var(--wp--preset--color--ivory) !important;
}
.hth-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 1.1rem; }
.hth-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(2rem, 8vw, 3rem);
	font-weight: 300;
	letter-spacing: 0;
	text-transform: none;
}
.hth-nav .wp-block-navigation__responsive-container-open,
.hth-nav .wp-block-navigation__responsive-container-close { min-width: 44px; min-height: 44px; justify-content: center; align-items: center; }

.hth-header__brand .wp-block-site-title { white-space: nowrap; }

/* Seven menu items need ~1100px; below that use the overlay (burger) menu
   instead of core's 600px breakpoint so the header never wraps. */
@media (min-width: 600px) and (max-width: 1099px) {
	.hth-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.hth-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}

@media (max-width: 599px) {
	.hth-header__cta.wp-block-buttons { display: none; }
}

/* ------------------------------------------------------------------ */
/* Cinematic hero                                                      */
/* ------------------------------------------------------------------ */

.wp-block-cover.is-style-hth-cinematic { overflow: hidden; isolation: isolate; align-items: flex-end; }
.wp-block-cover.is-style-hth-cinematic .wp-block-cover__image-background { transform: scale(1.04); transform-origin: 60% 60%; }
.wp-block-cover.is-style-hth-living { overflow: hidden; isolation: isolate; }
.wp-block-cover.is-style-hth-living .hth-scene,
.wp-block-cover.is-style-hth-cinematic .hth-scene {
	position: absolute;
	inset: 0;
	z-index: 0;
	width: 100%;
	height: 100%;
	opacity: 0;
	transition: opacity 1.6s var(--hth-ease);
	pointer-events: none;
}
.wp-block-cover.is-style-hth-cinematic.is-scene-ready .hth-scene,
.wp-block-cover.is-style-hth-living.is-scene-ready .hth-scene { opacity: 1; }
.wp-block-cover.is-style-hth-cinematic .wp-block-cover__background { z-index: 1; background: linear-gradient(90deg, rgba(10, 16, 26, .55) 0%, rgba(10, 16, 26, .3) 38%, rgba(10, 16, 26, 0) 62%), linear-gradient(180deg, rgba(10, 16, 26, .45) 0%, rgba(10, 16, 26, .05) 35%, rgba(10, 16, 26, .35) 70%, rgba(10, 16, 26, .8) 100%) !important; opacity: 1 !important; }
@media (max-width: 781px) {
	.wp-block-cover.is-style-hth-cinematic .wp-block-cover__background { background: linear-gradient(180deg, rgba(10, 16, 26, .4) 0%, rgba(10, 16, 26, .25) 35%, rgba(10, 16, 26, .6) 65%, rgba(10, 16, 26, .85) 100%) !important; }
}
.wp-block-cover.is-style-hth-cinematic .wp-block-cover__inner-container { z-index: 2; display: flex; flex-direction: column; gap: clamp(1.5rem, 4vh, 3.5rem); }
.hth-hero__content { max-width: 1360px; }
.hth-hero__title { max-width: 15ch; margin-top: 0; font-size: clamp(2.6rem, min(6.2vw, 7.6vh), 6.5rem) !important; text-wrap: balance; text-shadow: 0 2px 40px rgba(0, 0, 0, .25); }
.hth-hero__title em { color: var(--wp--preset--color--champagne); }
.hth-hero__eyebrow,
.hth-hero__lead { text-shadow: 0 1px 2px rgba(10, 16, 26, .55), 0 0 24px rgba(10, 16, 26, .45); }
.hth-hero__lead { max-width: 46ch; margin-top: 1.5rem; opacity: .92; }
.hth-hero__actions { margin-top: clamp(1.25rem, 3vh, 2.25rem); gap: .9rem; }
.hth-hero__booking .hth-booking { box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .6); }

/* Headline reveal (CSS only: text is in the HTML and visible without JS). */
@media (prefers-reduced-motion: no-preference) {
	.hth-js .is-style-hth-cinematic .hth-hero__eyebrow,
	.hth-js .is-style-hth-cinematic .hth-hero__title,
	.hth-js .is-style-hth-cinematic .hth-hero__lead,
	.hth-js .is-style-hth-cinematic .hth-hero__actions,
	.hth-js .is-style-hth-cinematic .hth-hero__booking {
		animation: hth-rise 1.1s var(--hth-ease-out) both;
	}
	.hth-js .is-style-hth-cinematic .hth-hero__title { animation-delay: .08s; }
	.hth-js .is-style-hth-cinematic .hth-hero__lead { animation-delay: .22s; }
	.hth-js .is-style-hth-cinematic .hth-hero__actions { animation-delay: .34s; }
	.hth-js .is-style-hth-cinematic .hth-hero__booking { animation-delay: .5s; }
	.hth-js .is-style-hth-cinematic .wp-block-cover__image-background { animation: hth-settle 2.4s var(--hth-ease-out) both; }
}
@keyframes hth-rise {
	from { opacity: .01; transform: translate3d(0, 28px, 0); }
	to { opacity: 1; transform: none; }
}
@keyframes hth-settle {
	from { transform: scale(1.12); }
	to { transform: scale(1.04); }
}

.hth-scroll-cue {
	position: absolute;
	z-index: 3;
	right: var(--hth-gutter);
	bottom: 2rem;
	display: flex;
	align-items: center;
	gap: .75rem;
	color: var(--wp--preset--color--ivory);
	font: 600 .6875rem/1 var(--wp--preset--font-family--body);
	letter-spacing: .3em;
	text-transform: uppercase;
	writing-mode: vertical-rl;
	padding: .75rem .65rem;
	text-decoration: none;
	opacity: .75;
}
.hth-scroll-cue::after { content: ""; width: 1px; height: 56px; background: linear-gradient(currentColor, transparent); animation: hth-cue 2.4s var(--hth-ease) infinite; }
@keyframes hth-cue { 0% { transform: scaleY(0); transform-origin: top; } 50% { transform: scaleY(1); transform-origin: top; } 51% { transform-origin: bottom; } 100% { transform: scaleY(0); transform-origin: bottom; } }

@media (max-width: 781px) {
	.wp-block-cover.is-style-hth-cinematic { min-height: auto !important; padding-top: calc(var(--hth-header-h) + 18vh) !important; }
	.hth-hero__title { font-size: clamp(2.6rem, 11vw, 3.6rem) !important; }
	.hth-scroll-cue { display: none; }
}
@media (max-height: 760px) and (min-width: 782px) {
	.hth-hero__title { font-size: clamp(3rem, 8vh, 5rem) !important; }
}

/* Page heroes and heads */
.hth-page-hero { color: var(--wp--preset--color--ivory); }
.hth-page-hero .wp-block-post-title { max-width: 16ch; margin-top: 1rem; }
.hth-page-hero .hth-breadcrumbs { color: var(--wp--preset--color--ivory); }
.hth-page-hero:not(:has(img)) { background: linear-gradient(160deg, var(--wp--preset--color--midnight), var(--wp--preset--color--forest)); }
.hth-page-head .wp-block-post-title,
.hth-page-head h1 { max-width: 18ch; margin-top: .75rem; }
.hth-page-head .is-style-hth-lead { margin-top: 1.5rem; }
.hth-page-head > .hth-breadcrumbs { margin-bottom: 1.5rem; }

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

.hth-main { margin-top: 0; }
.hth-main > * { margin-block: 0; }
.hth-section > :first-child { margin-top: 0; }
.has-mist-background-color + .has-mist-background-color { padding-top: 0 !important; }

.hth-split-head { margin-bottom: clamp(2rem, 4vw, 3.5rem); gap: 1.5rem; }
.hth-split-head h2 { margin: 0; }

/* Intro composition */
.hth-intro__text h2 { margin-top: 0; }
.hth-intro__images {
	display: grid !important;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	align-items: end;
	margin-top: clamp(3rem, 8vw, 7rem) !important;
}
.hth-intro__img-a { grid-column: 1 / span 5; grid-row: 1; margin: 0; }
.hth-intro__img-b { grid-column: 5 / span 8; grid-row: 1; margin: 0 0 clamp(2rem, 8vw, 7rem); position: relative; z-index: 1; box-shadow: var(--wp--preset--shadow--soft); }
.hth-intro__images img { width: 100%; height: auto; }
@media (max-width: 781px) {
	.hth-intro__img-a { grid-column: 1 / span 9; }
	.hth-intro__img-b { grid-column: 4 / span 9; grid-row: 2; margin-top: -25%; }
}

/* Gallery block with lightbox style */
.wp-block-gallery.is-style-hth-lightbox { --wp--style--unstable-gallery-gap: clamp(.5rem, 1.2vw, 1rem); gap: clamp(.5rem, 1.2vw, 1rem); }
.wp-block-gallery.is-style-hth-lightbox .wp-block-image { overflow: hidden; }
.wp-block-gallery.is-style-hth-lightbox .wp-block-image a { cursor: zoom-in; }
.wp-block-gallery.is-style-hth-lightbox .wp-block-image img { aspect-ratio: 4 / 3; transition: transform 1.1s var(--hth-ease); }
.wp-block-gallery.is-style-hth-lightbox .wp-block-image:hover img { transform: scale(1.04); }
@media (min-width: 782px) {
	.wp-block-gallery.is-style-hth-lightbox.columns-3 { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.wp-block-gallery.is-style-hth-lightbox.columns-3 .wp-block-image { width: auto !important; margin: 0 !important; }
	.wp-block-gallery.is-style-hth-lightbox.columns-3 .wp-block-image:nth-child(6n + 1) { grid-column: span 2; grid-row: span 2; }
	.wp-block-gallery.is-style-hth-lightbox.columns-3 .wp-block-image:nth-child(6n + 1) img { aspect-ratio: auto; height: 100%; }
}

/* Destination guide */
.hth-guide__journal-title { margin-top: clamp(3rem, 7vw, 6rem) !important; padding-top: 2rem; border-top: 1px solid var(--hth-line); }
.wp-block-latest-posts.hth-journal-grid { gap: clamp(1.25rem, 2.5vw, 2.5rem); }
.wp-block-latest-posts.hth-journal-grid.is-grid li { margin: 0 !important; width: auto !important; }
@media (min-width: 600px) {
	.wp-block-latest-posts.hth-journal-grid.is-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.hth-journal-grid .wp-block-latest-posts__featured-image { margin-bottom: 1rem; overflow: hidden; }
.hth-journal-grid .wp-block-latest-posts__featured-image img { aspect-ratio: 16 / 10; object-fit: cover; width: 100%; }
.hth-journal-grid .wp-block-latest-posts__post-title { display: block; font-family: var(--wp--preset--font-family--display); font-size: 1.5rem; line-height: 1.2; text-decoration: none; color: inherit; }
.hth-journal-grid .wp-block-latest-posts__post-date { order: -1; margin-bottom: .5rem; font-size: .6875rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--hth-label); }

/* Location band */
.hth-location .hth-contact { margin-top: 2rem; }

/* Final CTA */
.hth-final-cta .wp-block-cover__inner-container { text-align: center; }
.hth-final-cta h2 em { color: var(--wp--preset--color--champagne); }

/* Journal / query grids */
.hth-journal__grid { gap: clamp(1.5rem, 3vw, 3rem) !important; }
.hth-journal__grid > li { display: flex; flex-direction: column; gap: .75rem; }
.hth-journal__grid .wp-block-post-featured-image { margin: 0 0 .5rem; overflow: hidden; }
.hth-journal__grid .wp-block-post-featured-image img { transition: transform 1s var(--hth-ease); }
.hth-journal__grid li:hover .wp-block-post-featured-image img { transform: scale(1.04); }
.hth-journal__grid .wp-block-post-date { color: var(--hth-label); }
.hth-journal__grid .wp-block-post-title { margin: 0; }
.hth-journal__grid .wp-block-post-title a { text-decoration: none; }
.hth-journal__grid .wp-block-post-excerpt { margin: 0; }
.wp-block-query-pagination { margin-top: clamp(2.5rem, 5vw, 4rem); padding-top: 1.5rem; border-top: 1px solid var(--hth-line); font-size: .875rem; }
@media (max-width: 781px) {
	.hth-journal__grid { grid-template-columns: 1fr !important; }
}

/* Article */
.hth-article-meta { gap: 1.25rem; margin-bottom: 1rem; }
.hth-article-meta a,
.hth-article-foot .wp-block-post-terms a { display: inline-block; padding-block: .45rem; text-decoration: none; }
.hth-article-title { max-width: 20ch; }
.hth-article-foot { margin-top: clamp(2.5rem, 5vw, 4rem); display: flex; flex-direction: column; gap: 1rem; }
.hth-article-foot .wp-block-post-terms { font-size: .8125rem; }
.hth-article .hth-related { margin-top: clamp(3rem, 7vw, 6rem); padding-top: 2.5rem; border-top: 1px solid var(--hth-line); }
.wp-block-post-content > .wp-block-image,
.wp-block-post-content > figure { margin-block: clamp(2rem, 4vw, 3rem); }
.wp-block-post-content > p:first-child::first-letter { font-family: var(--wp--preset--font-family--display); }

/* Detail layouts (room, offer, experience) */
.hth-detail-layout { row-gap: 3rem; }
.hth-detail-layout .wp-block-post-content > * + * { margin-top: 1.25rem; }
.hth-detail-layout .hth-amenities,
.hth-detail-layout .hth-policies { margin-top: clamp(2.5rem, 5vw, 4rem); }
@media (min-width: 782px) {
	.hth-room-aside { position: sticky; top: calc(var(--hth-header-h) + 1.5rem); align-self: flex-start; }
}
.hth-room-aside > * + * { margin-top: 2rem; }

/* Search */
.hth-search .wp-block-search__inside-wrapper { border: 0; border-bottom: 1px solid currentColor; padding: 0; }
.hth-search .wp-block-search__input { border: 0; background: transparent; padding: .9rem 0; font-size: 1.1rem; color: inherit; }
.hth-search .wp-block-search__button { margin: 0; border: 0; background: var(--wp--preset--color--midnight); color: var(--wp--preset--color--ivory); font: 700 .75rem var(--wp--preset--font-family--body); letter-spacing: .2em; text-transform: uppercase; padding: 0 1.5rem; }

/* 404 */
.hth-404 { min-height: 70vh; display: flex; flex-direction: column; justify-content: center; }
.hth-404 .hth-search { max-width: 520px; margin-block: 2rem; }

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

.hth-footer { font-size: .9375rem; }
.hth-footer a { color: inherit; text-decoration-color: color-mix(in srgb, currentColor 35%, transparent); text-underline-offset: .3em; }
.hth-footer a:hover { color: var(--wp--preset--color--champagne); }
.hth-footer__title { margin: 0 0 1.25rem; font-family: var(--wp--preset--font-family--body) !important; font-size: .6875rem !important; font-weight: 600 !important; letter-spacing: .24em !important; text-transform: uppercase; color: var(--wp--preset--color--champagne); }
.hth-footer__tagline { max-width: 30ch; margin-top: 1.25rem; font-family: var(--wp--preset--font-family--display); font-size: 1.4rem; line-height: 1.35; }
.hth-footer__links,
.hth-footer__policies { margin: 0; padding: 0; list-style: none; }
.hth-footer__links li { padding: 0; }
.hth-footer__links a,
.hth-footer__policies a { display: inline-flex; align-items: center; min-height: 32px; }
.hth-footer__links a { text-decoration: none; }
.hth-footer__policies { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; font-size: .8125rem; }
.hth-footer .wp-block-separator { margin-block: clamp(2.5rem, 5vw, 4rem) 1.5rem; }
.hth-footer__legal { gap: 1rem 2rem; }
.hth-footer .hth-contact dt { color: color-mix(in srgb, var(--wp--preset--color--ivory) 55%, transparent); }
.hth-footer .hth-social { margin-top: 1.5rem; }
.hth-site-footer { margin-top: 0; }

/* Leave room for the mobile booking bar so it never covers footer content. */
@media (max-width: 781px) {
	body:has(.hth-sticky-book) .hth-footer { padding-bottom: calc(var(--wp--preset--spacing--40) + 80px) !important; }
	.wp-block-columns.hth-footer__cols { gap: 2.5rem; }
}

/* ------------------------------------------------------------------ */
/* Scroll reveals (only once site.js has initialised them; content is visible without JS)         */
/* ------------------------------------------------------------------ */

@media (prefers-reduced-motion: no-preference) {
	.hth-reveal-ready [data-hth-reveal]:not(.is-revealed),
	.hth-reveal-ready .is-style-hth-reveal:not(.is-revealed),
	.hth-reveal-ready .hth-section-head:not(.is-revealed),
	.hth-reveal-ready .hth-intro__images > :not(.is-revealed) {
		opacity: .01;
		transform: translate3d(0, 32px, 0);
	}
	.hth-reveal-ready [data-hth-reveal],
	.hth-reveal-ready .is-style-hth-reveal,
	.hth-reveal-ready .hth-section-head,
	.hth-reveal-ready .hth-intro__images > * {
		transition: opacity 1.1s var(--hth-ease-out), transform 1.1s var(--hth-ease-out);
		transition-delay: var(--hth-delay, 0s);
	}
}

/* Editor parity tweaks */
.editor-styles-wrapper .hth-site-header--overlay { position: relative; background: var(--wp--preset--color--midnight); }
.editor-styles-wrapper .is-style-hth-cinematic .hth-hero__eyebrow,
.editor-styles-wrapper .is-style-hth-cinematic .hth-hero__title,
.editor-styles-wrapper .is-style-hth-cinematic .hth-hero__lead { animation: none !important; opacity: 1 !important; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}

/* WhatsApp button style */
.wp-block-button.is-style-hth-whatsapp .wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; gap: .6em; background: #0e7a3c; border-color: #0e7a3c; color: #fff; }
.wp-block-button.is-style-hth-whatsapp .wp-block-button__link:hover { background: #0b6431; border-color: #0b6431; color: #fff; }
.wp-block-button.is-style-hth-whatsapp .wp-block-button__link svg { width: 1.35em; height: 1.35em; flex: none; margin: -.2em 0; }

/* Book your stay band */
.hth-book-band h2 { margin: 0 0 .35rem; }
.hth-book-band p { margin: 0; }
.hth-book-band .wp-block-group.alignwide { gap: 1.5rem 3rem; }
.wp-block-button.hth-button-midnight .wp-block-button__link { background: var(--wp--preset--color--midnight); border-color: var(--wp--preset--color--midnight); color: var(--wp--preset--color--ivory); }
.wp-block-button.hth-button-midnight .wp-block-button__link:hover { background: transparent; color: var(--wp--preset--color--midnight); }

/* Full-width sections sit flush, so no strip of page background shows between coloured sections. */
.wp-block-post-content > .alignfull { margin-block-start: 0; }
