/* ============================================================
   马叔 · 企业 AI 转型 —— 视觉系统
   浅色专业顾问风：纸感底 + 细线 + 深墨绿 + 黄铜点缀
   ============================================================ */

:root {
  /* 底色 */
  --paper:      #FAF9F5;
  --paper-2:    #F4F2EB;
  --surface:    #FFFFFF;

  /* 文字 */
  --ink:        #1B2420;
  --ink-2:      #46524C;
  --muted:      #7E8882;
  --faint:      #A8B0AA;

  /* 线 */
  --line:       #E6E4DB;
  --line-2:     #D6D4C9;

  /* 品牌 */
  --brand:      #1F4A3D;
  --brand-2:    #2E6653;
  --brand-soft: #EDF3F0;

  /* 点缀 */
  --accent:     #B9873F;
  --accent-2:   #96692A;
  --accent-soft:#F8F1E3;

  /* 语义 */
  --ok:         #3E8E6E;
  --warn:       #C08A3E;
  --bad:        #B5543C;

  --r:          4px;
  --r-lg:       8px;
  --shadow:     0 1px 2px rgba(27,36,32,.04), 0 8px 28px -12px rgba(27,36,32,.10);
  --shadow-lg:  0 2px 4px rgba(27,36,32,.04), 0 18px 48px -18px rgba(27,36,32,.16);

  --sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Source Han Sans SC", sans-serif;
  --serif: "Songti SC", "Source Han Serif SC", "Noto Serif SC", "Times New Roman", serif;
  --mono: "SF Mono", ui-monospace, Menlo, Consolas, "Courier New", monospace;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.72;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  /* 外语版常有长单词（traditionnelles / Autodiagnóstico），不允许它撑破容器 */
  overflow-wrap: break-word;
}
img { max-width: 100%; display: block; }
a { color: var(--brand); text-decoration: none; }
a:hover { color: var(--brand-2); }
button { font: inherit; color: inherit; cursor: pointer; border: 0; background: none; }
::selection { background: #D9E6E0; color: var(--ink); }

/* ---------- 布局 ---------- */
.wrap { max-width: 1128px; margin: 0 auto; padding: 0 32px; }
.wrap-narrow { max-width: 820px; margin: 0 auto; padding: 0 32px; }
.section { padding: 104px 0; }
.section-sm { padding: 72px 0; }
.section-tint { background: var(--paper-2); }
.section-white { background: var(--surface); }

.grid { display: grid; gap: 24px; }
.g2 { grid-template-columns: repeat(2, 1fr); }
.g3 { grid-template-columns: repeat(3, 1fr); }
.g4 { grid-template-columns: repeat(4, 1fr); }

/* ---------- 排版 ---------- */
.eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 12px; font-weight: 600; letter-spacing: .14em;
  color: var(--accent-2); text-transform: uppercase;
  margin: 0 0 20px;
  max-width: 100%; flex-wrap: wrap;   /* 外语版 eyebrow 很长，必须允许折行 */
}
.eyebrow::before {
  content: ""; width: 22px; height: 1px; background: var(--accent); flex: none;
}

h1, h2, h3, h4 { margin: 0; font-weight: 700; letter-spacing: -.02em; line-height: 1.24; color: var(--ink); }
h1 { font-size: clamp(30px, 4.2vw, 50px); letter-spacing: -.03em; line-height: 1.16; }
h2 { font-size: clamp(25px, 3.1vw, 36px); line-height: 1.22; }
h3 { font-size: 19px; line-height: 1.4; }
h4 { font-size: 15px; line-height: 1.45; letter-spacing: 0; }

.lead { font-size: clamp(16px, 1.6vw, 19px); line-height: 1.78; color: var(--ink-2); margin: 20px 0 0; }
p { margin: 0 0 16px; color: var(--ink-2); }
p:last-child { margin-bottom: 0; }
.small { font-size: 13.5px; line-height: 1.7; color: var(--muted); }
.tiny { font-size: 12px; line-height: 1.6; color: var(--faint); }
.mono { font-family: var(--mono); font-variant-numeric: tabular-nums; }
.accent-text { color: var(--accent-2); }
.strong { color: var(--ink); font-weight: 600; }

.head-block { max-width: 720px; }
.head-block h2 + .lead { margin-top: 18px; }

