/* OPC Design System v3 · 2026-07-18
 *
 * 统一骨架 + 6 种 hero 变体 + 可复用 section/grid/card/cta 系统
 * 覆盖所有公开页面（首页 / 服务 / 案例 / 报价 / 实战营 / 技术观察 / 合作 / 法律 /
 * 工具页 / 英文页 / 教程），同时保留每个页面自由选择风格的自由度。
 *
 * 用法：
 *   <body class="opc-theme-cream">         <!-- 浅色背景 -->
 *   <main>
 *     <section class="opc-hero" data-variant="editorial">  <!-- 6 选 1 -->
 *       <div class="opc-shell">
 *         <span class="opc-eyebrow">SECTION · EYEBROW</span>
 *         <h1 class="opc-hero__title">...</h1>
 *         <p class="opc-hero__lede">...</p>
 *         <div class="opc-hero__cta">
 *           <a class="opc-btn opc-btn--coral" href="...">主 CTA</a>
 *           <a class="opc-btn opc-btn--ghost" href="...">次 CTA</a>
 *         </div>
 *         <ul class="opc-hero__evidence">  <!-- 可选 -->
 *           <li><b>300+</b><span>网站起步价</span></li>
 *         </ul>
 *       </div>
 *     </section>
 *
 *     <section class="opc-section" data-variant="paper|cream|ink|plain">
 *       <div class="opc-shell">
 *         <header class="opc-section__head">
 *           <span class="opc-eyebrow">EYEBROW</span>
 *           <h2 class="opc-section__title">标题</h2>
 *           <p class="opc-section__lede">副标题（可选）</p>
 *         </header>
 *         <div class="opc-grid opc-grid--3">
 *           <article class="opc-card">
 *             <span class="opc-pill">01 / 标签</span>
 *             <h3>卡片标题</h3>
 *             <p>说明</p>
 *             <a class="opc-card__link" href="...">行动 →</a>
 *           </article>
 *           ...
 *         </div>
 *       </div>
 *     </section>
 *   </main>
 *
 * 6 种 hero 变体（data-variant）：
 *   editorial   — 大字 / 引文 / 首页、insights
 *   practical    — 实用 / 表格 / services、pricing
 *   evidence     — 证据 / 截图 / cases
 *   focused      — 极简 / 表单 / tools
 *   conversation — 节奏 / 卡组 / academy
 *   compliance   — 中性 / 严肃 / legal
 */

/* ================================================================
 * 1. TOKENS
 * ============================================================== */
:root {
  /* Color · 编辑感强对比 */
  --ink: #0A1118;
  --ink-2: #1B2530;
  --ink-3: #344252;
  --cream: #FFFDF7;
  --cream-2: #F8F4E7;
  --paper: #F4EFE2;
  --paper-2: #E8E1CF;
  --coral: #E85D3F;
  --coral-2: #C24529;
  --gold: #F4CC53;
  --link: #174E70;
  --rule: #D6CFB9;
  --rule-2: #B8B09A;

  /* Typography */
  --font-mono: "JetBrains Mono", "SF Mono", Menlo, Consolas, "Roboto Mono", monospace;
  --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  --font-serif: "Iowan Old Style", "Apple Garamond", "Baskerville", "Times New Roman", "Droid Serif", "Times", serif;

  /* Spacing (8px grid) */
  --s-1: 4px;  --s-2: 8px;  --s-3: 12px; --s-4: 16px;
  --s-5: 24px; --s-6: 32px; --s-7: 48px; --s-8: 64px;
  --s-9: 96px; --s-10: 128px;

  /* Type scale */
  --t-xs: 12px; --t-sm: 14px; --t-base: 16px;
  --t-md: 18px; --t-lg: 22px; --t-xl: 28px;
  --t-2xl: 36px; --t-3xl: 48px; --t-4xl: clamp(48px, 7vw, 88px);
  --t-display: clamp(52px, 7vw, 96px);

  /* Radii */
  --r-0: 0; --r-sm: 4px; --r-md: 8px;
  --r-lg: 16px; --r-xl: 24px; --r-pill: 999px;

  /* Shadows */
  --sh-1: 0 1px 2px rgba(10,17,24,.06);
  --sh-2: 0 4px 12px rgba(10,17,24,.08);
  --sh-3: 0 12px 36px rgba(10,17,24,.12);

  /* Layout */
  --shell: min(1240px, calc(100% - 40px));
  --shell-narrow: min(880px, calc(100% - 40px));
  --gutter: 20px;

  /* Motion */
  --ease: cubic-bezier(.2,.6,.2,1);
}

/* Compact v4 overrides: one visual rhythm across every public route. */
:root {
  --coral: #0071e3;
  --coral-2: #0066cc;
  --link: #0066cc;
  --ink: #1d1d1f;
  --ink-2: #424245;
  --ink-3: #6e6e73;
  --cream: #ffffff;
  --cream-2: #f5f5f7;
  --paper: #f5f5f7;
  --rule: #d2d2d7;
  --shell: min(1120px, calc(100% - 32px));
  --gutter: 16px;
  --s-7: 32px;
  --s-8: 48px;
  --s-9: 64px;
  --s-10: 80px;
}

/* ================================================================
 * 2. RESET + BASE
 * ============================================================== */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--font-sans);
  font-size: var(--t-base);
  line-height: 1.55;
  color: var(--ink);
  background: var(--cream);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img, svg, video { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid var(--coral);
  outline-offset: 2px;
}
button { font: inherit; cursor: pointer; }
hr { border: 0; border-top: 1px solid var(--rule); margin: var(--s-7) 0; }

/* Skip link */
.opc-skip {
  position: absolute; left: -9999px; top: 0; z-index: 9999;
  background: var(--ink); color: var(--cream);
  padding: var(--s-3) var(--s-5); font-weight: 700;
}
.opc-skip:focus { left: var(--s-3); top: var(--s-3); }

/* ================================================================
 * 3. THEMES (body class)
 * ============================================================== */
.opc-theme-cream { background: var(--cream); color: var(--ink); }
.opc-theme-paper { background: var(--paper); color: var(--ink); }
.opc-theme-ink { background: var(--ink); color: var(--cream); }
.opc-theme-ink .opc-eyebrow { color: var(--gold); }

/* ================================================================
 * 4. HEADER + NAV (uniform)
 * ============================================================== */
.opc-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(255,253,247,.92);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--rule);
}
.opc-header__inner {
  max-width: var(--shell);
  margin: 0 auto;
  min-height: 56px;
  padding: 8px 0;
  display: flex; align-items: center; gap: var(--s-6);
}
.opc-wordmark {
  font-family: var(--font-mono);
  font-weight: 900;
  font-size: 18px;
  letter-spacing: -0.02em;
  color: var(--ink);
  display: flex; align-items: baseline; gap: var(--s-2);
}
.opc-wordmark small {
  font-family: var(--font-sans);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: var(--ink-3);
}
.opc-nav {
  display: flex; gap: var(--s-5); align-items: center;
  flex-wrap: wrap;
  margin-left: auto;
}
.opc-nav a {
  font-size: var(--t-sm);
  font-weight: 600;
  color: var(--ink-3);
  padding: var(--s-2) 0;
  position: relative;
  transition: color .15s var(--ease);
}
.opc-nav a:hover, .opc-nav a[aria-current="page"] { color: var(--ink); }
.opc-nav a[lang="en"] {
  min-width: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.opc-nav a[aria-current="page"]::after {
  content: "";
  position: absolute; left: 0; right: 0; bottom: -3px;
  height: 2px; background: var(--coral);
}
.opc-cta {
  margin-left: var(--s-2);
  background: var(--ink); color: var(--cream);
  padding: 10px 18px; border-radius: var(--r-pill);
  font-weight: 700; font-size: var(--t-sm);
  white-space: nowrap;
  transition: transform .15s var(--ease), background .15s var(--ease);
}
.opc-cta:hover { background: var(--coral); transform: translateY(-1px); }
.opc-lang-mobile {
  display: none;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
  flex: 0 0 44px;
  color: var(--ink);
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 4px;
}

@media (max-width: 880px) {
  .opc-nav { display: none; }
  .opc-lang-mobile { display: inline-flex; margin-left: auto; }
  .opc-cta { margin-left: 0; }
}

@media (max-width: 480px) {
  .opc-header__inner { gap: var(--s-2); }
  .opc-wordmark small { display: none; }
  .opc-cta { padding: 10px 14px; }
}

/* ================================================================
 * 5. HERO (6 variants)
 * ============================================================== */
.opc-hero {
  position: relative;
  padding: clamp(40px, 6vw, 72px) 0 clamp(32px, 5vw, 56px);
  overflow: hidden;
}
.opc-shell {
  max-width: var(--shell);
  margin: 0 auto;
  padding: 0 var(--gutter);
  position: relative;
}
.opc-shell--narrow { max-width: var(--shell-narrow); }

.opc-eyebrow {
  display: inline-block;
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-3);
  margin-bottom: var(--s-4);
}
.opc-hero__title {
  font-family: var(--font-mono);
  font-weight: 900;
  font-size: var(--t-display);
  line-height: 0.98;
  letter-spacing: -0.04em;
  margin: 0 0 var(--s-5) 0;
  max-width: 22ch;
  text-wrap: balance;
  overflow-wrap: anywhere;
  word-break: normal;
}
.opc-hero__title em {
  font-style: normal;
  text-decoration: underline;
  text-decoration-thickness: 0.16em;
  text-decoration-color: var(--gold);
  text-underline-offset: -0.04em;
  padding: 0 2px;
}
.opc-hero__lede {
  font-size: var(--t-lg);
  line-height: 1.5;
  color: var(--ink-3);
  max-width: 60ch;
  margin: 0 0 var(--s-6) 0;
}
.opc-hero__cta {
  display: flex; flex-wrap: wrap; gap: var(--s-3);
  margin-bottom: var(--s-7);
}
.opc-hero__evidence {
  list-style: none; padding: 0; margin: 0;
  display: grid; gap: var(--s-5);
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  border-top: 1px solid var(--rule);
  padding-top: var(--s-5);
  max-width: 720px;
}
.opc-hero__evidence li { display: flex; flex-direction: column; gap: 2px; }
.opc-hero__evidence b {
  font-family: var(--font-mono);
  font-size: var(--t-xl);
  font-weight: 900;
  color: var(--ink);
  letter-spacing: -0.02em;
}
.opc-hero__evidence span { font-size: var(--t-sm); color: var(--ink-3); }

/* Hero variant: editorial (default) */
.opc-hero[data-variant="editorial"] {
  background: var(--cream);
}
.opc-hero[data-variant="editorial"]::before {
  content: ""; position: absolute; top: var(--s-7); right: -10%;
  width: 60%; aspect-ratio: 1; border: 2px solid var(--coral);
  transform: rotate(-8deg); opacity: .15;
}

/* Hero variant: practical */
.opc-hero[data-variant="practical"] {
  background: var(--paper);
  border-bottom: 1px solid var(--rule);
}
.opc-hero[data-variant="practical"] .opc-hero__title { font-size: clamp(40px, 6vw, 72px); }

