:root {
  --hx-wine: #750817;
  --hx-wine-dark: #35090e;
  --hx-wine-soft: #971226;
  --hx-gold: #d3a126;
  --hx-gold-light: #f1cf6a;
  --hx-ink: #181719;
  --hx-copy: #544d49;
  --hx-muted: #7a716b;
  --hx-paper: #fffdf9;
  --hx-warm: #f5f0e8;
  --hx-line: rgba(91, 58, 43, 0.14);
  --hx-shadow: 0 20px 54px rgba(58, 23, 16, 0.09);
  --hx-shell: 1240px;
}

body.service-v2 {
  color: var(--hx-ink);
  background: var(--hx-paper);
  font-family: "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", Arial, sans-serif;
  line-height: 1.7;
  overflow-x: hidden;
}

body.service-v2 h1,
body.service-v2 h2,
body.service-v2 h3,
body.service-v2 h4 { font-family: inherit; }

body.service-v2 .top-contact-bar { display: none !important; }
body.service-v2 .floating-actions { display: none !important; }
body.service-v2 .quick-contact { display: none !important; }

body.service-v2 .site-header {
  min-height: 70px;
  padding: 8px max(24px, calc((100vw - var(--hx-shell)) / 2));
  background: rgba(255, 253, 249, 0.97);
  border-bottom: 1px solid rgba(117, 8, 23, 0.1);
  box-shadow: 0 5px 22px rgba(38, 17, 13, 0.04);
  transition: min-height .28s ease, box-shadow .28s ease, background .28s ease;
}

body.service-v2 .site-header.is-compact {
  min-height: 62px;
  background: rgba(255, 253, 249, 0.99);
  box-shadow: 0 10px 34px rgba(38, 17, 13, 0.1);
}

body.service-v2 .brand img {
  width: 170px;
  height: 46px;
  object-fit: cover;
  object-position: center;
}

body.service-v2 .brand span { display: none; }

body.service-v2 .main-nav {
  gap: clamp(14px, 1.65vw, 26px);
  font-size: 14px;
  font-weight: 700;
}

body.service-v2 .main-nav a {
  position: relative;
  padding: 16px 0 14px;
  color: #332c29;
  border: 0;
  transition: color .22s ease;
}

body.service-v2 .main-nav a::after {
  position: absolute;
  left: 50%;
  bottom: 7px;
  width: 0;
  height: 2px;
  content: "";
  background: var(--hx-wine);
  transform: translateX(-50%);
  transition: width .24s ease;
}

body.service-v2 .main-nav a:hover,
body.service-v2 .main-nav a.active { color: var(--hx-wine); }
body.service-v2 .main-nav a:hover::after,
body.service-v2 .main-nav a.active::after { width: 100%; }

body.service-v2 .main-nav .nav-cta {
  margin-left: 2px;
  padding: 11px 19px;
  color: #fff;
  background: var(--hx-wine);
  border-radius: 5px;
  box-shadow: 0 10px 24px rgba(117, 8, 23, 0.18);
}

body.service-v2 .main-nav .nav-cta::after { display: none; }
body.service-v2 .main-nav .nav-cta:hover { color: #fff; background: var(--hx-wine-soft); }

.service2-page { background: var(--hx-paper); }
.service2-shell { width: min(var(--hx-shell), calc(100% - 48px)); margin: 0 auto; }

.service2-hero {
  height: 605px;
  min-height: 520px;
  display: grid;
  grid-template-columns: minmax(390px, 44%) minmax(0, 56%);
  overflow: hidden;
  background: var(--hx-wine-dark);
}

.service2-hero-copy,
.service2-hero-visual { min-height: 0; }

.service2-hero-copy {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 72px clamp(32px, 4vw, 64px) 72px max(40px, calc((100vw - var(--hx-shell)) / 2));
  color: #fff;
  background:
    radial-gradient(circle at 85% 18%, rgba(207, 84, 67, .21), transparent 34%),
    linear-gradient(140deg, var(--hx-wine) 0%, var(--hx-wine-dark) 100%);
}

.service2-hero-copy::after {
  position: absolute;
  right: -40px;
  bottom: -86px;
  width: 260px;
  height: 260px;
  content: "";
  border: 1px solid rgba(241, 207, 106, .16);
  border-radius: 50%;
}

.service2-kicker {
  margin: 0 0 16px;
  color: var(--hx-gold-light);
  font-size: 15px;
  font-weight: 800;
  letter-spacing: .08em;
}

.service2-hero h1 {
  max-width: 660px;
  margin: 0 0 22px;
  color: #fff;
  font-size: clamp(36px, 3.6vw, 54px);
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -.03em;
}

.service2-hero-lead {
  max-width: 640px;
  margin: 0;
  color: rgba(255,255,255,.84);
  font-size: 18px;
  line-height: 1.8;
}

.service2-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 28px 0 0;
}