/* ---------- 顶栏 ---------- */
.nav {
  position: sticky; top: 0; z-index: 100;
  background: rgba(250,249,245,.86);
  backdrop-filter: saturate(180%) blur(14px);
  -webkit-backdrop-filter: saturate(180%) blur(14px);
  border-bottom: 1px solid var(--line);
}
.nav-in { display: flex; align-items: center; gap: clamp(14px, 1.6vw, 26px); height: 68px; }
.brand { display: flex; align-items: center; gap: 11px; flex: 0 1 auto; min-width: 0; }
.brand-mark {
  width: 34px; height: 34px; border-radius: 3px; flex: none;
  background: var(--brand); color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-size: 15px; font-weight: 700; letter-spacing: 0;
}
.brand-txt { display: flex; flex-direction: column; line-height: 1.2; min-width: 0; }
.brand-txt b { font-size: 15px; letter-spacing: .01em; color: var(--ink); }
.brand-txt span { font-size: 11px; color: var(--muted); letter-spacing: .06em; }
/* 副标题在空间不足时截断，绝不允许把整条顶栏撑宽 */
.brand-txt b,
.brand-txt span { max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* 导航链接不参与压缩：一旦被压，文字会顶到语言按钮上（法语/西语长标签踩过这个坑） */
.nav-links { display: flex; gap: clamp(14px, 1.2vw, 22px); margin-left: auto; flex: 0 0 auto; flex-wrap: nowrap; }
.nav-links a { font-size: 14px; color: var(--ink-2); letter-spacing: .01em; white-space: nowrap; }
.nav-links a:hover { color: var(--brand); }
.nav-cta { flex: none; }

/* ---------- 按钮 ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  height: 46px; padding: 0 22px; border-radius: var(--r);
  font-size: 14.5px; font-weight: 600; letter-spacing: .01em;
  border: 1px solid transparent; transition: .18s ease; white-space: nowrap;
}
.btn svg { width: 15px; height: 15px; }
.btn-primary { background: var(--brand); color: #fff; }
.btn-primary:hover { background: var(--brand-2); color: #fff; transform: translateY(-1px); box-shadow: 0 8px 20px -8px rgba(31,74,61,.5); }
.btn-ghost { background: transparent; color: var(--ink); border-color: var(--line-2); }
.btn-ghost:hover { border-color: var(--ink-2); color: var(--ink); background: var(--surface); }
.btn-accent { background: var(--accent); color: #fff; }
.btn-accent:hover { background: var(--accent-2); color: #fff; }
.btn-lg { height: 54px; padding: 0 30px; font-size: 15.5px; }
.btn-sm { height: 38px; padding: 0 16px; font-size: 13.5px; }
.btn-block { width: 100%; }
.btn:disabled { opacity: .38; cursor: not-allowed; transform: none !important; box-shadow: none !important; }

.link-arrow { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 600; color: var(--brand); }
.link-arrow svg { width: 14px; height: 14px; transition: .18s; }
.link-arrow:hover svg { transform: translateX(3px); }

/* ---------- 首页第一屏 ---------- */
.hero { padding: 88px 0 96px; position: relative; overflow: hidden; }
.hero::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(760px 420px at 88% 6%, rgba(185,135,63,.10), transparent 62%),
    radial-gradient(620px 460px at 6% 96%, rgba(31,74,61,.07), transparent 60%);
}
.hero-in { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0,1.12fr) minmax(0,.88fr); gap: 64px; align-items: center; }
.hero-tag {
  display: inline-flex; align-items: center; gap: 9px;
  padding: 6px 13px 6px 9px; border-radius: 100px;
  background: var(--surface); border: 1px solid var(--line);
  font-size: 12.5px; color: var(--ink-2); letter-spacing: .02em;
  margin-bottom: 26px;
}
.hero-tag i { width: 6px; height: 6px; border-radius: 50%; background: var(--ok); display: block; box-shadow: 0 0 0 3px rgba(62,142,110,.16); }
.hero h1 { max-width: 15em; }
.hero h1 em { font-style: normal; color: var(--brand); position: relative; white-space: nowrap; }
.hero h1 em::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: .06em; height: .34em;
  background: rgba(185,135,63,.22); z-index: -1;
}
.hero-lead { max-width: 33em; }
.hero-actions { display: flex; gap: 12px; margin-top: 34px; flex-wrap: wrap; align-items: center; }
.hero-hint { margin-top: 16px; font-size: 13px; color: var(--muted); }
.hero-hint b { color: var(--ink-2); font-weight: 600; }

