/* Home by the Bridge — front-end extras (block themes get most styling from theme.json) */

/* Card style for grouped boxes */
.wp-block-group.is-style-card {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--base-2);
	border-radius: 12px;
	padding: 1.75rem;
	box-shadow: 0 6px 24px rgba(29, 42, 43, 0.05);
	height: 100%;
}

.wp-block-group.is-style-card:hover {
	box-shadow: 0 10px 32px rgba(29, 42, 43, 0.1);
	transition: box-shadow 0.25s ease;
}

/* Soft rounded images */
.wp-block-image.is-style-rounded-soft img {
	border-radius: 14px;
}

/* Highlighted sticky header */
.hbtb-header {
	position: sticky;
	top: 0;
	z-index: 100;
	border-bottom: 1px solid var(--wp--preset--color--base-2);
	box-shadow: 0 4px 20px rgba(29, 42, 43, 0.06);
}

.hbtb-header .wp-block-site-logo {
	margin-bottom: 0.25rem;
}

.hbtb-header .wp-block-site-logo img {
	transition: transform 0.3s ease;
}

.hbtb-header .wp-block-site-logo a:hover img {
	transform: scale(1.04);
}

/* Nav links: spaced, uppercase, animated underline */
.hbtb-nav .wp-block-navigation-item a {
	font-weight: 600;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	font-size: 0.8rem;
	color: var(--wp--preset--color--contrast);
	position: relative;
	padding-bottom: 3px;
}

.hbtb-nav .wp-block-navigation-item a::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 0;
	height: 2px;
	background: var(--wp--preset--color--primary);
	transition: width 0.25s ease;
}

.hbtb-nav .wp-block-navigation-item a:hover::after,
.hbtb-nav .current-nav a::after,
.hbtb-nav a[aria-current="page"]::after {
	width: 100%;
}

/* Active menu item: green + bold */
.hbtb-nav .current-nav a,
.hbtb-nav a[aria-current="page"] {
	color: var(--wp--preset--color--primary);
	font-weight: 700;
}

/* Keep the Book Now button unaffected by active styling */
.hbtb-nav .wp-block-button a[aria-current="page"] {
	color: var(--wp--preset--color--white);
}

/* Book Now keeps no underline */
.hbtb-nav .wp-block-button__link::after {
	display: none;
}

html {
	scroll-behavior: smooth;
}

/* Hero cover: keep text readable */
.hbtb-hero .wp-block-cover__inner-container {
	max-width: 820px;
	margin-inline: auto;
}

/* Glass-card hero text panel */
.hbtb-hero-card {
	background: rgba(29, 42, 43, 0.32);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: 18px;
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.28);
}

.hbtb-hero-card .hbtb-hero-rule {
	margin-inline: auto;
}

/* White booking bar that lifts onto the hero */
.hbtb-booking-bar {
	position: relative;
	z-index: 5;
	margin-top: -2.5rem;
	border-radius: 12px;
	box-shadow: 0 18px 40px rgba(29, 42, 43, 0.16);
}

/* Room cards lifted up to overlap the booking bar */
.hbtb-cards-lift {
	margin-top: -3.5rem;
	position: relative;
	z-index: 4;
}

@media (max-width: 781px) {
	.hbtb-booking-bar {
		margin-top: 0;
		border-radius: 0;
	}
	.hbtb-cards-lift {
		margin-top: 2rem;
	}
}

/* Room/feature cards */
.hbtb-room-card {
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 8px 28px rgba(29, 42, 43, 0.1);
	transition: box-shadow 0.25s ease, transform 0.25s ease;
	height: 100%;
}

.hbtb-room-card:hover {
	box-shadow: 0 16px 40px rgba(29, 42, 43, 0.16);
	transform: translateY(-5px);
}

.hbtb-room-card .wp-block-image {
	margin: 0;
}

/* Dark feature grid (icon-left rows) */
.hbtb-feature-row {
	align-items: flex-start;
	flex-wrap: nowrap;
}

.hbtb-feature-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: var(--wp--preset--color--primary);
}

/* Key selling-point boxes */
.hbtb-sp {
	height: 100%;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.hbtb-sp:hover {
	transform: translateY(-4px);
}

.hbtb-sp-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 60px;
	height: 60px;
	margin: 0 auto 0.25rem;
	border-radius: 50%;
	background: var(--wp--preset--color--base-2);
}

