hm-map-header { position: absolute; inset: 0 0 auto; z-index: 100; display: block; height: var(--hm-header-h); }
.hm-header { height: 100%; display: grid; grid-template-columns: minmax(180px,auto) minmax(260px,720px) minmax(120px,auto); align-items: center; gap: 18px; padding: 8px 18px; border-bottom: 1px solid rgba(229,234,240,.9); background: rgba(255,255,255,.9); backdrop-filter: blur(18px); }
.hm-brand { min-width: 0; display: flex; align-items: center; gap: 10px; color: var(--hm-text); text-decoration: none; }
.hm-brand__mark { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 12px; background: var(--hm-accent); color: white; box-shadow: 0 8px 20px rgba(19,154,154,.2); }
.hm-brand__mark svg { width: 19px; fill: currentColor; }
.hm-brand__text { min-width: 0; display: grid; gap: 1px; }
.hm-brand__text strong { font-size: 14px; white-space: nowrap; }
.hm-brand__text span { color: var(--hm-muted); font-size: 11px; white-space: nowrap; }
.hm-search { position: relative; width: 100%; }
.hm-search__box { height: 44px; display: grid; grid-template-columns: 24px 1fr 38px; align-items: center; gap: 6px; padding: 0 7px 0 13px; border: 1px solid var(--hm-line); border-radius: 15px; background: #f7fafb; transition: .18s ease; }
.hm-search__box:focus-within { border-color: rgba(19,154,154,.5); background: white; box-shadow: 0 0 0 4px var(--hm-accent-soft); }
.hm-search__box svg { width: 19px; fill: #8693a2; }
.hm-search input { min-width: 0; border: 0; outline: 0; background: transparent; color: var(--hm-text); font-size: 15px; }
.hm-search input::placeholder { color: #98a2b3; }
.hm-search button { width: 36px; height: 34px; border: 0; border-radius: 11px; background: var(--hm-accent); color: white; cursor: pointer; }
.hm-search button svg { width: 17px; fill: currentColor; }
.hm-search-results { position: absolute; top: 51px; left: 0; right: 0; max-height: min(420px,60dvh); overflow-y: auto; border: 1px solid var(--hm-line); border-radius: 16px; background: rgba(255,255,255,.98); box-shadow: var(--hm-shadow); }
.hm-search-results[hidden] { display: none; }
.hm-search-result { width: 100%; padding: 13px 14px; border: 0; border-bottom: 1px solid #eef2f5; background: transparent; text-align: left; cursor: pointer; }
.hm-search-result:last-child { border-bottom: 0; }
.hm-search-result:hover { background: #f6fbfb; }
.hm-search-result strong { display: block; margin-bottom: 4px; color: var(--hm-text); font-size: 14px; }
.hm-search-result span { display: block; color: var(--hm-muted); font-size: 12px; line-height: 1.45; }
.hm-header-actions { display: flex; justify-content: flex-end; gap: 8px; }
.hm-header-button { min-width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid var(--hm-line); border-radius: 14px; background: #fff; color: var(--hm-text); cursor: pointer; }
.hm-header-button svg { width: 20px; fill: currentColor; }
.hm-header-button:hover { color: var(--hm-accent-strong); }

@media (max-width: 760px) {
  .hm-header { grid-template-columns: 38px 1fr 38px; gap: 8px; padding: 7px 10px; }
  .hm-brand__mark { width: 36px; height: 36px; }
  .hm-brand__text { display: none; }
  .hm-search__box { height: 42px; grid-template-columns: 20px 1fr; padding: 0 12px; border-radius: 14px; }
  .hm-search button { display: none; }
  .hm-search input { font-size: 14px; }
  .hm-header-actions .hm-header-button:first-child { display: none; }
  .hm-header-button { width: 38px; min-width: 38px; height: 38px; border-radius: 12px; }
  .hm-search-results { position: fixed; top: calc(var(--hm-header-h) + 6px); left: 10px; right: 10px; }
}


/* Standalone service page header */
.hm-header--service { grid-template-columns: minmax(210px,auto) minmax(180px,1fr) minmax(150px,auto); }
.hm-service-heading { min-width: 0; display: grid; justify-items: center; gap: 1px; text-align: center; }
.hm-service-heading strong { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--hm-text); font-size: 16px; letter-spacing: -.02em; }
.hm-service-heading span { color: var(--hm-muted); font-size: 10px; letter-spacing: .02em; }
.hm-header-button { text-decoration: none; }

@media (max-width: 760px) {
  .hm-header--service { grid-template-columns: 38px minmax(0,1fr) auto; }
  .hm-header--service .hm-brand__text { display: none; }
  .hm-service-heading strong { font-size: 14px; }
  .hm-service-heading span { display: none; }
  .hm-header-actions--service { gap: 5px; }
  .hm-header-actions--service .hm-header-button:first-child { display: grid; }
  .hm-header-actions--service .hm-guide-button { display: none !important; }
}
