.site-header { position: fixed; z-index: 50; inset: 0px 0px auto; background: rgba(255, 255, 255, 0.94); border-bottom: 1px solid rgba(23, 23, 23, 0.09); backdrop-filter: blur(12px); transition: box-shadow 0.25s; }
.site-header.scrolled { box-shadow: rgba(0, 0, 0, 0.06) 0px 8px 30px; }
.header-inner { width: min(1320px, 100% - 40px); height: 80px; margin: auto; display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.brand { width: 145px; height: 78px; position: relative; overflow: hidden; flex: 0 0 auto; }
.brand img { width: 104px; height: 78px; object-fit: contain; }
.site-nav { display: flex; align-items: center; gap: clamp(12px, 1.55vw, 24px); font-size: 13px; font-weight: 600; }
.site-nav > a:not(.button) { position: relative; white-space: nowrap; }
.site-nav > a:not(.button)::after { content: ""; position: absolute; left: 0px; bottom: -8px; width: 100%; height: 2px; background: var(--red); transform: scaleX(0); transform-origin: right center; transition: transform 0.25s; }
.site-nav > a:hover::after { transform: scaleX(1); transform-origin: left center; }
.menu-toggle { display: none; border: 0px; background: none; color: var(--ink); }
@media (max-width: 1040px) {.header-inner { width: calc(100% - 32px); }
.menu-toggle { display: flex; align-items: center; gap: 9px; font: 600 10px/1 var(--utility); letter-spacing: 0.1em; cursor: pointer; }
.menu-toggle i, .menu-toggle i::after { display: block; width: 22px; height: 1px; background: rgb(25, 42, 61); transition: transform 0.2s; }
.menu-toggle i { position: relative; }
.menu-toggle i::after { content: ""; position: absolute; top: 7px; }
.menu-toggle[aria-expanded="true"] i { transform: translateY(3px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] i::after { top: 0px; transform: rotate(90deg); }
.site-nav { position: fixed; inset: 80px 0px auto; display: grid; gap: 0px; padding: 22px 32px; background: rgb(18, 30, 43); border-bottom: 1px solid var(--line); transform: translateY(-125%); opacity: 0; visibility: hidden; transition: transform 0.25s, opacity 0.25s; }
.site-nav.open { transform: none; opacity: 1; visibility: visible; }
.site-nav > a:not(.button) { display: block; padding: 13px 0px; border-bottom: 1px solid var(--line); }
.site-nav .button { margin-top: 18px; justify-self: start; }}
@media (max-width: 760px) {.site-header { background: rgba(255, 255, 255, 0.98); }
.header-inner { height: 68px; }
.brand { width: 112px; height: 66px; }
.brand img { width: 88px; height: 66px; }
.site-nav { inset: 68px 0px auto; padding-inline: 22px; }}
.site-header { position: relative; background: rgb(11, 17, 26); border-color: rgb(42, 55, 71); backdrop-filter: none; }
.header-inner { max-width: 1120px; height: 82px; width: calc(100% - 44px); }
.brand { width: 68px; height: 48px; background: white; border-radius: 2px; }
.brand img { object-fit: contain; position: static !important; width: 68px !important; max-width: 68px !important; height: 48px !important; transform: none !important; }
.site-nav { gap: 22px; font-size: 12px; }
.site-nav .current { color: var(--sy-accent) !important; }
.site-footer .brand { width: 68px; }
@media (max-width: 800px) {.site-nav { gap: 12px; }}
@media (max-width: 600px) {.header-inner { height: 72px; }
.menu-toggle { color: rgb(244, 245, 247); }
.site-nav { background: rgb(17, 27, 41); color: rgb(244, 245, 247); border-color: rgb(48, 64, 82); }}

.site-header{--red:#c62828;--ink:#edf2fa;--line:#304052;--utility:Arial,sans-serif;font-family:"Yu Gothic",Meiryo,sans-serif;color:#edf2fa}.site-header *{box-sizing:border-box}.site-header a{color:inherit;text-decoration:none}.site-header .menu-toggle{min-height:44px;min-width:70px;color:#edf2fa}.site-header .menu-toggle i,.site-header .menu-toggle i::after{background:#edf2fa}.site-header .site-nav .current{color:#edf2fa!important}

/* Keep navigation reachable while reading long service pages. */
.site-header { position: sticky; top: 0; }
@media (max-width: 1040px) {
  .site-header .site-nav { position: absolute; inset: 100% 0 auto; max-height: calc(100dvh - 160px); overflow-y: auto; overscroll-behavior: contain; }
}
