/* ============================================================
   typography.css — 蔚蓝风 VI 规范排印层（「角度与重音」体系）
   加载顺序：style.css → extra.css → theme-light.css → 本文件（最后加载，可覆盖）
   依据：《蔚蓝研创 VI 体系规范》V1.0（2026-10）
   ────────────────────────────────────────────────────────────
   核心法则（高于一切组件样式）：
   1. 五色体系：红 #D02928(≤10%) / 白 #FFFFFF(45%) / 墨黑 #16171A(25%)
                / 浅雾灰 #F7F7F5(15%) / 炭灰 #3D3E3F(5%)
   2. 每屏红色 ≤ 2 处；点睛优先用墨黑（加重=加黑加粗，不是加红）
   3. 斜切 -6° 只给 H0/H1 级大标题，方向固定向右；<28px 取消
   4. 直角卡片 + 1px 发丝线分区，禁色块投影堆层级
   5. 动效单向到位：缓动 cubic-bezier(0.22,0.61,0.36,1)，
      进场 8-12px 位移 + 渐显 400-600ms；禁回弹/循环/发光/光扫
   6. 禁渐变字/描边字/投影字/发光字；禁蓝紫橙黄与自造色
   ============================================================ */

:root {
  /* ---- VI 五色 ---- */
  --vi-red: #D02928;
  --vi-white: #FFFFFF;
  --vi-ink: #16171A;
  --vi-mist: #F7F7F5;
  --vi-charcoal: #3D3E3F;

  /* ---- 字体 ----
     英文字体（Archivo Black / Inter / JetBrains Mono）已本地化为 static/vendor/fonts/woff2；
     中文字体改用系统字体栈：国内访问不到 fonts.googleapis.com，本地化思源黑体体积过大且收益低，
     系统苹方 / 鸿蒙 / 雅黑本身即是高质量无衬线黑体，还能做到 0 网络请求、首屏不闪字。 */
  --font-cjk: 'PingFang SC', 'HarmonyOS Sans SC', 'Microsoft YaHei', 'Hiragino Sans GB',
              'Source Han Sans SC', 'Noto Sans SC', 'WenQuanYi Micro Hei', system-ui, sans-serif;
  --font-display: 'Archivo Black', var(--font-cjk);
  --font-body: 'Inter', var(--font-cjk);
  --font-mono: 'JetBrains Mono', 'SFMono-Regular', Menlo, Consolas, monospace;

  /* ---- 动效（VI 主缓动，弹簧禁用） ---- */
  --ease-out: cubic-bezier(0.22, 0.61, 0.36, 1);
  --ease-spring: cubic-bezier(0.22, 0.61, 0.36, 1);

  /* ---- 圆角体系（工业感圆角：克制、不倒角，避免玩具感） ---- */
  --radius: 16px;         /* 卡片 */
  --radius-lg: 22px;      /* 大卡 / 图片容器 */
  --radius-sm: 10px;      /* 标签 / 小元件 / 内嵌图 */
  --radius-pill: 999px;   /* 按钮 / 胶囊标签 */

  /* ---- 排印阶梯（VI 字体系统） ----
     H0 72-120px 900 lh1.0 斜切 | H1 44-64px 900 lh1.1 斜切
     H2 30-40px 700 lh1.2       | H3 22-28px 600 lh1.35      */
  --type-hero: clamp(2.5rem, 7vw, 5rem);
  --type-section: clamp(1.75rem, 4.6vw, 3.25rem);
  --type-subhead: clamp(1.375rem, 2.4vw, 1.75rem);
  --type-card: clamp(1.125rem, 1.6vw, 1.375rem);
  --type-body: clamp(1rem, 1.2vw, 1.0625rem);
  --type-caption: 0.8125rem;

  --lh-display: 1.05;
  --lh-snug: 1.35;
  --lh-body: 1.85;
  --lh-caption: 1.6;

  --ls-display: -0.01em;   /* 大标题负字距收紧 */
  --ls-body: 0.01em;       /* 正文 +0.01em */
  --ls-caption: 0.12em;    /* 标签小字正字距放大（紧—松对照） */
  --ls-num: -0.02em;
  --ls-tag: 0.08em;   /* 兼容旧行内样式 */

  --fw-display: 900;
  --fw-heavy: 700;

  --space-section: clamp(5.5rem, 9vw, 8rem);
  --space-section-sm: clamp(3.5rem, 6vw, 5.5rem);
}

