/*
Theme Name: Zenith EDU (则熙国际教育)
Theme URI: https://zenithedu.net/
Author: Zenith
Description: 则熙国际教育官网主题。依据则熙 VIS 品牌规范重制，白底为主、启曜红作重点强调，全站响应式并适配移动端。包含首页、关于则熙、EMCI 理念、团队成员、服务内容（三条产品线）、学生案例、教育指南、联系我们等完整板块。
Version: 1.1.0
Requires at least: 5.8
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: zenith-edu
Tags: education, business, responsive-layout, custom-menu, custom-logo, featured-images
*/

/* ==========================================================================
   0. Design tokens — 则熙 VIS 第 20–22 页
   ========================================================================== */
:root {
  /* 品牌色 */
  --zy-red: #dc0012;          /* 启曜红 · 主按钮、重点标记 */
  --zy-red-dark: #b80010;     /* hover 态 */
  --zy-red-soft: rgba(220, 0, 18, .08);
  --zy-black: #000000;        /* 凝序黑 · 标题 */
  --zy-white: #ffffff;        /* 原本白 · 页面主背景 */
  --zy-ink: #323232;          /* 深灰 · 正文 */
  --zy-muted: #666666;        /* 中灰 · 次要文字 */
  --zy-line: #d9d9d6;         /* 浅灰 · 分隔与灰底层次 */
  --zy-surface: #f5f5f3;      /* 交替区块浅灰底 */
  --zy-surface-2: #efefec;

  /* 字体
     --zy-font-online 由 functions.php → inc/fonts.php 的 zy_online_fonts()
     按自定义器选择注入，值是「以逗号结尾的完整字体名序列」，例如：
         "Alibaba PuHuiTi 3.0 55 Regular",
     未启用在线字体时值为 none。注意 var() 之后不要再补逗号，
     否则会与变量自带的尾逗号连成 `,,`，整条 font-family 声明作废。
     下面第二行起为系统自带中文黑体兜底，覆盖未启用在线字体、
     CDN 不可达、或字符不在分包内的情况。 */
  --zy-font: var(--zy-font-online)
             "HarmonyOS Sans SC", "MiSans", "MiSans Medium", "MiSans Semibold",
             "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", "Heiti SC",
             -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
             "Helvetica Neue", Arial, sans-serif;
  --zy-font-en: var(--zy-font-online)
                "HarmonyOS Sans SC", "MiSans",
                "Inter", "Segoe UI", -apple-system, BlinkMacSystemFont,
                Roboto, Arial, sans-serif;

  /* 版心与间距 */
  --zy-container: 1180px;
  --zy-gutter: 40px;
  --zy-radius: 4px;
  --zy-header-h: 84px;

  /* 品牌标识尺寸（VIS 安全空间） */
  --zy-logo-h: 46px;

  --zy-shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);
  --zy-shadow: 0 6px 24px rgba(0, 0, 0, .06);
  --zy-shadow-lg: 0 18px 48px rgba(0, 0, 0, .10);

  --zy-ease: cubic-bezier(.22, .61, .36, 1);
}

/* ==========================================================================
   1. Reset & base
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--zy-header-h) + 16px);
}

body {
  margin: 0;
  background: var(--zy-white);
  color: var(--zy-ink);
  font-family: var(--zy-font);
  font-size: 16px;
  line-height: 1.85;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6 {
  margin: 0 0 .6em;
  color: var(--zy-black);
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: .01em;
}
h1 { font-size: clamp(30px, 4.2vw, 52px); }
h2 { font-size: clamp(25px, 3.1vw, 40px); }
h3 { font-size: clamp(19px, 1.9vw, 24px); }
h4 { font-size: clamp(17px, 1.5vw, 20px); }

p { margin: 0 0 1.1em; }
p:last-child { margin-bottom: 0; }

a { color: var(--zy-red); text-decoration: none; transition: color .2s var(--zy-ease); }
a:hover { color: var(--zy-red-dark); }

img { max-width: 100%; height: auto; display: block; }
svg { display: block; }
figure { margin: 0; }

ul, ol { padding-left: 1.3em; }
li { margin-bottom: .35em; }

strong, b { font-weight: 700; color: var(--zy-black); }

hr { border: 0; border-top: 1px solid var(--zy-line); margin: 3rem 0; }

::selection { background: var(--zy-red); color: #fff; }

:focus-visible {
  outline: 2px solid var(--zy-red);
  outline-offset: 3px;
  border-radius: 2px;
}

/* 无障碍：跳至内容 */
.skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 100000;
  background: var(--zy-red); color: #fff; padding: 12px 20px;
  font-weight: 700; border-radius: 0 0 var(--zy-radius) 0;
}
.skip-link:focus { left: 0; color: #fff; }

.screen-reader-text {
  position: absolute !important; width: 1px; height: 1px; overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); white-space: nowrap;
}

/* ==========================================================================
   2. Layout
   ========================================================================== */
.zy-container {
  width: 100%;
  max-width: var(--zy-container);
  margin: 0 auto;
  padding: 0 var(--zy-gutter);
}
.zy-container--narrow { max-width: 880px; }

.zy-section { padding: 100px 0; }
.zy-section--tight { padding: 72px 0; }
.zy-section--gray { background: var(--zy-surface); }
.zy-section--line { border-top: 1px solid var(--zy-line); }

.zy-grid { display: grid; gap: 24px; }
.zy-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.zy-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.zy-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

/* ==========================================================================
   3. Typography blocks — 板块标题（eyebrow + 主标题 + 副标题）
   ========================================================================== */
.zy-head { margin-bottom: 52px; max-width: 900px; }

.zy-eyebrow {
  display: block;
  margin: 0 0 14px;
  color: var(--zy-red);
  font-family: var(--zy-font-en);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  line-height: 1.4;
}
.zy-eyebrow--cn { letter-spacing: .08em; font-family: var(--zy-font); }

.zy-title {
  margin: 0 0 18px;
  color: var(--zy-black);
  font-size: clamp(26px, 3.1vw, 40px);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: .01em;
}

