/*
 * ============================================================
 * ftf-pages.css — 外贸前台 8 标准页布局样式（S2 渲染引擎）
 * 规范：外贸端前台UI设计规范_v0.1 §1.1（--ftf-* token 唯一来源）
 * 说明：仅页面级布局（Hero/产品墙/详情/页脚区块），组件级见 ftf-components.css
 * 状态：S2 已实现（2026-08-08）
 * ============================================================
 */

/* ===== 容器 ===== */
.ftf-container {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 var(--ftf-space-5);
}

/* ===== Hero ===== */
.ftf-hero {
  background: linear-gradient(135deg, #0b1f3a 0%, #123a6b 55%, #1677ff 130%);
  color: #fff;
  padding: var(--ftf-space-8) 0;
  position: relative;
  min-height: 85vh;
  display: flex;
  align-items: center;
}
.ftf-hero--img {
  background-size: cover;
  background-position: center;
}
.ftf-hero--img::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(10, 22, 40, .62);
}
.ftf-hero--img > .ftf-container { position: relative; z-index: 1; }
.ftf-hero__inner { display: flex; align-items: center; width: 100%; }
.ftf-hero__content { max-width: 720px; }
.ftf-hero__title {
  font-size: 52px;
  font-weight: 700;
  line-height: 1.15;
  margin: 0 0 var(--ftf-space-4);
  letter-spacing: -.5px;
}
.ftf-hero__subtitle {
  font-size: 20px;
  opacity: .88;
  margin: 0 0 var(--ftf-space-6);
  max-width: 620px;
}
.ftf-hero__badge {
  display: inline-block;
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.28);
  padding: 6px 16px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .6px;
  text-transform: uppercase;
  margin-bottom: var(--ftf-space-4);
}
.ftf-hero__actions { display: flex; gap: var(--ftf-space-3); flex-wrap: wrap; }
.ftf-hero__actions .ftf-btn { padding: 14px 36px; font-size: 16px; border-radius: 6px; }

/* ===== 区块（Section） ===== */
.ftf-section { padding: 80px 0; }
.ftf-section--alt { background: var(--ftf-bg-gray); }
.ftf-section--stats {
  background: linear-gradient(135deg, #0b1f3a 0%, #123a6b 70%);
  color: #fff;
}
.ftf-section--stats .ftf-section__title { color: #fff; }
.ftf-section__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--ftf-space-5);
}
.ftf-section__title {
  font-size: 36px;
  font-weight: 700;
  margin: 0;
  color: var(--ftf-text);
  letter-spacing: -.3px;
}
.ftf-link { color: var(--ftf-link); text-decoration: none; font-weight: 500; }
.ftf-link:hover { color: var(--ftf-primary-hover); }

/* ===== 栅格 ===== */
.ftf-grid { display: grid; gap: var(--ftf-space-5); }
.ftf-grid--3 { grid-template-columns: repeat(3, 1fr); }
.ftf-grid--4 { grid-template-columns: repeat(4, 1fr); }