/* ============================================================
   一、五色令牌（浅色模式 · 白 45% 为页面默认底）
   ============================================================ */
body.light {
  --bg: var(--vi-white);
  --bg-card: #FFFFFF;                 /* 卡片纯白（用户指定：保留外框、内部不灰） */
  --text: var(--vi-ink);              /* H0-H2 与主文字 */
  --text-muted: var(--vi-charcoal);   /* 正文/次级标题 */
  --text-dim: #8B8D8F;                /* Caption/图注 */
  --accent: var(--vi-red);
  --accent-glow: transparent;
  --accent-soft: rgba(208, 41, 40, 0.06);
  --surface: #FFFFFF;
  --border: rgba(61, 62, 63, 0.18);   /* 1px 发丝线 */
  --border-hover: rgba(61, 62, 63, 0.40);
}

/* ============================================================
   二、五色令牌（深色模式 · 墨黑 #16171A 升至主导）
   ============================================================ */
body:not(.light) {
  --bg: var(--vi-ink);
  --bg-card: #1E1F23;
  --text: var(--vi-white);
  --text-muted: #EDEDEB;
  --text-dim: #8B8D8F;
  --accent: var(--vi-red);
  --accent-glow: transparent;
  --accent-soft: rgba(208, 41, 40, 0.14);
  --surface: #1E1F23;
  --border: rgba(237, 237, 235, 0.14);
  --border-hover: rgba(237, 237, 235, 0.32);
}

/* ============================================================
   三、标题阶梯 + 斜切 -6°（只有 H0/H1 级斜切）
   ============================================================ */
.hero-title,
.vi-skew {
  display: inline-block;
  transform: skewX(-6deg);            /* 一个角度：整体右倾 */
}

.hero-title {
  font-size: var(--type-hero);
  font-weight: var(--fw-display);
  line-height: var(--lh-display);
  letter-spacing: var(--ls-display);
  font-family: var(--font-cjk), var(--font-display);
}

.section-title,
.statement-line {
  font-size: var(--type-section);
  font-weight: var(--fw-display);
  line-height: 1.15;
  letter-spacing: var(--ls-display);
  font-family: var(--font-cjk), var(--font-display);
}

.statement-line.active { color: var(--text); }

h3, .card-title {
  font-size: var(--type-card);
  font-weight: var(--fw-heavy);
  line-height: var(--lh-snug);
  letter-spacing: 0;
}

body { font-family: var(--font-body); }
p, .lede {
  font-size: var(--type-body);
  line-height: var(--lh-body);
  letter-spacing: var(--ls-body);
}
.lede strong { font-weight: var(--fw-heavy); }

/* 小于 28px 的场景取消斜切（识别困难） */
@media (max-width: 480px) {
  .hero-title, .vi-skew { transform: none; }
}

/* ============================================================
   四、排印组件（红纪律：每屏红线一处 + 灰阶文字）
   ============================================================ */

/* 眉标：CAPTION 规范（12-13px · 500 · +0.12em），前置品牌红短横线
   —— 章节短横线是 VI 里红色合法占位之一 */
.kicker {
  font-family: var(--font-body);
  font-size: var(--type-caption);
  font-weight: 500;
  letter-spacing: var(--ls-caption);
  text-transform: uppercase;
  color: var(--text-dim);
  line-height: var(--lh-caption);
}
.kicker::before {
  content: '';
  display: inline-block;
  width: 26px;
  height: 2px;
  background: var(--vi-red);
  margin-right: 12px;
  vertical-align: middle;
}
.kicker .kicker-index { margin-right: 0.6em; opacity: 0.55; color: inherit; }

/* 编号条目：编号用炭灰，不占红 */
.indexed-item { display: flex; align-items: baseline; gap: 0.75em; }
.indexed-item .idx {
  font-family: var(--font-mono);
  font-size: var(--type-caption);
  font-weight: 700;
  letter-spacing: var(--ls-caption);
  color: var(--text-dim);
}

/* mono 微标签：灰阶 */
.tag-mono {
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  line-height: var(--lh-caption);
  color: var(--text-dim) !important;   /* 压过行内 color:var(--accent) */
}

