/* =========================================================================
   PN Travel — main stylesheet
   Mobile-first. Breakpoints: 420 / 560 / 700 / 768 / 980 / 1024 / 1400
   ========================================================================= */

:root {
	--pnt-blue-deep: #0A57BC;
	--pnt-blue-bright: #1E88FF;
	--pnt-blue-link: #0A6BE0;
	--pnt-blue-link-hover: #05408C;
	--pnt-teal: #14B8D4;
	--pnt-gold: #FFB020;
	--pnt-gold-light: #FFC94D;
	--pnt-gold-pale: #FFDE8A;
	--pnt-red: #E8452C;
	--pnt-green: #1B9E5A;
	--pnt-green-dark: #1B7A4B;
	--pnt-green-bg: #E9F7EF;
	--pnt-error: #C0392B;
	--pnt-error-bg: #FDECE8;
	--pnt-text: #101B25;
	--pnt-text-2: #0E1C2A;
	--pnt-text-3: #2E3B46;
	--pnt-muted: #55636F;
	--pnt-muted-2: #6C7B89;
	--pnt-muted-3: #8593A1;
	--pnt-muted-4: #9AA7B4;
	--pnt-border: #DDE4EC;
	--pnt-border-2: #EDF1F6;
	--pnt-border-3: #E7ECF2;
	--pnt-bg: #F5F7FA;
	--pnt-bg-input: #F8FAFC;
	--pnt-bg-panel: #F7FAFD;
	--pnt-bg-chip: #EAF2FD;
	--pnt-bg-placeholder: #DCE8F5;
	--pnt-footer-bg: #062C60;
	--pnt-shadow-sm: 0 3px 12px rgba(11,78,162,0.07);
	--pnt-shadow-md: 0 4px 16px rgba(11,78,162,0.08);
	--pnt-shadow-lg: 0 18px 38px rgba(11,78,162,0.16);
	--pnt-container: 1280px;
	letter-spacing: -0.05px !important;
}

/* ---------------------------------------------------------------------- *
 * Reset & base
 * ---------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	background: var(--pnt-bg);
	color: var(--pnt-text);
	font-family: 'Be Vietnam Pro', system-ui, -apple-system, sans-serif;
	font-size: 15px;
	line-height: 1.5;
	overflow-x: clip;
}
img { max-width: 100%; display: block; }
a { color: var(--pnt-blue-link); text-decoration: none; }
a:hover { color: var(--pnt-blue-link-hover); }
button, input, select, textarea { font-family: inherit; font-size: inherit; }
button { cursor: pointer; }
h1, h2, h3, h4, p { margin: 0; }
ul { margin: 0; padding: 0; list-style: none; }
:focus-visible { outline: 2px solid var(--pnt-blue-link); outline-offset: 2px; }

.pnt-container { max-width: var(--pnt-container); margin: 0 auto; padding: 0 clamp(15px, 3vw, 34px); }
.pnt-main { min-height: 40vh; padding-bottom: 50px; }
.home .pnt-main { padding-bottom: 0; }
/* Utility bật/tắt theo thiết bị. Chỉ ép display:none !important đúng lúc cần ẩn —
   lúc cần hiện thì KHÔNG khai báo gì cả, để mỗi component tự dùng display gốc
   của nó (flex, inline-flex, grid…). Cách này tránh việc display:revert bị các
   rule component (đứng sau trong file, VD .pnt-burger{display:grid}) đè ngược lại. */
/* Ẩn (VD: topbar links, nav ngang, nút "Đặt tour ngay" ở header) chỉ khi vừa hẹp
   vừa KHÔNG có chuột/trackpad thật — để PC thu nhỏ cửa sổ vẫn luôn hiện đủ. */
@media (max-width: 979px) and (not ((hover: hover) and (pointer: fine))) {
	.pnt-hide-mobile { display: none !important; }
}
/* Ẩn nút hamburger khi đủ rộng HOẶC là PC/laptop có chuột thật. */
@media (min-width: 980px), (hover: hover) and (pointer: fine) {
	.pnt-show-mobile { display: none !important; }
}

/* ---------------------------------------------------------------------- *
 * Buttons
 * ---------------------------------------------------------------------- */
