/* ============================================================
   武婕律师个人网站 v2 — 参考 melissamahoney.me
   满屏人物摄影 · 极细字重大字名 · 左右分列导航 · 首页一屏
   ============================================================ */

:root {
  --ink-900: #141920;
  --ink-800: #1b212a;
  --wine-500: #8e2a3a;
  --wine-400: #a83d4e;
  --gold-400: #c6a15b;
  --paper: #efeae2;
  --mist: #97a1af;
  --hairline: rgba(198, 161, 91, .22);

  --serif: "Noto Serif SC", "Songti SC", "STSong", serif;
  --sans: "Noto Sans SC", "PingFang SC", sans-serif;
  --latin: "Cormorant Garamond", Georgia, serif;

  --pad-x: clamp(1.25rem, 5vw, 4.5rem);
  --ease-out: cubic-bezier(.19, 1, .22, 1);
}

* { margin: 0; padding: 0; box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  interpolate-size: allow-keywords; /* 允许 height:auto 参与过渡（details 平滑展开） */
}

body {
  background: var(--ink-900);
  color: var(--paper);
  font-family: var(--sans);
  font-weight: 300;
  line-height: 2;
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
:focus-visible { outline: 2px solid var(--gold-400); outline-offset: 3px; }
::selection { background: var(--wine-500); color: var(--paper); }

/* ---------- 分列导航（首页与内页共用） ---------- */
.top {
  position: relative;
  z-index: 10;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: clamp(1rem, 3vw, 3rem);
  width: 100%; /* 首页 .top 是 flex 子项，margin auto 会使其收缩，需显式全宽 */
  max-width: 1200px;
  margin: 0 auto;
  padding: 2rem var(--pad-x) 0;
}
.top-links {
  display: flex;
  gap: clamp(.9rem, 2vw, 2rem);
}
.top-links.left { justify-content: flex-start; }
.top-links.right { justify-content: flex-end; }
.top-links a {
  font-size: .78rem;
  letter-spacing: .28em;
  color: var(--mist);
  white-space: nowrap;
  padding: .3rem 0;
  transition: color .3s;
}
.top-links a:hover { color: var(--paper); }
.top-links a.is-current { color: var(--gold-400); }

.top-toggle {
  display: none;
  flex-direction: column;
  gap: 7px;
  background: none;
  border: 0;
  padding: .6rem 0;
  cursor: pointer;
  justify-self: end;
}
.top-toggle span {
  width: 26px; height: 1.5px;
  background: var(--paper);
  transition: transform .35s var(--ease-out);
}
.top-toggle.is-open span:nth-child(1) { transform: translateY(4.25px) rotate(45deg); }
.top-toggle.is-open span:nth-child(2) { transform: translateY(-4.25px) rotate(-45deg); }

/* 全屏菜单（移动端） */
.menu-overlay {
  position: fixed;
  inset: 0;
  z-index: 40;
  background: rgba(20, 25, 32, .96);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  display: grid;
  place-items: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity .45s, visibility .45s;
}
.menu-overlay.is-open { opacity: 1; visibility: visible; }
.menu-list { display: grid; gap: .5rem; text-align: center; }
.menu-list a {
  font-family: var(--serif);
  font-weight: 300;
  font-size: clamp(1.4rem, 6vw, 2rem);
  letter-spacing: .3em;
  padding: .2rem 1rem;
  opacity: 0;
  transform: translateY(16px);
  transition: opacity .5s var(--ease-out), transform .5s var(--ease-out), color .3s;
  transition-delay: calc(.04s * var(--i, 0));
}
.menu-list a:hover, .menu-list a.is-current { color: var(--gold-400); }
.menu-overlay.is-open .menu-list a { opacity: 1; transform: none; }

/* ---------- 首页（仅一屏） ---------- */
.home {
  position: relative;
  height: 100svh;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  background:
    radial-gradient(58% 78% at -8% 60%, color-mix(in srgb, var(--wine-500) 16%, transparent), transparent 74%),
    radial-gradient(58% 78% at 108% 60%, rgba(74, 106, 158, .12), transparent 74%),
    radial-gradient(110% 80% at 50% 30%, #272e39 0%, var(--ink-800) 48%, var(--ink-900) 100%);
}

/* 人像：置于下方居中，顶部留出纯底色给大字名 */
.home-photo {
  position: absolute;
  top: clamp(160px, 20vh, 225px);
  bottom: 0;
  left: 0;
  right: 0;
  margin: 0 auto;
  width: min(100vw, 960px);
  z-index: 3; /* 人物盖在名字文字之上 */
}
/* 人物身后背景光：大范围柔光，长衰减 */
.home-photo::before {
  content: "";
  position: absolute;
  top: -28%;
  left: 50%;
  transform: translateX(-50%);
  width: min(240vw, 2400px);
  aspect-ratio: 1 / 0.9;
  background: radial-gradient(ellipse 50% 50% at center,
    rgba(205, 206, 214, .13) 0%,
    rgba(205, 206, 214, .08) 30%,
    rgba(205, 206, 214, .035) 55%,
    transparent 78%);
  z-index: -1;
  pointer-events: none;
}
/* 底部暗角：保证按钮与两侧文字可读 */
.home::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 26vh;
  z-index: 4;
  pointer-events: none;
  background: linear-gradient(to top, rgba(20, 25, 32, .78) 0%, transparent 100%);
}
/* 抠图 PNG：透明背景自然融合，无需边缘渐隐 */
.home-photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: 50% 0;
  filter: drop-shadow(0 24px 48px rgba(0, 0, 0, .5)) drop-shadow(0 6px 16px rgba(0, 0, 0, .35));
  opacity: 0;
  transform: scale(1.05);
  animation: photoIn 2s var(--ease-out) .3s forwards;
  will-change: transform;
}
@keyframes photoIn { to { opacity: 1; transform: scale(1); } }

