/* Responsive action dock inspired by J Travel; VIGOTOUR typography and brand. */
#vgtp-mobile-taskbar { display: none; }
.vgtp-hotline-face { display: none; }
.vgtp-search-modal { font-family: inherit; }
.vgtp-search-modal .modal-dialog { max-width: 480px; margin: 72px auto 24px; }
.vgtp-search-modal .modal-content { border: 0; border-radius: 18px; overflow: hidden; }
.vgtp-search-modal .modal-header { background: #fff; color: #183b62; padding: 16px 18px; }
.vgtp-search-modal .modal-title { font-size: 22px; line-height: 1.3; margin: 0; }
.vgtp-search-modal .modal-body { padding: 18px; }
.vgtp-search-modal label { display: block; font-size: 15px; line-height: 1.5; margin-bottom: 8px; }
.vgtp-search-modal input[type="search"] { display: block; box-sizing: border-box; width: 100%; height: 48px; padding: 10px 12px; border: 1px solid #d9e1e9; border-radius: 10px; font: inherit; font-size: 16px; color: #183b62; background: #fff; }
.vgtp-search-modal .vgtp-dock-submit { display: block; width: 100%; min-height: 46px; margin-top: 14px; border: 0; border-radius: 10px; background: #c9231d; color: #fff; font: inherit; font-size: 16px; font-weight: 600; cursor: pointer; }
.vgtp-search-modal .btn-close { flex: 0 0 auto; min-width: 28px; min-height: 28px; }
@media (max-width: 991px) {
  body { --vgtp-dock-height: 72px; padding-bottom: calc(72px + env(safe-area-inset-bottom, 0px)) !important; }
  html { scroll-padding-bottom: calc(88px + env(safe-area-inset-bottom, 0px)); }
  body header.site-header [data-bs-target="#modalTuVan"] { display: none !important; }
  body .social-list { display: none !important; }
  #vgtp-mobile-taskbar {
    position: fixed; left: 0; right: 0; bottom: 0; top: auto;
    display: grid; grid-template-columns: 1.4fr 1fr 1fr;
    height: calc(72px + env(safe-area-inset-bottom, 0px));
    padding: 0 0 env(safe-area-inset-bottom, 0px); margin: 0;
    box-sizing: border-box; background: #fff; border-top: 1px solid #e8edf2;
    box-shadow: 0 -3px 16px rgba(23,50,77,.08); z-index: 1030;
    font-family: inherit;
  }
  #vgtp-mobile-taskbar > :is(a,button) {
    min-width: 0; height: 71px; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 4px;
    padding: 8px 6px; margin: 0; box-sizing: border-box; border: 0; border-right: 1px solid #e8edf2;
    background: #fff; border-radius: 0; color: #183b62; font: inherit; font-size: 14px; font-weight: 500; line-height: 1.3; text-decoration: none; cursor: pointer;
  }
  #vgtp-mobile-taskbar > :last-child { border-right: 0; }
  #vgtp-mobile-taskbar svg { display: block; width: 24px; height: 24px; flex-shrink: 0; }
  #vgtp-mobile-taskbar .vgtp-dock-search { padding: 10px 8px 10px 12px; }
  #vgtp-mobile-taskbar .vgtp-dock-search-box { display: flex; width: 100%; height: 46px; align-items: center; justify-content: flex-start; gap: 7px; padding: 0 10px; box-sizing: border-box; background: #f2f4f6; border-radius: 10px; color: #52647a; white-space: nowrap; }
  #vgtp-mobile-taskbar .vgtp-dock-search-box svg { width: 20px; height: 20px; }
  #vgtp-mobile-taskbar .vgtp-dock-book { color: #c9231d; font-weight: 600; }
  #vgtp-mobile-taskbar .vgtp-zalo-word { color: #0879dc; font-family: inherit; font-size: 26px; font-weight: 800; letter-spacing: -1.2px; line-height: 1; }
  #vgtp-mobile-taskbar :is(button,a):focus-visible { outline: 3px solid #183b62; outline-offset: -4px; }
  #vgtp-mobile-taskbar :is(button,a):active { background: #f5f7fa; }
  body #call_action {
    left: auto !important; right: 12px !important; bottom: calc(86px + env(safe-area-inset-bottom, 0px)) !important;
    width: 60px !important; height: 60px !important; z-index: 1031;
    background: #c9231d !important; box-shadow: 0 3px 12px rgba(201,35,29,.18);
  }
  body #call_action .in_icon_ti_fixed { background: #c9231d !important; }
  body #call_action .arcu-message-button { background: none !important; }
  body #call_action .arcu-button-content,
  body #call_action .arcu-button-icon { display: none !important; }
  body #call_action .vgtp-hotline-face { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; width: 60px; height: 60px; color: white; font-family: inherit; font-size: 12px; font-weight: 500; line-height: 1.15; pointer-events: none; }
  .vgtp-hotline-face svg { width: 24px; height: 24px; }
  body #call_action .nd_ti_fixed { left: auto !important; right: 0 !important; bottom: 76px !important; max-width: calc(100vw - 24px) !important; min-width: 0 !important; width: 270px; max-height: calc(100dvh - 200px); }
  body #backTotop {
    left: auto !important; right: 20px !important; bottom: calc(162px + env(safe-area-inset-bottom, 0px)) !important;
    width: 44px !important; height: 44px !important; line-height: 44px !important; font-size: 0 !important;
    background: transparent !important; border: 0 !important; box-shadow: none !important; color: #c9231d !important; z-index: 1030;
  }
  body #backTotop::before { content: ""; position: absolute; inset: 8px; background: currentColor; -webkit-mask: url("icons/lucide/arrow-up.svg") center / contain no-repeat; mask: url("icons/lucide/arrow-up.svg") center / contain no-repeat; }
  body #backTotop::after { display: none !important; }
  body #backTotop i { display: none !important; }
  body.modal-open #vgtp-mobile-taskbar,
  body.modal-open #call_action,
  body.modal-open #backTotop,
  html.mm-opened #vgtp-mobile-taskbar,
  html.mm-opened #call_action,
  html.mm-opened #backTotop { visibility: hidden !important; pointer-events: none !important; }
  .vgtp-search-modal .modal-dialog { margin: 72px 12px 20px; width: auto; }
}
@media (max-width: 359px) {
  #vgtp-mobile-taskbar > :is(a,button) { font-size: 13px; }
  #vgtp-mobile-taskbar .vgtp-dock-search { padding-left: 8px; }
  #vgtp-mobile-taskbar .vgtp-dock-search-box { gap: 5px; padding: 0 7px; }
}

