/* Keep public navigation usable independently of the external icon library. */
.public-header { position: sticky; top: 0; z-index: 100; background: #fff; border-bottom: 1px solid #e5e5e5; color: #1a1a1a; }
.public-header .header-inner { max-width: 1200px; margin: 0 auto; height: 64px; padding: 0 24px; display: flex; align-items: center; justify-content: space-between; }
.public-header .logo { display: flex; align-items: center; gap: 10px; text-decoration: none; }
.public-header .logo-img { width: 40px; height: 40px; border-radius: 8px; object-fit: cover; }
.public-header .logo-text { font-size: 18px; font-weight: 700; color: #1b2a4a; }
.public-header .nav { display: flex; align-items: center; }
.public-header .nav a { font-size: 14px; text-decoration: none; color: #666; }
.public-header .nav a.active { color: #e60012; font-weight: 600; }
.public-header .btn-admin { display: inline-flex; align-items: center; gap: 6px; background: #333; color: #fff; padding: 8px 18px; border-radius: 8px; font-size: 13px; text-decoration: none; }
.public-header .btn-admin svg { width: 15px; height: 15px; }
.header-inner, .site-header-inner { gap: 16px; }
.nav, .site-nav { gap: 4px; }
.nav a, .site-nav a { white-space: nowrap; }
.nav a { padding: 8px 10px; }
.site-nav a { padding: 8px 10px; }
.nav .showroom-link, .site-nav .showroom-link { color: #634578; }
.header-actions { display: flex; align-items: center; gap: 8px; }
.site-header-actions .btn-admin span { display: inline; }
.mobile-menu-btn {
  display: none; align-items: center; justify-content: center; gap: 5px;
  width: auto; min-width: 64px; min-height: 44px; padding: 8px;
  border: 1px solid #e5e5e5; border-radius: 8px; background: #fff;
  color: #1a1a1a; font: inherit; font-size: 13px; cursor: pointer;
}
.mobile-menu-btn svg { width: 18px; height: 18px; }
.mobile-menu-btn:focus-visible, #siteNav a:focus-visible {
  outline: 3px solid #705187; outline-offset: 3px;
}
@media (max-width: 1100px) {
  .header-inner, .site-header-inner, .public-header .header-inner { padding: 0 16px; gap: 8px; }
  .nav, .site-nav, .public-header .nav {
    display: none; position: absolute; top: 100%; left: 0; right: 0;
    flex-direction: column; align-items: stretch; gap: 2px;
    max-height: calc(100dvh - 64px); overflow-y: auto;
    padding: 12px 16px; background: #fff; border-bottom: 1px solid #e5e5e5;
    box-shadow: 0 12px 24px rgba(0,0,0,.08);
  }
  .nav.open, .site-nav.open, .public-header .nav.open { display: flex; }
  .nav a, .site-nav a { display: block; padding: 11px 14px; min-height: 44px; border-radius: 8px; }
  .nav a:hover, .site-nav a:hover { background: #f5f5f5; }
  .mobile-menu-btn { display: inline-flex; flex-shrink: 0; }
  .btn-admin, .public-header .btn-admin { white-space: nowrap; padding: 8px 10px; }
}
@media (max-width: 380px) {
  .header-inner, .site-header-inner, .public-header .header-inner { padding: 0 10px; }
  .logo-text, .site-logo-text, .public-header .logo-text { font-size: 16px; }
  .logo-img, .site-logo-img, .public-header .logo-img { width: 32px; height: 32px; }
  .logo, .site-logo, .public-header .logo { gap: 6px; }
  .header-actions, .site-header-actions { gap: 4px; }
  .btn-admin, .public-header .btn-admin { padding: 8px; font-size: 12px; }
  .btn-admin svg, .public-header .btn-admin svg { display: none; }
}