/* 大字名区（叠于照片上方） */
.home-mast {
  position: relative;
  /* 不设 z-index，避免形成 stacking context——名字被人物盖住，座右铭可单独提到人物之上 */
  text-align: center;
  margin-top: clamp(.3rem, 1.5vh, 1rem);
}
.home-name {
  font-family: var(--serif);
  font-weight: 700;
  font-size: clamp(4rem, 11vw, 8.5rem);
  line-height: 1.08;
  letter-spacing: .5em;
  margin-right: -.5em; /* 抵消末字间距，保持视觉居中 */
  color: var(--paper);
  text-shadow: 0 2px 40px rgba(20, 25, 32, .6);
}
.home-name .char {
  display: inline-block;
  opacity: 0;
  transform: translateY(24px);
  animation: rise 1.2s var(--ease-out) forwards;
}
.home-name-tag {
  display: inline-block;
  font-size: .26em;
  font-weight: 300;
  color: var(--gold-400);
  letter-spacing: .4em;
  margin-left: .1em;
  margin-right: -3.1em; /* 抵消自身宽度，保持「武婕」主名居中 */
  vertical-align: .18em;
}
.home-name .char:nth-child(1) { animation-delay: .25s; }
.home-name .char:nth-child(2) { animation-delay: .4s; }
.home-sub {
  font-weight: 300;
  font-size: clamp(.72rem, 1.3vw, .9rem);
  letter-spacing: .5em;
  margin-right: -.5em;
  color: var(--mist);
  margin-top: .6rem;
}
.home-sub span { white-space: nowrap; }
.home-motto {
  position: relative;
  z-index: 4; /* 座右铭完整可读，置于人物之上 */
  font-family: var(--serif);
  font-weight: 300;
  font-size: clamp(1.1rem, 2.2vw, 1.5rem);
  letter-spacing: .42em;
  margin-right: -.42em;
  color: var(--gold-400);
  margin-top: 1.1rem;
  text-shadow:
    0 0 14px color-mix(in srgb, var(--gold-400) 60%, transparent),
    0 0 36px color-mix(in srgb, var(--gold-400) 35%, transparent),
    0 0 70px color-mix(in srgb, var(--gold-400) 22%, transparent),
    0 2px 18px rgba(20, 25, 32, .9);
  animation: mottoGlow 4.5s ease-in-out infinite alternate;
}
@keyframes mottoGlow {
  from {
    text-shadow:
      0 0 14px color-mix(in srgb, var(--gold-400) 60%, transparent),
      0 0 36px color-mix(in srgb, var(--gold-400) 35%, transparent),
      0 0 70px color-mix(in srgb, var(--gold-400) 22%, transparent),
      0 2px 18px rgba(20, 25, 32, .9);
  }
  to {
    text-shadow:
      0 0 20px color-mix(in srgb, var(--gold-400) 85%, transparent),
      0 0 52px color-mix(in srgb, var(--gold-400) 50%, transparent),
      0 0 95px color-mix(in srgb, var(--gold-400) 32%, transparent),
      0 2px 18px rgba(20, 25, 32, .9);
  }
}
.anim { opacity: 0; transform: translateY(18px); animation: rise 1.1s var(--ease-out) forwards; }
.d1 { animation-delay: .55s; }
.d2 { animation-delay: .75s; }
.d3 { animation-delay: 1s; }
@keyframes rise { to { opacity: 1; transform: none; } }

