/* Shared masthead: home, every list template, and article details. */
body .topbar.site-header {
  height: 76px
}

body .topbar.site-header>.wrap {
  width: min(calc(100% - 40px), 1200px);
  height: 100%;
  display: flex;
  align-items: center;
  gap: 32px
}

body .topbar.site-header .logo {
  flex: 0 0 174px;
  width: 174px;
  height: 47px
}

body .topbar.site-header .nav {
  margin-left: auto;
  gap: 27px
}

body .topbar.site-header .nav>a,
body .topbar.site-header .nav-dropdown>button {
  font-size: 15px;
  line-height: 1.75
}

body .topbar.site-header .header-tel {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 7px 12px;
  font-size: 14px;
  line-height: 1.75;
  white-space: nowrap;
  color: #c4131c;
  border: 1px solid #d61319;
  border-radius: 22px
}

body .topbar.site-header .header-mobile-phone {
  display: none
}

body .topbar.site-header .menu {
  display: none
}

@media(min-width:1001px) and (max-width:1190px) {
  body .topbar.site-header>.wrap {
    gap: 18px
  }

  body .topbar.site-header .nav {
    gap: 8px
  }
}

@media(max-width:1000px) {
  body .topbar.site-header>.wrap {
    width: calc(100% - 24px);
    gap: 10px
  }

  body .topbar.site-header .logo {
    flex-basis: 137px;
    width: 137px;
    height: 37px
  }

  body .topbar.site-header .header-tel {
    display: none
  }

  body .topbar.site-header .header-mobile-phone {
    display: inline-flex;
    flex: 0 0 44px;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin-left: auto;
    border: 1px solid #f0d5d8;
    border-radius: 50%;
    background: #fff7f7;
    color: #d61319
  }

  body .topbar.site-header .header-mobile-phone svg {
    width: 21px;
    height: 21px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round
  }

  body .topbar.site-header .header-mobile-phone:focus-visible {
    outline: 2px solid #d61319;
    outline-offset: 3px
  }

  body .topbar.site-header .menu {
    display: block;
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    margin-left: 0;
    background: #fff3f4;
    color: #c4131c
  }

  body .topbar.site-header .nav {
    position: fixed;
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    margin-left: 0
  }

  body .topbar.site-header .nav.open {
    display: flex
  }

  body .topbar.site-header .nav>a,
  body .topbar.site-header .nav-dropdown>button {
    font-size: 16px
  }

  body .topbar.site-header .nav-dropdown {
    display: block
  }
}

@media(max-width:760px) {
  body .topbar.site-header {
    height: 62px
  }
}

@media(max-width:1000px) {
  body .topbar.site-header:has(.nav.open) {
    z-index: 200
  }

  body .topbar.site-header :is(.nav a, .nav button, .menu) {
    -webkit-tap-highlight-color: rgba(214, 19, 25, .08)
  }

  body .topbar.site-header .nav {
    top: var(--nav-top, 68px);
    left: 12px;
    right: 12px;
    padding: 10px;
    max-height: calc(100dvh - var(--nav-top, 68px) - 16px - env(safe-area-inset-bottom, 0px));
    overflow-y: auto;
    overscroll-behavior: contain;
    background: rgba(255, 255, 255, .84);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(255, 255, 255, .7);
    border-radius: 16px;
    box-shadow: 0 12px 32px rgba(31, 41, 55, .16)
  }

  body .topbar.site-header .nav>a:not(.nav-phone),
  body .topbar.site-header .nav-dropdown>button {
    display: flex;
    align-items: center;
    min-height: 44px;
    padding: 10px 14px;
    line-height: 1.5
  }

  body .topbar.site-header .nav-dropdown>button {
    justify-content: space-between;
    width: 100%;
    text-align: left
  }

  body .topbar.site-header .nav-dropdown.is-open>.nav-sub {
    display: grid
  }

  body .topbar.site-header .nav-sub {
    position: static;
    width: auto;
    translate: none;
    padding: 3px 8px 5px 18px;
    margin: 0 8px 6px;
    border: 0;
    border-left: 2px solid rgba(214, 19, 25, .18);
    border-radius: 0;
    background: transparent;
    box-shadow: none
  }

  body .topbar.site-header .nav-sub a {
    display: flex;
    align-items: center;
    min-height: 44px;
    background: transparent !important
  }

  body .topbar.site-header .nav a.nav-phone,
  body .topbar.site-header .nav a.nav-phone:focus-visible {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    min-height: 46px;
    margin: 8px 4px 4px;
    padding: 10px 12px;
    border: 1px solid #d61319 !important;
    border-radius: 8px;
    background: #d61319 !important;
    color: #fff !important;
    font-size: 15px;
    line-height: 1.5
  }

  body .topbar.site-header .nav a.nav-phone:hover {
    background: #b80d16 !important;
    color: #fff !important
  }

  body .topbar.site-header .nav a.nav-phone span {
    font-weight: 500
  }
}
