/* ============================================================
   tfarrell.com · 全站设计系统 style.css
   品牌：泰丰网络 / TFARRELL.COM（国风唐装风）
   依据：tfarrell.com-01设计规范.md（色板/字体/布局/组件）
   纯 CSS3，无外部字体、无网络依赖
   ============================================================ */

/* ---------------- 1. 色板与字体变量（逐字引自 01 规范第 3、4 节，禁止自造色） ---------------- */
:root{
  --zhu:#B03A2E;        /* 主朱红 */
  --zhu-deep:#8C2B22;   /* 深绛红 */
  --zhu-dark:#57190F;   /* 墨红：深底区块用 */
  --zhu-soft:#F3D9D2;   /* 朱红浅晕：背景晕染 */
  --rice:#FAF5EB;       /* 米白：主背景 */
  --rice-deep:#F1E7D2;  /* 米黄：次背景 */
  --rice-dim:#E5D8BC;   /* 米灰：分隔背景 */
  --gold:#E3B23C;       /* 明黄金：强调 */
  --gold-deep:#BE8A2B;  /* 鎏金深 */
  --gold-soft:#F4E3B2;  /* 浅金 */
  --ink:#2A231D;        /* 墨色：正文 */
  --ink-soft:#5C5144;   /* 次文字 */
  --ink-faint:#97897A;  /* 弱文字 */
  --line:#E4D5BC;       /* 金米分隔线 */

  /* 字体（第 4 节，系统字体栈，无 CDN） */
  --font-h:"Noto Serif SC","Source Han Serif SC","STZhongsong","STSong","SimSun",serif;
  --font-b:"Noto Sans SC","Source Han Sans SC","Microsoft YaHei","PingFang SC",sans-serif;

  /* 布局常量 */
  --wrap:1200px;        /* 主体内容区宽 */
  --gutter:24px;        /* 两侧留白 */
  --nav-h:72px;         /* 导航高 */
  --shadow-card:0 6px 24px rgba(42,35,29,.08);
  --shadow-nav:0 4px 18px rgba(42,35,29,.10);
  --ease:cubic-bezier(.4,0,.2,1);
}

/* ---------------- 2. 基础 reset ---------------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--font-b);
  font-size:16px;
  line-height:1.85;
  color:var(--ink);
  background:var(--rice);
  overflow-x:hidden;
}
img{max-width:100%;display:block;border:0}
a{color:inherit;text-decoration:none;transition:color .2s var(--ease)}
ul,ol{list-style:none}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}
input,textarea,select{font:inherit;color:inherit}
h1,h2,h3,h4,h5,h6{font-family:var(--font-h);font-weight:700;letter-spacing:.04em;line-height:1.25}
::selection{background:var(--zhu);color:#fff}

/* ---------------- 3. 图标（02 规范第 1 节：内联 SVG 继承样式） ---------------- */
.ic{width:1.15em;height:1.15em;vertical-align:-.18em;flex:none}
.ic--chev{width:.85em;height:.85em;vertical-align:0;transition:transform .25s var(--ease)}

/* ---------------- 4. 容器 .wrap（1200px 居中） ---------------- */
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}

/* ---------------- 5. 顶栏 .topbar（米白底，细金线底边） ---------------- */
.topbar{
  background:var(--rice);
  border-bottom:1px solid var(--gold);
  font-size:13px;
  color:var(--ink-soft);
}
.topbar__inner{
  display:flex;align-items:center;justify-content:space-between;
  min-height:36px;gap:16px;
}
.topbar__slogan{letter-spacing:.06em}
.topbar__links{display:flex;align-items:center;gap:10px;white-space:nowrap}
.topbar__link{display:inline-flex;align-items:center;gap:5px;color:var(--ink-soft)}
.topbar__link:hover{color:var(--zhu)}
.topbar__sep{color:var(--gold-deep)}