/* Hero variant: evidence */
.opc-hero[data-variant="evidence"] {
  background: var(--ink);
  color: var(--cream);
}
.opc-hero[data-variant="evidence"] .opc-hero__title,
.opc-hero[data-variant="evidence"] .opc-hero__lede { color: var(--cream); }
.opc-hero[data-variant="evidence"] .opc-hero__lede { color: var(--cream-2); opacity: .85; }
.opc-hero[data-variant="evidence"] .opc-eyebrow { color: var(--gold); }

/* Hero variant: focused */
.opc-hero[data-variant="focused"] {
  background: var(--cream);
  padding: var(--s-7) 0 var(--s-6);
}
.opc-hero[data-variant="focused"] .opc-hero__title {
  font-size: clamp(28px, 4vw, 48px);
  max-width: 30ch;
}
.opc-hero[data-variant="focused"] .opc-hero__lede { max-width: 70ch; font-size: var(--t-md); }

/* Hero variant: conversation */
.opc-hero[data-variant="conversation"] {
  background: var(--paper);
  border-bottom: 1px solid var(--rule);
}
.opc-hero[data-variant="conversation"] .opc-hero__title {
  font-size: clamp(36px, 5vw, 64px);
}

/* Hero variant: compliance */
.opc-hero[data-variant="compliance"] {
  background: var(--cream);
  padding: var(--s-7) 0 var(--s-6);
  border-bottom: 1px solid var(--rule);
}
.opc-hero[data-variant="compliance"] .opc-hero__title {
  font-size: clamp(28px, 4vw, 44px);
}

/* ================================================================
 * 6. SECTION (uniform)
 * ============================================================== */
.opc-section {
  padding: clamp(40px, 5vw, 64px) 0;
  border-top: 1px solid var(--rule);
}
.opc-section:first-of-type { border-top: 0; }
.opc-section[data-variant="paper"] { background: var(--paper); }
.opc-section[data-variant="cream"] { background: var(--cream); }
.opc-section[data-variant="ink"] {
  background: var(--ink); color: var(--cream);
  border-top: 1px solid var(--ink-2);
}
.opc-section[data-variant="ink"] .opc-section__title,
.opc-section[data-variant="ink"] .opc-card h3,
.opc-section[data-variant="ink"] .opc-section__lede { color: var(--cream); }
.opc-section[data-variant="ink"] .opc-section__lede { opacity: .82; }
.opc-section[data-variant="ink"] .opc-eyebrow { color: var(--gold); }
.opc-section[data-variant="plain"] { background: transparent; }

.opc-section__head {
  display: flex; flex-direction: column; gap: var(--s-3);
  margin-bottom: 28px;
  max-width: 760px;
}
.opc-section__title {
  font-family: var(--font-mono);
  font-weight: 900;
  font-size: clamp(28px, 4.5vw, 56px);
  line-height: 1.05;
  letter-spacing: -0.025em;
  margin: 0;
  max-width: 24ch;
  text-wrap: balance;
  overflow-wrap: anywhere;
  word-break: normal;
}
.opc-section__lede {
  font-size: var(--t-md);
  line-height: 1.6;
  color: var(--ink-3);
  margin: 0;
  max-width: 70ch;
}

/* ================================================================
 * 7. GRIDS
 * ============================================================== */
.opc-grid { display: grid; gap: var(--s-5); }
.opc-grid--2 { grid-template-columns: repeat(2, 1fr); }
.opc-grid--3 { grid-template-columns: repeat(3, 1fr); }
.opc-grid--4 { grid-template-columns: repeat(4, 1fr); }
.opc-grid--auto { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
@media (max-width: 880px) {
  .opc-grid--2, .opc-grid--3, .opc-grid--4 { grid-template-columns: 1fr; }
}
@media (min-width: 881px) and (max-width: 1080px) {
  .opc-grid--3, .opc-grid--4 { grid-template-columns: repeat(2, 1fr); }
}

/* ================================================================
 * 8. CARDS
 * ============================================================== */
.opc-card {
  background: var(--cream);
  border: 1px solid var(--rule);
  border-radius: 8px;
  padding: 20px;
  display: flex; flex-direction: column; gap: var(--s-3);
  transition: border-color .15s var(--ease), transform .15s var(--ease);
}
.opc-card:hover {
  border-color: var(--coral);
  transform: translateY(-2px);
}
.opc-card h3 {
  font-family: var(--font-mono);
  font-size: var(--t-lg);
  font-weight: 900;
  margin: 0;
  line-height: 1.2;
  letter-spacing: -0.015em;
  text-wrap: balance;
  overflow-wrap: anywhere;
}
.opc-card p { margin: 0; color: var(--ink-3); font-size: var(--t-sm); line-height: 1.55; }
.opc-card__price {
  font-family: var(--font-mono);
  font-size: var(--t-md);
  font-weight: 800;
  color: var(--coral);
  margin: var(--s-2) 0;
}
.opc-card__link {
  font-weight: 700;
  font-size: var(--t-sm);
  color: var(--ink);
  border-bottom: 2px solid var(--coral);
  padding-bottom: 2px;
  align-self: flex-start;
  margin-top: auto;
  transition: color .15s var(--ease);
}
.opc-card__link:hover { color: var(--coral); }

/* Pill (badge) */
.opc-pill {
  display: inline-block;
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--coral);
  background: var(--cream-2);
  padding: 4px 10px;
  border-radius: var(--r-pill);
  align-self: flex-start;
}

/* ================================================================
 * 9. BUTTONS
 * ============================================================== */
.opc-btn {
  display: inline-flex;
  align-items: center; gap: 8px;
  padding: 14px 22px;
  border-radius: var(--r-pill);
  font-weight: 700;
  font-size: var(--t-base);
  line-height: 1;
  border: 1px solid transparent;
  transition: transform .15s var(--ease), background .15s var(--ease), color .15s var(--ease);
  white-space: nowrap;
}
.opc-btn--coral { background: var(--coral); color: var(--cream); }
.opc-btn--coral:hover { background: var(--coral-2); transform: translateY(-1px); }
.opc-btn--ink { background: var(--ink); color: var(--cream); }
.opc-btn--ink:hover { background: var(--ink-2); transform: translateY(-1px); }
.opc-btn--ghost {
  background: transparent;
  color: var(--ink);
  border-color: var(--ink);
}
.opc-btn--ghost:hover { background: var(--ink); color: var(--cream); }
.opc-btn--ghost-cream {
  background: transparent;
  color: var(--cream);
  border-color: var(--cream);
}
.opc-btn--ghost-cream:hover { background: var(--cream); color: var(--ink); }
.opc-btn--small { padding: 8px 14px; font-size: var(--t-sm); }

/* ================================================================
 * 10. METHOD STRIP (4 steps)
 * ============================================================== */
.opc-method {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  border: 1px solid var(--rule);
  border-radius: 8px;
  overflow: hidden;
  background: var(--cream);
}
@media (max-width: 880px) {
  .opc-method { grid-template-columns: 1fr 1fr; }
}
.opc-method__step {
  padding: 20px;
  border-right: 1px solid var(--rule);
  display: flex; flex-direction: column; gap: var(--s-3);
  position: relative;
}
.opc-method__step:last-child { border-right: 0; }
@media (max-width: 880px) {
  .opc-method__step:nth-child(2) { border-right: 0; }
  .opc-method__step:nth-child(1), .opc-method__step:nth-child(2) {
    border-bottom: 1px solid var(--rule);
  }
}
.opc-method__num {
  font-family: var(--font-mono);
  font-size: var(--t-sm);
  font-weight: 900;
  color: var(--coral);
  letter-spacing: 0.1em;
}
.opc-method__step h3 {
  font-family: var(--font-mono);
  font-size: var(--t-lg);
  font-weight: 900;
  margin: 0;
  letter-spacing: -0.015em;
  text-wrap: balance;
  overflow-wrap: anywhere;
}
.opc-method__step p {
  font-size: var(--t-sm);
  color: var(--ink-3);
  margin: 0;
  line-height: 1.55;
}
.opc-method__step a {
  font-size: var(--t-sm);
  font-weight: 700;
  color: var(--ink);
  border-bottom: 2px solid var(--gold);
  align-self: flex-start;
  padding-bottom: 2px;
  transition: color .15s var(--ease);
}
.opc-method__step a:hover { color: var(--coral); }

/* ================================================================
 * 11. STATS BAND (large numbers)
 * ============================================================== */
.opc-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: var(--s-6);
  padding: 28px 0;
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
}
.opc-stats__item { display: flex; flex-direction: column; gap: 4px; }
.opc-stats__item b {
  font-family: var(--font-mono);
  font-size: var(--t-3xl);
  font-weight: 900;
  letter-spacing: -0.025em;
  color: var(--ink);
  line-height: 1;
}
.opc-stats__item span { font-size: var(--t-sm); color: var(--ink-3); }

/* ================================================================
 * 12. PROOF CARDS (for cases/evidence)
 * ============================================================== */
.opc-proof {
  background: var(--paper);
  border: 1px solid var(--rule);
  border-radius: var(--r-lg);
  padding: var(--s-6);
  display: grid;
  gap: var(--s-4);
}
.opc-proof__head {
  display: flex; justify-content: space-between; align-items: baseline;
  flex-wrap: wrap; gap: var(--s-3);
}
.opc-proof__num {
  font-family: var(--font-mono);
  font-size: var(--t-sm);
  font-weight: 900;
  color: var(--coral);
  letter-spacing: 0.16em;
}
.opc-proof__scope {
  font-size: var(--t-sm);
  color: var(--ink-3);
  font-weight: 600;
}
.opc-proof h3 {
  font-family: var(--font-mono);
  font-size: var(--t-xl);
  font-weight: 900;
  margin: 0;
  letter-spacing: -0.02em;
  text-wrap: balance;
  overflow-wrap: anywhere;
}
.opc-proof dl {
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: var(--s-2) var(--s-4);
  margin: 0;
  font-size: var(--t-sm);
}
.opc-proof dt { font-weight: 700; color: var(--ink-3); }
.opc-proof dd { margin: 0; color: var(--ink); }
.opc-proof__result {
  background: var(--ink);
  color: var(--cream);
  padding: var(--s-3) var(--s-4);
  border-radius: var(--r-md);
  font-size: var(--t-sm);
}
.opc-proof__boundary {
  font-size: var(--t-xs);
  color: var(--ink-3);
  border-top: 1px dashed var(--rule);
  padding-top: var(--s-3);
}

/* ================================================================
 * 13. PRICE TABLES
 * ============================================================== */
