/*
Theme Name: Kadence Child — Haunted Tully Lodge
Theme URI: https://www.kadencewp.com/
Description: Child theme of Kadence for the Haunted Tully Lodge site. Holds custom code so parent theme updates are safe.
Author: Haunted Tully Lodge
Template: kadence
Version: 2.6.2
Text Domain: kadence-child
*/

/* --- Haunted Tully Lodge custom styles --- */

/* Thin gold divider utility (use a Spacer/Divider block with class "htl-gold-rule") */
.htl-gold-rule hr,
hr.htl-gold-rule {
	border: 0;
	border-top: 1px solid var(--global-palette1, #C6A15B);
	opacity: 0.6;
	max-width: 120px;
	margin-left: auto;
	margin-right: auto;
}

/* Small uppercase gold labels above headings */
.htl-label {
	text-transform: uppercase;
	letter-spacing: 0.28em;
	font-family: var(--global-body-font-family, 'Inter', sans-serif);
	font-size: 0.78rem;
	font-weight: 600;
	color: var(--global-palette1, #C6A15B);
}

/* ==========================================================================
   Premium polish layer
   ========================================================================== */

:root {
	--htl-gold: #C6A15B;
	--htl-gold-dim: rgba(198, 161, 91, 0.35);
	--htl-oxblood: #7B2D26;
	--htl-ease: cubic-bezier(0.22, 0.7, 0.3, 1);
}

/* ---- Typography refinement ---- */
h1, h2, h3 {
	letter-spacing: 0.015em;
}
h1 em, h2 em {
	font-style: italic;
	color: var(--htl-gold);
}

/* ---- Header: hairline gold under the dark band, smooth sticky ---- */
#masthead .site-main-header-wrap {
	border-bottom: 1px solid rgba(198, 161, 91, 0.18);
}
#masthead .site-main-header-inner-wrap {
	transition: min-height 0.25s var(--htl-ease);
}
.site-header .header-navigation .header-menu-container > ul > li > a {
	text-transform: uppercase;
	letter-spacing: 0.05em;
	transition: color 0.2s var(--htl-ease);
}
.site-header .header-button {
	text-transform: uppercase;
	letter-spacing: 0.07em;
	font-size: 0.72rem;
	white-space: nowrap;
	transition: background 0.25s var(--htl-ease), transform 0.2s var(--htl-ease), box-shadow 0.25s var(--htl-ease);
}
.site-header .header-button:hover {
	transform: translateY(-1px);
	box-shadow: 0 6px 22px -8px rgba(198, 161, 91, 0.55);
}
/* Dropdown: gold hairline + soft shadow */
.header-navigation ul ul.sub-menu,
.header-navigation ul ul.submenu {
	border: 1px solid rgba(198, 161, 91, 0.22);
	border-top: 2px solid var(--htl-gold);
	box-shadow: 0 22px 44px -18px rgba(0, 0, 0, 0.85);
}

/* ---- Nav links: gold underline grows from the left ---- */
.site-header .header-navigation .header-menu-container > ul > li > a {
	position: relative;
}
.site-header .header-navigation .header-menu-container > ul > li > a::after {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0.35em;
	margin: auto;
	width: 0;
	height: 1px;
	background: var(--htl-gold);
	transition: width 0.3s var(--htl-ease);
}
.site-header .header-navigation .header-menu-container > ul > li > a:hover::after,
.site-header .header-navigation .header-menu-container > ul > li.current-menu-item > a::after {
	width: calc(100% - 1.4em);
}

/* ---- Hero typography: cinematic, legible over photography ---- */
.wp-block-cover.alignfull h1,
.wp-block-cover.alignfull h2 {
	text-shadow: 0 2px 30px rgba(0, 0, 0, 0.75), 0 1px 4px rgba(0, 0, 0, 0.5);
	line-height: 1.12;
}
.wp-block-cover.alignfull .htl-label {
	text-shadow: 0 1px 12px rgba(0, 0, 0, 0.8);
}
.wp-block-cover.alignfull p:not(.htl-label) {
	text-shadow: 0 1px 16px rgba(0, 0, 0, 0.7);
	max-width: 62ch;
	margin-left: auto;
	margin-right: auto;
}

