/* CJK uses installed system fonts. IBM Plex Mono Latin1 subsets are self-hosted;
   provenance and OFL license are in ./fonts/. No remote font requests. */

@font-face{
  font-family:'Source Han Sans SC';
  font-style:normal;
  font-weight:300 700;
  font-display:swap;
  src:local('Source Han Sans SC'),local('SourceHanSansSC-Regular'),
      local('Noto Sans SC'),local('Noto Sans CJK SC'),
      local('PingFang SC'),local('Microsoft YaHei');
  /* self-host: 追加 , url("./fonts/SourceHanSansSC-Regular.woff2") format("woff2") */
}

@font-face{
  font-family:'IBM Plex Mono';
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url(/./static/assets/fonts/IBMPlexMono-Regular-Latin1.be251670.woff2) format('woff2');
}

@font-face{
  font-family:'IBM Plex Mono';
  font-style:normal;
  font-weight:500;
  font-display:swap;
  src:url(/./static/assets/fonts/IBMPlexMono-Medium-Latin1.3c31d506.woff2) format('woff2');
}

@font-face{
  font-family:'IBM Plex Mono';
  font-style:normal;
  font-weight:700;
  font-display:swap;
  src:url(/./static/assets/fonts/IBMPlexMono-Bold-Latin1.d3c594da.woff2) format('woff2');
}

/* WordsTalk 色彩令牌 v3.1
   唯一事实来源。site-v3.css 与 Vue 组件只读 var(--*)，不写十六进制或 rgba。
   对比度由 scripts/verify-tokens.js 断言；注释里的比值是相对白底 / 暖纸 / 深底的实测值。 */

:root{
  /* 品牌 · 砖红（Logo 标志色）——只用于强调尺度，不做大面积色块 */
  --wt-brick:#a8463f;            /* 链接、标签、编号、指示线 · 白 5.81 / 暖纸 5.34 */
  --wt-brick-hover:#8a3730;      /* 链接与按钮 hover · 白字 7.87 */
  --wt-brick-soft:#a05a52;       /* 实心按钮底 · 白字 5.15 */
  --wt-brick-on-dark:#dd9a88;    /* 深底上的砖红（标签、列标题、编号）· 深底 4.62；v3.0 为 #d3826f（3.67，不达标） */

  /* 辅助 · 石板灰（Logo 字标色） */
  --wt-logo-grey:#63616b;        /* ghost 按钮边、保障页首屏大字 · 白 6.08 */
  --wt-slate-ground:#3e3d45;     /* 全站唯一深底：页脚、服务页质控区块 */

  /* 文字（暖墨） */
  --wt-ink:#211b1d;              /* 标题 */
  --wt-ink-body:#2a2624;         /* 正文 */
  --wt-graphite:#5f595b;         /* 辅助文字 · 白 6.85 / 暖纸 6.29 */
  --wt-index-grey:#736d75;       /* 次要编号、英文组名、未选中项 · 白 5.03 / 暖纸 4.62；v3.0 为 #8f8890（3.45，不达标） */
  --wt-text-dim:#8f8890;         /* 仅限 ≥18.66px 粗体或 ≥24px 的弱化态 · 白 3.45 / 暖纸 3.17 */
  --wt-placeholder:#77717a;      /* 输入框占位文字 · 白 4.74；v3.0 为 #a19a9c（2.76，不达标） */

  /* 表面 */
  --wt-white:#ffffff;
  --wt-paper-bright:#fdfcf9;     /* Logo 格 hover、选中文字色 */
  --wt-paper:#f6f4f0;            /* 深底白按钮 hover */
  --wt-paper-warm:#f7f5f2;       /* .v3-paper 区块底、暖纸格 */
  --wt-mist:#e7eaec;             /* 图片垫底 */

  /* 细线 */
  --wt-rule:#d8d1cc;             /* 输入框边 */
  --wt-rule-warm:#dcd5cf;        /* 默认细线，最常用 */
  --wt-rule-chip:#cabfb7;        /* 芯片、复制按钮边 */
  --wt-rule-strong:#c7bfb7;      /* hover 边、面包屑下划线、未激活节点边（非文字） */
  --wt-menu-border:#ece6e3;      /* 菜单行分隔 */

  /* 深底文字与细线：白色固定透明度，不用灰色十六进制 */
  --wt-on-dark:#ffffff;
  --wt-on-dark-80:rgba(255,255,255,.8);    /* 正文 7.53 */
  --wt-on-dark-72:rgba(255,255,255,.72);   /* 6.49 */
  --wt-on-dark-64:rgba(255,255,255,.64);   /* 5.49 */
  --wt-on-dark-56:rgba(255,255,255,.56);   /* 最低档 4.63，不低于 13px */
  --wt-on-dark-rule:rgba(255,255,255,.18);
  --wt-on-dark-rule-faint:rgba(255,255,255,.12); /* 版权分隔线 */

  /* 半透明表面 */
  --wt-subnav-bg:rgba(255,255,255,.96);
  --wt-caption-scrim:rgba(33,27,29,.78);
  --wt-scrim:rgba(62,61,69,.48); /* 移动菜单遮罩，非文字表面 */

  /* 语义别名——新代码优先用这一组 */
  --text-heading:var(--wt-ink);
  --text-body:var(--wt-ink-body);
  --text-muted:var(--wt-graphite);
  --text-quiet:var(--wt-index-grey);
  --text-dim:var(--wt-text-dim);
  --text-placeholder:var(--wt-placeholder);
  --text-inverse:var(--wt-on-dark);
  --text-inverse-muted:var(--wt-on-dark-72);
  --link:var(--wt-brick);
  --link-hover:var(--wt-brick-hover);
  --accent:var(--wt-brick);
  --accent-on-dark:var(--wt-brick-on-dark);
  --support:var(--wt-logo-grey);

  --surface-page:var(--wt-white);
  --surface-card:var(--wt-white);
  --surface-paper:var(--wt-paper-warm);
  --surface-dark:var(--wt-slate-ground);
  --surface-image-bed:var(--wt-mist);

  --border-hairline:var(--wt-rule-warm);
  --border-input:var(--wt-rule);
  --border-strong:var(--wt-rule-strong);
  --border-chip:var(--wt-rule-chip);
  --border-on-dark:var(--wt-on-dark-rule);
}

/* WordsTalk 字体令牌 v3.1
   html{font-size:62.5%}，1rem = 10px。数值与 site-v3.css 的 11 级字阶一一对应，
   .v3-* 字阶类只读这里的令牌。中文一族（思源黑体），英文工具文字一族（IBM Plex Mono）。 */

:root{
  /* 字族 */
  --wt-display:'Noto Sans SC','Source Han Sans SC','Microsoft YaHei',Arial,sans-serif; /* @kind font */
  --wt-body:'Noto Sans SC','Source Han Sans SC','Microsoft YaHei',Arial,sans-serif; /* @kind font */
  --wt-utility:'IBM Plex Mono','SFMono-Regular',Consolas,monospace; /* @kind font */
  --font-display:var(--wt-display);
  --font-body:var(--wt-body);
  --font-mono:var(--wt-utility);

  /* 字重：只有这四档 */
  --wt-weight-body:400;      /* 正文 */
  --wt-weight-medium:500;    /* 导航、列表项、标签页 */
  --wt-weight-semibold:600;  /* 按钮、文字链接 */
  --wt-weight-bold:700;      /* 所有标题、标签、编号、数字 */

  /* 字号 */
  --wt-size-display:clamp(6.4rem,11vw,16rem);       /* .v3-display */
  --wt-size-display-core:clamp(5.6rem,9vw,13.6rem); /* 关于 / 保障 / 联系 / 加入 / 隐私首屏 */
  --wt-size-h1:clamp(4.4rem,6vw,8rem);
  --wt-size-h2:clamp(3rem,3.4vw,4.4rem);
  --wt-size-h3:clamp(2rem,1.8vw,2.4rem);
  --wt-size-h4:1.8rem;
  --wt-size-lead:clamp(1.7rem,1.35vw,1.9rem);
  --wt-size-body:1.6rem;
  --wt-size-small:1.4rem;
  --wt-size-label:1.4rem;
  --wt-size-idx:1.2rem;                             /* Mono 编号与英文组名 */
  --wt-size-num:clamp(4.4rem,4.4vw,6.4rem);

  /* 行高 */
  --wt-leading-display:.98;
  --wt-leading-h1:1.06;
  --wt-leading-h2:1.22;
  --wt-leading-h3:1.4;
  --wt-leading-h4:1.5;
  --wt-leading-lead:1.85;
  --wt-leading-body:1.85;
  --wt-leading-small:1.75;
  --wt-leading-label:1.4;

  /* 字距 */
  --wt-track-display:-.045em;
  --wt-track-h1:-.035em;
  --wt-track-h2:-.025em;
  --wt-track-h3:-.012em;
  --wt-track-h4:-.005em;
  --wt-track-num:-.04em;
  --wt-track-label:.12em;
  --wt-track-idx:.12em;
  --wt-track-en:.16em;      /* 全大写英文 kicker */
}

/* WordsTalk 间距与布局令牌 v3.1
   断点（CSS 变量不能用于媒体查询，故只在此记录）：
   1080px 页眉切汉堡、流程轨 6→3 列 · 900px 主栅格单列 · 560px 小屏卡片与流程轨 */

:root{
  /* 外壳与节奏 */
  --wt-content:128rem;              /* 内容最大宽 1280px */
  --wt-gutter:4.8rem;               /* 两侧沟槽：48 → 32（≤900）→ 20（≤560） */
  --wt-section-space:13.6rem;         /* 区块上下：136 → 96 → 76 */
  --wt-head-gap:6.4rem;             /* 区块头到内容 */

  /* 固定元素 */
  --wt-header-height:8rem;          /* 页眉：80，≤900 为 64 */
  --wt-header-height-scrolled:6.4rem;
  --wt-subnav-height:5.6rem;
  --wt-sticky-top:12rem;            /* 侧栏 sticky 偏移 */

  /* 阅读宽度 */
  --wt-reading:76rem;
  --wt-measure-lead:78rem;
  --wt-measure-body:72rem;

  /* 间距阶 */
  --wt-space-1:.8rem;
  --wt-space-2:1.2rem;
  --wt-space-3:1.6rem;
  --wt-space-4:2rem;
  --wt-space-5:2.4rem;
  --wt-space-6:3.2rem;
  --wt-space-7:4rem;
  --wt-space-8:4.8rem;
  --wt-space-9:6.4rem;
  --wt-space-10:7.2rem;
  --wt-space-11:9.6rem;

  /* 控件与卡片 */
  --wt-control-height:5.2rem;       /* 按钮、输入框 */
  --wt-control-height-sm:4.4rem;    /* 页眉按钮、汉堡 */
  --wt-control-pad-x:2.6rem;
  --wt-card-pad:3.2rem;
  --wt-card-pad-lg:4rem;
}

@media (max-width:900px){:root{--wt-gutter:3.2rem;--wt-section-space:9.6rem;--wt-header-height:6.4rem}}

@media (max-width:560px){:root{--wt-gutter:2rem;--wt-section-space:7.6rem}}

/* WordsTalk 边线、圆角、阴影、焦点令牌 v3.1
   结构靠细线，不靠阴影。圆角全站为 0，唯一例外是移动端汉堡按钮。
   阴影只给浮层（大菜单、移动菜单），卡片永不加阴影。 */

:root{
  --wt-radius-none:0;
  --wt-radius-control:8px;          /* 仅 .v3-burger */

  --wt-hairline:1px solid var(--wt-rule-warm); /* @kind other */
  --wt-hairline-strong:1px solid var(--wt-rule-strong); /* @kind other */
  --wt-hairline-dark:1px solid var(--wt-on-dark-rule); /* @kind other */

  --wt-shadow-menu:0 2.4rem 4.8rem rgba(33,27,29,.10);   /* 大菜单 .v3-mega */
  --wt-shadow-sheet:0 1.2rem 2.8rem rgba(32,36,38,.12);  /* 移动菜单 .v3-sheet */

  --wt-focus:0 0 0 3px rgba(168,70,63,.48);              /* 全站焦点环 */
  --wt-focus-soft:0 0 0 3px rgba(168,70,63,.16);         /* 输入框聚焦光晕 */
  --wt-focus-outline:2px solid var(--wt-brick); /* @kind other */

  --radius-card:var(--wt-radius-none);
  --border-card:var(--wt-hairline); /* @kind other */
  --shadow-overlay:var(--wt-shadow-menu);
}

/* WordsTalk 动效令牌 v3.1
   一条缓动曲线；时长按用途分档。wt-motion.js 负责入视口显现与数字递增，
   prefers-reduced-motion 下全部关闭。 */

:root{
  --wt-ease:cubic-bezier(.2,.7,.2,1); /* @kind other */

  /* 状态反馈 */
  --wt-time-zero:0ms;     /* 无延迟、菜单 visibility 瞬时切换 */
  --wt-dur-reduced:.01ms; /* 减少动效兜底；v3 自身仍使用 animation/transition:none */
  --wt-dur-quick:160ms;   /* 菜单链接、skip-link */
  --wt-dur-state:180ms;    /* 颜色、边框 */ /* @kind other */
  --wt-dur-control:200ms;  /* 按钮底色与上移 */ /* @kind other */
  --wt-dur-menu-fade:220ms; /* 桌面大菜单透明度 */
  --wt-dur-hover:240ms;    /* 卡片边框、格子底色 */ /* @kind other */
  --wt-dur-arrow:260ms;   /* 箭头与桌面菜单位移 */
  --wt-dur-header:280ms;  /* 页眉与 Logo 收缩 */
  --wt-dur-shift:300ms;   /* 导航线、卡片和列表位移、流程节点 */
  --wt-dur-underline:320ms; /* 文字链接下划线 */
  --wt-dur-tab:340ms;     /* 客户标签指示线 */
  --wt-dur-media:360ms;    /* 图片悬停放大、交叉淡入 */ /* @kind other */
  --wt-dur-collapse:420ms; /* 案例详情展开 */
  --wt-dur-accent:480ms;  /* 案例卡顶部强调线 */
  --wt-dur-crossfade:480ms; /* 服务领域图片交叉淡入 */
  --wt-dur-swap:520ms;     /* 切换后内容重播 */ /* @kind other */
  --wt-dur-label:600ms;   /* 区块标签横线 */

  /* 进场 */
  --wt-dur-fade:700ms;     /* 显现透明度 */ /* @kind other */
  --wt-dur-intro:800ms;   /* 首屏辅助内容上浮 */
  --wt-dur-reveal:900ms;   /* 显现位移 24px → 0 */ /* @kind other */
  --wt-dur-clip:1100ms;    /* 媒体裁切展开 */ /* @kind other */
  --wt-dur-count:1100ms;   /* 数字递增 */ /* @kind other */
  --wt-dur-line:1600ms;    /* 流程线画满 */ /* @kind other */
  --wt-dur-service-clip:1200ms; /* 服务首屏裁切、服务图片缩放 */
  --wt-dur-pano:1400ms;   /* 全幅图裁切 */
  --wt-dur-service-image:1800ms; /* 服务首屏图片缩放 */
  --wt-dur-pano-image:2200ms; /* 全幅图缩放 */

  /* 依次延迟 */
  --wt-stagger:90ms;       /* .v3-stagger 子项 */ /* @kind other */
  --wt-stagger-char:70ms;  /* 标题逐字 */ /* @kind other */
  --wt-stagger-swap:40ms;  /* swap-a / swap-b */ /* @kind other */
  --wt-stagger-rail:220ms; /* 流程节点 */ /* @kind other */
  --wt-delay-rise:80ms;   /* 标题逐字的默认起始延迟 */
  --wt-delay-label:120ms; /* 区块标签横线 */
  --wt-delay-media:200ms; /* 服务首屏、流程线 */
  --wt-delay-pano:300ms;  /* 全幅图 */
  --wt-delay-rail:300ms;  /* 流程节点 */
  --wt-delay-core:420ms;  /* 核心页首屏辅助内容 */
  --wt-delay-home-meta:700ms; /* 首页品牌信息行 */
  --wt-delay-home-rise:780ms; /* 首页标题 */
  --wt-delay-home-aside:900ms; /* 首页辅助内容 */

  /* 位移与缩放上限 */
  --wt-lift:translateY(-2px);      /* 按钮 hover */ /* @kind other */
  --wt-lift-card:translateY(-.4rem); /* 服务对象卡 hover */ /* @kind other */
  --wt-image-zoom:scale(1.025);    /* 图片 hover 上限，不超过 1.03 */ /* @kind other */
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:var(--wt-dur-reduced) !important;animation-iteration-count:1 !important;scroll-behavior:auto !important;transition-duration:var(--wt-dur-reduced) !important}
}

