/*
Theme Name:   StayHub Child
Theme URI:    https://stayhub.local
Description:  Theme con của Blocksy cho hệ thống đặt phòng StayHub. Tối ưu cho GreenShift Builder + GreenShift Query.
Author:       StayHub
Template:     blocksy
Version:      1.0.0
Text Domain:  stayhub-child
*/

:root {
	--theme-font-family: 'Be Vietnam Pro', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
	--theme-headings-font-family: 'Be Vietnam Pro', sans-serif;
	--sh-accent: #f97316;
}

body {
	font-family: var(--theme-font-family);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
h1, h2, h3, h4, h5, h6 { letter-spacing: -0.015em; }

/* --------------------------------------------------------------------------
   Header Blocksy
   -------------------------------------------------------------------------- */
[data-header*="type-1"] .ct-header [data-row*="middle"] {
	box-shadow: 0 1px 0 rgba(11, 31, 51, .06);
}
.ct-header .site-title a { font-weight: 800; letter-spacing: -.03em; color: var(--theme-palette-color-1); }
.ct-header [data-id="menu"] > ul > li > a { font-weight: 600; }

/* Trang chủ: header trong suốt nổi trên hero */
.home #header [data-row*="middle"] { background: rgba(255, 255, 255, .92); backdrop-filter: saturate(160%) blur(12px); }

/* --------------------------------------------------------------------------
   Sections trang chủ (core Group + class)
   -------------------------------------------------------------------------- */
:root { --sh-wrap: 1250px; --sh-gutter: clamp(16px, 4vw, 32px); }
body { overflow-x: clip; } /* tránh thanh cuộn ngang do các khối tràn 100vw */

.wp-block-stayhub-hero { margin-top: 0 !important; }
.wp-block-stayhub-hero.alignfull, .home .entry-content > .wp-block-stayhub-hero { box-sizing: border-box; width: 100vw !important; max-width: 100vw !important; margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important; }

/* Section tràn toàn màn hình, nội dung căn giữa trong khung 1250px */
.sh-home-section {
	box-sizing: border-box;
	width: 100vw; max-width: 100vw !important;
	margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important;
	margin-top: 0 !important; margin-bottom: 0 !important;
	padding: clamp(56px, 8vw, 96px) 0;
}
.sh-home-section > * {
	box-sizing: border-box;
	width: min(var(--sh-wrap), 100% - 2 * var(--sh-gutter)) !important;
	max-width: none !important;
	margin-left: auto !important; margin-right: auto !important;
	padding-left: 0 !important; padding-right: 0 !important;
}
.sh-home-section > .sh-section-sub { width: min(640px, 100% - 2 * var(--sh-gutter)) !important; }
.sh-home-section--soft { background: linear-gradient(180deg, #f6f9fa 0%, #fff 100%); }
.sh-eyebrow { display: block; text-align: center; color: var(--theme-palette-color-1); font-weight: 700; text-transform: uppercase; letter-spacing: .12em; font-size: 13px !important; margin-bottom: 8px !important; }
.sh-section-title { text-align: center; font-size: clamp(28px, 4vw, 42px) !important; font-weight: 800 !important; margin: 0 auto 12px !important; color: var(--theme-palette-color-4); }
.sh-section-sub { text-align: center; color: #56657a; font-size: 17px; max-width: 640px; margin: 0 auto 40px !important; }
.sh-center { justify-content: center; margin-top: 36px !important; }
.wp-block-button.is-style-outline .wp-block-button__link { border-width: 2px; }

/* Điểm nổi bật (trang chủ website một cơ sở) */
.sh-home-section > .sh-highlights-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; list-style: none; width: min(880px, 100% - 2 * var(--sh-gutter)) !important; margin-top: 8px !important; margin-bottom: 28px !important; }
.sh-highlights-list li { position: relative; margin: 0; padding: 16px 18px 16px 50px; background: #fff; border: 1px solid var(--theme-palette-color-5); border-radius: 14px; font-weight: 600; color: var(--theme-palette-color-4); }
.sh-highlights-list li::before { content: "✦"; position: absolute; left: 18px; top: 50%; transform: translateY(-50%); color: var(--theme-palette-color-1); font-size: 18px; }
.sh-highlights-list + .wp-block-buttons { justify-content: center; }

/* Features */
.sh-features { gap: 22px !important; margin-top: 10px; }
.sh-feature { background: #fff; border: 1px solid var(--theme-palette-color-5); border-radius: 20px; padding: 28px 24px; transition: transform .3s, box-shadow .3s; }
.sh-feature:hover { transform: translateY(-4px); box-shadow: 0 20px 40px -18px rgba(11, 31, 51, .25); }
.sh-feature__icon { display: grid; place-items: center; width: 58px; height: 58px; border-radius: 16px; background: linear-gradient(135deg, #ccfbf1, #e0f2fe); font-size: 28px; margin: 0 0 16px !important; }
.sh-feature h3 { font-size: 19px !important; margin: 0 0 8px !important; }
.sh-feature p:last-child { color: #56657a; margin: 0; font-size: 15px; line-height: 1.6; }

/* CTA */
.sh-home-cta { position: relative; overflow: hidden; box-sizing: border-box; margin: 0 auto clamp(56px, 8vw, 96px) !important; width: min(var(--sh-wrap), 100vw - 2 * var(--sh-gutter)) !important; max-width: none !important; border-radius: 28px; padding: clamp(40px, 6vw, 72px) clamp(24px, 5vw, 64px) !important; background: radial-gradient(circle at 85% 20%, rgba(94, 234, 212, .35), transparent 45%), linear-gradient(135deg, #0b1f33, #0f766e); color: #fff; text-align: center; }
.sh-home-cta h2 { color: #fff !important; }
.sh-home-cta p { color: rgba(255, 255, 255, .85); font-size: 17px; max-width: 640px; margin: 0 auto 24px; }
.sh-home-cta .wp-block-buttons { justify-content: center; }
.sh-home-cta .wp-block-button__link { background: #fff !important; color: #0b1f33 !important; font-weight: 700; padding: 16px 32px; }

/* --------------------------------------------------------------------------
   GreenShift Query Grid (thẻ cơ sở dựng bằng GreenShift)
   -------------------------------------------------------------------------- */
/* Cấu trúc GreenShift: div.gspbgrid_list_builder > ul.sh-gs-grid > li.sh-gs-card */
.sh-home-section .gspbgrid_list_builder { display: block !important; width: 100%; }
ul.sh-gs-grid { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)) !important; gap: 22px; list-style: none; margin: 0 !important; padding: 0 !important; width: 100% !important; }
.sh-gs-card, .sh-gs-item { width: auto !important; min-width: 0; margin: 0 !important; list-style: none; }
.sh-gs-card { position: relative; background: #fff; border-radius: 18px; overflow: hidden; border: 1px solid var(--theme-palette-color-5); display: flex; flex-direction: column; padding-bottom: 18px; transition: transform .3s, box-shadow .3s; }
.sh-gs-card:hover { transform: translateY(-4px); box-shadow: 0 20px 40px -18px rgba(11, 31, 51, .25); }
.sh-gs-card__img, .sh-gs-card .gspb-dynamic-post-image { aspect-ratio: 4 / 3; overflow: hidden; margin-bottom: 14px; }
.sh-gs-card__img img, .sh-gs-card img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sh-gs-card__city { padding: 0 18px; color: var(--theme-palette-color-1); font-weight: 600; font-size: 13px; text-transform: uppercase; letter-spacing: .06em; }
.sh-gs-card__title { padding: 0 18px; margin: 4px 0 8px !important; }
.sh-gs-card h3 { padding: 0 !important; margin: 0 !important; font-size: 18px !important; line-height: 1.35; }
.sh-gs-card h3 a { color: var(--theme-palette-color-4); text-decoration: none; }
.sh-gs-card__price { padding: 0 18px; margin-top: auto; font-weight: 700; color: var(--theme-palette-color-4); }

/* --------------------------------------------------------------------------
   Trang chức năng StayHub (bỏ khoảng trắng thừa của Blocksy)
   -------------------------------------------------------------------------- */
.stayhub-page .entry-header, .stayhub-page--search .page-title { display: none; }
.stayhub-page .ct-container-full[data-vertical-spacing*="top"] { padding-top: 24px; }
.single-stayhub_property #main-container .site-main, .single-stayhub_room #main-container .site-main { background: #fff; }

/* Footer */
.ct-footer { background: #0b1f33; color: rgba(255, 255, 255, .7); }
.ct-footer a { color: rgba(255, 255, 255, .85); }
.ct-footer a:hover { color: #5eead4; }

@media (max-width: 1023px) {
	ul.sh-gs-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	ul.sh-gs-grid > li:last-child:nth-child(odd) { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
	ul.sh-gs-grid { grid-template-columns: 1fr !important; }
	.sh-home-section > .sh-highlights-list { grid-template-columns: 1fr; }
	.sh-home-cta { border-radius: 0; max-width: 100% !important; }
}