/* ---- Atmosphere over photo bands: vignette + fine grain ---- */
.wp-block-cover.alignfull::after {
	content: '';
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 1;
	background-image:
		linear-gradient(90deg, rgba(8, 7, 10, 0.5) 0%, rgba(8, 7, 10, 0) 24%, rgba(8, 7, 10, 0) 76%, rgba(8, 7, 10, 0.5) 100%),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.13'/%3E%3C/svg%3E");
	background-size: cover, 170px 170px;
}
.wp-block-cover.alignfull .wp-block-cover__inner-container {
	position: relative;
	z-index: 2;
}

/* ---- Smooth in-page scrolling (View Services, etc.) ---- */
html {
	scroll-behavior: smooth;
}

/* ---- Buttons: engraved, deliberate ---- */
.wp-block-button__link,
.fluentform .ff-btn-submit {
	text-transform: uppercase;
	letter-spacing: 0.14em;
	font-size: 0.85rem;
	font-weight: 600;
	padding: 0.9em 2.2em;
	border-radius: 2px;
	transition: background 0.25s var(--htl-ease), color 0.25s var(--htl-ease),
		transform 0.2s var(--htl-ease), box-shadow 0.25s var(--htl-ease);
}
.wp-block-button__link:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 28px -10px rgba(198, 161, 91, 0.5);
}

/* ---- Cards (gold-ruled surface groups): lift on hover ---- */
.wp-block-column > .wp-block-group.has-background {
	height: 100%;
	transition: transform 0.3s var(--htl-ease), box-shadow 0.3s var(--htl-ease), border-color 0.3s var(--htl-ease);
	box-shadow: 0 14px 34px -22px rgba(0, 0, 0, 0.8);
}
.wp-block-column > .wp-block-group.has-background:hover {
	transform: translateY(-4px);
	box-shadow: 0 24px 48px -20px rgba(0, 0, 0, 0.9), 0 0 0 1px rgba(198, 161, 91, 0.25);
}
/* Cards in a row: pin the call-to-action to the bottom so buttons line up */
.wp-block-column > .wp-block-group.has-background > .wp-block-group__inner-container {
	display: flex;
	flex-direction: column;
	height: 100%;
}
.wp-block-column > .wp-block-group.has-background > .wp-block-group__inner-container > .wp-block-buttons:last-child {
	margin-top: auto;
	padding-top: 1rem;
}

/* ---- Cover heroes: cinematic gradient + slow drift ---- */
.wp-block-cover.alignfull {
	overflow: hidden;
}
.wp-block-cover.alignfull .wp-block-cover__background {
	background: linear-gradient(180deg,
		rgba(15, 14, 18, 0.97) 0%,
		rgba(15, 14, 18, 0.55) 13%,
		rgba(15, 14, 18, 0.42) 34%,
		rgba(15, 14, 18, 0.68) 64%,
		rgba(15, 14, 18, 1) 100%) !important;
	opacity: 1 !important;
}
.wp-block-cover.alignfull .wp-block-cover__image-background {
	animation: htl-drift 26s var(--htl-ease) infinite alternate;
	will-change: transform;
}
@keyframes htl-drift {
	from { transform: scale(1); }
	to   { transform: scale(1.06); }
}

/* ---- Images: matted plates ---- */
.wp-block-image img {
	border-radius: 3px;
	transition: transform 0.35s var(--htl-ease), box-shadow 0.35s var(--htl-ease);
}
.entry-content .wp-block-image:not(.htl-no-mat) img {
	box-shadow: 0 18px 40px -20px rgba(0, 0, 0, 0.85);
}
.wp-block-image img:hover {
	transform: translateY(-3px);
}
.wp-block-image figcaption {
	font-style: italic;
	letter-spacing: 0.04em;
}

