/* Header: retain the theme's native menus and disclosure controls. */
body #header .header-inner { max-width:1320px; min-height:88px; gap:18px; padding:0 24px; }
body #header #logo { width:220px; flex:0 0 220px; margin-right:0; }
body #header #logo img { max-height:54px; max-width:100%; }
body #header .header-nav-main { flex-wrap:nowrap; gap:3px; justify-content:center; }
body #header .header-nav-main > li > .nav-top-link { min-height:44px; font-size:16px; padding:12px 10px; margin:0; letter-spacing:0; line-height:1.3; }
body #header .hotline-box { min-height:44px; padding:8px 14px 8px 10px; gap:8px; white-space:nowrap; }
body #header .hotline-number { font-size:17px; letter-spacing:0; }
body #header .nav-dropdown { top:100%; min-width:250px; padding:10px; max-height:calc(100dvh - 110px); overflow-y:auto; border-radius:12px; }
body #header .nav-dropdown a { min-height:44px; padding:11px 12px; font-size:15px; }
body #header .menu-item:focus-within > .nav-dropdown { opacity:1; visibility:visible; transform:none; left:0; }
body #header a:focus-visible, #main-menu a:focus-visible, #main-menu button:focus-visible { outline:3px solid #ed7b22; outline-offset:2px; }
body #header .header-nav-main > .current-menu-item > a, body #header .header-nav-main > .current-menu-ancestor > a { color:#205f85; background:#eaf3f8; }
/* Tablet uses the same complete drawer as a phone, before the menu can wrap. */
@media(max-width:1099px) {
 body #header .hide-for-medium { display:none !important; }
 body #header .show-for-medium { display:flex !important; }
 body #header .header-inner { min-height:76px; gap:12px; padding:0 18px; }
 body #header #logo { flex:1 1 auto; width:auto; justify-content:center; }
 body #header #logo img { width:220px; max-height:48px; }
 body #header .show-for-medium.flex-left { flex:0 0 44px; }
 body #header .mobile-nav .nav-icon a { display:flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; border:1px solid #dbe5ec; border-radius:9px; }
}
#main-menu { color:#273a46; }
#main-menu .sidebar-menu { padding:18px 0; }
#main-menu .nav-sidebar > li > a { min-height:52px; padding:14px 20px; font-size:16px; color:#273a46; letter-spacing:0; text-transform:none; }
#main-menu .nav-sidebar .toggle { width:48px; min-height:48px; opacity:1; }
#main-menu .nav-sidebar .sub-menu { background:#f3f7fa; }
#main-menu .nav-sidebar .sub-menu a { display:block; min-height:44px; padding:11px 24px; font-size:15px; line-height:1.5; color:#334a5a; }
#main-menu .nav-sidebar .current-menu-item > a { color:#205f85; font-weight:700; background:#eaf3f8; }
body:has(.mfp-wrap #main-menu) #wpwidget,body:has(.mfp-wrap #main-menu) #wpwidget * { visibility:hidden !important; pointer-events:none !important; }
@media(max-width:549px){body #header .header-inner { min-height:70px; } body #header #logo img { width:205px; max-height:43px; }}
/* Blog index and post search. */
.xgv-blog-index #main { background:#f5f8fa; }
.xgv-blog-shell { max-width:1280px; margin:0 auto; padding:40px 24px 60px; color:#273a46; }
.xgv-blog-hero { text-align:center; max-width:820px; margin:0 auto 28px; }
.xgv-blog-kicker { color:#9b5420; font-size:14px; font-weight:700; margin:0 0 10px; }
.xgv-blog-hero h1 { color:#205f85; font-size:clamp(30px,3.2vw,44px); line-height:1.25; margin:0 0 14px; }
.xgv-blog-hero > p:not(.xgv-blog-kicker) { font-size:17px; line-height:1.75; color:#5c6e7a; }
.xgv-blog-search { display:flex; gap:10px; max-width:660px; margin:22px auto 0; }
.xgv-blog-search input { min-width:0; flex:1; margin:0; min-height:48px; padding:12px 15px; border:1px solid #cbd9e2; border-radius:8px; background:#fff; font-size:16px; box-shadow:none; }
.xgv-blog-search button { min-height:48px; margin:0; padding:10px 20px; border-radius:8px; background:#205f85; color:#fff; font-size:15px; text-transform:none; letter-spacing:0; white-space:nowrap; }
.xgv-blog-topics { display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin:0 0 36px; }
.xgv-blog-topics a { display:flex; align-items:center; min-height:44px; padding:9px 17px; border:1px solid #d6e1e8; border-radius:22px; background:#fff; color:#38505f; font-size:14px; }
.xgv-blog-topics a[aria-current], .xgv-blog-topics a:hover { background:#205f85; color:#fff; border-color:#205f85; }
.xgv-blog-list-heading { display:flex; gap:12px; align-items:center; justify-content:space-between; margin:0 0 20px; }
.xgv-blog-list-heading h2 { margin:0; font-size:25px; line-height:1.4; color:#273a46; }
.xgv-blog-list-heading span { color:#627786; font-size:14px; white-space:nowrap; }
.xgv-blog-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.xgv-blog-card { margin:0; min-width:0; display:flex; flex-direction:column; border:1px solid #dce5eb; border-radius:13px; background:#fff; overflow:hidden; }
.xgv-blog-card-image { display:block; aspect-ratio:4/3; background:#eef3f6; overflow:hidden; }
.xgv-blog-card-image img { display:block; width:100%; height:100%; object-fit:contain; transition:transform .25s ease; }
.xgv-blog-card-image:hover img { transform:scale(1.025); }
.xgv-blog-card-content { padding:22px; display:flex; flex:1; flex-direction:column; }
.xgv-blog-meta { display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px; margin-bottom:12px; font-size:12px; line-height:1.6; color:#617786; }
.xgv-blog-meta a { color:#875026; font-weight:600; }
.xgv-blog-card h3 { font-size:20px; line-height:1.5; margin:0 0 12px; }
.xgv-blog-card h3 a { color:#203f54; }
.xgv-blog-card h3 a:hover { color:#b75816; }
.xgv-blog-card-content > p { color:#5c6e7a; font-size:15px; line-height:1.8; margin:0 0 18px; }
.xgv-blog-read { color:#205f85; font-size:14px; font-weight:700; padding:7px 0; margin-top:auto; min-height:36px; }
.xgv-blog-pagination { margin-top:36px; }
.xgv-blog-pagination ul { display:flex; flex-wrap:wrap; justify-content:center; gap:8px; list-style:none; margin:0; }
.xgv-blog-pagination li { margin:0; }
.xgv-blog-pagination .page-numbers { display:flex; min-width:44px; min-height:44px; justify-content:center; align-items:center; padding:8px 13px; background:#fff; border:1px solid #d4e0e7; border-radius:8px; color:#205f85; }
.xgv-blog-pagination .current { background:#205f85; color:#fff; }
.xgv-blog-shell a:focus-visible,.xgv-blog-search :focus-visible { outline:3px solid #ed7b22; outline-offset:3px; }
.xgv-blog-empty { padding:32px; background:#fff; border:1px solid #dce5eb; border-radius:12px; }
@media(max-width:999px){.xgv-blog-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:599px){.xgv-blog-shell{padding:28px 16px 42px;}.xgv-blog-hero > p:not(.xgv-blog-kicker){font-size:16px;}.xgv-blog-search{gap:8px;}.xgv-blog-search button{padding:10px 12px;font-size:14px;}.xgv-blog-search input{padding:10px 12px;}.xgv-blog-topics{justify-content:flex-start;gap:8px;margin-bottom:26px;}.xgv-blog-topics a{padding:8px 12px;font-size:13px;}.xgv-blog-grid{grid-template-columns:1fr;gap:20px;}.xgv-blog-card-content{padding:19px;}.xgv-blog-list-heading h2{font-size:22px;}.xgv-blog-list-heading span{font-size:12px;}}
/* Reading pages: remove the long sidebar and give text a comfortable measure. */
body.single-post #content > .row > .post-sidebar { display:none; }
body.single-post #content > .row { max-width:1060px; margin-left:auto; margin-right:auto; }
body.single-post #content > .row > .large-9 { flex-basis:100%; max-width:100%; padding:0 24px; border:0; }
body.single-post .entry-header .entry-title { font-size:clamp(28px,3vw,40px); line-height:1.35; color:#205f85; }
body.single-post .entry-content { color:#273a46; font-size:17px; line-height:1.85; }
body.single-post .entry-content h2 { font-size:clamp(23px,2.4vw,30px); line-height:1.45; margin:32px 0 18px; }
body.single-post .entry-content h3 { font-size:23px; line-height:1.5; }
body.single-post .entry-content img { max-width:100%; height:auto; }
.xgv-post-trail { display:flex; gap:10px; flex-wrap:wrap; margin:0 0 24px; font-size:14px; color:#6a7c87; }
.xgv-post-trail a { color:#205f85; }
@media(max-width:599px){body.single-post #content > .row > .large-9{padding:0 16px;}body.single-post .entry-content{font-size:16px;line-height:1.85;}}
body #header .header-nav-main > .xgv-dropdown-dismissed > .nav-dropdown { opacity:0; visibility:hidden; }
.mfp-content:has(#main-menu) { width:min(360px,calc(100vw - 40px)); }
#main-menu .xgv-mobile-intro { padding:8px 20px 22px; border-bottom:1px solid #dce5eb; }
#main-menu .xgv-mobile-intro strong { display:block; font-size:21px; color:#205f85; margin-bottom:12px; }
#main-menu .xgv-mobile-intro a { display:block; background:#205f85; color:#fff; border-radius:8px; text-align:center; padding:12px; font-size:15px; font-weight:700; }
#main-menu .searchform { margin:0; }
#main-menu .search-field { font-size:16px; min-height:44px; }

/* Preserve a reachable chat button without covering the mobile reading area. */
@media (max-width: 549px) {
  body:is(.xgv-blog-index,.single-post) #wpwidget .widget-preview-text-message { display: none !important; }
  body:is(.xgv-blog-index,.single-post) #wpwidget .widget-layout:has(.chat-button[aria-expanded="false"]) { width: 56px !important; height: 56px !important; right: 12px !important; bottom: 16px !important; }
  body:is(.xgv-blog-index,.single-post) #wpwidget .chat-button[aria-expanded="false"] { display: block !important; width: 56px !important; height: 56px !important; min-height: 56px !important; min-width: 56px !important; padding: 0 !important; margin: 0 !important; border: 2px solid #fff !important; border-radius: 50% !important; background: #205f85 !important; box-shadow: 0 4px 16px #173f5733 !important; }
  body:is(.xgv-blog-index,.single-post) #wpwidget .chat-button[aria-expanded="false"] :is(.chat-button--white-bg,.chat-button--img-container) { display: none !important; }
  body:is(.xgv-blog-index,.single-post) #wpwidget .chat-button[aria-expanded="false"]::after { content: 'Chat'; display: block; color: #fff; font: 600 14px/52px 'Be Vietnam Pro',sans-serif; text-align: center; }
}
/* The existing header has z-index 9999; keep the navigation drawer above it. */
.mfp-wrap:has(#main-menu) { z-index:20000; }
.mfp-bg.main-menu-overlay { z-index:19999; }
.mfp-wrap:has(#main-menu) .mfp-close { position:fixed; top:0; right:0; width:40px; height:44px; padding:0; background:#205f85; color:#fff; opacity:1; font-size:28px; line-height:44px; }
