:root {
	--tfh-white: #ffffff;
	--tfh-dark: #151719;
	--tfh-gold: #d4af37;
	--tfh-gold-soft: rgba(212, 175, 55, 0.16);
	--tfh-muted: #6b7178;
	--tfh-line: #ecece8;
	--tfh-soft: #f6f6f4;
	--tfh-header: 64px;
	--tfh-max: 1400px;
	--tfh-radius: 12px;
	--tfh-radius-sm: 8px;
	--tfh-shadow: 0 10px 40px rgba(21, 23, 25, 0.1);
	--tfh-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

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

html {
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--tfh-header) + 12px);
}

body.tfh-body {
	margin: 0;
	background: var(--tfh-white);
	color: var(--tfh-dark);
	font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: 16px;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

button,
a {
	font-family: inherit;
}

h1, h2, h3 {
	font-family: Outfit, Inter, sans-serif;
	font-weight: 600;
	letter-spacing: -0.03em;
	margin: 0;
}

.tfh-skip {
	position: absolute;
	left: -999px;
	top: 0;
	background: var(--tfh-dark);
	color: #fff;
	padding: 8px 12px;
	z-index: 100;
}

.tfh-skip:focus {
	left: 12px;
	top: 12px;
}

/* Header */
.tfh-header {
	position: sticky;
	top: 0;
	z-index: 50;
	height: var(--tfh-header);
	background: rgba(255, 255, 255, 0.96);
	backdrop-filter: saturate(1.2) blur(12px);
	border-bottom: 1px solid var(--tfh-line);
}

.tfh-header-inner {
	height: 100%;
	max-width: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 0 16px;
}

.tfh-brand {
	display: flex;
	min-width: 0;
	text-decoration: none;
	color: inherit;
}

.tfh-logo {
	display: flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
}

.tfh-logo--custom .tfh-logo-img {
	height: 42px;
	width: auto;
	max-width: min(260px, 48vw);
	object-fit: contain;
}

.tfh-mark {
	flex: 0 0 auto;
	width: 36px;
	height: 36px;
	border-radius: 10px;
	background: var(--tfh-dark);
	color: #fff;
	display: grid;
	place-items: center;
	position: relative;
	overflow: hidden;
}

.tfh-mark::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 3px;
	background: var(--tfh-gold);
}

.tfh-mark-24 {
	font-family: Outfit, sans-serif;
	font-weight: 700;
	font-size: 13px;
	letter-spacing: -0.04em;
	line-height: 1;
	margin-bottom: 2px;
}

.tfh-wordmark {
	display: flex;
	flex-direction: column;
	min-width: 0;
	line-height: 1.15;
}

.tfh-wordmark-name {
	font-family: Outfit, sans-serif;
	font-weight: 700;
	font-size: 15px;
	letter-spacing: 0.08em;
}

.tfh-wordmark-sub {
	font-size: 10px;
	color: var(--tfh-muted);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 42vw;
}

.tfh-header-actions {
	display: flex;
	align-items: center;
	gap: 8px;
	flex: 0 0 auto;
}

.tfh-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	border: 0;
	cursor: pointer;
	text-decoration: none;
	font-weight: 600;
	font-size: 14px;
	line-height: 1;
	border-radius: 999px;
	padding: 11px 16px;
	transition: transform 0.2s var(--tfh-ease), background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.tfh-btn svg {
	width: 16px;
	height: 16px;
}

.tfh-btn-primary {
	background: var(--tfh-dark);
	color: #fff;
	white-space: nowrap;
}

.tfh-btn-primary:hover {
	background: #000;
}

.tfh-btn-outline {
	background: #fff;
	color: var(--tfh-dark);
	border: 1px solid #d8d8d4;
}

.tfh-btn-outline:hover {
	border-color: var(--tfh-dark);
}

.tfh-btn-ghost {
	background: transparent;
	color: var(--tfh-dark);
	border: 1px solid #d8d8d4;
}

.tfh-btn-chip {
	background: #fff;
	color: var(--tfh-dark);
	border: 1px solid #d8d8d4;
	border-radius: 999px;
	padding: 10px 14px;
	font-weight: 500;
}