/* ---- Separator flourish ---- */
hr.htl-gold-rule,
.htl-gold-rule hr {
	position: relative;
	overflow: visible;
}
hr.htl-gold-rule::after {
	content: '✦';
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	color: var(--htl-gold);
	font-size: 11px;
	background: inherit;
	padding: 0 10px;
	line-height: 1;
}

/* ---- Fluent Forms: dark, engraved fields ---- */
.fluentform .ff-el-form-control {
	background: #14131B;
	border: 1px solid rgba(198, 161, 91, 0.25);
	border-radius: 3px;
	color: #ECE7DF;
	padding: 0.8em 1em;
	transition: border-color 0.2s var(--htl-ease), box-shadow 0.2s var(--htl-ease);
}
.fluentform .ff-el-form-control::placeholder {
	color: #6E695F;
	font-style: italic;
}
.fluentform .ff-el-form-control:focus {
	background: #14131B;
	border-color: var(--htl-gold);
	box-shadow: 0 0 0 3px rgba(198, 161, 91, 0.18);
	outline: none;
	color: #ECE7DF;
}
.fluentform .ff-el-input--label label {
	color: #A9A39A;
	font-family: var(--global-body-font-family, 'Inter', sans-serif);
	font-size: 0.78rem;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	font-weight: 600;
}
.fluentform .ff-el-is-required.asterisk-right label:after {
	color: var(--htl-gold);
}
.fluentform .ff-btn-submit {
	background: var(--htl-gold) !important;
	color: #0F0E12 !important;
	border: none !important;
}
.fluentform .ff-btn-submit:hover {
	background: var(--htl-oxblood) !important;
	color: #ECE7DF !important;
	transform: translateY(-2px);
}
.fluentform .ff-message-success {
	background: #1A1922;
	border: 1px solid rgba(198, 161, 91, 0.35);
	color: #ECE7DF;
	border-radius: 3px;
}

/* ---- Evidence gallery ---- */
.htl-evidence-card {
	height: 100%;
	display: flex;
	flex-direction: column;
	transition: transform 0.3s var(--htl-ease), box-shadow 0.3s var(--htl-ease);
	box-shadow: 0 16px 38px -24px rgba(0, 0, 0, 0.85);
}
.htl-evidence-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 26px 52px -22px rgba(0, 0, 0, 0.9), 0 0 0 1px rgba(198, 161, 91, 0.25);
}
.htl-evidence-card > .wp-block-group__inner-container {
	display: flex;
	flex-direction: column;
	height: 100%;
}
/* The video sits in its own recessed frame at full card width */
.htl-evidence-card .htl-media {
	margin: 0 0 1.5rem;
	border-radius: 3px;
	overflow: hidden;
	background: #0B0A0E;
	box-shadow: inset 0 0 0 1px rgba(198, 161, 91, 0.18);
}
.htl-evidence-card .htl-media iframe {
	display: block;
}
.htl-evidence-card .htl-media-audio {
	padding: 1.25rem 1rem;
	background: #14131B;
}
/* Description sits at the bottom so cards in a row align */
.htl-evidence-card .htl-evidence-meta + p {
	margin-bottom: 0;
}
.htl-evidence-card h3 {
	margin-bottom: 0.35rem;
	line-height: 1.25;
}
.htl-evidence-card .htl-evidence-meta {
	font-family: var(--global-body-font-family, 'Inter', sans-serif);
	font-size: 0.72rem;
	text-transform: uppercase;
	letter-spacing: 0.2em;
	color: var(--htl-gold);
	margin-bottom: 0.9rem;
}
.htl-evidence-card .htl-evidence-meta + p {
	margin-top: 0;
	font-size: 0.98rem;
	line-height: 1.65;
}
/* Audio players, when EVPs are hosted as files rather than video */
.htl-evidence-card audio {
	width: 100%;
	margin: 0.5rem 0 0.25rem;
	filter: invert(0.92) hue-rotate(180deg);
	border-radius: 3px;
}