/* Desktop: reuse the booking form and Zalo link in a compact right rail. */
@media (min-width: 992px) {
  body header.site-header [data-bs-target="#modalTuVan"],
  body .social-list { display: none !important; }
  #vgtp-mobile-taskbar {
    position: fixed; top: auto; left: auto; right: 20px; bottom: 72px;
    display: flex; flex-direction: column; gap: 12px;
    width: 60px; height: 132px; margin: 0; padding: 0;
    background: transparent; border: 0; box-shadow: none; z-index: 1030;
    font-family: var(--vgt-font-family, inherit);
  }
  #vgtp-mobile-taskbar .vgtp-dock-search { display: none; }
  #vgtp-mobile-taskbar > :is(.vgtp-dock-book,.vgtp-dock-zalo) {
    position: relative; display: flex; align-items: center; justify-content: center;
    flex: 0 0 60px; flex-direction: column; gap: 3px;
    width: 60px; height: 60px; min-width: 0; margin: 0; padding: 5px;
    box-sizing: border-box; border: 0; border-radius: 50%;
    background: var(--vgt-accent, #c9231d); color: #fff;
    font-family: inherit; font-size: 12px; font-weight: 500; line-height: 1.15;
    text-align: center; text-decoration: none; white-space: nowrap; cursor: pointer;
    box-shadow: 0 3px 12px rgba(23,50,77,.16);
    transition: transform .2s ease, box-shadow .2s ease;
  }
  #vgtp-mobile-taskbar svg { display: block; width: 24px; height: 24px; flex-shrink: 0; }
  #vgtp-mobile-taskbar .vgtp-zalo-word {
    color: #fff; font-family: inherit; font-size: 23px; font-weight: 800;
    line-height: 1; letter-spacing: -1px;
  }
  #vgtp-mobile-taskbar .vgtp-dock-zalo > span:last-child { display: none; }
  #vgtp-mobile-taskbar > :is(.vgtp-dock-book,.vgtp-dock-zalo):hover {
    transform: translateY(-2px); box-shadow: 0 5px 16px rgba(23,50,77,.24);
  }
  #vgtp-mobile-taskbar :is(button,a):focus-visible,
  body #call_action .in_icon_ti_fixed:focus-visible {
    outline: 3px solid var(--vgt-heading, #17324d); outline-offset: 4px;
  }
  body #call_action {
    left: auto !important; right: 20px !important; bottom: 216px !important;
    width: 60px !important; height: 60px !important; z-index: 1031;
    background: var(--vgt-accent, #c9231d) !important;
    font-family: var(--vgt-font-family, inherit);
    box-shadow: 0 3px 12px rgba(23,50,77,.16);
  }
  body #call_action .in_icon_ti_fixed { background: var(--vgt-accent, #c9231d) !important; }
  body #call_action .arcu-message-button { background: none !important; }
  body #call_action .arcu-button-content,
  body #call_action .arcu-button-icon { display: none !important; }
  body #call_action .vgtp-hotline-face {
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
    width: 60px; height: 60px; color: #fff; font-family: inherit;
    font-size: 12px; font-weight: 500; line-height: 1.15; pointer-events: none;
  }
  body #call_action .vgtp-hotline-face svg { width: 24px; height: 24px; }
  body #call_action .nd_ti_fixed {
    left: auto !important; right: 76px !important; bottom: 0 !important;
    width: 270px; max-width: calc(100vw - 116px) !important;
    max-height: calc(100dvh - 248px); font-family: inherit;
  }
  body #backTotop {
    left: auto !important; right: 28px !important; bottom: 16px !important;
    width: 44px !important; height: 44px !important; line-height: 44px !important;
    font-size: 0 !important; background: transparent !important; border: 0 !important;
    box-shadow: none !important; color: var(--vgt-accent, #c9231d) !important; z-index: 1030;
  }
  body #backTotop::before {
    content: ""; position: absolute; inset: 8px; background: currentColor;
    -webkit-mask: url("icons/lucide/arrow-up.svg") center / contain no-repeat;
    mask: url("icons/lucide/arrow-up.svg") center / contain no-repeat;
  }
  body #backTotop::after,
  body #backTotop i { display: none !important; }
  body.modal-open #vgtp-mobile-taskbar,
  body.modal-open #call_action,
  body.modal-open #backTotop,
  html.mm-opened #vgtp-mobile-taskbar,
  html.mm-opened #call_action,
  html.mm-opened #backTotop { visibility: hidden !important; pointer-events: none !important; }
}
@media (min-width: 992px) and (prefers-reduced-motion: reduce) {
  #vgtp-mobile-taskbar > :is(.vgtp-dock-book,.vgtp-dock-zalo) { transition: none; }
  #vgtp-mobile-taskbar > :is(.vgtp-dock-book,.vgtp-dock-zalo):hover { transform: none; }
}