.zy-subtitle {
  margin: 0;
  color: var(--zy-ink);
  font-size: clamp(15px, 1.25vw, 18px);
  line-height: 1.8;
}

.zy-head--center { margin-left: auto; margin-right: auto; text-align: center; }

.zy-lede { color: var(--zy-muted); font-size: 15px; line-height: 1.85; }

/* ==========================================================================
   4. Buttons
   ========================================================================== */
.zy-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 48px;
  padding: 13px 30px;
  border: 0;
  border-radius: var(--zy-radius);
  background: var(--zy-red);
  color: #fff;
  font-family: inherit;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: .02em;
  text-align: center;
  cursor: pointer;
  transition: background .22s var(--zy-ease), transform .22s var(--zy-ease),
              box-shadow .22s var(--zy-ease), color .22s var(--zy-ease);
}
.zy-btn:hover, .zy-btn:focus {
  background: var(--zy-red-dark);
  color: #fff;
  transform: translateY(-1px);
  box-shadow: 0 8px 20px rgba(220, 0, 18, .22);
}
.zy-btn:active { transform: translateY(0); }

.zy-btn--ghost {
  background: transparent;
  color: var(--zy-black);
  border: 1px solid var(--zy-line);
}
.zy-btn--ghost:hover {
  background: var(--zy-black);
  border-color: var(--zy-black);
  color: #fff;
  box-shadow: 0 8px 20px rgba(0, 0, 0, .14);
}

.zy-btn--sm { min-height: 40px; padding: 9px 22px; font-size: 14px; }
.zy-btn--lg { min-height: 54px; padding: 16px 38px; font-size: 16px; }
.zy-btn--block { width: 100%; }

/* 文字箭头链接 */
.zy-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--zy-muted);
  font-size: 14.5px;
  font-weight: 500;
  transition: color .2s var(--zy-ease), gap .2s var(--zy-ease);
}
.zy-link::after { content: "→"; transition: transform .2s var(--zy-ease); }
.zy-link:hover { color: var(--zy-red); gap: 10px; }
.zy-link:hover::after { transform: translateX(2px); }

/* ==========================================================================
   5. Cards — 编号卡片（01 / 02 / 03）
   ========================================================================== */
.zy-card {
  position: relative;
  padding: 34px 32px 36px;
  background: #fff;
  border: 1px solid #e8e8e5;
  border-radius: var(--zy-radius);
  transition: border-color .25s var(--zy-ease), box-shadow .25s var(--zy-ease),
              transform .25s var(--zy-ease);
}
.zy-card:hover {
  border-color: var(--zy-line);
  box-shadow: var(--zy-shadow);
  transform: translateY(-3px);
}

.zy-card__num {
  display: block;
  margin-bottom: 12px;
  color: var(--zy-red);
  font-family: var(--zy-font-en);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .1em;
  line-height: 1;
}

.zy-card__title {
  margin: 0 0 14px;
  color: var(--zy-black);
  font-size: 21px;
  font-weight: 700;
  line-height: 1.4;
}

.zy-card__text {
  margin: 0;
  color: var(--zy-ink);
  font-size: 15px;
  line-height: 1.85;
}

.zy-card__meta {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid var(--zy-line);
  color: var(--zy-muted);
  font-size: 14px;
  line-height: 1.7;
}
.zy-card__meta--plain { border-top: 0; padding-top: 0; margin-top: 14px; }

/* 卡片作为链接时 */
a.zy-card { display: block; color: inherit; }
a.zy-card:hover .zy-card__title { color: var(--zy-red); }