/* ---- The Acuity mat (Booking) ---- */
.htl-acuity-mat {
	background: #1A1922;
	border: 1px solid rgba(198, 161, 91, 0.3);
	border-top: 2px solid var(--htl-gold);
	border-radius: 4px;
	padding: 14px;
	box-shadow: 0 26px 60px -28px rgba(0, 0, 0, 0.9);
}
.htl-acuity-mat iframe {
	border-radius: 2px;
	background: #fff;
}

/* ---- Footer ---- */
#colophon {
	border-top: 1px solid rgba(198, 161, 91, 0.22);
}
#colophon .site-footer-row-container-inner {
	padding-top: 0;
	padding-bottom: 0;
}

.htl-footer {
	max-width: 1180px;
	margin: 0 auto;
	padding: 3rem 0 0.5rem;
	text-align: left;
}
/* Kadence underlines footer links by default; we use our own gold hover rule */
#colophon .footer-html a,
#colophon .footer-html a:hover,
.htl-footer a,
.htl-footer a:hover {
	text-decoration: none;
}
.htl-f-grid {
	display: grid;
	grid-template-columns: 1.5fr 1fr 1.2fr 1.3fr;
	gap: 3rem 2.5rem;
	align-items: start;
}

/* Brand column */
.htl-f-logo-wrap,
.htl-f-cta-wrap {
	margin: 0;
}
.htl-f-logo {
	width: 118px;
	height: auto;
	opacity: 0.92;
	margin-bottom: 1.1rem;
}
.htl-f-tag {
	color: #8E887E;
	font-size: 0.92rem;
	line-height: 1.7;
	margin: 0 0 1.4rem;
	max-width: 30ch;
}
.htl-f-cta {
	display: inline-block;
	font-family: var(--global-body-font-family, 'Inter', sans-serif);
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	color: var(--htl-gold) !important;
	border: 1px solid rgba(198, 161, 91, 0.5);
	border-radius: 2px;
	padding: 0.75em 1.6em;
	transition: background 0.25s var(--htl-ease), color 0.25s var(--htl-ease),
		border-color 0.25s var(--htl-ease), transform 0.2s var(--htl-ease);
}
.htl-f-cta:hover {
	background: var(--htl-gold);
	border-color: var(--htl-gold);
	color: #0F0E12 !important;
	transform: translateY(-2px);
	text-decoration: none;
}

/* Column headings */
h2.htl-f-head,
.htl-f-head {
	display: block;
	margin: 0 0 1.1rem;
	color: var(--htl-gold);
	font-family: var(--global-body-font-family, 'Inter', sans-serif);
	font-size: 0.72rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.22em;
	color: var(--htl-gold);
	margin-bottom: 1.1rem;
	padding-bottom: 0.7rem;
	border-bottom: 1px solid rgba(198, 161, 91, 0.18);
}

/* Link lists — gold underline grows on hover */
.htl-f-links {
	list-style: none;
	margin: 0;
	padding: 0;
}
.htl-f-links li {
	margin: 0 0 0.6rem;
}
.htl-f-links a {
	position: relative;
	color: #A9A39A !important;
	font-size: 0.94rem;
	text-decoration: none;
	transition: color 0.22s var(--htl-ease);
}
.htl-f-links a::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: -3px;
	width: 0;
	height: 1px;
	background: var(--htl-gold);
	transition: width 0.28s var(--htl-ease);
}
.htl-f-links a:hover {
	color: #ECE7DF !important;
	text-decoration: none;
}
.htl-f-links a:hover::after {
	width: 100%;
}
.htl-f-address {
	font-style: normal;
	color: #8E887E;
	font-size: 0.94rem;
	line-height: 1.75;
	margin: 0 0 0.9rem;
}
.htl-f-contact {
	margin-bottom: 1.3rem;
}

/* Social icons */
.htl-social {
	display: flex;
	gap: 0.65rem;
}
.htl-social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border: 1px solid rgba(198, 161, 91, 0.3);
	border-radius: 50%;
	color: #A9A39A;
	transition: color 0.25s var(--htl-ease), border-color 0.25s var(--htl-ease),
		background 0.25s var(--htl-ease), transform 0.25s var(--htl-ease);
}
.htl-social svg {
	width: 17px;
	height: 17px;
	display: block;
}
.htl-social a:hover {
	color: #0F0E12;
	background: var(--htl-gold);
	border-color: var(--htl-gold);
	transform: translateY(-2px);
}