/* Image label badge (amenities) */
.hbtb-img-label {
	display: inline-block;
	border-radius: 0 10px 0 0;
}

/* Pricing cards */
.hbtb-price-card {
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 8px 28px rgba(29, 42, 43, 0.08);
	height: 100%;
}

.hbtb-price-card .wp-block-image {
	margin: 0;
}

.hbtb-price-featured {
	box-shadow: 0 20px 48px rgba(42, 111, 107, 0.3);
	transform: scale(1.04);
}

@media (max-width: 781px) {
	.hbtb-price-featured {
		transform: none;
	}
}

.hbtb-price-list {
	list-style: none;
	margin: 1rem 0;
	padding: 0 1.5rem;
	text-align: center;
}

.hbtb-price-list li {
	padding: 0.5rem 0;
	border-top: 1px solid rgba(29, 42, 43, 0.1);
	font-size: 0.92rem;
}

.hbtb-price-featured .hbtb-price-list li {
	border-top-color: rgba(255, 255, 255, 0.25);
}

/* Deals box */
.hbtb-deals-box {
	box-shadow: 0 20px 50px rgba(29, 42, 43, 0.3);
}

/* Pill / outline button variant */
.wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent;
	border: 2px solid currentColor;
}

/* Mobile sticky call/LINE/book bar */
.hbtb-mobile-bar {
	display: none;
}

@media (max-width: 600px) {
	.hbtb-mobile-bar {
		display: flex;
		position: fixed;
		bottom: 0;
		left: 0;
		right: 0;
		z-index: 200;
		background: var(--wp--preset--color--white);
		border-top: 1px solid var(--wp--preset--color--base-2);
		box-shadow: 0 -4px 16px rgba(29, 42, 43, 0.08);
	}

	.hbtb-mobile-bar a {
		flex: 1;
		text-align: center;
		padding: 0.85rem 0.25rem;
		font-size: 0.85rem;
		font-weight: 600;
		text-decoration: none;
		color: var(--wp--preset--color--contrast);
		border-right: 1px solid var(--wp--preset--color--base-2);
	}

	.hbtb-mobile-bar a:last-child {
		border-right: 0;
		background: var(--wp--preset--color--primary);
		color: var(--wp--preset--color--white);
	}

	body {
		padding-bottom: 56px;
	}
}

/* Contact form */
.hbtb-form {
	display: grid;
	gap: 1rem;
}

.hbtb-form .hbtb-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
}

@media (max-width: 600px) {
	.hbtb-form .hbtb-row {
		grid-template-columns: 1fr;
	}
}

.hbtb-form label {
	display: block;
	font-size: 0.85rem;
	font-weight: 600;
	margin-bottom: 0.3rem;
	color: var(--wp--preset--color--contrast-2);
}

.hbtb-form input,
.hbtb-form select,
.hbtb-form textarea {
	width: 100%;
	padding: 0.7rem 0.85rem;
	border: 1px solid var(--wp--preset--color--base-2);
	border-radius: 6px;
	font: inherit;
	font-size: 0.95rem;
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--contrast);
}

.hbtb-form input:focus,
.hbtb-form select:focus,
.hbtb-form textarea:focus {
	outline: 2px solid var(--wp--preset--color--primary);
	border-color: transparent;
}

.hbtb-form button {
	justify-self: start;
	background: var(--wp--preset--color--primary);
	color: #fff;
	border: 0;
	border-radius: 4px;
	padding: 0.85rem 1.75rem;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}

.hbtb-form button:hover {
	background: var(--wp--preset--color--primary-dark);
}

.hbtb-form-notice {
	padding: 0.85rem 1rem;
	border-radius: 6px;
	margin-bottom: 1rem;
	font-size: 0.95rem;
}

.hbtb-form-notice.ok {
	background: #e7f1ea;
	color: #1d4f4c;
}

.hbtb-form-notice.err {
	background: #f6e7e7;
	color: #7a2a2a;
}

/* Facilities icon-card grid */
.hbtb-fac-grid {
	gap: 1rem;
}

.hbtb-fac {
	text-align: center;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.hbtb-fac:hover {
	transform: translateY(-3px);
	box-shadow: 0 12px 30px rgba(29, 42, 43, 0.1);
}

.hbtb-fac-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	margin: 0 auto 0.4rem;
	border-radius: 50%;
	background: var(--wp--preset--color--base-2);
}