.tfh-btn-chip svg {
	width: 14px;
	height: 14px;
	opacity: 0.7;
}

.tfh-btn-sm {
	padding: 8px 12px;
	font-size: 13px;
}

.tfh-btn-light {
	background: rgba(255, 255, 255, 0.12);
	color: #fff;
	border: 1px solid rgba(255, 255, 255, 0.18);
}

.tfh-icon-btn {
	width: 42px;
	height: 42px;
	border: 0;
	background: transparent;
	color: var(--tfh-dark);
	border-radius: 10px;
	display: grid;
	place-items: center;
	cursor: pointer;
}

.tfh-icon-btn svg {
	width: 22px;
	height: 22px;
}

.tfh-icon-close {
	display: none;
}

.is-nav-open .tfh-icon-menu {
	display: none;
}

.is-nav-open .tfh-icon-close {
	display: grid;
}

/* Nav panel */
.tfh-nav-overlay {
	position: fixed;
	inset: var(--tfh-header) 0 0 0;
	background: rgba(21, 23, 25, 0.28);
	z-index: 40;
}

.tfh-nav {
	position: fixed;
	top: var(--tfh-header);
	left: 0;
	right: 0;
	z-index: 45;
	background: #fff;
	padding: 8px 20px 28px;
	border-bottom: 1px solid var(--tfh-line);
	box-shadow: var(--tfh-shadow);
}

.tfh-nav-list {
	list-style: none;
	margin: 0;
	padding: 8px 0 18px;
}

.tfh-nav-list a {
	display: block;
	padding: 14px 4px;
	color: var(--tfh-dark);
	text-decoration: none;
	font-size: 22px;
	font-family: Outfit, sans-serif;
	font-weight: 500;
	letter-spacing: -0.03em;
	border-bottom: 1px solid var(--tfh-line);
}

.tfh-nav-list a:hover {
	color: #000;
	box-shadow: inset 3px 0 0 var(--tfh-gold);
	padding-left: 10px;
}

.tfh-nav-foot {
	display: grid;
	gap: 10px;
	padding-top: 8px;
}

.tfh-nav-foot .tfh-btn {
	width: 100%;
}

/* Hero — match the photo’s real shape on mobile. Do not force a tall crop. */
.tfh-hero {
	position: relative;
	height: auto;
	min-height: 0;
	max-height: none;
	aspect-ratio: auto;
	background: #1c1f22;
	overflow: hidden;
}

img.tfh-hero-img {
	width: 100%;
	height: auto;
	max-width: 100%;
	max-height: none;
	object-fit: contain;
	object-position: center;
	display: block;
	vertical-align: bottom;
}

.tfh-hero-fallback {
	width: 100%;
	aspect-ratio: 3 / 2;
	min-height: 220px;
	background: linear-gradient(160deg, #2a2e32, #151719);
}

.tfh-hero-shade {
	position: absolute;
	inset: auto 0 0;
	height: 48%;
	background: linear-gradient(180deg, transparent, rgba(21, 23, 25, 0.72));
	pointer-events: none;
}

.tfh-hero-copy {
	position: absolute;
	left: 20px;
	right: 20px;
	bottom: 28px;
	color: #fff;
}

.tfh-hero-copy h1 {
	font-size: clamp(28px, 6vw, 48px);
	font-weight: 700;
	line-height: 1.08;
	text-shadow: 0 10px 30px rgba(0, 0, 0, 0.28);
}

.tfh-hero-line1,
.tfh-hero-line2 {
	display: block;
}

.tfh-hero-facts {
	margin: 10px 0 0;
	font-family: Inter, system-ui, sans-serif;
	font-size: clamp(12px, 1.7vw, 16px);
	font-weight: 400;
	letter-spacing: 0.08em;
	line-height: 1.35;
	color: rgba(255, 255, 255, 0.88);
	text-shadow: 0 6px 20px rgba(0, 0, 0, 0.28);
}

.tfh-about {
	padding: 36px 0 8px;
	background: var(--tfh-white);
}

.tfh-about-inner {
	width: min(100% - 32px, 720px);
	margin: 0 auto;
	padding: 28px 0 8px;
	border-bottom: 1px solid var(--tfh-line);
}

.tfh-about-kicker {
	margin: 0 0 12px;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--tfh-gold);
}

