* { box-sizing: border-box; margin: 0; padding: 0; }
  body { font-family: var(--font-sans, system-ui, -apple-system, sans-serif); background: #fff; color: #1a1a1a; }
  .pw { max-width: 1600px; margin: 0 auto; background: #fff; min-height: 800px; display: flex; flex-direction: column; }
  .hd { display: flex; align-items: center; justify-content: space-between; padding: 16px 40px; border-bottom: 1px solid #eee; background: #fff; }
  .logo-img { height: 64px; width: auto; display: block; }
  .nv { display: flex; gap: 32px; }
  .nv a { text-decoration: none; color: #555; font-size: 20px; cursor: pointer; }
  .nv a:hover, .nv a.act { color: #7a5c2e; }
  .nv a.act { position: relative; }
  .nv a.act::after { content: ''; position: absolute; bottom: -4px; left: 0; right: 0; height: 2px; background: #B8916A; border-radius: 1px; }
  .mw { display: flex; flex: 1; min-height: 600px; }
  .sb { width: 340px; background: #fff; border-right: 1px solid #eee; padding: 32px 0; flex-shrink: 0; }
  .sbt { font-size: 13px; font-weight: 500; text-transform: uppercase; letter-spacing: 2px; color: #7a5c2e; padding: 0 24px 16px; border-bottom: 1px solid #eee; margin-bottom: 8px; }
  .si { display: flex; align-items: center; gap: 10px; padding: 12px 24px; font-size: 14px; color: #666; cursor: pointer; border-left: 3px solid transparent; }
  .si:hover { background: #f0f0f0; color: #1a1a1a; }
  .si.act { background: #fff8f0; color: #7a5c2e; border-left-color: #7a5c2e; font-weight: 500; }
  .si svg { width: 16px; height: 16px; stroke: currentColor; stroke-width: 1.8; fill: none; flex-shrink: 0; }
  .pli { display: flex; align-items: center; gap: 9px; padding: 9px 24px 9px 28px; font-size: 13px; color: #666; cursor: pointer; text-decoration: none; border-left: 3px solid transparent; }
  .pli:hover { background: #f0f0f0; color: #1a1a1a; }
  .pli.act { background: #fff8f0; color: #7a5c2e; border-left-color: #7a5c2e; font-weight: 500; }
  .pli svg { width: 14px; height: 14px; stroke: currentColor; stroke-width: 1.8; fill: none; flex-shrink: 0; }
  .cat { border-bottom: 1px solid #eee; }
  .cat > summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; padding: 14px 24px; font-size: 13px; font-weight: 500; text-transform: uppercase; letter-spacing: 1.5px; color: #7a5c2e; }
  .cat > summary::-webkit-details-marker { display: none; }
  .cat > summary::marker { content: ''; }
  .cat > summary:hover { color: #1a1a1a; }
  .cat[open] > summary { color: #1a1a1a; }
  .cat .cnt { font-size: 11px; color: #999; background: #f0f0f0; border-radius: 10px; padding: 1px 8px; letter-spacing: 0; }
  .ct { flex: 1; padding: 44px 56px 100px; }
  .bc { font-size: 12px; color: #6b6b6b; margin-bottom: 20px; }
  .bc span { color: #1a1a1a; }
  .sep { margin: 0 6px; color: #6b6b6b; }
  .pt { font-size: 30px; font-weight: 500; color: #1a1a1a; margin-bottom: 8px; }
  .ps { font-size: 16px; color: #6b6b6b; line-height: 1.6; margin-bottom: 32px; }
  .pds { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; margin-bottom: 40px; align-items: start; }
  .pi { width: 100%; aspect-ratio: 4/3; overflow: hidden; border-radius: 14px; background: #fafafa; border: 1px solid #eee; box-shadow: 0 6px 22px rgba(36,28,16,.06); }
  .pi img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
  .kf h2 { font-size: 16px; font-weight: 500; color: #1a1a1a; margin-bottom: 18px; }
  .kf ul { list-style: none; }
  .kf li { display: flex; gap: 10px; font-size: 15px; color: #555; line-height: 1.5; margin-bottom: 14px; }
  .kf li svg { width: 18px; height: 18px; stroke: #7a5c2e; stroke-width: 2; fill: none; flex-shrink: 0; margin-top: 2px; }
  .pd { font-size: 17px; color: #333; line-height: 1.75; margin-bottom: 20px; }
  .pd a { color: #7a5c2e; text-decoration: underline; text-underline-offset: 2px; }
  .pd a:hover { color: #9c774f; }
  .intro-img { text-align: center; margin: 8px 0 28px; }
  .intro-img img { max-width: 100%; width: auto; max-height: 440px; border-radius: 8px; box-shadow: 0 2px 10px rgba(0,0,0,.08); }
  .intro-empty { margin: 8px 0 28px; padding: 48px 20px; border: 2px dashed #ddd; border-radius: 8px; text-align: center; color: #6b6b6b; font-size: 13px; background: #fafafa; }
  .lead { font-size: 18px; color: #333; line-height: 1.85; margin-bottom: 24px; font-weight: 600; }
  .pd-h { font-size: 20px; font-weight: 700; color: #222; margin: 28px 0 14px; }
  .pd-fig { margin: 22px 0 26px; text-align: center; }
  .pd-fig img { max-width: 100%; width: auto; max-height: 460px; border-radius: 8px; box-shadow: 0 2px 10px rgba(0,0,0,.08); }
  .pd-fig figcaption { margin-top: 8px; font-size: 12px; color: #777; text-align: center; }
  .pd-fig-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px 12px; margin: 22px 0 26px; }
  .pd-fig-grid.pd-fig-grid-3 { grid-template-columns: repeat(3, 1fr); }
  .pd-fig-grid .pd-fig { margin: 0; }
  .pd-fig-grid .pd-fig img { max-height: 340px; }
  @media (max-width: 640px) { .pd-fig-grid { grid-template-columns: 1fr; } }
  .sec-h { font-size: 18px; font-weight: 500; color: #1a1a1a; margin: 0 0 18px; padding-bottom: 10px; border-bottom: 2px solid #B8916A; display: inline-block; }
  .spec { width: 100%; border-collapse: collapse; margin-bottom: 48px; }
  .spec td { padding: 13px 16px; border-bottom: 1px solid #eee; font-size: 15px; }
  .spec td:first-child { color: #6b6b6b; width: 38%; }
  .spec td:last-child { color: #1a1a1a; font-weight: 500; }
  .spec tr:hover td { background: #fafafa; }
  .parts { margin-bottom: 24px; }
  .parts-grid { display: grid; grid-template-columns: 1fr 1.25fr; gap: 40px; align-items: start; }
  .parts-spec { width: 100%; border-collapse: collapse; }
  .parts-spec th { text-align: left; padding: 12px 14px; height: 44px; box-sizing: border-box; vertical-align: middle; background: #fafafa; font-size: 14.5px; font-weight: 500; color: #1a1a1a; border-bottom: 2px solid #B8916A; }
  .parts-spec td { padding: 12px 14px; height: 44px; box-sizing: border-box; border-bottom: 1px solid #eee; font-size: 14.5px; color: #444; vertical-align: middle; }
  .parts-spec td:first-child { color: #1a1a1a; font-weight: 500; white-space: nowrap; }
  /* 自动对齐：描述列左、型号列居中、重量列右 */
  .parts-spec th:nth-child(2), .parts-spec td:nth-child(2) { text-align: center; }
  .parts-spec th:nth-child(3), .parts-spec td:nth-child(3) { text-align: right; font-variant-numeric: tabular-nums; }
  .parts-catalog { margin-top: 28px; }
  .pcat { margin: 18px 0; }
  .pcat-h { font-size: 15px; font-weight: 600; color: #1a1a1a; margin: 0 0 8px; padding-bottom: 6px; border-bottom: 1px solid #eee; }
  .pcat-finish { font-size: 12px; color: #6b6b6b; margin: 2px 0 8px; }
  .pcat-body { display: flex; gap: 20px; align-items: flex-start; margin-top: 10px; }
  .pcat-img { flex: 0 0 220px; align-self: flex-start; }
  .pcat-img img { width: 100%; height: auto; max-height: 360px; object-fit: contain; display: block; border-radius: 6px; border: 1px solid #eee; background: #fff; }
  .pcat-body .parts-spec { flex: 1; min-width: 0; margin: 0; }
  @media (max-width: 640px) { .pcat-body { flex-direction: column; } .pcat-img { flex: none; width: 100%; max-width: 320px; } }
  /* PICTURE 区：3 张并排图片 */
  .pics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-bottom: 48px; }
  .pic { width: 100%; aspect-ratio: 4/3; overflow: hidden; border-radius: 10px; background: #fafafa; border: 1px solid #eee; }
  .pic img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
  .pic-empty { display: flex; align-items: center; justify-content: center; color: #6b6b6b; font-size: 14px; letter-spacing: 1px; }
  @media (max-width: 640px) { .pics { grid-template-columns: 1fr; } .comps { grid-template-columns: repeat(2, 1fr); } .type-gallery { grid-template-columns: repeat(2, 1fr); } }
  /* COMPONENTS 区：图片上下竖向排列，图片下方显示各自的名称（取自文件名） */
  .comps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 8px; max-width: 980px; }
  .type-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 8px; max-width: 980px; }
  .tg-item { display: block; text-decoration: none; color: #1a1a1a; border: 1px solid #ececec; border-radius: 10px; overflow: hidden; background: #fff; transition: box-shadow .15s ease, transform .15s ease; }
  .tg-item:hover { box-shadow: 0 6px 18px rgba(36,28,16,.12); transform: translateY(-2px); }
  .tg-img { aspect-ratio: 4 / 3; background: #f5f5f5; overflow: hidden; }
  .tg-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
  .tg-cap { padding: 10px 12px; font-size: 15px; font-weight: 600; text-align: center; line-height: 1.35; }
  .comp { width: 100%; background: #fff; border: 1px solid #eee; border-radius: 10px; overflow: hidden; display: flex; flex-direction: column; }
  .comp-img { width: 100%; aspect-ratio: 4/3; overflow: hidden; background: #fafafa; }
  .comp-img img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
  .comp-cap { padding: 9px 10px; font-size: 13px; color: #555; text-align: center; line-height: 1.4; }
  .comp-empty { display: flex; align-items: center; justify-content: center; color: #6b6b6b; font-size: 14px; letter-spacing: 1px; aspect-ratio: 4/3; }
  .comp-group-head { background: #fafafa; font-weight: 500; color: #1a1a1a; padding: 10px 12px; border-bottom: 2px solid #B8916A; }
  .spec-table { width: 100%; max-width: 820px; border-collapse: collapse; margin-bottom: 48px; }
  .spec-table table { width: 100%; border-collapse: collapse; table-layout: fixed; }
  .spec-table th { text-align: left; padding: 13px 15px; background: #fafafa; font-size: 14.5px; font-weight: 500; color: #1a1a1a; border-bottom: 2px solid #B8916A; white-space: nowrap; }
  .spec-table td { padding: 13px 15px; border-bottom: 1px solid #eee; font-size: 14.5px; color: #444; vertical-align: top; font-weight: 400; }
  .spec-table td:first-child { color: #1a1a1a; white-space: normal; word-break: break-word; vertical-align: top; }
  .spec-table td.item { padding-left: 28px; white-space: normal; width: 47%; word-break: break-word; }
  .spec-table td:nth-child(3) { white-space: nowrap; }
  .spec-table td:last-child { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; vertical-align: middle; width: 14%; }
  .spec-table.center-data td:not(:first-child),
  .spec-table.center-data th:not(:first-child) { text-align: center; }
  .spec-table.center-data td:last-child { text-align: center; font-variant-numeric: tabular-nums; width: auto; }
  /* 自定义列宽规格表（如 Fire Escape Ladder 8 列）：colgroup 控制各列宽度，强制允许内容换行 */
  .spec-table.has-cols th, .spec-table.has-cols td { white-space: normal; }
  .spec-table.has-cols td:first-child { width: auto; white-space: normal; word-break: break-word; }
  .spec-table.has-cols td:nth-child(3) { white-space: normal; }
  .spec-table.has-cols td:last-child { width: auto; text-align: left; white-space: normal; }
  .spec-table.has-cols td, .spec-table.has-cols th { vertical-align: top; }
  .spec-table.surface-nowrap td:last-child, .spec-table.surface-nowrap th:last-child { white-space: nowrap; }
  .spec-table-title { text-align: center; font-size: 16px; font-weight: 600; margin: 24px 0 16px; color: #1a1a1a; }
  .comp-table { margin-bottom: 28px; overflow-x: auto; }
  .ft { background: #1a1a1a; color: #ccc; padding: 40px 40px 28px; font-size: 13px; }
  .fg2 { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 32px; margin-bottom: 28px; }
  .ft h4, .ft-h { color: #fff; font-size: 14px; font-weight: 500; margin-bottom: 14px; }
  .ft a { color: #999; text-decoration: none; display: block; margin-bottom: 8px; font-size: 13px; cursor: pointer; }
  .ft a:hover { color: #B8916A; }
  .ft .tg { color: #999; line-height: 1.6; margin-top: 8px; }
  .ft .lf { font-size: 18px; font-weight: 500; letter-spacing: 2px; color: #fff; }
  .ft .lf span { color: #B8916A; }
  .fb { border-top: 1px solid #333; padding-top: 20px; display: flex; justify-content: space-between; font-size: 12px; color: #999999; }
  @media (max-width: 768px) {
    .sb { display: none; }
    .pds { grid-template-columns: 1fr; }
    .parts-grid { grid-template-columns: 1fr; }
  }
  .faq-sec { margin-top: 8px; }
  .faq-list { display: flex; flex-direction: column; gap: 0; }
  .faq-item { border-bottom: 1px solid #eee; }
  .faq-q { display: flex; align-items: center; justify-content: space-between; padding: 18px 0; cursor: pointer; user-select: none; list-style: none; }
  .faq-q::-webkit-details-marker { display: none; }
  .faq-q:hover .q-text { color: #7a5c2e; }
  .q-icon { width: 32px; height: 32px; border-radius: 50%; background: #f5ede4; display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-right: 14px; font-size: 15px; font-weight: 500; color: #7a5c2e; }
  .q-text { flex: 1; font-size: 15px; font-weight: 500; color: #1a1a1a; transition: color 0.2s; }
  .q-arrow { width: 20px; height: 20px; stroke: #999; stroke-width: 2; fill: none; flex-shrink: 0; transition: transform 0.3s; }
  .faq-item[open] .q-arrow { transform: rotate(180deg); stroke: #7a5c2e; }
  .faq-a { padding: 0 0 20px 46px; }
  .a-content { font-size: 15px; color: #555; line-height: 1.7; }
  .a-content strong { color: #1a1a1a; }
  /* ---- Rosette detail：图片 + 表格（desc2 rosette 段下方） ---- */
  .rosette-block { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; align-items: start; margin: 28px 0; }
  .rosette-block .rs-img img { width: 100%; height: auto; border: 1px solid #eee; border-radius: 8px; display: block; }
  .rosette-block .rs-cap { font-size: 12px; color: #888; margin-top: 8px; text-align: center; }
  .rosette-block .rs-t { font-size: 15px; font-weight: 600; color: #1a1a1a; margin-bottom: 12px; }
  .rosette-block .rs-table-t { width: 100%; border-collapse: collapse; }
  .rosette-block .rs-table-t th { text-align: left; padding: 10px 12px; background: #fafafa; font-size: 13px; font-weight: 500; color: #1a1a1a; border-bottom: 2px solid #B8916A; white-space: nowrap; }
  .rosette-block .rs-table-t td { padding: 10px 12px; border-bottom: 1px solid #eee; font-size: 13px; color: #555; vertical-align: top; }
  .rosette-block .rs-table-t tr td:first-child { color: #1a1a1a; font-weight: 500; white-space: nowrap; }
  @media (max-width: 720px) {
    .rosette-block { grid-template-columns: 1fr; gap: 20px; }
  }