/* 首页底部 */
.home-foot {
  position: relative;
  z-index: 5;
  margin-top: auto;
  width: 100%; /* flex 子项 + margin auto 需显式全宽 */
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding: 0 var(--pad-x) clamp(1.2rem, 3.5vh, 2.4rem);
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.5rem;
}
.home-foot-side {
  flex: 1 1 0;
  font-size: .72rem;
  letter-spacing: .18em;
  color: var(--mist);
  text-shadow: 0 1px 18px rgba(20, 25, 32, .9);
}
.home-foot-side.right { text-align: right; }
.home-foot-cta { flex: 0 0 auto; }

/* ---------- 按钮 ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  font-size: .84rem;
  font-weight: 400;
  letter-spacing: .22em;
  padding: .9rem 2rem;
  border: 1px solid transparent;
  transition: background .35s, color .35s, border-color .35s, box-shadow .35s, transform .35s;
}
.btn svg { transition: transform .35s var(--ease-out); }
.btn:hover svg { transform: translateX(4px); }
.btn-wine { background: var(--wine-500); color: var(--paper); }
.btn-wine:hover {
  background: var(--wine-400);
  box-shadow: 0 8px 32px rgba(168, 61, 78, .35);
  transform: translateY(-2px);
}
.btn-ghost { border-color: var(--hairline); color: var(--paper); }
.btn-ghost:hover { border-color: var(--gold-400); color: var(--gold-400); }

/* ---------- 内页骨架 ---------- */
.page-head {
  text-align: center;
  padding: clamp(3.5rem, 9vh, 6rem) var(--pad-x) clamp(2.5rem, 6vh, 4rem);
}
.page-label {
  font-family: var(--latin);
  font-size: .76rem;
  letter-spacing: .5em;
  margin-right: -.5em;
  text-transform: uppercase;
  color: var(--gold-400);
}
.page-title {
  font-family: var(--serif);
  font-weight: 200;
  font-size: clamp(2.6rem, 7vw, 5rem);
  letter-spacing: .3em;
  margin-right: -.3em;
  line-height: 1.3;
  margin-top: 1rem;
}
.page-rule {
  width: 3.5rem;
  height: 1px;
  background: var(--gold-400);
  margin: 2rem auto 0;
}

.container {
  max-width: 46rem;
  margin: 0 auto;
  padding: 0 var(--pad-x) clamp(4rem, 9vw, 7rem);
}
.container.wide { max-width: 72rem; }

/* 编辑排版（个人介绍等单栏内容） */
.prose h2 {
  font-family: var(--serif);
  font-weight: 600;
  font-size: 1.02rem;
  letter-spacing: .22em;
  color: var(--paper);
  margin: 3.2rem 0 1.1rem;
  display: flex;
  align-items: center;
  gap: 1.2rem;
}
.prose h2::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--hairline);
}
.prose > p { margin-bottom: 1.1rem; font-size: .95rem; }
.prose .muted { color: var(--mist); }
.prose .lede {
  font-family: var(--serif);
  font-weight: 300;
  font-size: clamp(1.05rem, 2vw, 1.25rem);
  line-height: 2.1;
  color: var(--paper);
}
.prose ul { list-style: none; }
.prose ul li {
  padding: .55rem 0;
  font-size: .93rem;
  border-bottom: 1px solid rgba(198, 161, 91, .1);
}
.prose ul li:last-child { border-bottom: 0; }
.prose ul li small {
  display: block;
  font-size: .76rem;
  color: var(--mist);
  letter-spacing: .04em;
  line-height: 1.8;
  margin-top: .2rem;
}
.prose .placeholder {
  color: var(--mist);
  font-size: .85rem;
  border-left: 2px solid var(--hairline);
  padding-left: 1rem;
}
.work-item { margin-bottom: 2.4rem; }
.work-item h3 {
  font-family: var(--serif);
  font-weight: 600;
  font-size: 1.15rem;
  letter-spacing: .08em;
  margin-bottom: .3rem;
}
.work-item .meta {
  font-size: .76rem;
  letter-spacing: .14em;
  color: var(--gold-400);
  margin-bottom: .7rem;
}
.work-item p { font-size: .92rem; color: var(--mist); }