.tfh-about-copy {
	margin: 0;
	font-size: 17px;
	font-weight: 400;
	line-height: 1.7;
	color: #3d4248;
}

.tfh-about-copy p {
	margin: 0 0 1em;
}

.tfh-about-copy p:last-child {
	margin-bottom: 0;
}

.tfh-about-toggle {
	display: inline-block;
	margin-top: 16px;
	padding: 0 0 3px;
	border: 0;
	border-bottom: 1px solid var(--tfh-gold);
	background: none;
	color: var(--tfh-dark);
	font-family: inherit;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.06em;
	cursor: pointer;
}

.tfh-about-toggle:hover,
.tfh-about-toggle:focus-visible {
	color: var(--tfh-gold);
}

/* Layout */
.tfh-wrap {
	width: min(100% - 32px, var(--tfh-max));
	margin: 0 auto;
}

.tfh-section {
	padding: 48px 0 12px;
}

.tfh-section-head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 22px;
}

.tfh-section-head h2 {
	font-size: clamp(28px, 4vw, 40px);
}

.tfh-count {
	margin: 6px 0 0;
	color: var(--tfh-muted);
	font-size: 14px;
}

.tfh-dropdown {
	position: relative;
}

.tfh-dropdown-menu {
	position: absolute;
	right: 0;
	top: calc(100% + 8px);
	min-width: 240px;
	background: #fff;
	border: 1px solid var(--tfh-line);
	border-radius: 14px;
	box-shadow: var(--tfh-shadow);
	padding: 8px;
	z-index: 20;
}

.tfh-dropdown-menu a,
.tfh-dropdown-menu button {
	display: block;
	width: 100%;
	text-align: left;
	background: none;
	border: 0;
	border-radius: 10px;
	padding: 12px 12px;
	color: var(--tfh-dark);
	text-decoration: none;
	font-size: 14px;
	cursor: pointer;
}

.tfh-dropdown-menu a:hover,
.tfh-dropdown-menu button:hover {
	background: var(--tfh-soft);
}

/* Gallery */
.tfh-gallery {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
}

.tfh-card {
	position: relative;
	margin: 0;
	padding: 0;
	border: 0;
	background: var(--tfh-soft);
	border-radius: var(--tfh-radius);
	overflow: hidden;
	aspect-ratio: 4 / 3;
	cursor: pointer;
}

.tfh-card img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s var(--tfh-ease);
}

.tfh-card:hover img {
	transform: scale(1.03);
}

.tfh-card-caption {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 28px 10px 10px;
	color: #fff;
	font-size: 12px;
	font-weight: 500;
	text-align: left;
	background: linear-gradient(transparent, rgba(21, 23, 25, 0.62));
}

.tfh-check-badge {
	position: absolute;
	top: 8px;
	right: 8px;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	border: 2px solid rgba(255, 255, 255, 0.9);
	background: rgba(21, 23, 25, 0.25);
	color: #fff;
	display: none;
	place-items: center;
	z-index: 2;
}

.tfh-check-badge svg {
	width: 12px;
	height: 12px;
}

.is-selecting .tfh-check-badge {
	display: grid;
}

.tfh-card.is-selected .tfh-check-badge {
	background: var(--tfh-dark);
	border-color: var(--tfh-gold);
	color: var(--tfh-gold);
}

.tfh-select-bar {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: -6px 0 16px;
	padding: 10px 12px;
	background: var(--tfh-soft);
	border-radius: 12px;
	font-size: 14px;
}

/* Videos */
.tfh-video-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
	align-items: start;
}

.tfh-media-card {
	min-width: 0;
}

.tfh-media-card.is-reel {
	max-width: 280px;
	justify-self: start;
}

.tfh-video-thumb {
	position: relative;
	width: 100%;
	border: 0;
	padding: 0;
	border-radius: var(--tfh-radius);
	overflow: hidden;
	aspect-ratio: 16 / 9;
	background: #1c1f22;
	cursor: pointer;
}