/* ---------------- 6. 头部包裹 + 导航 .nav（sticky，滚动后 .is-scrolled） ---------------- */
.site-head{position:sticky;top:0;z-index:1000;background:var(--rice);border-bottom:1px solid var(--line)}
.nav{background:var(--rice);transition:box-shadow .3s var(--ease),background .3s var(--ease)}
.nav.is-scrolled{box-shadow:var(--shadow-nav);background:rgba(250,245,235,.94);backdrop-filter:saturate(1.2)}
.nav__inner{
  display:flex;align-items:center;gap:24px;
  min-height:var(--nav-h);
}
.nav__brand{display:flex;align-items:center;gap:10px;flex:none}
.nav__brand img{border-radius:8px}
.nav__brand-name{font-family:var(--font-h);font-size:20px;font-weight:900;color:var(--ink);letter-spacing:.06em}
.nav__brand-en{font-family:Georgia,serif;font-size:11px;letter-spacing:.18em;color:var(--gold-deep)}

.nav__list{display:flex;align-items:center;flex:1;justify-content:center;gap:2px}
.nav__item{position:relative}
.nav__link{
  display:inline-flex;align-items:center;gap:4px;
  padding:10px 13px;font-size:15px;color:var(--ink);position:relative;white-space:nowrap;
}
.nav__link::after{
  content:"";position:absolute;left:13px;right:13px;bottom:4px;height:2px;
  background:var(--gold);transform:scaleX(0);transform-origin:center;
  transition:transform .25s var(--ease);
}
.nav__link:hover{color:var(--zhu)}
.nav__link:hover::after{transform:scaleX(1)}
/* 当前项：朱红字 + 金线 */
.nav__link.is-active{color:var(--zhu);font-weight:700}
.nav__link.is-active::after{transform:scaleX(1)}

/* 下拉菜单 .nav__drop */
.nav__drop{
  position:absolute;top:100%;left:0;min-width:216px;
  background:#fff;border:1px solid var(--line);border-top:2px solid var(--gold);
  box-shadow:0 12px 32px rgba(42,35,29,.14);
  padding:8px 0;
  opacity:0;visibility:hidden;transform:translateY(10px);
  transition:opacity .22s var(--ease),transform .22s var(--ease),visibility .22s;
}
.nav__item--drop:hover .nav__drop,
.nav__item--drop.is-open .nav__drop{opacity:1;visibility:visible;transform:translateY(0)}
.nav__item--drop:hover .ic--chev,
.nav__item--drop.is-open .ic--chev{transform:rotate(180deg)}
.nav__drop-link{
  display:block;padding:9px 20px;font-size:14px;color:var(--ink-soft);white-space:nowrap;
}
.nav__drop-link:hover{color:var(--zhu);background:var(--rice-deep);padding-left:24px}

.nav__cta{flex:none;margin-left:8px}

/* 汉堡按钮 .hamburger（≤768px 显示） */
.hamburger{
  display:none;flex-direction:column;justify-content:center;gap:5px;
  width:44px;height:44px;padding:10px;flex:none;
}
.hamburger__bar{display:block;height:2px;width:100%;background:var(--ink);border-radius:2px;transition:transform .3s var(--ease),opacity .3s var(--ease)}
.hamburger.is-open .hamburger__bar:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburger.is-open .hamburger__bar:nth-child(2){opacity:0}
.hamburger.is-open .hamburger__bar:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ---------------- 7. 移动端抽屉 .m-nav（全屏侧拉菜单） ---------------- */
.m-nav{
  position:fixed;top:0;right:0;height:100dvh;width:86%;max-width:360px;
  background:var(--rice);z-index:1200;
  transform:translateX(102%);transition:transform .32s var(--ease);
  display:flex;flex-direction:column;box-shadow:-8px 0 30px rgba(42,35,29,.18);
}
.m-nav.is-open{transform:translateX(0)}
.m-nav__head{
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 20px;border-bottom:1px solid var(--gold);
}
.m-nav__brand{font-family:var(--font-h);font-weight:900;font-size:17px;letter-spacing:.05em}
.m-nav__close{font-size:30px;line-height:1;width:40px;height:40px;color:var(--ink-soft)}
.m-nav__close:hover{color:var(--zhu)}
.m-nav__list{flex:1;overflow-y:auto;padding:10px 0 20px}
.m-nav__list > li > a,
.m-nav__list > li.m-nav__group{
  display:block;padding:12px 22px;font-size:16px;border-bottom:1px dashed var(--line);
}
.m-nav__list > li > a:hover{color:var(--zhu);background:var(--rice-deep)}
.m-nav__group{
  font-family:var(--font-h);font-weight:700;color:var(--zhu);font-size:14px;
  letter-spacing:.1em;background:var(--zhu-soft);
}
.m-nav__sub > a{display:block;padding:9px 22px 9px 38px;font-size:14px;color:var(--ink-soft);border-bottom:1px dotted var(--line)}
.m-nav__sub > a:hover{color:var(--zhu)}
.m-nav__cta{
  margin:16px 22px;display:block;text-align:center;padding:12px;
  background:var(--zhu);color:#fff !important;font-family:var(--font-h);font-weight:700;
}
.m-nav__contact{
  padding:14px 22px;border-top:1px solid var(--gold);
  display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--ink-soft);
}

