/* A native Google Maps link, sized to the existing brass menu control. */
.site-header .hf-header-location {
  display: inline-flex;
  flex: 0 0 46px;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  min-width: 44px;
  min-height: 44px;
  padding: 0;
  border: 1px solid #ad864c91;
  border-radius: 50%;
  background: #fcf3e4;
  color: #23495f;
  text-decoration: none;
  cursor: pointer;
  transition: background .2s ease, border-color .2s ease;
}
.site-header .hf-header-location svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.site-header .hf-header-location:hover { background: #ecdfc9; border-color: #23495f; }
.site-header .hf-header-location:focus-visible { outline: 2px solid #245b85; outline-offset: 4px; }
.site-header .hf-header-location-grand { background: #fffdf8; }
.home .site-header .hf-header-location-inn { width: 58px; height: 58px; flex-basis: 58px; }
body:not(.home) .site-header .hf-header-location-inn { width: 51px; height: 51px; flex-basis: 51px; }
@media (max-width: 1050px) and (min-width: 761px) {
  .home .site-header .hf-header-location-inn { width: 52px; height: 52px; flex-basis: 52px; }
  body:not(.home) .site-header .hf-header-location-inn { width: 47px; height: 47px; flex-basis: 47px; }
}
@media (max-width: 760px) {
  .site-header .hf-header-location { width: 44px; height: 44px; flex-basis: 44px; }
  /* Inn: pin on the left, the hotel name centred, menu on the right. */
  body.home .reference-header .header-right,
  body:not(.home) .reference-header .header-right { position: static; transform: none; }
  body.home .reference-header .hf-header-location-inn,
  body:not(.home) .reference-header .hf-header-location-inn {
    position: absolute;
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    z-index: 2;
  }
  body .reference-header .brand { max-width: calc(100% - 136px); }
  /* Grand: preserve room for two full-size touch controls beside the brand. */
  .site-header .nav-inner:has(.hf-header-location-grand) { padding-inline: 16px; gap: 8px; }
  .site-header .nav-inner .hf-header-location-grand { margin-left: auto; }
  .site-header .hf-header-location-grand + .menu-toggle { margin-left: 0; }
  .site-header .nav-inner:has(.hf-header-location-grand) .brand { flex: 0 1 auto; max-width: calc(100% - 104px); gap: 8px; }
  .site-header .nav-inner:has(.hf-header-location-grand) .brand-crest { flex-basis: 48px; width: 48px; height: 39px; background-size: 88px 58.66px; }
  .site-header .nav-inner:has(.hf-header-location-grand) .brand-title { font-size: clamp(1.05rem, 5vw, 1.42rem); letter-spacing: .015em; }
}
@media (max-width: 359px) {
  body .reference-header .brand > span { font-size: 1.15rem; letter-spacing: .08em; }
  body .reference-header .brand small { font-size: .65rem; letter-spacing: .015em; }
  .site-header .nav-inner:has(.hf-header-location-grand) { padding-inline: 12px; gap: 7px; }
  .site-header .nav-inner:has(.hf-header-location-grand) .brand { gap: 6px; }
  .site-header .nav-inner:has(.hf-header-location-grand) .brand-crest { flex-basis: 42px; width: 42px; background-size: 80px 53.33px; }
}
@media (prefers-reduced-motion: reduce) {
  .site-header .hf-header-location { transition: none; }
}