@media (max-width: 781px) {
	.hbtb-fac-grid {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}

/* Footer: clean lists, readable links */
.hbtb-footer ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.hbtb-footer ul li {
	margin: 0 0 0.55rem;
}

.hbtb-footer a {
	color: var(--wp--preset--color--base-2);
	text-decoration: none;
	transition: color 0.2s ease;
}

.hbtb-footer a:hover {
	color: #fff;
	text-decoration: underline;
}

.hbtb-footer .wp-block-button.is-style-outline a {
	border-color: rgba(255, 255, 255, 0.4);
	color: #fff;
}

.hbtb-footer .wp-block-button.is-style-outline a:hover {
	background: #fff;
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
}

/* Modern line icons */
.hbtb-svg { width: 28px; height: 28px; display: block; }
.hbtb-sp-icon, .hbtb-fac-icon { color: var(--wp--preset--color--primary); }

/* Footer contact list with inline icons */
.hbtb-contact-list {
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: 0.95rem;
}
.hbtb-contact-list li {
	display: flex;
	align-items: flex-start;
	gap: 0.6rem;
	margin: 0 0 0.7rem;
	line-height: 1.5;
}
.hbtb-contact-list svg {
	flex: 0 0 auto;
	margin-top: 2px;
	color: var(--wp--preset--color--secondary);
}

/* Hero text readability without a card */
.hbtb-hero .wp-block-cover__inner-container > * {
	text-shadow: 0 2px 18px rgba(0, 0, 0, 0.4);
}
.hbtb-hero .wp-block-button__link {
	text-shadow: none;
}

/* Footer heading spacing (was overlapping lists) */
.hbtb-footer h3,
.hbtb-footer h4 {
	margin-top: 0;
	margin-bottom: 1rem;
}
.hbtb-footer .wp-block-column > :first-child {
	margin-top: 0;
}
.hbtb-footer ul,
.hbtb-footer .hbtb-contact-list {
	margin-top: 0;
}

/* ============ Heritage menu (Kamphaeng Phet / ancient accent) ============ */
.hbtb-header {
	position: sticky;
	background: var(--wp--preset--color--base);
}

/* Laterite + gold top accent bar */
.hbtb-header::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
	background: linear-gradient(90deg,
		var(--wp--preset--color--secondary) 0%,
		var(--wp--preset--color--laterite) 50%,
		var(--wp--preset--color--secondary) 100%);
}

/* Ornament divider under the logo */
.hbtb-ornament {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.8rem;
	width: 220px;
	max-width: 80%;
	margin: 0.1rem auto 0.2rem;
	color: var(--wp--preset--color--laterite);
	font-size: 0.85rem;
	line-height: 1;
}
.hbtb-ornament::before,
.hbtb-ornament::after {
	content: "";
	flex: 1;
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--wp--preset--color--secondary));
}
.hbtb-ornament::after {
	background: linear-gradient(90deg, var(--wp--preset--color--secondary), transparent);
}

/* Diamond separators between nav links */
.hbtb-nav .wp-block-navigation-item {
	position: relative;
}
.hbtb-nav .wp-block-navigation-item + .wp-block-navigation-item::before {
	content: "\2756";
	position: absolute;
	left: -1.35rem;
	top: 50%;
	transform: translateY(-50%);
	font-size: 0.5rem;
	color: var(--wp--preset--color--secondary);
	opacity: 0.7;
}

/* Heritage accent: active + hover use laterite */
.hbtb-nav .wp-block-navigation-item a::after {
	background: var(--wp--preset--color--laterite);
}
.hbtb-nav .current-nav a,
.hbtb-nav a[aria-current="page"] {
	color: var(--wp--preset--color--laterite);
}
.hbtb-nav .wp-block-navigation-item a:hover {
	color: var(--wp--preset--color--laterite);
}

/* ============ Heritage accents site-wide ============ */

/* Ancient diamond divider under centered section headings */
h2.wp-block-heading.has-text-align-center::after {
	content: "\2756";
	display: block;
	margin: 0.7rem auto 0;
	font-size: 0.7rem;
	color: var(--wp--preset--color--laterite);
	opacity: 0.9;
}