/* 灰底卡片（用于浅灰区块内） */
.zy-section--gray .zy-card { border-color: transparent; background: #fff; }

/* E/M/C/I 字母卡 */
.zy-card__letter {
  display: block;
  margin-bottom: 10px;
  color: var(--zy-red);
  font-family: var(--zy-font-en);
  font-size: 30px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .02em;
}

/* 标签 */
.zy-tags { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.zy-tag {
  display: inline-block;
  padding: 7px 18px;
  border: 1px solid var(--zy-line);
  border-radius: 100px;
  background: #fff;
  color: var(--zy-muted);
  font-size: 13.5px;
  line-height: 1.5;
  white-space: nowrap;
}

/* ==========================================================================
   6. Header
   ========================================================================== */
.zy-header {
  position: sticky;
  top: 0;
  z-index: 900;
  background: #fff;
  border-bottom: 1px solid var(--zy-line);
  transition: box-shadow .25s var(--zy-ease);
}
.zy-header.is-stuck { box-shadow: 0 2px 16px rgba(0, 0, 0, .07); }

.zy-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: var(--zy-header-h);
}

/* 品牌标识 */
.zy-brand { display: inline-flex; align-items: center; flex: 0 0 auto; }
.zy-brand img { height: var(--zy-logo-h); width: auto; }

/* 内置 SVG 组合标志 */
.zy-logo { display: inline-flex; align-items: center; gap: 11px; }
.zy-logo__mark {
  height: var(--zy-logo-h);
  width: auto;
  flex: 0 0 auto;
}
.zy-logo__type { display: block; line-height: 1; }
.zy-logo__en {
  display: block;
  position: relative;
  color: var(--zy-black);
  font-family: var(--zy-font-en);
  font-size: calc(var(--zy-logo-h) * 0.62);
  font-weight: 700;
  letter-spacing: -.005em;
  line-height: 1.05;
}
/* 字标中的红色句点（Zenith 的 i 点） */
.zy-logo__dot { position: relative; }
.zy-logo__dot i {
  position: absolute;
  left: 50%;
  top: -0.06em;
  width: 0.17em;
  height: 0.17em;
  margin-left: -0.085em;
  background: var(--zy-red);
  border-radius: 50%;
}
.zy-logo__cn {
  display: block;
  margin-top: calc(var(--zy-logo-h) * 0.11);
  color: var(--zy-ink);
  font-size: calc(var(--zy-logo-h) * 0.245);
  font-weight: 500;
  letter-spacing: .2em;
  line-height: 1;
  white-space: nowrap;
}
.zy-logo--footer .zy-logo__cn { color: var(--zy-ink); }

/* 主导航 */
.zy-nav { flex: 1 1 auto; display: flex; justify-content: flex-end; }
.zy-nav__list {
  display: flex;
  align-items: center;
  gap: 4px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.zy-nav__list > li { position: relative; margin: 0; }

.zy-nav__link {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 10px 13px;
  color: var(--zy-ink);
  font-size: 15px;
  font-weight: 500;
  line-height: 1.4;
  white-space: nowrap;
  border-radius: 3px;
  transition: color .2s var(--zy-ease);
}
.zy-nav__link:hover { color: var(--zy-red); }

.zy-nav__list > li.current-menu-item > .zy-nav__link,
.zy-nav__list > li.current-menu-ancestor > .zy-nav__link,
.zy-nav__list > li.current_page_item > .zy-nav__link,
.zy-nav__list > li.current_page_parent > .zy-nav__link {
  color: var(--zy-red);
  font-weight: 700;
}

/* 下拉子菜单 */
.zy-nav__sub {
  position: absolute;
  top: calc(100% + 10px);
  left: 50%;
  min-width: 208px;
  margin: 0;
  padding: 10px 0;
  list-style: none;
  background: #fff;
  border: 1px solid var(--zy-line);
  border-radius: var(--zy-radius);
  box-shadow: var(--zy-shadow-lg);
  opacity: 0;
  visibility: hidden;
  transform: translate(-50%, 8px);
  transition: opacity .2s var(--zy-ease), transform .2s var(--zy-ease),
              visibility .2s var(--zy-ease);
}
.zy-nav__list > li:hover > .zy-nav__sub,
.zy-nav__list > li:focus-within > .zy-nav__sub {
  opacity: 1; visibility: visible; transform: translate(-50%, 0);
}
.zy-nav__sub li { margin: 0; }
.zy-nav__sub a {
  display: block;
  padding: 9px 22px;
  color: var(--zy-ink);
  font-size: 14.5px;
  line-height: 1.5;
  white-space: nowrap;
}
.zy-nav__sub a:hover { background: var(--zy-surface); color: var(--zy-red); }

/* 下拉箭头 */
.zy-nav__caret {
  width: 9px; height: 9px; margin-top: -3px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg);
  transition: transform .2s var(--zy-ease);
}
.zy-nav__list > li:hover > .zy-nav__link .zy-nav__caret { transform: rotate(225deg); margin-top: 3px; }

.zy-header__cta { flex: 0 0 auto; margin-left: 18px; }

/* 汉堡按钮 */
.zy-burger {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 46px;
  height: 46px;
  padding: 0 11px;
  border: 0;
  border-radius: var(--zy-radius);
  background: transparent;
  cursor: pointer;
}
.zy-burger span {
  display: block;
  height: 2px;
  width: 100%;
  background: var(--zy-black);
  border-radius: 2px;
  transition: transform .28s var(--zy-ease), opacity .2s var(--zy-ease);
}
.zy-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.zy-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.zy-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* 移动端抽屉 */
.zy-drawer {
  position: fixed;
  inset: var(--zy-header-h) 0 0 auto;
  z-index: 880;
  width: min(88vw, 380px);
  padding: 22px 0 40px;
  background: #fff;
  border-left: 1px solid var(--zy-line);
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  transform: translateX(100%);
  transition: transform .32s var(--zy-ease);
}
.zy-drawer.is-open { transform: translateX(0); }

.zy-drawer__list { margin: 0; padding: 0 0 8px; list-style: none; }
.zy-drawer__list li { margin: 0; border-bottom: 1px solid #f0f0ee; }
.zy-drawer__list a {
  display: block;
  padding: 15px 26px;
  color: var(--zy-ink);
  font-size: 16px;
  font-weight: 500;
}
.zy-drawer__list a:hover,
.zy-drawer__list li.is-current > a { color: var(--zy-red); }

.zy-drawer__sub { margin: 0; padding: 0 0 8px; list-style: none; }
.zy-drawer__sub li { border-bottom: 0; }
.zy-drawer__sub a {
  padding: 10px 26px 10px 42px;
  color: var(--zy-muted);
  font-size: 14.5px;
  font-weight: 400;
}

.zy-drawer__cta { padding: 22px 26px 0; }
.zy-drawer__cta .zy-btn { width: 100%; }

.zy-drawer__contact {
  margin-top: 26px;
  padding: 20px 26px 0;
  border-top: 1px solid var(--zy-line);
  color: var(--zy-muted);
  font-size: 14px;
  line-height: 1.9;
}
.zy-drawer__contact strong { display: block; color: var(--zy-black); font-size: 13px; letter-spacing: .08em; margin-bottom: 4px; }
.zy-drawer__contact a { color: var(--zy-ink); font-weight: 700; font-size: 17px; }

.zy-overlay {
  position: fixed;
  inset: 0;
  z-index: 870;
  background: rgba(0, 0, 0, .38);
  opacity: 0;
  visibility: hidden;
  transition: opacity .3s var(--zy-ease), visibility .3s var(--zy-ease);
}
.zy-overlay.is-open { opacity: 1; visibility: visible; }

body.zy-no-scroll { overflow: hidden; }

/* ==========================================================================
   7. Footer
   ========================================================================== */
.zy-footer {
  padding: 72px 0 0;
  background: var(--zy-surface);
  border-top: 1px solid var(--zy-line);
}
.zy-footer__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) repeat(3, minmax(0, 1fr));
  gap: 48px 40px;
  padding-bottom: 56px;
}
.zy-footer__logo-box {
  display: inline-block;
  padding: 14px 18px;
  background: #fff;
  border-radius: var(--zy-radius);
}
.zy-footer__logo-box img { height: 44px; width: auto; }
.zy-footer__slogan {
  margin: 20px 0 14px;
  color: var(--zy-ink);
  font-size: 15px;
  line-height: 1.8;
}
.zy-footer__phone {
  display: inline-block;
  color: var(--zy-black);
  font-size: 17px;
  font-weight: 700;
  letter-spacing: .01em;
}
.zy-footer__phone:hover { color: var(--zy-red); }