/* Bottom bar */
.htl-f-bottom {
	margin-top: 2.25rem;
	padding-top: 1.5rem;
	border-top: 1px solid rgba(198, 161, 91, 0.14);
}
.htl-f-copy {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.9rem;
	margin: 0;
	font-size: 0.8rem;
	color: #6E695F;
	letter-spacing: 0.04em;
	text-align: center;
}
.htl-f-mark {
	color: var(--htl-gold);
	opacity: 0.55;
}

@media (max-width: 1024px) {
	.htl-f-grid {
		grid-template-columns: 1fr 1fr;
		gap: 2.5rem 2rem;
	}
	.htl-f-brand {
		grid-column: 1 / -1;
	}
	.htl-f-tag {
		max-width: 46ch;
	}
}
@media (max-width: 600px) {
	.htl-footer {
		padding: 3rem 0 1.5rem;
	}
	.htl-f-grid {
		grid-template-columns: 1fr;
		gap: 2.2rem;
	}
	.htl-f-copy {
		flex-direction: column;
		gap: 0.5rem;
	}
	.htl-f-mark {
		display: none;
	}
}

/* ---- Scroll-in reveals (JS adds .htl-in when visible) ---- */
body:not(.page-template-template-history-app) .entry-content .htl-reveal {
	opacity: 0;
	transform: translateY(22px);
	transition: opacity 0.7s var(--htl-ease), transform 0.7s var(--htl-ease);
}
body:not(.page-template-template-history-app) .entry-content .htl-reveal.htl-in {
	opacity: 1;
	transform: none;
}

/* ---- Selection + focus, sitewide character ---- */
::selection {
	background: var(--htl-gold);
	color: #0F0E12;
}
a:focus-visible,
button:focus-visible {
	outline: 2px solid var(--htl-gold);
	outline-offset: 2px;
}

/* ---- Respect reduced motion ---- */
@media (prefers-reduced-motion: reduce) {
	.wp-block-cover.alignfull .wp-block-cover__image-background { animation: none; }
	.htl-reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
	.wp-block-button__link, .wp-block-image img, .wp-block-column > .wp-block-group.has-background { transition: none; }
}

