/* Shared header, footer and floating contacts for all frontend pages. */
.bnm-site { --home-green:#14583e; --home-ink:#173d2d; --site-header-height:94px; margin-top:0 !important; padding-top:var(--site-header-height) !important; }
.bnm-site #site-main, .bnm-site #site-main [id] { scroll-margin-top:calc(var(--site-header-height) + 16px); }
.bnm-site .bnm-reference-header, .bnm-site .bnm-reference-footer, .bnm-site .bnm-floating-socials { font-family:'Be Vietnam Pro',sans-serif; font-size:14px; line-height:1.7; }
.bnm-site .bnm-reference-header *, .bnm-site .bnm-reference-footer *, .bnm-site .bnm-floating-socials * { box-sizing:border-box; }
.bnm-site .bnm-reference-header .container, .bnm-site .bnm-reference-footer .container { width:min(100% - 64px,1100px); max-width:1100px; padding:0; margin-left:auto; margin-right:auto; }
.bnm-site .bnm-reference-header a, .bnm-site .bnm-reference-footer a, .bnm-site .bnm-floating-socials a { text-decoration:none; }
.bnm-site .bnm-reference-header a:focus-visible, .bnm-site .bnm-reference-header button:focus-visible, .bnm-site .bnm-reference-header input:focus-visible, .bnm-site .bnm-reference-footer a:focus-visible, .bnm-site .bnm-floating-socials a:focus-visible { outline:3px solid #ba9652; outline-offset:5px; }
.bnm-site .bnm-reference-header .navbar-nav { background:transparent; }
/* Homepage reference: warm ivory paper, forest green, traditional serif titles. */
@font-face { font-family: 'Be Vietnam Pro'; src: url('../fonts/be-vietnam-pro/BeVietnamPro-Regular.ttf') format('truetype'); font-weight: 400; font-display: swap; }

@font-face { font-family: 'Be Vietnam Pro'; src: url('../fonts/be-vietnam-pro/BeVietnamPro-Medium.ttf') format('truetype'); font-weight: 500; font-display: swap; }

@font-face { font-family: 'Be Vietnam Pro'; src: url('../fonts/be-vietnam-pro/BeVietnamPro-SemiBold.ttf') format('truetype'); font-weight: 600; font-display: swap; }

@font-face { font-family: 'Be Vietnam Pro'; src: url('../fonts/be-vietnam-pro/BeVietnamPro-Bold.ttf') format('truetype'); font-weight: 700; font-display: swap; }

.bnm-site .bnm-skip-link { position: absolute; left: 16px; top: -80px; padding: 12px; background: white; color: var(--home-green); z-index: 1100; }

.bnm-site .bnm-skip-link:focus { top: 10px; }


/* Keep the shared masthead visible while reserving its height above the content. */
.bnm-site .bnm-reference-header { position: fixed !important; inset: 0 0 auto !important; background: var(--home-green); box-shadow: 0 3px 14px #123d251a !important; border: 0; z-index: 1030; }

.bnm-site .bnm-reference-header .navbar { background: transparent; padding: 15px 0; min-height: 80px; }

.bnm-site .bnm-reference-brand { display: inline-flex; align-items: center; gap: 12px; flex-shrink: 0; color: inherit; }

.bnm-site .bnm-reference-brand img { width: 64px; height: 64px; object-fit: contain; flex-shrink: 0; border-radius: 50%; background: #fff; padding: 2px; }

.bnm-site .bnm-reference-brand strong { display:block; font-family:'Playfair Display',Georgia,serif !important; font-size:28px; font-weight:600; line-height:1.2; letter-spacing:.1px; color:#fff5dc; white-space:nowrap; }

.bnm-site .bnm-reference-brand small { display:block; margin-top:5px; font-size:10px; line-height:1.6; font-weight:400; letter-spacing:.35px; color:#dce5cf; white-space:nowrap; }

.bnm-site .bnm-reference-header .bnm-reference-brand { color: #fff; }

.bnm-site .bnm-reference-header .navbar-collapse { padding: 0; height: auto; }

.bnm-site .bnm-reference-header .navbar-nav { height: auto; width: auto; gap: 22px; }

.bnm-site .bnm-reference-header .nav-link { color: #e6e9d9 !important; font-size: 14px; font-weight: 500; padding: 10px 0 !important; height: auto; white-space: nowrap; }

.bnm-site .bnm-reference-header .nav-link:hover, .bnm-site .bnm-reference-header .nav-link.active { color: #fff !important; }

.bnm-site .bnm-nav-actions { display: flex; align-items: center; gap: 16px; margin-left: 24px; }

.bnm-site .bnm-nav-order { display: inline-flex; align-items: center; gap: 12px; white-space: nowrap; background: #f0edda; color: var(--home-green); font-size: 12px; border-radius: 30px; padding: 9px 18px; }

.bnm-site .bnm-compact-search { display: flex; align-items: center; position: relative; margin: 0; }

.bnm-site .bnm-compact-search input { width: 26px; height: 30px; padding: 4px 26px 4px 0; border: 0; border-bottom: 1px solid transparent; background: transparent; color: white; font-size: 14px; transition: width .25s; }

.bnm-site .bnm-compact-search:focus-within input { width: 130px; padding-left: 4px; border-color: #ffffff80; }

.bnm-site .bnm-compact-search input::placeholder { color: transparent; }

.bnm-site .bnm-compact-search:focus-within input::placeholder { color: #ffffffa0; }

.bnm-site .bnm-compact-search button { position: absolute; right: 0; width: 26px; border: 0; background: transparent; color: #fff; padding: 0; }

.bnm-site .navbar-toggler { border: 1px solid #ffffff50; color: #fff; font-size: 20px; padding: 8px 12px; }

.bnm-site .bnm-reference-footer { background: var(--home-green); color: #f7f3df; padding: 44px 0 0; }

.bnm-site .bnm-footer-grid { display: grid; grid-template-columns: 1.1fr .8fr 1.2fr 1fr; gap: 35px; padding: 0 0 30px; }

.bnm-site .bnm-footer-grid .bnm-reference-brand { align-self: start; color: #f7f3df; }

.bnm-site .bnm-footer-grid .bnm-reference-brand img { width: 80px; height: 80px; }

.bnm-site .bnm-footer-grid .bnm-reference-brand strong { font-size:28px; }

.bnm-site .bnm-footer-grid h2 { font-family: 'Be Vietnam Pro', sans-serif !important; font-size: 16px; letter-spacing: 0; font-weight: 600; margin: 0 0 14px; color: #f7f3df; }

.bnm-site .bnm-footer-grid > div > a, .bnm-site .bnm-footer-grid p { display: block; color: #d2d7c3; font-size: 14px; margin: 0 0 5px; overflow-wrap: anywhere; }

.bnm-site .bnm-footer-grid > div > a:hover { color: #fff; }

.bnm-site .bnm-footer-grid i { margin-right: 6px; color: #d2d7b9; }

.bnm-site .bnm-footer-contact-link { border-bottom: 1px solid #b5c5a850; padding: 8px 0; }

.bnm-site .bnm-footer-contact-link span { float: right; color: #f7f3df; }

.bnm-site .bnm-reference-copyright { display: flex; justify-content: space-between; gap: 20px; border-top: 1px solid #b5c5a850; padding: 18px 0; font-size: 12px; color: #d2d7c3; }

.bnm-site .bnm-floating-socials { position: fixed; right: 22px; bottom: max(20px, env(safe-area-inset-bottom)); display: flex; flex-direction: column; gap: 12px; z-index: 100; }

.bnm-site .bnm-floating-contact { position: relative; width: 48px; height: 48px; display: grid; place-items: center; border: 3px solid #dfe8d2; border-radius: 50%; color: #fff; background: var(--home-green); box-shadow: 0 3px 12px #143e3026; }

.bnm-site .bnm-floating-contact:hover { color: #fff; }

.bnm-site .bnm-floating-icon { display: grid; place-items: center; width: 28px; height: 28px; font-size: 21px; animation: bnm-contact-wiggle 4.5s ease-in-out infinite; }

.bnm-site .bnm-floating-zalo { color: inherit; font-family: Arial, sans-serif; font-size: 12px; font-weight: 700; letter-spacing: -.5px; }

.bnm-site .bnm-floating-contact--facebook .bnm-floating-icon { animation-delay: .45s; }

.bnm-site .bnm-floating-contact:not([target]) .bnm-floating-icon { animation-delay: .9s; }

.bnm-site .bnm-floating-contact:hover .bnm-floating-icon, .bnm-site .bnm-floating-contact:focus-visible .bnm-floating-icon { animation-play-state: paused; }

.bnm-site .bnm-floating-tooltip { position: absolute; right: calc(100% + 12px); top: 50%; transform: translateY(-50%); padding: 6px 12px; border-radius: 6px; background: var(--home-ink); color: #fff; font-size: 11px; line-height: 1.6; white-space: nowrap; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .2s; }

.bnm-site .bnm-floating-contact:hover .bnm-floating-tooltip, .bnm-site .bnm-floating-contact:focus-visible .bnm-floating-tooltip { opacity: 1; visibility: visible; }

@keyframes bnm-contact-wiggle {
    0%, 20%, 100% { transform: rotate(0); }
    3%, 9%, 15% { transform: rotate(-14deg); }
    6%, 12%, 18% { transform: rotate(14deg); }
}


@media (max-width: 1199px) {
    .bnm-site .bnm-reference-header .navbar-nav { gap: 15px; }

    .bnm-site .bnm-reference-brand strong { font-size:24px; }

    .bnm-site .bnm-nav-actions { margin-left: 18px; gap: 12px; }
}

@media (max-width: 991.98px) {
    .bnm-site .bnm-reference-header .navbar-collapse { padding: 20px 0 6px; max-height:calc(100dvh - var(--site-header-height)); overflow-y:auto; }

    .bnm-site .bnm-reference-header .navbar-nav { gap: 0; }

    .bnm-site .bnm-reference-header .nav-link { justify-content: flex-start; font-size: 15px; padding: 9px 0 !important; }

    .bnm-site .bnm-nav-actions { margin: 15px 0 0; justify-content: space-between; }

    .bnm-site .bnm-compact-search input, .bnm-site .bnm-compact-search:focus-within input { width: 190px; border-color: #ffffff70; }

    .bnm-site .bnm-compact-search input::placeholder { color: #ffffffa0; }

    .bnm-site .bnm-footer-grid { grid-template-columns: 1fr 1fr; gap: 30px; }
}

@media (max-width: 767.98px) {
    .bnm-site { --site-header-height:76px; }

    .bnm-site .bnm-reference-header .navbar { min-height: 70px; padding: 12px 0; }

    .bnm-site .bnm-reference-header .bnm-reference-brand img { width: 52px; height: 52px; }

    .bnm-site .bnm-footer-grid { gap: 28px 20px; }

    .bnm-site .bnm-footer-grid > .bnm-reference-brand { grid-column: 1 / -1; }

    .bnm-site .bnm-footer-grid > div:last-child { grid-column: 1 / -1; }

    .bnm-site .bnm-footer-grid > div > a, .bnm-site .bnm-footer-grid p { font-size: 14px; }

    .bnm-site .bnm-reference-copyright { flex-direction: column; gap: 6px; padding-right: 40px; }

    .bnm-site .bnm-floating-socials { right: 12px; bottom: max(12px, env(safe-area-inset-bottom)); gap: 10px; }
}

@media (prefers-reduced-motion: reduce) {
    .bnm-site .bnm-floating-icon { animation: none; }
}

.bnm-site .bnm-reference-header { background:var(--home-green) !important; }
.bnm-site .bnm-reference-footer .bnm-reference-brand small { line-height:1.7; }
.bnm-site .bnm-floating-tooltip { background:#173d2d; }
@media(max-width:991.98px){
    .bnm-site .bnm-reference-header .container,.bnm-site .bnm-reference-footer .container{width:calc(100% - 48px);}
    .bnm-site .bnm-nav-actions{flex-wrap:wrap;gap:12px;}
    .bnm-site .bnm-compact-search{flex:1 1 170px;min-width:0;max-width:100%;}
    .bnm-site .bnm-compact-search input,.bnm-site .bnm-compact-search:focus-within input{width:100%;min-width:0;}
}
@media(max-width:767.98px){.bnm-site .bnm-reference-header .container,.bnm-site .bnm-reference-footer .container{width:calc(100% - 36px);}}