.zy-footer__title {
  margin: 0 0 20px;
  color: var(--zy-black);
  font-size: 16px;
  font-weight: 700;
  letter-spacing: .02em;
}
.zy-footer__menu { margin: 0; padding: 0; list-style: none; }
.zy-footer__menu li { margin: 0 0 12px; }
.zy-footer__menu a { color: var(--zy-muted); font-size: 14.5px; line-height: 1.6; }
.zy-footer__menu a:hover { color: var(--zy-red); }

.zy-footer__bottom {
  padding: 24px 0;
  border-top: 1px solid var(--zy-line);
  color: var(--zy-muted);
  font-size: 13.5px;
}
.zy-footer__bottom-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px 24px;
}
.zy-footer__bottom a { color: var(--zy-muted); }
.zy-footer__bottom a:hover { color: var(--zy-red); }

/* ==========================================================================
   8. Hero — 首屏
   ========================================================================== */
.zy-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.02fr);
  align-items: stretch;
  background: #fff;
  border-bottom: 1px solid var(--zy-line);
}
.zy-hero__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 92px 56px 92px max(var(--zy-gutter), calc((100vw - var(--zy-container)) / 2 + var(--zy-gutter)));
}
.zy-hero__eyebrow {
  margin: 0 0 20px;
  color: var(--zy-red);
  font-family: var(--zy-font-en);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.zy-hero__title {
  margin: 0 0 26px;
  max-width: 12em;
  color: var(--zy-black);
  font-size: clamp(32px, 4.3vw, 54px);
  font-weight: 700;
  line-height: 1.24;
  letter-spacing: .01em;
}
.zy-hero__rule {
  width: 56px;
  height: 3px;
  margin-bottom: 26px;
  background: var(--zy-red);
}
.zy-hero__text {
  margin: 0 0 34px;
  max-width: 30em;
  color: var(--zy-ink);
  font-size: clamp(15.5px, 1.3vw, 18px);
  line-height: 1.8;
}
.zy-hero__actions { display: flex; flex-wrap: wrap; gap: 14px; }
.zy-hero__lines {
  margin: 30px 0 0;
  color: var(--zy-muted);
  font-size: 14px;
  line-height: 1.7;
}
.zy-hero__lines span { white-space: nowrap; }
.zy-hero__lines span + span::before {
  content: "/";
  margin: 0 10px;
  color: var(--zy-line);
}
.zy-hero__media { position: relative; overflow: hidden; background: var(--zy-surface-2); }
.zy-hero__media img {
  width: 100%;
  height: 100%;
  min-height: 380px;
  object-fit: cover;
}

/* ==========================================================================
   9. 关于/简介 双栏
   ========================================================================== */
.zy-split {
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(0, 1fr);
  gap: 72px;
  align-items: center;
}
.zy-split--wide-left { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); }
.zy-split__media { overflow: hidden; border-radius: var(--zy-radius); }
.zy-split__media img { width: 100%; height: 100%; object-fit: cover; }
.zy-split__body .zy-title { max-width: 14em; }
.zy-split__text { margin: 0 0 30px; color: var(--zy-ink); font-size: 15.5px; line-height: 1.9; }

/* 步骤列表（01 看见当下 / 02 确定路径 / 03 持续调整） */
.zy-steps { margin: 0; padding: 0; list-style: none; }
.zy-steps li {
  position: relative;
  margin: 0;
  padding: 26px 0 26px 0;
  border-bottom: 1px solid var(--zy-line);
}
.zy-steps li:first-child { padding-top: 0; }
.zy-steps li:last-child { border-bottom: 0; padding-bottom: 0; }
.zy-steps__num {
  display: block;
  margin-bottom: 10px;
  color: var(--zy-red);
  font-family: var(--zy-font-en);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .1em;
  line-height: 1;
}
.zy-steps__title { margin: 0 0 8px; color: var(--zy-black); font-size: 20px; font-weight: 700; }
.zy-steps__text { margin: 0; color: var(--zy-muted); font-size: 15px; line-height: 1.8; }

/* ==========================================================================
   10. FAQ 折叠
   ========================================================================== */
.zy-faq { border-top: 1px solid var(--zy-line); }
.zy-faq__item { border-bottom: 1px solid var(--zy-line); }
.zy-faq__q {
  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 28px;
  width: 100%;
  margin: 0;
  padding: 26px 0 26px 0;
  border: 0;
  background: transparent;
  color: var(--zy-black);
  font-family: inherit;
  font-size: clamp(16px, 1.4vw, 19px);
  font-weight: 700;
  line-height: 1.6;
  text-align: left;
  cursor: pointer;
  transition: color .2s var(--zy-ease);
}
.zy-faq__q:hover { color: var(--zy-red); }
.zy-faq__icon {
  position: relative;
  flex: 0 0 auto;
  width: 20px; height: 20px;
  margin-top: 4px;
}
.zy-faq__icon::before,
.zy-faq__icon::after {
  content: ""; position: absolute; left: 50%; top: 50%;
  background: var(--zy-red); border-radius: 2px;
  transform: translate(-50%, -50%);
}
.zy-faq__icon::before { width: 14px; height: 2px; }
.zy-faq__icon::after { width: 2px; height: 14px; transition: transform .25s var(--zy-ease), opacity .2s var(--zy-ease); }
.zy-faq__item.is-open .zy-faq__icon::after { transform: translate(-50%, -50%) rotate(90deg); opacity: 0; }

.zy-faq__a {
  overflow: hidden;
  max-height: 0;
  transition: max-height .32s var(--zy-ease);
}
.zy-faq__a-inner { padding: 0 60px 28px 0; color: var(--zy-muted); font-size: 15px; line-height: 1.9; }

/* 首项展开时左侧红条（对齐设计稿） */
.zy-faq__item.is-open .zy-faq__q::before {
  content: "";
  position: absolute; left: -20px; top: 24px; bottom: 24px;
  width: 3px; background: var(--zy-red);
}
.zy-faq--plain .zy-faq__item.is-open .zy-faq__q::before { display: none; }

.zy-faq__more { margin-top: 34px; }

/* ==========================================================================
   11. 数据条 / 统计
   ========================================================================== */