/* 文档基础规则。html{font-size:62.5%} 是所有 rem 令牌的前提（1rem = 10px）。
   v3.0 中的 .editorial-shell / .proof-label / .editorial-title 已移除（v3 改用 .v3-shell / .v3-label / .v3-h2）。 */

html{font-size:62.5%;scroll-behavior:smooth}

html,body{padding:0;margin:0}

body{overflow-x:hidden}

*{box-sizing:border-box}

body{color:var(--text-body);background:var(--surface-page);font-family:var(--wt-body);font-size:var(--wt-size-body);line-height:var(--wt-leading-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}

h1,h2,h3,h4{font-family:var(--wt-display);font-weight:var(--wt-weight-bold);letter-spacing:var(--wt-track-h2)}

a{color:var(--link);text-decoration:none;text-underline-offset:.3rem}

a:hover{color:var(--link-hover);text-decoration:underline}

a,button,summary{outline:none}

a:focus-visible,button:focus-visible,summary:focus-visible{box-shadow:var(--wt-focus)}

::-moz-selection{color:var(--wt-paper-bright);background:var(--wt-brick-soft)}

::selection{color:var(--wt-paper-bright);background:var(--wt-brick-soft)}

img{max-width:100%}

/* WordsTalk v3 — site layer on top of the WordsTalk design-system tokens.
   One type scale, one spacing rhythm, one motion vocabulary for every page. */

/* 布局、缓动令牌已并入 tokens/spacing.css 与 tokens/motion.css（v3.1） */

.v3{color:var(--wt-ink-body);background:var(--wt-white);overflow-x:clip;font-family:var(--wt-body)}

.v3 a{color:var(--wt-brick)}

.v3 img{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none}

.v3 a:hover{color:var(--wt-brick-hover);text-decoration:none}

.v3 ul,.v3 ol{margin:0;padding:0;list-style:none}

.v3 h1,.v3 h2,.v3 h3,.v3 h4,.v3 p,.v3 figure,.v3 dl,.v3 dd{margin:0}

:where(.v3) button{font:inherit;color:inherit}

.v3-shell{width:100%;max-width:calc(var(--wt-content) + 2*var(--wt-gutter));margin:0 auto;padding:0 var(--wt-gutter)}

.v3-sec{padding:var(--wt-section-space) 0}

.v3-paper{background:var(--wt-paper-warm)}

/* ---------- Type scale (the only sizes used on the site) ---------- */

.v3-display{font:var(--wt-weight-bold) var(--wt-size-display)/var(--wt-leading-display) var(--wt-display);letter-spacing:var(--wt-track-display);color:var(--wt-ink)}

.v3-h1{font:var(--wt-weight-bold) var(--wt-size-h1)/var(--wt-leading-h1) var(--wt-display);letter-spacing:var(--wt-track-h1);color:var(--wt-ink)}

.v3-h2{font:var(--wt-weight-bold) var(--wt-size-h2)/var(--wt-leading-h2) var(--wt-display);letter-spacing:var(--wt-track-h2);color:var(--wt-ink);text-wrap:balance}

.v3-h3{font:var(--wt-weight-bold) var(--wt-size-h3)/var(--wt-leading-h3) var(--wt-display);letter-spacing:var(--wt-track-h3);color:var(--wt-ink);text-wrap:pretty}

.v3-h4{font:var(--wt-weight-bold) var(--wt-size-h4)/var(--wt-leading-h4) var(--wt-display);letter-spacing:var(--wt-track-h4);color:var(--wt-ink)}

.v3-lead{font:var(--wt-weight-body) var(--wt-size-lead)/var(--wt-leading-lead) var(--wt-body);color:var(--wt-ink-body);text-wrap:pretty}

.v3-body{font:var(--wt-weight-body) var(--wt-size-body)/var(--wt-leading-body) var(--wt-body);color:var(--wt-ink-body);text-wrap:pretty}

.v3-muted{color:var(--wt-graphite)}

.v3-small{font:var(--wt-weight-body) var(--wt-size-small)/var(--wt-leading-small) var(--wt-body);color:var(--wt-graphite);text-wrap:pretty}

.v3-label{display:inline-flex;align-items:center;gap:1.2rem;font:var(--wt-weight-bold) var(--wt-size-label)/var(--wt-leading-label) var(--wt-body);letter-spacing:var(--wt-track-label);color:var(--wt-brick)}

.v3-label::before{content:"";width:2.4rem;height:1px;background:currentColor;transform-origin:left;transition:transform var(--wt-dur-label) var(--wt-ease) var(--wt-delay-label)}

.v3-idx{font:var(--wt-weight-bold) var(--wt-size-idx)/1 var(--wt-utility);letter-spacing:var(--wt-track-idx);color:var(--wt-brick)}

.v3-idx--quiet{color:var(--wt-index-grey)}

.v3-en{font:var(--wt-weight-bold) var(--wt-size-idx)/var(--wt-leading-label) var(--wt-utility);letter-spacing:var(--wt-track-en);text-transform:uppercase;color:var(--wt-index-grey)}

.v3-num{font:var(--wt-weight-bold) var(--wt-size-num)/1 var(--wt-display);letter-spacing:var(--wt-track-num);color:var(--wt-brick);font-variant-numeric:tabular-nums}

/* ---------- Section head ---------- */

.v3-head{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:2.4rem 8rem;align-items:end;margin-bottom:7.2rem}

.v3-head__t{display:flex;flex-direction:column;gap:2rem}

.v3-head--top{align-items:start}

.v3-head__aside{display:flex;flex-direction:column;gap:2rem;align-items:flex-start;padding-bottom:.6rem}

#home-clients .v3-head__aside{align-items:flex-end;text-align:right}

.v3-head--stack{grid-template-columns:minmax(0,1fr);max-width:84rem}

@media (max-width:900px){.v3-head{grid-template-columns:minmax(0,1fr);margin-bottom:4.4rem}}

/* ---------- Buttons & links ---------- */

.v3-btn{position:relative;display:inline-flex;align-items:center;gap:1.2rem;min-height:5.2rem;padding:0 2.6rem;border:1px solid var(--wt-brick-soft);background:var(--wt-brick-soft);color:var(--wt-white) !important;font:var(--wt-weight-semibold) 1.6rem/1 var(--wt-body);letter-spacing:.02em;cursor:pointer;transition:background var(--wt-dur-control) ease,border-color var(--wt-dur-control) ease,transform var(--wt-dur-control) ease;white-space:nowrap;text-decoration:none !important}

.v3-btn:hover{background:var(--wt-brick-hover);border-color:var(--wt-brick-hover);transform:translateY(-2px)}

.v3-btn .v3-arr{display:inline-block;transition:transform var(--wt-dur-arrow) var(--wt-ease)}

.v3-btn:hover .v3-arr{transform:translateX(.4rem)}

.v3-btn--ghost{background:transparent;border-color:var(--wt-logo-grey);color:var(--wt-ink-body) !important}

.v3-btn--ghost:hover{background:transparent;border-color:var(--wt-ink);color:var(--wt-ink) !important}

.v3-link{display:inline-flex;align-items:center;gap:.8rem;padding:.4rem 0;border:0;background:none;color:var(--wt-brick);font:var(--wt-weight-semibold) 1.6rem/1.5 var(--wt-body);cursor:pointer;background-image:linear-gradient(currentColor,currentColor);background-size:0 1px;background-position:0 100%;background-repeat:no-repeat;transition:background-size var(--wt-dur-underline) var(--wt-ease),color var(--wt-dur-state) ease}

.v3-link:hover{background-size:100% 1px}

.v3-link .v3-arr{transition:transform var(--wt-dur-arrow) var(--wt-ease)}

.v3-link:hover .v3-arr{transform:translate(.25rem,-.25rem)}

.v3-chips{display:flex;flex-wrap:wrap;gap:.8rem}

.v3-chip{display:inline-block;white-space:nowrap;padding:.55rem 1.2rem;border:1px solid var(--wt-rule-chip);font:var(--wt-weight-body) 1.4rem/1.5 var(--wt-body);color:var(--wt-ink-body);background:var(--wt-white)}

.v3-chip--soft{border-color:transparent;background:var(--wt-paper-warm)}

/* ---------- Header ---------- */

.v3-header{position:sticky;top:0;z-index:50;background:var(--wt-white);border-bottom:1px solid transparent;transition:border-color var(--wt-dur-hover) ease}

.v3-header.is-scrolled{border-bottom-color:var(--wt-rule-warm)}

.v3-header__in{display:flex;align-items:center;gap:4rem;height:var(--wt-header-height);transition:height var(--wt-dur-header) var(--wt-ease)}

.v3-header.is-scrolled .v3-header__in{height:var(--wt-header-height-scrolled)}

.v3-logo{display:block;flex:none;line-height:0}

.v3-logo img{display:block;height:4.6rem;width:auto;transition:height var(--wt-dur-header) var(--wt-ease)}

.v3-header.is-scrolled .v3-logo img{height:3.8rem}

.v3-nav{display:flex;align-items:center;gap:.4rem;margin-left:auto;height:100%}

.v3-nav>a,.v3-nav>button{position:relative;display:inline-flex;align-items:center;gap:.6rem;height:100%;padding:0 1.6rem;border:0;background:none;color:var(--wt-ink-body) !important;font:var(--wt-weight-medium) 1.6rem/1 var(--wt-body);cursor:pointer;text-decoration:none !important;transition:color var(--wt-dur-state) ease}

.v3-nav>a::after,.v3-nav>button::after{content:"";position:absolute;left:1.6rem;right:1.6rem;bottom:0;height:2px;background:var(--wt-brick);transform:scaleX(0);transform-origin:left;transition:transform var(--wt-dur-shift) var(--wt-ease)}

.v3-nav>a:hover,.v3-nav>button:hover,.v3-nav>.is-active{color:var(--wt-brick) !important}

.v3-nav>.is-active::after,.v3-nav>.is-open::after{transform:scaleX(1)}

.v3-chev{width:.7rem;height:.7rem;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-.2rem) rotate(45deg);transition:transform var(--wt-dur-hover) ease}

.is-open .v3-chev{transform:translateY(.1rem) rotate(225deg)}

.v3-header .v3-btn{min-height:4.4rem;padding:0 2rem;font-size:1.5rem;margin-left:1.6rem}

.v3-progress{position:absolute;left:0;right:0;bottom:-1px;height:2px;pointer-events:none}

.v3-progress i{display:block;height:100%;background:var(--wt-brick);transform:scaleX(0);transform-origin:left}

.v3-mega{position:absolute;left:0;right:0;top:100%;background:var(--wt-white);border-top:1px solid var(--wt-rule-warm);box-shadow:var(--wt-shadow-menu);opacity:0;visibility:hidden;transform:translateY(-.8rem);transition:opacity var(--wt-dur-menu-fade) ease,transform var(--wt-dur-arrow) var(--wt-ease),visibility var(--wt-time-zero) var(--wt-dur-arrow)}

.v3-mega.is-open{opacity:1;visibility:visible;transform:none;transition:opacity var(--wt-dur-menu-fade) ease,transform var(--wt-dur-arrow) var(--wt-ease)}

.v3-mega__in{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,6fr) minmax(0,3fr);gap:4.8rem;padding:4rem 0 4.8rem}

.v3-mega__intro{display:flex;flex-direction:column;gap:1.6rem;padding-right:2.4rem;border-right:1px solid var(--wt-rule-warm)}

.v3-mega__links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 3.2rem}

.v3-mega__links a{display:grid;grid-template-columns:3.2rem 1fr auto;align-items:center;gap:.8rem;padding:1.3rem 0;border-bottom:1px solid var(--wt-menu-border);color:var(--wt-ink-body) !important;font:var(--wt-weight-medium) 1.6rem/1.4 var(--wt-body);text-decoration:none !important;transition:color var(--wt-dur-quick) ease,padding var(--wt-dur-hover) var(--wt-ease)}

.v3-mega__links a b{font-weight:var(--wt-weight-body);color:var(--wt-brick);opacity:0;transform:translate(-.4rem,.2rem);transition:opacity var(--wt-dur-state) ease,transform var(--wt-dur-hover) var(--wt-ease)}

.v3-mega__links a:hover,.v3-mega__links a.is-hot{color:var(--wt-brick) !important;padding-left:.6rem}

.v3-mega__links a:hover b,.v3-mega__links a.is-hot b{opacity:1;transform:none}

.v3-mega__links a.is-current{color:var(--wt-brick) !important}

.v3-mega__pv{position:relative;aspect-ratio:760/476;background:var(--wt-mist);overflow:hidden;align-self:start}

.v3-mega__pv img{position:absolute;inset:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;opacity:0;transform:scale(1.04);transition:opacity var(--wt-dur-media) ease,transform var(--wt-dur-reveal) var(--wt-ease)}