.opc-price-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--t-sm);
  background: var(--cream);
  border: 1px solid var(--rule);
  border-radius: var(--r-lg);
  overflow: hidden;
}
.opc-price-table thead th {
  background: var(--ink);
  color: var(--cream);
  text-align: left;
  padding: var(--s-3) var(--s-4);
  font-family: var(--font-mono);
  font-size: var(--t-xs);
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.opc-price-table tbody td {
  padding: var(--s-3) var(--s-4);
  border-top: 1px solid var(--rule);
}
.opc-price-table tbody tr:nth-child(even) td { background: var(--cream-2); }

/* ================================================================
 * 14. FAQ
 * ============================================================== */
.opc-faq { display: flex; flex-direction: column; }
.opc-faq details {
  border-top: 1px solid var(--rule);
  padding: var(--s-5) 0;
}
.opc-faq details:last-child { border-bottom: 1px solid var(--rule); }
.opc-faq summary {
  font-family: var(--font-mono);
  font-weight: 700;
  font-size: var(--t-md);
  cursor: pointer;
  display: flex; justify-content: space-between; align-items: center;
  gap: var(--s-3);
  list-style: none;
}
.opc-faq summary::-webkit-details-marker { display: none; }
.opc-faq summary::after {
  content: "+"; font-size: var(--t-xl); color: var(--coral);
  transition: transform .15s var(--ease);
}
.opc-faq details[open] summary::after { transform: rotate(45deg); }
.opc-faq details p, .opc-faq details li {
  margin-top: var(--s-3);
  color: var(--ink-3);
  font-size: var(--t-sm);
  line-height: 1.6;
}

/* ================================================================
 * 15. FOOTER (uniform)
 * ============================================================== */
.opc-footer {
  background: var(--ink);
  color: var(--cream);
  padding: var(--s-8) 0 var(--s-5);
  margin-top: var(--s-9);
}
.opc-footer__inner {
  max-width: var(--shell);
  margin: 0 auto;
  padding: 0 var(--gutter);
  display: grid;
  gap: var(--s-7);
  grid-template-columns: 1.4fr repeat(3, 1fr);
}
@media (max-width: 880px) {
  .opc-footer__inner { grid-template-columns: 1fr 1fr; }
}
.opc-footer__brand {
  font-family: var(--font-mono);
  font-size: var(--t-md);
  font-weight: 900;
  letter-spacing: -0.02em;
}
.opc-footer__brand small {
  display: block;
  font-family: var(--font-sans);
  font-size: var(--t-xs);
  font-weight: 600;
  letter-spacing: 0.16em;
  color: var(--gold);
  margin-top: var(--s-2);
}
.opc-footer__legal {
  font-size: var(--t-xs);
  color: rgba(255,253,247,.62);
  margin-top: var(--s-3);
  line-height: 1.55;
}
.opc-footer__col h4 {
  font-family: var(--font-mono);
  font-size: var(--t-xs);
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gold);
  margin: 0 0 var(--s-3);
}
.opc-footer__col ul { list-style: none; padding: 0; margin: 0; }
.opc-footer__col li { margin-bottom: var(--s-2); }
.opc-footer__col a {
  font-size: var(--t-sm);
  color: rgba(255,253,247,.82);
  transition: color .15s var(--ease);
}
.opc-footer__col a:hover { color: var(--cream); }
.opc-footer__bottom {
  max-width: var(--shell);
  margin: var(--s-7) auto 0;
  padding: var(--s-4) var(--gutter) 0;
  border-top: 1px solid rgba(255,253,247,.16);
  display: flex; justify-content: space-between; align-items: center;
  flex-wrap: wrap; gap: var(--s-3);
  font-size: var(--t-xs);
  color: rgba(255,253,247,.55);
}

/* ================================================================
 * 16. DIRECT CONTACT STRIP
 * ============================================================== */
.opc-contact-strip {
  display: flex; flex-wrap: wrap; gap: var(--s-3);
  padding: var(--s-4) var(--s-5);
  background: var(--paper);
  border: 1px solid var(--rule);
  border-radius: var(--r-md);
  align-items: center;
}
.opc-contact-strip__label {
  font-size: var(--t-sm); font-weight: 700; color: var(--ink-3);
}
.opc-contact-strip__items {
  display: flex; flex-wrap: wrap; gap: var(--s-3);
  margin-left: auto;
}
.opc-contact-strip__items a {
  font-family: var(--font-mono);
  font-size: var(--t-sm);
  font-weight: 700;
  color: var(--ink);
  border-bottom: 2px solid var(--coral);
  padding-bottom: 2px;
}

/* ================================================================
 * 17. FORM (tools / contact)
 * ============================================================== */
.opc-form {
  display: grid;
  gap: var(--s-4);
  background: var(--cream);
  border: 1px solid var(--rule);
  border-radius: var(--r-lg);
  padding: var(--s-6);
}
.opc-form fieldset {
  border: 0; margin: 0; padding: 0;
  display: grid; gap: var(--s-3);
}
.opc-form legend {
  font-family: var(--font-mono);
  font-size: var(--t-sm);
  font-weight: 700;
  letter-spacing: 0.06em;
  margin-bottom: var(--s-2);
}
.opc-form label {
  display: grid; gap: 6px;
  font-size: var(--t-sm);
  font-weight: 600;
  color: var(--ink-2);
}
.opc-form input[type="text"],
.opc-form input[type="email"],
.opc-form input[type="tel"],
.opc-form input[type="url"],
.opc-form select,
.opc-form textarea {
  font: inherit;
  font-size: var(--t-base);
  color: var(--ink);
  padding: 12px 14px;
  background: var(--cream-2);
  border: 1px solid var(--rule);
  border-radius: var(--r-md);
  width: 100%;
  transition: border-color .15s var(--ease), background .15s var(--ease);
}
.opc-form input:focus,
.opc-form select:focus,
.opc-form textarea:focus {
  border-color: var(--coral);
  background: var(--cream);
  outline: none;
}
.opc-form textarea { min-height: 140px; resize: vertical; font-family: inherit; }
.opc-form .opc-form__hint { font-size: var(--t-xs); color: var(--ink-3); font-weight: 400; }
.opc-form__check { display: flex; gap: var(--s-2); align-items: flex-start; font-size: var(--t-sm); }
.opc-form__check input { margin-top: 4px; }

/* ================================================================
 * 18. RESULT CARD (tools output)
 * ============================================================== */
.opc-result {
  display: none;
  background: var(--ink);
  color: var(--cream);
  border-radius: var(--r-lg);
  padding: var(--s-6);
}
.opc-result.is-visible { display: block; }
.opc-result h3 { color: var(--cream); margin: 0 0 var(--s-3); font-family: var(--font-mono); font-size: var(--t-lg); font-weight: 900; }
.opc-result__line { padding: var(--s-2) 0; border-bottom: 1px solid rgba(255,253,247,.12); }
.opc-result__line:last-child { border-bottom: 0; }
.opc-result__line b { color: var(--gold); font-family: var(--font-mono); margin-right: var(--s-2); }

/* ================================================================
 * 19. UTILITIES
 * ============================================================== */
.opc-muted { color: var(--ink-3); }
.opc-center { text-align: center; }
.opc-mt-0 { margin-top: 0; }
.opc-mb-0 { margin-bottom: 0; }
.opc-mono { font-family: var(--font-mono); }
.opc-nowrap { white-space: nowrap; }

/* ================================================================
 * 20. OPC QUIET PRODUCT SYSTEM · 2026-07-18
 * Apple.com-inspired rhythm translated into OPC's own identity.
 * ============================================================== */
:root {
  --ink: #1d1d1f;
  --ink-2: #424245;
  --ink-3: #6e6e73;
  --cream: #ffffff;
  --cream-2: #fbfbfd;
  --paper: #f5f5f7;
  --paper-2: #e8e8ed;
  --coral: #0071e3;
  --coral-2: #0077ed;
  --gold: #ff9f0a;
  --link: #0066cc;
  --rule: #d2d2d7;
  --rule-2: #86868b;
  --font-mono: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Helvetica Neue", "PingFang SC", "Microsoft YaHei", sans-serif;
  --font-sans: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", "PingFang SC", "Microsoft YaHei", sans-serif;
  --font-serif: var(--font-sans);
  --r-sm: 4px;
  --r-md: 8px;
  --r-lg: 8px;
  --r-xl: 8px;
  --shell: min(1120px, calc(100% - 40px));
  --shell-narrow: min(760px, calc(100% - 40px));
  --ease: cubic-bezier(.25, .1, .25, 1);
}