/* Inner page header (cover) titles get an ornament too (not the home hero) */
.wp-block-cover:not(.hbtb-hero) h1.wp-block-heading::after {
	content: "\2756";
	display: block;
	margin: 0.6rem auto 0;
	font-size: 0.7rem;
	color: var(--wp--preset--color--secondary);
}

/* Warm laterite icon chips */
.hbtb-sp-icon,
.hbtb-fac-icon {
	background: rgba(156, 90, 60, 0.1);
	color: var(--wp--preset--color--laterite);
	border: 1px solid rgba(156, 90, 60, 0.2);
}

/* Cards: subtle laterite top accent on hover */
.wp-block-group.is-style-card {
	border-top: 2px solid transparent;
	transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
}
.wp-block-group.is-style-card:hover {
	border-top-color: var(--wp--preset--color--laterite);
}

/* Eyebrow labels lean heritage (warm) */
.hbtb-hero-eyebrow {
	color: var(--wp--preset--color--secondary) !important;
}

/* Section eyebrow (small uppercase green) -> laterite tone */
.has-primary-color.has-text-color[style*="letter-spacing"] {
	color: var(--wp--preset--color--laterite) !important;
}

/* Footer top edge: gold/laterite accent line */
.hbtb-footer {
	border-top: 3px solid var(--wp--preset--color--laterite);
}

/* ===== Book Now button in the menu bar (heritage pill) ===== */
.hbtb-nav .wp-block-button__link {
	background: linear-gradient(135deg, var(--wp--preset--color--primary) 0%, var(--wp--preset--color--primary-dark) 100%);
	color: #fff;
	border-radius: 999px;
	padding: 0.7rem 1.6rem;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	border: 1px solid rgba(255, 255, 255, 0.25);
	box-shadow: 0 6px 18px rgba(58, 122, 43, 0.35);
	transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}
.hbtb-nav .wp-block-button__link:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 24px rgba(58, 122, 43, 0.45);
	background: linear-gradient(135deg, var(--wp--preset--color--primary-dark) 0%, var(--wp--preset--color--primary) 100%);
}

/* Distance-from-hotel line on attraction cards */
.hbtb-dist {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0 1.5rem;
	margin: 0 0 0.5rem;
	color: var(--wp--preset--color--laterite);
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.3px;
}
.hbtb-dist .hbtb-svg,
.hbtb-dist svg {
	width: 15px;
	height: 15px;
	flex: 0 0 auto;
}

/* Uniform attraction/card image heights (crop portrait shots) */
.is-style-card .wp-block-image img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

/* Directions link in distance line */
.hbtb-dist a {
	color: var(--wp--preset--color--primary);
	text-decoration: underline;
}
.hbtb-dist a:hover { color: var(--wp--preset--color--primary-dark); }

/* ===== Booking card (redesigned hero phone bar) ===== */
.hbtb-booking-bar {
	background: transparent !important;
	box-shadow: none !important;
	border-radius: 0 !important;
	padding: 0 !important;
	margin-top: -3rem;
}
@media (max-width: 781px) { .hbtb-booking-bar { margin-top: -2rem; } }

.hbtb-bookcard {
	display: flex;
	align-items: center;
	gap: 1.25rem;
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--base-2);
	border-top: 3px solid var(--wp--preset--color--laterite);
	border-radius: 14px;
	padding: 1.1rem 1.6rem;
	box-shadow: 0 20px 45px rgba(29, 42, 43, 0.18);
}

.hbtb-bookcard-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: rgba(156, 90, 60, 0.12);
	color: var(--wp--preset--color--laterite);
}
.hbtb-bookcard-icon .hbtb-svg { width: 24px; height: 24px; }

.hbtb-bookcard-text {
	display: flex;
	flex-direction: column;
	line-height: 1.2;
	margin-right: auto;
}
.hbtb-bookcard-label {
	font-size: 0.72rem;
	text-transform: uppercase;
	letter-spacing: 2px;
	color: var(--wp--preset--color--contrast-2);
}
.hbtb-bookcard-num {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.6rem;
	font-weight: 700;
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
}
.hbtb-bookcard-num:hover { color: var(--wp--preset--color--laterite); }