/* 数据大字：等宽对齐 + 负字距；点睛用墨黑 */
.num-display {
  font-family: var(--font-mono);
  font-weight: 700;
  line-height: 1;
  letter-spacing: var(--ls-num);
  font-variant-numeric: tabular-nums;
  color: var(--text);
}

/* 区块节奏与发丝线分区 */
.rhythm { padding-top: var(--space-section); padding-bottom: var(--space-section); }
.rhythm-sm { padding-top: var(--space-section-sm); padding-bottom: var(--space-section-sm); }
.statement-section { border-top: 1px solid var(--border); }

/* ============================================================
   五、红色纪律覆盖（点睛交给墨黑）
   ============================================================ */
.pin-num, .product-index, .board-num { color: var(--text-dim); }
.pin-icon, .lab-item i { color: var(--text); }
.check-list li i { color: var(--text-dim); }

/* Bento / 产品行的彩色辅助色 → 灰阶（!important 压过行内 --accent-color） */
.bento-card, .product-row { --accent-color: var(--text-dim) !important; }

/* 时间轴：灰线 + 墨黑节点 */
.timeline::before { background: var(--border); }
.timeline-marker { background: var(--text); border-color: var(--bg); }

/* 顶部滚动进度条：墨黑细线（不占红名额） */
#scrollProgress { background: var(--text); }

/* ============================================================
   六、按钮（直角；页面级 CTA 红，卡片级点睛用黑）
   ============================================================ */