html { background: #fff; }
body { color: var(--ink); background: #fff; line-height: 1.47; }
body, button, input, select, textarea, .opc-wordmark, .opc-wordmark small,
.opc-eyebrow, .opc-hero__title, .opc-section__title, .opc-card h3,
.opc-proof h3, .opc-method__step h3, .opc-footer__brand, .opc-footer__col h4 {
  letter-spacing: 0;
}
a { text-underline-offset: 3px; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline-color: #0071e3; }

.opc-header { background: rgba(255,255,255,.82); border-bottom: 1px solid rgba(0,0,0,.12); }
.opc-header__inner { min-height: 48px; padding: 0; gap: 28px; }
.opc-wordmark { font-family: var(--font-sans); font-size: 18px; font-weight: 700; min-height: 44px; align-items: center; }
.opc-wordmark small { font-size: 10px; font-weight: 500; color: var(--ink-3); }
.opc-nav { gap: 20px; }
.opc-nav a { color: var(--ink); font-size: 12px; font-weight: 400; min-height: 44px; display: inline-flex; align-items: center; padding: 0; }
.opc-nav a[aria-current="page"]::after { height: 1px; background: var(--ink); bottom: 8px; }
.opc-cta { min-height: 44px; display: inline-flex; align-items: center; background: var(--coral); color: #fff; font-size: 12px; font-weight: 500; padding: 8px 14px; }
.opc-cta:hover { background: var(--coral-2); transform: none; }
.opc-lang-mobile { font-family: var(--font-sans); color: var(--link); text-decoration: none; }

.opc-hero { padding: clamp(72px, 8vw, 104px) 0 0; text-align: left; background: var(--paper); }
.opc-hero .opc-shell { display: block; }
.opc-hero__title { font-family: var(--font-sans); font-size: clamp(48px, 6vw, 72px); line-height: 1.05; font-weight: 600; max-width: 22ch; margin-bottom: 20px; text-wrap: balance; overflow-wrap: anywhere; }
.opc-hero__title em { color: var(--ink); background: none; padding: 0; }
.opc-hero__lede { color: var(--ink-2); font-size: clamp(19px, 2vw, 28px); line-height: 1.28; max-width: 43ch; margin-bottom: 28px; }
.opc-eyebrow { font-family: var(--font-sans); font-size: 13px; font-weight: 600; color: var(--ink-3); text-transform: none; margin-bottom: 12px; }
.opc-hero__cta { justify-content: flex-start; margin-bottom: 36px; }
.opc-hero__evidence { width: min(760px, 100%); border-top-color: var(--rule); padding-top: 24px; }
.opc-hero__evidence b { font-family: var(--font-sans); font-size: 28px; font-weight: 600; }
.opc-hero[data-variant="editorial"]::before { display: none; }
.opc-hero[data-variant="practical"], .opc-hero[data-variant="conversation"] { background: var(--paper); }
.opc-hero[data-variant="evidence"] { background: #000; }
.opc-hero[data-variant="evidence"] .opc-hero__title,
.opc-hero[data-variant="evidence"] .opc-hero__title em { color: #f5f5f7; }

.opc-home .opc-hero { text-align: center; }
.opc-home .opc-hero .opc-shell { display: flex; flex-direction: column; align-items: center; }
.opc-home .opc-hero__cta { justify-content: center; }

@media (min-width: 881px) {
  body:not(.opc-home) .opc-hero { padding-bottom: clamp(56px, 7vw, 88px); }
  body:not(.opc-home) .opc-hero .opc-shell {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, .72fr);
    column-gap: clamp(40px, 7vw, 84px);
    align-items: start;
  }
  body:not(.opc-home) .opc-hero__rail {
    grid-column: 2;
    display: grid;
    gap: var(--s-4);
    align-self: start;
  }
  body:not(.opc-home) .opc-hero .opc-eyebrow,
  body:not(.opc-home) .opc-hero .opc-hero__title,
  body:not(.opc-home) .opc-hero .opc-hero__lede,
  body:not(.opc-home) .opc-hero .opc-hero__cta {
    grid-column: 1;
  }
  body:not(.opc-home) .opc-hero .opc-hero__evidence {
    grid-column: 2;
    grid-row: 1 / span 5;
    width: 100%;
    max-width: none;
    margin-top: 10px;
    padding: var(--s-5);
    background: rgba(255,255,255,.72);
    border: 1px solid var(--rule);
    border-radius: var(--r-md);
    align-self: start;
  }
  body:not(.opc-home) .opc-hero__rail .opc-hero__evidence {
    grid-column: 1 / -1;
    grid-row: auto;
    margin-top: 0;
  }
  body:not(.opc-home) .opc-hero[data-variant="evidence"] .opc-hero__evidence {
    background: rgba(255,255,255,.06);
    border-color: rgba(255,255,255,.12);
  }
  body:not(.opc-home) .opc-hero .opc-hero__evidence li {
    padding-top: var(--s-2);
    border-top: 1px solid var(--rule);
  }
  body:not(.opc-home) .opc-hero[data-variant="evidence"] .opc-hero__evidence li {
    border-top-color: rgba(255,255,255,.12);
  }
  body:not(.opc-home) .opc-hero .opc-hero__evidence li:first-child,
  body:not(.opc-home) .opc-hero .opc-hero__evidence li:nth-child(2) {
    padding-top: 0;
    border-top: 0;
  }
  body:not(.opc-home) .opc-hero__aside {
    padding: var(--s-5);
    background: var(--cream);
    border: 1px solid var(--rule);
    border-radius: var(--r-md);
  }
  body:not(.opc-home) .opc-hero[data-variant="evidence"] .opc-hero__aside {
    background: rgba(255,255,255,.06);
    border-color: rgba(255,255,255,.12);
  }
}

.opc-hero__aside {
  display: grid;
  gap: var(--s-3);
}
.opc-hero__aside h3 {
  margin: 0;
  font-family: var(--font-mono);
  font-size: var(--t-md);
  font-weight: 900;
  line-height: 1.2;
}
.opc-hero__aside p {
  margin: 0;
  color: var(--ink-3);
  font-size: var(--t-sm);
  line-height: 1.55;
}
.opc-hero__aside ul {
  margin: 0;
  padding-left: 1.1em;
  color: var(--ink-2);
  font-size: var(--t-sm);
  line-height: 1.55;
}
.opc-hero__aside li + li { margin-top: 4px; }
.opc-hero__aside .opc-card__link { margin-top: 4px; }

.opc-home__hero-visual { width: min(1040px, 100%); margin: 56px auto 0; }
.opc-home__hero-visual img { width: 100%; aspect-ratio: 16 / 8; object-fit: cover; object-position: top; border-radius: 8px 8px 0 0; box-shadow: 0 18px 60px rgba(0,0,0,.12); }
.opc-home__hero-visual figcaption { padding: 12px 0 18px; color: var(--ink-3); font-size: 12px; }

.opc-home__quick-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--s-4);
}
.opc-home__quick-card {
  background: var(--cream);
  border: 1px solid var(--rule);
  border-radius: var(--r-md);
  padding: var(--s-5);
  display: grid;
  gap: var(--s-3);
}
.opc-home__quick-card h3 {
  margin: 0;
  font-family: var(--font-mono);
  font-size: clamp(22px, 2.2vw, 30px);
  line-height: 1.1;
  font-weight: 900;
  text-wrap: balance;
  overflow-wrap: anywhere;
}
.opc-home__quick-card p {
  margin: 0;
  color: var(--ink-3);
  font-size: var(--t-sm);
  line-height: 1.6;
}
.opc-home__quick-card ul {
  margin: 0;
  padding-left: 1.1em;
  color: var(--ink-2);
  font-size: var(--t-sm);
  line-height: 1.55;
}
.opc-home__quick-card li + li { margin-top: 4px; }

.opc-section { padding: clamp(72px, 8vw, 112px) 0; border-top: 0; }
.opc-section[data-variant="paper"] { background: var(--paper); }
.opc-section[data-variant="cream"] { background: #fff; }
.opc-section[data-variant="ink"] { background: #000; }
.opc-section__head { max-width: 760px; margin-bottom: 48px; gap: 8px; }
.opc-section__head--center { align-items: center; text-align: center; margin-left: auto; margin-right: auto; }
.opc-section__title { font-family: var(--font-sans); font-weight: 600; font-size: clamp(32px, 4vw, 50px); line-height: 1.08; text-wrap: balance; overflow-wrap: anywhere; }
.opc-section__lede { font-size: clamp(17px, 1.6vw, 21px); line-height: 1.45; color: var(--ink-3); }

.opc-card, .opc-proof, .opc-form { border: 0; border-radius: 8px; box-shadow: none; }
.opc-card { padding: 32px; background: #fff; }
.opc-card:hover { border-color: transparent; transform: none; }
.opc-card h3, .opc-proof h3, .opc-method__step h3 { font-family: var(--font-sans); font-weight: 600; text-wrap: balance; overflow-wrap: anywhere; }
.opc-pill { font-family: var(--font-sans); color: var(--ink-3); background: var(--paper); }
.opc-card__price { font-family: var(--font-sans); color: var(--ink); font-weight: 600; }
.opc-card__link, .opc-text-link { color: var(--link); border: 0; font-weight: 500; }
.opc-card__link:hover, .opc-text-link:hover { color: var(--coral-2); text-decoration: underline; }

.opc-btn { min-height: 44px; font-size: 17px; font-weight: 400; padding: 12px 22px; }
.opc-btn--coral { background: var(--coral); color: #fff; }
.opc-btn--coral:hover { background: var(--coral-2); transform: none; }
.opc-btn--ghost { border: 0; color: var(--link); padding-left: 10px; padding-right: 10px; }
.opc-btn--ghost:hover { background: transparent; color: var(--coral-2); text-decoration: underline; }

.opc-method { border: 0; border-radius: 0; background: transparent; gap: 1px; }
.opc-method__step { background: var(--paper); border: 0; padding: 32px; }
.opc-method__num { font-family: var(--font-sans); color: var(--ink-3); }
.opc-method__step a { color: var(--link); border: 0; }
.opc-stats { border-color: var(--rule); }
.opc-stats__item b { font-family: var(--font-sans); font-weight: 600; }
.opc-price-table { display: block; overflow-x: auto; border-radius: 8px; }
.opc-price-table thead th { background: #1d1d1f; font-family: var(--font-sans); letter-spacing: 0; text-transform: none; }
.opc-faq summary { font-family: var(--font-sans); font-weight: 500; }
.opc-faq summary::after { color: var(--ink-3); }
.opc-contact-strip { background: var(--paper); border: 0; }
.opc-contact-strip__items a, .opc-contact-strip__items span { font-family: var(--font-sans); color: var(--link); border: 0; }

.opc-work__list { display: grid; gap: 12px; }
.opc-work__item { display: grid; grid-template-columns: minmax(240px, .72fr) minmax(0, 1.28fr); min-height: 520px; background: var(--paper); overflow: hidden; }
.opc-work__item--dark { background: #000; color: #f5f5f7; }
.opc-work__copy { padding: clamp(36px, 5vw, 72px); display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }
.opc-work__copy h3 { margin: 18px 0 12px; font-size: clamp(36px, 4vw, 56px); line-height: 1.05; font-weight: 600; }
.opc-work__copy p { margin: 0 0 22px; color: var(--ink-3); font-size: 18px; line-height: 1.5; }
.opc-work__item--dark .opc-work__copy p { color: #a1a1a6; }
.opc-work__item--dark .opc-pill { background: #2c2c2e; color: #d1d1d6; }
.opc-work__item figure { margin: 0; min-width: 0; display: flex; align-items: center; justify-content: center; padding: 48px 0 48px 24px; }
.opc-work__item img { width: 100%; height: 100%; max-height: 460px; object-fit: cover; object-position: top left; border-radius: 8px 0 0 8px; box-shadow: 0 14px 50px rgba(0,0,0,.14); }

.opc-trial-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.opc-trial-card { min-height: 320px; background: var(--paper); padding: 32px; display: flex; flex-direction: column; gap: 16px; border-radius: 8px; }
.opc-trial-card h3 { margin: 0; font-size: clamp(28px, 3vw, 40px); line-height: 1.08; font-weight: 600; text-wrap: balance; overflow-wrap: anywhere; }
.opc-trial-card p { margin: 0; color: var(--ink-2); font-size: 17px; line-height: 1.55; }
.opc-trial-card--featured { grid-column: 1 / -1; min-height: 460px; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(260px, .9fr); align-items: center; background: #000; color: #f5f5f7; overflow: hidden; }
.opc-trial-card--featured .opc-pill { background: #2c2c2e; color: #d1d1d6; }
.opc-trial-card--featured p, .opc-trial-card--featured .opc-trial-meta { color: #a1a1a6; }
.opc-trial-card--featured .opc-card__link { color: #2997ff; }
.opc-trial-card--muted { background: #fbfbfd; border: 1px dashed var(--rule); }
.opc-trial-card__copy { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.opc-trial-card__media { margin: 0; display: grid; place-items: center; gap: 16px; align-self: stretch; background: #f5f5f7; border-radius: 8px; padding: 32px; }
.opc-trial-card__media figcaption { color: var(--ink-3); font-size: 13px; }
.opc-trial-qr { width: min(260px, 100%); aspect-ratio: 1; object-fit: contain; border-radius: 8px; background: #fff; padding: 12px; }
.opc-trial-meta { margin: 0; padding-left: 1.1em; color: var(--ink-3); font-size: 14px; line-height: 1.65; }
.opc-trial-meta li + li { margin-top: 4px; }
.opc-trial-status { margin-top: auto; color: var(--ink-3); font-size: 14px; }
.opc-boundary-tile { background: #fff; border-radius: 8px; padding: 28px; }
.opc-boundary-tile h3 { margin: 0 0 10px; font-size: 21px; font-weight: 600; text-wrap: balance; overflow-wrap: anywhere; }
.opc-boundary-tile p { margin: 0; color: var(--ink-3); font-size: 14px; line-height: 1.6; }

.opc-route-card { background: #fff; border-radius: 8px; padding: 28px; display: flex; flex-direction: column; gap: 14px; }
.opc-route-card h3 { margin: 0; font-size: 28px; line-height: 1.1; font-weight: 600; text-wrap: balance; overflow-wrap: anywhere; }
.opc-route-card p { margin: 0; color: var(--ink-2); font-size: 17px; line-height: 1.55; }
.opc-route-card ul { margin: 0; padding-left: 1.1em; color: var(--ink-3); font-size: 14px; line-height: 1.6; }
.opc-route-card li + li { margin-top: 4px; }

.opc-learning-notes { display: grid; gap: 12px; }
.opc-learning-note { background: #fff; border-radius: 8px; padding: 24px; }
.opc-learning-note h3 { margin: 0 0 8px; font-size: 20px; font-weight: 600; text-wrap: balance; overflow-wrap: anywhere; }
.opc-learning-note p { margin: 0; color: var(--ink-3); font-size: 14px; line-height: 1.6; }

.opc-resource-matrix {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--s-4);
}
.opc-resource-card {
  background: var(--cream);
  border: 1px solid var(--rule);
  border-radius: var(--r-md);
  padding: var(--s-5);
  display: grid;
  gap: var(--s-4);
}
.opc-resource-card > div {
  display: grid;
  gap: var(--s-3);
}
.opc-resource-card h3 {
  margin: 0;
  font-family: var(--font-mono);
  font-size: clamp(24px, 2.8vw, 34px);
  line-height: 1.08;
  font-weight: 900;
  text-wrap: balance;
  overflow-wrap: anywhere;
}
.opc-resource-card p {
  margin: 0;
  color: var(--ink-3);
  font-size: var(--t-base);
  line-height: 1.6;
}
.opc-resource-card dl {
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: 8px 16px;
  margin: 0;
  padding-top: var(--s-3);
  border-top: 1px solid var(--rule);
}
.opc-resource-card dt {
  color: var(--ink-3);
  font-size: var(--t-xs);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.opc-resource-card dd {
  margin: 0;
  color: var(--ink);
  font-size: var(--t-sm);
  line-height: 1.5;
}
.opc-resource-card .opc-card__link {
  margin-top: auto;
}

.opc-page-intro {
  display: grid;
  gap: 12px;
  padding: 20px 24px;
  background: var(--paper);
  border: 1px solid var(--rule);
  border-radius: var(--r-md);
}
.opc-page-intro h2 {
  margin: 0;
  font-family: var(--font-sans);
  font-size: clamp(24px, 2.8vw, 38px);
  line-height: 1.12;
  font-weight: 600;
  text-wrap: balance;
  overflow-wrap: anywhere;
}
.opc-page-intro p {
  margin: 0;
  color: var(--ink-2);
  font-size: var(--t-base);
  line-height: 1.6;
}
.opc-page-intro__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.opc-filterbar {
  display: grid;
  gap: 12px;
  margin: 24px 0 0;
  padding: 16px;
  background: var(--cream);
  border: 1px solid var(--rule);
  border-radius: var(--r-md);
}
.opc-filterbar__row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.opc-filterbar input {
  width: min(100%, 320px);
  min-height: 44px;
  padding: 10px 14px;
  border: 1px solid var(--rule);
  border-radius: 8px;
  font: inherit;
  background: var(--cream);
  color: var(--ink);
}
.opc-filterbar input:focus-visible {
  outline: 2px solid var(--coral);
  outline-offset: 2px;
}
.opc-chip {
  border: 1px solid var(--rule);
  background: var(--paper);
  color: var(--ink-2);
  border-radius: 999px;
  padding: 8px 12px;
  min-height: 36px;
  font-family: var(--font-sans);
  font-size: 13px;
  line-height: 1;
}
.opc-chip[aria-pressed="true"] {
  background: var(--ink);
  color: var(--cream);
  border-color: var(--ink);
}
.opc-product-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--s-4);
}
.opc-product-card {
  background: var(--cream);
  border: 1px solid var(--rule);
  border-radius: var(--r-md);
  padding: var(--s-5);
  display: grid;
  gap: var(--s-3);
}
.opc-product-card h3 {
  margin: 0;
  font-family: var(--font-sans);
  font-size: clamp(24px, 2.6vw, 34px);
  line-height: 1.1;
  font-weight: 600;
  text-wrap: balance;
  overflow-wrap: anywhere;
}
.opc-product-card p {
  margin: 0;
  color: var(--ink-2);
  font-size: var(--t-base);
  line-height: 1.6;
}
.opc-product-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.opc-product-card__links {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}
.opc-product-card__links a {
  color: var(--link);
  font-weight: 500;
}
.opc-product-card__note {
  color: var(--ink-3);
  font-size: var(--t-sm);
  line-height: 1.55;
}
.opc-product-card__facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 16px;
  margin: 0;
  padding-top: 12px;
  border-top: 1px solid var(--rule);
}
.opc-product-card__facts > div { min-width: 0; }
.opc-product-card__facts dt {
  color: var(--ink-3);
  font-size: var(--t-xs);
  line-height: 1.35;
}
.opc-product-card__facts dd {
  margin: 2px 0 0;
  color: var(--ink-2);
  font-size: var(--t-sm);
  line-height: 1.45;
  overflow-wrap: anywhere;
}
.opc-download-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--s-4);
}
.opc-download-card {
  background: var(--cream);
  border: 1px solid var(--rule);
  border-radius: var(--r-md);
  padding: var(--s-5);
  display: grid;
  gap: var(--s-4);
}
.opc-download-card h3 {
  margin: 0;
  font-family: var(--font-sans);
  font-size: clamp(26px, 3vw, 38px);
  line-height: 1.08;
  font-weight: 600;
  text-wrap: balance;
  overflow-wrap: anywhere;
}
.opc-download-card p {
  margin: 0;
  color: var(--ink-2);
  font-size: var(--t-base);
  line-height: 1.62;
}
.opc-download-card dl {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 16px 0;
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
}
.opc-download-card dl > div {
  display: grid;
  grid-template-columns: 86px 1fr;
  gap: 12px;
}
.opc-download-card dt {
  color: var(--ink-3);
  font-size: var(--t-xs);
  font-weight: 600;
}
.opc-download-card dd {
  margin: 0;
  color: var(--ink-2);
  font-size: var(--t-sm);
  line-height: 1.55;
}
.opc-download-card .opc-product-card__links a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}
.opc-product-rail {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(280px, 1fr);
  gap: var(--s-4);
  overflow-x: auto;
  padding-bottom: 4px;
}
.opc-product-rail .opc-product-card {
  min-width: 280px;
}

/* Product center: software shelf + searchable catalog */
.opc-products-page .opc-section {
  padding: clamp(56px, 7vw, 88px) 0;
}
.opc-products-hero {
  padding: clamp(56px, 8vw, 96px) 0 clamp(40px, 6vw, 72px);
  background: var(--cream);
  border-bottom: 1px solid var(--rule);
}
.opc-products-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(320px, .95fr);
  gap: clamp(28px, 5vw, 64px);
  align-items: start;
}
.opc-products-hero__copy h1 {
  margin: 0 0 22px;
  max-width: 16ch;
  font-size: clamp(42px, 6vw, 76px);
  line-height: 1.03;
  font-weight: 600;
  letter-spacing: -0.035em;
  text-wrap: balance;
  overflow-wrap: anywhere;
}
.opc-products-hero__copy h1 em {
  font-style: normal;
}
.opc-products-hero__copy p {
  margin: 0 0 28px;
  max-width: 68ch;
  color: var(--ink-2);
  font-size: clamp(18px, 1.85vw, 22px);
  line-height: 1.58;
}
.opc-products-brief {
  background: #fff;
  border: 1px solid var(--rule);
  border-radius: 8px;
  padding: clamp(22px, 3vw, 32px);
}
.opc-products-brief h2 {
  margin: 0 0 18px;
  font-size: clamp(24px, 2.8vw, 36px);
  line-height: 1.1;
  font-weight: 600;
  text-wrap: balance;
}
.opc-products-brief dl {
  display: grid;
  gap: 0;
  margin: 0;
}
.opc-products-brief dl > div {
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: 14px;
  padding: 14px 0;
  border-top: 1px solid var(--rule);
}
.opc-products-brief dt {
  color: var(--ink-3);
  font-size: 13px;
  font-weight: 600;
}
.opc-products-brief dd {
  margin: 0;
  color: var(--ink-2);
  font-size: 15px;
  line-height: 1.62;
}
.opc-products-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  margin: clamp(28px, 5vw, 56px) 0 16px;
  background: var(--rule);
  border: 1px solid var(--rule);
  border-radius: 8px;
  overflow: hidden;
}
.opc-products-stats > div {
  min-height: 128px;
  padding: 22px;
  background: #fff;
  display: grid;
  align-content: start;
  gap: 8px;
}
.opc-products-stats b {
  font-size: clamp(30px, 3vw, 44px);
  line-height: 1;
  font-weight: 600;
  letter-spacing: -0.03em;
}
.opc-products-stats span {
  color: var(--ink-3);
  font-size: 13px;
  line-height: 1.45;
}
.opc-products-controls {
  grid-template-columns: minmax(220px, 1fr) 180px;
  align-items: end;
}
.opc-products-controls label {
  color: var(--ink-3);
  font-size: 13px;
  font-weight: 600;
}
.opc-products-controls select {
  min-height: 44px;
  padding: 10px 14px;
  border: 1px solid var(--rule);
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  font: inherit;
}
.opc-products-controls .opc-filterbar__row,
.opc-products-count {
  grid-column: 1 / -1;
}
.opc-products-count,
.opc-products-empty {
  margin: 0;
  color: var(--ink-3);
  font-size: 14px;
}
.opc-products-empty {
  margin-top: 16px;
  padding: 18px;
  background: var(--cream);
  border: 1px dashed var(--rule);
  border-radius: 8px;
}
.opc-product-card__links a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

@media (max-width: 1080px) {
  .opc-products-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 880px) {
  body.opc-tool-detail .opc-tool-hero .opc-shell {
    display: grid;
    grid-template-columns: 1fr;
    row-gap: 18px;
  }
  body.opc-tool-detail .opc-tool-hero .opc-eyebrow,
  body.opc-tool-detail .opc-tool-hero .opc-hero__title,
  body.opc-tool-detail .opc-tool-hero .opc-hero__lede,
  body.opc-tool-detail .opc-tool-hero .opc-hero__cta,
  body.opc-tool-detail .opc-tool-hero .opc-hero__aside,
  body.opc-tool-detail .opc-tool-hero .opc-tool-preview {
    grid-column: 1;
    grid-row: auto;
  }
  body.opc-tool-detail .opc-tool-hero .opc-hero__aside { margin-top: 8px; }
  body.opc-tool-detail .opc-tool-hero .opc-tool-preview { margin-top: 12px; }
  .opc-products-hero__grid,
  .opc-products-controls {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 560px) {
  .opc-products-stats,
  .opc-product-grid {
    grid-template-columns: 1fr;
  }
  .opc-product-card__facts { grid-template-columns: 1fr; }
  .opc-products-brief dl > div {
    grid-template-columns: 1fr;
    gap: 6px;
  }
  .opc-products-controls .opc-filterbar__row,
  .opc-products-count {
    grid-column: 1;
  }
}

/* Product detail pages: dense project pitch + trial + tutorial */
.opc-product-detail .opc-hero {
  padding-bottom: clamp(48px, 7vw, 80px);
}
.opc-product-detail .opc-hero .opc-shell {
  row-gap: var(--s-5);
}
.opc-product-hero__media {
  grid-column: 1 / -1;
  margin: 0;
  display: grid;
  gap: 10px;
}
.opc-product-hero__media img {
  width: 100%;
  aspect-ratio: 16 / 7;
  object-fit: cover;
  object-position: center;
  border-radius: var(--r-md);
  border: 1px solid var(--rule);
}
.opc-product-hero__media figcaption,
.opc-product-gallery figcaption {
  color: var(--ink-3);
  font-size: var(--t-xs);
  line-height: 1.5;
}
.opc-product-facts h2 {
  margin: 0;
  font-size: clamp(22px, 2.4vw, 30px);
  line-height: 1.12;
  font-weight: 600;
}
.opc-product-facts dl {
  display: grid;
  gap: 14px;
  margin: 0;
}
.opc-product-facts dl > div {
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--rule);
}
.opc-product-facts dt {
  color: var(--ink-3);
  font-size: var(--t-xs);
  font-weight: 600;
}
.opc-product-facts dd {
  margin: 0;
  color: var(--ink-2);
  font-size: var(--t-sm);
  line-height: 1.58;
}
.opc-product-matrix {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  background: var(--rule);
  border: 1px solid var(--rule);
  border-radius: var(--r-md);
  overflow: hidden;
}
.opc-product-matrix article {
  min-height: 280px;
  padding: 28px;
  background: var(--cream);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
}
.opc-product-matrix h3,
.opc-compare-card h3,
.opc-tutorial-list h3 {
  margin: 0;
  font-size: clamp(22px, 2.4vw, 30px);
  line-height: 1.12;
  font-weight: 600;
  text-wrap: balance;
  overflow-wrap: anywhere;
}
.opc-product-matrix p,
.opc-compare-card li,
.opc-tutorial-list p,
.opc-product-try p,
.opc-product-try li {
  color: var(--ink-2);
  font-size: var(--t-base);
  line-height: 1.6;
}
.opc-product-matrix p {
  margin: auto 0 0;
}
.opc-compare-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--s-4);
}
.opc-compare-card {
  background: var(--cream);
  border: 1px solid var(--rule);
  border-radius: var(--r-md);
  padding: 30px;
}
.opc-compare-card ul,
.opc-product-try ul {
  margin: 18px 0 0;
  padding-left: 1.15em;
}
.opc-compare-card li + li,
.opc-product-try li + li {
  margin-top: 8px;
}
.opc-product-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--rule);
  border-radius: var(--r-md);
  background: var(--cream);
}
.opc-product-table {
  width: 100%;
  min-width: 860px;
  border-collapse: collapse;
  font-size: var(--t-sm);
  line-height: 1.55;
}
.opc-product-table th,
.opc-product-table td {
  padding: 18px;
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid var(--rule);
}
.opc-product-table thead th {
  background: var(--ink);
  color: var(--cream);
  font-weight: 600;
}
.opc-product-table tbody th {
  width: 18%;
  color: var(--ink);
  font-weight: 600;
}
.opc-product-table td {
  color: var(--ink-2);
}
.opc-product-table a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  color: var(--link);
  font-weight: 500;
}
.opc-product-table tr:last-child th,
.opc-product-table tr:last-child td {
  border-bottom: 0;
}
.opc-product-try {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr);
  gap: var(--s-5);
  align-items: center;
  padding: clamp(28px, 5vw, 56px);
  background: #000;
  color: #f5f5f7;
  border-radius: var(--r-md);
}
.opc-product-try h2 {
  margin: 0 0 16px;
  font-size: clamp(36px, 4.5vw, 58px);
  line-height: 1.06;
  font-weight: 600;
  text-wrap: balance;
  overflow-wrap: anywhere;
}
.opc-product-try p,
.opc-product-try li {
  color: #a1a1a6;
}
.opc-product-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 24px;
}
.opc-product-qr {
  display: grid;
  justify-items: center;
  gap: 10px;
  padding: 28px;
  background: #f5f5f7;
  color: var(--ink);
  border-radius: var(--r-md);
}
.opc-product-qr img {
  width: min(260px, 100%);
  aspect-ratio: 1;
  object-fit: contain;
  padding: 10px;
  background: #fff;
  border-radius: var(--r-md);
}
.opc-product-qr b {
  font-size: var(--t-base);
  font-weight: 600;
}
.opc-product-qr span {
  color: var(--ink-3);
  font-size: var(--t-sm);
}
.opc-tutorial-list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  background: var(--rule);
  border: 1px solid var(--rule);
  border-radius: var(--r-md);
  overflow: hidden;
}
.opc-tutorial-list article {
  background: var(--cream);
  padding: 26px;
}
.opc-tutorial-list b {
  display: block;
  margin-bottom: 14px;
  color: var(--ink-3);
  font-size: var(--t-xs);
  font-weight: 600;
}
.opc-tutorial-list p {
  margin: 14px 0 0;
}
.opc-product-gallery {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--s-4);
}
.opc-product-gallery figure {
  margin: 0;
  display: grid;
  gap: 10px;
}
.opc-product-gallery img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--r-md);
  border: 1px solid var(--rule);
}
.opc-final-cta {
  max-width: 820px;
}
.opc-section[data-variant="ink"] .opc-final-cta .opc-eyebrow {
  color: #a1a1a6;
}
.opc-final-cta h2 {
  margin: 0 0 16px;
  color: #f5f5f7;
  font-size: clamp(36px, 4.8vw, 62px);
  line-height: 1.06;
  font-weight: 600;
  text-wrap: balance;
  overflow-wrap: anywhere;
}
.opc-final-cta p {
  margin: 0;
  color: #a1a1a6;
  font-size: clamp(17px, 1.8vw, 22px);
  line-height: 1.5;
}
.opc-section[data-variant="ink"] .opc-btn--ghost {
  color: #2997ff;
}

/* Learning center: dense route hub, high-clarity entry points */
.opc-learning-page .opc-section {
  padding: clamp(56px, 7vw, 88px) 0;
}
.opc-section__head--wide {
  max-width: 940px;
}
.opc-learning-hero {
  padding: clamp(56px, 8vw, 96px) 0 clamp(40px, 6vw, 72px);
  background: var(--cream);
  border-bottom: 1px solid var(--rule);
}
.opc-learning-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(320px, .92fr);
  gap: clamp(28px, 5vw, 64px);
  align-items: start;
}
.opc-learning-hero__copy h1 {
  margin: 0 0 22px;
  max-width: 15ch;
  font-size: clamp(42px, 6.2vw, 76px);
  line-height: 1.03;
  font-weight: 600;
  letter-spacing: -0.035em;
  text-wrap: balance;
  overflow-wrap: anywhere;
}
.opc-learning-hero__copy p {
  margin: 0 0 28px;
  max-width: 66ch;
  color: var(--ink-2);
  font-size: clamp(18px, 1.9vw, 22px);
  line-height: 1.58;
}
.opc-learning-brief {
  background: #fff;
  border: 1px solid var(--rule);
  border-radius: 8px;
  padding: clamp(22px, 3vw, 32px);
}
.opc-learning-brief h2 {
  margin: 0 0 18px;
  font-size: clamp(24px, 2.8vw, 36px);
  line-height: 1.1;
  font-weight: 600;
  text-wrap: balance;
}
.opc-learning-brief dl {
  display: grid;
  gap: 0;
  margin: 0;
}
.opc-learning-brief dl > div {
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: 14px;
  padding: 14px 0;
  border-top: 1px solid var(--rule);
}
.opc-learning-brief dt {
  color: var(--ink-3);
  font-size: 13px;
  font-weight: 600;
}
.opc-learning-brief dd {
  margin: 0;
  color: var(--ink-2);
  font-size: 15px;
  line-height: 1.62;
}
.opc-learning-entry-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  background: var(--rule);
  border: 1px solid var(--rule);
  border-radius: 8px;
  overflow: hidden;
}
.opc-learning-entry {
  min-height: 150px;
  padding: 24px;
  background: #fff;
  display: grid;
  align-content: start;
  gap: 10px;
  transition: background .15s var(--ease), color .15s var(--ease);
}
.opc-learning-entry:hover {
  background: var(--ink);
  color: var(--cream);
}
.opc-learning-entry b {
  font-size: clamp(20px, 2vw, 28px);
  line-height: 1.12;
  font-weight: 600;
}
.opc-learning-entry span {
  color: var(--ink-3);
  font-size: 14px;
  line-height: 1.55;
}
.opc-learning-entry:hover span {
  color: rgba(255,255,255,.72);
}
.opc-learning-filterbar {
  display: grid;
  gap: 12px;
  margin: 0 0 20px;
  padding: 18px;
  background: var(--cream);
  border: 1px solid var(--rule);
  border-radius: 8px;
}
.opc-learning-filterbar label {
  color: var(--ink-3);
  font-size: 13px;
  font-weight: 600;
}
.opc-learning-filterbar input {
  width: min(100%, 560px);
  min-height: 44px;
  padding: 10px 14px;
  border: 1px solid var(--rule);
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  font: inherit;
}
.opc-learning-route-stack {
  display: grid;
  gap: 14px;
}
.opc-learning-route {
  display: grid;
  grid-template-columns: minmax(260px, .85fr) minmax(0, 1.1fr) minmax(180px, .55fr);
  gap: 22px;
  align-items: start;
  padding: clamp(20px, 3vw, 30px);
  background: var(--cream);
  border: 1px solid var(--rule);
  border-radius: 8px;
}
.opc-learning-route[hidden] {
  display: none;
}
.opc-learning-route h3 {
  margin: 12px 0 10px;
  font-size: clamp(24px, 2.6vw, 36px);
  line-height: 1.1;
  font-weight: 600;
  text-wrap: balance;
  overflow-wrap: anywhere;
}
.opc-learning-route p {
  margin: 0;
  color: var(--ink-2);
  font-size: 15px;
  line-height: 1.62;
}
.opc-learning-route__facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  margin: 0;
  border-top: 1px solid var(--rule);
  border-left: 1px solid var(--rule);
}
.opc-learning-route__facts > div {
  min-height: 116px;
  padding: 14px;
  border-right: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  background: rgba(255,255,255,.55);
}
.opc-learning-route__facts dt {
  margin-bottom: 6px;
  color: var(--ink-3);
  font-size: 12px;
  font-weight: 600;
}
.opc-learning-route__facts dd {
  margin: 0;
  color: var(--ink-2);
  font-size: 14px;
  line-height: 1.55;
}
.opc-learning-route__links {
  display: grid;
  gap: 10px;
}
.opc-learning-route__links a,
.opc-learning-guide-grid a,
.opc-learning-service-grid a,
.opc-learning-toolbelt a {
  color: var(--link);
  font-weight: 500;
}
.opc-learning-route__links a {
  min-height: 44px;
  display: flex;
  align-items: center;
  padding: 10px 0;
  border-bottom: 1px solid var(--rule);
}
.opc-learning-empty {
  margin: 18px 0 0;
  padding: 18px;
  background: var(--cream);
  border: 1px dashed var(--rule);
  border-radius: 8px;
  color: var(--ink-3);
}
.opc-learning-guide-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  background: var(--rule);
  border: 1px solid var(--rule);
  border-radius: 8px;
  overflow: hidden;
}
.opc-learning-guide-grid article {
  min-height: 320px;
  padding: 24px;
  background: #fff;
}
.opc-learning-guide-grid h3 {
  margin: 0 0 16px;
  font-size: clamp(22px, 2.2vw, 30px);
  line-height: 1.12;
  font-weight: 600;
}
.opc-learning-guide-grid ul {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.opc-learning-guide-grid li {
  padding-top: 10px;
  border-top: 1px solid var(--rule);
  font-size: 14px;
  line-height: 1.45;
}
.opc-learning-guide-grid li a {
  min-height: 44px;
  display: flex;
  align-items: center;
}
.opc-learning-service-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}
.opc-learning-service-grid article {
  display: grid;
  align-content: start;
  gap: 12px;
  min-height: 260px;
  padding: 24px;
  background: var(--cream);
  border: 1px solid var(--rule);
  border-radius: 8px;
}
.opc-learning-service-grid b {
  color: var(--ink-3);
  font-size: 13px;
  font-weight: 600;
}
.opc-learning-service-grid h3 {
  margin: 0;
  font-size: clamp(22px, 2.2vw, 30px);
  line-height: 1.12;
  font-weight: 600;
  text-wrap: balance;
}
.opc-learning-service-grid p {
  margin: 0;
  color: var(--ink-2);
  font-size: 14px;
  line-height: 1.6;
}
.opc-learning-service-grid a {
  margin-top: auto;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}
