/* One header geometry for every public page. Active state never changes width. */
html { scrollbar-gutter: stable; }
.site-header .header-inner {
  display: grid; grid-template-columns: minmax(310px,1fr) auto auto;
  align-items: center; gap: 24px; width: 100%; max-width: none;
  min-height: 104px; padding: 12px 2.7%; margin: 0;
}
.site-header .brand { display: flex; gap: 13px; min-width: 0; margin: 0; }
.site-header .brand img { width: 56px; height: 65px; flex-shrink: 0; object-fit: contain; }
.site-header .brand-rule { height: 49px; width: 1px; flex-shrink: 0; margin: 0 2px 0 1px; }
.site-header .brand-name { font: 400 20px/1.15 var(--display); letter-spacing: -.55px; }
.site-header .brand-affiliation { display: block; margin-top: 7px; font: 500 9px/1.4 var(--sans); letter-spacing: .01em; color: #6a6458; }
.site-header .desktop-navigation { display: flex; align-items: center; gap: 20px; margin: 0; white-space: nowrap; }
.site-header .desktop-navigation a { position: relative; display: block; padding: 12px 0; font: 650 12.5px/1.6 var(--sans); color: var(--ink); }
.site-header .desktop-navigation a[aria-current="page"] { font-weight: 650; color: var(--gold-dark); }
.site-header .desktop-navigation a[aria-current="page"]::after { content: ""; position: absolute; bottom: 4px; left: 0; right: 0; height: 1px; background: var(--gold); }
.site-header .header-tools { display: flex; align-items: center; gap: 17px; margin: 0; white-space: nowrap; }
.site-header .language-control { display: flex; align-items: center; gap: 7px; font: 400 10px/1.5 var(--sans); }
.site-header .language-control strong { font-weight: 750; }
.site-header .language-control span { border-left: 1px solid #c8c3b9; padding-left: 7px; color: #5d6265; }
.site-header .search-control { display: flex; align-items: center; gap: 7px; font: 650 12px/1.6 var(--sans); }
.site-header .search-control .icon { width: 20px; height: 20px; }
.site-header .support-control { font: 650 12px/1.6 var(--sans); }
.site-header .mobile-menu-toggle { display: none; }
.site-header .calendar-shortcut { display:none; align-items:center; justify-content:center; width:44px; height:44px; flex:none; border-radius:3px; }
.site-header .calendar-shortcut img { width:22px; height:22px; }
.site-header .calendar-shortcut:hover, .site-header .calendar-shortcut[aria-current="page"] { background:#eeeae2; }
.site-header .mobile-navigation[hidden] { display: none!important; }
.review-notice { height: 25px; min-height: 25px; padding: 0 10px; gap: 7px; font: 400 10px/1.4 var(--sans); white-space: nowrap; }
.review-notice a.review-desk-link { margin-left: 8px; text-decoration: underline; text-underline-offset: 3px; }
@media (min-width: 1700px) {
  .site-header .header-inner { padding-inline: 4%; gap: 28px; }
  .site-header .brand-name { font-size: 24px; }
  .site-header .desktop-navigation { gap: 26px; }
  .site-header .desktop-navigation a { font-size: 14px; }
}
@media (max-width: 1190px) {
  .site-header .header-inner { grid-template-columns: minmax(0,1fr) auto; min-height: 95px; padding: 12px 4%; gap: 20px; }
  .site-header .desktop-navigation { display: none; }
  .site-header .brand-name { font-size: 22px; }
  .site-header .mobile-menu-toggle { display: flex; align-items: center; justify-content: center; padding: 9px; }
  .site-header .calendar-shortcut { display:inline-flex; }
  .site-header .header-tools { gap:12px; }
}
@media (max-width: 760px) {
  .review-notice { height: 24px; min-height: 24px; font-size: 9px; }
  .site-header .header-inner { min-height: 86px; padding: 11px 20px; gap: 8px; }
  .site-header .brand { gap: 8px; }
  .site-header .brand img { width: 38px; height: 52px; }
  .site-header .brand-rule { height: 40px; margin: 0 2px; }
  .site-header .brand-name { font-size: clamp(12px,3.3vw,15px); letter-spacing: -.35px; }
  .site-header .brand-affiliation { font-size: 8px; margin-top: 4px; max-width: 215px; }
  .site-header .header-tools { gap: 2px; }
  .site-header .language-control, .site-header .support-control, .site-header .search-control span { display: none; }
  .site-header .search-control, .site-header .mobile-menu-toggle { padding: 6px; }
  .site-header .header-tools .icon { width: 20px; height: 20px; }
}
@media (max-width: 400px) { .review-notice-detail { display: none; } }
@media (max-width: 370px) {
  .site-header .header-inner { padding-inline: 14px; gap: 6px; }
  .site-header .brand img { width: 31px; height: 45px; }
  .site-header .brand-name { font-size: 12.5px; }
}