.v3-mega__pv img.is-on{opacity:1;transform:none}

.v3-burger{display:none;margin-left:auto;width:4.4rem;height:4.4rem;border:1px solid var(--wt-rule-warm);border-radius:var(--wt-radius-control);background:var(--wt-white);cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:.5rem}

.v3-burger span{display:block;width:1.8rem;height:2px;background:var(--wt-ink);transition:transform var(--wt-dur-hover) ease,opacity var(--wt-dur-control) ease}

.v3-burger.is-open span:nth-child(1){transform:translateY(.7rem) rotate(45deg)}

.v3-burger.is-open span:nth-child(2){opacity:0}

.v3-burger.is-open span:nth-child(3){transform:translateY(-.7rem) rotate(-45deg)}

.v3-sheet{display:none}

@media (max-width:1080px){
  .v3-nav,.v3-header .v3-btn--head{display:none}
  .v3-burger{display:flex}
  .v3-sheet{display:block;position:absolute;left:0;right:0;top:100%;max-height:calc(100vh - 6.4rem);overflow:auto;background:var(--wt-white);border-top:1px solid var(--wt-rule-warm);box-shadow:var(--wt-shadow-sheet);opacity:0;visibility:hidden;transform:translateY(-.8rem);transition:opacity var(--wt-dur-control) ease,transform var(--wt-dur-hover) var(--wt-ease),visibility var(--wt-time-zero) var(--wt-dur-hover)}
  .v3-sheet.is-open{opacity:1;visibility:visible;transform:none;transition:opacity var(--wt-dur-control) ease,transform var(--wt-dur-hover) var(--wt-ease)}
  .v3-sheet a,.v3-sheet button{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:5.6rem;padding:0;border:0;border-bottom:1px solid var(--wt-menu-border);background:none;color:var(--wt-ink-body) !important;font:var(--wt-weight-medium) 1.7rem/1.4 var(--wt-body);text-align:left;text-decoration:none !important;cursor:pointer}
  .v3-sheet .v3-sheet__svc a{min-height:4.8rem;padding-left:1.6rem;font-size:1.5rem;color:var(--wt-graphite) !important}
  .v3-sheet .v3-btn{justify-content:center;margin:2.4rem 0 3.2rem;color:var(--wt-white) !important;border-bottom:1px solid var(--wt-brick-soft);background:var(--wt-brick-soft);border:1px solid var(--wt-brick-soft);min-height:5.2rem}
}

/* ---------- Reveal motion ---------- */

.wt-anim [data-reveal]{opacity:0;transform:translateY(2.4rem);transition:opacity var(--wt-dur-fade) ease var(--d,var(--wt-time-zero)),transform var(--wt-dur-reveal) var(--wt-ease) var(--d,var(--wt-time-zero))}

.wt-anim [data-reveal].is-in{opacity:1;transform:none}

.wt-anim [data-reveal="fade"]{transform:none}

.wt-anim [data-reveal] .v3-label::before,.wt-anim .v3-label[data-reveal]::before{transform:scaleX(0)}

.wt-anim [data-reveal].is-in .v3-label::before,.wt-anim .v3-label[data-reveal].is-in::before{transform:scaleX(1)}

.wt-anim [data-reveal="media"]{opacity:1;transform:none}

.wt-anim [data-reveal="media"] > .visual-media{-webkit-clip-path:inset(0 0 100% 0);clip-path:inset(0 0 100% 0)}

.wt-anim [data-reveal="media"] img{transform:scale(1.12);transition:transform var(--wt-dur-line) var(--wt-ease)}

.wt-anim [data-reveal="media"].is-in > .visual-media{-webkit-clip-path:inset(0);clip-path:inset(0);transition:-webkit-clip-path var(--wt-dur-clip) var(--wt-ease) var(--d,var(--wt-time-zero));transition:clip-path var(--wt-dur-clip) var(--wt-ease) var(--d,var(--wt-time-zero));transition:clip-path var(--wt-dur-clip) var(--wt-ease) var(--d,var(--wt-time-zero)), -webkit-clip-path var(--wt-dur-clip) var(--wt-ease) var(--d,var(--wt-time-zero))}

.wt-anim [data-reveal="media"].is-in img{transform:scale(1)}

@keyframes v3-rise{from{opacity:0;transform:translateY(60%)}to{opacity:1;transform:none}}

@keyframes v3-fade-up{from{opacity:0;transform:translateY(1.6rem)}to{opacity:1;transform:none}}

@keyframes v3-swap-a{from{opacity:0;transform:translateY(1.2rem)}to{opacity:1;transform:none}}

@keyframes v3-swap-b{from{opacity:0;transform:translateY(1.2rem)}to{opacity:1;transform:none}}

.wt-anim .v3-rise>span{display:inline-block;animation:v3-rise var(--wt-dur-reveal) var(--wt-ease) both;animation-delay:calc(var(--i,0) * var(--wt-stagger-char) + var(--rise-base,var(--wt-delay-rise)))}

.wt-anim .v3-in{animation:v3-fade-up var(--wt-dur-intro) var(--wt-ease) both;animation-delay:var(--d,var(--wt-time-zero))}

.wt-anim .swap-a>*{animation:v3-swap-a var(--wt-dur-swap) var(--wt-ease) both;animation-delay:calc(var(--i,0) * var(--wt-stagger-swap))}

.wt-anim .swap-b>*{animation:v3-swap-b var(--wt-dur-swap) var(--wt-ease) both;animation-delay:calc(var(--i,0) * var(--wt-stagger-swap))}

/* ---------- Heroes ---------- */

.v3-crumb{display:flex;gap:1.2rem;align-items:center;padding:2.4rem 0 2rem;border-bottom:1px solid var(--wt-rule-warm);font:var(--wt-weight-body) 1.4rem/1.4 var(--wt-body);color:var(--wt-graphite)}

.v3-crumb a{color:var(--wt-graphite) !important;text-decoration:underline;-webkit-text-decoration-color:var(--wt-rule-strong);text-decoration-color:var(--wt-rule-strong);text-underline-offset:.4rem;transition:color var(--wt-dur-state) ease,-webkit-text-decoration-color var(--wt-dur-state) ease;transition:color var(--wt-dur-state) ease,text-decoration-color var(--wt-dur-state) ease;transition:color var(--wt-dur-state) ease,text-decoration-color var(--wt-dur-state) ease,-webkit-text-decoration-color var(--wt-dur-state) ease}

.v3-crumb a:hover{color:var(--wt-brick) !important;-webkit-text-decoration-color:currentColor;text-decoration-color:currentColor}

.v3-crumb span[aria-hidden]{font:var(--wt-weight-bold) 1.3rem/1 var(--wt-utility);color:var(--wt-brick)}

.v3-crumb [aria-current]{font-weight:var(--wt-weight-bold);color:var(--wt-ink)}

.v3-crumb--wrap{flex-wrap:wrap;row-gap:.8rem}

.v3-crumb--wrap>a,.v3-crumb__item{flex-shrink:0;white-space:nowrap}

.v3-crumb__item{display:inline-flex;align-items:center;gap:1.2rem}

.v3-hh{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:4rem 8rem;align-items:end;padding:10rem 0 8rem}

.v3-hh__t{display:flex;flex-direction:column;gap:3.2rem}

.v3-hh__aside{display:flex;flex-direction:column;gap:3.2rem;padding-bottom:1.2rem}

.v3-hh__foot{display:flex;flex-wrap:wrap;gap:1.2rem 2.4rem;align-items:center;font:var(--wt-weight-body) 1.4rem/1.4 var(--wt-body);color:var(--wt-graphite)}

.v3-hh__foot i{width:1px;height:1.4rem;background:var(--wt-rule-strong)}

.v3-acts{display:flex;flex-wrap:wrap;gap:1.2rem}

.v3-pano{position:relative;width:100%;aspect-ratio:2000/542;min-height:28rem;background:var(--wt-mist);overflow:hidden}

.v3-pano img{position:absolute;inset:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:64% 52%;object-position:64% 52%}

.wt-anim .v3-pano{animation:v3-pano var(--wt-dur-pano) var(--wt-ease) var(--wt-delay-pano) both}

.wt-anim .v3-pano img{animation:v3-pano-img var(--wt-dur-pano-image) var(--wt-ease) var(--wt-delay-pano) both}

@keyframes v3-pano{from{-webkit-clip-path:inset(0 8% 0 8%);clip-path:inset(0 8% 0 8%)}to{-webkit-clip-path:inset(0);clip-path:inset(0)}}

.v3-pano--hero{aspect-ratio:auto;height:clamp(36rem,64vh,72rem)}

.v3-pano--hero img{-o-object-position:56% 34%;object-position:56% 34%}

.wt-anim .v3-pano--hero{animation-delay:var(--wt-time-zero)}

.wt-anim .v3-pano--hero img{animation-delay:var(--wt-time-zero)}

.v3-hh--home{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start;gap:4.8rem 8rem;padding:4rem 0 7.2rem}

.v3-hh__bar{grid-column:1/-1;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.2rem 2.4rem;padding-bottom:2rem;border-bottom:1px solid var(--wt-rule-warm)}

.v3-hh--home .v3-hh__aside{gap:2.4rem;padding-bottom:.8rem;text-align:right}

.v3-hh--home .v3-hh__line{align-self:flex-end}

.v3-hh--home .v3-acts{justify-content:flex-end}

.v3-facts--flat{margin-top:0 !important}

.v3-hh__line{white-space:normal;max-width:50rem}

.v3-hh--home .v3-h1{text-wrap:balance}

@media (max-width:1199px){.v3-hq .v3-hh__line{white-space:normal}}

@media (max-width:900px){.v3-hh--home{grid-template-columns:minmax(0,1fr);padding:5.6rem 0 4.8rem}.v3-hh--home .v3-hh__aside{text-align:left}.v3-hh--home .v3-hh__line{align-self:flex-start}.v3-hh--home .v3-acts{justify-content:flex-start}.v3-pano--hero{height:clamp(28rem,48vh,44rem)}}

@keyframes v3-pano-img{from{transform:scale(1.1)}to{transform:none}}

.v3-facts{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:-6.4rem;background:var(--wt-white);border:1px solid var(--wt-rule-warm)}

.v3-facts li{display:flex;flex-direction:column;gap:1.2rem;padding:3.6rem 3.2rem 3.2rem;border-left:1px solid var(--wt-rule-warm)}

.v3-facts li:first-child{border-left:0}

@media (max-width:900px){.v3-hh{grid-template-columns:minmax(0,1fr);padding:6.4rem 0 5.6rem}.v3-facts{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:-3.2rem}.v3-facts li:nth-child(3){border-left:0}.v3-facts li:nth-child(n+3){border-top:1px solid var(--wt-rule-warm)}}

@media (max-width:560px){.v3-facts li{padding:2.4rem 2rem}.v3-pano{min-height:22rem}}

.v3-hq{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:4rem 8rem;align-items:end;padding:8rem 0 9.6rem}

.v3-hs{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);gap:4.8rem 8rem;align-items:center;padding:6.4rem 0 9.6rem}

.v3-hs__media{position:relative;aspect-ratio:760/520;background:var(--wt-mist);overflow:hidden;margin-right:calc(-1 * var(--wt-gutter))}

.v3-hs__media img{position:absolute;inset:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}

.wt-anim .v3-hs__media{animation:v3-media-in var(--wt-dur-service-clip) var(--wt-ease) var(--wt-delay-media) both}

.wt-anim .v3-hs__media img{animation:v3-pano-img var(--wt-dur-service-image) var(--wt-ease) var(--wt-delay-media) both}

@keyframes v3-media-in{from{-webkit-clip-path:inset(0 0 0 100%);clip-path:inset(0 0 0 100%)}to{-webkit-clip-path:inset(0);clip-path:inset(0)}}

@media (max-width:900px){.v3-hq,.v3-hs{grid-template-columns:minmax(0,1fr);padding:4.8rem 0 6.4rem}.v3-hs__media{margin:0 calc(-1 * var(--wt-gutter))}}

/* ---------- Sticky in-page nav ---------- */

.v3-subnav{position:sticky;top:var(--wt-header-height-scrolled);z-index:40;background:var(--wt-subnav-bg);border-top:1px solid var(--wt-rule-warm);border-bottom:1px solid var(--wt-rule-warm)}

.v3-subnav__in{position:relative;display:flex;align-items:center;gap:.4rem;height:5.6rem;overflow-x:auto;scrollbar-width:none}

.v3-subnav__in::-webkit-scrollbar{display:none}

.v3-subnav a:first-of-type{margin-left:-1.4rem}

.v3-subnav a{flex:none;display:inline-flex;align-items:center;height:100%;padding:0 1.4rem;color:var(--wt-graphite) !important;font:var(--wt-weight-medium) 1.5rem/1 var(--wt-body);text-decoration:none !important;transition:color var(--wt-dur-state) ease}

.v3-subnav a:hover,.v3-subnav a.is-active{color:var(--wt-ink) !important}

.v3-spy-ind{position:absolute;left:0;bottom:0;height:2px;background:var(--wt-brick);opacity:0;transition:transform var(--wt-dur-media) var(--wt-ease),width var(--wt-dur-media) var(--wt-ease),opacity var(--wt-dur-control) ease}

/* ---------- Home: service types ---------- */

.v3-types-sec{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:4.8rem 8rem}

.v3-types-sec__t{position:sticky;top:12rem;align-self:start;display:flex;flex-direction:column;gap:2rem}

.v3-types{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--wt-rule-warm)}

.v3-types li{display:flex;flex-direction:column;justify-content:space-between;gap:2.4rem;min-height:14rem;padding:2.4rem 2.4rem 2.8rem 0;border-bottom:1px solid var(--wt-rule-warm);font:var(--wt-weight-bold) clamp(2rem,1.8vw,2.4rem)/1.4 var(--wt-display);letter-spacing:-.01em;color:var(--wt-ink);transition:color var(--wt-dur-hover) ease;cursor:default}

.v3-types li:not(:nth-child(3n+1)){padding-left:2.4rem;border-left:1px solid var(--wt-rule-warm)}

.v3-types li .v3-idx{color:var(--wt-index-grey);transition:color var(--wt-dur-hover) ease}

.v3-types li>span:last-child{white-space:nowrap}

@media(min-width:901px) and (max-width:1200px){.v3-types-sec{grid-template-columns:minmax(0,3fr) minmax(0,9fr);gap:4rem}}

@media (hover:hover){.v3-types:hover li{color:var(--wt-text-dim)}.v3-types li:hover{color:var(--wt-brick)}.v3-types li:hover .v3-idx{color:var(--wt-brick)}}

/* Small desktop windows can hover too; their 14–20px labels need 4.5:1. */