.opc-learning-toolbelt {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1px;
  background: var(--rule);
  border: 1px solid var(--rule);
  border-radius: 8px;
  overflow: hidden;
}
.opc-learning-toolbelt a {
  min-height: 168px;
  padding: 22px;
  background: #fff;
  display: grid;
  align-content: start;
  gap: 10px;
}
.opc-learning-toolbelt b {
  color: var(--ink);
  font-size: 20px;
  line-height: 1.15;
  font-weight: 600;
}
.opc-learning-toolbelt span {
  color: var(--ink-3);
  font-size: 14px;
  line-height: 1.55;
}

@media (max-width: 1080px) {
  .opc-learning-entry-grid,
  .opc-learning-guide-grid,
  .opc-learning-service-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .opc-learning-route {
    grid-template-columns: 1fr;
  }
  .opc-learning-toolbelt {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 880px) {
  .opc-learning-hero__grid {
    grid-template-columns: 1fr;
  }
  .opc-learning-hero__copy h1 {
    max-width: 18ch;
  }
}

@media (max-width: 560px) {
  .opc-learning-entry-grid,
  .opc-learning-guide-grid,
  .opc-learning-service-grid,
  .opc-learning-toolbelt {
    grid-template-columns: 1fr;
  }
  .opc-learning-brief dl > div,
  .opc-learning-route__facts {
    grid-template-columns: 1fr;
  }
  .opc-learning-entry,
  .opc-learning-guide-grid article,
  .opc-learning-service-grid article,
  .opc-learning-toolbelt a {
    min-height: 0;
  }
}

/* Creative radar: daily high-density opportunity board */
.opc-radar-page .opc-section {
  padding: clamp(56px, 7vw, 88px) 0;
}
.opc-radar-hero {
  padding: clamp(56px, 8vw, 96px) 0 clamp(40px, 6vw, 72px);
  background: var(--cream);
  border-bottom: 1px solid var(--rule);
}
.opc-radar-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(320px, .95fr);
  gap: clamp(28px, 5vw, 64px);
  align-items: start;
}
.opc-radar-hero__copy h1 {
  margin: 0 0 22px;
  max-width: 16ch;
  font-size: clamp(42px, 6vw, 76px);
  line-height: 1.03;
  font-weight: 600;
  letter-spacing: -0.035em;
  text-wrap: balance;
  overflow-wrap: anywhere;
}
.opc-radar-hero__copy p {
  margin: 0 0 28px;
  max-width: 68ch;
  color: var(--ink-2);
  font-size: clamp(18px, 1.85vw, 22px);
  line-height: 1.58;
}
.opc-radar-brief {
  background: #fff;
  border: 1px solid var(--rule);
  border-radius: 8px;
  padding: clamp(22px, 3vw, 32px);
}
.opc-radar-brief h2 {
  margin: 0 0 18px;
  font-size: clamp(24px, 2.8vw, 36px);
  line-height: 1.1;
  font-weight: 600;
  text-wrap: balance;
}
.opc-radar-brief dl {
  display: grid;
  gap: 0;
  margin: 0;
}
.opc-radar-brief dl > div {
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: 14px;
  padding: 14px 0;
  border-top: 1px solid var(--rule);
}
.opc-radar-brief dt {
  color: var(--ink-3);
  font-size: 13px;
  font-weight: 600;
}
.opc-radar-brief dd {
  margin: 0;
  color: var(--ink-2);
  font-size: 15px;
  line-height: 1.62;
}
.opc-radar-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  margin: 0 0 16px;
  background: var(--rule);
  border: 1px solid var(--rule);
  border-radius: 8px;
  overflow: hidden;
}
.opc-radar-stats > div {
  min-height: 132px;
  padding: 22px;
  background: #fff;
  display: grid;
  align-content: start;
  gap: 8px;
}
.opc-radar-stats b {
  font-size: clamp(30px, 3vw, 44px);
  line-height: 1;
  font-weight: 600;
  letter-spacing: -0.03em;
}
.opc-radar-stats span {
  color: var(--ink-3);
  font-size: 13px;
  line-height: 1.45;
}
.opc-radar-board {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.opc-radar-panel,
.opc-radar-table-panel {
  background: #fff;
  border: 1px solid var(--rule);
  border-radius: 8px;
  padding: clamp(20px, 2.4vw, 28px);
}
.opc-radar-panel h3,
.opc-radar-table-panel h3 {
  margin: 0 0 10px;
  font-size: clamp(22px, 2.2vw, 30px);
  line-height: 1.12;
  font-weight: 600;
  text-wrap: balance;
}
.opc-radar-panel p {
  margin: 0;
  color: var(--ink-2);
  font-size: 15px;
  line-height: 1.65;
}
.opc-radar-table-panel {
  display: grid;
  gap: 18px;
  margin-top: 14px;
}
.opc-radar-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--rule);
  border-radius: 8px;
  background: #fff;
}
.opc-radar-table {
  width: 100%;
  min-width: 1040px;
  border-collapse: collapse;
  font-size: 14px;
}
.opc-radar-table th,
.opc-radar-table td {
  padding: 13px 12px;
  border-bottom: 1px solid var(--rule);
  text-align: left;
  vertical-align: top;
}
.opc-radar-table th {
  background: var(--paper);
  color: var(--ink-3);
  font-size: 12px;
  font-weight: 600;
}
.opc-radar-table td {
  color: var(--ink-2);
  line-height: 1.55;
}
.opc-radar-table strong {
  display: block;
  color: var(--ink);
  font-weight: 600;
  margin-bottom: 4px;
}
.opc-radar-table small {
  display: block;
  color: var(--ink-3);
  line-height: 1.45;
}
.opc-radar-table a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}
.opc-radar-controls {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) 180px;
  gap: 10px 12px;
  margin: 0 0 14px;
  padding: 18px;
  background: var(--cream);
  border: 1px solid var(--rule);
  border-radius: 8px;
}
.opc-radar-controls label {
  color: var(--ink-3);
  font-size: 13px;
  font-weight: 600;
}
.opc-radar-controls input,
.opc-radar-controls select {
  width: 100%;
  min-height: 44px;
  padding: 10px 14px;
  border: 1px solid var(--rule);
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  font: inherit;
}
.opc-radar-controls .opc-filterbar__row {
  grid-column: 1 / -1;
}
.opc-radar-count,
.opc-radar-empty {
  margin: 0 0 14px;
  color: var(--ink-3);
  font-size: 14px;
}
.opc-radar-empty {
  padding: 18px;
  background: var(--cream);
  border: 1px dashed var(--rule);
  border-radius: 8px;
}
.opc-radar-list {
  display: grid;
  gap: 14px;
}
.opc-radar-card {
  display: grid;
  grid-template-columns: minmax(250px, .75fr) minmax(0, 1.35fr) minmax(180px, .5fr);
  gap: 20px;
  padding: clamp(20px, 2.8vw, 30px);
  background: var(--cream);
  border: 1px solid var(--rule);
  border-radius: 8px;
}
.opc-radar-card[hidden] {
  display: none;
}
.opc-radar-card__head {
  display: grid;
  align-content: start;
  gap: 12px;
}
.opc-radar-card__head h3 {
  margin: 0;
  font-size: clamp(24px, 2.6vw, 36px);
  line-height: 1.1;
  font-weight: 600;
  text-wrap: balance;
  overflow-wrap: anywhere;
}
.opc-radar-card__summary {
  margin: 0;
  color: var(--ink-2);
  font-size: 15px;
  line-height: 1.62;
}
.opc-radar-card__facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  margin: 0;
  border-top: 1px solid var(--rule);
  border-left: 1px solid var(--rule);
}
.opc-radar-card__facts > div {
  min-height: 112px;
  padding: 14px;
  background: rgba(255,255,255,.56);
  border-right: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
}
.opc-radar-card__facts dt {
  margin-bottom: 6px;
  color: var(--ink-3);
  font-size: 12px;
  font-weight: 600;
}
.opc-radar-card__facts dd {
  margin: 0;
  color: var(--ink-2);
  font-size: 14px;
  line-height: 1.55;
}
.opc-radar-card__actions {
  display: grid;
  align-content: start;
  gap: 10px;
}
.opc-radar-card__actions a {
  min-height: 44px;
  display: flex;
  align-items: center;
  color: var(--link);
  font-weight: 500;
  border-bottom: 1px solid var(--rule);
}
.opc-radar-card__actions .note {
  color: var(--ink-3);
  font-size: 13px;
  line-height: 1.55;
}
.opc-radar-focus-list,
.opc-radar-mini {
  display: grid;
  gap: 12px;
  margin: 14px 0 0;
  padding: 0;
  list-style: none;
}
.opc-radar-focus-list li,
.opc-radar-mini li {
  padding-top: 12px;
  border-top: 1px solid var(--rule);
  color: var(--ink-3);
  font-size: 14px;
  line-height: 1.55;
}
.opc-radar-focus-list strong,
.opc-radar-mini strong {
  display: block;
  color: var(--ink);
  font-size: 15px;
  line-height: 1.4;
}
.opc-radar-badge-line {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
}
.opc-radar-badge-line a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}
.opc-radar-source-list,
.opc-radar-task-list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}
.opc-radar-source,
.opc-radar-task {
  min-height: 250px;
  display: grid;
  align-content: start;
  gap: 12px;
  padding: 24px;
  background: #fff;
  border: 1px solid var(--rule);
  border-radius: 8px;
}
.opc-radar-source h3,
.opc-radar-task h3 {
  margin: 0;
  font-size: clamp(20px, 2vw, 28px);
  line-height: 1.12;
  font-weight: 600;
  text-wrap: balance;
}
.opc-radar-source p,
.opc-radar-task p {
  margin: 0;
  color: var(--ink-2);
  font-size: 14px;
  line-height: 1.6;
}
.opc-radar-source a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  color: var(--link);
  font-weight: 500;
}
.opc-radar-source .note {
  color: var(--ink-3);
  font-size: 13px;
  line-height: 1.5;
}
.opc-radar-final-lede {
  margin-left: auto;
  margin-right: auto;
}
.opc-radar-final-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
  margin-top: 32px;
}