.pnt-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	border: none; border-radius: 10px; padding: 13px 22px;
	font-weight: 700; font-size: 15px; line-height: 1.2;
	cursor: pointer; transition: transform .15s, box-shadow .2s, background .2s, color .2s;
	text-decoration: none;
}
.pnt-btn--primary {
	background: linear-gradient(120deg, var(--pnt-blue-bright), var(--pnt-blue-deep));
	color: #fff;
	box-shadow: 0 8px 20px rgba(11,78,162,0.28);
}
.pnt-btn--primary:hover { color: #fff; box-shadow: 0 12px 26px rgba(11,78,162,0.36); }
.pnt-btn--pill { border-radius: 999px; }
.pnt-btn--block { width: 100%; }
.pnt-btn--gold { background: var(--pnt-gold); color: var(--pnt-text); border-radius: 10px; padding: 15px 26px; }
.pnt-btn--gold:hover { background: var(--pnt-gold-light); color: var(--pnt-text); }
.pnt-btn--chip {
	background: var(--pnt-bg-chip); color: var(--pnt-blue-deep);
	border-radius: 999px; padding: 9px 16px; font-size: 14px; font-weight: 500; white-space: nowrap;
}
.pnt-btn--chip:hover { background: var(--pnt-blue-deep); color: #fff; }
.swiper-button-prev.pnt-reviews-nav__btn, .swiper-button-next.pnt-reviews-nav__btn{
	display: none !important;
}
/* ---------------------------------------------------------------------- *
 * Topbar
 * ---------------------------------------------------------------------- */
.pnt-topbar { background: var(--pnt-blue-deep); color: rgba(255,255,255,0.92); font-size: 15px; }
.pnt-topbar__inner { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; padding: 9px clamp(15px, 3vw, 34px); }
.pnt-topbar__left { display: flex; gap: 22px; flex-wrap: wrap; align-items: center; }
.pnt-topbar__phone { font-weight: 600; }
.pnt-topbar__phone a, .pnt-topbar__email { color: inherit; }
.pnt-topbar__right { margin-left: auto; display: flex; gap: 20px; align-items: center; flex-wrap: wrap; }
.pnt-topbar__links { display: flex; gap: 20px; align-items: center; }
.pnt-topbar__links a { color: inherit; }
.pnt-topbar__links a:hover { color: #fff; }

/* Nút chuyển ngôn ngữ — render bởi plugin GTranslate ([gt-link]/[gtranslate] shortcode),
   CSS bên dưới chỉ định dạng lại cho khớp giao diện pill VI/EN gốc. */
.pnt-lang-toggle {
	display: flex; flex: none; align-items: center; border: 1px solid rgba(255,255,255,0.32); border-radius: 999px;
	overflow: hidden; font-weight: 700; font-size: 15px;
}
.pnt-lang-toggle .gtranslate_wrapper { display: contents; }
.pnt-lang-toggle [id^="google_translate_element"] { display: none; }
.pnt-lang-toggle a.glink { padding: 7px 14px; color: #fff; text-decoration: none; cursor: pointer; }
.pnt-lang-toggle a.glink.gt-current-lang { color: var(--pnt-blue-deep); background: #fff; }
.pnt-lang-toggle a.glink:not(.gt-current-lang):hover { color: rgba(255,255,255,0.7); }

/* ---------------------------------------------------------------------- *
 * Header + nav
 * ---------------------------------------------------------------------- */
.pnt-header {
	position: -webkit-sticky; position: sticky; top: 0; z-index: 45;
	background: rgba(255,255,255,0.97); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
	box-shadow: 0 2px 14px rgba(11,78,162,0.08);
	transition: box-shadow .2s;
}
.pnt-header.is-scrolled { box-shadow: 0 6px 22px rgba(11,78,162,0.16); }
.pnt-header__inner { display: flex; align-items: center; gap: 18px; padding-top: 12px; padding-bottom: 12px; transition: padding .2s; }
.pnt-header.is-scrolled .pnt-header__inner { padding-top: 8px; padding-bottom: 8px; }

.pnt-brand { display: flex; align-items: center; gap: 11px; flex: none; }
.pnt-brand__logo img { max-height: clamp(44px, 8vw, 56px); width: auto; display: block; }
.pnt-brand__logo--drawer { margin-right: auto; }
.pnt-brand__logo--drawer img { max-height: 40px; }

.pnt-nav { margin: 0 auto; }
.pnt-nav__list { display: flex; align-items: center; gap: 2px; flex-wrap: wrap; }
.pnt-nav__link {
	display: inline-flex; padding: 9px 13px; border-radius: 8px;
	font-size: 15px; font-weight: 600; white-space: nowrap; color: var(--pnt-text-3);
	border-bottom: 2px solid transparent;
}
.pnt-nav__link:hover { color: var(--pnt-blue-link); }
.pnt-nav__link.is-active { color: var(--pnt-blue-link); border-bottom-color: var(--pnt-blue-link); }

.pnt-header__actions { display: flex; align-items: center; gap: 10px; flex: none; }
/* Khi nav ngang bị ẩn (mobile/tablet cảm ứng hẹp), không còn margin:auto của .pnt-nav
   để đẩy khối nút sang phải nữa — phải tự đẩy lấy, chỉ áp dụng đúng lúc này để
   không phá vị trí canh giữa nav trên desktop (nav vẫn tự đẩy actions ra mép nhờ
   margin:0 auto của chính nó). */
@media (max-width: 979px) and (not ((hover: hover) and (pointer: fine))) {
	.pnt-header__actions { margin-left: auto; }
}
.pnt-burger {
	width: 46px; height: 46px; border: 1px solid var(--pnt-border); border-radius: 12px;
	display: grid; place-items: center; background: #fff; color: var(--pnt-blue-deep);
}
.pnt-burger__icon, .pnt-burger__icon::before, .pnt-burger__icon::after {
	content: ''; display: block; width: 18px; height: 2px; background: currentColor; border-radius: 2px;
}
.pnt-burger__icon { position: relative; }
.pnt-burger__icon::before { position: absolute; top: -6px; left: 0; }
.pnt-burger__icon::after { position: absolute; top: 6px; left: 0; }

/* ---------------------------------------------------------------------- *
 * Drawer di động
 * ---------------------------------------------------------------------- */
.pnt-drawer[hidden] { display: none; }
.pnt-drawer__overlay {
	position: fixed; inset: 0; z-index: 50; background: rgba(6,44,96,0.5); -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px);
	animation: pntFade .22s ease;
}
.pnt-drawer__panel {
	position: fixed; top: 0; right: 0; bottom: 0; z-index: 51; width: min(330px, 86vw);
	background: #fff; box-shadow: -16px 0 46px rgba(6,44,96,0.28);
	display: flex; flex-direction: column; overflow-y: auto; -webkit-overflow-scrolling: touch;
	animation: pntSlideIn .3s cubic-bezier(.22,.72,.25,1) both;
}
.pnt-drawer__head { display: flex; align-items: center; gap: 12px; padding: 16px 16px 14px; border-bottom: 1px solid var(--pnt-border-2); }
.pnt-drawer__brand { font-size: 15.5px; font-weight: 600; color: var(--pnt-blue-deep); letter-spacing: -0.02em; margin-right: auto; }
.pnt-drawer__close {
	width: 40px; height: 40px; border-radius: 12px; background: var(--pnt-bg-panel); border: none;
	display: grid; place-items: center; font-size: 15.5px; color: var(--pnt-blue-deep); flex: none;
}
.pnt-drawer__nav { padding: 10px 12px; }
.pnt-drawer__list { display: grid; gap: 2px; }
.pnt-drawer__list .pnt-nav__link { display: block; padding: 15px 14px; border-radius: 12px; }
.pnt-drawer__list .pnt-nav__link.is-active { background: var(--pnt-bg-chip); border-bottom-color: transparent; }
.pnt-drawer__foot { margin-top: auto; padding: 16px 16px calc(20px + env(safe-area-inset-bottom)); border-top: 1px solid var(--pnt-border-2); display: grid; gap: 14px; }
.pnt-drawer__hotline { font-size: 15px; color: var(--pnt-muted); text-align: center; }
.pnt-drawer__hotline a { color: var(--pnt-blue-deep); font-weight: 700; }
.pnt-lang-toggle--drawer { width: fit-content; margin: 0 auto; border-color: var(--pnt-border); }
.pnt-lang-toggle--drawer a.glink { padding: 9px 18px; color: var(--pnt-muted); }
.pnt-lang-toggle--drawer a.glink.gt-current-lang { color: #fff; background: var(--pnt-blue-deep); }
.pnt-lang-toggle--drawer a.glink:not(.gt-current-lang):hover { color: var(--pnt-text); }

@keyframes pntFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes pntSlideIn { from { transform: translateX(100%); } to { transform: translateX(0); } }
@keyframes pntUp { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@keyframes pntPulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(255,255,255,0.55); } 70% { box-shadow: 0 0 0 12px rgba(255,255,255,0); } }

/* ---------------------------------------------------------------------- *
 * Section scaffolding dùng chung
 * ---------------------------------------------------------------------- */
.pnt-section { padding: clamp(44px, 6vw, 72px) 0 0; }
.pnt-section--tight { padding-top: 26px; }
.pnt-section--white { background: #fff; padding-bottom: clamp(44px, 6vw, 72px); margin-top: clamp(44px, 6vw, 72px); }
.pnt-section__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 24px; }
.pnt-section__intro { max-width: 640px; margin-bottom: clamp(24px, 3vw, 34px); }
.pnt-section__intro--center { max-width: none; text-align: center; margin-left: auto; margin-right: auto; }
.pnt-section__title { font-size: clamp(24px, 3.2vw, 32px); font-weight: 600; letter-spacing: -0.02em; }
.pnt-section__title--md { font-size: clamp(23px, 3vw, 32px); }
.pnt-section__sub { margin: 14px 0 0; font-size: 15px; color: var(--pnt-muted); line-height: 1.7; }
.pnt-section__rule { width: 58px; height: 4px; border-radius: 999px; margin: 14px 0 0; background: linear-gradient(90deg, var(--pnt-blue-bright), var(--pnt-teal)); }
.pnt-section__rule--teal { background: linear-gradient(90deg, #1B86EF, var(--pnt-teal)); }
.pnt-section__rule--gold { background: linear-gradient(90deg, var(--pnt-gold), var(--pnt-gold-pale)); }
.pnt-section__rule--center { margin-left: auto; margin-right: auto; }
.pnt-section__viewall { font-size: 15px; font-weight: 700; color: var(--pnt-blue-link); }

/* ---------------------------------------------------------------------- *
 * Hero
 * ---------------------------------------------------------------------- */
.pnt-hero {
	position: relative; color: #fff; overflow: hidden;
	background-size: cover; background-position: center; background-repeat: no-repeat;
}
.pnt-hero__grid {
	position: relative; display: grid; gap: clamp(26px, 4vw, 48px);
	grid-template-columns: 1fr; align-items: start;
	padding-top: clamp(40px, 6vw, 76px); padding-bottom: clamp(40px, 6vw, 76px);
}
@media (min-width: 980px) {
	.pnt-hero__grid { grid-template-columns: minmax(0, 1.55fr) minmax(300px, 1fr); }
}
.pnt-hero__intro { min-width: 0; animation: pntUp .6s ease both; }
.pnt-hero__title { font-size: clamp(34px, 5.4vw, 60px); line-height: 1.05; font-weight: 600; margin: 0 0 6px; letter-spacing: -0.03em; }
.pnt-hero__title2 { font-family: 'Playfair Display', serif; font-style: italic; font-size: clamp(24px, 3.6vw, 40px); color: var(--pnt-gold-light); margin-bottom: 22px; }
.pnt-hero__text { font-size: clamp(15px, 1.5vw, 17px); line-height: 1.7; color: rgba(255,255,255,0.9); margin: 0 0 30px; max-width: 520px; }

.pnt-hero__search {
	background: rgba(255,255,255,0.13); border: 1px solid rgba(255,255,255,0.24);
	border-radius: 16px; padding: 14px; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
	display: flex; flex-wrap: wrap; gap: 10px; align-items: end;
}
.pnt-hero__search-field { display: grid; gap: 5px; min-width: 0; flex: 1 1 200px; }
.pnt-hero__search-field span { font-size: 15px; font-weight: 600; color: rgba(255,255,255,0.86); }
.pnt-hero__search-field select,
.pnt-hero__search-field input {
	width: 100%; min-width: 0; padding: 0 13px; height: 42px; border: none; border-radius: 10px;
	font-size: 16px; background: #fff; color: var(--pnt-text); -webkit-appearance: none; appearance: none;
}
.pnt-hero__search-btn {
	flex: none; height: 42px; padding: 0 26px; border: none; border-radius: 10px; background: var(--pnt-gold);
	color: var(--pnt-text); font-weight: 700; font-size: 15px;
}
.pnt-hero__search-btn:hover { background: var(--pnt-gold-light); }
@media (max-width: 575px) {
	.pnt-hero__search { flex-direction: column; align-items: stretch; }
	.pnt-hero__search-field { flex: none; width: 100%; }
	.pnt-hero__search-btn { flex: none; width: 100%; margin-top: 4px; }
}

.pnt-hero__perks { display: grid; gap: 18px 22px; grid-template-columns: 1fr; margin-top: 26px; }
@media (min-width: 420px) { .pnt-hero__perks { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.pnt-hero__perk { display: flex; gap: 11px; align-items: flex-start; }
.pnt-hero__perk-icon { width: 30px; height: 30px; border-radius: 9px; background: rgba(255,255,255,0.22); flex: none; display: grid; place-items: center; }
.pnt-hero__perk-title { font-size: 16.5px; font-weight: 600; letter-spacing: -0.01em; margin-bottom: 4px; }
.pnt-hero__perk-text { font-size: 15px; line-height: 1.5; color: rgba(255,255,255,0.78); }

.pnt-hero__card {
	background: #fff; border-radius: 16px; padding: clamp(18px, 2.4vw, 26px);
	box-shadow: 0 22px 50px rgba(5,42,90,0.28); color: var(--pnt-text); min-width: 0;
}
.pnt-hero__card-title { font-size: 18.5px; font-weight: 600; margin-bottom: 6px; }
.pnt-hero__card-text { margin: 0 0 18px; font-size: 15px; line-height: 1.6; color: var(--pnt-muted); }
.pnt-hero__divider { display: flex; align-items: center; gap: 10px; margin: 18px 0; }
.pnt-hero__divider span:not(.pnt-hero__divider-text) { height: 1px; background: var(--pnt-border-3); flex: 1; }
.pnt-hero__divider-text { font-size: 15px; color: var(--pnt-muted-3); white-space: nowrap; }
.pnt-hero__channels { display: grid; gap: 10px; }
.pnt-hero__channel {
	padding: 13px 16px; border-radius: 10px; color: #fff; font-weight: 700; font-size: 15px;
	display: flex; align-items: center; justify-content: space-between;
}
.pnt-hero__channel:hover { color: #fff; filter: brightness(1.05); }
.pnt-hero__channel--call { background: #17B96B; }
.pnt-hero__channel--whatsapp { background: #25D366; }
.pnt-hero__channel--line { background: #06C755; }
.pnt-hero__always { margin-top: 16px; font-size: 15px; color: var(--pnt-muted-3); text-align: center; }

/* ---------------------------------------------------------------------- *
 * Subscribe form (hero card + cta band)
 * ---------------------------------------------------------------------- */
.pnt-subscribe-form__input { width: 100%; min-width: 0; padding: 0 13px; height: 42px; border: 1px solid var(--pnt-border); border-radius: 10px; font-size: 16px; background: var(--pnt-bg-input); margin-bottom: 10px; }
.pnt-subscribe-form__success { margin-top: 10px; padding: 11px 13px; border-radius: 10px; background: var(--pnt-green-bg); color: var(--pnt-green-dark); font-size: 15px; line-height: 1.5; }

/* ---------------------------------------------------------------------- *
 * Tour cards & grids
 * ---------------------------------------------------------------------- */
.pnt-tour-grid { display: grid; gap: 20px; grid-template-columns: 1fr; }
@media (min-width: 560px) { .pnt-tour-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .pnt-tour-grid--4col { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .pnt-tour-grid--3col { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

.pnt-tour-card {
	background: #fff; border-radius: 14px; overflow: hidden; box-shadow: var(--pnt-shadow-md);
	display: flex; flex-direction: column; transition: transform .2s, box-shadow .2s;
}
.pnt-tour-card:hover { transform: translateY(-5px); box-shadow: var(--pnt-shadow-lg); }
.pnt-tour-card__media {
	height: 180px; background-color: var(--pnt-bg-placeholder); background-size: cover; background-position: center;
	position: relative; display: block;
}
.pnt-tour-card__discount { position: absolute; top: 0; left: 0; padding: 6px 14px; border-radius: 0 0 12px 0; background: var(--pnt-red); color: #fff; font-size: 15px; font-weight: 600; }
.pnt-tour-card__scope { position: absolute; bottom: 12px; left: 12px; padding: 5px 12px; border-radius: 999px; background: rgba(11,78,162,0.88); color: #fff; font-size: 13px; font-weight: 400; }
.pnt-tour-card__body { padding: 16px 18px 18px; display: flex; flex-direction: column; flex: 1; }
.pnt-tour-card__place { font-size: 15px; color: var(--pnt-muted-2); letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 7px; }
.pnt-tour-card__title { font-size: 16px; margin: 0 0 10px; font-weight: 600; line-height: 1.3; letter-spacing: -0.015em; }
.pnt-tour-card__title a { color: inherit; }
.pnt-tour-card__short { font-size: 15px; line-height: 1.6; color: var(--pnt-muted); margin: 0 0 14px; }
.pnt-tour-card__meta { display: flex; gap: 14px; flex-wrap: wrap; font-size: 14px; color: var(--pnt-muted-2); margin-bottom: 14px; }
.pnt-tour-card__meta span { display: inline-flex; align-items: center; gap: 6px; }
.pnt-tour-card__foot { margin-top: auto; }
.pnt-tour-card__price { display: flex; align-items: baseline; gap: 10px; margin-bottom: 8px; }
.pnt-tour-card__price-now { font-size: 18px; font-weight: 600; color: var(--pnt-red); }
.pnt-tour-card__price-old { font-size: 15px; color: var(--pnt-muted-4); text-decoration: line-through; }
.pnt-tour-card__actions { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.pnt-tour-card__rating { font-size: 15px; color: var(--pnt-muted-2); }
.pnt-tour-card__rating .pnt-star { color: var(--pnt-gold); font-weight: 700; }

/* ---------------------------------------------------------------------- *
 * Mosaic (Khám phá theo chủ đề)
 * ---------------------------------------------------------------------- */
.pnt-mosaic { display: grid; gap: 16px; grid-template-columns: 1fr; grid-auto-rows: clamp(180px, 26vw, 220px); }
@media (min-width: 560px) { .pnt-mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 768px) { .pnt-mosaic { grid-template-columns: repeat(12, minmax(0, 1fr)); grid-auto-rows: clamp(170px, 17vw, 215px); } }

.pnt-mosaic__item {
	position: relative; overflow: hidden; border-radius: 16px; display: block;
	background-color: var(--pnt-bg-placeholder); background-size: cover; background-position: center;
	box-shadow: 0 4px 16px rgba(11,78,162,0.1); transition: transform .25s, box-shadow .25s;
}
.pnt-mosaic__item:hover { transform: translateY(-4px); box-shadow: 0 20px 42px rgba(11,78,162,0.22); }
.pnt-mosaic__overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(6,44,96,0.88), rgba(6,44,96,0.12) 62%, rgba(6,44,96,0)); }
.pnt-mosaic__label { position: absolute; left: 18px; right: 18px; bottom: 18px; color: #fff; font-weight: 600; letter-spacing: -0.015em; line-height: 1.2; font-size: 17px; }

@media (min-width: 768px) {
	.pnt-mosaic__item--1 { grid-column: 1 / 6; grid-row: 1 / 3; }
	.pnt-mosaic__item--1 .pnt-mosaic__label { font-size: clamp(22px, 2.3vw, 30px); }
	.pnt-mosaic__item--2 { grid-column: 6 / 10; grid-row: 1 / 2; }
	.pnt-mosaic__item--3 { grid-column: 10 / 13; grid-row: 1 / 2; }
	.pnt-mosaic__item--4 { grid-column: 6 / 9; grid-row: 2 / 3; }
	.pnt-mosaic__item--5 { grid-column: 9 / 13; grid-row: 2 / 3; }
}
@media (max-width: 767px) and (min-width: 560px) {
	.pnt-mosaic__item:last-child:nth-child(odd) { grid-column: 1 / -1; }
}

/* ---------------------------------------------------------------------- *
 * Hoạt động trải nghiệm (trang chủ)
 * ---------------------------------------------------------------------- */
.pnt-experience__subtitle { margin: 8px 0 0; font-size: 15px; font-weight: 600; color: var(--pnt-muted-2); }
.pnt-experience__grid { display: grid; gap: 22px; grid-template-columns: repeat(2, 1fr); align-items: start; }
.pnt-experience__card {
	background: #fff; border-radius: 16px; overflow: hidden;
	box-shadow: 0 4px 14px rgba(11,78,162,0.08); transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.pnt-experience__card:hover { transform: translateY(-4px); box-shadow: 0 16px 32px rgba(11,78,162,0.14); }
.pnt-experience__media { aspect-ratio: 4 / 3; background-size: cover; background-position: center; }
.pnt-experience__label {
	padding: 14px 10px; text-align: center; font-weight: 700; font-size: 15px; color: var(--pnt-blue-deep);
	background: var(--pnt-bg-chip);
}
@media (min-width: 640px) {
	.pnt-experience__grid { grid-template-columns: repeat(4, 1fr); }
}

/* ---------------------------------------------------------------------- *
 * Why us + video teaser
 * ---------------------------------------------------------------------- */
.pnt-why-video { display: grid; gap: clamp(18px, 2.2vw, 24px); grid-template-columns: 1fr; align-items: stretch; }
@media (min-width: 980px) { .pnt-why-video { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); } }

.pnt-why-grid { display: grid; gap: 16px; grid-template-columns: 1fr; }
@media (min-width: 560px) { .pnt-why-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.pnt-why-grid--plain { gap: 20px; }
@media (min-width: 560px) { .pnt-why-grid--plain { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); } }

.pnt-why-card {
	display: flex; flex-direction: column; gap: 12px; padding: 22px 20px; background: #fff;
	border-radius: 14px; box-shadow: 0 4px 14px rgba(11,78,162,0.08); transition: transform .2s, box-shadow .2s;
}
.pnt-why-card:hover { transform: translateY(-3px); box-shadow: 0 16px 32px rgba(11,78,162,0.14); }
.pnt-why-card--plain { background: var(--pnt-bg-panel); box-shadow: none; padding: 22px; }
.pnt-why-card--plain:hover { transform: none; }
.pnt-why-card__icon { width: 42px; height: 42px; border-radius: 12px; background: var(--pnt-bg-chip); display: grid; place-items: center; }
.pnt-why-card--plain .pnt-why-card__icon { width: 36px; height: 36px; margin-bottom: 4px; }
.pnt-why-card__title { font-size: clamp(17px, 1.5vw, 16px); font-weight: 600; line-height: 1.3; letter-spacing: -0.015em; color: var(--pnt-text-2); }
.pnt-why-card__text { font-size: 15px; line-height: 1.7; color: var(--pnt-muted); }

.pnt-video-teaser {
	cursor: pointer; position: relative; min-height: clamp(280px, 42vw, 100%); height: 100%;
	border-radius: 16px; overflow: hidden; background-size: cover; background-position: center;
	display: flex; flex-direction: column; justify-content: flex-end; padding: 24px;
	border: none; text-align: left; color: #fff;
}
.pnt-video-teaser__play {
	position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
	width: 72px; height: 72px; border-radius: 50%; background: rgba(255,255,255,0.94);
	display: grid; place-items: center; font-size: 22px; color: var(--pnt-blue-deep);
	box-shadow: 0 12px 30px rgba(5,42,90,0.28); transition: transform .2s;
}
.pnt-video-teaser:hover .pnt-video-teaser__play { transform: translate(-50%, -50%) scale(1.07); }
.pnt-video-teaser__text { position: relative; }
.pnt-video-teaser__line1 { display: block; font-size: 18.5px; font-weight: 600; letter-spacing: -0.01em; }
.pnt-video-teaser__line2 { display: block; font-size: 15px; color: rgba(255,255,255,0.88); margin-top: 4px; }

/* ---------------------------------------------------------------------- *
 * Reviews (Swiper)
 * ---------------------------------------------------------------------- */
.pnt-reviews-swiper {
	--swiper-theme-color: #0A57BC;
	--swiper-navigation-size: 20px;
	--swiper-pagination-bullet-inactive-color: #9FB4C8;
	--swiper-pagination-bullet-inactive-opacity: 1;
	padding: 4px 0 8px;
}
.pnt-reviews-swiper .swiper-slide { height: auto; padding: 2px; }
.pnt-review-card { height: 100%; background: #fff; border-radius: 14px; padding: 26px 24px; box-shadow: 0 4px 14px rgba(11,78,162,0.08); display: flex; flex-direction: column; }
.pnt-review-card__stars { color: var(--pnt-gold); font-size: 15px; letter-spacing: 0.06em; margin-bottom: 14px; }
.pnt-review-card__text { font-size: 15px; line-height: 1.75; color: var(--pnt-text-3); margin-bottom: 22px; }
.pnt-review-card__author { display: flex; align-items: center; gap: 12px; margin-top: auto; }
.pnt-review-card__avatar { width: 42px; height: 42px; border-radius: 50%; background: var(--pnt-bg-chip); color: var(--pnt-blue-deep); display: grid; place-items: center; font-size: 15px; font-weight: 700; flex: none; }
.pnt-review-card__avatar--img { object-fit: cover; object-position: center 20%; }
.pnt-review-card__name { display: block; font-size: 15px; font-weight: 700; }
.pnt-review-card__city { display: block; font-size: 15px; color: var(--pnt-muted-2); }
.pnt-reviews-nav { display: flex; align-items: center; justify-content: center; gap: 18px; margin-top: 18px; }
.pnt-reviews-nav__btn { position: static; width: 42px; height: 42px; margin: 0; border-radius: 50%; background: #fff; border: 1px solid var(--pnt-border); box-shadow: 0 4px 14px rgba(11,78,162,0.12); flex: none; }
.pnt-reviews-nav__pagination { position: static; width: auto; }
@media (max-width: 1024px) { .pnt-reviews-nav__btn { display: none; } }

/* ---------------------------------------------------------------------- *
 * CTA band (newsletter cuối trang chủ)
 * ---------------------------------------------------------------------- */
.pnt-cta-band { margin-top: clamp(44px, 6vw, 72px); background: linear-gradient(120deg, var(--pnt-blue-deep), #1B86EF); color: #fff; }
.pnt-cta-band__inner {
	display: grid; gap: 24px; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); align-items: center;
	padding-top: clamp(34px, 4.5vw, 56px); padding-bottom: clamp(34px, 4.5vw, 56px);
}
.pnt-cta-band__title { font-size: clamp(22px, 2.8vw, 30px); font-weight: 600; letter-spacing: -0.02em; }
.pnt-cta-band__text { margin: 14px 0 0; font-size: 15px; line-height: 1.65; color: rgba(255,255,255,0.86); }
.pnt-cta-band__form { display: flex; gap: 10px; flex-wrap: wrap; align-items: stretch; }
.pnt-cta-band__form .pnt-btn { height: 46px; padding: 0 26px; }
.pnt-cta-band__input { flex: 1 1 200px; min-width: 0; width: 100%; padding: 0 13px; height: 46px; border: none; border-radius: 10px; font-size: 16px; }
.pnt-cta-band .pnt-subscribe-form__success { color: #fff; background: rgba(255,255,255,0.16); flex-basis: 100%; }

/* ---------------------------------------------------------------------- *
 * Footer
 * ---------------------------------------------------------------------- */
.pnt-footer {
	position: relative;
	background: linear-gradient(180deg, var(--pnt-footer-bg) 0%, #041d42 100%);
	color: rgba(255,255,255,0.76);
}
.pnt-footer::before {
	content: ""; display: block; height: 3px;
	background: linear-gradient(90deg, var(--pnt-blue-bright), var(--pnt-teal), var(--pnt-gold-light));
}
.pnt-footer__grid { display: grid; gap: 30px; grid-template-columns: repeat(auto-fit, minmax(168px, 1fr)); padding-top: clamp(38px, 5vw, 62px); padding-bottom: 26px; }
@media screen and (max-width: 576px) {
	.pnt-footer__grid { display: grid; gap: 30px; grid-template-columns: repeat(auto-fit, minmax(100%, 1fr)); padding-top: clamp(38px, 5vw, 62px); padding-bottom: 26px; }
}
.pnt-footer__list a.pnt-nav__link {
	padding: 0;
}
.pnt-footer__brand { display: flex; align-items: center; margin-bottom: 16px; }
.pnt-footer__logo { display: inline-flex; background: #fff; border-radius: 10px; padding: 6px 12px; box-shadow: 0 8px 20px rgba(0,0,0,0.18); }
.pnt-footer__logo-img { max-height: 42px; width: auto; display: block; }
.pnt-footer__about { margin: 0 0 20px; font-size: 15px; line-height: 1.7; max-width: 280px; color: #fff; }
.pnt-footer__social { display: flex; gap: 10px; }
.pnt-footer__social-btn {
	width: 34px; height: 34px; border-radius: 50%; background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.16);
	display: grid; place-items: center; font-size: 15px; font-weight: 700; color: #fff;
	transition: background .2s, border-color .2s, transform .2s;
}
.pnt-footer__social-btn:hover { background: var(--pnt-blue-bright); border-color: var(--pnt-blue-bright); color: #fff; transform: translateY(-2px); }
.pnt-footer__title {
	font-size: 14px; font-weight: 700; color: #fff; margin-bottom: 18px;
	text-transform: uppercase; letter-spacing: 0.06em; position: relative; padding-bottom: 12px;
}
.pnt-footer__title::after {
	content: ""; position: absolute; left: 0; bottom: 0; width: 26px; height: 3px; border-radius: 999px;
	background: linear-gradient(90deg, var(--pnt-gold), var(--pnt-gold-pale));
}
.pnt-footer__list { display: grid; gap: 11px; font-size: 15px; }
.pnt-footer__list a { color: #fff; border-bottom-color: transparent; transition: color .2s, padding-left .2s; }
.pnt-footer__list a:hover { color: var(--pnt-gold-light); padding-left: 4px; }
.pnt-footer__list a.is-active { color: var(--pnt-gold-light); font-weight: 700; border-bottom-color: transparent; }
.pnt-footer__contact { display: grid; gap: 14px; font-size: 15px; line-height: 1.55; color: #fff; }
.pnt-footer__contact div { display: flex; align-items: center; gap: 12px; }
.pnt-footer__contact-icon {
	flex: none; width: 30px; height: 30px; border-radius: 50%; background: rgba(255,255,255,0.08);
	display: grid; place-items: center;
}
.pnt-footer__contact-strong { font-weight: 600; color: #fff; }
.pnt-footer__bottom {
	border-top: 1px solid rgba(255,255,255,0.12);
	padding: 22px clamp(15px, 3vw, 34px) 36px;
	font-size: 14px; color: rgba(255,255,255,0.55);
}

/* ---------------------------------------------------------------------- *
 * Floating contact buttons
 * ---------------------------------------------------------------------- */
.pnt-fab-stack {
	position: fixed; right: 16px; bottom: 16px; z-index: 60;
	display: none; flex-direction: column; gap: 10px; align-items: flex-end;
	opacity: 0; pointer-events: none; transition: opacity .2s;
}
.pnt-fab-stack.is-visible { opacity: 1; pointer-events: auto; }
@media (min-width: 700px) { .pnt-fab-stack { display: flex; } }
.pnt-fab {
	display: flex; align-items: center; gap: 11px; width: 52px; height: 52px; padding: 8px;
	border-radius: 999px; color: #fff; font-size: 15px; font-weight: 700; white-space: nowrap; overflow: hidden;
	box-shadow: 0 10px 26px rgba(6,44,96,0.28);
	transition: width .26s cubic-bezier(.22,.72,.25,1), box-shadow .2s;
}
.pnt-fab:hover { width: 172px; box-shadow: 0 14px 32px rgba(6,44,96,0.38); color: #fff; }
.pnt-fab__icon { width: 36px; height: 36px; border-radius: 50%; background: rgba(255,255,255,0.22); display: grid; place-items: center; flex: none; }
.pnt-fab--whatsapp { background: linear-gradient(135deg, #25D366, #128C4A); }
.pnt-fab--line { background: linear-gradient(135deg, #06C755, #039444); }
.pnt-fab--call { background: linear-gradient(135deg, #17B96B, #0E8F52); }
.pnt-fab--call .pnt-fab__icon { animation: pntPulse 2.2s ease-out infinite; }

.pnt-fab-bar {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; display: none;
	background: #fff; border-top: 1px solid var(--pnt-border-3); box-shadow: 0 -6px 20px rgba(6,44,96,0.14);
	padding-bottom: env(safe-area-inset-bottom);
	opacity: 0; pointer-events: none; transition: opacity .2s;
}
.pnt-fab-bar.is-visible { opacity: 1; pointer-events: auto; }
@media (max-width: 699px) { .pnt-fab-bar { display: flex; } }
.pnt-fab-bar__item {
	flex: 1; height: 58px; display: flex; align-items: center; justify-content: center; gap: 8px;
	color: var(--pnt-blue-deep); font-size: 15px; font-weight: 700; border-right: 1px solid var(--pnt-border-2);
}
.pnt-fab-bar__item:last-child { border-right: none; }
.pnt-fab-bar__icon { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; flex: none; }

/* ---------------------------------------------------------------------- *
 * Modals dùng chung (đặt tour / video)
 * ---------------------------------------------------------------------- */
.pnt-modal-overlay[hidden] { display: none; }
.pnt-modal-overlay {
	position: fixed; inset: 0; z-index: 90; background: rgba(6,50,107,0.55); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px);
	display: flex;
	padding: clamp(15px, 4vh, 46px) 10px calc(24px + env(safe-area-inset-bottom));
	overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; animation: pntFade .2s ease;
}
.pnt-modal { margin: auto; background: #fff; border-radius: 16px; width: 100%; max-width: 560px; box-shadow: 0 30px 80px rgba(6,50,107,0.42); animation: pntUp .24s ease both; overflow: hidden; }
.pnt-modal__head { padding: 22px clamp(20px, 4vw, 30px); background: linear-gradient(120deg, var(--pnt-blue-deep), #1B86EF); color: #fff; display: flex; align-items: flex-start; gap: 14px; }
.pnt-modal__kicker { font-size: 15px; letter-spacing: 0.16em; text-transform: uppercase; color: #A8D4FF; margin-bottom: 7px; }
.pnt-modal__title { font-size: 20px; font-weight: 600; line-height: 1.3; }
.pnt-modal__close {
	width: 34px; height: 34px; border-radius: 50%; border: 1px solid rgba(255,255,255,0.4); background: transparent;
	display: grid; place-items: center; font-size: 15px; color: #fff; flex: none; margin-left: auto;
}
.pnt-modal__close:hover { background: rgba(255,255,255,0.16); }
.pnt-modal__success { padding: clamp(28px, 5vw, 44px) clamp(20px, 4vw, 30px); text-align: center; }
.pnt-modal__success[hidden] { display: none; }
.pnt-modal__success-icon { width: 58px; height: 58px; border-radius: 50%; background: var(--pnt-green-bg); color: var(--pnt-green); display: grid; place-items: center; font-size: 24px; margin: 0 auto 18px; }
.pnt-modal__success-title { font-size: 21px; font-weight: 600; margin-bottom: 10px; }
.pnt-modal__success p { font-size: 15px; line-height: 1.7; color: var(--pnt-muted); margin: 0 auto 24px; max-width: 400px; }
.pnt-modal__form { padding: clamp(20px, 3vw, 28px) clamp(20px, 4vw, 30px) clamp(24px, 4vw, 32px); }
.pnt-modal__form[hidden] { display: none; }
.pnt-modal__foot { margin-top: 13px; font-size: 15px; line-height: 1.6; color: var(--pnt-muted-3); text-align: center; }

.pnt-form-grid { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(205px, 1fr)); }
.pnt-field { display: grid; gap: 6px; min-width: 0; margin-top: 14px; }
.pnt-form-grid .pnt-field { margin-top: 0; }
.pnt-field:first-child { margin-top: 0; }
.pnt-field span { font-size: 15px; font-weight: 600; color: var(--pnt-muted); }
.pnt-field input, .pnt-field select, .pnt-field textarea {
	padding: 0 13px; height: 40px; border: 1px solid var(--pnt-border); border-radius: 10px;
	font-size: 14px; background: var(--pnt-bg-input); width: 100%; min-width: 0;
}
.pnt-field textarea { padding: 10px 13px; height: auto; resize: vertical; }
.pnt-field--full { grid-column: 1 / -1; }
.pnt-form-error { margin-top: 13px; padding: 12px 14px; border-radius: 10px; background: var(--pnt-error-bg); color: var(--pnt-error); font-size: 15px; }
.pnt-form-error[hidden] { display: none; }
.pnt-form-success { margin-top: 16px; padding: 13px 15px; border-radius: 10px; background: var(--pnt-green-bg); color: var(--pnt-green-dark); font-size: 15px; line-height: 1.6; }
.pnt-form-success[hidden] { display: none; }
.pnt-modal__form .pnt-btn { margin-top: 18px; }

/* Video modal */
.pnt-video-modal__inner { margin: auto; width: min(1000px, 100%); }
.pnt-video-modal__head { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; color: #fff; font-size: 15px; font-weight: 700; }
.pnt-video-modal__head .pnt-modal__close { margin-left: auto; }
.pnt-video-modal__frame { position: relative; width: 100%; aspect-ratio: 16 / 9; border-radius: 14px; overflow: hidden; background: #041C3C; animation: pntUp .26s ease both; }
.pnt-video-modal__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.pnt-video-modal__empty { position: absolute; inset: 0; display: grid; place-items: center; padding: 24px; text-align: center; color: rgba(255,255,255,0.82); font-size: 15px; line-height: 1.7; }

/* ---------------------------------------------------------------------- *
 * Page banner (Về chúng tôi / Tour / Gallery / Blog / Liên hệ / Chi tiết tour)
 * ---------------------------------------------------------------------- */
.pnt-page-banner { background: linear-gradient(120deg, var(--pnt-blue-deep), #1B86EF); color: #fff; padding: clamp(34px, 4.5vw, 56px) 0; }
.pnt-page-banner--gradient { padding: clamp(38px, 5vw, 64px) 0; }
.pnt-page-banner__kicker { font-size: 15px; letter-spacing: 0.2em; text-transform: uppercase; color: #A8D4FF; margin-bottom: 12px; }
.pnt-page-banner__title { font-size: clamp(26px, 3.8vw, 40px); font-weight: 600; letter-spacing: -0.025em; margin: 0 0 8px; }
.pnt-page-banner__title--wide { font-size: clamp(27px, 4.2vw, 44px); max-width: 600px; margin-bottom: 0; }
.pnt-page-banner__sub { margin: 0; color: rgba(255,255,255,0.86); font-size: 15px; }

/* ---------------------------------------------------------------------- *
 * Trang Tour & Dịch vụ (toolbar lọc + phân trang)
 * ---------------------------------------------------------------------- */
.pnt-tour-toolbar { background: #fff; border-radius: 14px; padding: 18px; box-shadow: var(--pnt-shadow-md); margin-bottom: 26px; }
.pnt-tour-chips { display: flex; gap: 8px; flex-wrap: wrap; }
.pnt-chip { padding: 9px 17px; border-radius: 999px; font-size: 15px; font-weight: 600; border: 1px solid var(--pnt-border); color: var(--pnt-text-3); background: #fff; }
.pnt-chip.is-active { border-color: var(--pnt-blue-deep); color: #fff; background: var(--pnt-blue-deep); }
.pnt-empty { padding: 50px 0; text-align: center; color: var(--pnt-muted-2); font-size: 15px; }

.pnt-pagination { display: flex; align-items: center; justify-content: center; gap: 8px; flex-wrap: wrap; margin-top: 36px; }
.pnt-pagination__item {
	min-width: 42px; height: 42px; padding: 0 12px; border-radius: 12px; display: inline-grid; place-items: center;
	font-size: 15px; font-weight: 700; border: 1px solid var(--pnt-border); background: #fff; color: var(--pnt-text-3);
}
.pnt-pagination a.pnt-pagination__item:hover { border-color: var(--pnt-blue-link); background: var(--pnt-bg-chip); }
.pnt-pagination .current.pnt-pagination__item { border-color: var(--pnt-blue-deep); background: var(--pnt-blue-deep); color: #fff; }
.pnt-pagination .dots.pnt-pagination__item { border: none; background: transparent; }

/* ---------------------------------------------------------------------- *
 * Chi tiết tour
 * ---------------------------------------------------------------------- */
.pnt-detail-banner { background: linear-gradient(120deg, var(--pnt-blue-deep), #1B86EF); color: #fff; padding: clamp(30px, 4vw, 52px) 0; }
.pnt-detail-banner__back { display: inline-block; font-size: 15px; color: #A8D4FF; margin-bottom: 18px; }
.pnt-detail-banner__back:hover { color: #fff; }
.pnt-detail-banner__kicker { font-size: 15px; letter-spacing: 0.16em; text-transform: uppercase; color: #A8D4FF; margin-bottom: 10px; }
.pnt-detail-banner__title { font-size: clamp(26px, 4vw, 42px); font-weight: 600; letter-spacing: -0.025em; max-width: 820px; margin: 0 0 16px; }
.pnt-detail-banner__meta { display: flex; gap: 22px; flex-wrap: wrap; font-size: 15px; color: rgba(255,255,255,0.9); }
.pnt-detail-banner__meta span { display: inline-flex; align-items: center; gap: 7px; }
.pnt-star { color: var(--pnt-gold-light); }

.pnt-detail-body { padding: clamp(24px, 3.5vw, 42px) 0; }
.pnt-detail-cover { height: clamp(220px, 32vw, 400px); border-radius: 16px; overflow: hidden; background: var(--pnt-bg-placeholder) center/cover no-repeat; margin-bottom: 34px; }
.pnt-detail-grid { display: grid; gap: 34px; grid-template-columns: 1fr; align-items: start; }
@media (min-width: 980px) { .pnt-detail-grid { grid-template-columns: minmax(0, 1.7fr) minmax(270px, 1fr); } }
.pnt-detail-main { min-width: 0; }

.pnt-panel { background: #fff; border-radius: 14px; padding: clamp(20px, 3vw, 30px); box-shadow: 0 4px 14px rgba(11,78,162,0.08); margin-bottom: 22px; }
.pnt-panel__title { font-size: 20px; font-weight: 600; margin: 0 0 12px; }
.pnt-panel__subtitle { font-size: 15px; font-weight: 600; margin: 0 0 14px; }
.pnt-panel__prose { font-size: 15px; line-height: 1.85; color: var(--pnt-text-3); }
.pnt-panel--includes { display: grid; gap: 28px; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }

.pnt-itinerary { display: grid; }
.pnt-itinerary__day { display: flex; gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--pnt-border-2); }
.pnt-itinerary__day:last-child { border-bottom: none; padding-bottom: 0; }
.pnt-itinerary__badge { flex: none; width: 82px; display: flex; align-items: flex-start; gap: 9px; }
.pnt-itinerary__dot { width: 30px; height: 30px; border-radius: 50%; background: var(--pnt-bg-chip); display: grid; place-items: center; flex: none; }
.pnt-itinerary__label { font-size: 15px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--pnt-blue-link); padding-top: 7px; }
.pnt-itinerary__title { font-size: 17px; font-weight: 600; letter-spacing: -0.01em; margin-bottom: 6px; }
.pnt-itinerary__text { font-size: 15px; line-height: 1.7; color: var(--pnt-muted); }

.pnt-check-list { display: grid; gap: 10px; }
.pnt-check-list__item { font-size: 15px; display: flex; gap: 10px; }
.pnt-check-list__item--yes { color: var(--pnt-text-3); }
.pnt-check-list__item--yes span { color: var(--pnt-green); font-weight: 700; }
.pnt-check-list__item--no { color: var(--pnt-muted-2); }

.pnt-detail-aside { position: relative; }
.pnt-price-box { position: -webkit-sticky; position: sticky; top: 96px; background: #fff; border-radius: 14px; padding: 24px; box-shadow: 0 8px 26px rgba(11,78,162,0.12); }
.pnt-price-box__label { font-size: 15px; color: var(--pnt-muted-2); margin-bottom: 4px; }
.pnt-price-box__price { display: flex; align-items: baseline; gap: 10px; margin-bottom: 4px; }
.pnt-price-box__now { font-size: 32px; font-weight: 600; color: var(--pnt-red); }
.pnt-price-box__old { font-size: 15px; color: var(--pnt-muted-4); text-decoration: line-through; }
.pnt-price-box__note { font-size: 15px; color: var(--pnt-muted-2); margin-bottom: 20px; }
.pnt-price-box__specs { display: grid; gap: 11px; padding: 16px 0; border-top: 1px solid var(--pnt-border-2); border-bottom: 1px solid var(--pnt-border-2); margin-bottom: 20px; }
.pnt-price-box__specs div { display: flex; justify-content: space-between; font-size: 15px; }
.pnt-price-box__specs span { color: var(--pnt-muted-2); }
.pnt-price-box__hotline { font-size: 15px; color: var(--pnt-muted-2); text-align: center; margin-top: 12px; }

.pnt-mobile-price-bar {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 70; background: #fff; border-top: 1px solid var(--pnt-border-3);
	box-shadow: 0 -6px 22px rgba(6,50,107,0.12); padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
	display: none; align-items: center; gap: 12px;
}
@media (max-width: 979px) { .pnt-mobile-price-bar { display: flex; } }
.pnt-mobile-price-bar__price { min-width: 0; }
.pnt-mobile-price-bar__label { font-size: 15px; color: var(--pnt-muted-2); }
.pnt-mobile-price-bar__value { font-size: 18.5px; font-weight: 600; color: var(--pnt-red); white-space: nowrap; }
.pnt-mobile-price-bar .pnt-btn { margin-left: auto; flex: 1; max-width: 200px; }

/* ---------------------------------------------------------------------- *
 * Về chúng tôi
 * ---------------------------------------------------------------------- */
.pnt-about-grid { display: grid; gap: 40px; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); align-items: start; }
.pnt-prose { font-size: 15px; line-height: 1.85; color: var(--pnt-text-3); }
.pnt-prose p { margin: 0 0 20px; }
.pnt-about-image { min-height: 420px; border-radius: 16px; background-size: cover; background-position: center; }
.pnt-stats { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); margin-top: 30px; }
.pnt-stat { background: #fff; border-radius: 12px; padding: 20px; box-shadow: var(--pnt-shadow-sm); }
.pnt-stat__number { font-size: 30px; font-weight: 600; color: var(--pnt-blue-deep); }
.pnt-stat__label { font-size: 15px; color: var(--pnt-muted-2); margin-top: 4px; }

/* ---------------------------------------------------------------------- *
 * Thư viện ảnh
 * ---------------------------------------------------------------------- */
.pnt-album-grid { display: grid; gap: 16px; grid-template-columns: 1fr; }
@media (min-width: 560px) { .pnt-album-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .pnt-album-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.pnt-album-card {
	position: relative; height: 240px; border-radius: 14px; overflow: hidden; border: none;
	background-color: var(--pnt-bg-placeholder); background-size: cover; background-position: center;
	box-shadow: 0 4px 16px rgba(11,78,162,0.1); transition: transform .25s, box-shadow .25s; text-align: left; display: block; padding: 0; width: 100%;
}
.pnt-album-card:hover { transform: translateY(-4px); box-shadow: 0 18px 38px rgba(11,78,162,0.2); }
.pnt-album-card__overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(6,44,96,0.82), rgba(6,44,96,0.05) 58%); }
.pnt-album-card__count { position: absolute; top: 14px; right: 14px; padding: 6px 12px; border-radius: 999px; background: rgba(255,255,255,0.92); color: var(--pnt-blue-deep); font-size: 15px; font-weight: 700; }
.pnt-album-card__foot { position: absolute; left: 16px; right: 16px; bottom: 16px; color: #fff; }
.pnt-album-card__name { display: block; font-size: 15.5px; font-weight: 700; letter-spacing: -0.01em; }
.pnt-album-card__cta { display: block; font-size: 15px; color: rgba(255,255,255,0.85); margin-top: 3px; }
.pnt-lightgallery-mount { display: none; }

/* ---------------------------------------------------------------------- *
 * Blog du lịch
 * ---------------------------------------------------------------------- */
.pnt-news-grid { display: grid; gap: 20px; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.pnt-news-card { background: #fff; border-radius: 14px; overflow: hidden; box-shadow: var(--pnt-shadow-md); transition: transform .2s, box-shadow .2s; }
.pnt-news-card:hover { transform: translateY(-5px); box-shadow: var(--pnt-shadow-lg); }
.pnt-news-card__media { display: block; height: 180px; background-color: var(--pnt-bg-placeholder); background-size: cover; background-position: center; }
.pnt-news-card__body { padding: 20px; }
.pnt-news-card__meta { display: flex; align-items: center; gap: 10px; margin-bottom: 11px; }
.pnt-news-card__cat { padding: 4px 11px; border-radius: 999px; background: var(--pnt-bg-chip); color: var(--pnt-blue-deep); font-size: 13px; font-weight: 700; }
.pnt-news-card__date { font-size: 14px; color: var(--pnt-muted-3); }
.pnt-news-card__title { font-size: 18px; margin: 0 0 9px; font-weight: 600; line-height: 1.3; letter-spacing: -0.015em; }
.pnt-news-card__title a { color: inherit; }
.pnt-news-card__excerpt { font-size: 15px; line-height: 1.65; color: var(--pnt-muted); }

.pnt-prose h2 { font-size: clamp(20px, 2.4vw, 26px); font-weight: 700; letter-spacing: -0.02em; color: var(--pnt-text); margin: 36px 0 16px; }
.pnt-prose h3 { font-size: clamp(18px, 2vw, 21px); font-weight: 700; color: var(--pnt-text); margin: 28px 0 14px; }
.pnt-prose ul, .pnt-prose ol { margin: 0 0 20px; padding-left: 22px; }
.pnt-prose ul { list-style: disc; }
.pnt-prose ol { list-style: decimal; }
.pnt-prose li { margin-bottom: 8px; }
.pnt-prose a { color: var(--pnt-blue-link); text-decoration: underline; }
.pnt-prose img { max-width: 100%; height: auto; border-radius: 12px; margin: 8px 0 24px; }
.pnt-prose blockquote { margin: 24px 0; padding: 18px 22px; border-left: 3px solid var(--pnt-gold); background: var(--pnt-bg-panel); border-radius: 0 10px 10px 0; font-style: italic; color: var(--pnt-text-3); }
.pnt-prose strong { color: var(--pnt-text); font-weight: 700; }
.pnt-article-gallery { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); margin: 8px 0 24px; }
.pnt-article-gallery img { width: 100%; height: 220px; object-fit: cover; border-radius: 12px; margin: 0; }

.pnt-article-card { background: #fff; border-radius: 14px; padding: 22px; box-shadow: var(--pnt-shadow-md); margin-bottom: 20px; }
.pnt-article-card--cta { background: linear-gradient(120deg, var(--pnt-blue-deep), #1B86EF); color: #fff; }
.pnt-article-card--cta .pnt-article-card__title { color: #fff; }
.pnt-article-card--cta .pnt-article-card__text { color: rgba(255,255,255,0.86); }
.pnt-article-card__title { font-size: 17px; font-weight: 700; margin-bottom: 10px; }
.pnt-article-card__text { font-size: 15px; line-height: 1.6; color: var(--pnt-muted); margin: 0 0 16px; }
.pnt-article-cat-list { display: grid; }
.pnt-article-cat-list li a { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 2px; font-size: 15px; color: var(--pnt-text-3); border-bottom: 1px solid var(--pnt-border-2); }
.pnt-article-cat-list li:last-child a { border-bottom: none; }
.pnt-article-cat-list li a:hover { color: var(--pnt-blue-link); }
.pnt-article-cat-list li a span { flex: none; font-size: 13px; font-weight: 600; color: var(--pnt-muted-3); background: var(--pnt-bg-chip); border-radius: 999px; padding: 2px 9px; }
.pnt-article-recent-list { display: grid; gap: 14px; }
.pnt-article-recent-list li { display: flex; align-items: center; gap: 12px; }
.pnt-article-recent-list__thumb { flex: none; width: 56px; height: 56px; border-radius: 10px; background-color: var(--pnt-bg-placeholder); background-size: cover; background-position: center; }
.pnt-article-recent-list__title { font-size: 14px; font-weight: 600; line-height: 1.4; color: var(--pnt-text-3); }
.pnt-article-recent-list__title:hover { color: var(--pnt-blue-link); }

.pnt-ig-card {
	display: flex; align-items: center; gap: 18px; padding: 20px clamp(18px, 3vw, 28px);
	border-radius: 16px; background: linear-gradient(120deg, #F58529, #DD2A7B 45%, #8134AF 75%, #515BD4);
	color: #fff; box-shadow: 0 10px 26px rgba(129,32,140,0.24); flex-wrap: wrap;
}
.pnt-ig-card:hover { color: #fff; }
.pnt-ig-card__icon { flex: none; width: 52px; height: 52px; border-radius: 50%; background: rgba(255,255,255,0.18); display: grid; place-items: center; }
.pnt-ig-card__body { flex: 1 1 260px; min-width: 0; display: grid; gap: 4px; }
.pnt-ig-card__title { font-size: 17px; font-weight: 700; }
.pnt-ig-card__text { font-size: 15px; line-height: 1.55; color: rgba(255,255,255,0.9); }
.pnt-ig-card__cta { flex: none; display: inline-flex; align-items: center; gap: 6px; padding: 11px 20px; border-radius: 999px; background: #fff; color: #C13584; font-weight: 700; font-size: 15px; margin-left: auto; }

/* ---------------------------------------------------------------------- *
 * Liên hệ
 * ---------------------------------------------------------------------- */
.pnt-contact-grid { display: grid; gap: 30px; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); align-items: start; }
.pnt-contact-info { background: #fff; border-radius: 14px; padding: 26px; box-shadow: 0 4px 14px rgba(11,78,162,0.08); display: grid; gap: 22px; margin-bottom: 20px; }
.pnt-contact-info__label { display: flex; align-items: center; gap: 8px; font-size: 15px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--pnt-muted-2); margin-bottom: 6px; }
.pnt-contact-info__value { font-size: 15px; line-height: 1.6; }
.pnt-contact-info__value a { color: var(--pnt-text); }
.pnt-contact-map { height: 250px; border-radius: 14px; overflow: hidden; }
.pnt-contact-map iframe { width: 100%; height: 100%; border: 0; }
.pnt-contact-map--empty { display: flex; align-items: center; justify-content: center; text-align: center; padding: 20px; background: var(--pnt-bg-panel); color: var(--pnt-muted-3); font-size: 15px; }
.pnt-contact-form { display: grid; gap: 15px; }

.pnt-faq { max-width: 760px; margin: 0 auto; display: grid; gap: 12px; }
.pnt-faq__item { background: #fff; border: 1px solid var(--pnt-border); border-radius: 12px; padding: 4px 22px; }
.pnt-faq__q { list-style: none; cursor: pointer; padding: 16px 26px 16px 0; font-size: 16px; font-weight: 600; position: relative; }
.pnt-faq__q::-webkit-details-marker { display: none; }
.pnt-faq__q::after { content: '+'; position: absolute; right: 0; top: 50%; transform: translateY(-50%); font-size: 22px; font-weight: 400; color: var(--pnt-blue-link); }
.pnt-faq__item[open] .pnt-faq__q::after { content: '−'; }
.pnt-faq__a { margin: 0 0 18px; font-size: 15px; line-height: 1.75; color: var(--pnt-muted); }

/* ---------------------------------------------------------------------- *
 * Tìm kiếm & 404
 * ---------------------------------------------------------------------- */
.pnt-search-results { display: grid; gap: 20px; }
.pnt-search-result { background: #fff; border-radius: 14px; padding: 22px; box-shadow: var(--pnt-shadow-sm); }
.pnt-search-result__type { font-size: 15px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--pnt-blue-link); margin-bottom: 8px; }
.pnt-search-result__title { font-size: 19px; font-weight: 600; margin: 0 0 8px; }
.pnt-search-result__title a { color: var(--pnt-text); }
.pnt-search-result__excerpt { font-size: 15px; color: var(--pnt-muted); line-height: 1.6; }

.pnt-404__inner { text-align: center; padding: 40px 0 60px; display: grid; gap: 14px; justify-items: center; }
.pnt-404__code { font-size: 72px; font-weight: 600; color: var(--pnt-blue-deep); line-height: 1; }
.pnt-404__title { font-size: 26px; font-weight: 600; }
.pnt-404__text { color: var(--pnt-muted); margin-bottom: 6px; }
.pnt-404__inner .search-form { display: flex; gap: 8px; max-width: 420px; width: 100%; margin-bottom: 8px; }
.pnt-404__inner .search-form input[type="search"] { flex: 1; padding: 0 13px; height: 44px; border: 1px solid var(--pnt-border); border-radius: 10px; font-size: 16px; }
.pnt-404__inner .search-form input[type="submit"] { padding: 0 18px; border: none; border-radius: 10px; background: var(--pnt-blue-deep); color: #fff; font-weight: 700; cursor: pointer; }

/* ---------------------------------------------------------------------- *
 * Bình luận
 * ---------------------------------------------------------------------- */
.pnt-comments { max-width: 780px; margin: 40px auto 0; }
.pnt-comments__title { font-size: 22px; font-weight: 600; margin-bottom: 20px; }
.pnt-comments__list { display: grid; gap: 20px; margin-bottom: 30px; }
.pnt-comments .comment-body { background: #fff; border-radius: 12px; padding: 18px 20px; box-shadow: var(--pnt-shadow-sm); }
.pnt-comments .comment-respond input, .pnt-comments .comment-respond textarea { width: 100%; padding: 0 13px; height: 42px; border: 1px solid var(--pnt-border); border-radius: 10px; font-size: 16px; background: var(--pnt-bg-input); margin-bottom: 12px; }
.pnt-comments .comment-respond textarea { height: auto; padding: 10px 13px; min-height: 120px; }
.pnt-comments .comment-respond input[type="submit"] { width: auto; padding: 0 24px; background: var(--pnt-blue-deep); color: #fff; border: none; font-weight: 700; cursor: pointer; }

/* ---------------------------------------------------------------------- *
 * Chuyển động cuộn (AOS) — tôn trọng người dùng giảm hiệu ứng
 * ---------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
}
