/* Search/logo fix v6: functional product search and a clear navigation/search gap. */
/* Shared public identity; loaded after each page's layout stylesheet. */
.brand-logo { flex-shrink: 0; gap: 10px; }
.brand-logo .brand-shield {
  display: block;
  width: 56px;
  height: 56px;
  flex: 0 0 56px;
  object-fit: contain;
  border-radius: 8px;
}
.brand-logo .logo-text { display: flex; flex-direction: column; min-width: 0; gap: 4px; }
.brand-logo .brand-name-zh {
  font-family: var(--font-heading, sans-serif);
  font-size: 22px;
  font-weight: 700;
  letter-spacing: 1px;
  line-height: 1.3;
}
.brand-logo .brand-name-en {
  font-family: var(--font-body, sans-serif);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.4px;
  line-height: 1.3;
  white-space: nowrap;
}
.main-header .header-container { gap: 20px; }
.main-header .desktop-nav .nav-list { gap: clamp(12px, 1.4vw, 24px); }
.main-header .desktop-nav .nav-item > a,
.main-header .header-actions .action-btn { white-space: nowrap; }
.main-header .header-actions { flex-shrink: 0; }
/* Match the original expanding search field without overriding its focus state. */
.main-header .search-box { display: flex; flex-shrink: 0; }
.main-header .search-box input {
  width: 140px;
  min-width: 0;
  transition: width 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
/* Keep the field expanded while focus moves from the input to the search button. */
.main-header .search-box:focus-within input { width: 180px; }
.main-header .search-box button { flex-shrink: 0; }
.product-search-status { margin: 0 0 20px; color: var(--text-muted, #737875); }
.drawer-header .brand-logo { padding: 0; gap: 8px; }
.drawer-header .brand-shield { width: 40px; height: 40px; flex-basis: 40px; }
.drawer-header .brand-name-zh { font-size: 18px; }
.drawer-header .brand-name-en { font-size: 11px; }
.drawer-header .close-drawer-btn { flex-shrink: 0; margin-left: 8px; }
.main-footer .footer-logo { padding: 0; color: #fff; }
.main-footer .footer-logo .brand-shield { width: 64px; height: 64px; flex-basis: 64px; }
.main-footer .footer-logo .brand-name-zh { font-size: 24px; }
.main-footer .footer-logo .brand-name-en { color: #e2e8e4; font-size: 14px; }
.main-footer .footer-col { min-width: 0; }
.main-footer .contact-list li { overflow-wrap: anywhere; }
.main-footer .footer-bottom-container { flex-wrap: wrap; gap: 16px 24px; }
.main-footer .copyright { overflow-wrap: anywhere; }
/* Use the original 17heal desktop header proportions from the reference. */
@media (min-width: 1180.01px) {
  .main-header .header-container {
    flex-wrap: nowrap;
    padding: 16px 40px;
    gap: 0;
  }
  .main-header .desktop-nav { flex: 0 1 auto; margin-right: 20px; }
  .main-header .desktop-nav .nav-list { flex-wrap: nowrap; gap: 36px; }
  .main-header .desktop-nav .nav-item { flex: 0 1 auto; }
  .main-header .desktop-nav .nav-item > a { white-space: normal; }
  .main-header .header-actions { flex: 0 1 auto; gap: 16px; }
  .main-header .header-actions .action-btn { white-space: normal; }
}
/* At the reference's narrower desktop width, keep the same single-row layout
   with a compact official logo and one Chinese character per action-label line. */
@media (min-width: 1180.01px) and (max-width: 1535px) {
  .main-header .header-container > .brand-logo {
    gap: 12px;
    margin-right: 8px;
    min-width: max-content;
  }
  .main-header .header-container > .brand-logo .logo-text { flex: 0 0 auto; }
  .main-header .desktop-nav { flex: 1 1 auto; min-width: 0; }
  .main-header .desktop-nav .nav-list {
    gap: clamp(20px, calc(16vw - 168.8px), 36px);
  }
  /* Match the reference's three-character first line for the text-only links. */
  .main-header .desktop-nav .nav-item:nth-last-child(-n + 3) {
    flex: 0 0 3em;
    width: 3em;
    min-width: 3em;
  }
  .main-header .header-actions { flex: 0 0 auto; }
  .main-header .header-container > .brand-logo .brand-shield {
    width: 36px;
    height: 36px;
    flex-basis: 36px;
  }
  .main-header .header-container > .brand-logo .brand-name-zh {
    font-size: 16px;
    letter-spacing: 0.4px;
    white-space: nowrap;
  }
  .main-header .header-container > .brand-logo .brand-name-en {
    font-size: 9.2px;
    letter-spacing: 0.2px;
  }
  .main-header .header-actions .action-btn > i { flex-shrink: 0; }
  .main-header .header-actions .action-btn .btn-text {
    flex: 0 0 1em;
    width: 1em;
    white-space: normal;
    overflow-wrap: anywhere;
    line-height: 1.25rem;
  }
}
/* Smaller screens use the existing full-width search row, never hide both fields. */
@media (max-width: 1180px) {
  .main-header .search-box { display: none; }
  .main-header .mobile-search-row { display: block; }
  .main-header .mobile-search-box input { min-width: 0; }
}
@media (max-width: 768px) {
  .main-header .header-container { gap: 0; }
  .main-header .header-container > .brand-logo { padding: 12px; gap: 8px; }
  .main-header .header-container > .brand-logo .brand-shield { width: 42px; height: 42px; flex-basis: 42px; }
  .main-header .header-container > .brand-logo .brand-name-zh { font-size: 20px; }
  .main-header .header-container > .brand-logo .brand-name-en { font-size: 11px; }
  .main-header .header-actions { padding: 12px; gap: 12px; }
}
@media (max-width: 359px) {
  .main-header .header-container > .brand-logo { padding: 10px 8px; gap: 6px; }
  .main-header .header-container > .brand-logo .brand-shield { width: 36px; height: 36px; flex-basis: 36px; }
  .main-header .header-container > .brand-logo .brand-name-zh { font-size: 18px; }
  .main-header .header-container > .brand-logo .brand-name-en { font-size: 10px; }
  .main-header .header-actions { padding: 10px 8px; gap: 10px; }
}