@media (max-width: 1080px) {
  .opc-radar-stats,
  .opc-radar-board,
  .opc-radar-source-list,
  .opc-radar-task-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .opc-radar-card {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 880px) {
  .opc-radar-hero__grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 560px) {
  .opc-radar-stats,
  .opc-radar-board,
  .opc-radar-source-list,
  .opc-radar-task-list,
  .opc-radar-controls,
  .opc-radar-card__facts {
    grid-template-columns: 1fr;
  }
  .opc-radar-brief dl > div {
    grid-template-columns: 1fr;
    gap: 6px;
  }
  .opc-radar-controls .opc-filterbar__row {
    grid-column: 1;
  }
  .opc-radar-source,
  .opc-radar-task {
    min-height: 0;
  }
}

/* Tool detail pages: dense explainer + working form */
.opc-tool-preview {
  grid-column: 1 / -1;
  margin-top: var(--s-2);
}
.opc-tool-preview__screen {
  width: 100%;
  padding: clamp(24px, 4vw, 42px);
  background: #000;
  color: #f5f5f7;
  border-radius: var(--r-md);
  display: grid;
  gap: 18px;
}
.opc-tool-preview__screen > span {
  color: #a1a1a6;
  font-size: var(--t-xs);
  font-weight: 600;
}
.opc-tool-preview__screen h2 {
  margin: 0;
  max-width: 28ch;
  font-size: clamp(30px, 4vw, 50px);
  line-height: 1.08;
  font-weight: 600;
  text-wrap: balance;
  overflow-wrap: anywhere;
}
.opc-tool-preview__screen ul {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin: 0;
  padding: 0;
  list-style: none;
  background: rgba(255,255,255,.18);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: var(--r-md);
  overflow: hidden;
}
.opc-tool-preview__screen li {
  min-height: 140px;
  padding: 20px;
  background: #1d1d1f;
  display: grid;
  align-content: start;
  gap: 10px;
}
.opc-tool-preview__screen b {
  color: #f5f5f7;
  font-size: var(--t-base);
  font-weight: 600;
}
.opc-tool-preview__screen em {
  color: #a1a1a6;
  font-style: normal;
  font-size: var(--t-sm);
  line-height: 1.55;
}

/* Scope planner: keep the decision aid beside the action instead of leaving
 * the first viewport as a mostly empty editorial column. */
body.opc-tool-detail .opc-tool-hero {
  padding-top: clamp(52px, 6vw, 82px);
  padding-bottom: clamp(40px, 6vw, 72px);
  background: var(--paper);
}
body.opc-tool-detail .opc-tool-hero .opc-shell {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(320px, .92fr);
  column-gap: clamp(32px, 5vw, 72px);
  row-gap: 20px;
  align-items: start;
}
body.opc-tool-detail .opc-tool-hero .opc-eyebrow,
body.opc-tool-detail .opc-tool-hero .opc-hero__title,
body.opc-tool-detail .opc-tool-hero .opc-hero__lede,
body.opc-tool-detail .opc-tool-hero .opc-hero__cta { grid-column: 1; }
body.opc-tool-detail .opc-tool-hero .opc-eyebrow { grid-row: 1; }
body.opc-tool-detail .opc-tool-hero .opc-hero__title {
  grid-row: 2;
  max-width: 18ch;
  font-size: clamp(42px, 5.2vw, 68px);
  line-height: 1.02;
  margin-bottom: 0;
}
body.opc-tool-detail .opc-tool-hero .opc-hero__lede {
  grid-row: 3;
  max-width: 48ch;
  margin-bottom: 0;
  font-size: clamp(18px, 1.8vw, 23px);
}
body.opc-tool-detail .opc-tool-hero .opc-hero__cta {
  grid-row: 4;
  margin-bottom: 0;
}
body.opc-tool-detail .opc-tool-hero .opc-hero__aside {
  grid-column: 2;
  grid-row: 1 / span 4;
  margin: 0;
  align-self: stretch;
}
body.opc-tool-detail .opc-tool-hero .opc-tool-preview {
  grid-column: 1 / -1;
  grid-row: 5;
  margin-top: 20px;
}
body.opc-tool-detail .opc-tool-hero .opc-tool-preview__screen {
  background: var(--ink);
  border: 1px solid rgba(255,255,255,.12);
}
body.opc-tool-detail .opc-tool-hero .opc-tool-preview__screen h2 {
  max-width: 24ch;
  font-size: clamp(27px, 3.2vw, 42px);
}
.opc-tool-form-grid {
  display: grid;
  grid-template-columns: minmax(240px, .72fr) minmax(0, 1.28fr);
  gap: clamp(28px, 5vw, 56px);
  align-items: start;
}
.opc-tool-form-grid > div:first-child {
  position: sticky;
  top: 84px;
}
.opc-tool-form-grid h2 {
  margin: 0 0 14px;
  font-size: clamp(34px, 4.2vw, 54px);
  line-height: 1.08;
  font-weight: 600;
  text-wrap: balance;
  overflow-wrap: anywhere;
}
.opc-tool-form-grid p {
  margin: 0;
  color: var(--ink-2);
  font-size: var(--t-base);
  line-height: 1.62;
}
.opc-tool-output-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 22px;
}
.opc-tool-output-list b,
.opc-tool-output-list span {
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  padding: 8px 12px;
  border-radius: 999px;
  font-size: var(--t-sm);
}
.opc-tool-output-list b {
  background: var(--ink);
  color: var(--cream);
  font-weight: 600;
}
.opc-tool-output-list span {
  background: var(--paper);
  border: 1px solid var(--rule);
  color: var(--ink-2);
}
.diagnosis-quick-start {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  padding: 20px;
  background: var(--paper);
  border: 1px solid var(--rule);
  border-radius: var(--r-md);
}
.diagnosis-quick-start h3 {
  margin: 0 0 6px;
  font-size: clamp(20px, 2.2vw, 28px);
  line-height: 1.14;
  font-weight: 600;
}
.opc-tool-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.diagnosis-quick-links {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 18px 0 0;
}
.diagnosis-quick-links a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  color: #2997ff;
  font-weight: 500;
}