@media (hover:hover) and (max-width:560px){.v3-types:hover li:not(:hover){color:var(--wt-index-grey)}}

@media (max-width:900px){.v3-types-sec{grid-template-columns:minmax(0,1fr)}.v3-types-sec__t{position:static}.v3-types{grid-template-columns:repeat(2,minmax(0,1fr))}.v3-types li{min-height:11rem}.v3-types li:not(:nth-child(3n+1)){padding-left:0;border-left:0}.v3-types li:nth-child(2n){padding-left:2rem;border-left:1px solid var(--wt-rule-warm)}}

@media(max-width:560px){.v3-types li{padding-right:1rem;font-size:clamp(1.4rem,4.1vw,2rem)}.v3-types li:nth-child(2n){padding-left:1.6rem}}

/* ---------- Home: service atlas ---------- */

.v3-atlas{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:6.4rem;align-items:start}

.v3-atlas__list{border-top:1px solid var(--wt-rule-warm)}

.v3-atlas__list button{position:relative;display:grid;grid-template-columns:4.4rem 1fr auto;align-items:center;gap:1.2rem;width:100%;min-height:6rem;padding:1.2rem 0;border:0;border-bottom:1px solid var(--wt-rule-warm);background:none;text-align:left;cursor:pointer;color:var(--wt-ink-body);font:var(--wt-weight-medium) 1.8rem/1.4 var(--wt-body);transition:color var(--wt-dur-control) ease,padding var(--wt-dur-shift) var(--wt-ease)}

.v3-atlas__list button::before{content:"";position:absolute;left:-2.4rem;top:1.6rem;bottom:1.6rem;width:2px;background:var(--wt-brick);transform:scaleY(0);transition:transform var(--wt-dur-shift) var(--wt-ease)}

.v3-atlas__list button b{font-weight:var(--wt-weight-body);color:var(--wt-brick);opacity:0;transform:translateX(-.8rem);transition:opacity var(--wt-dur-control) ease,transform var(--wt-dur-shift) var(--wt-ease)}

.v3-atlas__list button .v3-idx{color:var(--wt-index-grey);transition:color var(--wt-dur-control) ease}

.v3-atlas__list button:hover,.v3-atlas__list button.is-sel{color:var(--wt-brick)}

.v3-atlas__list button.is-sel{padding-left:.8rem;font-weight:var(--wt-weight-bold)}

.v3-atlas__list button.is-sel::before{transform:scaleY(1)}

.v3-atlas__list button:hover b,.v3-atlas__list button.is-sel b{opacity:1;transform:none}

.v3-atlas__list button.is-sel .v3-idx{color:var(--wt-brick)}

.v3-atlas__detail{position:sticky;top:12rem;display:flex;flex-direction:column;gap:2.4rem}

.v3-stack{position:relative;height:clamp(20rem,30vh,28rem);background:var(--wt-mist);overflow:hidden}

.v3-stack img{position:absolute;inset:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;opacity:0;transform:scale(1.06);transition:opacity var(--wt-dur-crossfade) ease,transform var(--wt-dur-service-clip) var(--wt-ease)}

.v3-stack img.is-on{opacity:1;transform:none}

.v3-stack__count{white-space:nowrap;position:absolute;left:0;bottom:0;padding:1.2rem 1.6rem;background:var(--wt-white);font:var(--wt-weight-bold) 1.3rem/1 var(--wt-utility);letter-spacing:.12em;color:var(--wt-ink)}

.v3-atlas__copy{display:flex;flex-direction:column;gap:1.6rem}

.v3-dash{display:flex;flex-direction:column}

.v3-dash li{position:relative;padding:1.2rem 0 1.2rem 2.8rem;border-top:1px solid var(--wt-rule-warm);font:var(--wt-weight-body) 1.6rem/1.7 var(--wt-body);color:var(--wt-ink-body)}

.v3-dash li::before{content:"—";position:absolute;left:0;color:var(--wt-brick)}

.v3-atlas .v3-dash li{padding:.8rem 0 .8rem 2.8rem;font-size:1.5rem}

@media (max-width:900px){.v3-atlas{grid-template-columns:minmax(0,1fr);gap:4rem}.v3-atlas__detail{position:static;order:-1}.v3-stack{height:auto;aspect-ratio:760/476}.v3-atlas__list button::before{left:-1.2rem}}

/* ---------- Cases ---------- */

.v3-casegrid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--wt-rule-warm);border:1px solid var(--wt-rule-warm)}

.v3-casegrid li{display:flex;flex-direction:column;gap:1.6rem;padding:3.2rem 2.8rem 3.6rem;background:var(--wt-white);transition:background var(--wt-dur-state) ease}

.v3-casegrid li:hover{background:var(--wt-paper-bright)}

.v3-casegrid__area{align-self:flex-start;font:var(--wt-weight-bold) 1.2rem/1.4 var(--wt-utility);letter-spacing:.08em;color:var(--wt-brick);text-decoration:none}

.v3-casegrid__area:hover{color:var(--wt-brick-hover)}

.v3-casegrid h3,.v3-casegrid p{text-wrap:pretty}

@media (max-width:1100px){.v3-casegrid{grid-template-columns:repeat(2,minmax(0,1fr))}}

@media (max-width:560px){.v3-casegrid{grid-template-columns:minmax(0,1fr)}}

.v3-cases{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2.4rem}

.v3-case{position:relative;display:flex;flex-direction:column;gap:2rem;padding:3.6rem;background:var(--wt-white);border:1px solid var(--wt-rule-warm);transition:border-color var(--wt-dur-hover) ease,transform var(--wt-dur-shift) var(--wt-ease)}

.v3-case::before{content:"";position:absolute;left:-1px;right:-1px;top:-1px;height:2px;background:var(--wt-brick);transform:scaleX(0);transform-origin:left;transition:transform var(--wt-dur-accent) var(--wt-ease)}

.v3-case:hover{border-color:var(--wt-rule-strong)}

.v3-case:hover::before{transform:scaleX(1)}

.v3-case__top{display:flex;align-items:baseline;gap:1.6rem}

.v3-case__client{font:var(--wt-weight-medium) 1.4rem/1.6 var(--wt-body);color:var(--wt-brick)}

.v3-case__more{align-self:flex-start;display:inline-flex;align-items:center;gap:1rem;padding:0;border:0;background:none;color:var(--wt-ink-body);font:var(--wt-weight-semibold) 1.4rem/1.6 var(--wt-body);cursor:pointer}

.v3-plus{position:relative;width:1.2rem;height:1.2rem}

.v3-plus::before,.v3-plus::after{content:"";position:absolute;left:0;right:0;top:50%;height:1.5px;margin-top:-.75px;background:currentColor;transition:transform var(--wt-dur-shift) var(--wt-ease)}

.v3-plus::after{transform:rotate(90deg)}

.is-open>.v3-plus::after,.is-open .v3-plus::after{transform:rotate(0)}

.v3-case__more:hover{color:var(--wt-brick)}

.v3-coll{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--wt-dur-collapse) var(--wt-ease)}

.v3-coll>div{overflow:hidden;min-height:0}

.v3-coll.is-open{grid-template-rows:1fr}

.v3-dl{display:grid;grid-template-columns:5.6rem 1fr;gap:1rem 1.6rem;padding-top:2rem;border-top:1px solid var(--wt-rule-warm)}

.v3-dl dt{font:var(--wt-weight-bold) 1.4rem/1.75 var(--wt-body);color:var(--wt-index-grey)}

.v3-dl dd{font:var(--wt-weight-body) 1.5rem/1.75 var(--wt-body);color:var(--wt-ink-body)}

.v3-cases-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:2rem;margin-top:4rem}

@media (max-width:900px){.v3-cases{grid-template-columns:minmax(0,1fr)}.v3-case{padding:2.8rem 2.4rem}}

/* ---------- Clients ---------- */

.v3-tabs{position:relative;display:flex;gap:.4rem;overflow-x:auto;border-bottom:1px solid var(--wt-rule-warm);scrollbar-width:none}

.v3-tabs::-webkit-scrollbar{display:none}

.v3-tabs button{position:relative;flex:none;min-height:5.2rem;padding:0 2rem;border:0;background:none;color:var(--wt-graphite);font:var(--wt-weight-medium) 1.5rem/1.4 var(--wt-body);cursor:pointer;transition:color var(--wt-dur-state) ease}

.v3-tabs button::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--wt-brick);transform:scaleX(0);transition:transform var(--wt-dur-tab) var(--wt-ease)}

.v3-tabs button:hover{color:var(--wt-ink)}

.v3-tabs button.is-sel{color:var(--wt-brick);font-weight:var(--wt-weight-bold)}

.v3-tabs button.is-sel::after{transform:scaleX(1)}

.v3-logos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin-top:3.2rem;background:var(--wt-rule-warm);border:1px solid var(--wt-rule-warm)}

.v3-logos li{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.6rem;min-height:17rem;padding:2.4rem 2rem;background:var(--wt-white);transition:background var(--wt-dur-hover) ease}

.v3-logos li:hover{background:var(--wt-paper-bright)}

.v3-logos img{max-width:72%;max-height:6.4rem;-o-object-fit:contain;object-fit:contain;transition:transform var(--wt-dur-media) var(--wt-ease)}

.v3-logos li:hover img{transform:scale(1.03)}

.v3-logos span{font:var(--wt-weight-body) 1.3rem/1.5 var(--wt-body);color:var(--wt-graphite);text-align:center}

@media (max-width:900px){.v3-logos{grid-template-columns:repeat(2,minmax(0,1fr))}.v3-logos li{min-height:13rem}}

/* ---------- Credentials matrix ---------- */

.v3-certificates{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1.6rem}

.v3-certificate{height:100%;border:1px solid var(--wt-rule-warm);background:var(--wt-white);color:var(--wt-ink)}

.v3-certificate__image{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:4/3;padding:1.4rem;background:var(--wt-paper-warm);overflow:hidden;border-bottom:1px solid var(--wt-rule-warm);-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-touch-callout:none}

.v3-certificate__image::after{content:'';position:absolute;inset:0}

.v3-certificate__image img{display:block;width:100%;height:100%;-o-object-fit:contain;object-fit:contain}

@media(hover:hover) and (prefers-reduced-motion:no-preference){.v3-certificate__image img{transition:transform var(--wt-dur-media) var(--wt-ease)}.v3-certificate:hover .v3-certificate__image img{transform:scale(1.025)}}

.v3-certificate__info{display:flex;flex-direction:column;align-items:center;gap:.6rem;padding:1.6rem 1rem;text-align:center}

.v3-certificate__info .v3-h4{font-size:1.4rem;line-height:1.5}

.v3-certificate__info .v3-small{font-size:1.2rem;line-height:1.6}

@media(max-width:1199px){.v3-certificates{grid-template-columns:repeat(3,minmax(0,1fr))}}

@media(max-width:560px){.v3-certificates{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem}.v3-certificate__image{padding:1rem}.v3-certificate__info{padding:1.4rem .8rem}.v3-certificate__info .v3-h4{font-size:1.3rem;min-height:3em;display:flex;align-items:center}}

/* ---------- Process rail ---------- */

.v3-rail{position:relative;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0 2.4rem}

.v3-rail::before{content:"";position:absolute;left:0;right:0;top:2rem;height:1px;background:var(--wt-rule-warm)}

.v3-rail::after{content:"";position:absolute;left:0;right:0;top:2rem;height:1px;background:var(--wt-brick);transform:scaleX(var(--p,1));transform-origin:left}

.wt-anim .v3-rail::after{--p:0;transition:transform var(--wt-dur-line) var(--wt-ease) var(--wt-delay-media)}

.wt-anim .v3-rail.is-in::after{--p:1;transform:scaleX(1)}

.v3-rail li{position:relative;display:flex;flex-direction:column;gap:1.2rem;padding-top:6.4rem}

.v3-rail__node{position:absolute;left:0;top:0;display:flex;align-items:center;justify-content:center;width:4rem;height:4rem;border:1px solid var(--wt-rule-strong);background:var(--wt-white);font:var(--wt-weight-bold) 1.3rem/1 var(--wt-utility);letter-spacing:.06em;color:var(--wt-ink);transition:background var(--wt-dur-shift) ease,color var(--wt-dur-shift) ease,border-color var(--wt-dur-shift) ease}

.v3-rail.is-in .v3-rail__node,.v3-rail:not([data-reveal]) .v3-rail__node{background:var(--wt-ink);border-color:var(--wt-ink);color:var(--wt-white);transition-delay:calc(var(--i,0) * var(--wt-stagger-rail) + var(--wt-delay-rail))}

.v3-rail li:hover .v3-rail__node{background:var(--wt-brick) !important;border-color:var(--wt-brick) !important;transition-delay:var(--wt-time-zero) !important}

.v3-paper .v3-rail__node{background:var(--wt-paper-warm)}

@media (max-width:1080px){.v3-rail{grid-template-columns:repeat(3,minmax(0,1fr));gap:4rem 2.4rem}.v3-rail::before,.v3-rail::after{display:none}.v3-rail li{padding-top:5.6rem;border-top:1px solid var(--wt-rule-warm)}.v3-rail__node{top:-2rem}}

@media (max-width:560px){.v3-rail{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4rem 2rem}}

/* ---------- CTA ---------- */

.v3-cta2{display:flex;flex-direction:column;align-items:center;gap:2.4rem;padding:12rem 0 12.8rem;text-align:center}

.v3-cta2__rule{display:flex;align-items:center;gap:1.6rem;width:min(100%,48rem);margin-bottom:1.6rem}

.v3-cta2__rule i{flex:1;height:1px;background:var(--wt-rule-warm);position:relative}

.v3-cta2__rule i::after{content:"";position:absolute;top:-3px;width:7px;height:7px;background:var(--wt-brick);transform:rotate(45deg)}

.v3-cta2__rule i:first-child::after{right:0}

.v3-cta2__rule i:last-child::after{left:0}

.v3-cta2__rule span{font:var(--wt-weight-bold) 1.2rem/1 var(--wt-utility);letter-spacing:.16em;color:var(--wt-brick)}

.v3-cta2 .v3-lead{max-width:40em;text-wrap:balance}

.v3-cta2 .v3-btn{margin-top:1.6rem}

@media (max-width:900px){.v3-cta2{padding:8rem 0 8.8rem}}

/* ---------- Footer ---------- */

.v3-foot{background:var(--surface-dark);color:var(--wt-on-dark-80)}

.v3-foot--slate .v3-foot__legal{border-top-color:var(--wt-on-dark-rule-faint)}

.v3-foot__main{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,1.8fr) minmax(0,2.2fr) minmax(0,3fr);gap:4.8rem;padding:8rem 0 6.4rem}

.v3-foot__brand{display:flex;flex-direction:column;gap:2rem;max-width:38rem}