/* 照片位 */
.portrait {
  position: relative; border-radius: var(--r-lg);
  display: flex; flex-direction: column;
}
.portrait .portrait-frame {
  aspect-ratio: 4/5; border-radius: var(--r-lg); overflow: hidden;
  background: linear-gradient(168deg, #E7EDE9 0%, #DCE5DF 52%, #EFE9DC 100%);
  border: 1px solid var(--line-2);
  display: flex; align-items: center; justify-content: center;
}
.portrait img { width: 100%; height: 100%; object-fit: cover; }
.portrait-ph { text-align: center; padding: 0; color: #94A29A; overflow: hidden; }
.portrait-ph svg { width: 56px; height: 56px; margin: 0 auto 14px; opacity: .45; }
.portrait-ph b { display: block; font-size: 13.5px; color: #7D8C83; font-weight: 600; }
.portrait-ph span { font-size: 12px; }
.portrait-ph img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 18%; }

/* 说明条：放在照片下方，不再压住人物 */
.portrait-cap {
  margin-top: 14px; background: var(--surface);
  border: 1px solid var(--line); border-radius: var(--r);
  padding: 13px 16px; font-size: 12.5px; color: var(--ink-2); line-height: 1.6;
}
.portrait-cap b { color: var(--ink); font-weight: 600; }

/* 数字条 */
.statbar {
  display: grid; grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
  margin-top: 76px;
}
.statbar > div { padding: 26px 24px 26px 0; border-right: 1px solid var(--line); }
.statbar > div:last-child { border-right: 0; }
.statbar b { display: block; font-size: 29px; font-weight: 700; letter-spacing: -.03em; color: var(--brand); line-height: 1.1; }
.statbar b span { display: inline; font-size: 16px; margin: 0; color: var(--brand); letter-spacing: 0; }
.statbar > div > span { display: block; font-size: 12.5px; color: var(--muted); margin-top: 7px; letter-spacing: .02em; }

/* ---------- 卡片 ---------- */
.card {
  background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--r-lg); padding: 30px;
  transition: .2s ease;
}
.card-hover:hover { border-color: var(--line-2); box-shadow: var(--shadow); transform: translateY(-2px); }
.card-num {
  font-family: var(--mono); font-size: 12px; font-weight: 600;
  color: var(--accent-2); letter-spacing: .1em; margin-bottom: 14px; display: block;
}
.card h3 { margin-bottom: 10px; }
.card p { font-size: 14.5px; line-height: 1.72; }
.card-tag {
  display: inline-block; font-size: 11.5px; padding: 3px 9px; border-radius: 3px;
  background: var(--brand-soft); color: var(--brand); font-weight: 600; letter-spacing: .04em;
}

/* 三段式服务 */
.svc { position: relative; }
.svc-step {
  display: flex; align-items: baseline; gap: 12px; margin-bottom: 16px;
}
.svc-step i {
  font-style: normal; font-family: var(--mono); font-size: 11.5px; font-weight: 600;
  color: #fff; background: var(--brand); width: 24px; height: 24px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center; flex: none;
}
.svc-step span { font-size: 12px; color: var(--muted); letter-spacing: .08em; text-transform: uppercase; }

/* 环节切分（AI主导/辅助/人主导） */
.chain { display: grid; grid-template-columns: repeat(6, 1fr); gap: 0; margin-top: 44px; border-radius: var(--r-lg); overflow: hidden; border: 1px solid var(--line); }
.chain-i { background: var(--surface); padding: 24px 18px; border-right: 1px solid var(--line); position: relative; }
.chain-i:last-child { border-right: 0; }
.chain-i .no { font-family: var(--mono); font-size: 11px; color: var(--faint); display: block; margin-bottom: 10px; }
.chain-i h4 { font-size: 14.5px; margin-bottom: 8px; }
.chain-i p { font-size: 12.5px; line-height: 1.6; color: var(--muted); margin: 0; }
.chain-i .who { display: inline-block; margin-top: 12px; font-size: 10.5px; font-weight: 700; letter-spacing: .08em; padding: 2px 7px; border-radius: 2px; }
.who-ai { background: var(--brand); color: #fff; }
.who-ai2 { background: var(--brand-soft); color: var(--brand); }
.who-man { background: var(--accent-soft); color: var(--accent-2); }
.chain-note { margin-top: 26px; padding: 20px 24px; background: var(--surface); border: 1px solid var(--line); border-left: 3px solid var(--accent); border-radius: 0 var(--r) var(--r) 0; }
.chain-note p { font-size: 14.5px; margin: 0; }

/* ---------- 案例 ---------- */
.case-ind {
  font-size: 11.5px; font-weight: 700; letter-spacing: .06em;
  color: var(--accent-2); background: var(--accent-soft);
  padding: 3px 9px; border-radius: 2px;
}
.case-who { font-size: 12px; color: var(--muted); }

/* ---------- 工具展示 ---------- */
.tool {
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg);
  overflow: hidden; display: flex; flex-direction: column;
}
.tool-preview {
  aspect-ratio: 16/9; background: linear-gradient(150deg, #F0F3F1, #E8EDEA);
  border-bottom: 1px solid var(--line); position: relative;
  display: flex; align-items: center; justify-content: center;
  font-size: 12.5px; color: #97A49D;
}
.tool-preview-mock { width: 100%; height: 100%; padding: 16px; display: flex; flex-direction: column; gap: 8px; }
.tpm-bar { display: flex; gap: 6px; align-items: center; }
.tpm-dot { width: 7px; height: 7px; border-radius: 50%; background: #C9D2CD; }
.tpm-line { height: 7px; border-radius: 2px; background: #DDE5E0; }
.tpm-cols { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; flex: 1; }
.tpm-col { background: #fff; border: 1px solid #E2E8E4; border-radius: 3px; padding: 7px; display: flex; flex-direction: column; gap: 5px; }
.tpm-card { background: #F4F7F5; border-radius: 2px; height: 20px; }
.tpm-card.hl { background: #E3EDE8; border-left: 2px solid var(--brand); }
.tool-body { padding: 24px 26px 28px; flex: 1; display: flex; flex-direction: column; }
.tool-body h3 { font-size: 16.5px; margin-bottom: 8px; }
.tool-body p { font-size: 13.5px; line-height: 1.7; margin: 0 0 14px; }
.tool-meta { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 16px; }
.tool-meta span { font-size: 11px; padding: 3px 8px; border-radius: 2px; background: var(--paper-2); color: var(--ink-2); }
.tool-body .link-arrow { margin-top: auto; }

/* ---------- 自测入口模块 ---------- */
.assess-cta {
  background: linear-gradient(162deg, #1F4A3D 0%, #17382F 60%, #12291F 100%);
  border-radius: var(--r-lg); padding: 60px 56px; color: #fff; position: relative; overflow: hidden;
}
.assess-cta::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(560px 320px at 90% 0%, rgba(185,135,63,.20), transparent 66%);
}
.assess-cta-in { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0,1.15fr) minmax(0,.85fr); gap: 56px; align-items: center; }
.assess-cta h2 { color: #fff; }
.assess-cta p { color: rgba(255,255,255,.76); }
.assess-cta .eyebrow { color: #D8B77C; }
.assess-cta .eyebrow::before { background: #D8B77C; }
.assess-list { margin: 26px 0 0; padding: 0; list-style: none; display: grid; gap: 12px; }
.assess-list li { display: flex; gap: 11px; font-size: 14px; color: rgba(255,255,255,.86); line-height: 1.6; }
.assess-list li svg { width: 17px; height: 17px; flex: none; margin-top: 2px; color: #D8B77C; }
.assess-box { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.14); border-radius: var(--r-lg); padding: 30px 28px; }
.assess-box .big { font-size: 40px; font-weight: 700; letter-spacing: -.04em; line-height: 1; color: #fff; }
.assess-box .big span { font-size: 15px; font-weight: 500; color: rgba(255,255,255,.6); letter-spacing: 0; margin-left: 6px; }
.assess-box hr { border: 0; border-top: 1px solid rgba(255,255,255,.14); margin: 20px 0; }
.assess-box .row { display: flex; justify-content: space-between; gap: 14px; font-size: 13px; color: rgba(255,255,255,.7); padding: 5px 0; }
.assess-box .row span { min-width: 0; }   /* 法语「Parcours sectoriels」这类长标签要能换行 */
.assess-box .row b { color: #fff; font-weight: 600; }
.assess-cta .btn-accent { margin-top: 26px; }

/* ---------- 关于 / 简介 ---------- */
.about-grid { display: grid; grid-template-columns: minmax(0,.82fr) minmax(0,1.18fr); gap: 64px; align-items: start; }
.about-photo { aspect-ratio: 3/4; border-radius: var(--r-lg); background: linear-gradient(168deg,#E7EDE9,#DCE5DF 60%,#EFE9DC); border: 1px solid var(--line-2); display: flex; align-items: center; justify-content: center; overflow: hidden; }
.about-photo .portrait-ph { width: 100%; height: 100%; }
.about-photo .portrait-ph img { object-position: center 8%; }
.cred-list { display: grid; gap: 0; margin-top: 32px; border-top: 1px solid var(--line); }
.cred { display: grid; grid-template-columns: 108px 1fr; gap: 20px; padding: 18px 0; border-bottom: 1px solid var(--line); }
.cred dt { font-size: 12px; color: var(--muted); letter-spacing: .06em; padding-top: 3px; }
.cred dd { margin: 0; font-size: 14.5px; color: var(--ink); line-height: 1.7; }

/* SWAT 团队流程 */
.swat-box {
  margin-top: 30px; padding: 24px 26px;
  background: var(--brand-soft); border: 1px solid var(--line); border-radius: var(--r-lg);
}
.swat-tag {
  display: inline-block; margin-bottom: 18px;
  font-family: var(--mono); font-size: 11px; font-weight: 700; letter-spacing: .12em;
  color: var(--brand); background: rgba(31,74,61,.08);
  padding: 4px 10px; border-radius: 3px;
}
.swat-flow { list-style: none; margin: 0; padding: 0; counter-reset: swat; }
.swat-flow li {
  position: relative; padding-left: 34px; margin-bottom: 16px;
  counter-increment: swat;
}
.swat-flow li:last-child { margin-bottom: 0; }
.swat-flow li::before {
  content: counter(swat, decimal-leading-zero);
  position: absolute; left: 0; top: 1px;
  font-family: var(--mono); font-size: 11px; font-weight: 700; color: var(--brand);
  width: 22px; height: 22px; border-radius: 50%;
  background: rgba(31,74,61,.09); border: 1px solid rgba(31,74,61,.18);
  display: flex; align-items: center; justify-content: center;
}
.swat-flow b { display: block; font-size: 14.5px; color: var(--ink); margin-bottom: 3px; }
.swat-flow span { display: block; font-size: 13px; color: var(--ink-2); line-height: 1.68; }

/* 三个身份 */
.role-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px;
  margin-top: 72px; padding-top: 56px; border-top: 1px solid var(--line);
}
.role {
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg);
  padding: 28px 26px 26px; display: flex; flex-direction: column;
  transition: .2s ease;
}
.role:hover { border-color: var(--line-2); box-shadow: var(--shadow); transform: translateY(-2px); }
.role-no {
  font-family: var(--mono); font-size: 11px; font-weight: 700; letter-spacing: .12em;
  color: var(--accent-2); display: block; margin-bottom: 12px;
}
.role h3 { font-size: 18px; margin-bottom: 6px; }
.role-sub {
  font-size: 12.5px; color: var(--brand); font-weight: 600;
  letter-spacing: .02em; margin-bottom: 14px;
  padding-bottom: 14px; border-bottom: 1px solid var(--line);
}
.role p { font-size: 14px; line-height: 1.75; color: var(--ink-2); margin: 0; }
.role-tagline {
  margin-top: auto !important; padding-top: 16px;
  font-size: 12.5px !important; color: var(--faint) !important; font-style: italic;
}

/* ---------- 联系 ---------- */
.contact-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,.82fr); gap: 56px; align-items: start; }
.qr-box { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 28px; text-align: center; }
.qr-box .qr {
  width: 200px; height: 200px; margin: 0 auto 18px; border-radius: var(--r);
  background: #fff; border: 1px solid var(--line-2);
  display: flex; align-items: center; justify-content: center; overflow: hidden;
}
.qr-box .qr img { display: block; width: 100%; height: 100%; object-fit: contain; }
.field { margin-bottom: 16px; }
.field label { display: block; font-size: 13px; font-weight: 600; color: var(--ink-2); margin-bottom: 7px; }
.field input, .field textarea, .field select {
  width: 100%; padding: 12px 14px; border: 1px solid var(--line-2); border-radius: var(--r);
  background: var(--surface); font: inherit; font-size: 14.5px; color: var(--ink); transition: .15s;
}
.field input:focus, .field textarea:focus, .field select:focus {
  outline: none; border-color: var(--brand); box-shadow: 0 0 0 3px rgba(31,74,61,.09);
}
.field textarea { resize: vertical; min-height: 96px; }

/* ---------- 页脚 ---------- */
.foot { border-top: 1px solid var(--line); padding: 52px 0 40px; background: var(--paper-2); }
.foot-in { display: grid; grid-template-columns: 1fr auto; gap: 40px; align-items: end; }
.foot-links { display: flex; gap: 22px; flex-wrap: wrap; }
.foot-links a { font-size: 13px; color: var(--muted); }
.foot-links a:hover { color: var(--brand); }
.foot-note { margin-top: 26px; font-size: 12px; color: var(--faint); line-height: 1.7; }

/* ============================================================
   自测页
   ============================================================ */

.assess-shell { min-height: calc(100vh - 68px); display: flex; flex-direction: column; }
.assess-head { padding: 52px 0 40px; }
.progress-wrap { margin-top: 8px; }
.progress-bar { height: 3px; background: var(--line); border-radius: 100px; overflow: hidden; }
.progress-fill { height: 100%; background: var(--brand); transition: width .35s cubic-bezier(.4,0,.2,1); border-radius: 100px; }
.progress-meta { display: flex; justify-content: space-between; font-size: 12.5px; color: var(--muted); margin-top: 10px; }

/* 行业选择 */
.ind-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-top: 36px; }
.ind-card {
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg);
  padding: 22px 20px; text-align: left; transition: .18s ease; display: flex; flex-direction: column; gap: 8px;
  min-height: 132px;
}
.ind-card:hover { border-color: var(--brand); box-shadow: var(--shadow); transform: translateY(-2px); }
.ind-card .ic-name { font-size: 15.5px; font-weight: 700; color: var(--ink); letter-spacing: -.01em; }
.ind-card .ic-en { font-size: 10.5px; color: var(--faint); letter-spacing: .08em; text-transform: uppercase; }
.ind-card .ic-tag { font-size: 12px; color: var(--muted); line-height: 1.55; margin-top: auto; }

/* 题目 */
.q-wrap { padding: 20px 0 80px; }
.q-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 44px 48px 40px; }
.q-dim { display: flex; align-items: center; gap: 10px; margin-bottom: 22px; }
.q-dim span:first-child {
  font-size: 11px; font-weight: 700; letter-spacing: .1em; color: var(--brand);
  background: var(--brand-soft); padding: 3px 9px; border-radius: 2px;
}
.q-dim span:last-child { font-size: 12px; color: var(--faint); }
.q-text { font-size: clamp(20px, 2.4vw, 26px); font-weight: 700; line-height: 1.42; letter-spacing: -.02em; margin: 0 0 32px; color: var(--ink); }
.opts { display: grid; gap: 10px; }
.opt {
  display: flex; align-items: flex-start; gap: 14px; width: 100%; text-align: left;
  padding: 17px 20px; border: 1px solid var(--line-2); border-radius: var(--r);
  background: var(--surface); transition: .15s ease; font-size: 15px; line-height: 1.6; color: var(--ink-2);
}
.opt:hover { border-color: var(--brand); background: #FBFCFB; }
.opt .mk {
  width: 20px; height: 20px; border-radius: 50%; border: 1.5px solid var(--line-2);
  flex: none; margin-top: 2px; display: flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 700; color: transparent; transition: .15s;
}
.opt:hover .mk { border-color: var(--brand); }
.opt.on { border-color: var(--brand); background: var(--brand-soft); color: var(--ink); }
.opt.on .mk { background: var(--brand); border-color: var(--brand); color: #fff; }
.opt-text { flex: 1; }
.q-nav { display: flex; justify-content: space-between; align-items: center; margin-top: 30px; padding-top: 24px; border-top: 1px solid var(--line); }
.q-tip { font-size: 12.5px; color: var(--faint); max-width: 32em; line-height: 1.6; }

/* 报告 */
.report-head { padding: 56px 0 0; }
.score-hero {
  display: grid; grid-template-columns: minmax(0,auto) minmax(0,1fr); gap: 48px; align-items: center;
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg);
  padding: 44px 46px; margin-top: 28px;
}
.ring-wrap { position: relative; width: 172px; height: 172px; flex: none; }
.ring-wrap svg { transform: rotate(-90deg); }
.ring-center { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.ring-center b { font-size: 46px; font-weight: 700; letter-spacing: -.045em; line-height: 1; color: var(--ink); }
.ring-center span { font-size: 11.5px; color: var(--muted); margin-top: 6px; letter-spacing: .06em; }
.lv-badge {
  display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px; border-radius: 100px;
  font-size: 13px; font-weight: 700; letter-spacing: .02em; margin-bottom: 14px;
}
.lv-badge i { width: 7px; height: 7px; border-radius: 50%; display: block; }
.score-hero h2 { font-size: clamp(22px, 2.6vw, 30px); }
.score-hero .verdict { margin-top: 14px; font-size: 15px; line-height: 1.78; color: var(--ink-2); }

/* 雷达 + 维度 */
.dim-block { display: grid; grid-template-columns: 400px 1fr; gap: 56px; align-items: start; margin-top: 44px; }
.radar-wrap { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 22px 22px 16px; }
.radar-wrap svg { width: 100%; height: auto; display: block; }
.dim-rows { display: grid; gap: 0; }
.dim-row { padding: 17px 0; border-bottom: 1px solid var(--line); }
.dim-row:first-child { padding-top: 0; }
.dim-row-top { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 9px; }
.dim-row-top b { font-size: 14.5px; font-weight: 600; color: var(--ink); }
.dim-row-top .sc { font-family: var(--mono); font-size: 14.5px; font-weight: 600; color: var(--ink); }
.dim-row-top .sc em { font-style: normal; font-size: 11px; color: var(--muted); font-weight: 400; margin-left: 4px; }
.dim-track { height: 6px; background: var(--paper-2); border-radius: 100px; position: relative; overflow: visible; }
.dim-fill { height: 100%; min-width: 4px; border-radius: 100px; transition: width .8s cubic-bezier(.4,0,.2,1); }
.bench-zone {
  position: absolute; top: -3px; height: 12px; border-radius: 2px;
  background: rgba(185,135,63,.16); border-left: 1.5px solid rgba(185,135,63,.5); border-right: 1.5px solid rgba(185,135,63,.5);
}
.bench-note { display: flex; gap: 18px; margin-top: 16px; font-size: 11.5px; color: var(--muted); flex-wrap: wrap; }
.bench-note i { display: inline-block; width: 9px; height: 9px; border-radius: 2px; margin-right: 6px; vertical-align: -1px; }
.legend-bench { background: rgba(185,135,63,.28); border: 1px solid rgba(185,135,63,.55); }
.radar-legend { display: flex; gap: 18px; justify-content: center; margin-top: 12px; font-size: 11.5px; color: var(--muted); }
.radar-legend i { display: inline-block; width: 14px; height: 3px; border-radius: 2px; margin-right: 6px; vertical-align: 3px; }
.radar-legend .lg-self { background: var(--brand); }
.radar-legend .lg-bench { background: repeating-linear-gradient(90deg,#C9AE7E 0 4px,transparent 4px 7px); }

/* 发现 */
.finding { display: flex; gap: 16px; padding: 22px 0; border-bottom: 1px solid var(--line); }
.finding:first-child { padding-top: 0; }
.finding:last-child { border-bottom: 0; padding-bottom: 0; }
.finding-ico {
  width: 34px; height: 34px; border-radius: 50%; flex: none;
  display: flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 700;
}
.fi-good { background: var(--brand-soft); color: var(--brand); }
.fi-warn { background: #FBF2E2; color: var(--warn); }
.fi-info { background: var(--paper-2); color: var(--ink-2); }
.finding h4 { margin-bottom: 6px; font-size: 15px; }
.finding p { font-size: 14px; line-height: 1.72; margin: 0; }

/* 路径 */
.path-list { display: grid; gap: 0; margin-top: 36px; }
.path-item {
  display: grid; grid-template-columns: 92px 1fr; gap: 26px;
  padding: 26px 0; border-top: 1px solid var(--line); position: relative;
}
.path-item.is-now { background: linear-gradient(90deg, rgba(185,135,63,.07), transparent 74%); }
.path-item.is-done { opacity: .56; }
.path-stage { display: flex; flex-direction: column; gap: 6px; }
.path-stage .pno {
  font-family: var(--mono); font-size: 11px; font-weight: 700; letter-spacing: .1em; color: var(--faint);
}
.path-item.is-now .path-stage .pno { color: var(--accent-2); }
.path-stage .pnm { font-size: 13px; font-weight: 700; color: var(--ink); line-height: 1.4; }
.path-flag {
  display: inline-block; font-size: 10px; font-weight: 700; letter-spacing: .06em;
  background: var(--accent); color: #fff; padding: 2px 6px; border-radius: 2px; align-self: flex-start; margin-top: 2px;
}
.path-body h4 { font-size: 15.5px; margin-bottom: 10px; }
.path-body ul { margin: 0; padding: 0 0 0 17px; }
.path-body li { font-size: 14px; line-height: 1.75; color: var(--ink-2); margin-bottom: 6px; }
.path-body li:last-child { margin-bottom: 0; }

/* 最佳实践 */
.prac { display: grid; gap: 16px; margin-top: 32px; }
.prac-item {
  background: var(--surface); border: 1px solid var(--line); border-left: 3px solid var(--brand);
  border-radius: 0 var(--r-lg) var(--r-lg) 0; padding: 24px 28px;
}
.prac-item h4 { font-size: 15.5px; margin-bottom: 8px; }
.prac-item p { font-size: 14px; line-height: 1.72; margin: 0 0 12px; }
.prac-metric {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 13px; font-weight: 600; color: var(--brand); background: var(--brand-soft);
  padding: 5px 12px; border-radius: 3px;
}
.prac-metric svg { width: 13px; height: 13px; }

/* 行动清单 */
.actions { display: grid; gap: 12px; margin-top: 30px; counter-reset: act; }
.act {
  display: flex; gap: 16px; align-items: flex-start;
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--r);
  padding: 18px 22px;
}
.act::before {
  counter-increment: act; content: counter(act);
  width: 24px; height: 24px; border-radius: 50%; flex: none;
  background: var(--paper-2); color: var(--ink-2);
  font-family: var(--mono); font-size: 11.5px; font-weight: 700;
  display: flex; align-items: center; justify-content: center; margin-top: 1px;
}
.act p { font-size: 14.5px; line-height: 1.7; margin: 0; color: var(--ink); }
.act-tag { font-size: 10.5px; font-weight: 700; letter-spacing: .06em; color: var(--accent-2); display: block; margin-bottom: 3px; }

/* 报告尾 CTA */
.report-cta {
  background: var(--brand); border-radius: var(--r-lg); padding: 48px 52px; color: #fff;
  display: grid; grid-template-columns: 1fr auto; gap: 40px; align-items: center;
}
.report-cta h3 { color: #fff; font-size: 23px; margin-bottom: 12px; }
.report-cta p { color: rgba(255,255,255,.78); font-size: 14.5px; margin: 0; max-width: 42em; }
.report-cta .btn-accent { flex: none; }

/* 报告回传 */
.report-send {
  margin-top: 24px; padding: 34px 36px; background: var(--surface);
  border: 1px solid var(--line); border-radius: var(--r-lg);
  display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: start;
}
.rs-copy b { display: block; font-size: 16.5px; color: var(--ink); margin-bottom: 10px; }
.rs-copy p { font-size: 13.5px; color: var(--muted); margin: 0; line-height: 1.7; }
.rs-form { display: grid; gap: 13px; }
.rs-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }
.rs-form .field label { font-size: 12.5px; }
.rs-form .btn { margin-top: 3px; }
.rs-ok { padding: 4px 0; }
.rs-ok b { display: block; font-size: 15.5px; color: var(--brand); margin-bottom: 8px; }
.rs-ok p { font-size: 13.5px; color: var(--muted); margin: 0; line-height: 1.7; }

/* 报告底部说明 */
.disclaimer {
  margin-top: 40px; padding: 22px 24px; background: var(--paper-2); border-radius: var(--r);
  font-size: 12.5px; line-height: 1.75; color: var(--muted);
}
.disclaimer b { color: var(--ink-2); }

/* ---------- 响应式 ---------- */
@media (max-width: 1024px) {
  .hero-in { grid-template-columns: minmax(0, 1fr); gap: 44px; }
  .portrait { max-width: 340px; }
  .about-grid, .contact-grid { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .assess-cta-in { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .dim-block { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .radar-wrap { max-width: 420px; margin: 0 auto; }
  .chain { grid-template-columns: repeat(3, 1fr); }
  .chain-i { border-bottom: 1px solid var(--line); }
  .ind-grid { grid-template-columns: repeat(2, 1fr); }
  .g4 { grid-template-columns: repeat(2, 1fr); }
  .role-grid { grid-template-columns: minmax(0,1fr); gap: 16px; }
  .nav-links { display: none; }
}
@media (max-width: 760px) {
  body { font-size: 15.5px; }
  .wrap, .wrap-narrow { padding: 0 20px; }
  .nav-in { height: 60px; gap: 12px; }
  .nav-cta { padding: 0 14px; font-size: 13px; }
  .brand-txt span { display: none; }
  .section { padding: 68px 0; }
  .section-sm { padding: 52px 0; }
  .hero { padding: 52px 0 64px; }
  .statbar { grid-template-columns: repeat(2, 1fr); }
  .statbar > div { padding: 20px 16px 20px 0; }
  .statbar > div:nth-child(2) { border-right: 0; }
  .statbar > div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .g2, .g3, .g4, .case-grid { grid-template-columns: minmax(0,1fr); }
  .chain { grid-template-columns: minmax(0,1fr); }
  .chain-i { border-right: 0; }
  .ind-grid { grid-template-columns: minmax(0,1fr); }
  .q-card { padding: 28px 22px 26px; }
  .score-hero { grid-template-columns: minmax(0,1fr); gap: 28px; padding: 32px 24px; text-align: left; }
  .ring-wrap { margin: 0 auto; }
  .assess-cta { padding: 40px 24px; }
  .report-cta { grid-template-columns: minmax(0,1fr); padding: 32px 24px; }
  .report-send { grid-template-columns: minmax(0,1fr); gap: 24px; padding: 28px 24px; }
  .path-item { grid-template-columns: minmax(0,1fr); gap: 14px; }
  .cred { grid-template-columns: minmax(0,1fr); gap: 4px; }
  .foot-in { grid-template-columns: minmax(0,1fr); align-items: start; gap: 24px; }
  .case-metric { gap: 18px; flex-wrap: wrap; }
  .hero-actions .btn { width: 100%; }
}

/* ============================================================
   多语言（en / fr / es / ja）
   —— 拉丁文与日文各用一套字体栈，避免汉字被中文字体接管
   ============================================================ */
html[lang="en"],
html[lang="fr"],
html[lang="es"] {
  --sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif;
}
html[lang="ja"] {
  --sans: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Hiragino Kaku Gothic ProN",
          "Yu Gothic", "YuGothic", "Noto Sans JP", "Meiryo", sans-serif;
}

/* 日文正文行距略松，标题不做负字距 */
html[lang="ja"] body { line-height: 1.88; }
html[lang="ja"] h1,
html[lang="ja"] h2,
html[lang="ja"] h3,
html[lang="ja"] h4 { letter-spacing: .01em; line-height: 1.46; }
html[lang="ja"] .eyebrow { letter-spacing: .14em; }

/* 拉丁文段落断行更保守，避免出现孤字 */
html[lang="en"] p,
html[lang="fr"] p,
html[lang="es"] p { text-wrap: pretty; }
html[lang="en"] h1,
html[lang="fr"] h1,
html[lang="es"] h1 { letter-spacing: -.028em; }

/* 拉丁语系的强调短语必须能换行：法语「elles commencent par les outils」单行 413px，
   塞不进 390 屏。高亮从 ::after 换成渐变底，多行时每行底部都有，效果一致 */
html[lang="en"] .hero h1 em,
html[lang="fr"] .hero h1 em,
html[lang="es"] .hero h1 em {
  white-space: normal;
  background-image: linear-gradient(to top, rgba(185,135,63,.26) 0 .34em, transparent .34em);
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}
html[lang="en"] .hero h1 em::after,
html[lang="fr"] .hero h1 em::after,
html[lang="es"] .hero h1 em::after { display: none; }

/* 雷达图标签（Organisation / Governance）会比 viewBox 略宽，允许溢出而不是被裁 */
.radar-wrap svg { overflow: visible; }

/* ---------- 语言切换 ---------- */
.lang { position: relative; flex: none; }
.lang > summary {
  list-style: none; cursor: pointer;
  display: inline-flex; align-items: center; gap: 7px;
  height: 38px; padding: 0 11px;
  border: 1px solid var(--line-2); border-radius: var(--r);
  font-size: 13px; color: var(--ink-2); background: transparent;
  transition: border-color .18s ease, color .18s ease;
}
.lang > summary::-webkit-details-marker { display: none; }
.lang > summary::marker { content: ""; }
.lang > summary:hover,
.lang[open] > summary { border-color: var(--ink-2); color: var(--ink); }
.lang .globe { width: 15px; height: 15px; flex: none; opacity: .75; }
.lang .caret { width: 9px; height: 9px; flex: none; opacity: .55; transition: transform .18s ease; }
.lang[open] .caret { transform: rotate(180deg); }

.lang-menu {
  position: absolute; right: 0; top: calc(100% + 9px); z-index: 60;
  min-width: 176px; padding: 6px;
  background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--r-lg); box-shadow: var(--shadow-lg);
}
.lang-menu a {
  display: flex; align-items: baseline; justify-content: space-between; gap: 12px;
  padding: 8px 10px; border-radius: var(--r);
  font-size: 13.5px; color: var(--ink-2);
}
.lang-menu a:hover { background: var(--paper-2); color: var(--ink); }
.lang-menu a[aria-current="true"] { background: var(--brand-soft); color: var(--brand); font-weight: 600; }
.lang-menu small {
  font-family: var(--mono); font-size: 10.5px; letter-spacing: .06em;
  color: var(--faint); text-transform: uppercase;
}
.lang-menu a[aria-current="true"] small { color: var(--brand-2); }

/* 外语版品牌副标题比中文长得多（西语 353px、法语 313px），
   1240px 以下先让副标题退场，保证导航链接永远有位置、不折行 */
@media (max-width: 1240px) {
  .brand-txt span { display: none; }
}

@media (max-width: 1024px) {
  /* 窄屏里品牌 + 语言按钮挤在左侧，下拉改为向左边缘对齐、向右展开，
     否则右对齐会让菜单从屏幕左边溢出去 */
  .lang-menu { left: 0; right: auto; }
}

@media (max-width: 900px) {
  /* 窄屏保留语言代码（ES / FR / EN），它是这个按钮唯一的信息量 */
  .lang > summary .globe { display: none; }
  .lang > summary { padding: 0 10px; gap: 6px; }
}
@media (max-width: 760px) {
  .lang > summary { height: 34px; }
  .lang-menu { min-width: 164px; }
}
/* 320–420px：品牌 + 语言 + CTA 三者同排，按钮必须瘦身，否则 CTA 会被切掉 */
@media (max-width: 430px) {
  .nav-in { gap: 8px; }
  .nav-cta { padding: 0 11px; font-size: 12.5px; }
  .lang > summary { padding: 0 8px; gap: 5px; }
  .lang > summary .caret { display: none; }
  .brand { gap: 8px; }
  .brand-mark { width: 30px; height: 30px; font-size: 14px; }
}
/* 报告回传表单：两列姓名/联系方式在手机上挤成两半，改单列 */
@media (max-width: 560px) {
  .rs-grid { grid-template-columns: minmax(0,1fr); }
}
/* 答题页底部：上一题 / 提示 / 下一题，手机上把提示折到第二行 */
@media (max-width: 760px) {
  .q-nav { flex-wrap: wrap; gap: 12px; }
  .q-nav .q-tip { order: 3; flex: 1 0 100%; }
}

/* 大按钮在外语版里文案很长（「Commencer l'autodiagnostic」278px），窄屏必须瘦身 */
@media (max-width: 430px) {
  .btn-lg { padding: 0 18px; font-size: 14.5px; }
  .assess-cta .btn-lg { width: 100%; }
}

/* 360px 以下（iPhone SE 一代、小屏安卓）：只留字标，把空间让给「自测」按钮 */
@media (max-width: 360px) {
  .brand-txt { display: none; }
  .nav-cta { padding: 0 9px; font-size: 12px; }
}


/* 报告页网格子项默认 min-width:auto 会被长内容顶宽（西语/法语尤其明显） */
.score-hero > *,
.report-send > *,
.rs-grid > *,
.report-cta > *,
.dim-block > *,
.finding > *,
.path-item > *,
.prac-item > *,
.act > *,
.assess-cta-in > * { min-width: 0; }


/* ---------- 案例：文字主导的整块卡片 ---------- */
.study {
  background: var(--surface); border: 1px solid var(--line); border-radius: 12px;
  padding: 34px 38px 30px; margin-top: 22px;
}
.study:first-of-type { margin-top: 34px; }

.study-head {
  display: flex; flex-wrap: wrap; align-items: flex-start;
  justify-content: space-between; gap: 14px 40px;
}
.study-tags { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: baseline; }
.study-metrics { display: flex; gap: 32px; text-align: right; margin-left: auto; }
.study-metrics b { display: block; font-size: 19px; letter-spacing: -.02em; line-height: 1.1; }
.study-metrics span { display: block; margin-top: 3px; font-size: 11.5px; color: var(--muted); }

.study h3 {
  font-size: 23px; line-height: 1.34; letter-spacing: -.012em;
  margin: 12px 0 0; max-width: 36ch;
}
.study-lead {
  font-size: 14.5px; line-height: 1.78; color: var(--ink-2);
  margin: 14px 0 0; max-width: 62ch;
}
.study-points {
  list-style: none; margin: 22px 0 0; padding: 0;
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 44px;
}
.study-points li {
  padding: 11px 0; border-top: 1px solid var(--line);
  display: grid; gap: 3px; min-width: 0;
}
.study-points b { font-size: 13px; font-weight: 600; letter-spacing: .005em; }
.study-points span { font-size: 12.5px; line-height: 1.6; color: var(--muted); }

.study-shots {
  display: grid; grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px; margin-top: 24px;
}
.shot-btn {
  display: block; width: 100%; padding: 0; cursor: zoom-in; text-align: left;
  background: none; border: 0; min-width: 0;
}
.shot-btn img {
  display: block; width: 100%; height: auto; aspect-ratio: 16 / 10;
  object-fit: cover; object-position: top;
  border: 1px solid var(--line-2); border-radius: 6px; background: var(--paper-2);
  transition: border-color .16s;
}
.shot-btn:hover img { border-color: var(--ink-2); }
.shot-btn span {
  display: block; margin-top: 6px; font-size: 10.5px; color: var(--faint);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

/* 点小图看大图 */
.lb {
  position: fixed; inset: 0; z-index: 999; display: none;
  background: rgba(18,24,21,.72); padding: 40px 32px;
  align-items: center; justify-content: center;
}
.lb.on { display: flex; }
.lb img {
  max-width: min(1180px, 94vw); max-height: 84vh; width: auto; height: auto;
  border-radius: 8px; box-shadow: 0 30px 80px -30px rgba(0,0,0,.6);
}
.lb-cap {
  position: absolute; left: 0; right: 0; bottom: 18px; text-align: center;
  font-size: 12.5px; color: rgba(255,255,255,.72);
}

@media (max-width: 1080px) {
  .study { padding: 28px 26px 24px; }
  .study h3 { font-size: 21px; max-width: none; }
  .study-points { grid-template-columns: minmax(0, 1fr); gap: 0 0; }
  .study-shots { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .study { padding: 22px 18px 20px; border-radius: 10px; }
  .study h3 { font-size: 19px; }
  .study-lead { font-size: 13.5px; }
  .study-metrics { gap: 22px; }
  .study-metrics b { font-size: 17px; }
  .study-shots { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .lb { padding: 16px; }
}

/* ---------- 打印 ---------- */
@media print {
  @page { size: A4; margin: 14mm 12mm; }
  .nav, .foot, .q-nav, .report-cta, .hero-actions, .progress-wrap, .btn { display: none !important; }
  body { background: #fff; font-size: 11.5pt; }
  .section { padding: 24px 0; page-break-inside: avoid; }
  .card, .case, .prac-item, .score-hero { box-shadow: none !important; }
  .reveal { opacity: 1 !important; transform: none !important; }
  .wrap { padding: 0; }
  #v-report .wrap { page-break-inside: auto; }
  .score-hero, .dim-block, .finding, .path-item, .prac-item, .act, .report-cta { page-break-inside: avoid; }
  .path-item.is-done, .path-item.is-now { break-inside: avoid; }
  a[href]::after { content: ""; }
}

/* ---------- 动效 ---------- */
.reveal { opacity: 0; transform: translateY(18px); transition: opacity .6s ease, transform .6s cubic-bezier(.2,.8,.2,1); }
.reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
  html { scroll-behavior: auto; }
}