.service2-tags span {
  padding: 7px 13px;
  color: #fff8e5;
  border: 1px solid rgba(211, 161, 38, .72);
  border-radius: 4px;
  font-size: 14px;
  font-weight: 700;
}

.service2-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-height: 48px;
  margin-top: 30px;
  padding: 12px 24px;
  color: #271709;
  background: var(--hx-gold);
  border: 1px solid var(--hx-gold);
  border-radius: 5px;
  font-size: 16px;
  font-weight: 800;
  box-shadow: 0 14px 30px rgba(34, 14, 6, .18);
  transition: transform .22s ease, background .22s ease, box-shadow .22s ease;
}

.service2-button:hover {
  color: #271709;
  background: var(--hx-gold-light);
  transform: translateY(-3px);
  box-shadow: 0 20px 38px rgba(34, 14, 6, .25);
}

.service2-hero-visual { position: relative; min-height: 520px; margin: 0; overflow: hidden; }
.service2-hero-visual::after {
  position: absolute;
  inset: 0;
  content: "";
  background: linear-gradient(90deg, rgba(53, 9, 14, .16), transparent 26%), linear-gradient(0deg, rgba(19, 12, 10, .14), transparent 40%);
}
.service2-hero-visual img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.025); animation: service2-hero-in 1.4s cubic-bezier(.2,.72,.2,1) both; }

@keyframes service2-hero-in {
  from { opacity: .68; transform: scale(1.09); }
  to { opacity: 1; transform: scale(1.025); }
}