.v3-foot__brand img{height:4.8rem;width:auto;align-self:flex-start;filter:brightness(0) invert(1)}

.v3-foot h2{margin:0 0 2rem;font:var(--wt-weight-bold) 1.3rem/1.4 var(--wt-body);letter-spacing:.12em;color:var(--wt-brick-on-dark)}

.v3-foot nav,.v3-foot__c{display:flex;flex-direction:column;align-items:flex-start;gap:1.2rem}

.v3-foot a{color:var(--wt-on-dark-80) !important;font:var(--wt-weight-body) 1.5rem/1.6 var(--wt-body);background-image:linear-gradient(currentColor,currentColor);background-size:0 1px;background-position:0 100%;background-repeat:no-repeat;transition:background-size var(--wt-dur-shift) var(--wt-ease),color var(--wt-dur-state) ease;white-space:nowrap}

.v3-foot a:hover{color:var(--wt-white) !important;background-size:100% 1px}

.v3-foot__legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1.2rem 3.2rem;padding:2.8rem 0 3.6rem;border-top:1px solid var(--wt-on-dark-rule);font:var(--wt-weight-body) 1.3rem/1.6 var(--wt-body);color:var(--wt-on-dark-56)}

.v3-foot__legal div{display:flex;gap:2.4rem}

.v3-foot__legal a{font-size:1.3rem;color:var(--wt-on-dark-64) !important}

@media (max-width:900px){.v3-foot__main{grid-template-columns:repeat(2,minmax(0,1fr));padding:6.4rem 0 4.8rem}.v3-foot__brand{grid-column:1/-1}}

@media (max-width:560px){.v3-foot__main{grid-template-columns:minmax(0,1fr)}}

/* ---------- Service page ---------- */

.v3-aud{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.6rem}

.v3-aud article{display:flex;flex-direction:column;gap:2rem;padding:3.2rem 2.8rem;border:1px solid var(--wt-rule-warm);background:var(--wt-white);transition:border-color var(--wt-dur-hover) ease,transform var(--wt-dur-shift) var(--wt-ease)}

.v3-aud article:hover{border-color:var(--wt-brick);transform:translateY(-.4rem)}

.v3-aud__name{display:flex;flex-direction:column;gap:1.2rem;padding-bottom:2rem;border-bottom:1px solid var(--wt-rule-warm)}

@media (max-width:1080px){.v3-aud{grid-template-columns:repeat(2,minmax(0,1fr))}}

@media (max-width:560px){.v3-aud{grid-template-columns:minmax(0,1fr)}}

.v3-dossier{margin-top:11.2rem;display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:4rem 8rem;align-items:start}

.v3-dtabs{display:flex;flex-direction:column;border-top:1px solid var(--wt-rule-warm)}

.v3-dtabs button{position:relative;display:flex;align-items:center;gap:1.6rem;min-height:7.2rem;padding:0 0 0 0;border:0;border-bottom:1px solid var(--wt-rule-warm);background:none;text-align:left;cursor:pointer;font:var(--wt-weight-bold) 2rem/1.4 var(--wt-display);color:var(--wt-index-grey);transition:color var(--wt-dur-control) ease,padding var(--wt-dur-shift) var(--wt-ease)}

.v3-dtabs button .v3-cnt{margin-left:auto;font:var(--wt-weight-medium) 1.3rem/1 var(--wt-utility);color:var(--wt-index-grey)}

.v3-dtabs button:hover{color:var(--wt-ink)}

.v3-dtabs button.is-sel{color:var(--wt-ink);padding-left:1.6rem}

.v3-dtabs button::before{content:"";position:absolute;left:0;top:2rem;bottom:2rem;width:2px;background:var(--wt-brick);transform:scaleY(0);transition:transform var(--wt-dur-shift) var(--wt-ease)}

.v3-dtabs button.is-sel::before{transform:scaleY(1)}

.v3-dtabs button.is-sel .v3-idx{color:var(--wt-brick)}

.v3-dpanel{display:flex;flex-direction:column;gap:0;margin:0;padding:0;list-style:none;background:none;border:0}

.v3-dpanel li{display:grid;grid-template-columns:6.4rem minmax(0,1fr);align-items:baseline;gap:0;min-height:0;padding:2.2rem 0;background:none;border:0;border-bottom:1px solid var(--wt-rule-warm);font:var(--wt-weight-bold) clamp(2.2rem,2.2vw,2.8rem)/1.35 var(--wt-display);letter-spacing:-.015em;color:var(--wt-ink);text-wrap:pretty}

.v3-dpanel li .v3-idx{font:var(--wt-weight-medium) 1.3rem/1 var(--wt-utility);letter-spacing:.08em;color:var(--wt-index-grey)}

@media (max-width:560px){.v3-dpanel li{grid-template-columns:4.4rem minmax(0,1fr);padding:1.8rem 0;font-size:1.9rem}}

@media (max-width:900px){.v3-dossier{grid-template-columns:minmax(0,1fr);margin-top:7.2rem}.v3-dtabs{flex-direction:row;overflow-x:auto;border-top:0;border-bottom:1px solid var(--wt-rule-warm)}.v3-dtabs button{flex:none;min-height:5.6rem;padding:0 1.6rem !important;border-bottom:0;font-size:1.6rem}.v3-dtabs button::before{left:0;right:0;top:auto;bottom:-1px;width:auto;height:2px;transform:scaleX(0)}.v3-dtabs button.is-sel::before{transform:scaleX(1)}.v3-dtabs .v3-cnt{display:none}}

.v3-narr{display:grid;grid-template-columns:minmax(0,3.4fr) minmax(0,8.6fr);gap:4rem 8rem;align-items:start}

.v3-narr__idx{position:sticky;top:15rem;display:flex;flex-direction:column;gap:2.4rem}

.v3-narr__idx nav{display:flex;flex-direction:column;border-left:1px solid var(--wt-rule-warm)}

.v3-narr__idx a{position:relative;display:grid;grid-template-columns:3.2rem 1fr;gap:.8rem;padding:1rem 0 1rem 2rem;color:var(--wt-graphite) !important;font:var(--wt-weight-medium) 1.5rem/1.5 var(--wt-body);text-decoration:none !important;transition:color var(--wt-dur-control) ease}

.v3-narr__idx a::before{content:"";position:absolute;left:-1px;top:0;bottom:0;width:2px;background:var(--wt-brick);transform:scaleY(0);transition:transform var(--wt-dur-shift) var(--wt-ease)}

.v3-narr__idx a:hover{color:var(--wt-ink) !important}

.v3-narr__idx a.is-active{color:var(--wt-ink) !important;font-weight:var(--wt-weight-bold)}

.v3-narr__idx a.is-active::before{transform:scaleY(1)}

.v3-narr__idx a .v3-idx{padding-top:.3rem;color:var(--wt-index-grey)}

.v3-narr__idx a.is-active .v3-idx{color:var(--wt-brick)}

.v3-ngroup{display:flex;flex-direction:column;gap:3.2rem;scroll-margin-top:14rem}

.v3-ngroup+.v3-ngroup{margin-top:8rem}

.v3-ngroup__h{display:flex;flex-direction:column;gap:1.2rem;margin-bottom:2.4rem}

.v3-nblock{display:flex;flex-direction:column;gap:2.4rem;padding:4.4rem 4.8rem;background:var(--wt-white);scroll-margin-top:14rem}

.v3-nblock__lead{font:var(--wt-weight-body) 1.8rem/1.85 var(--wt-body);color:var(--wt-ink-body);text-wrap:pretty;max-width:72rem}

.v3-recs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.6rem;margin-top:.8rem}

.v3-recs li{display:flex;flex-direction:column;gap:1rem;padding:2.4rem;border:1px solid var(--wt-rule-warm);transition:border-color var(--wt-dur-hover) ease}

.v3-recs li:hover{border-color:var(--wt-brick)}

.v3-recs__y{font:var(--wt-weight-bold) 2.4rem/1 var(--wt-display);letter-spacing:-.02em;color:var(--wt-brick)}

.v3-recs__n{font:var(--wt-weight-bold) 1.7rem/1.55 var(--wt-display);color:var(--wt-ink)}

.v3-lines{display:flex;flex-direction:column;gap:1.8rem;margin-top:.4rem}

.v3-lines li{position:relative;padding-left:2.8rem;font:var(--wt-weight-body) 1.6rem/1.8 var(--wt-body);color:var(--wt-ink-body);text-wrap:pretty}

.v3-lines li::before{content:"";position:absolute;left:0;top:1.4rem;width:1.4rem;height:1px;background:var(--wt-brick)}

.v3-nnote{padding-top:1.6rem;border-top:1px solid var(--wt-rule-warm)}

@media (max-width:900px){.v3-narr{grid-template-columns:minmax(0,1fr)}.v3-narr__idx{display:none}.v3-nblock{padding:2.8rem 2.4rem}.v3-recs{grid-template-columns:minmax(0,1fr)}}

.v3-strengths{display:flex;flex-direction:column}

.v3-strengths li{display:grid;grid-template-columns:5.6rem 1fr;gap:1.6rem;padding:3.2rem 0;border-top:1px solid var(--wt-rule-warm);font:var(--wt-weight-medium) clamp(1.8rem,1.6vw,2.2rem)/1.65 var(--wt-display);color:var(--wt-ink);text-wrap:pretty}

.v3-strengths li .v3-idx{padding-top:.8rem}

.v3-split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:4.8rem 8rem;align-items:start}

.v3-split>div:first-child{display:flex;flex-direction:column;gap:2rem}

@media (max-width:900px){.v3-split{grid-template-columns:minmax(0,1fr)}}

.v3-dark{background:var(--surface-dark);color:var(--wt-on-dark-80)}

.v3-dark .v3-label{color:var(--wt-brick-on-dark)}

.v3-dark .v3-h2{color:var(--wt-white)}

.v3-cols3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--wt-on-dark-rule);border-top:1px solid var(--wt-on-dark-rule)}

.v3-cols3 li{display:flex;flex-direction:column;gap:2.4rem;padding:3.6rem 3.2rem 0 0;background:var(--surface-dark);font:var(--wt-weight-body) 1.7rem/1.8 var(--wt-body);color:var(--wt-on-dark-80)}

.v3-cols3 li+li{padding-left:3.2rem}

.v3-cols3 .v3-idx{color:var(--wt-brick-on-dark)}

@media (max-width:900px){.v3-cols3{grid-template-columns:minmax(0,1fr)}.v3-cols3 li,.v3-cols3 li+li{padding:2.8rem 0}}

.v3-rows{border-top:1px solid var(--wt-rule-warm)}

.v3-rows li{display:grid;grid-template-columns:8rem 1fr;gap:2.4rem;align-items:baseline;padding:3.2rem 0;border-bottom:1px solid var(--wt-rule-warm);transition:padding var(--wt-dur-shift) var(--wt-ease)}

.v3-rows li .v3-bignum{font:var(--wt-weight-bold) 4rem/1 var(--wt-display);letter-spacing:var(--wt-track-num);color:var(--wt-text-dim);transition:color var(--wt-dur-hover) ease}

.v3-rows li:hover{padding-left:1.2rem}

.v3-rows li:hover .v3-bignum{color:var(--wt-brick)}

/* ---------- About / Guarantee ---------- */

.v3-interlude{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:4.8rem 8rem;align-items:end}

.v3-interlude__m{position:relative;aspect-ratio:27/17.5;background:var(--wt-mist);overflow:hidden}

.v3-interlude__m--wide{aspect-ratio:20/7}

.v3-interlude__m img{position:absolute;inset:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}

.v3-interlude--wide{grid-template-columns:minmax(0,1fr)}

.v3-interlude--wide .v3-interlude__c{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:2rem 8rem;align-items:end}

.v3-interlude__c{display:flex;flex-direction:column;gap:2rem}

@media (max-width:900px){.v3-interlude,.v3-interlude--wide .v3-interlude__c{grid-template-columns:minmax(0,1fr)}.v3-interlude__m--wide{aspect-ratio:16/9}}

.v3-prose{-moz-columns:2;columns:2;-moz-column-gap:6.4rem;column-gap:6.4rem}

.v3-prose p{-moz-column-break-inside:avoid;break-inside:avoid;margin-bottom:2.4rem !important}

.v3-prose p:first-child{-moz-column-span:all;column-span:all;font:var(--wt-weight-medium) clamp(1.9rem,1.7vw,2.4rem)/1.75 var(--wt-display);color:var(--wt-ink);margin-bottom:4rem !important}

@media (max-width:900px){.v3-prose{-moz-columns:1;columns:1}}

.v3-quote{position:relative;padding:4.8rem 0 0;font:var(--wt-weight-bold) clamp(3rem,3.8vw,5.2rem)/1.3 var(--wt-display);letter-spacing:-.03em;color:var(--wt-ink);text-wrap:balance}

.v3-quote::before{content:"“";position:absolute;left:-.4rem;top:-1.6rem;font:var(--wt-weight-bold) 9.6rem/1 var(--wt-display);color:var(--wt-brick)}

.v3-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2.4rem}

.v3-pair article{display:flex;flex-direction:column;gap:2rem;padding:4rem 3.6rem;background:var(--wt-white);border:1px solid var(--wt-rule-warm)}

.v3-paper .v3-pair article{border-color:transparent}

@media (max-width:900px){.v3-pair{grid-template-columns:minmax(0,1fr)}.v3-pair article{padding:2.8rem 2.4rem}}

.v3-teamfacts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--wt-rule-warm)}

.v3-teamfacts li{display:flex;flex-direction:column;gap:1.4rem;padding:4rem 3.2rem 4rem 0;border-bottom:1px solid var(--wt-rule-warm)}

.v3-teamfacts li:not(:nth-child(3n+1)){padding-left:3.2rem;border-left:1px solid var(--wt-rule-warm)}

@media (max-width:900px){.v3-teamfacts{grid-template-columns:repeat(2,minmax(0,1fr))}.v3-teamfacts li,.v3-teamfacts li:not(:nth-child(3n+1)){padding:2.8rem 2rem 2.8rem 0;border-left:0}.v3-teamfacts li:nth-child(2n){padding-left:2rem;border-left:1px solid var(--wt-rule-warm)}}

.v3-cards3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2.4rem}

.v3-cards3 article{display:flex;flex-direction:column;gap:1.6rem;padding:3.6rem 3.2rem;background:var(--wt-white);border:1px solid var(--wt-rule-warm);transition:border-color var(--wt-dur-hover) ease}

.v3-cards3 article:hover{border-color:var(--wt-brick)}

@media (max-width:900px){.v3-cards3{grid-template-columns:minmax(0,1fr)}}

.v3-jump{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--wt-rule-warm)}

