/* Shared across the public site, sign-in forms and authenticated account pages. */
@font-face {
  font-family: 'Gewu Editorial';
  src: url('/static/assets/fonts/gewu-editorial-500.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
:root {
  color-scheme: light;
  --paper: #faf9f6;
  --white: #ffffff;
  --ink: #0e1b2e;
  --muted: #64686d;
  --red: #c43a2e;
  --red-hover: #a82e24;
  --red-soft: #fbefed;
  --line: #deddd8;
  --soft: #f1f0ec;
  --field: #fdfcf9;
  --on-ink: #f7f7f4;
  --inverse-muted: #c3c8cd;
  --inverse-line: #ffffff33;
  --inverse-soft: #ffffff08;
  --control-radius: 2px;
  --surface-radius: 4px;
  --shadow-soft: 0 12px 32px #0e1b2e08;
  --serif: 'Gewu Editorial', 'Songti SC', 'STSong', 'SimSun', 'Noto Serif CJK SC', serif;
  --sans: Plex, 'PingFang SC', 'Microsoft YaHei', sans-serif;
  --mono: PlexMono, monospace;
  --width: 1280px;
  --display: var(--serif);
  --title-hero: clamp(42px, 4.6vw, 64px);
  --title-page: 48px;
  --title-section: 32px;
  --title-card: 24px;
  --space-section: 56px;
}

/* Canonical surfaces, type and states. Loaded after page composition styles. */
/* Product screenshots stand on their own; only essential context stays below. */
.product-media { min-width: 0; padding: 0; background: transparent; border: 0; border-radius: 0; }
.product-hero-media { max-width: none; margin-inline: 0; }
.product-media .screenshot-button { display: block; width: 100%; padding: 0; border: 0; border-radius: 0; max-height: none; background: transparent; box-shadow: none; }
.product-media .screenshot-button:not(.focus-window) img { display: block; width: 100%; height: auto; max-height: none; object-fit: initial; }
.product-media-notes { display: flex; justify-content: space-between; align-items: baseline; gap: 20px; margin-top: 12px; }
.product-media-caption { margin: 0; padding: 0; font-size: 12px; line-height: 1.8; color: var(--muted); }
.media-view-hint { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; font-size: 12px; line-height: 1.8; color: var(--muted); }
.media-view-hint .icon { width: 12px; height: 12px; }
.product-promise h2 > span { display: block; text-wrap: balance; }
.product-basis > div { gap: 56px; }
.workflow-grid article { padding-block: 22px 0; }
.image-dialog[open] { display: flex; flex-direction: column; width: min(1400px, 96vw); max-width: 96vw; max-height: 94dvh; padding: 0; }
.dialog-bar { flex: none; min-height: 64px; }
.dialog-bar > p { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; }
.dialog-tools { display: flex; align-items: center; gap: 12px; flex: none; }
.image-zoom { min-height: 44px; padding: 8px 12px; background: transparent; color: var(--on-ink); border: 1px solid var(--inverse-line); border-radius: var(--control-radius); font-size: 14px; }
.image-zoom:hover { background: var(--inverse-soft); }
.image-dialog-body { overflow: auto; max-height: calc(94dvh - 64px); padding: 0; overscroll-behavior: contain; scrollbar-color: var(--muted) var(--ink); }
.image-dialog-body img { display: block; width: auto; max-width: 100%; max-height: calc(94dvh - 64px); height: auto; margin: auto; object-fit: contain; }
.image-dialog[data-zoomed=true] .image-dialog-body img { width: auto; max-width: none; max-height: none; margin: 0; }
.folio-insight { padding: 22px 0 0; border: 0; }
.folio-actions [data-home-primary-icon] { display: inline-flex; }
.ui-tabs { display: flex; gap: 24px; margin: 0 0 18px; padding: 0; background: transparent; border-bottom: 1px solid var(--line); overflow-x: auto; }
.ui-tabs button { position: relative; flex: 0 0 auto; display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 10px 0 13px; background: transparent; border: 0; color: var(--muted); font-size: 14px; white-space: nowrap; }
.ui-tabs button[aria-selected=true] { color: var(--red); background: transparent; }
.ui-tabs button::after { content: ''; position: absolute; inset: auto 0 0; height: 2px; background: transparent; }
.ui-tabs button[aria-selected=true]::after { background: var(--red); }
.ui-tabs button:focus-visible { outline-offset: -3px; }
.ui-tabs .mono { font-size: 12px; }
.ui-segmented button[aria-pressed=true] { color: var(--red); background: var(--red-soft); box-shadow: inset 0 -2px var(--red); }
.auth-tabs a[aria-current] { color: var(--red); }
.account-sidebar nav a[aria-current] { box-shadow: inset 2px 0 var(--red); }
.folio-intro h1, .product-name h1 { font: 500 var(--title-hero)/1.35 var(--serif); letter-spacing: -.035em; }
.page-intro h1 { font: 500 var(--title-page)/1.4 var(--serif); letter-spacing: -.025em; }
.folio-section-head h2, .section-heading h2, .product-edition ~ .section .section-heading h2,
.product-promise h2, .research-start h2, .requirements h2, .guide-content h2, .compact-faq h2,
.folio-product-copy h3 { font: 500 var(--title-section)/1.5 var(--serif); letter-spacing: -.025em; }
.price-card h2, .origin-price-band h2, .data-pack h2, .product-basis h2 { font-family: var(--serif); font-size: var(--title-card); font-weight: 500; line-height: 1.6; }
.auth-heading h1, .account-content h1 { font: 500 32px/1.5 var(--serif); }
.auth-aside h2 { font-family: var(--serif); font-weight: 500; }
.account-overview strong { font-weight: 500; }
.account-content .card h2, .account-content .deck h2 { font-family: var(--sans); }
/* Identity, proposition and action read together above the product interface. */
.product-headline { display: block; padding-block: 36px 40px; }
.product-name { display: flex; align-items: baseline; flex-wrap: wrap; gap: 12px 20px; margin-bottom: 24px; }
.product-headline .product-name h1 { margin: 0; font: 500 44px/1.25 var(--serif); letter-spacing: -.03em; }
.product-name > .mono { font-size: 12px; line-height: 1.6; color: var(--muted); }
.product-promise { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; gap: 72px; margin: 0; }
.product-promise h2 { max-width: 16em; font: 500 36px/1.45 var(--serif); letter-spacing: -.025em; }
.product-details { min-width: 0; }
.product-details > p { max-width: 34em; margin: 0; font-size: 16px; line-height: 1.9; color: var(--muted); }
.product-details .product-hero-actions { gap: 24px; margin-top: 24px; }
.page-intro { padding-block: 48px 36px; }
.section { padding-block: var(--space-section); }
.product-edition + .section { padding-top: var(--space-section); }
.research-start { background: var(--soft); color: var(--ink); border-block: 1px solid var(--line); }
.research-start > .wrap { padding-block: 40px; }
.research-start .eyebrow { color: var(--red); }
.research-start p { color: var(--muted); }
.research-start .button { white-space: nowrap; }
/* A compact brand group closes the page alongside useful navigation. */
.site-footer { padding: 0; }
.site-footer .footer-main { grid-template-columns: minmax(0, 2fr) repeat(3, minmax(0, 1fr)); align-items: start; gap: 48px; padding-block: 40px 36px; }
.footer-brand { min-width: 0; }
.footer-brand .footer-brand-line { margin: 18px 0 0; font: 500 20px/1.6 var(--serif); color: var(--ink); }
.footer-brand .footer-brand-description { margin: 8px 0 0; max-width: 24em; font-size: 14px; line-height: 1.8; color: var(--muted); }
.footer-bottom { align-items: baseline; padding-block: 20px; line-height: 1.8; }
.text-link, .download-extras a, .product-boundary a, .auth-form-meta a, .auth-alternative a, .auth-back, .account-content a.lnk,
.faq-item a, .guide-content p a, .legal-content a, .auth-consent a, .auth-service-help a {
  color: var(--red); border-bottom: 0; text-decoration: underline; text-decoration-thickness: 1px; text-decoration-color: var(--line); text-underline-offset: 4px;
}
.text-link:hover, .download-extras a:hover, .product-boundary a:hover, .auth-form-meta a:hover, .auth-alternative a:hover, .auth-back:hover, .account-content a.lnk:hover,
.faq-item a:hover, .guide-content p a:hover, .legal-content a:hover, .auth-consent a:hover, .auth-service-help a:hover { color: var(--red-hover); text-decoration-color: var(--red); }
.text-link > .link-line { display: none; }
@media (max-width: 900px) {
  :root { --title-hero: 42px; --title-page: 40px; --title-section: 28px; --space-section: 42px; }
  .product-headline { padding-block: 32px 36px; }
  .product-name { gap: 12px 18px; margin-bottom: 22px; }
  .product-headline .product-name h1 { font-size: 40px; }
  .product-promise { gap: 36px; }
  .product-promise h2 { font-size: 30px; }
  .product-media-notes { gap: 16px; }
  .product-basis > div { gap: 32px; }
  .site-footer .footer-main { grid-template-columns: minmax(0, 1.7fr) repeat(3, minmax(0, 1fr)); gap: 28px; padding-block: 36px 32px; }
}
@media (max-width: 700px) {
  :root { --title-hero: clamp(36px, 10.3vw, 48px); --title-page: 36px; --title-section: 28px; --space-section: 36px; }
  .ui-tabs { gap: 20px; }
  .folio-insight { padding: 20px 0 0; }
  .page-intro { padding-block: 32px 28px; }
  .auth-heading h1, .account-content h1 { font-size: 28px; }
  .research-start > .wrap { padding-block: 32px; }
  .product-headline { display: block; padding-block: 28px 32px; }
  .product-name { gap: 10px 16px; margin-bottom: 24px; }
  .product-promise { display: block; margin-top: 0; }
  .product-promise h2 { font-size: 28px; line-height: 1.5; }
  .product-details { margin-top: 20px; }
  .product-details .product-hero-actions { gap: 18px; margin-top: 22px; }
  .product-media-notes { align-items: start; gap: 10px; }
  .dialog-bar { padding: 8px 10px; min-height: 60px; gap: 10px; }
  .dialog-tools { gap: 6px; }
  .image-zoom { padding-inline: 10px; }
  .image-dialog-body { max-height: calc(94dvh - 60px); }
  .image-dialog-body img { max-height: calc(94dvh - 60px); }
  .workflow-grid article { padding-block: 20px; }
  .site-footer .footer-main { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px 20px; padding-block: 32px 28px; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-brand .footer-brand-line { margin-top: 16px; font-size: 18px; }
  .footer-bottom { gap: 12px; padding-block: 18px; }
}

.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;
}

/* 2026-10-01 对齐：同一行里的标题、说明、链接按首行基线对齐；常见问题贴左边线，与上方「功能对比」同宽；边界说明与下方色带留出间距 */
.folio-section-head { align-items: baseline; }
.folio-section-head > .eyebrow { align-self: baseline; }
.product-basis, .product-basis > div { align-items: baseline; }
.compact-faq { max-width: none; }
.product-boundary { padding-bottom: 32px; }
@media (max-width: 650px) { .product-boundary { padding-bottom: 24px; } }