/* ---------------- 8. 面包屑 .crumb（内页） ---------------- */
.crumb{background:var(--rice-deep);font-size:13px;color:var(--ink-soft)}
.crumb__inner{display:flex;align-items:center;gap:8px;padding-top:10px;padding-bottom:10px;flex-wrap:wrap}
.crumb a:hover{color:var(--zhu)}
.crumb__sep{color:var(--gold-deep)}
.crumb__current{color:var(--ink)}

/* ---------------- 9. 区块 .sec 与背景变体 ---------------- */
.sec{padding:96px 0;position:relative}
.sec--rice{background:var(--rice)}
.sec--zhu{background:var(--zhu-soft)}
.sec--gold{background:var(--gold-soft)}
.sec--ink{background:var(--zhu-dark);color:var(--rice)}
.sec--ink .head__sub{color:var(--rice-dim)}
.sec--ink .head__title{color:var(--rice)}

/* 网格工具（卡片列表用，响应式自动折行） */
.grid{display:grid;gap:28px}
.grid--2{grid-template-columns:repeat(2,1fr)}
.grid--3{grid-template-columns:repeat(3,1fr)}
.grid--4{grid-template-columns:repeat(4,1fr)}

/* ---------------- 10. 区块标题 .head（眉标=金色小印章+短句） ---------------- */
.head{margin-bottom:48px}
.head--center{text-align:center}
.head__kicker{
  display:inline-block;padding:4px 16px;margin-bottom:16px;
  font-size:13px;letter-spacing:.25em;color:var(--gold-deep);
  border:1px solid var(--gold);border-radius:2px;
  background:linear-gradient(rgba(227,178,60,.12),rgba(227,178,60,.12));
}
.sec--ink .head__kicker{color:var(--gold);border-color:var(--gold)}
.head__title{font-size:38px;font-weight:900;color:var(--ink);margin-bottom:14px}
.head__sub{font-size:15px;color:var(--ink-soft);max-width:640px;line-height:1.9}
.head--center .head__sub{margin:0 auto}

/* ---------------- 11. 阶梯布局 .ladder（第 5 节：左右阶梯 + 垂直错位） ---------------- */
.ladder{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.ladder__text h3{font-size:28px;font-weight:900;margin-bottom:16px;color:var(--ink)}
.ladder__text p{margin-bottom:14px;color:var(--ink-soft);font-size:15.5px}
.sec--ink .ladder__text h3{color:var(--rice)}
.sec--ink .ladder__text p{color:var(--rice-dim)}
.ladder__img img{
  width:100%;height:auto;border-radius:4px;box-shadow:var(--shadow-card);
  border:1px solid var(--line);
}
/* --l 文左图右（默认即此顺序，显式别名保持类名语义完整）；--r 图左文右 */
.ladder--l{direction:ltr}
.ladder--r{direction:rtl}
.ladder--r>*{direction:ltr}
/* 垂直错位：配图块相对文字块下移 60~110px（桌面端生效） */
@media (min-width:992px){
  .ladder{gap:72px}
  .ladder__img{margin-top:80px}
  .ladder--r .ladder__img{margin-top:80px}
}

/* ---------------- 12. 按钮 .btn ---------------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:12px 30px;font-size:15px;letter-spacing:.08em;
  border-radius:2px;border:1px solid transparent;
  transition:all .25s var(--ease);white-space:nowrap;
}
.btn--zhu{background:var(--zhu);color:#fff}
.btn--zhu:hover{background:var(--zhu-deep);transform:translateY(-2px);box-shadow:0 6px 16px rgba(176,58,46,.3)}
.btn--gold{background:var(--gold);color:var(--ink)}
.btn--gold:hover{background:var(--gold-deep);color:#fff;transform:translateY(-2px)}
.btn--line{background:transparent;color:var(--zhu);border-color:var(--zhu)}
.btn--line:hover{background:var(--zhu);color:#fff}
/* 印章式：方角 + 白字 + 印泥阴影 */
.btn--seal{
  background:var(--zhu);color:#fff;border-radius:0;
  box-shadow:inset 0 0 0 2px rgba(250,245,235,.35),2px 2px 0 rgba(140,43,34,.45);
  font-family:var(--font-h);font-weight:700;
}
.btn--seal:hover{background:var(--zhu-deep)}

/* ---------------- 13. 服务卡 .card--svc A/B/C ---------------- */
.card{
  background:#fff;border:1px solid var(--line);border-radius:3px;
  padding:28px;box-shadow:0 2px 10px rgba(42,35,29,.05);
  transition:transform .25s var(--ease),box-shadow .25s var(--ease);
}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-card)}
.card h3{font-size:19px;font-weight:700;margin-bottom:10px;color:var(--ink)}
.card p{font-size:14px;color:var(--ink-soft)}
.card .ic{font-size:26px;color:var(--zhu);margin-bottom:12px}