.v3-jump a{display:flex;flex-direction:column;gap:1.6rem;padding:2.8rem 2.4rem 2.8rem 0;border-bottom:1px solid var(--wt-rule-warm);color:var(--wt-ink) !important;font:var(--wt-weight-bold) clamp(2rem,1.8vw,2.4rem)/1.3 var(--wt-display);text-decoration:none !important;transition:color var(--wt-dur-control) ease}

.v3-jump a+a{padding-left:2.4rem;border-left:1px solid var(--wt-rule-warm)}

.v3-jump a:hover{color:var(--wt-brick) !important}

.v3-jump a b{font-weight:var(--wt-weight-body);color:var(--wt-brick);transition:transform var(--wt-dur-arrow) var(--wt-ease)}

.v3-jump a:hover b{transform:translateY(.4rem)}

@media (max-width:900px){.v3-jump{grid-template-columns:repeat(2,minmax(0,1fr))}.v3-jump a:nth-child(3){padding-left:0;border-left:0}}

/* ---------- Contact ---------- */

.v3-contact{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:4.8rem 8rem;align-items:start}

.v3-form{display:flex;flex-direction:column;gap:3.2rem}

.v3-field{display:flex;flex-direction:column;gap:1rem;font:var(--wt-weight-medium) 1.4rem/1.4 var(--wt-body);color:var(--wt-ink-body)}

.v3-field em{font-style:normal;color:var(--wt-brick);font-weight:var(--wt-weight-body);margin-left:.6rem}

.v3-input{width:100%;min-height:5.2rem;padding:1.2rem 1.6rem;border:1px solid var(--wt-rule);border-radius:0;background:var(--wt-white);font:var(--wt-weight-body) 1.6rem/1.6 var(--wt-body);color:var(--wt-ink);outline:none;transition:border-color var(--wt-dur-state) ease,box-shadow var(--wt-dur-state) ease}

.v3-input::-moz-placeholder{color:var(--wt-placeholder)}

.v3-input::placeholder{color:var(--wt-placeholder)}

.v3-input:hover{border-color:var(--wt-rule-strong)}

.v3-input:focus{border-color:var(--wt-brick);box-shadow:var(--wt-focus-soft)}

textarea.v3-input{min-height:16rem;resize:vertical}

.v3-direct{position:sticky;top:12rem;display:flex;flex-direction:column;gap:2rem;padding:4rem 3.6rem;background:var(--wt-white);border:1px solid var(--wt-rule-warm)}

.v3-direct article{display:flex;flex-direction:column;gap:.8rem;padding:2.4rem 0;border-top:1px solid var(--wt-rule-warm)}

.v3-direct__row{display:flex;align-items:center;justify-content:space-between;gap:1.6rem}

.v3-direct__row a{font:var(--wt-weight-bold) 2rem/1.4 var(--wt-display);letter-spacing:-.01em;word-break:break-all}

.v3-copy{flex:none;min-height:3.2rem;padding:0 1.2rem;border:1px solid var(--wt-rule-chip);background:var(--wt-white);font:var(--wt-weight-medium) 1.3rem/1 var(--wt-body);color:var(--wt-graphite);cursor:pointer;transition:border-color var(--wt-dur-state) ease,color var(--wt-dur-state) ease}

.v3-copy:hover{border-color:var(--wt-ink);color:var(--wt-ink)}

.v3-copy.is-done{border-color:var(--wt-brick);color:var(--wt-brick)}

.v3-locs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2.4rem}

.v3-locs article{display:flex;flex-direction:column;gap:2rem;padding:4.8rem 3.2rem;background:var(--wt-white);border:1px solid var(--wt-rule-warm);transition:border-color var(--wt-dur-hover) ease}

.v3-locs article:hover{border-color:var(--wt-brick)}

.v3-locs__city{font:var(--wt-weight-bold) clamp(4rem,4.4vw,6.4rem)/1 var(--wt-display);letter-spacing:-.04em;color:var(--wt-ink)}

.v3-locs address{font:var(--wt-weight-body) 1.6rem/1.8 var(--wt-body);font-style:normal;color:var(--wt-ink-body)}

@media (min-width:1200px){.v3-locs address{white-space:nowrap}}

@media (max-width:900px){.v3-contact,.v3-locs{grid-template-columns:minmax(0,1fr)}.v3-direct{position:static;padding:2.8rem 2.4rem}.v3-locs article{padding:3.2rem 2.4rem}}

/* ---------- Index helpers (stagger without inline custom props) ---------- */

.v3-n>:nth-child(1){--i:0}

.v3-n>:nth-child(2){--i:1}

.v3-n>:nth-child(3){--i:2}

.v3-n>:nth-child(4){--i:3}

.v3-n>:nth-child(5){--i:4}

.v3-n>:nth-child(6){--i:5}

.v3-n>:nth-child(7){--i:6}

.v3-n>:nth-child(8){--i:7}

.v3-n>:nth-child(9){--i:8}

.v3-n>:nth-child(10){--i:9}

.v3-n>:nth-child(11){--i:10}

.v3-n>:nth-child(12){--i:11}

.v3-stagger>*{--d:calc(var(--i,0) * var(--wt-stagger))}

/* Vue integration: layout, accessible states and the simplified contact form. */

.v3 .legacy-page{overflow:visible}

.v3 .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.v3 :focus-visible{outline:0;box-shadow:var(--wt-focus)}

.v3 .skip-link,.v3 .skip-link:hover{color:var(--wt-white)}

.v3 :target{scroll-margin-top:14rem}

.v3 .visual-media picture{display:contents}

.v3 .visual-media.v3-pano,.v3 .visual-media.v3-hs__media,.v3 .visual-media.v3-interlude__m{aspect-ratio:auto}

.v3 .visual-media.v3-pano img,.v3 .visual-media.v3-hs__media img,.v3 .visual-media.v3-interlude__m img{height:100%;max-height:none}

.v3 .visual-media.v3-hs__media{aspect-ratio:760/520}

/* Use the actual page width, excluding the Windows scrollbar, for desktop bleed. */

@supports (width:1cqw){
  .v3-service-hero{container-type:inline-size}
  @media (min-width:901px){
    .v3-service-hero .v3-hs__media,.v3 .v3-service-hero .visual-media.v3-hs__media{margin-right:calc(-1 * max(var(--wt-gutter),(100cqw - var(--wt-content))/2))}
  }
}

.v3 .v3-interlude__m > .visual-media{width:100%;height:100%;aspect-ratio:inherit}

.v3-interlude__m > .visual-media img{height:100%;max-height:none}

.v3-join-requirements > li{display:flex;flex-direction:column;gap:1.6rem;padding:3.2rem;border:1px solid var(--wt-rule-warm);font:var(--wt-weight-medium) 1.7rem/1.7 var(--wt-body)}

@media (max-width:1080px){
  .v3-sheet .v3-btn:hover{background:var(--wt-brick-hover);border-color:var(--wt-brick-hover)}
}

@media (max-width:900px){
  .v3 .v3-hs__media,.v3 .visual-media.v3-hs__media{margin:0 calc(-1 * var(--wt-gutter))}
  .v3-dtabs{overflow-y:hidden;scrollbar-width:none}
  .v3-dtabs::-webkit-scrollbar{display:none}
  .v3-dtabs button::before{bottom:0}
}

.v3 .visual-media.v3-interlude__m{aspect-ratio:27/17.5}

.v3 .visual-media.v3-interlude__m--wide{aspect-ratio:20/7}

.v3 .visual-media.v3-pano img{-o-object-position:56% 34%;object-position:56% 34%}

.v3-hq .v3-display{font-size:var(--wt-size-display-core)}

.v3-assurance{border-left:1px solid var(--wt-rule-warm);padding-left:4rem}

.v3-assurance__title{font:var(--wt-weight-bold) clamp(3.2rem,4vw,5.6rem)/1.2 var(--wt-display);color:var(--wt-logo-grey);letter-spacing:-.03em}

.v3-hh--home .v3-hh__bar{animation-delay:var(--wt-delay-home-meta)}

.v3-hh--home .v3-rise{--rise-base:var(--wt-delay-home-rise)}

.v3-hh--home .v3-hh__aside{animation-delay:var(--wt-delay-home-aside)}

.v3-hq .v3-hh__aside{animation-delay:var(--wt-delay-core)}

.v3-cta-wrap{border-top:1px solid var(--wt-rule-warm)}

.v3-process-intro{margin-top:9.6rem;margin-bottom:5.6rem}

.v3-audience-title{margin-bottom:3.2rem!important}

.v3-rail--three{grid-template-columns:repeat(3,minmax(0,1fr));gap:4rem 4.8rem}

.v3-rail--three::before,.v3-rail--three::after{display:none}

.v3-contact-main{display:flex;flex-direction:column;gap:4rem}

.v3-context{align-self:flex-start;border-color:var(--wt-brick);color:var(--wt-brick)}

.v3-form-card{display:flex;flex-direction:column;gap:2rem;padding:4rem;background:var(--wt-white);border:1px solid var(--wt-rule-warm)}

.v3-contact-fields{display:grid;grid-template-columns:1fr 1fr;gap:2rem}

.v3-contact-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}

.v3-contact-result{font-size:1.5rem;line-height:1.7;overflow-wrap:anywhere}

.v3-form-card button:disabled{opacity:.65;cursor:default}

.v3-contact-wechat{margin-top:2.8rem;padding-top:2.8rem;border-top:1px solid var(--wt-rule-warm)}

.v3-contact-qrs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.6rem;margin:1.6rem 0}

.v3-contact-qrs figure{margin:0;text-align:center}

.v3-contact-qr-image{display:block;background:var(--wt-white);padding:1rem;border:1px solid var(--wt-rule-warm)}

.v3-contact-qrs img{display:block;width:100%;height:auto}

.v3-contact-qrs figcaption{margin-top:.8rem}

@media(max-width:560px){.v3-contact-qrs{grid-template-columns:minmax(0,22rem);justify-content:center;gap:2.4rem}}

@media(max-width:560px){.v3-contact-fields{grid-template-columns:1fr}}

.v3-form-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.6rem 2.4rem}

.v3-footnote{margin-top:3.2rem!important}

.v3-mission{align-items:end}

.v3-mission .v3-h4{color:var(--wt-brick)}

.v3-mission-rest{display:flex;flex-direction:column;gap:3.2rem}

.v3-mission-rest article{display:flex;flex-direction:column;gap:2rem;padding:4rem 3.6rem;background:var(--wt-paper-warm)}

.v3-foot__brand .v3-small{color:var(--wt-on-dark-72)}

.v3-foot__cities{font:var(--wt-weight-bold) 1.3rem/1.4 var(--wt-body);letter-spacing:.12em;color:var(--wt-on-dark-72)}

@media(max-width:1080px){.v3-mega{display:none}}

@media(max-width:900px){.v3-form-card{padding:2.8rem 2.4rem}.v3 .visual-media.v3-interlude__m--wide{aspect-ratio:16/9}}

@media(max-width:560px){.v3-rail--three{grid-template-columns:repeat(2,minmax(0,1fr))}.v3-assurance{padding-left:2.4rem}.v3-rows li{grid-template-columns:4.8rem 1fr;gap:1.6rem}}

/* ===== 科研服务页「多语检索与编译」追加规则（追加到 site-v3.css 末尾、prefers-reduced-motion 之前） ===== */

/* 若仓库 site-v3.css 尚无 .v3-matrix（设计工程中的追加类），先补这组基础规则： */

.v3-matrix{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--wt-rule-warm);border:1px solid var(--wt-rule-warm)}

.v3-matrix li{display:flex;flex-direction:column;gap:1.6rem;min-height:20rem;padding:3.2rem 2.8rem;background:var(--wt-white);transition:background var(--wt-dur-hover) ease}

.v3-matrix li:hover{background:var(--wt-paper-warm)}

.v3-matrix li .v3-idx{transition:transform var(--wt-dur-shift) var(--wt-ease)}

.v3-matrix li:hover .v3-idx{transform:translateX(.4rem)}

@media (max-width:900px){.v3-matrix{grid-template-columns:repeat(2,minmax(0,1fr))}.v3-matrix li{min-height:0;padding:2.4rem 2rem}}

/* 成果形式：3 列矩阵，书名号标题加粗 */

.v3-matrix--outputs{grid-template-columns:repeat(3,minmax(0,1fr))}

.v3-matrix--outputs li{min-height:16rem;gap:2.4rem}

.v3-matrix--outputs li>span:last-child{font:var(--wt-weight-bold) clamp(1.9rem,1.6vw,2.2rem)/1.4 var(--wt-display);letter-spacing:-.01em;color:var(--wt-ink)}

@media (max-width:900px){.v3-matrix--outputs{grid-template-columns:repeat(2,minmax(0,1fr))}.v3-matrix--outputs li{min-height:0}}

@media (max-width:560px){.v3-matrix--outputs{grid-template-columns:minmax(0,1fr)}}

/* 课题示例：细线分隔的行（设计稿中为内联样式，这里收成类） */

.v3-examples{border-top:1px solid var(--wt-rule-warm)}

.v3-examples__row{padding:4rem 0;border-bottom:1px solid var(--wt-rule-warm)}

@media (max-width:900px){.v3-examples__row{padding:3.2rem 0}}

/* 服务周期三格 */

.v3 .v3-cycle{margin-top:9.6rem}

.v3-cycle__num{display:flex;align-items:baseline;gap:.8rem}

.v3 .v3-cycle__text{padding-top:.6rem}

.v3 .v3-cycle__note{margin-top:2.4rem;max-width:76rem}

@media (max-width:900px){.v3 .v3-cycle{margin-top:6.4rem}}

/* Nested education service: secondary navigation, without another field number. */

.v3 .v3-service-children{margin:.4rem 0 .8rem 4rem;padding-left:1.2rem;border-left:1px solid var(--wt-menu-border)}

.v3 .v3-service-children a{display:flex;align-items:center;min-height:4rem;padding:.8rem 0;border:0;font:var(--wt-weight-body) 1.4rem/1.5 var(--wt-body);color:var(--wt-graphite)!important}

.v3 .v3-service-children a.is-current{color:var(--wt-brick)!important;text-decoration:none!important}

.v3 .v3-service-children a:hover{color:var(--wt-brick)!important;text-decoration:underline!important;text-underline-offset:.3rem}

.v3 .v3-sheet__svc .v3-service-children{margin-left:2.8rem}

.v3 .static-v3-services .v3-service-children{margin-left:1.2rem}

/* ---------- [新增] 服务经验 · 大类切换器（多于 1 个大类时启用） ----------
   外观与原 .v3-narr__idx a 锚点列表一致：左侧 1px 暖线，当前项 2px 砖红竖线 + 墨色加粗。 */

.v3-narr__tabs{display:flex;flex-direction:column;border-left:1px solid var(--wt-rule-warm)}