.tfh-video-thumb.is-reel {
	aspect-ratio: 9 / 16;
}

.tfh-video-thumb img,
.tfh-video-fallback {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.tfh-play {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	color: #fff;
}

.tfh-play svg {
	width: 54px;
	height: 54px;
	filter: drop-shadow(0 8px 18px rgba(0, 0, 0, 0.35));
}

.tfh-media-meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	padding: 10px 2px 0;
}

.tfh-media-meta h3 {
	font-size: 14px;
	font-weight: 600;
}

.tfh-inline-dl {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	color: var(--tfh-muted);
	text-decoration: none;
	font-size: 12px;
}

.tfh-inline-dl svg {
	width: 14px;
	height: 14px;
}

/* Tours / floor / website */
.tfh-tour-grid,
.tfh-feature-card {
	display: grid;
	gap: 16px;
}

.tfh-tour-card,
.tfh-feature-card,
.tfh-website-card {
	border-radius: 16px;
	overflow: hidden;
	background: var(--tfh-soft);
}

.tfh-tour-card img,
.tfh-feature-card img {
	width: 100%;
	aspect-ratio: 16 / 8;
	object-fit: cover;
}

.tfh-tour-card--embed {
	background: #fff;
	border: 1px solid var(--tfh-line);
}

.tfh-tour-frame {
	position: relative;
	width: 100%;
	background: #1c1f22;
	aspect-ratio: 16 / 9;
	min-height: 280px;
}

.tfh-tour-frame iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.tfh-copy-row {
	width: 100%;
	display: grid;
	gap: 8px;
}

.tfh-copy-label {
	font-size: 13px;
	color: var(--tfh-muted);
}

.tfh-copy-control {
	display: flex;
	gap: 8px;
	width: 100%;
}

.tfh-copy-control input {
	flex: 1;
	min-width: 0;
	border: 1px solid var(--tfh-line);
	border-radius: 999px;
	padding: 10px 14px;
	font-size: 13px;
	color: var(--tfh-dark);
	background: #fff;
}

.tfh-copy-control .tfh-btn {
	flex: 0 0 auto;
}

.tfh-tour-body,
.tfh-feature-body {
	padding: 18px;
	display: grid;
	gap: 14px;
	justify-items: start;
}

.tfh-tour-body h3,
.tfh-feature-body h3 {
	font-size: 20px;
}

.tfh-feature-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.tfh-kit-grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 10px;
}

.tfh-kit-grid li {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 14px 16px;
	border: 1px solid var(--tfh-line);
	border-radius: 14px;
}

.tfh-website-card {
	display: grid;
	gap: 10px;
	padding: 28px 24px;
	text-decoration: none;
	color: inherit;
	background:
		linear-gradient(180deg, rgba(255, 255, 255, 0.04), transparent),
		var(--tfh-dark);
	color: #fff;
}