.hbtb-bookcard-actions { display: flex; gap: 0.6rem; flex: 0 0 auto; }
.hbtb-bookcard-btn {
	background: var(--wp--preset--color--primary);
	color: #fff;
	border-radius: 999px;
	padding: 0.6rem 1.3rem;
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.5px;
	text-decoration: none;
	white-space: nowrap;
	transition: background 0.2s ease, transform 0.2s ease;
}
.hbtb-bookcard-btn:hover { background: var(--wp--preset--color--primary-dark); transform: translateY(-2px); }
.hbtb-bookcard-btn--line {
	background: transparent;
	color: var(--wp--preset--color--primary);
	border: 1.5px solid var(--wp--preset--color--primary);
}
.hbtb-bookcard-btn--line:hover { background: var(--wp--preset--color--primary); color: #fff; }

@media (max-width: 640px) {
	.hbtb-bookcard { flex-wrap: wrap; justify-content: center; text-align: center; }
	.hbtb-bookcard-text { margin-right: 0; align-items: center; }
	.hbtb-bookcard-actions { width: 100%; justify-content: center; }
}

/* ===== Welcome section redesign ===== */
.hbtb-welcome-gallery {
	position: relative;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
	padding: 12px;
	background: transparent;
	border: 1px solid var(--wp--preset--color--laterite);
	border-radius: 18px;
}
.hbtb-welcome-gallery figure {
	margin: 0;
	position: relative;
}
.hbtb-welcome-gallery img {
	width: 100%;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	display: block;
	border-radius: 10px;
	cursor: zoom-in;
}
.hbtb-welcome-gallery figure.has-more::after {
	content: attr(data-more) " more";
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(15, 22, 23, 0.55);
	color: #fff;
	font-weight: 700;
	border-radius: 10px;
	cursor: zoom-in;
}
.hbtb-welcome-badge {
	position: absolute;
	z-index: 2;
	right: -6px;
	bottom: 26px;
	background: var(--wp--preset--color--laterite);
	color: #fff;
	border-radius: 10px;
	padding: 0.6rem 1rem;
	line-height: 1.1;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.05rem;
	box-shadow: 0 10px 24px rgba(156, 90, 60, 0.4);
}
.hbtb-welcome-badge strong {
	display: block;
	font-size: 0.65rem;
	font-weight: 600;
	letter-spacing: 2px;
	text-transform: uppercase;
	opacity: 0.85;
	font-family: var(--wp--preset--font-family--body);
}

.hbtb-welcome-feats {
	display: flex;
	flex-wrap: wrap;
	gap: 1.25rem;
	margin-top: 1.5rem;
}
.hbtb-welcome-feats span {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--wp--preset--color--contrast);
}
.hbtb-welcome-feats .hbtb-svg {
	width: 22px;
	height: 22px;
	color: var(--wp--preset--color--laterite);
}

/* ===== Section galleries (auto from folders) ===== */
.hbtb-gal {
	display: grid;
	grid-template-columns: repeat(var(--gal-cols, 2), 1fr);
	gap: 12px;
}
.hbtb-gal figure { margin: 0; position: relative; }
.hbtb-gal img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 12px;
	box-shadow: 0 8px 22px rgba(29, 42, 43, 0.1);
	display: block;
	cursor: zoom-in;
}
.hbtb-gal figure.has-more::after {
	content: attr(data-more) " more";
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(15, 22, 23, 0.55);
	color: #fff;
	font-weight: 700;
	font-size: 1.1rem;
	border-radius: 12px;
	cursor: zoom-in;
	transition: background 0.2s ease;
}
.hbtb-gal figure.has-more:hover::after { background: rgba(15, 22, 23, 0.7); }
.hbtb-gal-1 img { aspect-ratio: 4 / 3; }
/* odd last image spans full width in 2-col galleries */
.hbtb-gal-3 figure:nth-child(3),
.hbtb-gal-5 figure:nth-child(5),
.hbtb-gal-7 figure:nth-child(7) { grid-column: 1 / -1; aspect-ratio: 16 / 7; }

/* ===== Crossfade photo frame (hover/auto) ===== */
.hbtb-swap {
	position: relative;
	aspect-ratio: 4 / 3;
	border-radius: 14px;
	overflow: hidden;
	box-shadow: 0 12px 32px rgba(29, 42, 43, 0.16);
}
.hbtb-swap img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0;
	transform: scale(1.06);
	transition: opacity 0.9s ease, transform 5s ease;
}
.hbtb-swap img.is-active {
	opacity: 1;
	transform: scale(1);
}
.hbtb-swap-dots {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 12px;
	display: flex;
	justify-content: center;
	gap: 7px;
	z-index: 2;
}
.hbtb-swap-dots span {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.55);
	cursor: pointer;
	transition: background 0.2s ease, transform 0.2s ease;
}
.hbtb-swap-dots span.is-active {
	background: #fff;
	transform: scale(1.3);
}

