/* ══════════════════════════════════════════════════════════════
   页眉：所有页面共用（作品 / 图像索引 / Studio / 服务页）
   桌面 14 列栅格：logo 1–2 列，导航条 3–12 列（Menu / Studio / 三个服务页居中，Contact 靠右），时钟 13–14 列
   导航条的字号、间距都是 tokens.css 里的 --nav-* 变量；窄屏（≤ 650px）导航条收进汉堡按钮，展开成全屏列表
   ══════════════════════════════════════════════════════════════ */
.site-header {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 15;
  width: 100%;
  height: var(--header-h);
  display: grid;
  grid-template-columns: repeat(14, 1fr);
  column-gap: .8rem;
  align-items: start;
  padding: 16px 1.6rem 0;
  background: var(--paper);
}

/* logo：原图带透明画布，这里只裁出可见部分 */
.brand {
  grid-column: span 2;
  position: relative;
  display: block;
  width: 128px;
  height: 55.65px;
  margin-left: 8px;
  overflow: hidden;
}
.brand img {
  position: absolute;
  width: 178.414%;
  max-width: none;
  left: -50.742%;
  top: -111.53%;
  pointer-events: none;
}

.nav {
  grid-column: 3 / span 10;
  display: flex;
  align-items: flex-start;   /* 贴着页眉顶：Studio 页的首图从 50px 起，居中会被它压住 */
  font-size: var(--nav-font-size);
}
.nav-toggle { display: none; }
.nav-panel {
  display: flex;
  align-items: flex-start;
  width: 100%;
}
.nav-links {
  display: flex;
  align-items: flex-start;
  gap: var(--nav-gap);
  margin-inline: auto;
}
.nav-contact { font-size: var(--nav-contact-font-size); }

.local {
  grid-column: 13 / span 2;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 10px;
  font-size: 11px;
}

/* ── 导航项：文字上滚 + 下划线展开；当前页（aria-current）下划线常驻 ──────── */
.nav-panel button {
  position: relative;
  padding: 6px 0;
  margin: -6px 0;
  user-select: none;
}
.nav-label-clip { display: block; overflow: hidden; line-height: 1.4; }
.roll { display: inline-block; transition: transform .25s; }

.nav-panel button::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 2px;
  height: var(--nav-current-line);
  background: currentColor;
  transform: scaleX(0);
  transform-origin: right center;
  transition: transform .36s var(--ease-out);
}
.nav-panel button[aria-current="page"]::after,
.nav-panel button:focus-visible::after { transform: scaleX(1); transform-origin: left center; }
.nav-panel button:focus-visible .roll { animation: nav-label-roll .46s var(--ease-out) both; }

@media (hover: hover) and (pointer: fine) {
  .nav-panel button:hover::after { transform: scaleX(1); transform-origin: left center; }
  .nav-panel button:hover .roll { animation: nav-label-roll .46s var(--ease-out) both; }
}

@keyframes nav-label-roll {
  0%   { transform: translateY(0);     opacity: 1; }
  42%  { transform: translateY(-115%); opacity: 0; }
  43%  { transform: translateY(115%);  opacity: 0; }
  100% { transform: translateY(0);     opacity: 1; }
}

/* ── 时钟 ─────────────────────────────────────────────────────── */
.clock {
  position: relative;
  width: 26px;
  height: 26px;
  border: 1px solid;
  border-radius: 50%;
}
.hand {
  position: absolute;
  left: 12px;
  bottom: 12px;
  width: 1px;
  height: 9px;
  background: currentColor;
  transform-origin: bottom;
}
.hand.hour { height: 6px; }

@media (max-width: 650px) {
  .site-header {
    grid-template-columns: 1fr auto;
    column-gap: 16px;
    padding: 16px 32px 16px 16px;
  }
  .brand {
    grid-column: auto;
    width: 104px;
    height: 45.22px;
    margin: 2px 0 0 4px;
  }
  .nav {
    grid-column: auto;
  }

  /* 汉堡按钮：两条线，展开时叠成 × */
  .nav-toggle {
    position: relative;
    z-index: 2;            /* 压在全屏列表上面，才关得掉 */
    display: block;
    width: 44px;
    height: 44px;
    margin: 0 -12px 0 0;
  }
  .nav-toggle span {
    position: absolute;
    left: 12px;
    right: 12px;
    height: 1px;
    background: currentColor;
    transition: transform .3s var(--ease-out);
  }
  .nav-toggle span:nth-child(1) { top: 18px; }
  .nav-toggle span:nth-child(2) { top: 25px; }
  .is-nav-open .nav-toggle span:nth-child(1) { transform: translateY(3.5px) rotate(45deg); }
  .is-nav-open .nav-toggle span:nth-child(2) { transform: translateY(-3.5px) rotate(-45deg); }

  /* 全屏列表：fixed 相对所在的房间（房间有 transform 且占满屏幕），盖住页眉以外的整个页面 */
  .nav-panel { display: none; }
  .is-nav-open .nav-panel {
    display: flex;
    position: fixed;
    inset: 0;
    z-index: 1;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: var(--nav-drawer-gap);
    padding: var(--header-h) 32px;
    background: var(--paper);
    font-size: var(--nav-drawer-font-size);
  }
  .nav-links {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--nav-drawer-gap);
    margin-inline: 0;
  }
  .nav-contact { font-size: inherit; }
  .local { display: none; }
}