.opc-footer { background: var(--paper); color: var(--ink-2); margin-top: 0; padding: 48px 0 24px; }
.opc-footer__inner { gap: 40px; }
.opc-footer__brand { font-family: var(--font-sans); }
.opc-footer__brand small, .opc-footer__col h4 { font-family: var(--font-sans); color: var(--ink-3); }
.opc-footer__legal, .opc-footer__col a, .opc-footer__bottom { color: var(--ink-3); }
.opc-footer__col a { min-height: 44px; display: inline-flex; align-items: center; }
.opc-footer__bottom a { min-height: 44px; display: inline-flex; align-items: center; }
.opc-footer__col a:hover { color: var(--ink); }
.opc-footer__bottom { border-top-color: var(--rule); }

@media (max-width: 880px) {
  .opc-header__inner { min-height: 52px; gap: 8px; }
  .opc-header .opc-nav { display: none; }
  .opc-header .opc-lang-mobile { display: inline-flex; margin-left: auto; min-height: 44px; }
  .opc-wordmark { min-height: 44px; align-items: center; }
  .opc-header .opc-cta { min-height: 44px; margin-left: 0; }
  .opc-hero { padding-top: 64px; }
  .opc-hero__title { font-size: clamp(40px, 11vw, 52px); }
  .opc-hero__lede { font-size: 20px; }
  .opc-home__hero-visual { margin-top: 40px; }
  .opc-home__hero-visual img { aspect-ratio: 4 / 3; }
  .opc-home__quick-grid { grid-template-columns: 1fr 1fr; }
  .opc-work__item { grid-template-columns: 1fr; min-height: 0; }
  .opc-work__item figure { padding: 0 0 32px 24px; }
  .opc-work__item img { max-height: 320px; }
  .opc-trial-grid { grid-template-columns: 1fr; }
  .opc-trial-card--featured { grid-template-columns: 1fr; }
  .opc-trial-card__media { min-height: 300px; }
  .opc-method { gap: 1px; }
  .opc-method__step { border: 0 !important; }
  .opc-resource-matrix { grid-template-columns: 1fr; }
  .opc-product-matrix,
  .opc-tutorial-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .opc-product-gallery,
  .opc-compare-grid,
  .opc-download-grid,
  .opc-product-try,
  .opc-tool-form-grid {
    grid-template-columns: 1fr;
  }
  .opc-tool-form-grid > div:first-child {
    position: static;
  }
  .opc-tool-preview__screen ul {
    grid-template-columns: 1fr;
  }
  .opc-product-hero__media img {
    aspect-ratio: 4 / 3;
  }
}