/* ===== Lightbox ===== */
.hbtb-lb {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(15, 22, 23, 0.92);
	padding: 4vmin;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s ease, visibility 0.3s ease;
}
.hbtb-lb.is-open { opacity: 1; visibility: visible; }
.hbtb-lb img {
	max-width: 92vw;
	max-height: 90vh;
	border-radius: 10px;
	box-shadow: 0 30px 80px rgba(0, 0, 0, 0.6);
	opacity: 0;
	transform: scale(0.96);
	transition: opacity 0.35s ease, transform 0.35s ease;
}
.hbtb-lb.is-open img.is-ready { opacity: 1; transform: scale(1); }

/* ===== Scroll reveal ===== */
.hbtb-reveal {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity 0.7s ease, transform 0.7s ease;
}
.hbtb-reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	.hbtb-reveal { opacity: 1; transform: none; transition: none; }
}
.hbtb-lb button {
	position: absolute;
	background: rgba(255, 255, 255, 0.12);
	color: #fff;
	border: 0;
	cursor: pointer;
	border-radius: 50%;
	transition: background 0.2s ease;
}
.hbtb-lb button:hover { background: rgba(255, 255, 255, 0.28); }
.hbtb-lb-close {
	top: 3vmin;
	right: 3vmin;
	width: 46px;
	height: 46px;
	font-size: 1.8rem;
	line-height: 1;
}
.hbtb-lb-prev,
.hbtb-lb-next {
	top: 50%;
	transform: translateY(-50%);
	width: 54px;
	height: 54px;
	font-size: 2rem;
	line-height: 1;
}
.hbtb-lb-prev { left: 3vmin; }
.hbtb-lb-next { right: 3vmin; }

/* Bigger EV swap frame */
.hbtb-swap-lg .hbtb-swap {
	aspect-ratio: 3 / 2;
	box-shadow: 0 18px 44px rgba(0, 0, 0, 0.25);
}

/* Clickable room cards */
.hbtb-room-card { position: relative; }
.hbtb-card-link { position: absolute; inset: 0; z-index: 4; }
.hbtb-card-link:focus-visible { outline: 2px solid var(--wp--preset--color--primary); outline-offset: 3px; }

/* Anchor offset for sticky header */
.hbtb-anchor { scroll-margin-top: 150px; }

/* Attraction card swap fits card top */
.hbtb-attr-media .hbtb-swap {
	aspect-ratio: 4 / 3;
	border-radius: 12px 12px 0 0;
	box-shadow: none;
}

/* ===== Mobile fixes ===== */
@media (max-width: 600px) {
	.hbtb-hero h1 { font-size: 2.1rem !important; line-height: 1.12 !important; }
	.hbtb-hero .hbtb-hero-eyebrow { letter-spacing: 2px !important; }
	.hbtb-bookcard { flex-direction: column; text-align: center; gap: 0.75rem; padding: 1.1rem; }
	.hbtb-bookcard-text { align-items: center; }
	.hbtb-bookcard-actions { width: 100%; justify-content: center; }
	.hbtb-welcome-feats { justify-content: center; }
	.hbtb-deals-box { padding: 1.5rem !important; }
}

/* LINE/brand logo in lists + social row */
.hbtb-contact-list .hbtb-li-logo {
	width: 18px; height: 18px; flex: 0 0 auto;
	margin-top: 2px; border-radius: 4px;
}
.hbtb-social-row { display: flex; align-items: center; gap: 1rem; }
.hbtb-social-row a { color: var(--wp--preset--color--primary); display: inline-flex; align-items: center; line-height: 0; transition: transform 0.2s ease; }
.hbtb-social-row a:hover { transform: translateY(-2px); }
.hbtb-social-row a svg { width: 26px; height: 26px; display: block; }
.hbtb-social-row a img { width: 26px; height: 26px; display: block; border-radius: 6px; }