/* ---------- 内容页照片 ---------- */
.photo-band { margin: 2.6rem 0 .8rem; }
.photo-band img {
  width: 100%;
  aspect-ratio: 21 / 10;
  object-fit: cover;
  object-position: 50% 22%;
  filter: saturate(.9);
}
.photo-duo {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 1rem;
  margin-top: 2.6rem;
}
.photo-duo img {
  width: 100%;
  height: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  filter: saturate(.9);
}
.media-shot {
  margin-top: 1.2rem;
  max-width: 480px;
}
.media-shot img {
  width: 100%;
  border: 1px solid var(--hairline);
}
.media-shot figcaption {
  font-size: .72rem;
  color: var(--mist);
  letter-spacing: .12em;
  margin-top: .55rem;
}
@media (max-width: 720px) {
  .photo-duo { grid-template-columns: 1fr; }
}

/* ---------- 武婕语录 ---------- */
.quote-item {
  margin: 1.9rem 0;
  padding-left: 1.5rem;
  border-left: 2px solid var(--hairline);
  transition: border-color .4s;
}
.quote-item:hover { border-color: var(--gold-400); }
.quote-item blockquote {
  margin: 0;
  font-family: var(--serif);
  font-weight: 300;
  font-size: 1.08rem;
  line-height: 2.1;
  color: var(--paper);
}
.quote-item figcaption {
  margin-top: .7rem;
  font-size: .76rem;
  letter-spacing: .12em;
  color: var(--mist);
}
.quote-item figcaption::before {
  content: "";
  display: inline-block;
  width: 1.6em;
  height: 1px;
  background: var(--gold-dim);
  vertical-align: middle;
  margin-right: .7em;
}

/* 滚动 reveal */
[data-reveal] {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .9s var(--ease-out), transform .9s var(--ease-out);
}
[data-reveal].is-in { opacity: 1; transform: none; }

/* ---------- 业务领域列表 ---------- */
.practice-list { list-style: none; }
.practice-list li { border-top: 1px solid var(--hairline); }
.practice-list li:last-child { border-bottom: 1px solid var(--hairline); }
.practice-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1.5rem;
  padding: 1.7rem .4rem;
  transition: padding .45s var(--ease-out), background .4s;
}
.practice-row:hover { background: rgba(142, 42, 58, .08); padding-inline: 1.4rem; }
.practice-row .t {
  font-family: var(--serif);
  font-weight: 300;
  font-size: clamp(1.3rem, 3vw, 1.9rem);
  letter-spacing: .18em;
}
.practice-row .s {
  font-size: .8rem;
  letter-spacing: .12em;
  color: var(--mist);
  text-align: right;
}

/* ---------- 案例业绩（业务领域页） ---------- */
.case-tabs {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .6rem;
  margin-bottom: 2.8rem;
}
.case-tab .n {
  font-size: .68rem;
  color: var(--gold-400);
  margin-left: .5em;
}
.case-tab.is-active .n { color: rgba(239, 234, 226, .75); }
.case-group-sub {
  text-align: center;
  font-size: .8rem;
  letter-spacing: .22em;
  color: var(--gold-400);
  margin-bottom: 1.6rem;
}
.case-item {
  padding: 1.5rem 0 1.6rem;
  border-top: 1px solid var(--hairline);
}
.case-item:last-child { border-bottom: 1px solid var(--hairline); }
.case-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1.5rem;
}
.case-head h3 {
  font-family: var(--serif);
  font-weight: 600;
  font-size: 1.08rem;
  letter-spacing: .05em;
  line-height: 1.7;
}
.case-badge {
  flex: none;
  font-size: .68rem;
  letter-spacing: .2em;
  color: var(--mist);
  border: 1px solid rgba(151, 161, 175, .35);
  padding: .22rem .7rem;
  white-space: nowrap;
}
.case-badge.is-personal {
  color: var(--gold-400);
  border-color: var(--gold-dim);
}
.case-item > p {
  margin-top: .5rem;
  font-size: .88rem;
  line-height: 1.95;
  color: var(--mist);
  max-width: 56rem;
}
.case-n {
  font-family: var(--latin);
  font-size: .7rem;
  letter-spacing: .18em;
  color: var(--gold-400);
  margin-left: 1em;
  text-transform: uppercase;
}
@media (max-width: 720px) {
  .case-head { flex-direction: column; gap: .4rem; }
}