.v3-narr__tabs button{position:relative;display:grid;grid-template-columns:3.2rem 1fr;gap:.8rem;padding:1.2rem 0 1.2rem 2rem;border:0;background:none;text-align:left;color:var(--wt-graphite);font:var(--wt-weight-medium) 1.5rem/1.5 var(--wt-body);cursor:pointer;transition:color var(--wt-dur-control) ease}

.v3-narr__tabs button::before{content:"";position:absolute;left:-1px;top:0;bottom:0;width:2px;background:var(--wt-brick);transform:scaleY(0);transition:transform var(--wt-dur-shift) var(--wt-ease)}

.v3-narr__tabs button:hover{color:var(--wt-ink)}

.v3-narr__tabs button.is-sel{color:var(--wt-ink);font-weight:var(--wt-weight-bold)}

.v3-narr__tabs button.is-sel::before{transform:scaleY(1)}

.v3-narr__tabs button .v3-idx{padding-top:.3rem;color:var(--wt-index-grey)}

.v3-narr__tabs button.is-sel .v3-idx{color:var(--wt-brick)}

.v3-narr__tabs button:focus-visible{outline:0;box-shadow:var(--wt-focus)}

@media (max-width:900px){
  /* 原规则 .v3-narr__idx{display:none}（≤900）对切换模式不适用：改为横向标签条 */
  .v3-narr--switch .v3-narr__idx{display:flex;position:static}
  .v3-narr__tabs{flex-direction:row;overflow-x:auto;border-left:0;border-bottom:1px solid var(--wt-rule-warm);scrollbar-width:none}
  .v3-narr__tabs::-webkit-scrollbar{display:none}
  .v3-narr__tabs button{flex:none;display:inline-flex;align-items:center;gap:.8rem;min-height:5.2rem;padding:0 1.4rem}
  .v3-narr__tabs button::before{left:0;right:0;top:auto;bottom:-1px;width:auto;height:2px;transform:scaleX(0)}
  .v3-narr__tabs button.is-sel::before{transform:scaleX(1)}
  .v3-narr__tabs button .v3-idx{padding-top:0}
}

/* ---------- [新增] 服务页 · 技术保障左栏插图 ---------- */

.v3 .v3-interlude__m.v3-tech-media{margin-top:2rem}

/* ---------- [新增] 服务型首屏 h1 换行平衡（科研服务页标题在窄屏不出现孤字） ---------- */

.v3-hs .v3-h1{text-wrap:balance}

.v3-h1__part{display:inline-block;white-space:nowrap}

/* ===== 移动端优化 · 阶段 1–2（2026-10-17） =====
   位置：追加到 src/design-system/site-v3.css 末尾，最后一行
         @media(prefers-reduced-motion:reduce){.v3 *,...} 之前（该行必须保持在文件最后）。
   同时删除第 455 行：@media (max-width:560px){.v3-chip{white-space:normal}}（已由下方 10 号规则替代）。
   约束：只用 设计令牌 令牌，不写十六进制 / rgba / 字面时长 / 字面字重（verify-tokens、verify-token-contract）。
   作用范围：所有改动都在 ≤1080 / ≤900 / ≤560 媒体查询内；媒体查询外只有仅在移动端渲染的新类
   （.v3-scrim 默认隐藏、.v3-atlas__links / .v3-draft 只在对应状态出现）和两条 transition 补充。
   编号 = 《移动端走查与优化方案》问题编号。 */

/* ---------- 03 移动菜单：遮罩、滚动锁定、dvh、底部固定联系按钮、服务两列 ---------- */

.v3-scrim{display:none}

@media (max-width:1080px){
  html.wt-menu-open,html.wt-menu-open body{overflow:hidden}
  .v3-scrim{display:block;position:absolute;left:0;right:0;top:100%;height:100vh;background:var(--wt-scrim);opacity:0;visibility:hidden;transition:opacity var(--wt-dur-control) ease,visibility var(--wt-time-zero) var(--wt-dur-control)}
  .v3-scrim.is-open{opacity:1;visibility:visible;transition:opacity var(--wt-dur-control) ease}
  .v3-sheet{z-index:1;display:flex;flex-direction:column;max-height:calc(100vh - var(--wt-header-height));max-height:calc(100dvh - var(--wt-header-height));overflow:hidden}
  .v3-sheet__body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain}
  .v3-sheet__foot{flex:none;padding:1.6rem 0 calc(1.6rem + env(safe-area-inset-bottom));border-top:1px solid var(--wt-rule-warm);background:var(--wt-white)}
  .v3-sheet .v3-sheet__foot .v3-btn{width:100%;margin:0}
  .v3-sheet__svc{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));-moz-column-gap:1.6rem;column-gap:1.6rem;padding-bottom:.8rem}
  .v3-sheet .v3-sheet__svc a{min-height:4.4rem;padding:.6rem 0;font-size:1.5rem;line-height:1.35;color:var(--wt-graphite) !important}
  .v3-sheet .v3-sheet__svc a.router-link-exact-active{color:var(--wt-brick) !important}
}

/* ---------- 13 吸顶层：≤560 页内导航 44px；下滑收起页头（类名由 wt-motion.js 维护） ---------- */

@media (max-width:560px){
.v3-header{transition:border-color var(--wt-dur-hover) ease,transform var(--wt-dur-header) var(--wt-ease)}
.v3-subnav{transition:top var(--wt-dur-header) var(--wt-ease)}
}

@media (max-width:560px){
  html.wt-head-hidden .v3-header{transform:translateY(-100%)}
  html.wt-head-hidden .v3-subnav{top:0}
  .v3-subnav__in{height:4.4rem}
  .v3-subnav a{font-size:1.4rem}
}

/* ---------- 05 横向标签条：可滚动一侧 3.2rem 渐隐，滚到端点取消（类名由 v-scroll-fade 维护） ---------- */

@media (max-width:900px){
  .v3-fade.is-scrollable.is-start:not(.is-end){-webkit-mask-image:linear-gradient(to right,var(--wt-ink) calc(100% - 3.2rem),transparent);mask-image:linear-gradient(to right,var(--wt-ink) calc(100% - 3.2rem),transparent)}
  .v3-fade.is-scrollable:not(.is-start):not(.is-end){-webkit-mask-image:linear-gradient(to right,transparent,var(--wt-ink) 3.2rem,var(--wt-ink) calc(100% - 3.2rem),transparent);mask-image:linear-gradient(to right,transparent,var(--wt-ink) 3.2rem,var(--wt-ink) calc(100% - 3.2rem),transparent)}
  .v3-fade.is-scrollable.is-end:not(.is-start){-webkit-mask-image:linear-gradient(to right,transparent,var(--wt-ink) 3.2rem);mask-image:linear-gradient(to right,transparent,var(--wt-ink) 3.2rem)}
}

/* 服务档案只有 3 项：≤560 等分三列，不再横向滚动（overflow 保持 hidden，verify-design-browser 断言 overflowY） */

@media (max-width:560px){
  .v3-dtabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden}
  .v3-dtabs button{justify-content:center;gap:.6rem;padding:0 .4rem !important;font-size:1.5rem}
}

/* ---------- 01 首页服务图谱 ≤900：链接列表（结构由 ServiceAtlas.vue 在 ≤900 渲染） ---------- */

.v3-atlas--links{display:block}

.v3-atlas__links{border-top:1px solid var(--wt-rule-warm)}

.v3-atlas__links a{display:grid;grid-template-columns:4.4rem minmax(0,1fr) auto;align-items:center;gap:1.2rem;min-height:5.6rem;padding:.8rem 0;border-bottom:1px solid var(--wt-rule-warm);color:var(--wt-ink-body) !important;font:var(--wt-weight-medium) 1.7rem/1.4 var(--wt-body);text-decoration:none !important;transition:color var(--wt-dur-state) ease}

.v3-atlas__links a .v3-idx{color:var(--wt-index-grey)}

.v3-atlas__links a b{font-weight:var(--wt-weight-body);color:var(--wt-brick)}

.v3-atlas__links a:hover{color:var(--wt-brick) !important}

/* ---------- 07 首页首屏 ≤560：全景图 240px，H1 与按钮进入首屏 ---------- */

@media (max-width:560px){
  .v3-pano--hero{height:24rem;min-height:0}
  .v3-hh--home{gap:1.6rem;padding:2.4rem 0 4rem}
  .v3-hh--home .v3-hh__bar{gap:.8rem;padding-bottom:1.2rem}
  .v3-hh--home .v3-hh__aside{gap:1.6rem}
  .v3-hh--home .v3-acts{flex-wrap:nowrap}
  .v3-hh--home .v3-acts .v3-btn{flex:1 1 0;justify-content:center;padding:0 1rem}
}

/* ---------- 09 首页服务类型 ≤560：编号与名称同行的两列细线列表 ---------- */

@media (max-width:560px){
  .v3-types li{flex-direction:row;align-items:baseline;justify-content:flex-start;gap:1.2rem;min-height:0;padding:1.6rem 1rem 1.6rem 0;font-size:1.6rem;line-height:1.45}
  .v3-types li:nth-child(2n){padding-left:1.6rem}
  .v3-types li>span:last-child{white-space:normal}
}

/* ---------- 10 流程轨 ≤560 单列；芯片只在超出容器时换行 ---------- */

@media (max-width:560px){
  .v3-rail,.v3-rail--three{grid-template-columns:minmax(0,1fr);gap:0;border-bottom:1px solid var(--wt-rule-warm)}
  .v3-rail li{display:grid;grid-template-columns:4rem minmax(0,1fr);align-items:start;-moz-column-gap:1.6rem;column-gap:1.6rem;row-gap:.2rem;padding:1.6rem 0}
  .v3-rail__node{position:static;grid-row:1 / span 2}
  .v3-rail li>strong{grid-column:2;padding-top:.8rem;text-wrap:pretty}
  .v3-rail li>.v3-small{grid-column:2}
  /* keep-all：中文只在标点处断开；anywhere：只有整段超过容器宽度时才在词中断开 */
  .v3-chip{white-space:normal;word-break:keep-all;overflow-wrap:anywhere;max-width:100%}
  .v3-h4{text-wrap:pretty}
}

/* ---------- 06 页脚 ≤560：联系方式上移，两组导航并排，链接 44px ---------- */

@media (max-width:560px){
  .v3-foot__main{grid-template-columns:repeat(2,minmax(0,1fr));gap:2.8rem 1.6rem;padding:4.8rem 0 3.2rem}
  .v3-foot__brand{order:-2;gap:1.2rem}
  .v3-foot__brand img{height:3.6rem}
  .v3-foot__c{order:-1;grid-column:1 / -1}
  .v3-foot h2{margin-bottom:.4rem}
  .v3-foot nav,.v3-foot__c{gap:0}
  .v3-foot__main a,.v3-foot__legal a{display:inline-flex;align-items:center;min-height:4.4rem}
  .v3-foot__legal{gap:0 2.4rem;padding:1.6rem 0 2.4rem}
}

/* ---------- 02 联系页：复制按钮 44px、邮箱上下排列、提交后的邮件内容兜底 ---------- */

@media (max-width:900px){.v3-copy{min-height:4.4rem;padding:0 1.6rem}}

@media (max-width:560px){
  .v3-direct__row{flex-direction:column;align-items:flex-start;gap:.8rem}
  .v3-direct__row a{display:inline-flex;align-items:center;min-height:4.4rem;font-size:1.7rem;word-break:normal;overflow-wrap:anywhere}
}

.v3-draft{display:flex;flex-direction:column;gap:1.6rem;padding-top:2.4rem;border-top:1px solid var(--wt-rule-warm)}

.v3-draft__meta{display:grid;grid-template-columns:5.6rem minmax(0,1fr);gap:.6rem 1.6rem;font:var(--wt-weight-body) 1.5rem/1.6 var(--wt-body)}

.v3-draft__meta dt{font-weight:var(--wt-weight-bold);color:var(--wt-index-grey)}

.v3-draft__meta dd{color:var(--wt-ink-body);overflow-wrap:anywhere}

.v3-draft__body{margin:0;max-height:24rem;overflow:auto;padding:1.6rem;background:var(--wt-paper-warm);border:1px solid var(--wt-rule-warm);font:var(--wt-weight-body) 1.5rem/1.7 var(--wt-body);color:var(--wt-ink-body);white-space:pre-wrap;overflow-wrap:anywhere;-webkit-user-select:text;-moz-user-select:text;user-select:text}

.v3-draft__acts{display:flex;flex-wrap:wrap;gap:1.2rem}

@media (max-width:560px){.v3-draft__acts .v3-btn{flex:1 1 0;justify-content:center;padding:0 1.6rem}}

/* ---------- 08 专业保障 ≤900：隐藏 01–04 跳转格，只保留页内导航 ---------- */

@media (max-width:900px){.v3:not(.static-route) .v3-jump{display:none}}

/* ---------- 12 点击区 ≥44px（视觉尺寸不变）；11 需要阅读的中文 ≥13px ---------- */

@media (max-width:900px){
  .v3-logo{display:flex;align-items:center;min-height:4.4rem}
  .v3-crumb a,.v3-link,.v3-casegrid__area{position:relative}
  .v3-crumb a::after,.v3-link::after,.v3-casegrid__area::after{content:"";position:absolute;left:-.4rem;right:-.4rem;top:50%;height:4.4rem;min-width:4.4rem;transform:translateY(-50%)}
}

@media (max-width:560px){
  .v3-casegrid__area{font:var(--wt-weight-bold) 1.3rem/1.5 var(--wt-body);letter-spacing:.04em}
  .v3-casegrid li{gap:1.2rem}
}

/* ---------- 14 关于我们使命引文 ≤560：只在逗号处换行 ---------- */

@media (max-width:560px){.v3-quote{font-size:clamp(2.2rem,6.6vw,2.6rem);word-break:keep-all;overflow-wrap:anywhere}}

/* Stage 3: keep every research issue, use a compact list on phones. */

@media (max-width:560px){
  .v3-case__more{display:inline-flex;align-items:center;align-self:flex-start;gap:.8rem;min-height:4.4rem;min-width:4.4rem;padding:.8rem 0;border:0;background:none;color:var(--wt-brick);font:var(--wt-weight-semibold) 1.5rem/1.5 var(--wt-body);cursor:pointer}
  .v3-types li>span:last-child{text-wrap:balance}
  #research-issues .v3-cards3{gap:0;border-top:1px solid var(--wt-rule-warm)}
  #research-issues .v3-cards3 article{display:grid;grid-template-columns:4rem minmax(0,1fr);gap:.8rem 1.2rem;padding:2rem 0;border:0;border-bottom:1px solid var(--wt-rule-warm);background:none}
  #research-issues .v3-cards3 article>*:not(.v3-idx){grid-column:2}
  #research-issues .v3-cards3 .v3-idx{grid-row:1 / span 2;padding-top:.6rem}
}