.tfh-website-kicker {
	color: var(--tfh-gold);
	font-size: 12px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.tfh-website-card strong {
	font-family: Outfit, sans-serif;
	font-size: 28px;
	letter-spacing: -0.03em;
}

.tfh-website-card .tfh-btn {
	justify-self: start;
	margin-top: 8px;
	background: #fff;
	color: var(--tfh-dark);
}

/* Contact agent */
.tfh-contact {
	display: grid;
	gap: 28px;
}

.tfh-agent-card {
	display: flex;
	align-items: center;
	gap: 18px;
	padding: 20px;
	border: 1px solid var(--tfh-line);
	border-radius: 16px;
	background: var(--tfh-soft);
}

.tfh-agent-photo {
	width: 92px;
	height: 92px;
	border-radius: 50%;
	object-fit: cover;
	flex: 0 0 auto;
	background: #dcdcd8;
}

.tfh-agent-photo--empty {
	display: block;
}

.tfh-agent-info h3 {
	font-size: 22px;
	margin-bottom: 4px;
}

.tfh-agent-title {
	margin: 0 0 8px;
	color: var(--tfh-muted);
	font-size: 14px;
}

.tfh-agent-phone {
	color: var(--tfh-dark);
	text-decoration: none;
	font-weight: 600;
}

.tfh-contact-form {
	display: grid;
	gap: 12px;
	position: relative;
}

.tfh-contact-form label span {
	display: block;
	margin-bottom: 6px;
	font-size: 13px;
	font-weight: 600;
}

.tfh-contact-form input,
.tfh-contact-form textarea {
	width: 100%;
	border: 1px solid var(--tfh-line);
	border-radius: 12px;
	padding: 12px 14px;
	font: inherit;
	color: var(--tfh-dark);
	background: #fff;
}

.tfh-contact-form .tfh-btn {
	justify-self: start;
	margin-top: 4px;
}

.tfh-hp {
	position: absolute;
	left: -9999px;
	height: 0;
	overflow: hidden;
}

.tfh-form-note {
	margin: 0;
	padding: 12px 14px;
	border-radius: 12px;
	font-size: 14px;
}

.tfh-form-note--ok {
	background: #eef7ee;
	color: #1d5a2b;
}

.tfh-form-note--err {
	background: #fdeeee;
	color: #8a1f1f;
}

.tfh-is-public .tfh-section-actions,
.tfh-is-public [data-open="download-all"],
.tfh-is-public [data-lightbox-download],
.tfh-is-public .tfh-check-badge,
.tfh-is-public .tfh-select-bar,
.tfh-is-public .tfh-inline-dl,
.tfh-unpaid:not(.tfh-can-edit) [data-open="download-all"],
.tfh-unpaid:not(.tfh-can-edit) [data-lightbox-download],
.tfh-unpaid:not(.tfh-can-edit) .tfh-section-actions,
.tfh-unpaid:not(.tfh-can-edit) .tfh-check-badge,
.tfh-unpaid:not(.tfh-can-edit) .tfh-select-bar,
.tfh-unpaid:not(.tfh-can-edit) .tfh-inline-dl {
	display: none !important;
}

/* Unpaid listing: pay bar + 24HOUR watermark */
.tfh-pay-bar {
	position: sticky;
	top: var(--tfh-header);
	z-index: 40;
	background: var(--tfh-dark);
	color: #fff;
	border-bottom: 1px solid rgba(212, 175, 55, 0.35);
}

.tfh-pay-bar-inner {
	width: min(100% - 32px, var(--tfh-max));
	margin: 0 auto;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px 20px;
	padding: 12px 0;
}

.tfh-pay-bar p {
	margin: 0;
	font-size: 14px;
	line-height: 1.4;
}

.tfh-btn-pay {
	background: var(--tfh-gold);
	color: var(--tfh-dark);
	font-weight: 600;
}

.tfh-btn-pay:hover {
	background: #c4a030;
	color: var(--tfh-dark);
}

.tfh-unpaid .tfh-hero::after,
.tfh-unpaid .tfh-card::after,
.tfh-unpaid .tfh-lightbox-stage::after,
.tfh-unpaid .tfh-feature-card::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: auto;
	z-index: 3;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='280' height='160' viewBox='0 0 280 160'%3E%3Ctext x='20' y='90' fill='rgba(255,255,255,0.38)' font-family='Outfit,Inter,sans-serif' font-size='28' font-weight='700' letter-spacing='4'%3E24HOUR%3C/text%3E%3C/svg%3E");
	background-size: 280px 160px;
	background-repeat: repeat;
}

.tfh-unpaid .tfh-hero::after {
	z-index: 1;
}

.tfh-unpaid .tfh-hero-shade,
.tfh-unpaid .tfh-hero-copy {
	z-index: 2;
}

.tfh-unpaid .tfh-feature-card {
	position: relative;
	overflow: hidden;
}

.tfh-unpaid .tfh-lightbox-stage {
	position: relative;
}

.tfh-unpaid video::-webkit-media-controls-overflow-button,
.tfh-unpaid video::-webkit-media-controls-download-button,
.tfh-unpaid video::-internal-media-controls-download-button,
.tfh-unpaid video::-webkit-media-controls-overflow-menu-list,
.tfh-unpaid video::-webkit-media-controls-playback-rate-button {
	display: none !important;
}