/* ---------- 媒体年份条目 ---------- */
.media-item {
  display: flex;
  gap: 1.8rem;
  padding: 1.8rem 0;
  border-top: 1px solid var(--hairline);
}
.media-item:last-child { border-bottom: 1px solid var(--hairline); }
.media-item .year {
  font-family: var(--latin);
  font-size: 1.6rem;
  color: var(--gold-400);
  line-height: 1.3;
  flex: none;
}
.media-item h3 {
  font-family: var(--serif);
  font-weight: 600;
  font-size: 1.1rem;
  letter-spacing: .06em;
  margin-bottom: .35rem;
}
.media-item p { font-size: .9rem; color: var(--mist); }

/* ---------- 文章列表 ---------- */
.article-row {
  display: grid;
  grid-template-columns: 8rem minmax(0, 1fr) auto;
  align-items: baseline;
  gap: 1.4rem;
  padding: 1.3rem .3rem;
  border-top: 1px solid var(--hairline);
  transition: background .35s, padding .35s var(--ease-out);
}
.article-row:last-of-type { border-bottom: 1px solid var(--hairline); }
.article-row:hover { background: rgba(198, 161, 91, .05); padding-inline: 1rem; }
.article-row .tag { font-size: .74rem; letter-spacing: .2em; color: var(--wine-400); }
.article-row .t {
  font-family: var(--serif);
  font-weight: 600;
  font-size: 1.02rem;
  letter-spacing: .05em;
}
.article-row .d { font-size: .74rem; color: var(--mist); letter-spacing: .1em; }

/* ---------- 视频墙 ---------- */
.video-wall {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.2rem;
}
.video-card {
  position: relative;
  aspect-ratio: 9 / 13;
  overflow: hidden;
  background: var(--ink-800);
}
.video-card:nth-child(even) { transform: translateY(1.4rem); }
.video-card img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .8s var(--ease-out), filter .5s;
  filter: saturate(.85);
}
.video-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(20, 25, 32, .92) 0%, rgba(20, 25, 32, .1) 45%, transparent 70%);
}
.video-card:hover img { transform: scale(1.07); filter: saturate(1.05); }
.video-play {
  position: absolute;
  z-index: 2;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%) scale(.8);
  width: 52px; height: 52px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(239, 234, 226, .7);
  border-radius: 50%;
  color: var(--paper);
  background: rgba(20, 25, 32, .35);
  backdrop-filter: blur(4px);
  opacity: 0;
  transition: opacity .4s, transform .5s var(--ease-out), background .35s;
}
.video-card:hover .video-play {
  opacity: 1;
  transform: translate(-50%, -50%);
  background: var(--wine-500);
  border-color: var(--wine-400);
}
.video-play svg { margin-left: 3px; }
.video-title {
  position: absolute;
  z-index: 2;
  left: .9rem; right: .9rem; bottom: .8rem;
  font-size: .8rem;
  letter-spacing: .04em;
  line-height: 1.6;
}
.video-more { text-align: center; margin-top: 3.4rem; }