/* Footer contact list — editable List block with themed icons */
.hbtb-footer .hbtb-contact-list { list-style: none; margin: 0; padding: 0; }
.hbtb-footer .hbtb-contact-list li {
	position: relative;
	padding-left: 28px;
	margin: 0 0 0.6rem;
	line-height: 1.5;
}
/* green mask icons (match LINE brand color) */
.hbtb-footer .hbtb-contact-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 3px;
	width: 18px;
	height: 18px;
	background-color: var(--wp--preset--color--primary);
	-webkit-mask: var(--ic) center / contain no-repeat;
	mask: var(--ic) center / contain no-repeat;
}
.hbtb-ic-phone { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13.83 16.57a1 1 0 0 0 1.21-.3l.36-.47A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.47.35a1 1 0 0 0-.29 1.23 14 14 0 0 0 6.39 6.39'/%3E%3C/svg%3E"); }
.hbtb-ic-mail { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='20' height='16' x='2' y='4' rx='2'/%3E%3Cpath d='m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7'/%3E%3C/svg%3E"); }
.hbtb-ic-pin { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 4.99-5.54 10.19-7.4 11.8a1 1 0 0 1-1.2 0C9.54 20.19 4 14.99 4 10a8 8 0 0 1 16 0'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E"); }
.hbtb-ic-line { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M19.365 9.863c.349 0 .63.285.63.631 0 .345-.281.63-.63.63H17.61v1.125h1.755c.349 0 .63.283.63.63 0 .344-.281.629-.63.629h-2.386c-.345 0-.627-.285-.627-.629V8.108c0-.345.282-.63.63-.63h2.386c.346 0 .627.285.627.63 0 .349-.281.63-.63.63H17.61v1.125h1.755zm-3.855 3.016c0 .27-.174.51-.432.596-.064.021-.133.031-.199.031-.211 0-.391-.09-.51-.25l-2.443-3.317v2.94c0 .344-.279.629-.631.629-.346 0-.626-.285-.626-.629V8.108c0-.27.173-.51.43-.595.06-.023.136-.033.194-.033.195 0 .375.104.495.254l2.462 3.33V8.108c0-.345.282-.63.63-.63.345 0 .63.285.63.63v4.771zm-5.741 0c0 .344-.282.629-.631.629-.345 0-.627-.285-.627-.629V8.108c0-.345.282-.63.63-.63.346 0 .628.285.628.63v4.771zm-2.466.629H4.917c-.345 0-.63-.285-.63-.629V8.108c0-.345.285-.63.63-.63.348 0 .63.285.63.63v4.141h1.756c.348 0 .629.283.629.63 0 .344-.281.629-.629.629M24 10.314C24 4.943 18.615.572 12 .572S0 4.943 0 10.314c0 4.811 4.27 8.842 10.035 9.608.391.082.923.258 1.058.59.12.301.079.766.038 1.08l-.164 1.02c-.045.301-.24 1.186 1.049.645 1.291-.539 6.916-4.078 9.436-6.975C23.176 14.393 24 12.458 24 10.314'/%3E%3C/svg%3E"); }

/* Rooms availability note (callout) */
.hbtb-note {
	display: flex;
	align-items: center;
	gap: 1rem;
	flex-wrap: wrap;
	background: var(--wp--preset--color--base-2);
	border-left: 4px solid var(--wp--preset--color--laterite);
	border-radius: 12px;
	padding: 1.25rem 1.5rem;
}
.hbtb-note-ic {
	display: flex; align-items: center; justify-content: center;
	flex: 0 0 auto; width: 44px; height: 44px;
	border-radius: 50%;
	background: rgba(156, 90, 60, 0.12);
	color: var(--wp--preset--color--laterite);
}
.hbtb-note-ic .hbtb-svg { width: 22px; height: 22px; }
.hbtb-note p { margin: 0; flex: 1 1 260px; color: var(--wp--preset--color--contrast); }
.hbtb-note-btn {
	flex: 0 0 auto;
	background: var(--wp--preset--color--primary);
	color: #fff;
	border-radius: 999px;
	padding: 0.6rem 1.4rem;
	font-weight: 700;
	font-size: 0.85rem;
	text-decoration: none;
	white-space: nowrap;
	transition: background 0.2s ease, transform 0.2s ease;
}
.hbtb-note-btn:hover { background: var(--wp--preset--color--primary-dark); transform: translateY(-2px); }
@media (max-width: 600px) { .hbtb-note { flex-direction: column; text-align: center; } .hbtb-note p { flex-basis: auto; } }
