/* OneStack v359: SINGLE authoritative public site header/footer.
   Loaded last in header.php, outside page-scoped styles. The /nhanh/ workspace
   has a standalone document and is unaffected. All selectors are shell-scoped. */
:root { --os-shell-primary:#000730; --os-shell-gold:#EFB000; }
body.onestack-global-shell { padding-top:74px !important; }
html body #oneweb-shared-header.oneweb-shared-header.os-v9-header {
  position:fixed !important;
  inset:0 0 auto 0 !important;
  top:0 !important;
  width:100% !important;
  height:74px !important;
  min-height:74px !important;
  max-height:74px !important;
  padding:0 !important;
  margin:0 !important;
  z-index:99999 !important;
  background:#fff !important;
  border:0 !important;
  border-bottom:1px solid #e5eaf2 !important;
  box-shadow:0 6px 20px rgba(0,7,48,.055) !important;
  color:var(--os-shell-primary) !important;
  font-family:var(--onestack-font-body) !important;
  line-height:normal !important;
}
html body.admin-bar #oneweb-shared-header.oneweb-shared-header { top:32px !important; }
html body #oneweb-shared-header .os-v9-container {
  width:min(calc(100% - 64px),1680px) !important;
  max-width:1680px !important;
  margin:0 auto !important;
}
html body #oneweb-shared-header .os-v9-header__inner {
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  flex-wrap:nowrap !important;
  gap:20px !important;
  height:74px !important;
  min-height:74px !important;
  padding:0 !important;
}
html body #oneweb-shared-header .os-v9-logo {
  display:inline-flex !important; align-items:center !important; flex:0 0 168px !important;
  width:168px !important; min-width:168px !important; height:auto !important;
}
html body #oneweb-shared-header .os-v9-logo img {
  display:block !important; width:158px !important; height:auto !important;
  max-height:54px !important; object-fit:contain !important; filter:none !important;
}
html body #oneweb-shared-header .os-v9-nav {
  display:flex !important; align-items:center !important; justify-content:center !important;
  min-width:0 !important; flex:1 1 auto !important;
  gap:clamp(19px,1.45vw,25px) !important;
  font-family:var(--onestack-font-body) !important;
  font-size:16px !important; font-weight:600 !important;
  line-height:1.25 !important; color:var(--os-shell-primary) !important;
}
html body #oneweb-shared-header .os-v9-nav > a {
  position:relative !important; display:inline-flex !important; align-items:center !important;
  width:auto !important; height:74px !important; padding:0 !important;
  white-space:nowrap !important; letter-spacing:0 !important;
  font:inherit !important; font-weight:600 !important;
  color:var(--os-shell-primary) !important;
  text-transform:none !important; /* Labels are already uppercase in shared PHP. */
  text-decoration:none !important;
}
html body #oneweb-shared-header .os-v9-nav > a::after {
  content:"" !important; position:absolute !important;
  height:3px !important; left:0 !important; right:0 !important; bottom:13px !important;
  background:var(--os-shell-gold) !important; border-radius:99px !important;
}
html body #oneweb-shared-header .os-v9-nav > a:is(:hover,:focus-visible,.is-active) {
  color:var(--os-shell-primary) !important;
}
html body #oneweb-shared-header .os-v9-header__actions {
  display:flex !important; flex:0 0 auto !important; align-items:center !important;
  gap:10px !important;
}
html body #oneweb-shared-header :is(.os-v9-icon-btn,.os-v228-auth-btn) {
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  min-height:37px !important; box-shadow:none !important;
  border:1px solid #dfe6ef !important; background:#fff !important;
  color:var(--os-shell-primary) !important; border-radius:9px !important;
}
html body #oneweb-shared-header .os-v9-icon-btn { width:43px !important; }
html body #oneweb-shared-header .os-v228-auth-btn { padding:0 14px !important; font-size:12px !important; font-weight:800 !important; }
html body #oneweb-shared-header :is(.os-v228-register-btn,.os-v228-login-btn,.os-v228-logout-btn) {
  background:linear-gradient(125deg,#ffdc56,#f5c31b) !important;
  border-color:#e2ae14 !important; color:var(--os-shell-primary) !important;
}
html body #oneweb-shared-header :is(.os-v228-auth-btn,.os-v9-icon-btn):is(:hover,:focus-visible) {
  border-color:var(--os-shell-gold) !important;
}