/* svcA：拱门上图（border-radius:999px 999px 12px 12px） */
.card--svcA{padding:0;overflow:hidden;text-align:center}
.card--svcA .card__img{
  border-radius:999px 999px 12px 12px;overflow:hidden;margin:18px auto 0;max-width:88%;
  border:1px solid var(--line);
}
.card--svcA .card__img img{width:100%}
.card--svcA .card__body{padding:20px 24px 28px}

/* svcB：回纹顶边 + 左金线 */
.card--svcB{
  border-top:3px solid var(--gold);border-left:3px solid var(--gold);
  position:relative;
}
.card--svcB::before{
  content:"";position:absolute;top:6px;left:6px;width:14px;height:14px;
  border-top:2px solid var(--zhu);border-left:2px solid var(--zhu);
}

/* svcC：印章序号 + 横排图 */
.card--svcC{display:flex;flex-direction:column}
.card--svcC .card__no{
  align-self:flex-start;width:38px;height:38px;line-height:38px;text-align:center;
  background:var(--zhu);color:#fff;font-family:var(--font-h);font-weight:700;
  border-radius:2px;margin-bottom:14px;box-shadow:1px 1px 0 rgba(140,43,34,.4);
}
.card--svcC .card__img{margin:0 -28px 18px}
.card--svcC .card__img img{width:100%;height:160px;object-fit:cover}