/* ===== 产品卡 ===== */
.ftf-card {
  display: block;
  background: var(--ftf-bg);
  border: 1px solid var(--ftf-border);
  border-radius: var(--ftf-radius-md, 12px);
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: box-shadow .2s ease, transform .2s ease;
}
.ftf-card:hover { box-shadow: var(--ftf-shadow-md, 0 4px 16px rgba(15, 23, 42, .08)); transform: translateY(-2px); }
.ftf-card__media { aspect-ratio: 4/3; background: var(--ftf-bg-gray); position: relative; }
.ftf-card__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ftf-card__placeholder {
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  color: var(--ftf-text-muted); font-size: 32px;
}
.ftf-card__body { padding: var(--ftf-space-4); }
.ftf-card__title {
  font-size: var(--ftf-font-size-base);
  font-weight: 600;
  margin: 0 0 var(--ftf-space-2);
  color: var(--ftf-text);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.ftf-card__desc {
  font-size: var(--ftf-font-size-sm);
  color: var(--ftf-text-secondary);
  margin: 0 0 var(--ftf-space-3);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.ftf-card__meta { display: flex; gap: var(--ftf-space-2); flex-wrap: wrap; }

/* ===== 标签 ===== */
.ftf-tag {
  display: inline-block;
  padding: 2px 8px;
  font-size: var(--ftf-font-size-xs);
  color: var(--ftf-text-secondary);
  background: var(--ftf-bg-gray);
  border-radius: 4px;
}

/* ===== 信任背书 ===== */
.ftf-trust { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--ftf-space-5); }
.ftf-trust__item {
  display: flex; align-items: center; gap: var(--ftf-space-3);
  padding: var(--ftf-space-5);
  background: var(--ftf-bg);
  border: 1px solid var(--ftf-border);
  border-radius: var(--ftf-radius-md, 12px);
}
.ftf-trust__item i { font-size: 24px; color: var(--ftf-primary); }
.ftf-trust__item strong { font-size: var(--ftf-font-size-sm); color: var(--ftf-text); }

/* ===== CTA ===== */
.ftf-cta {
  background: linear-gradient(135deg, #0b1f3a 0%, #123a6b 55%, #1677ff 130%);
  padding: 88px 0;
  text-align: center;
  color: #fff;
}
.ftf-cta__title { font-size: 40px; font-weight: 700; margin: 0 0 var(--ftf-space-3); color: #fff; letter-spacing: -.3px; }
.ftf-cta__desc { color: rgba(255,255,255,.85); margin: 0 0 var(--ftf-space-6); font-size: 18px; }
.ftf-cta .ftf-btn--primary { padding: 16px 44px; font-size: 17px; border-radius: 6px; }

/* ===== 标准页骨架 ===== */
.ftf-page { padding: var(--ftf-space-7) 0; }
.ftf-page__head {
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--ftf-space-4); margin-bottom: var(--ftf-space-6); flex-wrap: wrap;
}
.ftf-page__title { font-size: var(--ftf-font-size-h1); margin: 0; color: var(--ftf-text); }

/* ===== 搜索 ===== */
.ftf-search { display: flex; gap: var(--ftf-space-2); }
.ftf-input {
  min-width: 260px;
  padding: 9px 14px;
  border: 1px solid var(--ftf-border-strong);
  border-radius: 8px;
  font-size: var(--ftf-font-size-base);
  color: var(--ftf-text);
  background: var(--ftf-bg);
}
.ftf-input:focus { outline: none; border-color: var(--ftf-primary); box-shadow: 0 0 0 3px var(--ftf-primary-bg); }

/* ===== 列表布局（侧栏+主区） ===== */
.ftf-layout { display: grid; grid-template-columns: 220px 1fr; gap: var(--ftf-space-6); align-items: start; }
.ftf-sidebar { background: var(--ftf-bg); border: 1px solid var(--ftf-border); border-radius: var(--ftf-radius-md, 12px); padding: var(--ftf-space-5); }
.ftf-sidebar__title { font-size: var(--ftf-font-size-base); font-weight: 600; margin: 0 0 var(--ftf-space-4); color: var(--ftf-text); }
.ftf-sidebar__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.ftf-sidebar__list a {
  display: block; padding: 8px 10px;
  color: var(--ftf-text-secondary); text-decoration: none;
  border-radius: 6px; font-size: var(--ftf-font-size-sm);
}
.ftf-sidebar__list a:hover { background: var(--ftf-bg-gray); color: var(--ftf-text); }
.ftf-sidebar__list a.is-active { background: var(--ftf-primary-bg); color: var(--ftf-primary); font-weight: 500; }
.ftf-sidebar__icon { margin-right: 6px; color: var(--ftf-primary); font-size: 13px; }
.ftf-sidebar__sub { list-style: none; margin: 2px 0 4px; padding: 0 0 0 22px; display: flex; flex-direction: column; gap: 2px; }
.ftf-sidebar__sub a { padding: 6px 10px; font-size: var(--ftf-font-size-sm); }
.ftf-sidebar__sub a::before { content: "└ "; color: var(--ftf-text-muted); }

/* ===== 分类卡片（category_nav 3.0.4：图标/描述/子分类） ===== */
.ftf-cat-card__icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border-radius: 10px;
  background: var(--ftf-primary-bg, #eef4ff); color: var(--ftf-primary, #1677ff);
  font-size: 20px; margin-bottom: 8px;
}
.ftf-cat-card__desc {
  display: block; font-size: 12px; color: var(--ftf-text-muted);
  margin-top: 4px; line-height: 1.5;
}
.ftf-cat-card__subs {
  display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px;
}
.ftf-cat-card__subs span {
  font-size: 11px; color: var(--ftf-text-secondary);
  background: var(--ftf-bg-gray, #f8fafc);
  border: 1px solid var(--ftf-border, #e2e8f0);
  border-radius: 999px; padding: 2px 8px;
}

/* ===== 空状态 ===== */
.ftf-empty {
  text-align: center; padding: var(--ftf-space-8) 0;
  color: var(--ftf-text-muted);
}
.ftf-empty i { font-size: 48px; display: block; margin-bottom: var(--ftf-space-4); }
.ftf-empty p { margin: 0 0 var(--ftf-space-4); }

/* ===== 分页（Bootstrap Pagination 白底对齐） ===== */
.ftf-pagination { margin-top: var(--ftf-space-6); }
.ftf-pagination nav { display: flex; justify-content: center; }

/* ===== 面包屑 ===== */
.ftf-breadcrumb { display: flex; gap: var(--ftf-space-2); align-items: center; margin-bottom: var(--ftf-space-5); font-size: var(--ftf-font-size-sm); color: var(--ftf-text-muted); flex-wrap: wrap; }
.ftf-breadcrumb a { color: var(--ftf-text-secondary); text-decoration: none; }
.ftf-breadcrumb a:hover { color: var(--ftf-primary); }

/* ===== 产品详情 ===== */
.ftf-detail { display: grid; grid-template-columns: 1fr 1fr; gap: var(--ftf-space-7); align-items: start; }
.ftf-detail__media { position: sticky; top: var(--ftf-space-5); }
.ftf-detail__img-main { border: 1px solid var(--ftf-border); border-radius: var(--ftf-radius-md, 12px); overflow: hidden; background: var(--ftf-bg-gray); }
.ftf-detail__img { width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block; }
.ftf-detail__placeholder { width: 100%; aspect-ratio: 1/1; display: flex; align-items: center; justify-content: center; color: var(--ftf-text-muted); font-size: 56px; }
.ftf-detail__thumbs { display: flex; gap: var(--ftf-space-2); margin-top: var(--ftf-space-3); flex-wrap: wrap; }
.ftf-detail__thumb { width: 72px; height: 72px; object-fit: cover; border-radius: 8px; border: 2px solid var(--ftf-border); cursor: pointer; }
.ftf-detail__thumb.is-active { border-color: var(--ftf-primary); }
.ftf-detail__title { font-size: var(--ftf-font-size-h1); margin: 0 0 var(--ftf-space-3); color: var(--ftf-text); }
.ftf-detail__subtitle { color: var(--ftf-text-secondary); margin: 0 0 var(--ftf-space-5); font-size: var(--ftf-font-size-lg); }
.ftf-detail__specs { display: grid; grid-template-columns: 130px 1fr; gap: var(--ftf-space-2) 0; margin: 0 0 var(--ftf-space-5); font-size: var(--ftf-font-size-base); }
.ftf-detail__specs dt { color: var(--ftf-text-muted); }
.ftf-detail__specs dd { margin: 0; color: var(--ftf-text); }
.ftf-detail__localized { background: var(--ftf-bg-gray); padding: var(--ftf-space-4); border-radius: 8px; margin-bottom: var(--ftf-space-5); }
.ftf-detail__localized h3 { margin: 0 0 var(--ftf-space-2); font-size: var(--ftf-font-size-base); }
.ftf-detail__localized p { margin: 0; color: var(--ftf-text-secondary); font-size: var(--ftf-font-size-sm); }
.ftf-detail__actions { display: flex; gap: var(--ftf-space-3); flex-wrap: wrap; }

/* ===== 富文本 ===== */
.ftf-prose { color: var(--ftf-text-secondary); line-height: var(--ftf-line-height); font-size: var(--ftf-font-size-base); }
.ftf-prose--center { text-align: center; max-width: 720px; margin: 0 auto var(--ftf-space-7); }
.ftf-prose--center h1 { margin-bottom: var(--ftf-space-5); }

/* 3.6.2 富文本商品描述渲染（wangEditor 输出经 FtHtmlSanitizer 白名单过滤） */
.ftf-prose--rich { color: var(--ftf-text-body, #374151); }
.ftf-prose--rich h1, .ftf-prose--rich h2, .ftf-prose--rich h3,
.ftf-prose--rich h4, .ftf-prose--rich h5, .ftf-prose--rich h6 {
    color: var(--ftf-text-title, #111827);
    margin: 1.4em 0 0.6em;
    line-height: 1.4;
}
.ftf-prose--rich h1 { font-size: 1.6em; }
.ftf-prose--rich h2 { font-size: 1.4em; }
.ftf-prose--rich h3 { font-size: 1.2em; }
.ftf-prose--rich p { margin: 0.6em 0; }
.ftf-prose--rich ul, .ftf-prose--rich ol { margin: 0.6em 0; padding-left: 1.6em; }
.ftf-prose--rich li { margin: 0.3em 0; }
.ftf-prose--rich blockquote {
    margin: 0.8em 0;
    padding: 0.6em 1em;
    border-left: 4px solid #d1d5db;
    background: #f9fafb;
    border-radius: 0 8px 8px 0;
    color: #4b5563;
}
.ftf-prose--rich pre {
    background: #1f2937;
    color: #f3f4f6;
    padding: 0.9em 1em;
    border-radius: 8px;
    overflow-x: auto;
    font-size: 0.9em;
}
.ftf-prose--rich code {
    background: #f3f4f6;
    padding: 0.15em 0.4em;
    border-radius: 4px;
    font-size: 0.92em;
}
.ftf-prose--rich pre code { background: transparent; padding: 0; color: inherit; }
.ftf-prose--rich table {
    width: 100%;
    border-collapse: collapse;
    margin: 0.8em 0;
    font-size: 0.95em;
}
.ftf-prose--rich th, .ftf-prose--rich td {
    border: 1px solid #e5e7eb;
    padding: 0.55em 0.8em;
    text-align: left;
}
.ftf-prose--rich th { background: #f9fafb; font-weight: 600; }
.ftf-prose--rich a { color: #1677ff; text-decoration: underline; }
.ftf-prose--rich img { max-width: 100%; height: auto; border-radius: 8px; }
.ftf-prose--rich hr { margin: 1.2em 0; border: none; border-top: 1px solid #e5e7eb; }
.ftf-prose--rich sup, .ftf-prose--rich sub { font-size: 0.75em; }

/* ===== 统计数字 ===== */
.ftf-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--ftf-space-5); margin-bottom: 0; }
.ftf-stat { text-align: center; padding: var(--ftf-space-6) var(--ftf-space-4); background: var(--ftf-bg); border: 1px solid var(--ftf-border); border-radius: var(--ftf-radius-md, 12px); }
.ftf-stat__num { display: block; font-size: 32px; font-weight: 700; color: var(--ftf-primary); margin-bottom: var(--ftf-space-2); }
.ftf-stat__label { color: var(--ftf-text-secondary); font-size: var(--ftf-font-size-sm); }

/* 统计深色全宽版：透明卡片 + 大数字 + 竖线分隔 */
.ftf-section--stats .ftf-stat {
  background: transparent;
  border: none;
  border-left: 1px solid rgba(255,255,255,.18);
  border-radius: 0;
  padding: 20px 32px;
}
.ftf-section--stats .ftf-stat:first-child { border-left: none; }
.ftf-section--stats .ftf-stat__num { color: #fff; font-size: 56px; font-weight: 800; letter-spacing: -.5px; }
.ftf-section--stats .ftf-stat__label { color: rgba(255,255,255,.82); font-size: 15px; }

/* ===== 联系页 ===== */
.ftf-contact { display: flex; flex-direction: column; gap: var(--ftf-space-4); }
.ftf-contact__item { display: flex; gap: var(--ftf-space-4); align-items: flex-start; padding: var(--ftf-space-5); background: var(--ftf-bg); border: 1px solid var(--ftf-border); border-radius: var(--ftf-radius-md, 12px); }
.ftf-contact__item i { font-size: 22px; color: var(--ftf-primary); }
.ftf-contact__item strong { display: block; color: var(--ftf-text); margin-bottom: 2px; }
.ftf-contact__item span { color: var(--ftf-text-secondary); font-size: var(--ftf-font-size-sm); }
.ftf-contact__form { background: var(--ftf-bg); border: 1px solid var(--ftf-border); border-radius: var(--ftf-radius-md, 12px); padding: var(--ftf-space-6); }
.ftf-contact__form h3 { margin: 0 0 var(--ftf-space-3); color: var(--ftf-text); }
.ftf-contact__hint { color: var(--ftf-text-secondary); margin: 0 0 var(--ftf-space-5); font-size: var(--ftf-font-size-sm); }

/* ===== 分类卡 ===== */
.ftf-cat-card {
  display: flex; flex-direction: column; align-items: center; gap: var(--ftf-space-3);
  padding: var(--ftf-space-5);
  background: var(--ftf-bg); border: 1px solid var(--ftf-border);
  border-radius: var(--ftf-radius-md, 12px);
  text-decoration: none; color: inherit;
  transition: box-shadow .2s ease;
}
.ftf-cat-card:hover { box-shadow: var(--ftf-shadow-md, 0 4px 16px rgba(15, 23, 42, .08)); }
.ftf-cat-card__img { width: 100%; aspect-ratio: 16/9; object-fit: cover; border-radius: 8px; }
.ftf-cat-card__name { font-weight: 600; color: var(--ftf-text); }

/* ===== 响应式（H5） ===== */
@media (max-width: 992px) {
  .ftf-grid--4 { grid-template-columns: repeat(2, 1fr); }
  .ftf-trust { grid-template-columns: repeat(2, 1fr); }
  .ftf-stats { grid-template-columns: repeat(2, 1fr); }
  .ftf-detail { grid-template-columns: 1fr; }
  .ftf-detail__media { position: static; }
  .ftf-section--stats .ftf-stat { border-left: none; border-top: 1px solid rgba(255,255,255,.18); }
  .ftf-section--stats .ftf-stat:first-child { border-top: none; }
}
@media (max-width: 640px) {
  .ftf-container { padding: 0 var(--ftf-space-4); }
  .ftf-hero { padding: var(--ftf-space-7) 0; min-height: auto; }
  .ftf-hero__title { font-size: 30px; }
  .ftf-hero__subtitle { font-size: 16px; }
  .ftf-grid--3, .ftf-grid--4 { grid-template-columns: 1fr; }
  .ftf-trust, .ftf-stats { grid-template-columns: 1fr; }
  .ftf-layout { grid-template-columns: 1fr; }
  .ftf-section__head { flex-direction: column; align-items: flex-start; gap: var(--ftf-space-3); }
  .ftf-search { width: 100%; }
  .ftf-input { min-width: 0; flex: 1; }
  .ftf-section { padding: 56px 0; }
  .ftf-section__title { font-size: 28px; }
  .ftf-cta__title { font-size: 30px; }
}

/* ── 3.6.4 P1-A 客户组专属价 + P1-B 申报要素 ───────────── */
.ftf-detail__price {
    margin: 18px 0 6px;
    padding: 14px 16px;
    background: #f0f7ff;
    border: 1px solid #d6e9ff;
    border-radius: 10px;
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 10px;
}

.ftf-detail__price-main {
    display: flex;
    align-items: baseline;
    gap: 6px;
}

.ftf-detail__price-currency {
    font-size: 16px;
    font-weight: 700;
    color: #d4380d;
}

.ftf-detail__price-value {
    font-size: 30px;
    font-weight: 800;
    color: #d4380d;
    line-height: 1;
}

.ftf-detail__price-grade {
    font-size: 12px;
    font-weight: 600;
    color: #1677ff;
    background: #e6f4ff;
    border-radius: 4px;
    padding: 2px 8px;
    white-space: nowrap;
}

.ftf-detail__price-moq {
    font-size: 13px;
    color: #475569;
}

/* D-GAP-1 前台阶梯价展示（数量→价格联动） */
.ftf-detail__tiers {
    margin: 16px 0;
    padding: 14px 16px;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
}

.ftf-detail__tiers-title {
    margin: 0 0 10px;
    font-size: 15px;
    font-weight: 700;
    color: #1e293b;
    display: flex;
    align-items: center;
    gap: 6px;
}

.ftf-detail__tiers-title i {
    color: #1677ff;
}

.ftf-detail__tiers-table-wrap {
    overflow-x: auto;
}

.ftf-detail__tiers-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.ftf-detail__tiers-table th {
    text-align: left;
    padding: 8px 12px;
    background: #f8fafc;
    color: #64748b;
    font-weight: 600;
    border-bottom: 1px solid #e2e8f0;
}

.ftf-detail__tiers-table td {
    padding: 8px 12px;
    border-bottom: 1px solid #f1f5f9;
    color: #334155;
}

.ftf-detail__tiers-table tr:last-child td {
    border-bottom: none;
}

.ftf-detail__tiers-table tr.ftf-tier-row--active {
    background: #eff6ff;
    outline: 2px solid #1677ff;
    outline-offset: -2px;
}

.ftf-detail__tiers-table tr.ftf-tier-row--active td {
    font-weight: 700;
    color: #1677ff;
}

.ftf-tier-row__price {
    font-weight: 600;
    color: #d4380d;
}

.ftf-detail__tiers-calc {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 12px;
}

.ftf-detail__tiers-input {
    width: 160px;
    padding: 8px 12px;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    font-size: 14px;
    color: #1e293b;
    background: #fff;
}

.ftf-detail__tiers-input:focus {
    outline: none;
    border-color: #1677ff;
    box-shadow: 0 0 0 2px rgba(22, 119, 255, 0.15);
}

.ftf-detail__tiers-result {
    font-size: 15px;
    font-weight: 700;
    color: #1677ff;
}

.ftf-detail__tiers-hint {
    margin: 8px 0 0;
    font-size: 12px;
    color: #94a3b8;
}

/* G5 前台 SKU 规格选择器 */
.ftf-detail__specs-picker {
    margin: 16px 0;
    padding: 14px 16px;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
}

.ftf-detail__specs-picker-title {
    margin: 0 0 10px;
    font-size: 15px;
    font-weight: 700;
    color: #1e293b;
    display: flex;
    align-items: center;
    gap: 6px;
}

.ftf-detail__specs-picker-title i {
    color: #1677ff;
}

.ftf-spec-group {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 10px;
    flex-wrap: wrap;
}

.ftf-spec-group:last-child {
    margin-bottom: 0;
}

.ftf-spec-name {
    min-width: 56px;
    font-size: 13px;
    font-weight: 600;
    color: #64748b;
    line-height: 32px;
}

.ftf-spec-options {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.ftf-spec-option {
    padding: 6px 14px;
    border: 1px solid #dbe1e8;
    border-radius: 6px;
    background: #fff;
    color: #334155;
    font-size: 13px;
    cursor: pointer;
    transition: border-color .15s, color .15s, background .15s;
}

.ftf-spec-option:hover {
    border-color: #1677ff;
    color: #1677ff;
}

.ftf-spec-option.is-active {
    border-color: #1677ff;
    background: #e6f4ff;
    color: #1677ff;
    font-weight: 600;
}

.ftf-spec-selected {
    margin-top: 10px;
    padding: 8px 12px;
    background: #f8fafc;
    border-radius: 6px;
    font-size: 13px;
    color: #334155;
    min-height: 20px;
}

.ftf-spec-selected.is-active {
    background: #e6f4ff;
    color: #1677ff;
}

.ftf-detail__declaration {
    margin-top: 16px;
    padding: 14px 16px;
    background: #fafaf9;
    border: 1px solid #e7e5e4;
    border-radius: 10px;
}

.ftf-detail__declaration-head {
    font-size: 14px;
    font-weight: 700;
    color: #292524;
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.ftf-detail__declaration-list {
    margin: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px 24px;
}

.ftf-detail__declaration-list > div {
    display: flex;
    gap: 8px;
    font-size: 13px;
    line-height: 1.6;
}

.ftf-detail__declaration-list dt {
    color: #78716c;
    min-width: 68px;
    margin: 0;
}

.ftf-detail__declaration-list dd {
    color: #292524;
    margin: 0;
    word-break: break-all;
}

@media (max-width: 640px) {
    .ftf-detail__declaration-list {
        grid-template-columns: 1fr;
    }
}


/* ========== 3.6.5 商品徽章 / 合规证书 / 问答 / 收藏 ========== */
.ftf-detail__title .ftf-badge { vertical-align: middle; }
.ftf-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 8px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.5px;
    line-height: 20px;
    margin-left: 6px;
}
.ftf-badge--new { background: #1677ff; color: #fff; }
.ftf-badge--hot { background: #fa541c; color: #fff; }

.ftf-fav-form { display: inline; margin: 0; }
.ftf-btn.is-active { border-color: #fa541c; color: #fa541c; background: #fff1f0; }

.ftf-detail__cert-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 8px;
}
.ftf-cert {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    padding: 10px 12px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    background: #f8fafc;
    font-size: 13px;
}
.ftf-cert.is-expiring { border-color: #faad14; background: #fffbe6; }
.ftf-cert.is-expired { border-color: #ff4d4f; background: #fff1f0; }
.ftf-cert__type {
    display: inline-flex;
    align-items: center;
    padding: 1px 8px;
    border-radius: 999px;
    background: #f0f7ff;
    color: #1677ff;
    border: 1px solid #91caff;
    font-size: 12px;
    font-weight: 600;
}
.ftf-cert__no { font-weight: 600; color: var(--ftf-text); }
.ftf-cert__expiry { color: var(--ftf-text-muted); }
.ftf-cert__tag {
    font-style: normal;
    font-weight: 600;
    font-size: 11px;
    margin-left: 6px;
    padding: 0 6px;
    border-radius: 999px;
}
.ftf-cert__tag.is-expiring { background: #fff7e6; color: #d46b08; }
.ftf-cert__tag.is-expired { background: #fff1f0; color: #cf1322; }

.ftf-qa-list { display: flex; flex-direction: column; gap: 14px; }
.ftf-qa-item {
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 14px 16px;
    background: #fff;
}
.ftf-qa-item__q, .ftf-qa-item__a { display: flex; gap: 10px; }
.ftf-qa-item__a { margin-top: 12px; padding-top: 12px; border-top: 1px dashed #e2e8f0; }
.ftf-qa-item__icon {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
}
.ftf-qa-item__q .ftf-qa-item__icon { background: #f0f7ff; color: #1677ff; }
.ftf-qa-item__a .ftf-qa-item__icon { background: #f6ffed; color: #389e0d; }
.ftf-qa-item__text { margin: 0 0 4px; font-size: 14px; color: var(--ftf-text); }
.ftf-qa-item__meta { font-size: 12px; color: var(--ftf-text-muted); }

.ftf-qa-form { margin-top: 16px; }
.ftf-qa-form__input {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid #d9d9d9;
    border-radius: 8px;
    padding: 10px 12px;
    font-size: 14px;
    font-family: inherit;
    color: var(--ftf-text);
    resize: vertical;
}
.ftf-qa-form__input:focus { outline: none; border-color: #1677ff; box-shadow: 0 0 0 2px rgba(22, 119, 255, 0.12); }
.ftf-qa-form__actions { margin-top: 10px; }


/* ========== 3.6.5 买家收藏列表 + flash ========== */
.ftf-flash {
    margin-bottom: 16px;
    padding: 10px 14px;
    border-radius: 8px;
    background: #f6ffed;
    border: 1px solid #b7eb8f;
    color: #389e0d;
    font-size: 13px;
}
.ftf-card--fav { display: flex; flex-direction: column; }
.ftf-card--fav .ftf-card__media { display: block; }
.ftf-card--fav .ftf-card__body { flex: 1; display: flex; flex-direction: column; }
.ftf-card--fav .ftf-card__title a { color: inherit; text-decoration: none; }
.ftf-card--fav .ftf-card__title a:hover { color: var(--ftf-primary, #1677ff); }
.ftf-card__actions {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: auto;
    padding-top: 10px;
}
.ftf-btn--sm { padding: 5px 12px; font-size: 12px; }

/* ===== 3.9.6 外贸专属组件：资质证书 / 客户案例 / 工厂实拍 / 多语言切换 ===== */

/* 资质证书墙 */
.ftf-cert__grid { display: grid; gap: 18px; }
.ftf-cert__grid--c2 { grid-template-columns: repeat(2, 1fr); }
.ftf-cert__grid--c3 { grid-template-columns: repeat(3, 1fr); }
.ftf-cert__grid--c4 { grid-template-columns: repeat(4, 1fr); }
.ftf-cert__item { background: #fff; border: 1px solid #e2e8f0; border-radius: 12px; padding: 16px; text-align: center; transition: box-shadow .2s; }
.ftf-cert__item:hover { box-shadow: var(--ftf-shadow-md, 0 4px 16px rgba(15,23,42,.08)); }
.ftf-cert__img { height: 96px; display: flex; align-items: center; justify-content: center; margin-bottom: 12px; }
.ftf-cert__img img { max-height: 96px; max-width: 100%; object-fit: contain; }
.ftf-cert__img--placeholder { color: #cbd5e1; font-size: 40px; }
.ftf-cert__name { font-weight: 600; font-size: 14px; color: #0f172a; }
.ftf-cert__meta { font-size: 12px; color: #64748b; margin-top: 4px; }

/* DOC-20 T5 占位图策略：灰色骨架屏占位 */
.ftf-placeholder-block { width: 100%; aspect-ratio: 16/10; background: linear-gradient(90deg, #eef2f7 25%, #e2e8f0 50%, #eef2f7 75%); background-size: 200% 100%; animation: ftf-skeleton-loading 1.4s infinite; border-radius: 10px 10px 0 0; }
.ftf-skeleton { background: linear-gradient(90deg, #eef2f7 25%, #e2e8f0 50%, #eef2f7 75%); background-size: 200% 100%; animation: ftf-skeleton-loading 1.4s infinite; border-radius: 6px; }
.ftf-skeleton--title { height: 16px; width: 60%; margin-bottom: 8px; }
.ftf-skeleton--text { height: 12px; width: 90%; }
.ftf-gallery__item--placeholder { aspect-ratio: 4/3; background: linear-gradient(90deg, #eef2f7 25%, #e2e8f0 50%, #eef2f7 75%); background-size: 200% 100%; animation: ftf-skeleton-loading 1.4s infinite; border-radius: 12px; display: flex; align-items: center; justify-content: center; color: #94a3b8; font-size: 32px; }
@keyframes ftf-skeleton-loading { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

/* 客户案例墙 */
.ftf-cases__grid { display: grid; gap: 20px; }
.ftf-cases__grid--c2 { grid-template-columns: repeat(2, 1fr); }
.ftf-cases__grid--c3 { grid-template-columns: repeat(3, 1fr); }
.ftf-case__head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.ftf-case__head .ftf-card__title { margin-bottom: 0; }
.ftf-tag--light { background: #f1f5f9; color: #475569; padding: 2px 10px; border-radius: 99px; font-size: 12px; }
.ftf-case__title { font-size: 14px; font-weight: 500; color: #334155; margin: 8px 0 4px; }

/* 工厂实拍墙 */
.ftf-gallery__grid { display: grid; gap: 12px; }
.ftf-gallery__grid--c2 { grid-template-columns: repeat(2, 1fr); }
.ftf-gallery__grid--c3 { grid-template-columns: repeat(3, 1fr); }
.ftf-gallery__grid--c4 { grid-template-columns: repeat(4, 1fr); }
.ftf-gallery__item { aspect-ratio: 4/3; border-radius: 10px; overflow: hidden; background: var(--ftf-bg-gray); display: block; }
.ftf-gallery__item img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.ftf-gallery__item:hover img { transform: scale(1.04); }

/* 多语言切换 */
.ftf-lang { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.ftf-lang--content { margin-top: 16px; }
.ftf-lang__item { font-size: 13px; color: #475569; text-decoration: none; padding: 4px 12px; border-radius: 99px; border: 1px solid #e2e8f0; background: #fff; transition: all .2s; }
.ftf-lang__item:hover { border-color: var(--ftf-primary, #1677ff); color: var(--ftf-primary, #1677ff); }
.ftf-lang__item.is-active { background: var(--ftf-primary, #1677ff); border-color: var(--ftf-primary, #1677ff); color: #fff; font-weight: 600; }

@media (max-width: 768px) {
  .ftf-cert__grid--c4, .ftf-cert__grid--c3 { grid-template-columns: repeat(2, 1fr); }
  .ftf-cases__grid--c3 { grid-template-columns: 1fr; }
  .ftf-gallery__grid--c4, .ftf-gallery__grid--c3 { grid-template-columns: repeat(2, 1fr); }
}

/* ===== v10 品牌强调色（视觉模型 P3：橙色暖冷对比，仅 CTA/关键数字/标题线） ===== */
:root {
  --ftf-accent: #e8731a;
  --ftf-accent-strong: #d4680f;
  --ftf-accent-soft: #fdeedb;
}
/* hero 主按钮 → 强调橙 */
.ftf-hero__actions .ftf-btn--primary { background: var(--ftf-accent); border-color: var(--ftf-accent); }
.ftf-hero__actions .ftf-btn--primary:hover { background: var(--ftf-accent-strong); border-color: var(--ftf-accent-strong); }
/* hero 次按钮 → 橙色描边（主次分明） */
.ftf-hero__actions .ftf-btn--outline { border-color: var(--ftf-accent); color: var(--ftf-accent); background: transparent; }
.ftf-hero__actions .ftf-btn--outline:hover { background: var(--ftf-accent); color: #fff; }
/* stats 数字 → 金色（深蓝底高亮） */
.ftf-section--stats .ftf-stat__num { color: #fbbf24; }
/* section 标题下划线 → 橙渐变强调 */
.ftf-section__title::after {
  content: ''; display: block; width: 44px; height: 4px; margin-top: 10px;
  border-radius: 2px; background: linear-gradient(90deg, var(--ftf-accent), #fbbf24);
}
/* stats 深蓝底标题线用亮金 */
.ftf-section--stats .ftf-section__title::after { background: linear-gradient(90deg, #fbbf24, var(--ftf-accent)); }
/* CTA 区按钮 → 强调橙 */
.ftf-cta .ftf-btn--primary { background: var(--ftf-accent); border-color: var(--ftf-accent); }
.ftf-cta .ftf-btn--primary:hover { background: var(--ftf-accent-strong); border-color: var(--ftf-accent-strong); }

/* ===== v11 移动端优化（视觉模型 P0/P1：hero 标题过长、stats 数字可读性） ===== */
@media (max-width: 640px) {
  .ftf-hero__title { font-size: 26px; line-height: 1.25; letter-spacing: 0; }
  .ftf-hero__subtitle { font-size: 14px; line-height: 1.5; }
  .ftf-section--stats .ftf-stat__num { font-size: 32px; }
  .ftf-section--stats .ftf-stat__label { font-size: 13px; }
}