/* ---------- 在线问答 ---------- */
.qa-tools {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.2rem;
  flex-wrap: wrap;
  margin: 2.4rem 0 2rem;
}
.qa-search {
  display: flex;
  align-items: center;
  gap: .7rem;
  border: 1px solid var(--hairline);
  padding: .7rem 1.1rem;
  color: var(--mist);
  flex: 1 1 260px;
  max-width: 24rem;
  transition: border-color .35s;
}
.qa-search:focus-within { border-color: var(--gold-400); }
.qa-search input {
  background: none; border: 0; outline: 0;
  color: var(--paper);
  font-family: var(--sans);
  font-size: .9rem;
  width: 100%;
}
.qa-search input::placeholder { color: var(--mist); letter-spacing: .06em; }
.qa-cats { display: flex; gap: .6rem; flex-wrap: wrap; justify-content: center; }
.chip {
  font-family: var(--sans);
  font-size: .78rem;
  letter-spacing: .1em;
  color: var(--mist);
  background: none;
  border: 1px solid var(--hairline);
  padding: .5rem 1.05rem;
  border-radius: 99px;
  cursor: pointer;
  transition: color .3s, border-color .3s, background .3s;
}
.chip:hover { color: var(--paper); border-color: var(--gold-400); }
.chip.is-active { color: var(--paper); background: var(--wine-500); border-color: var(--wine-500); }
/* 问答页：左列表 + 右提问表单两栏 */
.container.wide .prose > p { max-width: 64rem; margin-left: auto; margin-right: auto; }
.qa-layout {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: clamp(2rem, 4vw, 4rem);
  align-items: start;
  margin-top: 1rem;
}
.qa-layout .qa-tools { justify-content: flex-start; margin-top: 1rem; }
.qa-side {
  position: sticky;
  top: 1.5rem;
}
/* 问答页右下被常驻表单占用，悬浮预约按钮改到左下角（避开调色板 FAB） */
body:has(.qa-layout) .float-cta {
  right: auto;
  left: clamp(4.8rem, 6vw, 6.5rem);
}
.qa-side .form {
  border: 1px solid var(--hairline);
  padding: 1.5rem 1.5rem 1.6rem;
  margin-top: 1rem;
}
.qa-side .form .form-row { grid-template-columns: 1fr; }
.qa-side .form .btn { justify-self: stretch; justify-content: center; }
@media (max-width: 980px) {
  .qa-layout { grid-template-columns: 1fr; }
  .qa-side { position: static; }
}
.qa-cats .chip .n {
  font-size: .68rem;
  color: var(--gold-400);
  margin-left: .45em;
}
.qa-cats .chip.is-active .n { color: rgba(239, 234, 226, .75); }
.qa-empty {
  text-align: center;
  color: var(--mist);
  font-size: .88rem;
  padding: 2rem 0;
}
.qa-more-wrap { text-align: center; margin-top: 1.4rem; }
.qa-item { border: 1px solid var(--hairline); margin-bottom: .9rem; transition: border-color .35s; }
/* 展开/收起平滑过渡（支持 ::details-content 的浏览器生效，其余瞬时） */
.qa-item::details-content {
  display: block;
  block-size: 0;
  overflow: hidden;
  opacity: 0;
  transition:
    block-size .4s var(--ease-out),
    opacity .3s ease,
    content-visibility .4s allow-discrete;
}
.qa-item[open]::details-content {
  block-size: auto;
  opacity: 1;
}
.qa-item[open], .qa-item:hover { border-color: var(--gold-400); }
.qa-item summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding: 1.15rem 1.4rem;
  font-family: var(--serif);
  font-weight: 600;
  font-size: .98rem;
  letter-spacing: .04em;
}
.qa-item summary::-webkit-details-marker { display: none; }
.qa-item summary svg { flex: none; color: var(--gold-400); transition: transform .4s var(--ease-out); }
.qa-item[open] summary svg { transform: rotate(45deg); }
.qa-item p { padding: 0 1.4rem 1.2rem; font-size: .88rem; color: var(--mist); }

/* ---------- 表单 ---------- */
.form { display: grid; gap: 1.2rem; margin-top: 2.4rem; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; }
.form label { display: grid; gap: .5rem; font-size: .78rem; letter-spacing: .2em; color: var(--mist); }
.form i { color: var(--wine-400); font-style: normal; }
.form input, .form textarea {
  background: rgba(239, 234, 226, .04);
  border: 1px solid var(--hairline);
  color: var(--paper);
  font-family: var(--sans);
  font-size: .92rem;
  padding: .85rem 1rem;
  transition: border-color .35s, background .35s;
  resize: vertical;
}
.form input:focus, .form textarea:focus {
  outline: 0;
  border-color: var(--gold-400);
  background: rgba(239, 234, 226, .07);
}
.form input::placeholder, .form textarea::placeholder { color: rgba(151, 161, 175, .6); }
.form .btn { justify-self: center; cursor: pointer; }
.form-hint { text-align: center; font-size: .84rem; color: var(--gold-400); letter-spacing: .08em; }

/* ---------- 联系页 ---------- */
.contact-grid {
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  gap: clamp(2.5rem, 5vw, 5rem);
  max-width: 68rem;
  margin: 0 auto;
}
.contact-grid .contact-info {
  display: flex;
  flex-direction: column;
}
.contact-grid .form { margin-top: 0; }
.contact-grid .contact-list { margin-top: .2rem; }
.contact-grid .contact-map {
  flex: 1;
  min-height: 200px;
  height: auto;
}
@media (max-width: 900px) {
  .contact-grid { grid-template-columns: 1fr; }
  .contact-grid .contact-map { min-height: 160px; }
}
.contact-list { list-style: none; display: grid; gap: 1.5rem; margin-top: 1rem; }
.contact-list li { display: flex; gap: 1.1rem; align-items: flex-start; }
.contact-list svg { color: var(--gold-400); margin-top: .4rem; flex: none; }
.contact-list .k {
  display: block;
  font-size: .7rem;
  letter-spacing: .3em;
  color: var(--mist);
  margin-bottom: .1rem;
}
.contact-list div { font-size: .95rem; line-height: 1.9; }
.contact-list em { color: var(--mist); font-style: normal; }
.contact-wechat {
  display: flex;
  align-items: center;
  gap: 1.3rem;
  margin-top: 2.2rem;
}
.contact-wechat .qr {
  flex: none;
  width: 108px;
  height: 108px;
  border: 1px dashed var(--hairline);
  display: grid;
  place-items: center;
  padding: .5rem;
  text-align: center;
  font-size: .68rem;
  letter-spacing: .14em;
  color: var(--mist);
}
.contact-wechat .qr img { width: 100%; height: 100%; object-fit: contain; }
.contact-wechat .k {
  display: block;
  font-size: .7rem;
  letter-spacing: .3em;
  color: var(--mist);
  margin-bottom: .2rem;
}
.contact-wechat > div:last-child { font-size: .92rem; }
.contact-map {
  margin-top: 2.6rem;
  height: 200px;
  border: 1px dashed var(--hairline);
  display: grid;
  place-items: center;
  color: var(--mist);
  font-size: .78rem;
  letter-spacing: .24em;
}