.btn { border-radius: var(--radius-pill); }
.btn-primary { background: var(--vi-red); color: #fff; }
.product-row .btn-primary { background: var(--text); color: var(--bg); }
.btn-glow:hover { transform: none; box-shadow: none; }
.btn:hover { transform: none; }
.header-cta { border-radius: var(--radius-pill); }
.header-cta:hover { transform: none; }

/* ============================================================
   七、动效语言（单向到位，禁循环/发光/光扫）
   ============================================================ */
[data-reveal] {
  transform: translateY(10px);                      /* 位移 8-12px */
  transition: opacity 0.5s var(--ease-out), transform 0.5s var(--ease-out);
  transition-delay: var(--delay, 0ms);
}
[data-reveal="scale"] { transform: scale(0.985); }
[data-reveal].revealed { transform: none; }

.cta-glow, .footer-glow { display: none !important; }
.product-visual-bg { display: none; }               /* 彩色光晕违反白底干净 */
.scroll-line { animation: none; opacity: 0.4; }
.bento-icon { transition: transform 0.18s var(--ease-out); }
.bento-card:hover .bento-icon { transform: none; }

/* 伙伴横滚 → 静态换行网格（禁循环动效） */
.logo-marquee { -webkit-mask-image: none; mask-image: none; overflow: visible; }
.logo-track {
  animation: none !important;
  width: 100%;
  flex-wrap: wrap;
  justify-content: center;
}

/* ============================================================
   八、主 KV：重力偏移（左对齐，禁居中对称）
   ============================================================ */
.hero-inner { text-align: left; }
.hero-desc { margin-left: 0 !important; margin-right: 0 !important; max-width: 620px; }
.hero-actions { justify-content: flex-start; }
.scroll-indicator { left: auto; right: clamp(20px, 5vw, 60px); transform: none; align-items: flex-end; }

/* ============================================================
   九、移动端微调
   ============================================================ */
@media (max-width: 768px) {
  .hero-title { line-height: 1.12; }
  .lede { line-height: 1.8; }
  .kicker { letter-spacing: 0.1em; }
}

/* ============================================================
   十、大屏下 H1 级区块标题启用斜切（≥44px 场景）
   ============================================================ */
@media (min-width: 1200px) {
  .section-title { transform: skewX(-6deg); }
}

/* ============================================================
   十四、黑白穿插区块（VI：深底一律墨黑 #16171A，浅深交替，
   深底区块不连续出现两个以上）
   ============================================================ */
.vi-dark {
  --bg: var(--vi-ink);
  --bg-card: #1E1F23;
  --surface: #1E1F23;
  --text: var(--vi-white);
  --text-muted: #EDEDEB;
  --text-dim: #8B8D8F;
  --border: rgba(237, 237, 235, 0.14);
  --border-hover: rgba(237, 237, 235, 0.32);
  background: var(--vi-ink);
  color: var(--vi-white);
}
.vi-dark .section-title,
.vi-dark .pin-heading { color: var(--vi-white); }
.vi-dark .text-muted { color: #8B8D8F; }
.vi-dark .gallery-grid { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }

/* 合作客户 logo 墙（白底区；常态灰度，hover 还原） */
.logo-wall {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 14px;
}
.logo-wall img {
  width: 100%;
  height: 76px;
  object-fit: contain;
  background: var(--bg-card);
  border: 1px solid var(--border);
  padding: 10px;
  filter: grayscale(1);
  opacity: 0.72;
  transition: filter 0.3s var(--ease-out), opacity 0.3s var(--ease-out);
}
.logo-wall img:hover { filter: none; opacity: 1; }

/* 领导关怀横条卡 */
.leader-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; }
.leader-card {
  display: flex; gap: 16px; align-items: center;
  background: var(--bg-card); border: 1px solid var(--border); padding: 16px;
}
.leader-card img { width: 120px; height: 88px; object-fit: cover; flex-shrink: 0; }
.leader-card h3 { font-size: 0.95rem; font-weight: var(--fw-heavy); margin-bottom: 4px; letter-spacing: 0; }
.leader-card p { font-size: var(--type-caption); color: var(--text-dim); line-height: var(--lh-caption); }

/* 组图网格（案例现场 / 数字化教学 / 培训 / 能力） */
.photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
.photo-grid figure { margin: 0; }
.photo-grid img {
  width: 100%; height: 175px; object-fit: cover;
  border: 1px solid var(--border); display: block;
}
.photo-grid figcaption {
  font-size: var(--type-caption); color: var(--text-dim);
  line-height: var(--lh-caption); letter-spacing: var(--ls-caption);
  margin-top: 8px;
}

/* ============================================================
   十五、排版溢出防护（字不出框）
   ============================================================ */
h1, h2, h3, h4, p, li, blockquote, figcaption { overflow-wrap: break-word; }
.hero-title, .hero-title-line, .page-title, .section-title, .statement-line { max-width: 100%; }
.hero-title-line { white-space: normal; }
.spec-item { min-width: 0; }
.spec-value { font-variant-numeric: tabular-nums; }
.kicker { word-break: break-word; }

/* ============================================================
   十六、移动端适配（留足边距，字号降档防溢出）
   ============================================================ */
@media (max-width: 768px) {
  .container { padding-inline: 22px; }
  .hero-title { font-size: clamp(1.65rem, 8.2vw, 2.5rem); }
  .page-title { font-size: clamp(1.65rem, 8.2vw, 2.5rem); }
  .statement-line { font-size: clamp(1.35rem, 7vw, 2rem); }
  .section-title { font-size: clamp(1.5rem, 6.4vw, 2.25rem); }
  .lede { font-size: 1rem; }
  .hero { min-height: 92vh; }
  .product-row { min-height: auto; }
  .product-row-visual { min-height: 240px; }
  .product-row-visual.product-photo img { max-height: 240px; }
  .photo-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
  .photo-grid img { height: 118px; }
  .logo-wall { grid-template-columns: repeat(auto-fill, minmax(132px, 1fr)); }
  .logo-wall img { height: 58px; padding: 8px; }
  .leader-card img { width: 96px; height: 72px; }
  .spec-grid { grid-template-columns: repeat(2, 1fr); }
  .spec-value { font-size: 0.95rem; }
  .case-grid { grid-template-columns: 1fr; }
  .cert-grid { grid-template-columns: repeat(2, 1fr); }
  .scroll-indicator { display: none; }
}
@media (max-width: 480px) {
  .flow-grid { grid-template-columns: 1fr; }
  .gallery-grid { grid-template-columns: 1fr; }
  .kicker { font-size: 0.72rem; letter-spacing: 0.09em; }
  .kicker::before { width: 18px; margin-right: 8px; }
  .logo-wall { grid-template-columns: repeat(2, 1fr); }
}

/* ============================================================
   十七、区块节奏（对称半距：每区块上下各 --space-section/2，
   相邻区块间距恒定一个 --space-section；深浅底交界不贴顶，
   rhythm 系列可覆盖）
   ============================================================ */
.bento-section:not(.rhythm):not(.rhythm-sm) {
  padding-top: calc(var(--space-section) / 2);
  padding-bottom: calc(var(--space-section) / 2);
}
/* 非标准区块对齐同一节距 */
.stats-section { padding: calc(var(--space-section) / 2) 0; }
.statement-section { padding: calc(var(--space-section) * 0.75) 0; }

/* ============================================================
   十八、排版宽度与溢出修复
   ============================================================ */
/* pin 卡：改 grid 堆叠，高度随内容（修复固定高度裁字/压线） */
.pin-right { position: relative; display: grid; height: auto; min-height: 360px; }
.pin-card {
  position: static;
  grid-area: 1 / 1;
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: opacity 0.5s var(--ease-out), transform 0.5s var(--ease-out), visibility 0.5s;
}
.pin-card.active { opacity: 1; visibility: visible; transform: none; }

/* 产品行：高度随内容；按钮与清单留出间距 */
.product-row { min-height: auto; }
.product-row-content .btn { margin-top: 32px; }
.product-row-visual { min-height: 340px; }

/* 图上文字一律白字（底部压墨黑渐变，黑白主题通读） */
.gallery-item span { color: #fff !important; }
.gallery-item img { opacity: 1; }
.case-cover img { opacity: 1; }

/* vi-dark 内图注/说明提亮（#8B8D8F 在墨黑底上过暗） */
.vi-dark .photo-grid figcaption,
.vi-dark figcaption,
.vi-dark .stat-label { color: #EDEDEB; }

/* vi-dark hover 底色修复（防白底白字） */
.vi-dark { --bg-card-hover: #26272B; }

/* ============================================================
   十九、跑马灯组件（logo / 奖项 / 院校；彩色，hover 暂停）
   ============================================================ */
.marquee {
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.marquee-track { display: flex; width: max-content; }
.marquee-group {
  display: flex; align-items: stretch; gap: 16px;
  padding-right: 16px;
  animation: viScrollX 44s linear infinite;
}
.marquee:hover .marquee-group { animation-play-state: paused; }
@keyframes viScrollX { to { transform: translateX(-100%); } }

/* logo 跑马灯（彩色） */
.marquee .logo-card {
  display: flex; align-items: center; justify-content: center;
  width: 190px; height: 96px; flex-shrink: 0;
  background: var(--bg-card); border: 1px solid var(--border); padding: 12px;
}
.marquee .logo-card img { max-width: 100%; max-height: 100%; object-fit: contain; }

/* 奖项跑马灯（竖版证书统一高卡） */
.marquee .award-card {
  display: flex; flex-direction: column;
  width: 300px; flex-shrink: 0;
  background: var(--bg-card); border: 1px solid var(--border); padding: 14px;
}
.marquee .award-card img {
  width: 100%; height: 230px; object-fit: cover; object-position: top;
}
.marquee .award-card span {
  font-size: var(--type-caption); color: var(--text-dim);
  line-height: var(--lh-caption); letter-spacing: var(--ls-caption);
  padding-top: 10px; text-align: center;
}
@media (max-width: 768px) {
  .marquee .logo-card { width: 140px; height: 72px; padding: 8px; }
  .marquee .award-card { width: 210px; }
  .marquee .award-card img { height: 160px; }
}

/* 领导关怀大卡（竖版大图） */
.leader-row { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.leader-card {
  flex-direction: column; align-items: stretch; gap: 0; padding: 0;
  overflow: hidden;
}
.leader-card img { width: 100%; height: 240px; object-fit: cover; object-position: top; }
.leader-card .leader-body { padding: 18px 20px 22px; }
.leader-card h3 { font-size: var(--type-card); }
.leader-card p { margin-top: 4px; }
@media (max-width: 768px) {
  .leader-card img { height: 190px; }
}

/* ============================================================
   二十、第六轮修复（纯白卡底 / 图标红 / 跑马灯多行 / 奖项完整展示）
   ============================================================ */
/* 白卡 hover 反馈：常态纯白 → hover 浅雾灰 */
body.light { --bg-card-hover: var(--vi-mist); }

/* Bento 图标恢复品牌红点睛（小面积图标，不占红纪律大面积） */
body.light .bento-card .bento-icon,
body.light .bento-card .bento-icon i { color: var(--vi-red); }

/* 定制开发页红色节奏：参数数值 + 勾选对勾上红（VI：数字上红） */
body.light .spec-value { color: var(--vi-red); }
body.light .check-list li i { color: var(--vi-red); }

/* 案例角标：墨黑底 + 白字（修复浅色主题下深底深字看不清） */
.case-tag {
  background: rgba(22, 23, 26, 0.85) !important;
  color: #FFFFFF !important;
  border-color: transparent !important;
}

/* 奖项证书完整展示：contain 不裁切，白底衬垫 */
.marquee .award-card img {
  object-fit: contain;
  object-position: center;
  background: #FFFFFF;
  padding: 6px;
}

/* 跑马灯多行：第二/三行反向滚动 */
.marquee--rev .marquee-group { animation-direction: reverse; }
.marquee + .marquee { margin-top: 14px; }

/* ============================================================
   二十一、七巧板紧凑网格（首页六大核心产品线）+ 奖项跑马灯控制
   ============================================================ */
@media (min-width: 901px) {
  .bento-grid {
    grid-template-columns: repeat(3, 1fr);
    grid-auto-rows: minmax(196px, auto);
    gap: 14px;
    background: transparent;
    border: none;
  }
  .bento-card { border: 1px solid var(--border) !important; border-radius: var(--radius) !important; }
  .bento-card:hover { background: var(--bg-card-hover); }
  /* 七巧板拼合：横长 / 竖长错落铺满 3×3 */
  .bento-0 { grid-area: 1 / 1 / 2 / 3; }
  .bento-1 { grid-area: 1 / 3 / 2 / 4; }
  .bento-2 { grid-area: 2 / 1 / 4 / 2; }
  .bento-3 { grid-area: 2 / 2 / 3 / 3; }
  .bento-4 { grid-area: 2 / 3 / 3 / 4; }
  .bento-5 { grid-area: 3 / 2 / 4 / 4; }
}
@media (max-width: 900px) {
  .bento-grid { gap: 12px; background: transparent; border: none; }
  .bento-card { grid-area: auto !important; border: 1px solid var(--border) !important; }
}

/* ── 奖项跑马灯：手动滚动模式（左右按钮）── */
.marquee--ctrl {
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.marquee--ctrl::-webkit-scrollbar { display: none; }
.marquee--ctrl .marquee-group { animation: none; }
.marquee-actions {
  display: flex; justify-content: flex-end; gap: 10px; margin-top: 18px;
}
.marquee-btn {
  width: 44px; height: 44px;
  display: grid; place-items: center;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-pill);
  color: var(--text);
  cursor: pointer;
  transition: border-color .3s var(--ease-out), background .3s var(--ease-out), color .3s;
}
.marquee-btn:hover { border-color: var(--text); }
.marquee-btn:active { background: var(--bg-card-hover); }

/* ============================================================
   二十二、圆角体系落地（全站直角 → 圆角）
   规则：卡片 16 / 大图容 22 / 小元件 10 / 按钮胶囊
   克制原则：只做圆角，不改阴影与描边语言，避免玩具感
   ============================================================ */

/* 图片统一圆角 */
img { border-radius: var(--radius-sm); }

/* 大图容器：裁切 + 圆角 */
.case-cover,
.product-visual,
.gallery-item,
.leader-card,
.about-figure,
.mall-card { border-radius: var(--radius-lg); overflow: hidden; }

/* logo / 图标 / 徽标不参与圆角，避免切边 */
.logo-img,
.logo-card img,
.brand-logo,
.marquee img,
img[src*="favicon"] { border-radius: 0; }

/* 小元件 */
.tag,
.tag-mono,
.bento-tag,
.kicker-index,
.chip,
.case-tag { border-radius: var(--radius-sm); }

/* 导航与浮层 */
.main-nav .nav-link { border-radius: var(--radius-pill); }
.drawer { border-radius: var(--radius-lg) 0 0 var(--radius-lg); }

/* 表单类（联系页） */
input, textarea, select { border-radius: var(--radius-sm); }

/* 页脚社交圆钮 */
.social a, .footer-social a { border-radius: var(--radius-pill); }