@media (max-width: 480px) {
  :root { --shell: min(100% - 32px, 1120px); --shell-narrow: min(100% - 32px, 760px); --gutter: 0; }
  .opc-wordmark { font-size: 17px; }
  .opc-cta { font-size: 12px; padding: 8px 12px; }
  .opc-hero__evidence { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 12px; }
  .opc-btn { font-size: 16px; }
  .opc-section { padding: 64px 0; }
  .opc-section__title { font-size: 36px; }
  .opc-card, .opc-method__step { padding: 24px; }
  .opc-trial-card, .opc-boundary-tile { padding: 24px; }
  .opc-trial-card h3 { font-size: 32px; }
  .opc-trial-card__media { padding: 24px; }
  .opc-work__copy { padding: 36px 24px; }
  .opc-work__copy h3 { font-size: 40px; }
  .opc-work__item figure { padding-left: 16px; }
  .opc-home__quick-grid { grid-template-columns: 1fr; }
  .opc-footer__inner { grid-template-columns: 1fr; }
  .opc-route-card { padding: 24px; }
  .opc-product-matrix,
  .opc-tutorial-list {
    grid-template-columns: 1fr;
  }
  .opc-product-matrix article,
  .opc-compare-card,
  .opc-download-card,
  .opc-tutorial-list article,
  .opc-product-qr {
    padding: 22px;
  }
  .opc-download-card dl > div {
    grid-template-columns: 1fr;
    gap: 4px;
  }
  .opc-product-facts dl > div {
    grid-template-columns: 1fr;
    gap: 6px;
  }
  .opc-product-try {
    padding: 24px;
  }
  .opc-product-try h2,
  .opc-final-cta h2 {
    font-size: 36px;
  }
  .diagnosis-quick-start {
    grid-template-columns: 1fr;
    padding: 18px;
  }
  .opc-tool-preview__screen {
    padding: 22px;
  }
  .opc-tool-preview__screen h2,
  .opc-tool-form-grid h2 {
    font-size: 34px;
  }
}

/* Reduce motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* Final responsive override for the scope planner. This must remain after
 * the shared product-detail rules so the mobile grid cannot be re-expanded. */
@media (max-width: 880px) {
  body.opc-tool-detail .opc-tool-hero .opc-shell {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
  }
  body.opc-tool-detail .opc-tool-hero .opc-eyebrow,
  body.opc-tool-detail .opc-tool-hero .opc-hero__title,
  body.opc-tool-detail .opc-tool-hero .opc-hero__lede,
  body.opc-tool-detail .opc-tool-hero .opc-hero__cta,
  body.opc-tool-detail .opc-tool-hero .opc-hero__aside,
  body.opc-tool-detail .opc-tool-hero .opc-tool-preview {
    grid-column: 1;
    grid-row: auto;
  }
}

/* Keep the homepage narrative moving without changing inner-page spacing. */
.opc-home .opc-section {
  padding-block: clamp(48px, 4vw, 64px);
}
.opc-home .opc-section[data-variant="cream"] + .opc-section[data-variant="cream"] {
  padding-top: clamp(24px, 2.5vw, 40px);
}
.opc-home .opc-section__head {
  margin-bottom: 32px;
}

@media (max-width: 480px) {
  .opc-home .opc-section {
    padding-block: 48px;
  }
  .opc-home .opc-section[data-variant="cream"] + .opc-section[data-variant="cream"] {
    padding-top: 24px;
  }
  .opc-home .opc-section__head {
    margin-bottom: 28px;
  }
}