.service2-section { padding: 76px 0; }
.service2-section--warm { background: var(--hx-warm); }
.service2-section--paper { background: var(--hx-paper); }
.service2-section--dark { color: #fff; background: linear-gradient(135deg, #181719, #242224); }
.service2-section--wine { color: #fff; background: linear-gradient(135deg, var(--hx-wine-dark), var(--hx-wine)); }

.service2-heading { max-width: 820px; margin: 0 auto 40px; text-align: center; }
.service2-heading--left { margin-left: 0; text-align: left; }
.service2-heading span {
  display: none;
  margin-bottom: 8px;
  color: var(--hx-gold);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.service2-heading h2 {
  margin: 0;
  color: var(--hx-wine);
  font-size: clamp(30px, 3.2vw, 44px);
  line-height: 1.22;
  letter-spacing: -.025em;
}
.service2-heading p { margin: 16px auto 0; color: var(--hx-muted); font-size: 17px; }
.service2-section--dark .service2-heading h2,
.service2-section--wine .service2-heading h2 { color: #fff; }
.service2-section--dark .service2-heading p,
.service2-section--wine .service2-heading p { color: rgba(255,255,255,.72); }

.service2-grid { display: grid; gap: 18px; }
.service2-grid--3 { grid-template-columns: repeat(3, 1fr); }
.service2-grid--4 { grid-template-columns: repeat(4, 1fr); }

.service2-card {
  position: relative;
  min-height: 188px;
  padding: 30px 28px;
  background: rgba(255,255,255,.78);
  border: 1px solid var(--hx-line);
  border-radius: 6px;
  transition: transform .26s ease, border-color .26s ease, box-shadow .26s ease;
}
.service2-card:hover { transform: translateY(-6px); border-color: rgba(117, 8, 23, .28); box-shadow: var(--hx-shadow); }
.service2-card i { display: block; margin-bottom: 19px; color: var(--hx-gold); font-size: 34px; line-height: 1; }
.service2-card small { display: block; margin-bottom: 8px; color: var(--hx-wine); font-size: 12px; font-weight: 800; letter-spacing: .08em; }
.service2-card h3 { margin: 0 0 10px; color: var(--hx-ink); font-size: 20px; line-height: 1.35; }
.service2-card p { margin: 0; color: var(--hx-copy); font-size: 15px; line-height: 1.75; }

.service2-process { position: relative; display: grid; grid-template-columns: repeat(var(--process-count, 4), 1fr); gap: 0; }
.service2-process::before,
.service2-process::after {
  position: absolute;
  top: 42px;
  left: calc(100% / (var(--process-count, 4) * 2));
  right: calc(100% / (var(--process-count, 4) * 2));
  height: 1px;
  content: "";
  background: rgba(255,255,255,.22);
}
.service2-process::after { right: auto; width: 0; background: var(--hx-gold); transition: width 1.2s cubic-bezier(.2,.72,.2,1); }
.service2-process.is-active::after { width: calc(100% - 100% / var(--process-count, 4)); }
.service2-process article { position: relative; z-index: 1; padding: 0 20px; text-align: center; }
.service2-process b {
  display: grid;
  width: 84px;
  height: 84px;
  place-items: center;
  margin: 0 auto 22px;
  color: var(--hx-gold-light);
  background: #231f20;
  border: 1px solid rgba(211,161,38,.7);
  border-radius: 50%;
  font-size: 18px;
}
.service2-process h3 { margin: 0 0 8px; color: #fff; font-size: 19px; }
.service2-process p { max-width: 220px; margin: 0 auto; color: rgba(255,255,255,.68); font-size: 14px; }

.service2-section--paper .service2-process::before,
.service2-section--warm .service2-process::before { background: rgba(117, 8, 23, .18); }
.service2-section--paper .service2-process b,
.service2-section--warm .service2-process b {
  color: var(--hx-wine);
  background: var(--hx-paper);
  border-color: rgba(117, 8, 23, .34);
  box-shadow: 0 10px 28px rgba(58, 23, 16, .07);
}
.service2-section--paper .service2-process h3,
.service2-section--warm .service2-process h3 { color: var(--hx-ink); }
.service2-section--paper .service2-process p,
.service2-section--warm .service2-process p { color: var(--hx-copy); }

.service2-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(420px, .95fr); align-items: stretch; gap: 0; background: #fff; border: 1px solid var(--hx-line); border-radius: 6px; overflow: hidden; box-shadow: var(--hx-shadow); }
.service2-split-copy { padding: clamp(38px, 5vw, 66px); }
.service2-split-copy h2 { margin: 0 0 22px; color: var(--hx-wine); font-size: clamp(30px, 3vw, 43px); line-height: 1.26; }
.service2-split-copy > p { margin: 0 0 20px; color: var(--hx-copy); font-size: 16px; }
.service2-split-visual { position: relative; min-height: 430px; margin: 0; overflow: hidden; }
.service2-split-visual img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s cubic-bezier(.2,.72,.2,1); }
.service2-split:hover .service2-split-visual img { transform: scale(1.035); }
.service2-split-visual figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 18px 24px; color: #fff; background: rgba(32, 18, 15, .78); font-size: 15px; backdrop-filter: blur(8px); }

.service2-list { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.service2-list li { display: grid; grid-template-columns: 34px minmax(0,1fr); gap: 13px; align-items: start; padding: 14px 0; border-bottom: 1px solid var(--hx-line); color: var(--hx-copy); }
.service2-list li:last-child { border-bottom: 0; }
.service2-list i { color: var(--hx-gold); font-size: 22px; }
.service2-list strong { display: block; margin-bottom: 2px; color: var(--hx-ink); }

.service2-editorial { display: grid; grid-template-columns: 1.2fr .9fr 1fr; gap: 18px; }
.service2-editorial article { padding: 30px; background: #fff; border: 1px solid var(--hx-line); border-top: 3px solid var(--hx-wine); border-radius: 5px; }
.service2-editorial article:nth-child(2) { margin-top: 24px; }
.service2-editorial article:nth-child(3) { margin-top: 48px; }
.service2-editorial span { color: var(--hx-gold); font-size: 13px; font-weight: 800; }
.service2-editorial h3 { margin: 10px 0; color: var(--hx-wine); font-size: 21px; }
.service2-editorial p { margin: 0; color: var(--hx-copy); font-size: 15px; }

.service2-work-grid { display: grid; grid-template-columns: repeat(5, 1fr); border: 1px solid rgba(211,161,38,.3); border-radius: 6px; overflow: hidden; }
.service2-work-grid article { min-height: 210px; padding: 30px 24px; border-right: 1px solid rgba(211,161,38,.24); transition: background .25s ease; }
.service2-work-grid article:last-child { border-right: 0; }
.service2-work-grid article:hover { background: rgba(255,255,255,.06); }
.service2-work-grid i { color: var(--hx-gold-light); font-size: 32px; }
.service2-work-grid h3 { margin: 26px 0 9px; color: #fff; font-size: 19px; }
.service2-work-grid p { margin: 0; color: rgba(255,255,255,.68); font-size: 14px; }

.service2-faq { width: 100%; min-width: 0; display: grid; gap: 10px; max-width: none; margin: 0; }
.service2-faq details { width: 100%; min-width: 0; background: #fff; border: 1px solid var(--hx-line); border-radius: 5px; overflow: hidden; transition: border-color .22s ease, box-shadow .22s ease; }
.service2-faq details[open] { border-color: rgba(117,8,23,.28); box-shadow: 0 14px 34px rgba(58,23,16,.07); }
.service2-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 22px; cursor: pointer; color: var(--hx-ink); font-size: 17px; font-weight: 700; list-style: none; }
.service2-faq summary::-webkit-details-marker { display: none; }
.service2-faq summary::after { content: "展开"; color: var(--hx-wine); font-size: 12px; font-weight: 700; }
.service2-faq details[open] summary::after { content: "收起"; }
.service2-faq p { margin: 0; padding: 0 22px 20px; color: var(--hx-copy); font-size: 15px; }

.service2-cta { padding: 54px 0; color: #fff; background: linear-gradient(120deg, var(--hx-wine-dark), var(--hx-wine) 62%, #8e1424); }
.service2-cta-inner { display: grid; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; gap: 30px; }
.service2-cta h2 { margin: 0 0 8px; color: #fff; font-size: clamp(28px, 3vw, 42px); line-height: 1.25; }
.service2-cta p { margin: 0; color: rgba(255,255,255,.76); font-size: 16px; }
.service2-cta .service2-button { margin: 0; }
.service2-ip { width: 94px; height: 94px; padding: 8px; object-fit: contain; background: rgba(255,255,255,.92); border: 4px solid rgba(211,161,38,.5); border-radius: 50%; }

body.service-v2 .site-footer {
  display: grid;
  grid-template-columns: repeat(3, auto);
  justify-content: center;
  gap: clamp(28px, 5vw, 76px);
  padding: 22px 24px;
  color: rgba(255,255,255,.82);
  background: #181719;
  border: 0;
  font-size: 14px;
}
body.service-v2 .site-footer a,
body.service-v2 .site-footer span { color: rgba(255,255,255,.82); font-weight: 600; }
body.service-v2 .site-footer i { margin-right: 8px; color: var(--hx-gold); }
body.service-v2 .site-footer > div,
body.service-v2 .site-footer .footer-qr { display: none !important; }

html.service2-motion [data-reveal] { opacity: 1; transform: translateY(12px); transition: transform .55s cubic-bezier(.2,.72,.2,1); transition-delay: var(--delay, 0ms); }
html.service2-motion [data-reveal].is-visible { opacity: 1; transform: none; }
.service2-hero-copy > * { animation: service2-copy-in .72s cubic-bezier(.2,.72,.2,1) both; }
.service2-hero-copy > :nth-child(2) { animation-delay: .08s; }
.service2-hero-copy > :nth-child(3) { animation-delay: .14s; }
.service2-hero-copy > :nth-child(4) { animation-delay: .2s; }
.service2-hero-copy > :nth-child(5) { animation-delay: .26s; }
@keyframes service2-copy-in { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }

@media (max-width: 1120px) {
  body.service-v2 .site-header { padding-inline: 22px; }
  body.service-v2 .main-nav { gap: 13px; font-size: 13px; }
  body.service-v2 .brand img { width: 154px; }
  .service2-hero-copy { padding-left: 40px; padding-right: 20px; }
  .service2-grid--4 { grid-template-columns: repeat(2, 1fr); }
  .service2-work-grid { grid-template-columns: repeat(3, 1fr); }
  .service2-work-grid article { border-bottom: 1px solid rgba(211,161,38,.24); }
}

@media (max-width: 860px) {
  body.service-v2 .site-header { min-height: 64px; }
  body.service-v2 .brand img { width: 142px; height: 42px; }
  body.service-v2 .nav-toggle { display: block; border-radius: 5px; }
  body.service-v2 .main-nav { position: absolute; top: 64px; left: 0; right: 0; display: none; padding: 14px 22px 22px; background: rgba(255,253,249,.99); border-bottom: 1px solid var(--hx-line); box-shadow: 0 18px 34px rgba(38,17,13,.1); }
  body.service-v2 .main-nav.is-open { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); }
  body.service-v2 .main-nav a { padding: 12px 4px; }
  body.service-v2 .main-nav a::after { left: 4px; transform: none; }
  body.service-v2 .main-nav a.active::after { width: 34px; }
  body.service-v2 .main-nav .nav-cta { text-align: center; }
  .service2-hero { height: auto; grid-template-columns: 1fr; }
  .service2-hero-copy { order: 2; min-height: 0; padding: 42px 24px 48px; }
  .service2-hero-visual { min-height: 330px; }
  .service2-hero h1 { font-size: clamp(34px, 9vw, 48px); }
  .service2-hero-lead { font-size: 16px; }
  .service2-section { padding: 58px 0; }
  .service2-shell { width: min(100% - 32px, var(--hx-shell)); }
  .service2-grid--3 { grid-template-columns: 1fr; }
  .service2-split { grid-template-columns: 1fr; }
  .service2-split-visual { min-height: 340px; }
  .service2-editorial { grid-template-columns: 1fr; }
  .service2-editorial article:nth-child(2),
  .service2-editorial article:nth-child(3) { margin-top: 0; }
  .service2-process { grid-template-columns: 1fr 1fr; gap: 34px 16px; }
  .service2-process::before,
  .service2-process::after { display: none; }
  .service2-process article { padding: 0 8px; }
  .service2-work-grid { grid-template-columns: 1fr 1fr; }
  .service2-faq { max-width: none; }
  html.service2-motion .service2-faq[data-reveal] { opacity: 1; transform: none; }
  .service2-cta-inner { grid-template-columns: 1fr auto; }
  .service2-cta-copy { grid-column: 1 / -1; }
  body.service-v2 .site-footer { grid-template-columns: 1fr; gap: 8px; text-align: center; }
}

@media (max-width: 560px) {
  .service2-hero-visual { min-height: 270px; }
  .service2-hero-copy { padding-top: 36px; }
  .service2-hero h1 { font-size: 34px; }
  .service2-tags { gap: 7px; margin-top: 22px; }
  .service2-tags span { padding: 6px 9px; font-size: 12px; }
  .service2-heading { margin-bottom: 28px; }
  .service2-heading h2, .service2-split-copy h2 { font-size: 29px; }
  .service2-grid--4 { grid-template-columns: 1fr; }
  .service2-card { min-height: auto; padding: 25px 22px; }
  .service2-process { grid-template-columns: 1fr; }
  .service2-process b { width: 68px; height: 68px; }
  .service2-work-grid { grid-template-columns: 1fr; }
  .service2-work-grid article { min-height: auto; border-right: 0; }
  .service2-split-copy { padding: 30px 24px; }
  .service2-split-visual { min-height: 270px; }
  .service2-cta-inner { grid-template-columns: 1fr; }
  .service2-ip { display: none; }
  .service2-faq summary { padding: 16px; font-size: 15px; }
  .service2-faq p { padding: 0 16px 18px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  html.service2-motion [data-reveal] { opacity: 1; transform: none; }
}