/* ---------- 页脚（内页） ---------- */
.footer {
  border-top: 1px solid var(--hairline);
  text-align: center;
  padding: 3rem var(--pad-x) 3.4rem;
}
.footer-name {
  font-family: var(--serif);
  font-weight: 300;
  font-size: 1.15rem;
  letter-spacing: .5em;
  margin-right: -.5em;
}
.footer-latin {
  font-family: var(--latin);
  font-size: .66rem;
  letter-spacing: .42em;
  margin-right: -.42em;
  text-transform: uppercase;
  color: var(--gold-400);
  margin-top: .5rem;
}
.footer-meta {
  font-size: .74rem;
  color: var(--mist);
  letter-spacing: .1em;
  margin-top: 1.4rem;
}

/* ---------- 悬浮 CTA（内页，与首页按钮同款） ---------- */
.float-cta {
  position: fixed;
  z-index: 45;
  right: clamp(1rem, 3vw, 2.2rem);
  bottom: clamp(1rem, 3vw, 2.2rem);
  box-shadow: 0 10px 34px rgba(0, 0, 0, .45);
  transition: background .35s, color .35s, box-shadow .35s, transform .35s, opacity .35s, visibility .35s;
}
/* 页脚可见时隐藏，避免遮挡页脚内容 */
.float-cta.is-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
/* 移动端：按钮水平居中 */
@media (max-width: 720px) {
  .float-cta,
  body:has(.qa-layout) .float-cta {
    left: 50%;
    right: auto;
    transform: translateX(-50%);
  }
  .float-cta:hover { transform: translateX(-50%); }
}

