/* =============================================================
   PTG — giao diện dựng theo Figma "PTG Website" (trang chủ, khung 1920 / nội dung 1320)
   Nạp SAU main.css/home.css/custom.css (Layout/app.blade.php, Layout/user.blade.php).
   Class mới đều có tiền tố ptg- để không đụng CSS cũ của theme (bản chép Danang24h).
   Sửa xong nhớ chép sang public/themes/ptg/dist/assets/css/ptg.css (theme_asset_bc đọc bản dist).
   ============================================================= */

/* ---------- 0. Font Manrope tự host (không gọi Google Fonts) ---------- */
@font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
    src: url('../fonts/Manrope/manrope-vietnamese.woff2') format('woff2');
    unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
    src: url('../fonts/Manrope/manrope-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
    src: url('../fonts/Manrope/manrope-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ---------- 1. Màu thương hiệu + biến của main.css (trang ngoài Figma chỉ đổi màu) ---------- */
:root {
    --ptg-navy: #001853;
    --ptg-navy-2: #192F64;
    --ptg-ink: #001853;
    --ptg-muted: #6A6A6A;
    --ptg-orange: #F88C00;
    --ptg-red: #EB0002;
    --ptg-mid: #F15A01;
    --ptg-grad: linear-gradient(90deg, #F88C00 0%, #EB0002 100%);
    --ptg-grad-text: linear-gradient(90deg, #FBA400 0%, #F25A02 100%);
    --ptg-soft: #F7F9FB;
    --ptg-line: #DEE2E9;
    --ptg-line-2: #E8EBF0;
    --ptg-cream: #FFF9F3;
    --ptg-green: #22A06B;
    --ptg-star: #F7B500;
    --ptg-shadow: 0 10px 30px rgba(0, 24, 83, .08);
    --ptg-shadow-lg: 0 18px 44px rgba(0, 24, 83, .14);

    /* main.css (Danang24h) */
    --primary-font: 'Manrope', 'BeVietnamPro', sans-serif;
    --primary-color: #F15A01;
    --primary-gradient: linear-gradient(90deg, #F88C00 0%, #EB0002 100%);
    --primary-gradient-2: linear-gradient(90deg, #F88C00 0%, #EB0002 100%);
    --secondary-color: #F88C00;
    --text-color: #001853;
    --text-color2: #192F64;
    --text-color3: #F88C00;
}

/* ---------- 2. Nền dùng chung ---------- */
.ptg-wrap {
    max-width: 1352px;
    margin: 0 auto;
    padding: 0 16px;
}
.ptg-sec {
    position: relative;
    color: var(--ptg-ink);
    font-size: 16px;
    line-height: 1.5;
}
.ptg-sec *, .ptg-sec *::before, .ptg-sec *::after,
.ptg-hero *, .ptg-hero *::before, .ptg-hero *::after,
.ptg-footer *, .ptg-header-wrap * { box-sizing: border-box; }
.ptg-sec img { max-width: 100%; display: block; }
.ptg-sec a { text-decoration: none; }
.ptg-sec ul { list-style: none; padding: 0; margin: 0; }
.ptg-sec p { margin: 0; }
.ptg-sec [hidden] { display: none !important; }

.ptg-h2 {
    font-size: 36px;
    font-weight: 700 !important;
    line-height: 1.25;
    letter-spacing: -.01em;
    color: var(--ptg-navy);
    margin: 0;
}
.ptg-hl {
    background: var(--ptg-grad-text);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: var(--ptg-orange);
}
.ptg-lead {
    color: var(--ptg-muted);
    font-size: 16px;
    line-height: 1.45;
    margin-top: 4px !important;
}

.ptg-head { margin-bottom: 40px; }
.ptg-head--center { text-align: center; }
.ptg-head--center .ptg-lead { max-width: 820px; margin-left: auto; margin-right: auto; }
.ptg-head--split {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap;
}
.ptg-head--split .ptg-btn { flex: none; }
.ptg-head__side { flex: none; }
.ptg-head--light .ptg-h2, .ptg-head--light .ptg-lead { color: #fff; }

/* Nút */
.ptg-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 44px;
    padding: 10px 26px;
    border-radius: 999px;
    border: 0;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.2;
    white-space: nowrap;
    cursor: pointer;
    text-decoration: none;
    transition: transform .2s, box-shadow .2s, filter .2s;
}
.ptg-btn:hover { transform: translateY(-2px); }
.ptg-btn--grad { background: var(--ptg-grad); color: #fff !important; box-shadow: 0 8px 18px rgba(235, 40, 2, .22); }
.ptg-btn--grad:hover { color: #fff; filter: brightness(1.04); }
.ptg-btn--outline {
    min-height: 54px;
    min-width: 152px;
    padding: 12px 34px;
    color: var(--ptg-mid) !important;
    border: 1px solid transparent;
    background: linear-gradient(#fff, #fff) padding-box, var(--ptg-grad) border-box;
}
.ptg-btn--outline:hover { box-shadow: 0 8px 20px rgba(241, 90, 1, .16); }
.ptg-btn--white {
    min-height: 54px;
    min-width: 152px;
    padding: 12px 34px;
    background: #fff;
    color: var(--ptg-mid) !important;
    box-shadow: 0 8px 20px rgba(0, 24, 83, .12);
}
.ptg-more { text-align: center; margin-top: 28px; }

.ptg-round {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    display: inline-grid;
    place-items: center;
    flex: none;
    transition: transform .2s;
}
.ptg-round:hover { transform: translateX(3px); }
.ptg-round--grad { background: var(--ptg-grad); color: #fff !important; box-shadow: 0 8px 16px rgba(235, 40, 2, .2); }

.ptg-price { display: flex; flex-direction: column; line-height: 1.25; min-width: 0; }
.ptg-price small { font-size: 16px; color: var(--ptg-ink); font-weight: 400; }
.ptg-price del { font-size: 16px; color: #8A8FA3; }
.ptg-price strong {
    font-size: 22px;
    font-weight: 700 !important;
    background: var(--ptg-grad);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: var(--ptg-mid);
    white-space: nowrap;
}

.ptg-place { display: flex; align-items: center; gap: 6px; font-size: 14px; color: #555B6E; line-height: 1.3; }
.ptg-place svg { flex: none; color: #8A8FA3; }
.ptg-rating { display: inline-flex; align-items: center; gap: 4px; font-size: 16px; color: #6A6F80; white-space: nowrap; }
.ptg-rating svg { color: var(--ptg-star); }
.ptg-rating strong { color: var(--ptg-navy); font-weight: 700 !important; margin-right: 2px; }
.ptg-rating--pill { background: rgba(255, 255, 255, .95); border-radius: 999px; padding: 3px 12px 3px 10px; font-size: 14px; }
.ptg-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--ptg-red);
    color: #fff;
    border-radius: 999px;
    padding: 4px 12px 4px 10px;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
    white-space: nowrap;
}
.ptg-checks { display: flex; flex-wrap: wrap; gap: 6px 18px; }
.ptg-checks li { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: #333A4D; line-height: 1.3; }
.ptg-checks svg { color: var(--ptg-green); flex: none; }

/* Chip lọc (khối vé vui chơi) + tab (khối tin tức) */
.ptg-chips { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 10px; margin: -16px 0 38px; }
.ptg-chips__pin { display: inline-flex; color: var(--ptg-mid); }
.ptg-chip, .ptg-tab {
    border: 1px solid #E3E6ED;
    background: #fff;
    color: var(--ptg-navy-2);
    border-radius: 999px;
    padding: 4px 12px;
    font-size: 14px;
    line-height: 1.3;
    font-weight: 500;
    cursor: pointer;
    transition: all .2s;
}
.ptg-chip:hover, .ptg-tab:hover { border-color: var(--ptg-orange); color: var(--ptg-mid); }
.ptg-chip.is-on { background: var(--ptg-grad); border-color: transparent; color: #fff; }
.ptg-tabs { display: flex; flex-wrap: wrap; gap: 10px; }

/* ---------- 3. Dải trên cùng + thanh menu ---------- */
.ptg-header-wrap { display: contents; }
.ptg-topbar {
    background: var(--ptg-navy);
    color: #fff;
    font-size: 14px;
    line-height: 1.3;
    position: relative;
    z-index: 60;
}
.ptg-topbar__inner { display: flex; justify-content: space-between; align-items: center; height: 38px; gap: 16px; }
.ptg-topbar a { color: #fff; display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; text-decoration: none; }
.ptg-topbar a:hover { color: #FFD08A; }
.ptg-topbar strong { font-weight: 700 !important; }
.ptg-topbar__right { display: flex; align-items: center; gap: 26px; }
.ptg-topbar__menu ul { display: flex !important; gap: 22px; margin: 0; padding: 0; list-style: none; }
.ptg-topbar__menu li { list-style: none; }
.ptg-topbar__menu a { font-weight: 600; font-style: italic; }
.ptg-topbar__lang { display: flex; margin: 0; padding: 0; list-style: none; }
.ptg-topbar__lang > li > a::before {
    content: "";
    width: 18px;
    height: 18px;
    background: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Cpath d='M2.5 12h19M12 2.5a14.5 14.5 0 0 1 0 19 14.5 14.5 0 0 1 0-19Z'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Cpath d='M2.5 12h19M12 2.5a14.5 14.5 0 0 1 0 19 14.5 14.5 0 0 1 0-19Z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.ptg-topbar__lang .flag-icon { display: none; }
.ptg-topbar__lang > li > a { font-weight: 600; }
.ptg-topbar__lang .dropdown-menu { border-radius: 10px; border: 1px solid var(--ptg-line); padding: 6px; min-width: 160px; }
.ptg-topbar__lang .dropdown-menu a { color: var(--ptg-ink); padding: 7px 10px; border-radius: 7px; display: flex; }
.ptg-topbar__lang .dropdown-menu a:hover { background: var(--ptg-soft); color: var(--ptg-mid); }
.ptg-topbar__lang .dropdown-menu .flag-icon { display: inline-block; }
/* Core tự chèn widget GTranslate thay ô ngôn ngữ (li.gt-widget): quả cầu + tên ngôn ngữ chữ trắng như Figma */
.ptg-topbar .gt-widget { position: relative; list-style: none; }
.ptg-topbar .gt-widget-selected { display: inline-flex !important; align-items: center; gap: 8px; color: #fff !important; background: none !important; border: 0 !important; padding: 0 !important; cursor: pointer; font-size: 14px; font-weight: 600; }
.ptg-topbar .gt-widget-selected::before {
    content: "";
    width: 18px;
    height: 18px;
    flex: none;
    background: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Cpath d='M2.5 12h19M12 2.5a14.5 14.5 0 0 1 0 19 14.5 14.5 0 0 1 0-19Z'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Cpath d='M2.5 12h19M12 2.5a14.5 14.5 0 0 1 0 19 14.5 14.5 0 0 1 0-19Z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.ptg-topbar .gt-widget-selected .gt-flag { display: none !important; }
.ptg-topbar .gt-widget-selected .gt-label { color: #fff !important; font-weight: 600; }
.ptg-topbar .gt-widget-selected .gt-arrow { color: #fff !important; font-size: 0; display: inline-flex; }
.ptg-topbar .gt-widget-selected .gt-arrow::before { content: ""; width: 8px; height: 8px; border: solid currentColor; border-width: 0 1.6px 1.6px 0; transform: rotate(45deg) translate(-2px, -2px); display: block; }
.ptg-topbar .gt-widget-dropdown { border-radius: 10px; border: 1px solid var(--ptg-line); box-shadow: var(--ptg-shadow-lg); color: var(--ptg-ink); z-index: 90; }
.ptg-topbar__login { font-weight: 600; }
.ptg-topbar__login.dropdown-toggle::after { display: none; }
.ptg-user .dropdown-menu { border: 1px solid var(--ptg-line); border-radius: 12px; box-shadow: var(--ptg-shadow-lg); padding: 8px; }
.ptg-user .dropdown-item { border-radius: 8px; font-size: 14px; padding: 8px 12px; color: var(--ptg-ink) !important; }
.ptg-user .dropdown-item:hover { background: var(--ptg-soft); color: var(--ptg-mid) !important; }

.ptg-header {
    position: sticky;
    top: 0;
    z-index: 55;
    background: #fff;
    box-shadow: 0 1px 0 rgba(0, 24, 83, .04);
}
.ptg-header__inner { display: flex; align-items: center; height: 86px; gap: 30px; }
.ptg-brand { flex: none; display: inline-flex; align-items: center; }
.ptg-brand img { height: 70px; width: auto; max-width: none; display: block; }

.ptg-nav { flex: 1 1 auto; min-width: 0; }
.ptg-nav > ul {
    display: flex !important;
    align-items: center;
    gap: 28px;
    margin: 0;
    padding: 0 !important;
    list-style: none;
    flex-wrap: nowrap;
}
.ptg-nav li { position: relative; list-style: none; }
/* main.css ẩn mục thứ 6 trở đi (.main-menu > li.depth-0:nth-child(n+6)) — PTG tự gom mục dư vào "•••" (ptg.js) */
.ptg-nav > ul > li.depth-0 { display: flex !important; align-items: center; }
.ptg-nav > ul > li.depth-0:nth-child(n+7):not(.ptg-nav__more) { display: none !important; }
.ptg-nav > ul > li > a {
    color: var(--ptg-navy) !important;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.3;
    padding: 8px 0 !important;
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: none !important;
    position: relative;
}
.ptg-nav > ul > li > a::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 0;
    height: 2px;
    border-radius: 2px;
    background: var(--ptg-grad);
    transition: width .25s;
}
.ptg-nav > ul > li:hover > a::after, .ptg-nav > ul > li.active > a::after { width: 100%; }
.ptg-nav > ul > li > a svg, .ptg-nav > ul > li > a img { display: none; }
.ptg-header .ptg-nav i.caret {
    position: static !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    font-size: 13px;
    line-height: 1;
    transform: none;
    transition: transform .25s;
    background: none !important;
}
.ptg-nav > ul > li:hover > a i.caret { transform: rotate(180deg); }
.ptg-nav__more > button {
    border: 0;
    background: none;
    padding: 8px 2px;
    color: #9AA0B4;
    display: inline-flex;
    cursor: pointer;
}
.ptg-nav__more > button:hover { color: var(--ptg-navy); }

/* Menu con */
.ptg-nav > ul > li > .subnav,
.ptg-nav > ul > li > .mega {
    position: absolute;
    top: calc(100% + 12px);
    left: -14px;
    min-width: 240px;
    background: #fff;
    border: 1px solid var(--ptg-line-2);
    border-radius: 14px;
    box-shadow: var(--ptg-shadow-lg);
    padding: 10px;
    margin: 0;
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: all .22s ease;
    z-index: 70;
    list-style: none;
    display: block !important;
}
.ptg-nav > ul > li > .subnav::before,
.ptg-nav > ul > li > .mega::before { content: ""; position: absolute; top: -14px; left: 0; right: 0; height: 14px; }
.ptg-nav > ul > li:hover > .subnav, .ptg-nav > ul > li:focus-within > .subnav,
.ptg-nav > ul > li:hover > .mega, .ptg-nav > ul > li:focus-within > .mega { opacity: 1; visibility: visible; transform: none; }
.ptg-nav .mega .subnav { position: static; padding: 0; margin: 0; }
.ptg-header .ptg-nav .subnav { display: block !important; }
.ptg-header .ptg-nav .subnav > li { display: block !important; width: auto; padding: 0; }
.ptg-header .ptg-nav .subnav li a {
    display: block;
    padding: 9px 14px !important;
    border-radius: 9px;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.4;
    color: var(--ptg-ink) !important;
    white-space: nowrap;
}
.ptg-header .ptg-nav .subnav li a:hover,
.ptg-header .ptg-nav .subnav li.active > a { background: var(--ptg-soft) !important; color: var(--ptg-mid) !important; }
.ptg-header .ptg-nav .subnav li a i.caret { float: right; margin-top: 4px !important; transform: rotate(-90deg); }
.ptg-nav .subnav .subnav {
    position: absolute;
    top: -10px;
    left: 100%;
    min-width: 220px;
    background: #fff;
    border: 1px solid var(--ptg-line-2);
    border-radius: 14px;
    box-shadow: var(--ptg-shadow-lg);
    padding: 10px;
    opacity: 0;
    visibility: hidden;
    transition: all .2s;
}
.ptg-nav .subnav li:hover > .subnav { opacity: 1; visibility: visible; }
.ptg-nav > ul > li:nth-last-child(-n+2) > .subnav { left: auto; right: -14px; }
.ptg-nav > ul > li:nth-last-child(-n+2) .subnav .subnav { left: auto; right: 100%; }

.ptg-actions { display: flex; align-items: center; gap: 16px; flex: none; margin-left: auto; }
.ptg-icon-btn {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: #F3F4F6;
    color: var(--ptg-navy) !important;
    display: inline-grid;
    place-items: center;
    position: relative;
    transition: background .2s;
}
.ptg-icon-btn:hover { background: #E9EBF0; }
/* Bật tìm kiếm Meilisearch thì core chèn icon riêng (trước nút ba gạch) → ẩn nút tìm của PTG,
   đưa icon của core lên đầu hàng nút và vẽ thành nút tròn xám như Figma */
.ptg-header:has(.bcs-hs-wrap) .ptg-search-btn { display: none; }
.ptg-actions .bcs-hs-wrap { order: -1; display: inline-flex; margin: 0 !important; }
.ptg-actions .bcs-hs-btn {
    width: 44px !important;
    height: 44px !important;
    border-radius: 50% !important;
    background: #F3F4F6 !important;
    color: var(--ptg-navy) !important;
    display: inline-grid !important;
    place-items: center;
    padding: 0 !important;
    border: 0 !important;
}
.ptg-actions .bcs-hs-btn:hover { background: #E9EBF0 !important; }
.ptg-actions .bcs-hs-btn svg { width: 24px; height: 24px; }
.ptg-btn--contact { min-height: 44px; padding: 10px 20px; gap: 10px; }
.ptg-burger { display: none; background: none; border: 0; cursor: pointer; padding: 8px 4px; }
.ptg-burger span { display: block; width: 24px; height: 2.5px; background: var(--ptg-navy); border-radius: 3px; margin: 5px 0; }

/* Menu điện thoại (khung .bc-menu-mobile sẵn có, home.js bật/tắt) */
.bc-menu-mobile { background: #fff; box-shadow: 18px 0 44px rgba(0, 24, 83, .16); font-family: var(--primary-font); }
.bc-menu-mobile .g-menu { overflow-y: auto; }
.bc-menu-mobile ul li a { color: var(--ptg-navy); font-weight: 600; }
.bc-menu-mobile ul li.active > a { color: var(--ptg-mid); }
.bc-menu-mobile .user-profile .login { color: var(--ptg-mid); font-weight: 700; }
.bc-menu-mobile .g-menu ul { display: block; padding: 0; margin: 0; }
.bc-menu-mobile .g-menu li { position: relative; }
.bc-menu-mobile .g-menu li > a { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.bc-menu-mobile .g-menu li > a .caret { position: static; width: 32px; height: 32px; display: inline-grid; place-items: center; margin: -6px -6px -6px 0; transition: transform .2s; }
.bc-menu-mobile .g-menu li.active > a .caret { transform: rotate(180deg); }
.bc-menu-mobile .g-menu .children-menu { display: none; padding-left: 14px; }
.bc-menu-mobile .g-menu li.active > .children-menu { display: block; }
.bc-menu-mobile .g-menu .children-menu li { padding: 10px 15px; }
.bc-menu-mobile .g-menu .children-menu li a { font-size: 15px; color: var(--ptg-ink); font-weight: 500; }

/* ---------- 4. Chân trang ---------- */
.ptg-footer {
    background: var(--ptg-navy-2) var(--ptg-footer-bg) no-repeat center bottom 47px / 1920px auto;
    color: #fff;
    font-size: 16px;
    line-height: 1.45;
    padding-top: 30px;
    margin-top: 0;
}
.ptg-footer a { color: inherit; text-decoration: none; }
.ptg-footer a:hover { color: #FFD08A; }
.ptg-footer ul { list-style: none; margin: 0; padding: 0; }
.ptg-footer__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 224px 224px 314px;
    gap: 0;
    padding-bottom: 50px;
    min-height: 407px;
}
.ptg-footer__grid--legacy { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 30px; }
.ptg-footer__legacy, .ptg-footer__legacy * { color: #fff !important; }
.ptg-footer__col h4 { font-size: 16px; font-weight: 600 !important; color: #fff; margin: 32px 0 26px; line-height: 1.3; }
.ptg-footer__sub { margin-top: 34px !important; margin-bottom: 14px !important; }
.ptg-footer__side h4.ptg-footer__sub { margin-top: 30px !important; }
.ptg-footer__logo { width: 86px; height: 86px; border-radius: 50%; background: #fff; object-fit: contain; padding: 4px; display: block; margin-left: 2px; }
.ptg-footer__company { font-size: 24px; font-weight: 600; line-height: 1.3; margin: 18px 0 18px; }
/* main.css ép "ul, li { margin-bottom: 0 !important }" → giãn dòng bằng padding */
.ptg-footer__info li { display: flex; gap: 12px; align-items: flex-start; padding-bottom: 20px; }
.ptg-footer__info svg { flex: none; margin-top: 1px; opacity: .95; }
.ptg-footer__info strong { font-weight: 700 !important; }
.ptg-footer__links li { padding-bottom: 18px; line-height: 1.25; }
.ptg-footer__links a { opacity: .92; }
.ptg-footer__certs { display: flex; gap: 10px; flex-wrap: wrap; }
.ptg-footer__certs img { height: 52px; width: auto; }
.ptg-footer__socials { display: flex; gap: 12px; }
.ptg-social { display: inline-flex; border-radius: 50%; transition: transform .2s; }
.ptg-social:hover { transform: translateY(-2px); }
.ptg-footer__map { width: 100%; height: 178px; border-radius: 4px; overflow: hidden; background: #2A3F72; }
.ptg-footer__map iframe { width: 100%; height: 100%; border: 0; display: block; }
.ptg-footer__bottom { background: var(--ptg-navy); text-align: center; font-size: 13px; line-height: 1.4; padding: 15px 0; color: #fff; }
.ptg-footer__bottom p { margin: 0; }

/* Nút liên hệ nổi */
.ptg-float { position: fixed; right: 12px; bottom: 166px; z-index: 80; display: flex; flex-direction: column; gap: 9px; }
.ptg-fbtn {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: #fff;
    color: #fff;
    box-shadow: 0 6px 18px rgba(0, 24, 83, .18);
    transition: transform .2s;
}
.ptg-fbtn:hover { transform: scale(1.06); color: #fff; }
.ptg-fbtn--phone { background: #2BB24C; animation: ptg-ring 2.2s ease-in-out infinite; }
.ptg-fbtn--zalo img { width: 34px; height: 34px; }
@keyframes ptg-ring { 0%, 100% { box-shadow: 0 0 0 0 rgba(43, 178, 76, .45); } 50% { box-shadow: 0 0 0 9px rgba(43, 178, 76, 0); } }
/* nút liên hệ cũ của theme (social-actions) không dùng nữa */
.social-actions { display: none !important; }

/* ---------- 5. Khối: Banner + tìm kiếm (Danang24h_banner_slide) ---------- */
.ptg-hero { position: relative; padding: 0 16px; margin-bottom: 8px; font-size: 16px; line-height: 1.4; }
.ptg-hero__frame {
    position: relative;
    max-width: 1420px;
    height: 486px;
    margin: 0 auto;
    border-radius: 40px;
    overflow: hidden;
    background: var(--ptg-navy-2);
    isolation: isolate;
}
.ptg-hero__slides { position: absolute; inset: 0; z-index: -2; }
.ptg-hero__slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1s ease; }
.ptg-hero__slide.is-on { opacity: 1; }
.ptg-hero__slide img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; max-width: none; }
.ptg-hero__shade { position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(0, 10, 40, .18) 0%, rgba(0, 10, 40, .12) 45%, rgba(0, 10, 40, .32) 100%); }
.ptg-hero__arr {
    position: absolute;
    top: 42%;
    transform: translateY(-50%);
    background: none;
    border: 0;
    color: #fff;
    padding: 6px;
    cursor: pointer;
    opacity: .85;
    transition: opacity .2s, transform .2s;
    z-index: 2;
}
.ptg-hero__arr:hover { opacity: 1; }
.ptg-hero__arr--prev { left: 18px; }
.ptg-hero__arr--next { right: 18px; }
.ptg-hero__text { position: absolute; left: 0; right: 0; top: 152px; text-align: center; padding: 0 80px; color: #fff; }
.ptg-hero .ptg-hero__title {
    color: #fff;
    font-size: 52px;
    font-weight: 700 !important;
    line-height: 1.15;
    letter-spacing: -.01em;
    margin: 0 auto;
    max-width: 900px;
    text-shadow: 0 2px 18px rgba(0, 10, 40, .35);
}
.ptg-hero__title .ptg-hl { background: none; -webkit-text-fill-color: currentColor; color: var(--ptg-red); text-shadow: none; }
.ptg-hero__sub { font-size: 18px; font-weight: 600; margin: 22px 0 0; text-shadow: 0 2px 12px rgba(0, 10, 40, .4); }
.ptg-hero__tabs {
    position: absolute;
    left: 50%;
    bottom: 48px;
    transform: translateX(-50%);
    display: flex;
    background: #fff;
    border-radius: 22px;
    padding: 0;
    z-index: 2;
}
.ptg-hero__tab {
    position: relative;
    min-width: 140px;
    height: 42px;
    padding: 0 22px;
    border: 0;
    border-radius: 22px;
    background: transparent;
    color: var(--ptg-navy) !important;
    font-size: 16px;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    cursor: pointer;
    white-space: nowrap;
    text-decoration: none;
    transition: color .2s;
}
.ptg-hero__tab i, .ptg-hero__tab svg { display: none; }
.ptg-hero__tab.is-on { background: var(--ptg-grad); color: #fff !important; }
.ptg-hero__tab.is-on::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -6px;
    transform: translateX(-50%);
    border: 7px solid transparent;
    border-bottom: 0;
    border-top-color: #F35301;
}
.ptg-hero__search.banner_hero_body {
    position: relative;
    top: auto;
    left: auto;
    width: auto;
    max-width: 940px;
    margin: -36px auto 0;
    z-index: 5;
    background: #fff;
    border-radius: 40px;
    box-shadow: 0 10px 30px rgba(0, 24, 83, .1);
    padding: 0;
    transform: none;
}
.ptg-hero__search:has(.ptg-pane--flight.is-on) { max-width: 1240px; border-radius: 28px; }
.ptg-hero__pane { display: none; }
.ptg-hero__pane.is-on { display: block; }

/* Form tìm khách sạn / tour thật đặt trong thẻ: ô → icon + nhãn đậm + giá trị xám như Figma */
.ptg-hero__search form { margin: 0; }
.ptg-hero__search .g-field-search {
    display: flex;
    align-items: center;
    min-height: 80px;
    padding: 0 22px 0 34px;
    gap: 12px;
    background: none !important;
    box-shadow: none !important;
    border: 0 !important;
}
.ptg-hero__search .g-field-search > .row { flex: 1 1 auto; display: flex; flex-wrap: nowrap; margin: 0 !important; gap: 0; }
.ptg-hero__search .g-field-search > .row > div {
    flex: 1 1 0 !important;
    width: auto !important;
    max-width: none !important;
    padding: 0 10px 0 38px !important;
    border: 0 !important;
    position: relative;
    min-width: 0;
}
.ptg-hero__search .g-field-search > .row > div::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: 26px;
    height: 26px;
    margin-top: -13px;
    background: var(--ptg-grad);
    -webkit-mask: var(--ptg-ico) center / contain no-repeat;
    mask: var(--ptg-ico) center / contain no-repeat;
}
.ptg-hero__search .row > div { --ptg-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-5.6-7-11.2A7 7 0 0 1 19 9.8C19 15.4 12 21 12 21Z'/%3E%3Ccircle cx='12' cy='9.8' r='2.6'/%3E%3C/svg%3E"); }
.ptg-hero__search .row > div:has(.form-date-search-hotel),
.ptg-hero__search .row > div:has(.datepickersearch),
.ptg-hero__search .row > div.filter-date { --ptg-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round'%3E%3Crect x='3' y='4.5' width='18' height='16' rx='3'/%3E%3Cpath d='M8 2.5v4M16 2.5v4M3 10h18'/%3E%3C/svg%3E"); }
.ptg-hero__search .row > div:has(.form-select-guests) { --ptg-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='9' cy='8' r='3.5'/%3E%3Cpath d='M2.5 20c0-3.6 2.9-6 6.5-6s6.5 2.4 6.5 6'/%3E%3Ccircle cx='17' cy='9' r='2.6'/%3E%3Cpath d='M16 14.2c3 .2 5.5 2.3 5.5 5.3'/%3E%3C/svg%3E"); }
.ptg-hero__search .form-group { margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; box-shadow: none !important; }
.ptg-hero__search .form-content { padding: 0 !important; border: 0 !important; background: none !important; box-shadow: none !important; position: relative; min-height: 0; }
.ptg-hero__search .smart-search, .ptg-hero__search .g-map-place, .ptg-hero__search .wrapper-more { border: 0 !important; box-shadow: none !important; background: none !important; padding: 0 !important; }
.ptg-hero__search .form-content > label,
.ptg-hero__search .form-content .wrapper-more > label,
.ptg-hero__search .check-in-wrapper > label {
    display: block;
    font-size: 16px !important;
    font-weight: 600 !important;
    color: var(--ptg-navy) !important;
    margin: 0 0 2px !important;
    line-height: 1.35;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding: 0 !important;
    position: static !important;
}
.ptg-hero__search input.form-control,
.ptg-hero__search .smart-search input,
.ptg-hero__search .form-content input[type="text"] {
    border: 0 !important;
    padding: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    font-size: 14px !important;
    line-height: 1.4 !important;
    color: #6A6F80 !important;
    background: transparent !important;
    box-shadow: none !important;
    width: 100%;
    text-overflow: ellipsis;
}
.ptg-hero__search input::placeholder { color: #6A6F80 !important; opacity: 1; }
.ptg-hero__search .date-icon, .ptg-hero__search .fc-icon { display: none !important; }
/* Ô "Điểm đến" dạng select2 (ajax): trông như dòng chữ xám như Figma, khung gợi ý thả xuống bên dưới */
.ptg-loc-select { position: relative; }
.ptg-loc-select > select:not(.select2-hidden-accessible) { border: 0; background: none; color: #6A6F80; font-size: 14px; padding: 0; width: 100%; appearance: none; -webkit-appearance: none; }
.ptg-loc-select .select2-container { display: block; }
.ptg-loc-select .select2-container .select2-selection--single { height: auto; border: 0 !important; background: none !important; border-radius: 0; outline: none; box-shadow: none !important; }
.ptg-loc-select .select2-container .select2-selection--single .select2-selection__rendered { padding: 0 18px 0 0 !important; font-size: 14px; line-height: 1.4; color: #6A6F80; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ptg-loc-select .select2-container .select2-selection--single .select2-selection__placeholder { color: #6A6F80; }
.ptg-loc-select .select2-container--default .select2-selection--single .select2-selection__arrow { display: none; }
.ptg-loc-select .select2-container--default .select2-selection--single .select2-selection__clear { position: absolute; right: 0; top: 50%; transform: translateY(-50%); margin: 0; font-size: 16px; color: #9AA0B4; font-weight: 400; }
.ptg-loc-select .select2-selection--single:has(.select2-selection__clear) .select2-selection__rendered,
.ptg-loc-select .select2-selection__rendered:not(:has(.select2-selection__placeholder)) { color: var(--ptg-navy); font-weight: 600; }
/* select2 tự lật lên trên khi thiếu chỗ phía dưới → đè lên nhãn và banner. Luôn xổ xuống dưới ô
   (khung thả xuống là span.select2-container thứ hai trong .ptg-loc-select, không có class .select2) */
.ptg-loc-select > .select2-container:not(.select2) { top: 100% !important; left: 0 !important; z-index: 40; }
/* main.css đặt .form-content { overflow:hidden } → cắt mất khung thả xuống và cuộn ngang ô khi ô tìm nhận focus */
.ptg-hero__search .form-content:has(.ptg-loc-select) { overflow: visible !important; }
.ptg-hero__search .row > div:has(.select2-container--open) { z-index: 20; }
.ptg-loc-select .select2-dropdown--above { border-radius: 16px !important; border: 1px solid var(--ptg-line-2) !important; }
.ptg-loc-select .select2-dropdown {
    min-width: 360px;
    margin-top: 16px;
    border: 1px solid var(--ptg-line-2) !important;
    border-radius: 16px !important;
    box-shadow: var(--ptg-shadow-lg);
    overflow: hidden;
    z-index: 30;
    font-family: var(--primary-font);
}
.ptg-loc-select .select2-search--dropdown { padding: 12px 12px 6px; }
.ptg-loc-select .select2-search--dropdown .select2-search__field {
    border: 1px solid var(--ptg-line-2) !important;
    border-radius: 10px;
    padding: 9px 12px !important;
    font-size: 14px !important;
    color: var(--ptg-ink) !important;
    box-shadow: none !important;
    outline: none;
}
.ptg-loc-select .select2-search--dropdown .select2-search__field:focus { border-color: var(--ptg-orange) !important; }
.ptg-loc-select .select2-results > .select2-results__options { max-height: 320px; padding: 4px 6px 8px; }
.ptg-loc-select .select2-results__option { padding: 9px 10px; border-radius: 10px; font-size: 14px; color: var(--ptg-ink); }
.ptg-loc-select .select2-results__option.select2-results__message { color: #6A6F80; }
.ptg-loc-select .select2-container--default .select2-results__option--highlighted[aria-selected],
.ptg-loc-select .select2-container--default .select2-results__option--highlighted.select2-results__option--selectable { background: var(--ptg-soft); color: var(--ptg-ink); }
.ptg-loc-select .select2-container--default .select2-results__option[aria-selected=true] { background: #FFF3E8; }
.ptg-loc-opt { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.ptg-loc-opt__main { display: flex; flex-direction: column; min-width: 0; line-height: 1.3; }
.ptg-loc-opt__main strong { font-weight: 600 !important; color: var(--ptg-navy); }
.ptg-loc-opt__main small { font-size: 12px; color: #8A8FA3; }
.ptg-loc-opt__main em { font-style: normal; font-size: 12px; color: var(--ptg-mid); }
.ptg-loc-opt__count { flex: none; font-size: 12px; color: #6A6F80; background: #F3F4F6; border-radius: 999px; padding: 2px 8px; white-space: nowrap; }
/* Ô ngày khách sạn: "Nhận - Trả phòng" + 2 ngày nối bằng gạch ngang */
.ptg-hero__search .form-date-search-hotel, .ptg-hero__search .date-wrapper, .ptg-hero__search .check-in-wrapper { padding: 0 !important; border: 0 !important; background: none !important; }
.ptg-hero__search .check-in-wrapper:not(:has(> label))::before {
    content: "Nhận - Trả phòng";
    display: block;
    font-size: 16px;
    font-weight: 600;
    color: var(--ptg-navy);
    line-height: 1.35;
    margin-bottom: 2px;
    white-space: nowrap;
}
.ptg-hero__search .inputDate { display: flex !important; align-items: center; justify-content: flex-start !important; gap: 0; padding: 0 !important; border: 0 !important; background: none !important; cursor: pointer; }
.ptg-hero__search .date-display-block { padding: 0 !important; border: 0 !important; background: none !important; }
.ptg-hero__search .date-label-small, .ptg-hero__search .nights-badge { display: none !important; }
.ptg-hero__search .date-display-block .render { font-size: 14px !important; font-weight: 500 !important; color: #6A6F80 !important; white-space: nowrap; line-height: 1.4; }
.ptg-hero__search .date-display-block:first-child .render::after { content: "-"; margin: 0 14px 0 24px; }
/* Ô khách: "1 Phòng" là dòng đậm, người lớn / trẻ em là dòng xám */
.ptg-hero__search .form-select-guests .form-content > .wrapper-more > label { display: none !important; }
.ptg-hero__search .form-select-guests .form-content { cursor: pointer; }
.ptg-hero__search .form-select-guests .form-content::after { display: none !important; }
.ptg-hero__search .form-select-guests .render { display: flex !important; flex-wrap: wrap; align-items: baseline; column-gap: 0; font-size: 14px; color: #6A6F80; line-height: 1.4; }
.ptg-hero__search .form-select-guests .render .room { flex-basis: 100%; font-size: 16px; font-weight: 600; color: var(--ptg-navy); line-height: 1.35; margin-bottom: 2px; }
.ptg-hero__search .form-select-guests .render-line { display: none !important; }
.ptg-hero__search .form-select-guests .render { gap: 2px 0 !important; }
.ptg-hero__search .form-select-guests .render .adults,
.ptg-hero__search .form-select-guests .render .children { display: inline-flex; margin: 0 !important; padding: 0 !important; }
.ptg-hero__search .form-select-guests .render .children::before { content: ",\00a0"; }
.ptg-hero__search .select-guests-dropdown { border-radius: 16px; border: 1px solid var(--ptg-line-2); box-shadow: var(--ptg-shadow-lg); padding: 14px 16px; }
/* Nút tìm: tròn 48px gradient */
.ptg-hero__search .g-button-submit { margin: 0 !important; padding: 0 !important; flex: none; }
.ptg-hero__search .btn-search {
    width: 48px !important;
    height: 48px !important;
    min-width: 0 !important;
    border-radius: 50% !important;
    padding: 0 !important;
    border: 0 !important;
    background: var(--ptg-grad) !important;
    color: #fff !important;
    font-size: 0 !important;
    display: grid !important;
    place-items: center;
    box-shadow: 0 8px 18px rgba(235, 40, 2, .25) !important;
}
.ptg-hero__search .btn-search i { font-size: 22px !important; margin: 0 !important; color: #fff; }
.ptg-hero__search .list-tag-location { padding: 0 34px 16px; }
.ptg-hero__search .list-tag-location .tag { font-size: 13px; border-radius: 999px; padding: 3px 10px; border: 1px solid var(--ptg-line-2); color: var(--ptg-navy-2); }

/* Form vé máy bay (FlightConnect) trong thẻ */
.ptg-pane--flight { padding: 14px 24px 18px; }
.ptg-pane--flight .fc-type-toggle { display: flex; gap: 18px; margin: 0 0 10px 6px; }
.ptg-pane--flight .fc-type-option { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 600; color: var(--ptg-navy); cursor: pointer; }
.ptg-pane--flight .fc-type-option input { accent-color: var(--ptg-mid); }
.ptg-pane--flight .fc-search-box { background: none !important; box-shadow: none !important; padding: 0 !important; border: 0 !important; }
.ptg-pane--flight .fc-search-box .row { align-items: center; margin: 0; }
.ptg-pane--flight .fc-field label { font-size: 15px !important; font-weight: 600 !important; color: var(--ptg-navy) !important; margin-bottom: 2px !important; }
.ptg-pane--flight .fc-field input { font-size: 14px !important; color: #6A6F80 !important; }
/* Bỏ khung viền từng nhóm ô của FlightConnect, ngăn cách bằng vạch dọc mảnh như form khách sạn */
.ptg-pane--flight .fc-flex, .ptg-pane--flight .fc-field, .ptg-pane--flight .fc-grid,
.ptg-pane--flight .form-select-guests .form-content { border: 0 !important; box-shadow: none !important; background: none !important; }
.ptg-pane--flight .fc-search-box .row > div + div { border-left: 1px solid var(--ptg-line-2); }
.ptg-pane--flight .fc-search-box .row > div:last-child { border-left: 0; }
.ptg-pane--flight .fc-field.field-to { border-left: 1px solid var(--ptg-line-2) !important; }
.ptg-pane--flight .fc-date + .fc-date { border-left: 1px solid var(--ptg-line-2) !important; }
.ptg-pane--flight .fc-btn-search { background: var(--ptg-grad) !important; border: 0 !important; border-radius: 999px !important; color: #fff !important; font-weight: 600; min-height: 48px; width: 100%; }

/* ---------- 6. Khối: Địa điểm ghép mảng (vne_list_location kiểu PTG) ---------- */
.ptg-locs { padding: 54px 0 48px; }
.ptg-bg--map {
    background: var(--ptg-soft) url('../images/ptg/world-map.webp') no-repeat right max(-140px, calc(50% - 900px)) top 18px / 760px auto;
    border-top: 1px solid var(--ptg-line);
    border-bottom: 1px solid var(--ptg-line);
    padding: 44px 0 58px;
}
.ptg-locs__grid { display: grid; gap: 20px; }
.ptg-locs--vn .ptg-locs__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-template-rows: 283fr 20fr 34fr 20fr 283fr;
    row-gap: 0;
    aspect-ratio: 1320 / 640;
}
.ptg-locs--vn .ptg-loc--1 { grid-column: 1; grid-row: 1; }
.ptg-locs--vn .ptg-loc--2 { grid-column: 2; grid-row: 1 / 6; }
.ptg-locs--vn .ptg-loc--3 { grid-column: 3; grid-row: 1 / 4; }
.ptg-locs--vn .ptg-loc--4 { grid-column: 1; grid-row: 3 / 6; }
.ptg-locs--vn .ptg-loc--5 { grid-column: 3; grid-row: 5; }
.ptg-locs--vn .ptg-loc:nth-child(n+6) { display: none; }
.ptg-locs--world .ptg-locs__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-template-rows: repeat(2, minmax(0, 1fr));
    aspect-ratio: 1320 / 530;
}
.ptg-locs--world .ptg-loc--1 { grid-column: 1; grid-row: 1 / 3; }
.ptg-locs--world .ptg-loc--2 { grid-column: 2; grid-row: 1; }
.ptg-locs--world .ptg-loc--3 { grid-column: 3 / 5; grid-row: 1; }
.ptg-locs--world .ptg-loc--4 { grid-column: 2 / 4; grid-row: 2; }
.ptg-locs--world .ptg-loc--5 { grid-column: 4; grid-row: 2; }
.ptg-locs--world .ptg-loc:nth-child(n+6) { display: none; }
.ptg-loc {
    position: relative;
    display: block;
    border-radius: 20px;
    overflow: hidden;
    min-height: 0;
    background: #E8ECF3;
    isolation: isolate;
}
.ptg-loc img { position: absolute; inset: 0; width: 100%; height: 100% !important; max-width: none !important; object-fit: cover; transition: transform .6s ease; z-index: -2; }
.ptg-loc::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(0, 24, 83, 0) 45%, rgba(0, 24, 83, .78) 100%); }
.ptg-loc:hover img { transform: scale(1.05); }
.ptg-loc__text { position: absolute; left: 30px; right: 20px; bottom: 28px; color: #fff; display: flex; flex-direction: column; gap: 4px; }
.ptg-loc__name { font-size: 24px; font-weight: 700; line-height: 1.25; text-shadow: 0 1px 10px rgba(0, 10, 40, .25); }
.ptg-loc__count { font-size: 16px; font-weight: 500; opacity: .95; }

/* ---------- 7. Khối: Chặng bay ưu đãi (vne_flight_result kiểu PTG) ---------- */
.ptg-flights { padding: 32px 16px 0; background: url('../images/ptg/mountains.webp') no-repeat center bottom -150px / 100% auto; }
.ptg-flights__box {
    max-width: 1420px;
    margin: 0 auto;
    border-radius: 40px;
    overflow: hidden;
    background-color: #C9846F;
    /* Figma phủ tông hoàng hôn ấm (hồng nâu bên trái → vàng cát bên phải) lên ảnh máy bay */
    background-image: linear-gradient(90deg, rgba(154, 48, 22, .6) 0%, rgba(158, 82, 32, .58) 50%, rgba(152, 110, 42, .6) 100%), var(--ptg-flight-bg);
    background-size: cover;
    background-position: center;
}
.ptg-flights__inner { max-width: 1352px; margin: 0 auto; padding: 46px 16px 44px; }
.ptg-flights .ptg-head { margin-bottom: 40px; }
.ptg-flights .ptg-h2 { text-shadow: 0 2px 14px rgba(80, 20, 0, .25); }
.ptg-flights .ptg-lead { color: #fff; margin-top: 2px !important; }
.ptg-flights__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.ptg-fcard {
    display: flex;
    flex-direction: column;
    background: linear-gradient(135deg, rgba(255, 255, 255, .92), rgba(255, 255, 255, .8));
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    border: 1px solid rgba(255, 255, 255, .7);
    border-radius: 16px;
    padding: 12px 18px 14px;
    color: var(--ptg-navy) !important;
    min-height: 152px;
    transition: transform .2s, box-shadow .2s;
}
.ptg-fcard:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(80, 20, 0, .18); }
.ptg-fcard__top { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding-bottom: 10px; border-bottom: 1px dashed #D7DAE2; min-height: 34px; }
.ptg-fcard__airline { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 500; color: var(--ptg-navy); min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ptg-fcard__airline img { height: 20px; width: auto; max-width: 34px; object-fit: contain; flex: none; }
.ptg-fcard__price { display: inline-flex; align-items: baseline; gap: 4px; white-space: nowrap; }
.ptg-fcard__price small { font-size: 13px; color: #555B6E; }
.ptg-fcard__price strong { font-size: 16px; font-weight: 700 !important; background: var(--ptg-grad); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: var(--ptg-mid); }
.ptg-fcard__cities, .ptg-fcard__dates { display: flex; justify-content: space-between; gap: 8px; font-size: 14px; color: #555B6E; line-height: 1.3; }
.ptg-fcard__cities { margin-top: 10px; }
.ptg-fcard__dates { font-size: 13px; color: #6A6F80; }
.ptg-fcard__cities span, .ptg-fcard__dates span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ptg-fcard__codes { display: flex; align-items: center; gap: 12px; margin: 2px 0 4px; }
.ptg-fcard__codes strong { font-size: 24px; font-weight: 700 !important; color: var(--ptg-navy); line-height: 1.2; letter-spacing: .01em; }
.ptg-fcard__path { flex: 1; position: relative; height: 22px; display: grid; place-items: center; color: var(--ptg-mid); }
.ptg-fcard__path::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    border-top: 1.5px dotted #8A8FA3;
}
.ptg-fcard__path::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    height: 6px;
    margin-top: -2.5px;
    background: radial-gradient(circle, #001853 2.5px, transparent 3px) left center / 6px 6px no-repeat, radial-gradient(circle, #001853 2.5px, transparent 3px) right center / 6px 6px no-repeat;
}
.ptg-fcard__path svg { position: relative; z-index: 1; transform: rotate(90deg); filter: drop-shadow(0 0 3px #fff); }
.ptg-flights .ptg-more { margin-top: 30px; }

/* ---------- 8. Khối: Vé vui chơi (vietfood_event kiểu PTG) ---------- */
.ptg-events { padding: 78px 0 10px; }
.ptg-events .ptg-head { margin-bottom: 40px; }
.ptg-events__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.ptg-ecard {
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 20px;
    overflow: hidden;
    border: 1px solid #EEF0F4;
    box-shadow: 0 6px 22px rgba(0, 24, 83, .05);
    transition: box-shadow .25s, transform .25s;
}
.ptg-ecard:hover { box-shadow: var(--ptg-shadow-lg); transform: translateY(-3px); }
.ptg-ecard__media { position: relative; display: block; aspect-ratio: 427 / 213; overflow: hidden; background: #E8ECF3; }
.ptg-ecard__media img { width: 100%; height: 100% !important; max-width: none !important; object-fit: cover; transition: transform .5s; }
.ptg-ecard:hover .ptg-ecard__media img { transform: scale(1.04); }
.ptg-ecard__media .ptg-rating--pill { position: absolute; left: 16px; top: 16px; }
.ptg-ecard__media .ptg-badge { position: absolute; right: 16px; top: 16px; }
.ptg-ecard__body { padding: 22px 20px 22px; display: flex; flex-direction: column; flex: 1; }
.ptg-ecard__title { font-size: 18px; font-weight: 600 !important; line-height: 1.25; margin: 8px 0 0; }
.ptg-ecard__title a { color: var(--ptg-navy); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ptg-ecard__title a:hover { color: var(--ptg-mid); }
.ptg-ecard .ptg-checks { border-top: 1px solid var(--ptg-line-2); border-bottom: 1px solid var(--ptg-line-2); padding: 10px 0; margin-top: 10px; min-height: 0; }
.ptg-ecard__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 22px; }
.ptg-ecard__foot .ptg-btn { min-width: 152px; }
.ptg-ecard__body > .ptg-ecard__title + .ptg-ecard__foot { border-top: 1px solid var(--ptg-line-2); margin-top: 10px; }

/* ---------- 9. Khối: Tour (vne_list_tour kiểu PTG) ---------- */
.ptg-tours { padding: 50px 0 64px; overflow: hidden; }
.ptg-tours__bg {
    position: absolute;
    inset: 0;
    z-index: -1;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center bottom;
}
.ptg-tours__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, #fff 0%, rgba(255, 255, 255, .82) 20%, rgba(255, 255, 255, .25) 48%, rgba(255, 255, 255, 0) 70%); }
.ptg-tours { isolation: isolate; }
.ptg-tours .ptg-head { margin-bottom: 32px; }
.ptg-tours__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.ptg-tcard { display: flex; flex-direction: column; background: var(--ptg-cream); border-radius: 20px; overflow: hidden; box-shadow: 0 10px 30px rgba(0, 24, 83, .1); transition: transform .25s, box-shadow .25s; }
.ptg-tcard:hover { transform: translateY(-3px); box-shadow: var(--ptg-shadow-lg); }
.ptg-tcard__media { position: relative; display: block; aspect-ratio: 315 / 213; overflow: hidden; background: #E8ECF3; }
.ptg-tcard__media img { width: 100%; height: 100% !important; max-width: none !important; object-fit: cover; transition: transform .5s; }
.ptg-tcard:hover .ptg-tcard__media img { transform: scale(1.04); }
.ptg-tcard__icon { position: absolute; top: 16px; right: 18px; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; color: #fff; background: var(--ptg-red); box-shadow: 0 4px 10px rgba(0, 0, 0, .15); }
.ptg-tcard__icon--percent { background: #fff; color: var(--ptg-red); }
.ptg-tcard__icon--percent svg { width: 30px; height: 30px; }
.ptg-tcard__icon--star { background: #F7A600; }
.ptg-tcard__body { padding: 22px 20px 20px; display: flex; flex-direction: column; flex: 1; }
.ptg-tcard__title { font-size: 18px; font-weight: 600 !important; line-height: 1.25; margin: 8px 0 6px; }
.ptg-tcard__title a { color: var(--ptg-navy); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.ptg-tcard__title a:hover { color: var(--ptg-mid); }
.ptg-tcard__meta { border-top: 1px solid var(--ptg-line-2); padding: 12px 0 4px; margin-top: 8px; display: flex; flex-direction: column; gap: 6px; }
.ptg-tcard__row { display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: 13px; color: #333A4D; }
.ptg-tcard__row span { display: inline-flex; align-items: center; gap: 5px; }
.ptg-tcard__row svg { color: #8A8FA3; flex: none; }
.ptg-tcard__row .is-start svg { color: var(--ptg-red); }
.ptg-tcard__row .is-from svg { color: var(--ptg-green); }
.ptg-tcard__foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; padding-top: 14px; border-top: 1px solid var(--ptg-line-2); }
.ptg-tcard__body > .ptg-rating { margin-bottom: 2px; }
.ptg-tours .ptg-more { margin-top: 20px; }

/* ---------- 10. Khối: Đối tác chạy ngang (vietfood_partner kiểu marquee) ---------- */
.ptg-partners { padding: 56px 0 62px; background: #fff; overflow: hidden; }
.ptg-partners .ptg-head { margin-bottom: 46px; }
.ptg-partners__rows { display: flex; flex-direction: column; gap: 44px; }
.ptg-marquee { overflow: hidden; -webkit-mask: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); mask: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); }
.ptg-marquee__track { display: flex; align-items: center; gap: 0; width: max-content; animation: ptg-marquee calc(var(--ptg-n, 8) * 4.5s) linear infinite; }
.ptg-marquee--rev .ptg-marquee__track { animation-direction: reverse; }
.ptg-marquee:hover .ptg-marquee__track { animation-play-state: paused; }
.ptg-marquee__item { flex: none; width: 290px; height: 100px; display: grid; place-items: center; padding: 0 30px; }
.ptg-marquee__item img { max-height: 100px; max-width: 230px; width: auto; height: auto; object-fit: contain; filter: none; transition: transform .2s; }
.ptg-marquee__item:hover img { transform: scale(1.05); }
@keyframes ptg-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ---------- 11. Khối: Tin tức (Danang24h_new kiểu PTG) ---------- */
.ptg-news { padding: 54px 0 72px; background: var(--ptg-soft); }
.ptg-news .ptg-head { margin-bottom: 48px; align-items: center; }
.ptg-news__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.ptg-ncard { display: flex; flex-direction: column; }
.ptg-ncard__media { display: block; aspect-ratio: 315 / 213; border-radius: 20px; overflow: hidden; background: #E8ECF3; }
.ptg-ncard__media img { width: 100%; height: 100% !important; max-width: none !important; object-fit: cover; transition: transform .5s; }
.ptg-ncard:hover .ptg-ncard__media img { transform: scale(1.05); }
.ptg-ncard__title { font-size: 16px; font-weight: 700 !important; line-height: 1.25; text-transform: uppercase; margin: 26px 0 12px; min-height: 2.5em; }
.ptg-ncard__title a { color: var(--ptg-navy); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ptg-ncard__title a:hover { color: var(--ptg-mid); }
.ptg-ncard__excerpt { font-size: 16px; line-height: 1.4; color: var(--ptg-muted); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin: 0 0 12px !important; min-height: 2.8em; }
.ptg-ncard__more { font-size: 16px; font-weight: 600; color: #F7A100 !important; align-self: flex-start; }
.ptg-ncard__more:hover { color: var(--ptg-mid) !important; }

/* ---------- 12. Màn hình nhỏ ---------- */
@media (max-width: 1399.98px) {
    .ptg-nav > ul { gap: 20px; }
    .ptg-nav > ul > li > a { font-size: 15px; }
    .ptg-header__inner { gap: 22px; }
    .ptg-footer__grid { grid-template-columns: minmax(0, 1fr) 200px 220px 300px; }
}
@media (max-width: 1199.98px) {
    .ptg-nav { display: none; }
    .ptg-burger { display: block; }
    .ptg-actions { gap: 10px; }
    .ptg-hero__frame { height: 440px; border-radius: 32px; }
    .ptg-hero .ptg-hero__title { font-size: 44px; }
    .ptg-hero__text { top: 120px; }
    .ptg-flights__grid, .ptg-tours__grid, .ptg-news__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ptg-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 40px; }
    .ptg-footer__about { grid-column: 1 / -1; }
}
@media (max-width: 991.98px) {
    .ptg-h2 { font-size: 30px; }
    .ptg-head { margin-bottom: 28px; }
    .ptg-events__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ptg-locs--vn .ptg-locs__grid, .ptg-locs--world .ptg-locs__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-rows: none;
        grid-auto-rows: 240px;
        aspect-ratio: auto;
        row-gap: 16px;
        column-gap: 16px;
    }
    .ptg-locs .ptg-loc { grid-column: auto !important; grid-row: auto !important; }
    .ptg-locs .ptg-loc--1 { grid-column: 1 / -1 !important; }
    .ptg-hero__search.banner_hero_body { max-width: 720px; border-radius: 28px; }
    .ptg-hero__search .g-field-search { flex-direction: column; align-items: stretch; padding: 16px 20px 18px; gap: 14px; }
    .ptg-hero__search .g-field-search > .row { flex-direction: column; gap: 16px; }
    .ptg-hero__search .g-field-search > .row > div { flex: none !important; }
    .ptg-hero__search .btn-search { width: 100% !important; border-radius: 999px !important; font-size: 16px !important; font-weight: 600 !important; display: flex !important; justify-content: center; align-items: center; gap: 6px; }
    .ptg-hero__search .btn-search i { font-size: 18px !important; }
}
@media (max-width: 767.98px) {
    .ptg-topbar__menu, .ptg-topbar__lang { display: none; }
    .ptg-topbar__inner { height: 34px; font-size: 13px; }
    .ptg-header__inner { height: 68px; gap: 12px; }
    .ptg-brand img { height: 52px; }
    .ptg-btn--contact span { display: none; }
    .ptg-btn--contact { width: 44px; padding: 0; }
    .ptg-hero { padding: 0 12px; margin-bottom: 44px; }
    .ptg-hero__frame { height: 380px; border-radius: 22px; }
    .ptg-hero__text { top: 70px; padding: 0 18px; }
    .ptg-hero .ptg-hero__title { font-size: 28px; line-height: 1.25; }
    .ptg-hero__title br { display: none; }
    .ptg-hero__sub { font-size: 15px; margin-top: 12px; }
    .ptg-hero__arr { display: none; }
    .ptg-hero__tabs { bottom: 52px; max-width: calc(100% - 24px); overflow-x: auto; scrollbar-width: none; }
    .ptg-hero__tab { min-width: 0; padding: 0 16px; font-size: 14px; height: 38px; }
    .ptg-hero__search.banner_hero_body { margin-top: -30px; border-radius: 20px; }
    /* khung gợi ý trải theo bề ngang thẻ tìm kiếm (lùi trái bằng phần icon của ô) */
    .ptg-loc-select > .select2-container:not(.select2) { left: -30px !important; }
    .ptg-loc-select .select2-dropdown { min-width: 0; width: calc(100vw - 48px) !important; margin-top: 10px; }
    /* nút gọi / Zalo nổi che danh sách gợi ý → ẩn tạm khi đang mở */
    body:has(.ptg-loc-select .select2-container--open) .ptg-float { opacity: 0; pointer-events: none; }
    .ptg-pane--flight { padding: 12px 14px 16px; }
    .ptg-sec { font-size: 15px; }
    .ptg-h2 { font-size: 24px; }
    .ptg-lead { font-size: 14px; }
    .ptg-head--split { align-items: flex-start; }
    .ptg-btn--outline, .ptg-btn--white { min-height: 44px; padding: 10px 24px; min-width: 0; }
    .ptg-locs { padding: 36px 0 32px; }
    .ptg-bg--map { padding: 32px 0 40px; background-size: 340px auto; background-position: right -110px top 6px; }
    .ptg-locs--vn .ptg-locs__grid, .ptg-locs--world .ptg-locs__grid { grid-auto-rows: 170px; row-gap: 12px; column-gap: 12px; }
    .ptg-loc { border-radius: 16px; }
    .ptg-loc__text { left: 16px; bottom: 14px; }
    .ptg-loc__name { font-size: 18px; }
    .ptg-loc__count { font-size: 13px; }
    .ptg-flights { padding: 24px 12px 0; }
    .ptg-flights__box { border-radius: 24px; }
    .ptg-flights__inner { padding: 32px 14px 30px; }
    /* Chặng bay / vé / tin: hàng vuốt ngang thay vì xếp dọc cả chục thẻ */
    .ptg-flights__grid, .ptg-events__grid, .ptg-news__grid {
        grid-template-columns: none;
        grid-auto-flow: column;
        grid-auto-columns: 84%;
        gap: 12px;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scroll-padding: 0 14px;
        scrollbar-width: none;
        margin: 0 -14px;
        padding: 0 14px 6px;
    }
    .ptg-flights__grid::-webkit-scrollbar, .ptg-events__grid::-webkit-scrollbar, .ptg-news__grid::-webkit-scrollbar { display: none; }
    .ptg-flights__grid > *, .ptg-events__grid > *, .ptg-news__grid > * { scroll-snap-align: start; }
    .ptg-events__grid, .ptg-news__grid { margin: 0 -16px; padding: 0 16px 8px; scroll-padding: 0 16px; }
    .ptg-tours__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
    .ptg-tcard__body { padding: 14px 12px; }
    .ptg-tcard__title { font-size: 15px; }
    .ptg-tcard__row { font-size: 12px; }
    .ptg-price strong { font-size: 18px; }
    .ptg-price small, .ptg-price del { font-size: 13px; }
    .ptg-round { width: 38px; height: 38px; }
    .ptg-events { padding: 48px 0 0; }
    .ptg-ecard__body { padding: 16px 16px 18px; }
    .ptg-ecard__foot { padding-top: 16px; gap: 8px; }
    .ptg-ecard__foot .ptg-btn { min-width: 0; padding: 10px 16px; font-size: 15px; }
    .ptg-ecard__media .ptg-rating--pill { left: 10px; top: 10px; font-size: 12px; padding: 2px 9px 2px 7px; }
    .ptg-ecard__media .ptg-badge { right: 10px; top: 10px; font-size: 12px; padding: 3px 9px 3px 8px; }
    .ptg-ecard__title { font-size: 16px; }
    .ptg-chips { margin: -8px 0 24px; gap: 8px; }
    .ptg-tours { padding: 40px 0 44px; }
    .ptg-partners { padding: 40px 0 44px; }
    .ptg-partners__rows { gap: 20px; }
    .ptg-marquee__item { width: 180px; height: 70px; padding: 0 18px; }
    .ptg-marquee__item img { max-height: 64px; max-width: 150px; }
    .ptg-news { padding: 40px 0 48px; }
    .ptg-ncard__title { margin-top: 16px; }
    .ptg-footer { background-size: 1100px auto; }
    .ptg-footer__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0 20px; padding-bottom: 36px; }
    .ptg-footer__side { grid-column: 1 / -1; }
    .ptg-footer__company { font-size: 20px; }
    .ptg-float { bottom: 90px; right: 10px; }
}
@media (max-width: 420px) {
    .ptg-tours__grid { grid-template-columns: minmax(0, 1fr); }
    .ptg-topbar__login span { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    .ptg-hero__slide { transition: none; }
    .ptg-marquee__track { animation: none; }
    .ptg-fbtn--phone { animation: none; }
}
/* === hết file === */