.tfh-unpaid img,
.tfh-unpaid video,
.tfh-unpaid .tfh-hero,
.tfh-unpaid .tfh-card,
.tfh-unpaid .tfh-lightbox-stage,
.tfh-unpaid .tfh-feature-card,
.tfh-unpaid .tfh-video-thumb {
	-webkit-user-select: none;
	user-select: none;
	-webkit-touch-callout: none;
	-webkit-user-drag: none;
}

/* Footer */
.tfh-footer {
	padding: 64px 0 48px;
	margin-top: 40px;
	border-top: 1px solid var(--tfh-line);
	color: var(--tfh-muted);
}

.tfh-footer .tfh-logo {
	margin-bottom: 10px;
}

.tfh-footer .tfh-logo--custom .tfh-logo-img {
	height: 52px;
	max-width: 280px;
}

.tfh-footer p {
	margin: 0;
	font-size: 14px;
}

.tfh-edit {
	margin-top: 16px !important;
}

.tfh-edit a {
	color: var(--tfh-dark);
}

/* Modal */
.tfh-modal[hidden],
.tfh-lightbox[hidden],
.tfh-nav[hidden],
.tfh-nav-overlay[hidden],
.tfh-dropdown-menu[hidden],
.tfh-select-bar[hidden] {
	display: none !important;
}

.tfh-modal {
	position: fixed;
	inset: 0;
	z-index: 80;
	display: grid;
	place-items: end center;
}

.tfh-modal-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(21, 23, 25, 0.45);
}

.tfh-modal-sheet {
	position: relative;
	width: min(100%, 520px);
	max-height: min(88vh, 720px);
	overflow: auto;
	background: #fff;
	border-radius: 20px 20px 0 0;
	padding: 28px 22px 28px;
	z-index: 1;
}

.tfh-modal-close {
	position: absolute;
	top: 10px;
	right: 10px;
}

.tfh-modal-sheet h2 {
	font-size: 28px;
	margin-bottom: 18px;
}

.tfh-dl-form fieldset {
	border: 0;
	margin: 0 0 18px;
	padding: 0;
}

.tfh-dl-form legend {
	font-family: Outfit, sans-serif;
	font-size: 18px;
	margin-bottom: 10px;
}

.tfh-dl-form label {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 8px 0;
}

.tfh-dl-form input[type="checkbox"] {
	accent-color: var(--tfh-dark);
	width: 18px;
	height: 18px;
}

.tfh-dl-note {
	color: var(--tfh-muted);
	font-size: 13px;
}

.tfh-dl-actions {
	display: grid;
	gap: 10px;
	margin-top: 8px;
}

/* Lightbox */
.tfh-lightbox {
	position: fixed;
	inset: 0;
	z-index: 90;
	background: #0b0c0d;
	color: #fff;
	display: grid;
	grid-template-rows: auto 1fr auto;
}

.tfh-lightbox-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 10px 12px;
	position: relative;
	z-index: 2;
}

.tfh-lightbox .tfh-icon-btn {
	color: #fff;
}

.tfh-light-counter {
	font-size: 13px;
	color: rgba(255, 255, 255, 0.7);
}

.tfh-lightbox-main {
	position: relative;
	min-height: 0;
	display: grid;
}

.tfh-lightbox-stage {
	margin: 0;
	min-height: 0;
	display: grid;
	place-items: center;
	padding: 8px 56px 8px;
}

.tfh-lightbox-stage img {
	max-width: 100%;
	max-height: calc(100vh - 210px);
	width: auto;
	height: auto;
	object-fit: contain;
	border-radius: 4px;
	user-select: none;
}

.tfh-lightbox-stage figcaption {
	margin-top: 10px;
	text-align: center;
	color: rgba(255, 255, 255, 0.72);
	font-size: 14px;
}

.tfh-light-nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 48px;
	height: 48px;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.08);
	color: #fff;
	cursor: pointer;
	display: grid;
	place-items: center;
	z-index: 2;
}

.tfh-light-nav svg {
	width: 22px;
	height: 22px;
}

.tfh-light-prev { left: 10px; }
.tfh-light-next { right: 10px; }

.tfh-filmstrip {
	display: flex;
	gap: 8px;
	overflow-x: auto;
	padding: 8px 16px 16px;
	scrollbar-width: thin;
	-webkit-overflow-scrolling: touch;
}