.zy-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  border-top: 1px solid var(--zy-line);
  border-bottom: 1px solid var(--zy-line);
}
.zy-stats__item { padding: 40px 28px; border-right: 1px solid var(--zy-line); }
.zy-stats__item:last-child { border-right: 0; }
.zy-stats__num {
  display: block;
  margin-bottom: 8px;
  color: var(--zy-black);
  font-family: var(--zy-font-en);
  font-size: clamp(28px, 3vw, 40px);
  font-weight: 700;
  line-height: 1.1;
}
.zy-stats__num em { color: var(--zy-red); font-style: normal; }
.zy-stats__label { margin: 0; color: var(--zy-muted); font-size: 14.5px; }

/* ==========================================================================
   12. 团队成员
   ========================================================================== */
.zy-member {
  padding: 32px 30px 34px;
  background: #fff;
  border: 1px solid #e8e8e5;
  border-radius: var(--zy-radius);
}
.zy-member__avatar {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 64px; height: 64px;
  margin-bottom: 22px;
  border-radius: 50%;
  background: var(--zy-red-soft);
  color: var(--zy-red);
  font-family: var(--zy-font-en);
  font-size: 22px;
  font-weight: 700;
  overflow: hidden;
}
.zy-member__avatar img { width: 100%; height: 100%; object-fit: cover; }
.zy-member__name { margin: 0 0 6px; color: var(--zy-black); font-size: 19px; font-weight: 700; }
.zy-member__role { margin: 0 0 16px; color: var(--zy-red); font-size: 13.5px; font-weight: 700; letter-spacing: .04em; }
.zy-member__bio { margin: 0; color: var(--zy-ink); font-size: 14.5px; line-height: 1.85; }

/* ==========================================================================
   13. 文章 / 案例列表
   ========================================================================== */