/* Canonical footer structure and colors, on EVERY public page. */
html body #oneweb-shared-footer.oneweb-shared-footer.os-v9-footer {
  display:block !important; width:100% !important; margin:0 !important;
  background:var(--os-shell-primary) !important; color:#e2e8f0 !important;
  border:0 !important; font-family:var(--onestack-font-body) !important;
}
html body #oneweb-shared-footer .os-v9-container {
  width:min(calc(100% - 64px),1120px) !important;
  max-width:1120px !important; margin:0 auto !important;
}
html body #oneweb-shared-footer .os-v9-footer__grid {
  display:grid !important; grid-template-columns:minmax(0,1.17fr) minmax(0,.82fr) minmax(0,.70fr) minmax(0,.78fr) minmax(0,1.45fr) 118px !important;
  column-gap:17px !important; row-gap:23px !important; padding:28px 0 23px !important;
  border-bottom:1px solid rgba(255,255,255,.1) !important;
}
html body #oneweb-shared-footer h3 {
  color:var(--os-shell-gold) !important; font-size:15px !important; line-height:1.35 !important; letter-spacing:.025em !important; margin-bottom:14px !important; font-weight:900 !important;
}
html body #oneweb-shared-footer :is(a,p) {
  color:#e2e8f0 !important; font-size:15px !important; line-height:1.63 !important; overflow-wrap:break-word;
}
html body #oneweb-shared-footer a:is(:hover,:focus-visible) { color:var(--os-shell-gold) !important; }
html body #oneweb-shared-footer .os-v9-footer__brand img {
  display:block !important; width:158px !important; height:auto !important;
  max-height:58px !important; object-fit:contain !important; filter:none !important;
}
html body #oneweb-shared-footer .os-v9-footer__grid > * { min-width:0; }
html body #oneweb-shared-footer .os-v9-footer__contact :is(a,p) {
  font-size:14.5px !important; line-height:1.6 !important; overflow-wrap:anywhere;
}
html body #oneweb-shared-footer .os-v9-footer__brand p {
  font-size:15px !important; line-height:1.67 !important; max-width:none !important;
}
html body #oneweb-shared-footer .os-v9-copyright {
  font-size:13px !important; line-height:1.5 !important; min-height:42px !important;
}
html body #oneweb-shared-footer .os-v9-socials a {
  width:32px !important; height:32px !important; margin:0 !important;
}
/* Contact icon circles: fixed geometry, centered independently from multiline text. */
html body #oneweb-shared-footer .os-v9-footer__contact .os-v9-footer__contact-icon {
  display:grid;
  place-items:center;
  flex:0 0 30px;
  width:30px;
  height:30px;
  min-width:30px;
  min-height:30px;
  aspect-ratio:1;
  margin:0;
  padding:0;
  box-sizing:border-box;
  border:1px solid rgba(239,176,0,.68);
  border-radius:50%;
  background:rgba(239,176,0,.055);
  color:var(--os-shell-gold);
  line-height:1;
}
html body #oneweb-shared-footer .os-v9-footer__contact .os-v9-footer__contact-icon svg {
  display:block;
  flex:none;
  width:16px;
  height:16px;
  max-width:none;
  max-height:none;
  margin:0;
  padding:0;
  color:inherit !important;
  fill:none;
  stroke:currentColor;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
  transform:none;
}
html body #oneweb-shared-footer .os-v9-footer__contact .os-v9-footer__contact-text {
  display:block;
  flex:1 1 auto;
  min-width:0;
  margin:0;
  padding:2px 0 0;
  overflow-wrap:anywhere;
}
html body #oneweb-shared-footer .os-v9-copyright { color:#a4b2c5 !important; }

@media (min-width:1280px) {
  html body #oneweb-shared-header .os-v9-container {
    width:min(calc(100% - 72px),1760px) !important; max-width:1760px !important;
  }
  html body #oneweb-shared-footer .os-v9-container {
    width:min(calc(100% - 72px),1180px) !important; max-width:1180px !important;
  }
}
@media (max-width:1024px) {
  html body #oneweb-shared-footer .os-v9-footer__grid {
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:24px !important;
  }
}
@media (max-width:1199px) {
  body.onestack-global-shell { padding-top:64px !important; }
  html body #oneweb-shared-header.oneweb-shared-header.os-v9-header { height:64px !important; min-height:64px !important; max-height:64px !important; }
  html body #oneweb-shared-header .os-v9-container { width:calc(100% - 28px) !important; max-width:1120px !important; }
  html body #oneweb-shared-header .os-v9-header__inner { height:64px !important; min-height:64px !important; gap:14px !important; }
  html body #oneweb-shared-header .os-v9-logo { flex:0 0 150px !important; width:150px !important; min-width:150px !important; }
  html body #oneweb-shared-header .os-v9-logo img { width:140px !important; max-height:52px !important; }
  html body #oneweb-shared-header :is(.os-v9-nav,.os-v9-header__actions) { display:none !important; }
  html body #oneweb-shared-header .os-v280-mobile-tools { display:flex !important; margin-left:auto !important; }
  html body #oneweb-shared-header :is(.os-v280-mobile-search,.os-v280-mobile-toggle) {
    display:inline-grid !important; place-items:center !important;
    width:40px !important; height:40px !important;
    background:#fff !important; color:var(--os-shell-primary) !important;
    border:1px solid #dfe6ef !important; border-radius:9px !important;
  }
  html body #oneweb-shared-footer .os-v9-container { width:calc(100% - 32px) !important; }
}
@media (max-width:782px) { html body.admin-bar #oneweb-shared-header.oneweb-shared-header { top:46px !important; } }
@media (max-width:640px) {
  html body #oneweb-shared-footer .os-v9-footer__grid {
    grid-template-columns:minmax(0,1fr) !important; gap:22px !important; padding:30px 0 24px !important;
  }
  html body #oneweb-shared-footer :is(a,p) { font-size:15px !important; }
  html body #oneweb-shared-footer .os-v9-footer__contact :is(a,p) { font-size:15px !important; }
  html body #oneweb-shared-footer h3 { font-size:16px !important; }
  html body #oneweb-shared-footer .os-v9-footer__brand img { width:148px !important; }
}
