/**
 * Biến global: token bám site gốc (clone) + alias kit Elementor / code cũ.
 * Heading: Playfair Display (site gốc dùng Trajan Pro 3).
 */

:root {
	/* Khung nội dung popup chi tiết phòng (slider + info) */
	--room-detail-modal-max-width: 1440px;

	--font-fallback-generic: sans-serif;

	/* --- Typography (site gốc: Trajan heading — dự án dùng Playfair) --- */
	--font-family-primary: "Trajan Pro 3", var(--font-fallback-generic);
	--font-family-secondary: "Montserrat", var(--font-fallback-generic);
	--font-heading: "Trajan Pro 3", var(--font-fallback-generic);
	--font-body: var(--font-family-secondary);

	--font-weight-primary: 600;
	--font-weight-secondary: 500;
	--font-family-text: var(--font-body);
	--font-weight-text: 400;
	--font-family-accent: var(--font-body);
	--font-weight-accent: 600;
	--text-transform-accent: uppercase;

	/* --- Bảng màu đặt tên theo site gốc --- */
	--color-black: #181819;
	--color-white: #ffffff;
	--color-primary-1: #ffe756;
	--color-primary-2: #d4a734;
	--color-primary-3: #a87439;
	--color-secondary-1: #f9f6ee;
	--color-secondary-2: #f0e8d7;
	--color-gray-1: #f1f0f2;
	--color-gray-2: #000000;
	--color-bg: #f4f4f4;

	/* --- Alias kit / tên cũ (trỏ về token clone) --- */
	--color-primary: var(--color-primary-2);
	--color-secondary: var(--color-secondary-1);
	--color-text: var(--color-black);
	--color-accent: var(--color-white);
	--color-primary-light: var(--color-primary-1);
	--color-primary-dark: var(--color-primary-3);
	--color-text-muted: var(--color-gray-2);
	--color-background: var(--color-bg);
	--color-gray: var(--color-gray-1);
	--color-card-hover: #a874394d;

	/* --- Body / heading / link / button (đồng bộ token) --- */
	--body-color: var(--color-black);
	--body-font-family: var(--font-body);
	--body-font-weight: 500;

	--link-color: var(--color-primary-2);
	--link-font-family: var(--font-body);
	--link-font-weight: 500;

	--heading-1-color: var(--color-secondary-1);
	--heading-1-font-family: var(--font-heading);
	--heading-1-font-weight: 600;

	--heading-2-color: var(--color-secondary-1);
	--heading-2-font-family: var(--font-heading);
	--heading-2-font-weight: 600;

	--heading-3-color: var(--color-primary-2);
	--heading-3-font-family: var(--font-heading);
	--heading-3-font-weight: 600;

	--heading-4-color: var(--color-primary-2);
	--heading-4-font-family: var(--font-heading);
	--heading-4-font-weight: 600;

	--button-font-family: var(--font-heading);
	--button-font-weight: 700;
	--button-text-transform: uppercase;
	--button-text-color: var(--color-white);
	--button-background-color: var(--color-primary-2);
	--button-hover-text-color: var(--color-white);
	--button-hover-background-color: var(--color-secondary-1);
	--button-padding-top: 12px;
	--button-padding-right: 24px;
	--button-padding-bottom: 12px;
	--button-padding-left: 24px;
	--button-border-radius: 8px;

	/* --- Layout (kit) --- */
	--container-width: 1440px;
	--viewport-md: 768px;
	--viewport-lg: 1025px;

	--page-transition-bg: transparent;
}

/* Shortcode [text_arrow_link] — mặc định đen; chỉ hover mới primary-3 (Elementor hay đè màu link) */
a.text-arrow-link,
a.text-arrow-link:link,
a.text-arrow-link:visited {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	cursor: pointer;
	z-index: 2;
	color: var(--color-black) !important;
	text-decoration: none;
	transition: color 0.3s ease;
}

a.text-arrow-link:hover,
a.text-arrow-link:focus-visible {
	color: var(--color-primary-3) !important;
}

.text-arrow-link__icon {
	display: inline-flex;
	line-height: 0;
	transition: transform 0.3s ease;
}

a.text-arrow-link:hover .text-arrow-link__icon,
a.text-arrow-link:focus-visible .text-arrow-link__icon {
	transform: translateX(2px);
}

.text-arrow-link__svg {
	width: 18px;
	height: 14px;
	display: block;
}

.text-arrow-link__text {
	font-family: var(--font-heading);
	font-size: 13px;
	line-height: 15px;
	text-transform: uppercase;
	font-weight: 600;
	color: inherit;
	transition: color 0.3s ease;
	display: inline-block;
}


.card-hover::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    transform: scaleY(0);
    transform-origin: left bottom;
    transition: transform .4s cubic-bezier(0, 0, .58, 1);
    background-color: rgba(168, 116, 57, .3);
    z-index: 1;
}



.card-hover:hover::after {
    transform: scaleY(1);
}

.card-hover .card-image{
	transition: transform .4s cubic-bezier(0, 0, .58, 1);
}

.card-hover:hover .card-image{
	transform: scale(1.1);
}

.card-hover .card-content{
	transition: transform .4s cubic-bezier(0, 0, .58, 1);
}

.card-hover:hover .card-content{
	transform: translateY(-15px);
}

/**
 * Carousel / Swiper trong Loop Grid hoặc cột flex: tránh width phình (vài nghìn px).
 * Flex/grid item mặc định min-width: auto → Swiper đo sai chiều rộng container.
 */
.elementor-widget-loop-grid .e-loop-item,
.elementor-loop-item,
.jet-listing-grid__item {
	min-width: 0;
}

.elementor-widget-image-carousel {
	min-width: 0;
	max-width: 100%;
}

.elementor-widget-image-carousel .elementor-image-carousel-wrapper.swiper {
	width: 100% !important;
	max-width: 100%;
	overflow: hidden;
	box-sizing: border-box;
}

/* Container flex bên trong ô loop / listing — cho co theo cột */
.elementor-widget-loop-grid .e-loop-item .e-con-inner,
.jet-listing-grid__item .e-con-inner {
	min-width: 0;
}

/**
 * FileBird Gallery shortcode (hover zoom, 3 ảnh/1 hàng desktop).
 */
.fbv-library-gallery {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}

@media (max-width: 1024px) {
	.fbv-library-gallery {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.fbv-library-gallery {
		grid-template-columns: repeat(1, minmax(0, 1fr));
	}
}

.fbv-library-gallery__item {
	width: 100%;
	aspect-ratio: 410 / 260;
	border-radius: 12px;
	overflow: hidden;
	cursor: pointer;
}

.fbv-library-gallery__img {
	width: 100%;
	height: 100% !important;
	object-fit: cover;
	transition: transform 0.4s cubic-bezier(0, 0, .58, 1);
	transform: scale(1);
}

.fbv-library-gallery__item:hover .fbv-library-gallery__img {
	transform: scale(1.1);
}