.tfh-filmstrip::-webkit-scrollbar {
	height: 6px;
}

.tfh-filmstrip::-webkit-scrollbar-thumb {
	background: rgba(255, 255, 255, 0.25);
	border-radius: 99px;
}

.tfh-film-thumb {
	flex: 0 0 auto;
	width: 76px;
	height: 56px;
	padding: 0;
	border: 2px solid transparent;
	border-radius: 6px;
	overflow: hidden;
	background: #1c1f22;
	cursor: pointer;
	opacity: 0.5;
}

.tfh-film-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	pointer-events: none;
}

.tfh-film-thumb.is-active {
	opacity: 1;
	border-color: #fff;
	box-shadow: 0 0 0 1px rgba(212, 175, 55, 0.7);
}

.tfh-video-modal {
	place-items: center;
	padding: 56px 16px 16px;
}

.tfh-video-modal .tfh-light-close {
	position: absolute;
	top: 10px;
	right: 10px;
}

.tfh-video-stage {
	width: min(100%, 1100px);
}

.tfh-video-stage.is-reel {
	width: min(100%, calc((100vh - 96px) * 9 / 16), 420px);
}

.tfh-video-stage video,
.tfh-video-stage iframe {
	width: 100%;
	aspect-ratio: 16 / 9;
	border: 0;
	background: #000;
	border-radius: 12px;
	object-fit: contain;
}

.tfh-video-stage.is-reel video,
.tfh-video-stage.is-reel iframe {
	aspect-ratio: 9 / 16;
	max-height: calc(100vh - 96px);
}

body.is-locked {
	overflow: hidden;
}

/* Desktop */
@media (min-width: 768px) {
	.tfh-header-inner {
		padding: 0 28px;
	}

	.tfh-wordmark-sub {
		max-width: none;
	}

	.tfh-hero {
		height: min(72vh, 760px);
		min-height: 280px;
		max-height: none;
		aspect-ratio: auto;
	}

	img.tfh-hero-img {
		height: 100%;
		max-height: none;
		object-fit: cover;
	}

	.tfh-hero-copy {
		left: 40px;
		bottom: 40px;
	}

	.tfh-about {
		padding: 48px 0 12px;
	}

	.tfh-about-inner {
		width: min(100% - 80px, 720px);
		padding: 8px 0 20px;
	}

	.tfh-gallery {
		grid-template-columns: repeat(3, 1fr);
		gap: 16px;
	}

	.tfh-video-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 20px;
	}

	.tfh-contact {
		grid-template-columns: minmax(240px, 0.85fr) 1.15fr;
		align-items: start;
		gap: 36px;
	}

	#photos .tfh-wrap,
	#videos .tfh-wrap,
	#tours .tfh-wrap,
	#contact .tfh-wrap {
		width: min(calc(100% - 96px), var(--tfh-max));
	}

	.tfh-modal {
		place-items: center;
	}

	.tfh-modal-sheet {
		border-radius: 20px;
		padding: 32px;
	}

	.tfh-nav {
		left: auto;
		width: 380px;
		right: 16px;
		top: calc(var(--tfh-header) + 10px);
		border: 1px solid var(--tfh-line);
		border-radius: 18px;
		padding: 10px 18px 22px;
	}

	.tfh-section {
		padding: 64px 0 16px;
	}

	.tfh-tour-frame {
		min-height: 520px;
	}

	.tfh-film-thumb {
		width: 88px;
		height: 64px;
	}
}

@media (min-width: 1200px) {
	.tfh-hero {
		height: min(78vh, 820px);
		max-height: none;
		aspect-ratio: auto;
	}

	.tfh-wrap {
		width: min(100% - 48px, var(--tfh-max));
	}

	#photos .tfh-wrap,
	#videos .tfh-wrap,
	#tours .tfh-wrap,
	#contact .tfh-wrap {
		width: min(calc(100% - 200px), var(--tfh-max));
	}

	.tfh-tour-card img,
	.tfh-feature-card img {
		aspect-ratio: 21 / 8;
	}
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.tfh-card img { transition: none; }
}