.zy-posts { display: grid; gap: 26px; }
.zy-posts--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.zy-posts--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.zy-post {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid #e8e8e5;
  border-radius: var(--zy-radius);
  overflow: hidden;
  transition: border-color .25s var(--zy-ease), box-shadow .25s var(--zy-ease),
              transform .25s var(--zy-ease);
}
.zy-post:hover { border-color: var(--zy-line); box-shadow: var(--zy-shadow); transform: translateY(-3px); }
.zy-post__thumb { aspect-ratio: 16 / 10; background: var(--zy-surface-2); overflow: hidden; }
.zy-post__thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--zy-ease); }
.zy-post:hover .zy-post__thumb img { transform: scale(1.04); }
.zy-post__body { display: flex; flex-direction: column; flex: 1 1 auto; padding: 26px 26px 28px; }
.zy-post__meta {
  margin: 0 0 12px;
  color: var(--zy-red);
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.zy-post__meta span + span::before { content: "·"; margin: 0 8px; color: var(--zy-line); }
.zy-post__title { margin: 0 0 12px; font-size: 18.5px; font-weight: 700; line-height: 1.5; }
.zy-post__title a { color: var(--zy-black); }
.zy-post__title a:hover { color: var(--zy-red); }
.zy-post__excerpt { margin: 0 0 20px; color: var(--zy-muted); font-size: 14.5px; line-height: 1.85; }
.zy-post__foot { margin-top: auto; }

/* 案例分类标签 */
.zy-case-tabs { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 40px; }
.zy-case-tabs a {
  padding: 9px 22px;
  border: 1px solid var(--zy-line);
  border-radius: 100px;
  background: #fff;
  color: var(--zy-muted);
  font-size: 14px;
  transition: all .2s var(--zy-ease);
}
.zy-case-tabs a:hover { border-color: var(--zy-black); color: var(--zy-black); }
.zy-case-tabs a.is-active { background: var(--zy-black); border-color: var(--zy-black); color: #fff; }

/* ==========================================================================
   14. 文章正文
   ========================================================================== */
.zy-article { padding: 72px 0 96px; }
.zy-article__head { margin-bottom: 40px; padding-bottom: 32px; border-bottom: 1px solid var(--zy-line); }
.zy-article__meta { margin: 0 0 18px; color: var(--zy-red); font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.zy-article__title { margin: 0; font-size: clamp(25px, 3vw, 38px); }
.zy-article__thumb { margin: 0 0 44px; border-radius: var(--zy-radius); overflow: hidden; }

.zy-prose { color: var(--zy-ink); font-size: 16.5px; line-height: 1.95; }
.zy-prose > * + * { margin-top: 1.35em; }
.zy-prose h2 { margin-top: 2.2em; margin-bottom: .7em; font-size: clamp(21px, 2.1vw, 27px); }
.zy-prose h3 { margin-top: 1.9em; margin-bottom: .6em; font-size: clamp(18px, 1.7vw, 21px); }
.zy-prose h2 + *, .zy-prose h3 + * { margin-top: 0; }
.zy-prose img { border-radius: var(--zy-radius); margin: 2em auto; }
.zy-prose blockquote {
  margin: 2em 0;
  padding: 22px 28px;
  background: var(--zy-surface);
  border-left: 3px solid var(--zy-red);
  color: var(--zy-ink);
  font-size: 16px;
}
.zy-prose blockquote p:last-child { margin-bottom: 0; }
.zy-prose ul, .zy-prose ol { padding-left: 1.4em; }
.zy-prose li { margin-bottom: .6em; }
.zy-prose a { border-bottom: 1px solid rgba(220, 0, 18, .35); }
.zy-prose a:hover { border-bottom-color: var(--zy-red); }
.zy-prose table { width: 100%; border-collapse: collapse; margin: 2em 0; font-size: 15px; }
.zy-prose th, .zy-prose td { padding: 13px 16px; border: 1px solid var(--zy-line); text-align: left; }
.zy-prose th { background: var(--zy-surface); font-weight: 700; color: var(--zy-black); }
.zy-prose code {
  padding: 2px 7px; background: var(--zy-surface); border-radius: 3px;
  font-size: .9em; font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}
.zy-prose pre {
  padding: 20px 22px; background: #1b1b1b; color: #f2f2f0; border-radius: var(--zy-radius);
  overflow-x: auto; font-size: 14px; line-height: 1.7;
}
.zy-prose pre code { background: none; padding: 0; color: inherit; }

/* 文章底部导航 */
.zy-postnav {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  margin-top: 60px;
  padding-top: 36px;
  border-top: 1px solid var(--zy-line);
}
.zy-postnav__item {
  padding: 22px 24px;
  background: var(--zy-surface);
  border-radius: var(--zy-radius);
  transition: background .2s var(--zy-ease);
}
.zy-postnav__item:hover { background: var(--zy-surface-2); }
.zy-postnav__label { display: block; margin-bottom: 8px; color: var(--zy-red); font-size: 12.5px; font-weight: 700; letter-spacing: .1em; }
.zy-postnav__title { color: var(--zy-black); font-size: 15.5px; font-weight: 700; line-height: 1.6; }
.zy-postnav__item--next { text-align: right; }
.zy-postnav__item--empty { visibility: hidden; }

/* ==========================================================================
   15. 页面头部（内页 banner）
   ========================================================================== */
.zy-pagehead {
  padding: 74px 0 66px;
  background: var(--zy-surface);
  border-bottom: 1px solid var(--zy-line);
}
.zy-pagehead .zy-eyebrow { margin-bottom: 16px; }
.zy-pagehead__title { max-width: 22em; margin: 0 0 16px; font-size: clamp(28px, 3.6vw, 44px); }
.zy-pagehead__desc { max-width: 46em; margin: 0; color: var(--zy-ink); font-size: clamp(15px, 1.25vw, 17.5px); line-height: 1.85; }
.zy-pagehead__rule { width: 56px; height: 3px; margin: 26px 0 0; background: var(--zy-red); }

/* 面包屑 */
.zy-breadcrumb { padding: 18px 0; border-bottom: 1px solid var(--zy-line); font-size: 13.5px; color: var(--zy-muted); }
.zy-breadcrumb a { color: var(--zy-muted); }
.zy-breadcrumb a:hover { color: var(--zy-red); }
.zy-breadcrumb span.sep { margin: 0 9px; color: var(--zy-line); }

/* ==========================================================================
   16. 服务内容 — 产品线导航条
   ========================================================================== */
.zy-lines { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.zy-line-card {
  display: flex;
  flex-direction: column;
  padding: 36px 32px 34px;
  background: #fff;
  border: 1px solid #e8e8e5;
  border-radius: var(--zy-radius);
  transition: all .25s var(--zy-ease);
}
.zy-line-card:hover { border-color: var(--zy-line); box-shadow: var(--zy-shadow); transform: translateY(-3px); }
.zy-line-card__kicker { display: block; margin-bottom: 14px; color: var(--zy-red); font-size: 13px; font-weight: 700; letter-spacing: .08em; }
.zy-line-card__title { margin: 0 0 14px; color: var(--zy-black); font-size: 22px; font-weight: 700; line-height: 1.35; }
.zy-line-card__text { margin: 0 0 22px; color: var(--zy-ink); font-size: 15px; line-height: 1.85; }
.zy-line-card__foot { margin-top: auto; padding-top: 20px; border-top: 1px solid var(--zy-line); }

/* ==========================================================================
   17. 联系表单
   ========================================================================== */
.zy-contact {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.02fr);
  gap: 72px;
  align-items: start;
}
.zy-contact__phone-label { margin: 0 0 6px; color: var(--zy-muted); font-size: 14px; }
.zy-contact__phone {
  display: inline-block;
  margin-bottom: 30px;
  color: var(--zy-black);
  font-family: var(--zy-font-en);
  font-size: clamp(24px, 2.6vw, 32px);
  font-weight: 700;
  letter-spacing: .01em;
}
.zy-contact__phone:hover { color: var(--zy-red); }
.zy-contact__block { padding: 24px 0; border-top: 1px solid var(--zy-line); }
.zy-contact__block:last-child { border-bottom: 1px solid var(--zy-line); }
.zy-contact__label { margin: 0 0 6px; color: var(--zy-black); font-size: 14px; font-weight: 700; }
.zy-contact__value { margin: 0; color: var(--zy-ink); font-size: 15px; line-height: 1.8; }

.zy-form { display: grid; gap: 18px; }
.zy-form__row { display: grid; gap: 18px; }
.zy-form__row--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.zy-form__title { margin: 0 0 8px; font-size: clamp(21px, 2vw, 27px); }
.zy-field { display: block; }
.zy-field__label { display: block; margin-bottom: 9px; color: var(--zy-ink); font-size: 14px; font-weight: 500; }
.zy-field__req { color: var(--zy-red); }
.zy-field input[type="text"],
.zy-field input[type="tel"],
.zy-field input[type="email"],
.zy-field select,
.zy-field textarea {
  width: 100%;
  min-height: 52px;
  padding: 13px 16px;
  border: 1px solid var(--zy-line);
  border-radius: var(--zy-radius);
  background: #fff;
  color: var(--zy-ink);
  font-family: inherit;
  font-size: 15px;
  line-height: 1.6;
  transition: border-color .2s var(--zy-ease), box-shadow .2s var(--zy-ease);
  -webkit-appearance: none;
  appearance: none;
}
.zy-field textarea { min-height: 132px; resize: vertical; }
.zy-field select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23666' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
  padding-right: 42px;
}
.zy-field input:focus, .zy-field select:focus, .zy-field textarea:focus {
  border-color: var(--zy-red);
  box-shadow: 0 0 0 3px var(--zy-red-soft);
  outline: none;
}
.zy-field__hint { display: block; margin-top: 7px; color: var(--zy-muted); font-size: 13px; }
.zy-form__foot { margin-top: 6px; }
.zy-form__note { margin: 14px 0 0; color: var(--zy-muted); font-size: 13.5px; }

.zy-form__msg { padding: 16px 20px; border-radius: var(--zy-radius); font-size: 15px; line-height: 1.75; }
.zy-form__msg--ok { background: rgba(0, 128, 60, .07); border-left: 3px solid #00803c; color: #00552a; }
.zy-form__msg--err { background: var(--zy-red-soft); border-left: 3px solid var(--zy-red); color: #8c000c; }

/* 二维码 */
.zy-qr { display: flex; flex-wrap: wrap; gap: 28px; }
.zy-qr__item { text-align: center; }
.zy-qr__item img {
  width: 148px; height: 148px;
  padding: 8px;
  background: #fff;
  border: 1px solid var(--zy-line);
  border-radius: var(--zy-radius);
  object-fit: contain;
}
.zy-qr__cap { margin: 10px 0 0; color: var(--zy-muted); font-size: 13px; }

/* ==========================================================================
   18. CTA 条
   ========================================================================== */
.zy-cta {
  padding: 72px 0;
  background: var(--zy-black);
  color: #fff;
}
.zy-cta__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}
.zy-cta__title { margin: 0 0 10px; color: #fff; font-size: clamp(23px, 2.6vw, 33px); }
.zy-cta__text { margin: 0; color: rgba(255, 255, 255, .78); font-size: 15.5px; line-height: 1.8; max-width: 42em; }
.zy-cta__actions { display: flex; flex-wrap: wrap; gap: 14px; flex: 0 0 auto; }
.zy-cta .zy-btn--ghost { color: #fff; border-color: rgba(255, 255, 255, .38); }
.zy-cta .zy-btn--ghost:hover { background: #fff; border-color: #fff; color: var(--zy-black); }
.zy-cta__tel {
  display: block; margin-top: 12px;
  color: rgba(255,255,255,.6); font-size: 14px;
}
.zy-cta__tel a { color: #fff; font-weight: 700; }

/* ==========================================================================
   19. 分页 / 归档
   ========================================================================== */
.zy-pagination { margin-top: 56px; }
.zy-pagination .nav-links {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px;
}
.zy-pagination .page-numbers {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 44px; height: 44px; padding: 0 12px;
  border: 1px solid var(--zy-line); border-radius: var(--zy-radius);
  background: #fff; color: var(--zy-ink); font-size: 15px; font-weight: 500;
}
.zy-pagination .page-numbers:hover { border-color: var(--zy-black); color: var(--zy-black); }
.zy-pagination .page-numbers.current { background: var(--zy-red); border-color: var(--zy-red); color: #fff; font-weight: 700; }
.zy-pagination .page-numbers.dots { border-color: transparent; background: none; }

/* ==========================================================================
   20. 404 / 搜索
   ========================================================================== */
.zy-404 { padding: 110px 0 130px; text-align: center; }
.zy-404__code {
  margin: 0 0 14px; color: var(--zy-red);
  font-family: var(--zy-font-en); font-size: clamp(64px, 11vw, 130px);
  font-weight: 700; line-height: 1; letter-spacing: -.02em;
}
.zy-404__title { margin: 0 0 16px; font-size: clamp(22px, 2.6vw, 32px); }
.zy-404__text { max-width: 34em; margin: 0 auto 34px; color: var(--zy-muted); font-size: 15.5px; line-height: 1.85; }

.zy-searchform { display: flex; gap: 12px; max-width: 540px; }
.zy-searchform input[type="search"] {
  flex: 1 1 auto; min-height: 52px; padding: 13px 18px;
  border: 1px solid var(--zy-line); border-radius: var(--zy-radius);
  font-family: inherit; font-size: 15px;
}
.zy-searchform input[type="search"]:focus { border-color: var(--zy-red); box-shadow: 0 0 0 3px var(--zy-red-soft); outline: none; }

/* ==========================================================================
   21. 图片说明 / 提示条
   ========================================================================== */
.zy-note {
  display: flex; gap: 12px;
  padding: 16px 20px;
  background: var(--zy-surface);
  border-left: 3px solid var(--zy-line);
  border-radius: 0 var(--zy-radius) var(--zy-radius) 0;
  color: var(--zy-muted); font-size: 14px; line-height: 1.8;
}
.zy-note--brand { border-left-color: var(--zy-red); }

/* ==========================================================================
   22. 动画入场（渐进增强，尊重减少动效偏好）
   ========================================================================== */
@media (prefers-reduced-motion: no-preference) {
  .zy-reveal { opacity: 0; transform: translateY(18px); transition: opacity .6s var(--zy-ease), transform .6s var(--zy-ease); }
  .zy-reveal.is-in { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* ==========================================================================
   23. WordPress 核心类
   ========================================================================== */
.alignleft { float: left; margin: 0 28px 20px 0; }
.alignright { float: right; margin: 0 0 20px 28px; }
.aligncenter { margin-left: auto; margin-right: auto; }
.alignwide { margin-left: -60px; margin-right: -60px; max-width: none; }
.alignfull { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); max-width: 100vw; width: 100vw; }
.wp-caption { max-width: 100%; }
.wp-caption-text, .wp-block-image figcaption { margin-top: 10px; color: var(--zy-muted); font-size: 13.5px; text-align: center; }
.sticky .zy-post__title::before { content: "推荐"; display: inline-block; margin-right: 10px; padding: 2px 9px; background: var(--zy-red); border-radius: 3px; color: #fff; font-size: 12px; vertical-align: 2px; }
.bypostauthor { display: block; }
.wp-block-button__link { border-radius: var(--zy-radius); }
.wp-block-quote { border-left: 3px solid var(--zy-red); padding-left: 24px; }
.wp-block-table figcaption { color: var(--zy-muted); font-size: 13.5px; }
.screen-reader-shortcut { position: absolute; top: -1000em; }

/* Elementor 兼容：主题自带模板时避免容器重复内边距 */
.elementor-kit-zenith .zy-container { max-width: var(--zy-container); }

/* ==========================================================================
   24. 响应式
   ========================================================================== */

/* --- 1200px 以下：收紧版心留白 --- */
@media (max-width: 1200px) {
  :root { --zy-gutter: 32px; }
  .zy-split, .zy-contact { gap: 56px; }
  .zy-hero__body { padding: 80px 48px; }
}

/* --- 1080px 以下：导航转入抽屉 --- */
@media (max-width: 1080px) {
  :root { --zy-header-h: 74px; --zy-logo-h: 42px; }
  .zy-nav { display: none; }
  .zy-header__cta { display: none; }
  .zy-burger { display: flex; }
  .zy-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .zy-posts--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .zy-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 44px 32px; }
}

/* --- 992px 以下：表格转双栏 --- */
@media (max-width: 992px) {
  .zy-section { padding: 78px 0; }
  .zy-section--tight { padding: 58px 0; }
  .zy-head { margin-bottom: 42px; }

  .zy-hero { grid-template-columns: 1fr; }
  .zy-hero__body { padding: 62px var(--zy-gutter) 56px; }
  .zy-hero__title { max-width: 100%; margin-bottom: 22px; }
  .zy-hero__media img { min-height: 320px; max-height: 440px; }

  .zy-split, .zy-split--wide-left, .zy-contact { grid-template-columns: 1fr; gap: 44px; }
  .zy-split__media { order: -1; }
  .zy-contact__info { order: 1; }

  .zy-lines { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .zy-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .zy-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .zy-stats__item:nth-child(2) { border-right: 0; }
  .zy-stats__item:nth-child(-n+2) { border-bottom: 1px solid var(--zy-line); }

  .zy-pagehead { padding: 58px 0 52px; }
  .zy-article { padding: 56px 0 76px; }
  .zy-faq__a-inner { padding-right: 40px; }
}

/* --- 768px 以下：手机 --- */
@media (max-width: 768px) {
  :root { --zy-gutter: 20px; --zy-header-h: 68px; --zy-logo-h: 38px; }

  body { font-size: 15.5px; line-height: 1.8; }

  .zy-section { padding: 60px 0; }
  .zy-section--tight { padding: 46px 0; }
  .zy-head { margin-bottom: 34px; }

  /* 触控目标 ≥44px */
  .zy-btn { min-height: 48px; padding: 13px 26px; }
  .zy-link { min-height: 44px; }
  .zy-nav__sub a { padding: 13px 22px; }

  .zy-grid, .zy-posts { gap: 16px; }
  .zy-grid--2, .zy-grid--3, .zy-grid--4,
  .zy-posts--2, .zy-posts--3,
  .zy-lines { grid-template-columns: 1fr; }

  .zy-card { padding: 26px 22px 28px; }
  .zy-card__title { font-size: 19px; }
  .zy-line-card { padding: 28px 22px 26px; }
  .zy-member { padding: 26px 22px 28px; }
  .zy-post__body { padding: 22px 20px 24px; }

  .zy-hero__body { padding: 48px var(--zy-gutter) 44px; }
  .zy-hero__title { font-size: clamp(27px, 7.6vw, 36px); line-height: 1.28; }
  .zy-hero__rule { width: 44px; margin-bottom: 20px; }
  .zy-hero__text { margin-bottom: 26px; font-size: 15.5px; }
  .zy-hero__actions { gap: 10px; }
  .zy-hero__actions .zy-btn { flex: 1 1 100%; }
  .zy-hero__lines { margin-top: 22px; font-size: 13.5px; }
  .zy-hero__lines span + span::before { margin: 0 7px; }
  .zy-hero__media img { min-height: 240px; max-height: 300px; }

  .zy-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .zy-stats__item { padding: 26px 18px; }

  .zy-pagehead { padding: 44px 0 40px; }
  .zy-pagehead__rule { margin-top: 20px; }

  .zy-faq__q { padding: 20px 0; gap: 18px; font-size: 16.5px; }
  .zy-faq__a-inner { padding: 0 0 22px; font-size: 14.5px; }
  .zy-faq__item.is-open .zy-faq__q::before { left: -12px; }
  .zy-faq__icon { width: 18px; height: 18px; }

  .zy-article { padding: 44px 0 64px; }
  .zy-article__head { margin-bottom: 30px; padding-bottom: 24px; }
  .zy-prose { font-size: 16px; line-height: 1.9; }
  .zy-postnav { grid-template-columns: 1fr; margin-top: 44px; }
  .zy-postnav__item--next { text-align: left; }

  .zy-contact { gap: 40px; }
  .zy-form__row--2 { grid-template-columns: 1fr; }
  .zy-form__foot .zy-btn { width: 100%; }

  .zy-qr { gap: 20px; }
  .zy-qr__item img { width: 132px; height: 132px; }

  .zy-cta { padding: 52px 0; }
  .zy-cta__inner { flex-direction: column; align-items: stretch; }
  .zy-cta__actions .zy-btn { flex: 1 1 100%; }

  .zy-footer { padding-top: 52px; }
  .zy-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 20px; padding-bottom: 40px; }
  .zy-footer__brand { grid-column: 1 / -1; }
  .zy-footer__bottom-inner { flex-direction: column; align-items: flex-start; gap: 6px; }

  .zy-tags { gap: 8px; margin-top: 22px; }
  .zy-tag { padding: 6px 14px; font-size: 13px; }

  .zy-searchform { flex-direction: column; }
  .zy-searchform .zy-btn { width: 100%; }
  .zy-404 { padding: 76px 0 90px; }
}

/* --- 480px 以下：小屏手机 --- */
@media (max-width: 480px) {
  :root { --zy-gutter: 16px; }
  .zy-hero__title { font-size: 27px; }
  .zy-stats { grid-template-columns: 1fr; }
  .zy-stats__item { border-right: 0; border-bottom: 1px solid var(--zy-line); padding: 22px 4px; }
  .zy-stats__item:last-child { border-bottom: 0; }
  .zy-stats__item:nth-child(-n+2) { border-bottom: 1px solid var(--zy-line); }
  .zy-footer__grid { grid-template-columns: 1fr; }
  .zy-drawer { width: 100%; }
  .zy-card__title { font-size: 18px; }
  .zy-title { font-size: 24px; }
}

/* --- 打印 --- */
@media print {
  .zy-header, .zy-drawer, .zy-overlay, .zy-cta, .zy-footer__menu, .zy-burger { display: none !important; }
  body { color: #000; background: #fff; font-size: 12pt; }
  .zy-section { padding: 12pt 0; }
  a { color: #000; text-decoration: underline; }
}