/* ---- Section seams: surface bands fade into the base colour ---- */
.entry-content .wp-block-group.alignfull.has-background[style*="#1A1922"] {
	background-image: linear-gradient(180deg,
		#0F0E12 0%,
		#1A1922 150px,
		#1A1922 calc(100% - 150px),
		#0F0E12 100%);
}
@media (max-width: 700px) {
	.entry-content .wp-block-group.alignfull.has-background[style*="#1A1922"] {
		background-image: linear-gradient(180deg, #0F0E12 0%, #1A1922 80px, #1A1922 calc(100% - 80px), #0F0E12 100%);
	}
}

/* ---- Contact page: social row with labels ---- */
.htl-social-contact {
	gap: 0.75rem;
	margin-top: 0.35rem;
	flex-wrap: wrap;
}
.htl-social-contact a {
	width: auto;
	height: auto;
	gap: 0.6rem;
	padding: 0.6rem 1.1rem;
	border-radius: 999px;
	font-family: var(--global-body-font-family, 'Inter', sans-serif);
	font-size: 0.78rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	text-decoration: none;
}
.htl-social-contact a:hover {
	text-decoration: none;
}
.htl-social-contact svg {
	width: 16px;
	height: 16px;
	flex: 0 0 auto;
}

/* ---- History app pages: the site header (and its dropdown) must sit above the
   app's own sticky navigation, which carries a high z-index of its own. ---- */
.page-template-template-history-app #masthead,
.page-template-template-history-app .site-header-wrap {
	position: relative;
	z-index: 9000;
}

/* ==========================================================================
   History apps: blend into the surrounding site
   The three apps are self-contained and each carries its own warm dark canvas.
   These washes fade the site header colour into the top of the app, and the
   app into the black footer at the bottom, so there is no hard edge.
   ========================================================================== */
.htl-app-shell {
	position: relative;
}
.htl-app-shell::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 300px;
	background: linear-gradient(180deg,
		#0F0E12 0%,
		rgba(15, 14, 18, 0.86) 26%,
		rgba(15, 14, 18, 0.52) 55%,
		rgba(15, 14, 18, 0.18) 80%,
		rgba(15, 14, 18, 0) 100%);
	pointer-events: none;
	z-index: 5;
}

/* Required-field asterisks: gold, not the plugin's default red */
.fluentform .ff-el-is-required > label:after,
.fluentform .ff-el-input--label.ff-el-is-required label:after,
.fluentform label.ff-el-is-required:after,
.fluentform .ff-el-is-required.asterisk-right label:after {
	color: var(--htl-gold) !important;
}

/* ---- Responsive display type ----
   Hero and section headings carry fixed sizes in the block markup, which is
   right on desktop but oversized on phones. Clamp them down at small widths. */
@media (max-width: 900px) {
	.wp-block-cover.alignfull h1 { font-size: clamp(1.9rem, 7.4vw, 2.9rem) !important; }
	.wp-block-cover.alignfull h2 { font-size: clamp(1.6rem, 6.2vw, 2.4rem) !important; }
	.entry-content .wp-block-group.alignfull h1 { font-size: clamp(1.9rem, 7.4vw, 2.8rem) !important; }
	.entry-content .wp-block-group.alignfull h2 { font-size: clamp(1.5rem, 5.6vw, 2.2rem) !important; }
	.entry-content .wp-block-group.alignfull h3 { font-size: clamp(1.2rem, 4.6vw, 1.6rem) !important; }
	.wp-block-cover.alignfull p:not(.htl-label) { font-size: 1rem; }
}
@media (max-width: 600px) {
	.wp-block-cover.alignfull { --htl-hero-pad: 2rem; }
	.htl-label { letter-spacing: 0.2em; font-size: 0.7rem; }
}

/* Transparent-PNG artwork (the ghost badge) must not carry the mat shadow —
   the shadow follows the image's bounding box and reads as a square behind
   the round emblem. */
.entry-content .wp-block-image img.wp-image-45,
.entry-content .wp-block-image img[src*="ghost-badge"],
.entry-content .wp-block-image img[src*="logo-htl-white"] {
	box-shadow: none !important;
	border-radius: 0;
}

/* ==========================================================================
   FAQ accordion
   ========================================================================== */
.htl-faq {
	max-width: 820px;
	margin: 0 auto;
	text-align: left;
}
.htl-faq-section {
	font-family: var(--global-body-font-family, 'Inter', sans-serif);
	font-size: 0.72rem !important;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.22em;
	color: var(--htl-gold);
	margin: 3rem 0 0.25rem;
	padding-bottom: 0.8rem;
	border-bottom: 1px solid rgba(198, 161, 91, 0.22);
}
.htl-faq-section:first-child {
	margin-top: 0;
}
.htl-faq-item {
	border-bottom: 1px solid rgba(198, 161, 91, 0.12);
}
.htl-faq-item summary {
	list-style: none;
	cursor: pointer;
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1.5rem;
	padding: 1.25rem 0;
	transition: color 0.2s var(--htl-ease);
}
.htl-faq-item summary::-webkit-details-marker { display: none; }
.htl-faq-q {
	font-family: var(--global-heading-font-family, 'Cormorant Garamond', serif);
	font-size: 1.35rem;
	line-height: 1.35;
	color: #ECE7DF;
	transition: color 0.2s var(--htl-ease);
}
.htl-faq-item summary:hover .htl-faq-q,
.htl-faq-item[open] .htl-faq-q {
	color: var(--htl-gold);
}
/* Chevron */
.htl-faq-mark {
	flex: 0 0 auto;
	width: 9px;
	height: 9px;
	margin-top: 0.35em;
	border-right: 1.5px solid var(--htl-gold);
	border-bottom: 1.5px solid var(--htl-gold);
	transform: rotate(45deg);
	transition: transform 0.25s var(--htl-ease);
	opacity: 0.75;
}
.htl-faq-item[open] .htl-faq-mark {
	transform: rotate(-135deg);
}
.htl-faq-a {
	padding: 0 0 1.5rem;
	color: #A9A39A;
	font-size: 1.02rem;
	line-height: 1.75;
	max-width: 68ch;
}
.htl-faq-a ul {
	margin: 0.75rem 0 0;
	padding-left: 1.2rem;
}
.htl-faq-a li {
	margin-bottom: 0.4rem;
}
.htl-faq-a strong { color: #CFC9BF; }
.htl-faq-item[open] .htl-faq-a {
	animation: htl-faq-in 0.32s var(--htl-ease) both;
}
@keyframes htl-faq-in {
	from { opacity: 0; transform: translateY(-6px); }
	to   { opacity: 1; transform: none; }
}
@media (max-width: 600px) {
	.htl-faq-q { font-size: 1.15rem; }
	.htl-faq-item summary { padding: 1rem 0; gap: 1rem; }
}

/* ==========================================================================
   Plan Your Visit: info cards, numbered steps, venue list
   ========================================================================== */

/* Address / detail card */
.htl-infocard {
	background: #14131B;
	border: 1px solid rgba(198, 161, 91, 0.22);
	border-left: 2px solid var(--htl-gold);
	border-radius: 3px;
	padding: 1.75rem 1.75rem 1.5rem !important;
}
.htl-infocard p { margin-bottom: 0.4rem; }
.htl-infocard p:last-child { margin-bottom: 0; }

/* Numbered directions */
.htl-step {
	display: flex !important;
	align-items: flex-start;
	gap: 1.4rem;
	padding: 1.4rem 0 !important;
	border-bottom: 1px solid rgba(198, 161, 91, 0.12);
}
.htl-step:last-of-type { border-bottom: none; }
.htl-step > .wp-block-group__inner-container {
	display: flex;
	align-items: flex-start;
	gap: 1.4rem;
	width: 100%;
}
.htl-step-n {
	flex: 0 0 auto;
	font-family: var(--global-heading-font-family, 'Cormorant Garamond', serif);
	font-size: 2.4rem !important;
	line-height: 1 !important;
	color: var(--htl-gold);
	opacity: 0.75;
	min-width: 2rem;
	margin: 0 !important;
}
.htl-step-body { flex: 1 1 auto; }
.htl-step-body p { margin: 0; }
.htl-step-body p + p { margin-top: 0.5rem; }

/* Highlighted aside */
.htl-callout {
	background: rgba(198, 161, 91, 0.06);
	border: 1px solid rgba(198, 161, 91, 0.25);
	border-radius: 3px;
	padding: 1.5rem 1.75rem !important;
}
.htl-callout p:last-child { margin-bottom: 0; }

/* Venue list */
.htl-place {
	padding: 0.95rem 0 !important;
	border-bottom: 1px solid rgba(198, 161, 91, 0.12);
}
.htl-place > .wp-block-group__inner-container {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.5rem 1.5rem;
}
.htl-place p { margin: 0; }
.htl-place:last-child { border-bottom: none; }
.htl-place-name {
	font-family: var(--global-heading-font-family, 'Cormorant Garamond', serif);
	font-size: 1.25rem;
	color: #ECE7DF;
}
.htl-place-note {
	color: #8E887E;
	font-size: 0.95rem;
}
.htl-place-hours {
	flex: 0 0 auto;
	font-family: var(--global-body-font-family, 'Inter', sans-serif);
	font-size: 0.7rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	color: var(--htl-gold);
	border: 1px solid rgba(198, 161, 91, 0.3);
	border-radius: 999px;
	padding: 0.35em 0.9em;
	white-space: nowrap;
}
@media (max-width: 600px) {
	.htl-step > .wp-block-group__inner-container { gap: 1rem; }
	.htl-step-n { font-size: 1.9rem !important; min-width: 1.5rem; }
	.htl-place > .wp-block-group__inner-container { flex-direction: column; align-items: flex-start; }
}

/* Keep the visit photo in proportion with the detail card beside it */
.htl-visit-photo img {
	width: 100%;
	max-height: 440px;
	object-fit: cover;
	object-position: center 30%;
}

/* ==========================================================================
   Guest reviews
   ========================================================================== */
.htl-reviews {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
	gap: 1.75rem;
	text-align: left;
}
.htl-review {
	position: relative;
	margin: 0;
	padding: 2.25rem 1.75rem 1.75rem;
	background: #14131B;
	border: 1px solid rgba(198, 161, 91, 0.18);
	border-top: 2px solid var(--htl-gold);
	border-radius: 3px;
	display: flex;
	flex-direction: column;
	box-shadow: 0 16px 38px -24px rgba(0, 0, 0, 0.85);
	transition: transform 0.3s var(--htl-ease), box-shadow 0.3s var(--htl-ease);
}
.htl-review:hover {
	transform: translateY(-4px);
	box-shadow: 0 26px 52px -22px rgba(0, 0, 0, 0.9), 0 0 0 1px rgba(198, 161, 91, 0.25);
}
.htl-review::before {
	content: '\201C';
	position: absolute;
	top: 0.35rem;
	right: 1.1rem;
	font-family: var(--global-heading-font-family, 'Cormorant Garamond', serif);
	font-size: 4.5rem;
	line-height: 1;
	color: var(--htl-gold);
	opacity: 0.16;
	pointer-events: none;
}
.htl-review-stars {
	color: var(--htl-gold);
	font-size: 0.85rem;
	letter-spacing: 0.22em;
	margin-bottom: 0.9rem;
}
.htl-review-quote {
	margin: 0 0 1.4rem;
	padding: 0;
	border: none;
	color: #C9C3B9;
	font-size: 1rem;
	line-height: 1.75;
	flex: 1 1 auto;
}
.htl-review-who {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	padding-top: 1rem;
	border-top: 1px solid rgba(198, 161, 91, 0.14);
}
.htl-review-name {
	font-family: var(--global-heading-font-family, 'Cormorant Garamond', serif);
	font-size: 1.15rem;
	color: #ECE7DF;
}
.htl-review-note {
	font-family: var(--global-body-font-family, 'Inter', sans-serif);
	font-size: 0.7rem;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	color: var(--htl-gold);
}
.htl-review-date {
	font-size: 0.82rem;
	color: #6E695F;
}
.htl-review-actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.9rem;
	margin-top: 2.5rem;
}
.htl-review-btn {
	display: inline-block;
	font-family: var(--global-body-font-family, 'Inter', sans-serif);
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	color: var(--htl-gold) !important;
	border: 1px solid rgba(198, 161, 91, 0.5);
	border-radius: 2px;
	padding: 0.85em 1.8em;
	text-decoration: none !important;
	transition: background 0.25s var(--htl-ease), color 0.25s var(--htl-ease), transform 0.2s var(--htl-ease);
}
.htl-review-btn:hover {
	background: var(--htl-gold);
	color: #0F0E12 !important;
	transform: translateY(-2px);
}
.htl-review-btn-alt:hover {
	background: var(--htl-oxblood);
	border-color: var(--htl-oxblood);
	color: #ECE7DF !important;
}

/* A quiet jump link for anyone who lands mid-page */
.htl-jump {
	display: inline-block;
	margin-top: 0.5rem;
	font-family: var(--global-body-font-family, 'Inter', sans-serif);
	font-size: 0.72rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	color: var(--htl-gold) !important;
	text-decoration: none !important;
	border-bottom: 1px solid rgba(198, 161, 91, 0.45);
	padding-bottom: 2px;
}
.htl-jump:hover { color: #ECE7DF !important; border-color: #ECE7DF; }



/* The Book now button jumps to #schedule; keep it clear of the sticky header. */
#schedule {
	scroll-margin-top: 90px;
}