/* ---------- 响应式 ---------- */
/* 窄桌面：导航紧凑档，保住分列布局 */
@media (max-width: 1360px) {
  .top-links { gap: clamp(.7rem, 1.4vw, 1.2rem); }
  .top-links a { font-size: .75rem; letter-spacing: .14em; }
  .top-links .lang { padding-left: clamp(.7rem, 1.4vw, 1.2rem); }
}
/* 更窄桌面：超紧凑档 */
@media (max-width: 1100px) {
  .top { gap: 1rem; }
  .top-links { gap: .55rem; }
  .top-links a { font-size: .72rem; letter-spacing: .1em; }
  .top-links .lang { padding-left: .55rem; }
  .top-brand .zh { font-size: 1.6rem; }
  html[lang="en"] .top-links a { font-size: .68rem; letter-spacing: .08em; }
  html[lang="en"] .top-brand .zh { font-size: 1.4rem; }
}
@media (max-width: 767px) {
  .top { grid-template-columns: auto 1fr; }
  .top-links { display: none; }
  .top-toggle { display: flex; }
  .top-mid { width: auto; justify-self: start; }
}
@media (max-width: 1080px) {
  .video-wall { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .home-photo { top: 21vh; }
  .home-sub {
    font-size: .68rem;
    letter-spacing: .16em;
    margin-right: -.16em;
    line-height: 2.1;
    padding: 0 1rem;
  }
  .home-motto {
    font-size: clamp(.78rem, 4.1vw, 1rem);
    letter-spacing: .22em;
    margin-right: -.22em;
    white-space: nowrap;
  }
  .form-row { grid-template-columns: 1fr; }
  .article-row { grid-template-columns: 1fr; gap: .3rem; }
  .practice-row { flex-direction: column; align-items: flex-start; gap: .3rem; }
  .practice-row .s { text-align: left; }
  .home-foot { flex-direction: column; align-items: center; gap: .9rem; text-align: center; }
  .home-foot-side, .home-foot-side.right { text-align: center; }
  .media-item { flex-direction: column; gap: .4rem; }
}
@media (max-width: 560px) {
  .video-wall { gap: .8rem; }
  .video-card:nth-child(even) { transform: translateY(.9rem); }
}

/* 内页顶部品牌字（绝对居中，不受左右组宽度影响；.top-mid 为 grid 占位列） */
.top-mid { width: 1px; }
.top-brand {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  margin-top: 1rem; /* 补偿 .top 顶部 2rem padding 的一半 */
  text-align: center;
  line-height: 1.3;
}
.top-brand .zh {
  display: block;
  font-family: var(--serif);
  font-weight: 700;
  font-size: 1.9rem;
  letter-spacing: .5em;
  margin-right: -.5em;
  white-space: nowrap;
}
/* 「律师」角标：绝对定位悬挂，不影响品牌居中 */
/* 「律师」角标：置于品牌正下方，绝对定位不影响居中 */
.top-brand .tag {
  position: absolute;
  left: 50%;
  top: calc(100% + 6px);
  transform: translateX(-50%);
  font-family: var(--serif);
  font-weight: 300;
  font-size: .85rem;
  letter-spacing: .55em;
  margin-right: -.55em;
  color: var(--gold-400);
  white-space: nowrap;
}
html[lang="en"] .top-brand .tag {
  font-family: var(--latin);
  text-transform: uppercase;
  font-size: .52rem;
  letter-spacing: .48em;
  margin-right: -.48em;
}
.top-brand .en {
  display: block;
  font-family: var(--latin);
  font-size: .58rem;
  letter-spacing: .48em;
  margin-right: -.48em;
  text-transform: uppercase;
  color: var(--gold-400);
  margin-top: .2rem;
}

/* ---------- 语言切换 ---------- */
.top-links .lang {
  color: var(--gold-400);
  border-left: 1px solid var(--hairline);
  padding-left: clamp(.9rem, 2vw, 2rem);
}
.top-links .lang:hover { color: var(--paper); }
.menu-list .lang {
  color: var(--gold-400);
  font-size: 1rem !important;
  letter-spacing: .3em;
  margin-top: 1.2rem;
}

/* ---------- 英文版式（html[lang="en"]） ---------- */
html[lang="en"] .home-name {
  font-family: var(--latin);
  font-weight: 700;
  font-size: clamp(3.8rem, 10vw, 7.5rem);
  letter-spacing: .2em;
  margin-right: -.2em;
}
html[lang="en"] .home-sub {
  font-family: var(--latin);
  text-transform: uppercase;
  letter-spacing: .55em;
  margin-right: -.55em;
}
html[lang="en"] .home-motto {
  font-family: var(--latin);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(.95rem, 1.6vw, 1.15rem);
  letter-spacing: .1em;
  margin-right: 0;
}
html[lang="en"] .page-title {
  font-family: var(--latin);
  font-weight: 300;
  letter-spacing: .14em;
  margin-right: -.14em;
}
html[lang="en"] .top-brand .zh {
  font-family: var(--latin);
  font-weight: 700;
  font-size: 1.65rem;
  letter-spacing: .35em;
  margin-right: -.35em;
}
html[lang="en"] .footer-name {
  font-family: var(--latin);
  font-weight: 400;
  letter-spacing: .4em;
  margin-right: -.4em;
}
html[lang="en"] .prose h2 {
  font-family: var(--latin);
  font-weight: 500;
  font-size: .82rem;
  letter-spacing: .42em;
  text-transform: uppercase;
  color: var(--gold-400);
}
html[lang="en"] :is(.practice-row .t, .work-item h3, .media-item h3, .article-row .t, .qa-item summary, .menu-list a) {
  font-family: var(--latin);
}
html[lang="en"] .practice-row .t { letter-spacing: .08em; font-weight: 400; }
html[lang="en"] .menu-list a { letter-spacing: .18em; }

/* 移动端：品牌靠左（须位于 .top-brand 基础规则之后） */
@media (max-width: 767px) {
  .top-brand {
    position: relative;
    left: auto;
    top: auto;
    transform: none;
    margin-top: 0;
    text-align: left;
  }
  .top-brand .zh { font-size: 1.5rem; }
  .top-brand .tag {
    left: .1em;
    transform: none;
  }
}

/* ---------- 减少动态效果 ---------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .home-photo img, .home-name .char, .anim {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
  [data-reveal] { opacity: 1; transform: none; transition: none; }
  .home-motto { animation: none !important; }
  .qa-item::details-content { transition: none; }
}
