/* YOUYI Guides & Insights V2 — structural template (pilot: WFOE guide)
   Master: approved "方案1优化版 Final Demo". Tokens come from inner-v2-base.css.
   Everything is scoped to main.gv; the global header/footer are untouched. */

/* The shared shell sets body{overflow-x:hidden}, which makes <body> a non-scrolling scroll container
   and silently disables position:sticky. Clip instead (same clipping, no scroll container) and keep
   the global header in normal flow exactly as it behaves today. */
body:has(> main.gv) {overflow-x:clip;}
body:has(> main.gv) > .yi-header {position:relative;}

.gv {
  --gv-bg:#fbfaf6;
  --gv-panel:#eef3f9;
  --gv-panel-line:#dbe5f0;
  --gv-card-line:#e3e8ef;
  --gv-champ:#b8935f;
  --gv-champ-2:#caa877;
  --gv-navy:#0b1e3a;
  --gv-ink:#0c2340;
  --gv-ink-2:#4f5f74;
  --gv-ink-3:#8492a6;
  --gv-wrap:1280px;
  --gv-gut:clamp(20px,4.4vw,80px);
  --gv-rail:clamp(200px,15.5vw,236px);
  --gv-gap:clamp(32px,3.6vw,56px);
  background:var(--gv-bg);
  color:var(--gv-ink);
}
.gv img {height:auto;}
.gv-hero-media img, .gv-cta-media img, .gv-sh-card img, .gv-related-card img {height:100%;}
.gv-sprite {position:absolute; width:0; height:0; overflow:hidden;}
.gv svg {fill:none; stroke:currentColor; stroke-width:1.35; stroke-linecap:round; stroke-linejoin:round;}
.gv-wrap {width:min(var(--gv-wrap), calc(100% - var(--gv-gut)*2)); margin-inline:auto;}
.gv h1, .gv h2, .gv h3 {font-family:var(--serif); color:var(--gv-ink); letter-spacing:-.012em;}
.gv h2 {font-size:clamp(28px,2.55vw,38px); font-weight:600; line-height:1.14;}
.gv p {color:var(--gv-ink-2);}
.gv a {transition:color .16s var(--ease), border-color .16s var(--ease);}
.gv-kicker {margin:0 0 10px; font-family:var(--sans); font-size:11px; font-weight:700; letter-spacing:.17em; text-transform:uppercase; color:var(--brand) !important;}
.gv-ch-num {display:flex; align-items:center; gap:14px; margin:0 0 14px; font-family:var(--serif); font-size:15px; font-weight:600; letter-spacing:.04em; color:var(--brand-deep) !important; font-variant-numeric:lining-nums; font-feature-settings:"lnum" 1;}
.gv-ch-num::after {content:""; width:44px; height:1px; background:var(--gv-champ);}
.gv-btn {display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:46px; padding:0 22px; font:600 13.5px/1.2 var(--sans); white-space:nowrap; border-radius:2px;}
.gv-btn svg {width:16px; height:16px; stroke-width:1.6; transition:transform .18s var(--ease);}
.gv-btn:hover svg {transform:translateX(3px);}
.gv-btn-navy {background:var(--brand-deep); color:#fff;}
.gv-btn-navy:hover {background:var(--gv-navy);}
.gv-btn-champ {background:var(--gv-champ); color:var(--gv-navy); min-height:52px; padding:0 28px;}
.gv-btn-champ:hover {background:var(--gv-champ-2);}
.gv a:focus-visible, .gv summary:focus-visible, .gv button:focus-visible {outline:2px solid var(--logo-blue); outline-offset:3px;}
.gv-mini-icon {display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; width:38px; height:38px; border-radius:50%; background:#fff; border:1px solid var(--gv-panel-line); color:var(--brand);}
.gv-mini-icon svg {width:19px; height:19px;}

/* ---------- Hero ---------- */
.gv-hero {position:relative; isolation:isolate; overflow:hidden; background:linear-gradient(180deg,#fdfcf9 0%,#f7f3ea 100%);}
.gv-hero-media {position:absolute; inset:0 0 0 auto; width:57%; z-index:-1;}
.gv-hero-media img {width:100%; height:100%; object-fit:cover; object-position:60% 50%;}
.gv-hero-media::after {content:""; position:absolute; inset:0; background:linear-gradient(90deg,#f9f6ef 0%,rgba(249,246,239,.86) 14%,rgba(249,246,239,.35) 30%,rgba(249,246,239,0) 46%);}
.gv-hero-inner {min-height:clamp(430px,36vw,540px); display:flex; flex-direction:column; padding:26px 0 clamp(46px,4.4vw,64px);}
.gv-crumb {display:flex; flex-wrap:wrap; align-items:center; gap:4px 8px; font-size:12px; color:var(--gv-ink-3);}
.gv-crumb a {color:var(--gv-ink-2); border-bottom:1px solid transparent;}
.gv-crumb a:hover {color:var(--brand); border-bottom-color:var(--brand);}
.gv-crumb svg {width:11px; height:11px; stroke-width:1.6; color:#a9b4c3;}
.gv-hero-copy {max-width:min(600px,46%); margin-top:auto; padding-top:clamp(28px,3vw,44px);}
.gv-eyebrow {display:flex; flex-wrap:wrap; align-items:center; gap:6px 12px; margin:0 0 18px; font-size:11px; font-weight:700; letter-spacing:.17em; text-transform:uppercase; color:var(--brand) !important;}
.gv-eyebrow-sep {width:22px; height:1px; background:var(--gv-champ);}
.gv-hero h1 {margin:0; font-size:clamp(40px,4.3vw,64px); font-weight:600; line-height:1.03; letter-spacing:-.022em;}
.gv-h1-sub {display:block; margin-top:14px; font-size:clamp(20px,1.75vw,26px); font-weight:500; line-height:1.3; letter-spacing:-.005em; color:#2c4466;}
.gv-lead {margin:22px 0 0; max-width:54ch; font-size:clamp(15px,1.12vw,16.5px); line-height:1.78;}
.gv-meta {display:flex; flex-wrap:wrap; gap:10px 22px; margin:26px 0 0; padding:0; list-style:none; font-size:12.5px; color:var(--gv-ink-3);}
.gv-meta li {display:inline-flex; align-items:center; gap:8px; padding-right:22px; border-right:1px solid #dcd6c9;}
.gv-meta li:last-child {border-right:0; padding-right:0;}
.gv-meta svg {width:16px; height:16px; color:var(--brand-deep);}

/* ---------- Rail + main ---------- */
.gv-layout {display:grid; grid-template-columns:var(--gv-rail) minmax(0,1fr); gap:var(--gv-gap); align-items:stretch; padding:clamp(40px,3.6vw,56px) 0 clamp(64px,5vw,88px);}
.gv-rail {display:flex; flex-direction:column; gap:36px; min-width:0;}
.gv-rail-sticky-zone {flex:1 1 auto;}
.gv-toc {position:sticky; top:28px;}
.gv .gv-toc-title {font-family:var(--sans); font-size:11.5px; font-weight:700; color:var(--gv-ink); line-height:1.3; letter-spacing:.17em;}
.gv-toc-title {position:relative; display:flex; align-items:center; justify-content:space-between; margin:0 0 20px; padding-left:18px; font-family:var(--sans); font-size:11.5px; font-weight:700; letter-spacing:.17em; text-transform:uppercase;}
.gv-toc-toggle {appearance:none; display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; padding:0; border:1px solid var(--gv-panel-line); border-radius:50%; background:#fff; color:var(--gv-ink); cursor:pointer;}
.gv-toc-toggle[hidden] {display:none;}
.gv-toc-toggle::before {content:""; position:absolute; inset:0;}
.gv-toc-toggle svg {width:15px; height:15px; transform:rotate(90deg); transition:transform .2s var(--ease);}
.gv-toc-toggle[aria-expanded="true"] svg {transform:rotate(-90deg);}
.gv-toc-list {position:relative; margin:0; padding:0; list-style:none; display:grid; gap:4px;}
.gv-toc-list::before {content:""; position:absolute; left:4px; top:10px; bottom:10px; width:1px; background:#d7dfe8;}
.gv-toc-list li {position:relative;}
.gv-toc-list li::before {content:""; position:absolute; left:0; top:11px; width:9px; height:9px; border-radius:50%; background:var(--gv-bg); border:1px solid #b7c4d3; transition:all .2s var(--ease);}
.gv-toc-list a {display:grid; gap:2px; padding:6px 0 10px 24px; font-size:13.4px; line-height:1.42; color:var(--gv-ink-2);}
.gv-toc-list a:hover {color:var(--brand-deep);}
.gv-toc-num {font-family:var(--serif); font-size:12.5px; font-weight:600; color:var(--brand); font-variant-numeric:lining-nums; font-feature-settings:"lnum" 1;}
.gv-toc-list li.is-current::before {background:var(--gv-champ); border-color:var(--gv-champ); box-shadow:0 0 0 4px rgba(184,147,95,.2);}
.gv-toc-list li.is-current a {color:var(--gv-ink); font-weight:600;}
.gv-toc-sub {display:grid; gap:2px; margin-top:22px; padding-top:18px; border-top:1px solid #dfe5ec;}
.gv-toc-sub a {display:flex; align-items:center; gap:12px; min-height:36px; font-size:13px; color:var(--gv-ink-2);}
.gv-toc-sub a:hover {color:var(--brand-deep);}
.gv-toc-sub svg {width:17px; height:17px; color:var(--brand); flex:0 0 auto;}
.gv-rail-card {background:#fff; border:1px solid var(--gv-card-line); box-shadow:0 20px 40px -34px rgba(11,30,58,.55);}
.gv-rail-card img {width:100%; aspect-ratio:16/10; object-fit:cover;}
.gv-rail-card-body {padding:20px 18px 22px;}
.gv-rail-card-title {margin:0 0 16px; font-family:var(--serif); font-size:19px; font-weight:600; line-height:1.25; color:var(--gv-ink) !important;}
.gv-rail-card .gv-btn {width:100%; min-height:44px; padding:0 14px; font-size:12.5px; white-space:normal; text-align:left; justify-content:space-between;}
.gv-main {min-width:0;}

/* ---------- Key Takeaway ---------- */
.gv-kt {position:relative; display:grid; grid-template-columns:auto minmax(0,1fr) clamp(170px,22%,250px); gap:0 26px; align-items:center; padding:clamp(30px,3vw,42px) clamp(26px,3vw,44px); background:var(--gv-panel); border:1px solid var(--gv-panel-line); overflow:hidden;}
.gv-kt-badge {align-self:start; display:inline-flex; align-items:center; justify-content:center; width:54px; height:54px; border-radius:50%; background:#fff; border:1px solid #e6d9c2; color:var(--gv-champ); box-shadow:0 8px 20px -14px rgba(11,42,82,.5);}
.gv-kt-badge svg {width:24px; height:24px;}
.gv-kt h3 {margin:2px 0 0; font-size:clamp(24px,2.2vw,32px); font-weight:600; line-height:1.18;}
.gv-kt-body p:not(.gv-kicker) {margin:14px 0 0; font-size:15.5px; line-height:1.8; max-width:66ch;}
.gv-kt strong {color:var(--gv-ink); font-weight:600;}
.gv-kt-rule {display:block; width:64px; height:2px; margin-top:22px; background:var(--gv-champ);}
.gv-kt-art {width:100%; height:auto; color:#9fb4cb; align-self:end;}

/* ---------- Chapters ---------- */
.gv-article {display:grid;}
.gv-ch {padding-top:clamp(52px,4.6vw,72px); scroll-margin-top:24px;}
.gv-ch h2 {margin:0;}
.gv-ch-grid {display:grid; grid-template-columns:minmax(0,1.55fr) minmax(0,1fr); gap:clamp(28px,3.4vw,56px); align-items:start;}
.gv-ch-main > p {margin:16px 0 0; font-size:15.5px; line-height:1.82; max-width:66ch;}
.gv-ch-main a, .gv-info-card a, .gv-sh-card a, .gv-footnote a {color:var(--brand); border-bottom:1px solid rgba(31,95,168,.3);}
.gv-ch-main a:hover, .gv-info-card a:hover, .gv-sh-card a:hover, .gv-footnote a:hover {border-bottom-color:var(--brand);}
.gv-ch-side {display:grid; gap:14px; padding-top:6px;}
.gv-mini-card {display:grid; grid-template-columns:auto minmax(0,1fr); gap:6px 14px; padding:20px; background:#fff; border:1px solid var(--gv-card-line);}
.gv-mini-card .gv-mini-icon {grid-row:span 2;}
.gv-mini-card h3, .gv-info-card h3 {margin:0; font-size:17px; font-weight:600; line-height:1.3;}
.gv-mini-card h3 {align-self:center;}
.gv-mini-card ul, .gv-info-card ul, .gv-doc-body ul, .gv-sh-body ul {margin:0; padding:0; list-style:none; display:grid; gap:8px;}
.gv-mini-card li, .gv-info-card li {position:relative; padding-left:16px; font-size:13.8px; line-height:1.55; color:var(--gv-ink-2);}
.gv-mini-card li::before, .gv-info-card li::before, .gv-sh-body li::before {content:""; position:absolute; left:0; top:.62em; width:6px; height:6px; border-radius:50%; background:var(--gv-champ);}
.gv-checks {margin:20px 0 4px; padding:0; list-style:none; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 28px; max-width:none;}
.gv-checks li {position:relative; padding:0 0 0 30px; font-size:14.5px; line-height:1.6; color:var(--gv-ink-2);}
.gv-checks li::before {content:""; position:absolute; left:0; top:2px; width:19px; height:19px; border-radius:50%; border:1px solid var(--gv-champ); background:no-repeat center/11px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%23b8935f' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m2.5 6.2 2.3 2.3 4.7-5'/%3E%3C/svg%3E");}
.gv-checks strong {color:var(--gv-ink); font-weight:600;}
.gv-quote {position:relative; margin:0; padding:6px 0 0 26px; border-left:1px solid var(--gv-champ);}
.gv-quote-mark {display:block; width:44px; height:36px; margin-bottom:14px; fill:#dcc6a0 !important; stroke:none !important;}
.gv-quote blockquote {margin:0;}
.gv-quote blockquote p {margin:0; font-family:var(--serif); font-style:italic; font-size:clamp(19px,1.6vw,23px); line-height:1.5; color:var(--gv-ink);}
.gv-quote-label {display:block; margin-bottom:8px; font:700 11px/1.4 var(--sans); font-style:normal; letter-spacing:.16em; text-transform:uppercase; color:var(--gv-champ);}
.gv-quote figcaption {margin-top:16px; font-family:var(--serif); font-style:italic; font-size:14px; color:var(--gv-ink-3);}
.gv-info-row {display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin-top:26px;}
.gv-info-card {display:flex; flex-direction:column; gap:14px; padding:24px 22px 24px; background:#fff; border:1px solid var(--gv-card-line); border-top:2px solid var(--gv-champ);}
.gv-info-card:nth-child(2) {border-top-color:var(--brand);}
.gv-info-card:nth-child(3) {border-top-color:var(--brand-deep);}
.gv-info-card p {margin:0; font-size:13.8px; line-height:1.65;}

/* ---------- Process timeline ---------- */
.gv-process {padding:clamp(30px,3vw,44px) clamp(24px,3vw,44px) clamp(32px,3.2vw,46px); background:var(--gv-panel); border:1px solid var(--gv-panel-line);}
.gv-process-head {max-width:70ch;}
.gv-process-head p:not(.gv-kicker) {margin:14px 0 0; font-size:15px; line-height:1.75;}
.gv-steps {display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); margin:34px 0 0; padding:0; list-style:none;}
.gv-steps li {position:relative; display:flex; flex-direction:column; align-items:flex-start; padding-right:14px;}
.gv-steps li:not(:last-child)::after {content:""; position:absolute; top:28px; left:70px; right:14px; height:1px; background:linear-gradient(90deg,#bccbdc,#bccbdc) no-repeat left/calc(100% - 8px) 1px;}
.gv-steps li:not(:last-child)::before {content:""; position:absolute; top:24px; right:15px; width:8px; height:8px; border-top:1px solid #9fb2c8; border-right:1px solid #9fb2c8; transform:rotate(45deg);}
.gv-step-icon {display:inline-flex; align-items:center; justify-content:center; width:56px; height:56px; border-radius:50%; background:#fff; border:1px solid #c6d4e3; color:var(--brand-deep); box-shadow:0 10px 22px -16px rgba(11,42,82,.55);}
.gv-step-icon svg {width:24px; height:24px;}
.gv-step-num {margin-top:18px; font-family:var(--serif); font-size:14px; font-weight:600; color:var(--gv-champ); font-variant-numeric:lining-nums; font-feature-settings:"lnum" 1;}
.gv-step-title {margin-top:6px; font-family:var(--serif); font-size:clamp(14.5px,1.12vw,16.5px); font-weight:600; line-height:1.34; color:var(--gv-ink);}

/* ---------- Documents cards ---------- */
.gv-sec-head {display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:14px 40px; align-items:end;}
.gv-sec-head p {margin:0; font-size:14px; line-height:1.7; text-align:right; justify-self:end; max-width:46ch;}
.gv-doc-cards {display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:14px; margin-top:28px;}
.gv-doc-card {display:flex; flex-direction:column; background:#fff; border:1px solid var(--gv-card-line); box-shadow:0 18px 36px -34px rgba(11,30,58,.6); transition:box-shadow .2s var(--ease), transform .2s var(--ease);}
.gv-doc-card:hover {box-shadow:0 24px 44px -30px rgba(11,30,58,.5); transform:translateY(-2px);}
.gv-doc-card img {width:100%; aspect-ratio:4/3; object-fit:cover;}
.gv-doc-body {padding:16px 16px 20px;}
.gv-card-num {display:block; font-family:var(--serif); font-size:13px; font-weight:600; color:var(--gv-champ); font-variant-numeric:lining-nums; font-feature-settings:"lnum" 1;}
.gv-doc-body h3 {margin:6px 0 10px; font-size:17px; font-weight:600; line-height:1.25;}
.gv-doc-body li {font-size:13px; line-height:1.55; color:var(--gv-ink-2);}
.gv-doc-body li strong {font-weight:500; color:var(--gv-ink-2);}
.gv-ask {display:flex; align-items:flex-start; gap:16px; margin-top:22px; padding:18px 22px; background:#fff; border:1px solid var(--gv-card-line); border-left:2px solid var(--gv-champ);}
.gv-ask-icon {color:var(--gv-champ); flex:0 0 auto;}
.gv-ask-icon svg {width:22px; height:22px;}
.gv-ask p {margin:0; font-size:14.5px; line-height:1.7;}
.gv-ask strong {color:var(--gv-ink);}

/* ---------- Full-width bands ---------- */
.gv-band {padding:clamp(60px,5.4vw,88px) 0; border-top:1px solid #ebe5d8; scroll-margin-top:0;}
.gv-shanghai {background:#fff;}
.gv-sh-cards {display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin-top:30px;}
.gv-sh-card {display:grid; grid-template-columns:minmax(0,.62fr) minmax(0,1.38fr); align-items:stretch; background:#fff; border:1px solid var(--gv-card-line); box-shadow:0 18px 36px -34px rgba(11,30,58,.6); min-height:100%;}
.gv-sh-card img {width:100%; height:100%; min-height:220px; object-fit:cover;}
.gv-sh-body {padding:22px 20px 22px;}
.gv-sh-body h3 {display:flex; align-items:center; gap:12px; margin:0 0 16px; font-size:18px; font-weight:600; line-height:1.25;}
.gv-sh-body .gv-mini-icon {width:34px; height:34px;}
.gv-sh-body .gv-mini-icon svg {width:17px; height:17px;}
.gv-sh-body li {position:relative; padding-left:16px; font-size:13.4px; line-height:1.58; color:var(--gv-ink-2);}
.gv-sh-body li strong {color:var(--gv-ink); font-weight:600;}
.gv-footnote {margin:20px 0 0; font-size:13px; color:var(--gv-ink-3) !important;}
.gv-mistakes {background:var(--gv-bg);}
.gv-mistakes h2 {margin:0;}
.gv-mistake-grid {display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin:28px 0 0; padding:0; list-style:none;}
.gv-mistake-grid li {display:flex; align-items:flex-start; gap:14px; padding:20px 20px; background:#fff; border:1px solid var(--gv-card-line); font-size:14.5px; line-height:1.6; color:var(--gv-ink-2);}
.gv-mistake-grid svg {width:22px; height:22px; flex:0 0 auto; color:var(--gv-champ); margin-top:1px;}
.gv-about {background:#f4f0e7;}
.gv-about h2 {margin:0;}
.gv-about-grid {display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; margin-top:30px; border-top:1px solid #ddd5c5;}
.gv-about-item {padding:22px 24px 4px 0;}
.gv-about-item + .gv-about-item {padding-left:24px; border-left:1px solid #ddd5c5;}
.gv-about-item h3 {margin:0 0 8px; font-size:17px; font-weight:600;}
.gv-about-item p {margin:0; font-size:13.8px; line-height:1.65;}

/* ---------- FAQ ---------- */
.gv-faq {background:#fff;}
.gv-faq-head {display:flex; flex-direction:column;}
.gv-rule {display:block; width:44px; height:1px; margin:0 0 18px; background:var(--gv-champ);}
.gv-faq-grid {display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:12px 22px; margin-top:28px;}
.gv-faq details {background:#fff; border:1px solid var(--gv-card-line); transition:border-color .18s var(--ease), box-shadow .18s var(--ease);}
.gv-faq details:hover {border-color:#c7d5e4;}
.gv-faq details[open] {border-color:#c7d5e4; box-shadow:0 18px 36px -32px rgba(11,30,58,.55);}
.gv-faq summary {display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:14px; min-height:60px; padding:14px 20px; cursor:pointer; list-style:none;}
.gv-faq summary::-webkit-details-marker {display:none;}
.gv-faq-n {font-family:var(--serif); font-size:14px; font-weight:600; color:var(--gv-champ); font-variant-numeric:lining-nums; font-feature-settings:"lnum" 1; min-width:18px;}
.gv-faq-q {font-size:14.6px; font-weight:600; line-height:1.45; color:var(--gv-ink);}
.gv-faq-plus {position:relative; width:14px; height:14px;}
.gv-faq-plus::before, .gv-faq-plus::after {content:""; position:absolute; background:var(--gv-champ); transition:transform .2s var(--ease);}
.gv-faq-plus::before {left:0; right:0; top:6.5px; height:1.3px;}
.gv-faq-plus::after {top:0; bottom:0; left:6.5px; width:1.3px;}
.gv-faq details[open] .gv-faq-plus::after {transform:scaleY(0);}
.gv-faq details p {margin:0; padding:0 22px 20px 52px; font-size:14.5px; line-height:1.75;}

/* ---------- Related ---------- */
.gv-related {background:var(--gv-bg);}
.gv-related h2 {margin:0;}
.gv-related-grid {display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-top:28px; max-width:980px;}
.gv-related-card {display:grid; grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr); background:#fff; border:1px solid var(--gv-card-line); transition:box-shadow .2s var(--ease), border-color .2s var(--ease);}
.gv-related-card:hover {border-color:#c7d5e4; box-shadow:0 22px 44px -34px rgba(11,30,58,.55);}
.gv-related-card img {width:100%; height:100%; min-height:150px; object-fit:cover;}
.gv-related-body {position:relative; display:block; padding:22px 22px 44px;}
.gv-related-body h3 {margin:0 0 8px; font-size:18px; font-weight:600;}
.gv-related-body p {margin:0; font-size:13.8px; line-height:1.6;}
.gv-related-go {position:absolute; left:22px; bottom:16px; color:var(--brand);}
.gv-related-go svg {width:18px; height:18px;}

/* ---------- CTA ---------- */
.gv-cta {position:relative; isolation:isolate; overflow:hidden; background:var(--gv-navy); color:#fff;}
.gv-cta-media {position:absolute; inset:0 0 0 auto; width:48%; z-index:-1;}
.gv-cta-media img {width:100%; height:100%; object-fit:cover; opacity:.55; filter:saturate(.6) brightness(.8);}
.gv-cta-media::after {content:""; position:absolute; inset:0; background:linear-gradient(90deg,var(--gv-navy) 0%,rgba(11,30,58,.82) 30%,rgba(11,30,58,.45) 100%);}
.gv-cta-inner {display:grid; grid-template-columns:minmax(0,1fr) auto; gap:26px 48px; align-items:center; padding:clamp(52px,4.8vw,76px) 0;}
.gv-cta-kicker {display:flex; align-items:center; gap:18px; margin:0 0 14px; font:700 11px/1.4 var(--sans); letter-spacing:.17em; text-transform:uppercase; color:#e0c89f !important;}
.gv-cta-kicker::before {content:""; width:64px; height:1px; background:var(--gv-champ);}
.gv-cta h2 {margin:0; color:#fff; font-size:clamp(28px,2.6vw,38px); max-width:22ch;}
.gv-cta p:not(.gv-cta-kicker) {margin:12px 0 0; max-width:58ch; color:#c3d2e2; font-size:15px; line-height:1.75;}
.gv-cta .gv-btn:focus-visible {outline-color:#fff;}

/* ---------- Responsive ---------- */
@media (max-width:1240px) {
  .gv-ch-grid {grid-template-columns:minmax(0,1fr);}
  .gv-ch-side {grid-template-columns:repeat(2,minmax(0,1fr)); padding-top:10px;}
  .gv-ch-side:has(.gv-quote) {grid-template-columns:minmax(0,1fr); max-width:620px;}
  .gv-doc-cards {grid-template-columns:repeat(3,minmax(0,1fr));}
  .gv-steps {grid-template-columns:repeat(3,minmax(0,1fr)); row-gap:30px;}
  .gv-steps li:nth-child(3)::after, .gv-steps li:nth-child(3)::before {display:none;}
  .gv-sh-cards {grid-template-columns:minmax(0,1fr);}
  .gv-sh-card {grid-template-columns:minmax(0,.55fr) minmax(0,1.45fr);}
  .gv-kt {grid-template-columns:auto minmax(0,1fr);}
  .gv-kt-art {display:none;}
}
@media (max-width:960px) {
  .gv-layout {grid-template-columns:minmax(0,1fr); gap:28px; padding-top:28px;}
  .gv-rail {gap:0;}
  .gv-rail-card {display:none;}
  .gv-toc {position:static; background:#fff; border:1px solid var(--gv-panel-line); box-shadow:0 14px 30px -28px rgba(11,30,58,.55);}
  .gv-toc-title {margin:0; min-height:56px; padding:0 14px 0 18px;}
  .gv-toc-panel {padding:6px 18px 16px; border-top:1px solid var(--gv-panel-line);}
  .gv-toc-panel[data-collapsed] {display:none;}
  .gv-toc-list {padding-top:8px;}
  .gv-toc-list::before {top:18px;}
  .gv-toc-list li::before {top:17px;}
  .gv-toc-list a {grid-template-columns:28px minmax(0,1fr); align-items:baseline; min-height:44px; padding:10px 0 8px 24px;}
  .gv-toc-sub a {min-height:44px;}
  .gv-hero-media {position:relative; inset:auto; width:100%; height:clamp(220px,46vw,340px); z-index:0; order:2;}
  .gv-hero-media::after {background:linear-gradient(180deg,#f9f6ef 0%,rgba(249,246,239,0) 22%);}
  .gv-hero {display:flex; flex-direction:column;}
  .gv-hero-inner {min-height:0; padding:18px 0 26px;}
  .gv-hero-copy {max-width:none; padding-top:22px;}
  .gv-sec-head {grid-template-columns:minmax(0,1fr);}
  .gv-sec-head p {text-align:left; justify-self:start;}
  .gv-info-row {grid-template-columns:minmax(0,1fr);}
  .gv-mistake-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
  .gv-about-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
  .gv-about-item:nth-child(3) {padding-left:0; border-left:0;}
  .gv-faq-grid {grid-template-columns:minmax(0,1fr);}
  .gv-related-grid {grid-template-columns:minmax(0,1fr);}
  .gv-cta-inner {grid-template-columns:minmax(0,1fr);}
  .gv-cta-media {width:100%; opacity:.6;}
}
@media (max-width:640px) {
  .gv {--gv-gut:20px;}
  .gv-hero h1 {font-size:clamp(34px,9.6vw,42px);}
  .gv-h1-sub {font-size:19px;}
  .gv-meta {gap:10px 16px;}
  .gv-meta li {border-right:0; padding-right:0;}
  .gv-kt {grid-template-columns:minmax(0,1fr); gap:16px; padding:26px 20px;}
  .gv-ch-side {grid-template-columns:minmax(0,1fr);}
  .gv-checks {grid-template-columns:minmax(0,1fr);}
  .gv-doc-cards {grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px;}
  .gv-doc-card:last-child {grid-column:1 / -1;}
  .gv-doc-card:last-child img {aspect-ratio:16/8;}
  .gv-doc-body {padding:14px 14px 16px;}
  .gv-doc-body h3 {font-size:16px;}
  .gv-steps {grid-template-columns:minmax(0,1fr); row-gap:0; margin-top:26px;}
  .gv-steps li {display:grid; grid-template-columns:56px minmax(0,1fr); column-gap:16px; padding:0 0 22px;}
  .gv-steps li:last-child {padding-bottom:0;}
  .gv-steps li .gv-step-icon {grid-row:span 2;}
  .gv-steps li .gv-step-num {margin-top:6px;}
  .gv-steps li:not(:last-child)::before {display:none;}
  .gv-steps li:not(:last-child)::after, .gv-steps li:nth-child(3)::after {display:block; top:60px; bottom:4px; left:28px; right:auto; width:1px; height:auto; background:#bccbdc;}
  .gv-process {padding:26px 20px;}
  .gv-sh-card {grid-template-columns:minmax(0,1fr);}
  .gv-sh-card img {min-height:0; aspect-ratio:16/9;}
  .gv-mistake-grid {grid-template-columns:minmax(0,1fr);}
  .gv-about-grid {grid-template-columns:minmax(0,1fr);}
  .gv-about-item, .gv-about-item + .gv-about-item {padding:18px 0 4px; border-left:0; border-bottom:1px solid #ddd5c5;}
  .gv-faq summary {padding:14px 16px; gap:12px;}
  .gv-faq details p {padding:0 16px 18px 46px;}
  .gv-related-card {grid-template-columns:minmax(0,1fr);}
  .gv-related-card img {aspect-ratio:16/9; min-height:0;}
  .gv-btn-champ {width:100%; white-space:normal;}
}
@media (prefers-reduced-motion:reduce) {.gv *, .gv *::before, .gv *::after {transition:none !important;}}
.gv-sh-card:nth-child(2) img {object-position:22% 50%;}
.gv-sh-card:nth-child(3) img {object-position:40% 50%;}

/* ================= Final polish (master freeze candidate) ================= */
/* Rhythm scale: one step between chapters, a larger step around feature modules and bands */
.gv {--gv-step:clamp(64px,5.6vw,88px); --gv-step-lg:clamp(80px,7vw,112px);}

/* Hero: lighter, more whitespace */
.gv-hero-inner {min-height:clamp(400px,33vw,500px); padding-bottom:clamp(52px,5vw,76px);}
.gv-hero-copy {max-width:min(560px,44%);}
.gv-hero h1 {font-size:clamp(40px,4vw,60px);}
.gv-h1-sub {margin-top:16px;}
.gv-lead {margin-top:22px; max-width:40ch; font-size:clamp(15.5px,1.2vw,17.5px); line-height:1.7; color:var(--gv-ink-2);}
.gv-meta {margin-top:30px;}

/* Scope strip (moved from the hero lead) */
.gv-scope {display:flex; flex-wrap:wrap; align-items:center; gap:12px 18px; margin:0 0 28px; padding:0 0 26px; border-bottom:1px solid #e6e0d3;}
.gv-scope .gv-kicker {margin:0; flex:0 0 auto; color:var(--gv-ink-3) !important;}
.gv-scope ul {display:flex; flex-wrap:wrap; gap:8px; margin:0; padding:0; list-style:none;}
.gv-scope li {padding:6px 12px; border:1px solid #dfe6ee; border-radius:999px; background:#fff; font-size:12.8px; line-height:1.3; color:var(--gv-ink-2);}
.gv-scope li::first-letter {text-transform:uppercase;}

/* Chapter pacing */
.gv-ch {padding-top:var(--gv-step);}
.gv-article > .gv-ch:first-child {padding-top:clamp(56px,5vw,76px);}
.gv-ch-process, .gv-ch-process + .gv-ch {padding-top:var(--gv-step-lg);}
.gv-band {padding:var(--gv-step-lg) 0;}
.gv-layout {padding-bottom:var(--gv-step-lg);}
.gv-ch h2 + p, .gv-ch-main h2 + p {margin-top:18px;}
.gv-ch-main > p {max-width:62ch;}
.gv-standfirst {font-size:clamp(17px,1.35vw,19px) !important; line-height:1.7 !important; color:var(--gv-ink) !important;}

/* Editorial callout */
.gv-callout {display:flex; gap:14px; align-items:flex-start; margin-top:22px; padding:16px 20px; max-width:62ch; background:#fff; border:1px solid var(--gv-card-line); border-left:2px solid var(--gv-champ);}
.gv-callout-icon {color:var(--gv-champ); flex:0 0 auto; margin-top:2px;}
.gv-callout-icon svg {width:20px; height:20px;}
.gv-callout p {margin:0; font-size:14.5px; line-height:1.7;}

/* Two-column checklist in its own quiet panel */
.gv-checks {margin:22px 0 8px; padding:24px 26px; background:#fff; border:1px solid var(--gv-card-line); gap:14px 32px;}

/* Compact decision panel */
.gv-decision {margin-top:26px; background:var(--gv-panel); border:1px solid var(--gv-panel-line);}
.gv-decision-title {margin:0; padding:16px 24px; font-family:var(--serif); font-size:18px; font-weight:600; color:var(--gv-ink) !important; border-bottom:1px solid var(--gv-panel-line);}
.gv-decision-rows {display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin:0; padding:0; list-style:none;}
.gv-decision-rows li {display:flex; flex-direction:column; gap:12px; padding:20px 22px 22px;}
.gv-decision-rows li + li {border-left:1px solid var(--gv-panel-line);}
.gv-decision-icon {display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:50%; background:#fff; border:1px solid var(--gv-panel-line); color:var(--brand);}
.gv-decision-icon svg {width:17px; height:17px;}
.gv-decision-rows p {margin:0; font-size:14px; line-height:1.65;}

/* Info cards: shorter groups */
.gv-info-card p + p {margin-top:10px;}
.gv-card-note {padding-top:10px; border-top:1px solid #edf0f4; font-size:13.2px !important; color:var(--gv-ink-3) !important; font-style:italic;}

/* Documents: subgrid so image, number, title and list align across every card */
.gv-doc-cards {grid-auto-rows:auto; row-gap:18px; align-items:stretch;}
.gv-doc-card {display:grid; grid-row:span 4; grid-template-rows:subgrid; row-gap:0;}
.gv-doc-body {display:contents;}
.gv-doc-card img {aspect-ratio:4/3; height:auto; object-fit:cover; object-position:center;}
.gv-doc-card .gv-card-num {padding:18px 18px 0;}
.gv-doc-card h3 {margin:6px 0 0; padding:0 18px; align-self:start;}
.gv-doc-card ul {padding:12px 18px 22px; align-self:start;}
.gv-doc-card ul li + li {padding-top:8px; border-top:1px solid #f0f2f5;}

/* Shanghai Notes: compact 2x2, fixed image ratio, equal heights */
.gv-sh-cards {grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px;}
.gv-sh-card {grid-template-columns:minmax(0,38%) minmax(0,1fr); min-height:0;}
.gv-sh-card img {height:100%; min-height:0; aspect-ratio:auto; object-fit:cover;}
.gv-sh-card:nth-child(1) img {object-position:70% 50%;}
.gv-sh-card:nth-child(2) img {object-position:55% 50%;}
.gv-sh-card:nth-child(3) img {object-position:25% 50%;}
.gv-sh-card:nth-child(4) img {object-position:40% 50%;}
.gv-sh-body {padding:20px 22px 20px;}
.gv-sh-body h3 {margin-bottom:12px; font-size:17px;}
.gv-sh-body ul {gap:10px;}

@media (max-width:1240px) {
  .gv-decision-rows {grid-template-columns:minmax(0,1fr);}
  .gv-decision-rows li {flex-direction:row; align-items:flex-start; padding:16px 22px;}
  .gv-decision-rows li + li {border-left:0; border-top:1px solid var(--gv-panel-line);}
  .gv-doc-cards {grid-template-columns:repeat(3,minmax(0,1fr));}
  .gv-sh-cards {grid-template-columns:repeat(2,minmax(0,1fr));}
  .gv-sh-card {grid-template-columns:minmax(0,1fr); grid-template-rows:auto 1fr;}
  .gv-sh-card img {aspect-ratio:16/8; height:auto;}
}
@media (max-width:960px) {
  .gv-hero-copy {max-width:none;}
  .gv-lead {max-width:none;}
}
@media (max-width:640px) {
  .gv {--gv-step:56px; --gv-step-lg:64px;}
  .gv-scope {gap:10px;}
  .gv-scope li {font-size:12.4px;}
  .gv-checks {grid-template-columns:minmax(0,1fr); padding:20px;}
  .gv-decision-title {padding:14px 18px;}
  .gv-decision-rows li {padding:14px 18px;}
  .gv-doc-cards {grid-template-columns:repeat(2,minmax(0,1fr));}
  .gv-doc-card:last-child {grid-column:1 / -1;}
  .gv-doc-card .gv-card-num {padding:14px 14px 0;}
  .gv-doc-card h3 {padding:0 14px;}
  .gv-doc-card ul {padding:10px 14px 16px;}
  .gv-sh-cards {grid-template-columns:minmax(0,1fr); gap:14px;}
  .gv-sh-card {grid-template-columns:minmax(0,34%) minmax(0,1fr); grid-template-rows:none;}
  .gv-sh-card img {aspect-ratio:auto; height:100%;}
  .gv-sh-body {padding:16px;}
  .gv-sh-body h3 {font-size:16px; gap:10px;}
  .gv-sh-body .gv-mini-icon {display:none;}
}
/* decision panel: stacked rows (the chapter text column is too narrow for three columns) */
.gv-decision-rows {grid-template-columns:minmax(0,1fr);}
.gv-decision-rows li {flex-direction:row; align-items:flex-start; gap:16px; padding:16px 24px;}
.gv-decision-rows li + li {border-left:0; border-top:1px solid var(--gv-panel-line);}
.gv-decision-rows p {padding-top:6px; font-size:14.5px;}