.static-v3-atlas-links{display:none}

@media (max-width:900px){
  .static-v3-atlas-links{display:block}
  .static-v3-atlas-details{display:none}
}

@media(prefers-reduced-motion:reduce){.v3 *,.v3 *::before,.v3 *::after{animation:none!important;transition:none!important}}

/* Service questions share native details behavior in Vue and static HTML. */

.v3-faq{padding-top:0}

.v3-faq .v3-h3{margin:0 0 1.6rem}

.v3-faq__list{max-width:88rem}

.v3-faq__item{border-top:1px solid var(--wt-rule-warm)}

.v3-faq__item:last-child{border-bottom:1px solid var(--wt-rule-warm)}

.v3-faq__item summary{display:grid;grid-template-columns:2.2rem minmax(0,1fr) 2.4rem;gap:1.2rem;align-items:baseline;padding:1.2rem 0;cursor:pointer;list-style:none;font-size:1.5rem;line-height:1.6;color:var(--wt-graphite)}

.v3-faq__item summary::-webkit-details-marker{display:none}

.v3-faq__item summary:hover{color:var(--wt-brick)}

.v3-faq__item summary:focus-visible{outline:2px solid var(--wt-brick);outline-offset:3px}

.v3-faq__item[open] summary{color:var(--wt-ink)}

.v3-faq__toggle{display:inline-grid;place-items:center;align-self:center;color:var(--wt-brick);font-size:2rem;line-height:1}

.v3-faq__toggle::before{content:"+"}

.v3-faq__item[open] .v3-faq__toggle::before{content:"−"}

.v3-faq__item p{margin:0 0 1.6rem 3.4rem;max-width:76rem}

.v3-hs__intro{margin:1.2rem 0 1.6rem;max-width:56rem}

@media(max-width:900px){.v3-faq__item p{margin-left:0}}

.visual-media[data-v-ebef4e28] {
  position: relative;
  margin: 0;
  overflow: hidden;
  background: var(--wt-mist);
}
.visual-media picture[data-v-ebef4e28] {
  display: block;
  height: 100%;
}
.visual-media img[data-v-ebef4e28] {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: var(--visual-position-desktop);
     object-position: var(--visual-position-desktop);
}
.visual-media--hero[data-v-ebef4e28] {
  min-height: 38rem;
  height: 100%;
}
.visual-media--panorama[data-v-ebef4e28] {
  aspect-ratio: 3.6900369;
}
.visual-media--atlas[data-v-ebef4e28] {
  aspect-ratio: 1.59663866;
}
.visual-media--editorial[data-v-ebef4e28] {
  aspect-ratio: 1.54285714;
}
.visual-media--wide[data-v-ebef4e28] {
  aspect-ratio: 2.85714286;
}
.visual-media figcaption[data-v-ebef4e28] {
  position: absolute;
  right: 1.2rem;
  bottom: 1.2rem;
  max-width: calc(100% - 2.4rem);
  padding: 0.6rem 0.8rem;
  color: var(--wt-paper-bright);
  background: var(--wt-caption-scrim);
  font-size: 1.4rem;
  line-height: 1.45;
}
@media (max-width: 700px) {
.visual-media img[data-v-ebef4e28] {
    -o-object-position: var(--visual-position-mobile);
       object-position: var(--visual-position-mobile);
}
.visual-media--hero[data-v-ebef4e28] {
    min-height: 24rem;
}
.visual-media--wide[data-v-ebef4e28] {
    aspect-ratio: 1.33333333;
}
}

/* P0 phone and tablet compatibility layer for the legacy fixed-rem pages. */
body {
  color: #333333;
  font-family: PingFangSC, "Microsoft YaHei", sans-serif;
}
.site-shell,
.page-content,
.page-content > * {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
@media (max-width: 1199px) {
html {
    font-size: 62.5%;
}
html,
  body,
  #app,
  .site-shell,
  .page-content,
  .page-content > * {
    width: 100%;
    max-width: 100%;
}
.page-content .back_img {
    width: 100% !important;
    min-width: 0 !important;
    padding-top: 52% !important;
    background-position: center !important;
}
.page-content img {
    max-width: 100%;
}
.page-content pre {
    max-width: 100%;
    margin-right: 0;
    margin-left: 0;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    word-break: break-word;
}
.page-content [class*="_box"],
  .page-content [class*="_boxs"],
  .page-content [class*="_imgbox"],
  .page-content [class*="_imgBox"] {
    max-width: 100%;
    box-sizing: border-box;
}
.page-content .bnner_top {
    width: 100% !important;
    height: auto !important;
    min-height: 4.8rem;
    padding: 1.4rem 1.6rem;
    box-sizing: border-box;
    font-size: 1.4rem !important;
    line-height: 1.7 !important;
    text-align: center;
}
.page-content .box_home_text,
  .page-content .synopsis_box_text1 {
    padding-top: 0 !important;
    font-size: 3rem !important;
    line-height: 1.3 !important;
}
.page-content .box_home_bottom_text,
  .page-content .synopsis_box_text2 {
    margin-top: 0.6rem !important;
    font-size: 1.4rem !important;
    line-height: 1.5 !important;
}
.page-content .bottom_text1,
  .page-content .report_text_content,
  .page-content .AssociationANDExcerpts_text1,
  .page-content .association_box_text2,
  .page-content .pressLeft_text_box,
  .page-content .teams_bottom_text,
  .page-content .liability_box_centertext,
  .page-content .LocalServices_bottom_text,
  .page-content .Video_box_imgitem_content,
  .page-content .Trade_box_item_text,
  .page-content .arbitration_box_item_text,
  .page-content .text2 {
    width: 100% !important;
    max-width: 100%;
    font-size: 1.5rem !important;
    line-height: 1.7 !important;
    overflow-wrap: anywhere;
}
.page-content .yuyan,
  .page-content .service,
  .page-content .association_box,
  .page-content .client_box,
  .page-content .biye_box,
  .page-content .Video_box,
  .page-content .interpreterServices_boxs,
  .page-content .LocalServices_box,
  .page-content .Retrieval_box,
  .page-content .Join_box,
  .page-content .synopsis_box,
  .page-content .mission_box,
  .page-content .target_box,
  .page-content .teams_box,
  .page-content .liability_box,
  .page-content .guarantee_box,
  .page-content .flow_box,
  .page-content .technology_box,
  .page-content .Qualitycontrol_box {
    height: auto !important;
    min-height: 0 !important;
}
.page-content .yuyan,
  .page-content .association_box,
  .page-content .client_box,
  .page-content .biye_box,
  .page-content .Video_box,
  .page-content .interpreterServices_boxs,
  .page-content .LocalServices_box,
  .page-content .Retrieval_box,
  .page-content .Join_box,
  .page-content .synopsis_box,
  .page-content .mission_box,
  .page-content .target_box,
  .page-content .teams_box,
  .page-content .liability_box,
  .page-content .guarantee_box,
  .page-content .flow_box,
  .page-content .technology_box,
  .page-content .Qualitycontrol_box {
    padding: 5.6rem 1.6rem !important;
    box-sizing: border-box;
}
.page-content .yuyan_number_box {
    padding: 3.2rem 1.6rem;
    box-sizing: border-box;
}
.page-content .yuyan_number,
  .page-content .teams_number_box {
    width: 100% !important;
    height: auto !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2.4rem 1.2rem;
}
.page-content .yuyan_number_item,
  .page-content .teams_number_box_item {
    width: 100% !important;
    height: auto !important;
    min-height: 8rem;
    margin: 0 !important;
    align-items: center;
    justify-content: center;
    text-align: center;
}
.page-content .yuyan_number_item_text1,
  .page-content .teams_number_box_itemtext1 {
    font-size: 3rem !important;
}
.page-content .yuyan_number_item_text2,
  .page-content .yuyan_number_item_text3,
  .page-content .teams_number_box_itemtext2 {
    font-size: 1.6rem !important;
}
.page-content .yuyan_number_item_bottomtext {
    font-size: 1.4rem !important;
}
.page-content .jineng_box {
    width: 100% !important;
    margin-top: 3.2rem !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2.4rem 1.2rem;
}
.page-content .jineng_item {
    width: 100% !important;
    margin: 0 !important;
}
.page-content .jineng_text {
    font-size: 1.6rem !important;
}
.page-content .association_boxs,
  .page-content .arbitration_box,
  .page-content .img_box,
  .page-content .AssociationANDExcerpts_imgbox,
  .page-content .interpreterServices_imgbox,
  .page-content .Video_box_imgBox,
  .page-content .Trade_box,
  .page-content .target_box_bottom,
  .page-content .Join_img_son,
  .page-content .synopsis_3,
  .page-content .presstext_img_box {
    width: 100% !important;
    height: auto !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 2.4rem !important;
}
.page-content .association_box_item,
  .page-content .arbitration_box_item,
  .page-content .img_box_item,
  .page-content .AssociationANDExcerpts_imgbox_item,
  .page-content .interpreterServices_imgbox_item,
  .page-content .Video_box_imgitem,
  .page-content .Trade_box_item,
  .page-content .Join_img_item_box,
  .page-content .presstext_img_box_left,
  .page-content .presstext_img_box_right {
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    box-sizing: border-box;
}
.page-content .association_box_item {
    display: flex !important;
    flex-direction: column;
}
.page-content .association_box_item_img,
  .page-content .arbitration_box_item_img,
  .page-content .img_box_item_img,
  .page-content .AssociationANDExcerpts_imgbox_item_img,
  .page-content .interpreterServices_imgbox_item_img,
  .page-content .Video_box_imgitem_img,
  .page-content .Trade_box_item_img,
  .page-content .Join_img_item,
  .page-content .synopsis_3_img,
  .page-content .pressLeft_img,
  .page-content .pressRight_img {
    width: 100% !important;
    max-width: 100%;
    height: auto !important;
    display: block;
    -o-object-fit: contain;
       object-fit: contain;
}
.page-content .association_box_texts,
  .page-content .synopsis_3_text_box,
  .page-content .mission_text_box,
  .page-content .pressLeft_text_boxs {
    width: 100% !important;
    max-width: 100%;
    height: auto !important;
    padding: 2rem !important;
    box-sizing: border-box;
}
.page-content .association_box_text1,
  .page-content .report_text,
  .page-content .presstitle,
  .page-content .text1 {
    font-size: 2rem !important;
    line-height: 1.5 !important;
}
.page-content .biyi_box,
  .page-content .biyi_boxs,
  .page-content .Video_box_imgBoxs,
  .page-content .interpreterServices_imgboxs,
  .page-content .AssociationANDExcerpts_imgboxs,
  .page-content .Retrieval_img_box,
  .page-content .technology_img1_box,
  .page-content .technology_img2_box,
  .page-content .Qualitycontrol_img_box,
  .page-content .flow_img_box,
  .page-content .mission_img_box,
  .page-content .liability_img_box {
    width: 100% !important;
    max-width: 100%;
    height: auto !important;
    flex-wrap: wrap;
    box-sizing: border-box;
}
.page-content img[class*="bnner_img"],
  .page-content img[class*="bnner"],
  .page-content img[class*="Banner"] {
    width: 100% !important;
    height: auto !important;
    display: block;
}
.page-content .Join_img_box {
    margin-top: 3.2rem;
}
.page-content .Join_img_son {
    padding: 0;
}
.page-content .text1 {
    margin: 2.4rem 0 1.2rem !important;
}
.page-content .target_box_bottom_item {
    width: 100% !important;
    min-height: 0 !important;
    padding: 2rem;
    box-sizing: border-box;
}
.page-content .statement_content {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.6rem;
}
.page-content .statement_content_item {
    width: 100% !important;
    height: auto !important;
    min-height: 15.1rem;
    box-sizing: border-box;
}
.page-content .quarter_content {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 2fr) minmax(0, 1fr);
    gap: 1.6rem;
}
.page-content .quarter_content_left {
    width: 100% !important;
    margin-top: 0 !important;
}
.page-content .quarter_img {
    width: 100% !important;
    height: auto !important;
}
.page-content .not-found {
    overflow: visible;
}
.page-content .el-step__description {
    font-size: 1.4rem !important;
    line-height: 1.5 !important;
}
}
@media (max-width: 520px) {
.page-content .statement_content,
  .page-content .quarter_content {
    grid-template-columns: minmax(0, 1fr);
}
}
@media (prefers-reduced-motion: reduce) {
*,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: var(--wt-dur-reduced) !important;
    animation-iteration-count: 1 !important;
    transition-duration: var(--wt-dur-reduced) !important;
}
}
.skip-link {
  position: fixed;
  top: 1rem;
  left: 1rem;
  z-index: 20000;
  padding: 1.2rem 1.6rem;
  color: var(--wt-white);
  background: var(--wt-brick-soft);
  text-decoration: none;
  transform: translateY(-180%);
  transition: transform var(--wt-dur-quick) ease;
}
.skip-link:focus {
  transform: translateY(0);
}
.page-content {
  min-height: 50vh;
}
.legacy-page {
  position: relative;
  overflow: hidden;
}
.legacy-page > .box > .back_img {
  display: none !important;
}
.legacy-page > .box > .yuyan_number_box,
.legacy-page > .box .teams_number_box_box {
  display: none !important;
}
.legacy-evidence-heading {
  width: calc(100% - 4.8rem);
  max-width: 118rem;
  margin: 0 auto;
  padding: 8rem 0 0;
  font: var(--wt-weight-bold) clamp(3rem, 4vw, 4.8rem)/1.3 var(--wt-display);
  text-align: center;
}
.legacy-evidence-note {
  width: calc(100% - 4.8rem);
  max-width: 78rem;
  margin: 1.6rem auto 4rem;
  color: #6b6567;
  font-size: 1.4rem;
  line-height: 1.75;
  text-align: center;
}
.legacy-page img {
  max-width: 100%;
}
.legacy-page .box_home_bottom_text,
.legacy-page .association_box_text2,
.legacy-page .bottom_text1,
.legacy-page .client_box_text3 {
  color: #5f595b !important;
}
.route-fade-enter-active,
.route-fade-leave-active {
  transition: opacity var(--wt-dur-state) ease, transform var(--wt-dur-state) ease;
}
.route-fade-enter,
.route-fade-leave-to {
  opacity: 0;
  transform: translateY(0.8rem);
}
@media (max-width: 900px) {
.legacy-evidence-heading {
    width: calc(100% - 3.2rem);
    max-width: 70rem;
    padding-top: 6rem;
}
}
@media (prefers-reduced-motion: reduce) {
.skip-link,
  .route-fade-enter-active,
  .route-fade-leave-active {
    transition: none;
}
}