/* ---------------- 14. 案例卡 .card--case A/B ---------------- */
/* caseA：图 + 朱红角标数字 */
.card--caseA{padding:0;overflow:hidden;position:relative;background:#fff}
.card--caseA .card__img img{width:100%;height:220px;object-fit:cover}
.card--caseA .card__no{
  position:absolute;top:0;right:0;width:56px;height:56px;
  background:var(--zhu);color:#fff;font-family:Georgia,serif;font-size:22px;font-weight:700;
  display:flex;align-items:center;justify-content:center;
  clip-path:polygon(0 0,100% 0,100% 100%);
}
.card--caseA .card__body{padding:18px 22px 22px}
.card--caseA .card__body h3{font-size:17px}

/* caseB：竖向卷轴式（图在上，文字压金线） */
.card--caseB{padding:0;overflow:hidden;background:var(--rice-deep);border:1px solid var(--gold-soft)}
.card--caseB .card__img img{width:100%;height:200px;object-fit:cover}
.card--caseB .card__body{
  padding:18px 22px 24px;border-top:2px solid var(--gold);position:relative;
}
.card--caseB .card__body::before{
  content:"";position:absolute;top:-6px;left:24px;width:10px;height:10px;
  background:var(--gold);transform:rotate(45deg);
}

/* ---------------- 15. 资讯卡 .card--news A/B ---------------- */
/* newsA：日期块 + 标题 + 摘要 */
.card--newsA{display:flex;flex-direction:column;background:#fff}
.card--newsA .card__date{
  align-self:flex-start;text-align:center;padding:8px 12px;margin-bottom:14px;
  background:var(--zhu-soft);border-radius:2px;line-height:1.3;
}
.card--newsA .card__date b{display:block;font-family:Georgia,serif;font-size:22px;color:var(--zhu)}
.card--newsA .card__date span{font-size:12px;color:var(--ink-soft)}
.card--newsA p{margin-top:8px}

/* newsB：左侧金竖线 + 序号 */
.card--newsB{border-left:3px solid var(--gold);padding-left:22px;position:relative}
.card--newsB .card__no{
  position:absolute;left:-3px;top:24px;transform:translateX(-50%);
  width:26px;height:26px;line-height:26px;text-align:center;border-radius:50%;
  background:#fff;border:2px solid var(--gold);color:var(--gold-deep);
  font-family:Georgia,serif;font-size:13px;font-weight:700;
}

/* ---------------- 16. 价值卡 .card--val（回纹顶边） ---------------- */
.card--val{
  border-top:3px double var(--gold);
  background:#fff;
}
.card--val .ic{font-size:30px;color:var(--zhu);background:var(--zhu-soft);width:56px;height:56px;line-height:56px;text-align:center;display:flex;align-items:center;justify-content:center;border-radius:3px}
.card--val h3{margin-top:14px}

/* ---------------- 17. 步骤 .steps / .step ---------------- */
.steps--v{display:flex;flex-direction:column;gap:0;position:relative;padding-left:8px}
.steps--h{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;position:relative}
.step{position:relative;padding:14px 0 14px 64px}
/* 垂直方向：金色虚线连接 */
.steps--v .step::before{
  content:"";position:absolute;left:19px;top:0;bottom:0;
  border-left:2px dashed var(--gold);
}
.steps--v .step:last-child::before{bottom:50%}
/* 水平方向：金色虚线连接 */
.steps--h .step{padding:0 0 0 0;text-align:center}
.steps--h .step::before{
  content:"";position:absolute;left:64px;right:-24px;top:27px;border-top:2px dashed var(--gold);
}
.steps--h .step:last-child::before{display:none}
.step__no{
  position:absolute;left:0;top:16px;width:40px;height:40px;line-height:40px;text-align:center;
  background:var(--zhu);color:#fff;font-family:var(--font-h);font-weight:700;border-radius:2px;
  box-shadow:1px 1px 0 rgba(140,43,34,.4);z-index:1;
}
.steps--h .step__no{position:static;margin:0 auto 12px}
.step h4{font-size:16px;margin-bottom:6px}
.step p{font-size:13.5px;color:var(--ink-soft)}

/* ---------------- 18. 数据 .stat（大数字衬线） ---------------- */
.stat{text-align:center;padding:10px}
.stat__num{
  font-family:Georgia,var(--font-h);font-size:52px;font-weight:700;line-height:1.1;
  color:var(--zhu);
}
.stat__num small{font-size:22px;color:var(--gold-deep);margin-left:2px}
.stat__label{font-size:14px;color:var(--ink-soft);margin-top:6px;letter-spacing:.1em}
.sec--ink .stat__label{color:var(--rice-dim)}

/* ---------------- 19. 时间轴 .timeline（竖线 + 节点圆点像素级对齐） ---------------- */
.timeline{position:relative;padding-left:32px}
.timeline::before{
  content:"";position:absolute;left:7px;top:6px;bottom:6px;width:2px;background:var(--gold);
}
.timeline__item{position:relative;padding-bottom:28px}
.timeline__item:last-child{padding-bottom:0}
.timeline__item::before{
  content:"";position:absolute;left:-32px;top:8px;width:12px;height:12px;
  border-radius:50%;background:var(--zhu);border:2px solid var(--rice);
  box-shadow:0 0 0 2px var(--gold);
}
.timeline__time{
  display:inline-block;font-family:Georgia,serif;font-size:13px;font-weight:700;
  color:var(--gold-deep);letter-spacing:.08em;margin-bottom:4px;
}
.timeline__body h4{font-size:16px;margin-bottom:4px}
.timeline__body p{font-size:14px;color:var(--ink-soft)}

/* ---------------- 20. 页签 .tabs ---------------- */
.tabs{margin-bottom:8px}
.tab-btn{
  display:inline-block;padding:10px 26px;font-size:15px;color:var(--ink-soft);
  border-bottom:2px solid transparent;position:relative;
}
.tab-btn:hover{color:var(--zhu)}
.tab-btn.is-active{color:var(--zhu);font-weight:700;border-bottom-color:var(--zhu)}
.tab-pane{display:none;padding-top:24px}
.tab-pane.is-active{display:block;animation:fadeUp .35s var(--ease)}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* ---------------- 21. 手风琴 .acc（FAQ） ---------------- */
.acc{border:1px solid var(--line);background:#fff;border-radius:3px;overflow:hidden}
.acc__item{border-bottom:1px solid var(--line)}
.acc__item:last-child{border-bottom:none}
.acc__head{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:16px 22px;text-align:left;font-family:var(--font-h);font-weight:700;font-size:16px;
  color:var(--ink);background:transparent;
}
.acc__head::after{
  content:"+";font-family:Georgia,serif;font-size:22px;color:var(--gold-deep);
  transition:transform .25s var(--ease);flex:none;
}
.acc__item.is-open .acc__head{color:var(--zhu)}
.acc__item.is-open .acc__head::after{transform:rotate(45deg)}
.acc__body{max-height:0;overflow:hidden;transition:max-height .35s var(--ease)}
.acc__body p{padding:0 22px 18px;font-size:14.5px;color:var(--ink-soft)}

/* ---------------- 22. 引用 .quote ---------------- */
.quote{
  position:relative;padding:36px 40px 30px 72px;background:var(--rice-deep);
  border-left:4px solid var(--zhu);border-radius:0 4px 4px 0;
}
.quote .ic{
  position:absolute;left:24px;top:30px;font-size:34px;color:var(--gold);
}
.quote p{font-family:var(--font-h);font-size:19px;line-height:2;color:var(--ink)}
.quote footer{margin-top:12px;font-size:13px;color:var(--ink-faint);letter-spacing:.1em}

/* ---------------- 23. 表格 .table / .table--price ---------------- */
.table{overflow-x:auto;border:1px solid var(--line);border-radius:3px;background:#fff}
.table table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:14.5px}
.table th,.table td{padding:14px 16px;border-bottom:1px solid var(--line);text-align:left;word-break:break-all}
.table thead th{
  background:var(--zhu-dark);color:var(--rice);font-family:var(--font-h);
  letter-spacing:.08em;font-weight:700;
}
.table tbody tr:nth-child(even){background:var(--rice)}
.table tbody tr:hover{background:var(--zhu-soft)}
/* 价格表：显式列宽 */
.table--price th:nth-child(1),.table--price td:nth-child(1){width:26%}
.table--price th:nth-child(2),.table--price td:nth-child(2){width:18%}
.table--price th:nth-child(3),.table--price td:nth-child(3){width:18%}
.table--price th:nth-child(n+4),.table--price td:nth-child(n+4){width:auto}
.table--price .price-num{font-family:Georgia,serif;font-size:22px;font-weight:700;color:var(--zhu)}

/* ---------------- 24. 国风表单 .form（下划线式输入框） ---------------- */
.form{background:#fff;border:1px solid var(--line);border-radius:3px;padding:32px;max-width:560px}
.form__item{margin-bottom:22px}
.form__label{display:block;font-size:14px;color:var(--ink-soft);margin-bottom:8px;letter-spacing:.05em}
.form__input,.form textarea,.form select{
  width:100%;border:none;border-bottom:1px solid var(--gold-deep);
  background:transparent;padding:10px 2px;font-size:16px;outline:none;
  transition:border-color .25s var(--ease);border-radius:0;
}
.form textarea{min-height:96px;resize:vertical;line-height:1.7}
.form__input:focus,.form textarea:focus,.form select:focus{border-bottom:2px solid var(--zhu)}
.form__btn{width:100%;justify-content:center;padding:14px;font-size:16px}

/* ---------------- 25. 侧栏 .side（内页左导航 + 联系卡） ---------------- */
.side{display:grid;grid-template-columns:260px 1fr;gap:40px;align-items:start}
.side__nav{
  background:#fff;border:1px solid var(--line);border-top:3px solid var(--gold);
  border-radius:3px;overflow:hidden;position:sticky;top:96px;
}
.side__nav a{
  display:block;padding:12px 20px;font-size:14.5px;color:var(--ink-soft);
  border-bottom:1px dashed var(--line);
}
.side__nav a:hover{color:var(--zhu);background:var(--rice-deep)}
.side__nav a.is-active{color:var(--zhu);font-weight:700;border-left:3px solid var(--zhu);background:var(--zhu-soft)}
.side__card{
  margin-top:24px;background:var(--zhu-dark);color:var(--rice);border-radius:3px;
  padding:24px;
}
.side__card h4{color:var(--gold);margin-bottom:10px}
.side__card p{font-size:13.5px;line-height:1.9;color:var(--rice-dim)}
.side__card .phone-big{display:block;font-family:Georgia,serif;font-size:22px;color:var(--gold);margin-top:8px}

/* ---------------- 26. CTA 带 .cta（每页底部，三变体轮换） ---------------- */
.cta{text-align:center}
.cta--zhu{background:var(--zhu);color:#fff;border-top:3px solid var(--gold);border-bottom:3px solid var(--gold)}
.cta--ink{background:var(--zhu-dark);color:var(--rice)}
.cta--gold{background:var(--gold-soft);color:var(--ink);border-top:3px solid var(--gold-deep)}
.cta__inner{display:flex;flex-direction:column;align-items:center;gap:14px}
.cta__title{font-size:32px;font-weight:900}
.cta--gold .cta__title{color:var(--zhu-dark)}
.cta__desc{font-size:15px;opacity:.92;max-width:560px}
.cta__phone{
  font-family:Georgia,var(--font-h);font-size:44px;font-weight:700;letter-spacing:.04em;
  color:var(--gold);line-height:1.2;
}
.cta--zhu .cta__phone,.cta--ink .cta__phone{color:var(--gold)}
.cta--gold .cta__phone{color:var(--zhu)}
.cta__btns{display:flex;gap:16px;flex-wrap:wrap;justify-content:center;margin-top:8px}

/* ---------------- 27. 页脚 .footer（墨红深底，金线顶边，4 列） ---------------- */
.footer{background:var(--zhu-dark);color:var(--rice-dim);border-top:3px solid var(--gold)}
.footer__grid{
  display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:40px;
  padding-top:56px;padding-bottom:48px;
}
.footer__col{display:flex;flex-direction:column}
.footer__brand{font-family:var(--font-h);font-size:20px;font-weight:900;color:var(--rice);margin-bottom:14px}
.footer__brand span{font-family:Georgia,serif;font-size:12px;letter-spacing:.2em;color:var(--gold);margin-left:8px}
.footer__desc{font-size:13.5px;line-height:1.9;margin-bottom:16px}
.footer__contact{font-size:13.5px;line-height:2}
.footer__title{
  font-size:15px;color:var(--rice);margin-bottom:16px;letter-spacing:.12em;
  padding-bottom:10px;border-bottom:1px solid rgba(227,178,60,.35);
}
.footer__link{display:block;font-size:13.5px;padding:4px 0;color:var(--rice-dim)}
.footer__link:hover{color:var(--gold);padding-left:6px}
.footer__bottom{border-top:1px solid rgba(227,178,60,.25);padding:18px 0;font-size:13px}
.footer__bottom-inner{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.footer__icp a{color:var(--rice-dim)}
.footer__icp a:hover{color:var(--gold)}

/* ---------------- 28. 浮动条 .f-phone + 回顶 .back-top ---------------- */
.f-phone{
  position:fixed;right:14px;top:50%;transform:translateY(-50%);
  display:flex;flex-direction:column;gap:8px;z-index:900;
}
.f-phone__item{
  width:52px;height:52px;border-radius:3px;background:var(--zhu);color:#fff;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  font-size:11px;box-shadow:0 4px 12px rgba(176,58,46,.35);
  transition:background .2s var(--ease);
}
.f-phone__item:hover{background:var(--zhu-deep)}
.f-phone__item .ic{font-size:20px}

.back-top{
  position:fixed;right:14px;bottom:24px;width:46px;height:46px;border-radius:3px;
  background:var(--gold);color:var(--ink);display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 12px rgba(42,35,29,.25);z-index:900;
  opacity:0;visibility:hidden;transform:translateY(10px);
  transition:opacity .3s var(--ease),transform .3s var(--ease),visibility .3s;
}
.back-top.is-show{opacity:1;visibility:visible;transform:none}
.back-top .ic{font-size:20px}

/* ---------------- 29. 分隔装饰 ---------------- */
/* 祥云分隔：CSS 扇贝云纹 */
.divider--cloud{
  height:36px;position:relative;overflow:hidden;
  background:
    radial-gradient(circle at 10px 36px 14px 14px, transparent 12px, var(--gold-soft) 13px) repeat-x,
    radial-gradient(circle at 30px 36px 10px 10px, transparent 9px, var(--gold-soft) 10px) repeat-x;
  background-size:40px 36px;opacity:.8;
}
/* 双金线分隔 */
.divider--line{
  height:14px;position:relative;margin:8px auto;max-width:220px;
}
.divider--line::before,.divider--line::after{
  content:"";position:absolute;left:0;right:0;height:1px;background:var(--gold);
}
.divider--line::before{top:2px;box-shadow:0 3px 0 rgba(227,178,60,.5)}
.divider--line::after{bottom:2px}
.divider--line{background:radial-gradient(circle at 50% 50%, var(--gold-deep) 0 3px, transparent 4px)}

/* ---------------- 30. 滚动渐入 [data-reveal]（配合 JS IntersectionObserver） ----------------
   健壮模式：隐藏规则仅在 html.js-reveal（脚本成功执行）时才生效；
   无 JS / JS 失败时内容默认始终可见。 */
html.js-reveal [data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
html.js-reveal [data-reveal].is-revealed{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  html.js-reveal [data-reveal]{opacity:1 !important;transform:none !important;transition:none}
  html{scroll-behavior:auto}
}

/* ---------------- 31. Toast（表单假提交提示，JS 动态创建） ---------------- */
.toast{
  position:fixed;left:50%;bottom:64px;transform:translateX(-50%) translateY(20px);
  background:var(--ink);color:var(--rice);padding:12px 28px;border-radius:3px;
  font-size:14px;letter-spacing:.05em;z-index:2000;opacity:0;visibility:hidden;
  transition:opacity .3s var(--ease),transform .3s var(--ease),visibility .3s;
  border-left:3px solid var(--gold);
}
.toast.is-show{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}

/* ============================================================
   响应式三档断点：992 / 768 / 480
   ============================================================ */

/* ---- 992px 以下：阶梯转单列，图片在前，取消垂直错位 ---- */
@media (max-width:991.98px){
  .ladder{grid-template-columns:1fr;gap:32px}
  .ladder__img{margin-top:0 !important;order:-1}
  .steps--h{grid-template-columns:repeat(2,1fr);gap:28px}
  .steps--h .step::before{display:none}
  .grid--4{grid-template-columns:repeat(2,1fr)}
  .grid--3{grid-template-columns:repeat(2,1fr)}
  .side{grid-template-columns:1fr;gap:28px}
  .side__nav{position:static}
  .footer__grid{grid-template-columns:1fr 1fr;gap:28px}
}

/* ---- 768px 以下：汉堡菜单、隐藏桌面导航 ---- */
@media (max-width:767.98px){
  .topbar__slogan{display:none}
  .nav__list{display:none}
  .nav__cta{display:none}
  .hamburger{display:flex}
  .head__title{font-size:29px}
  .cta__title{font-size:25px}
  .cta__phone{font-size:32px}
  .stat__num{font-size:40px}
  .sec{padding:56px 0}
  .head{margin-bottom:32px}
  .f-phone__item{width:42px;height:42px}
  .f-phone__item span{display:none}
}

/* ---- 480px 以下：精简间距字号 ---- */
@media (max-width:479.98px){
  body{font-size:15px}
  .topbar{font-size:12px}
  /* 窄屏顶栏防溢出：隐藏邮箱与分隔符，保留电话+微信（邮箱在页脚/浮动条仍可见）。
     用 a[href^="mailto:"] 而非 :last-child——顶栏 HTML 邮箱锚后有换行缩进文本节点，
     :last-child 会因文本节点失配而不生效。 */
  .topbar__links a[href^="mailto:"]{display:none}
  .topbar__links .topbar__sep{display:none}
  .topbar__links{gap:8px}
  .nav__brand-name{font-size:17px}
  .nav__brand-en{display:none}
  .head__title{font-size:25px}
  .head__sub{font-size:14px}
  .ladder__text h3{font-size:22px}
  .grid--2,.grid--3,.grid--4{grid-template-columns:1fr}
  .steps--h{grid-template-columns:1fr}
  .footer__grid{grid-template-columns:1fr;gap:24px;padding-top:40px}
  .footer__bottom-inner{flex-direction:column;gap:6px;text-align:center}
  .btn{padding:11px 22px;font-size:14px}
  .form{padding:22px}
  .quote{padding:28px 20px 24px 56px}
  .quote p{font-size:16px}
  .cta__phone{font-size:28px}
}
