/* Production polish: keep the approved palette and structure, give real content room. */
:root { --muted: #a9b8b1; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid var(--gold-bright); outline-offset: 5px; }
.eyebrow { display: block; color: var(--gold); font-size: 12px; letter-spacing: .14em; margin-bottom: 16px; }
.home-products { padding: 80px 0; }
.statement { padding-block: 88px; }
.statement h2 { max-width: 16ch; line-height: 1.4; white-space: pre-line; }
.statement p { max-width: 68ch; line-height: 1.95; }
.product-bento { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: auto; gap: 24px; }
.product-tile, .product-tile:first-child { grid-row: auto; grid-column: auto; min-height: 0; border: 1px solid var(--border); }
.product-tile { display: block; background: var(--forest); }
.product-tile img { position: relative; aspect-ratio: 1 / 1; height: auto; object-fit: contain; background: #fff; padding: 24px; }
.product-tile::after { display: none; }
.product-tile figcaption { padding: 24px; }
.product-tile strong { font-size: 22px; line-height: 1.45; margin-block: 8px; padding-right: 22px; }
.product-tile .price { color: var(--muted); }
.product-arrow { position: absolute; right: 24px; top: 42px; color: var(--gold); font-size: 22px; }
.catalog-caption { display: flex; justify-content: space-between; gap: 20px; color: var(--muted); font-size: 14px; padding: 12px 0 24px; }
.home-cases .case-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); }
.team-card { padding: 32px; border-top: 2px solid var(--gold); }
.team-card strong { font-family: var(--font-serif); font-size: 28px; font-weight: 500; }
.team-card em { color: var(--gold-bright); margin-top: 12px; }
.team-card p { line-height: 1.8; }
.team-card .team-avatar { width: 96px; height: 96px; object-fit: cover; object-position: center 25%; border-radius: 50%; border: 1px solid var(--border); margin-bottom: 24px; background: var(--forest-mid); }
.team-card.has-avatar { padding-top: 28px; }
.product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.product-card .thumb { height: auto; aspect-ratio: 1 / 1; background: #fff; }
.product-card .thumb img { object-fit: contain; padding: 22px; }
.product-card .meta { padding: 24px; }
.product-card h3 { line-height: 1.55; margin-block: 8px 14px; }
.product-card .row { gap: 12px; flex-wrap: wrap; font-size: 13px; }
.product-card .row > :last-child { color: var(--gold-bright); }
.product-detail { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
.product-detail .product-visual { background: #fff; position: sticky; top: calc(var(--header) + 24px); }
.product-detail .product-visual img { min-height: 0; aspect-ratio: 1; object-fit: contain; padding: 24px; background: #fff; }
.product-copy { min-width: 0; padding-block: 8px; }
.product-detail h1 { font-size: clamp(30px, 3.2vw, 46px); line-height: 1.4; }
.detail-back { display: inline-block; margin-bottom: 32px; color: var(--muted); font-size: 14px; }
.product-spec { color: var(--gold-bright); margin: 20px 0; }
.product-copy .prose { margin-top: 24px; }
.product-body { color: var(--muted); line-height: 1.9; }
.product-body p + p { margin-top: 16px; }
.detail-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.empty-state { grid-column: 1 / -1; padding: clamp(32px, 6vw, 80px); border: 1px solid var(--border); background: var(--forest); text-align: center; }
.empty-state h1, .empty-state h2 { font-family: var(--font-serif); font-size: clamp(24px, 3vw, 36px); line-height: 1.5; }
.empty-state p { margin: 16px auto 28px; max-width: 40em; color: var(--muted); }
.empty-state .btn { margin: 6px; }
[data-company-detail] > .empty-state { margin: calc(var(--header) + 40px) var(--pad) 60px; }
.honor-wall { grid-auto-rows: auto; gap: 24px; }
.honor-tile { display: flex; flex-direction: column; background: var(--forest); text-align: left; }
.honor-tile img { position: relative; width: 100%; height: 270px; object-fit: contain; padding: 18px; background: #f2f1ec; }
.honor-tile::after { display: none; }
.honor-tile figcaption { position: relative; padding: 20px; }
.honor-tile strong { line-height: 1.6; }
.article img.cover { height: auto; max-height: 560px; object-fit: contain; background: var(--forest); }
.article .body { overflow-wrap: anywhere; line-height: 1.95; }
.contact-card h2 { font-family: var(--font-serif); line-height: 1.6; font-size: 28px; margin-bottom: 28px; }
.contact-card p { margin-bottom: 22px; overflow-wrap: anywhere; }
.form-status { min-height: 1.7em; margin-top: 12px; color: var(--gold-bright); }
.form-status.is-error { color: #ffc7b0; }
.form button:disabled { opacity: .6; cursor: wait; }
.filter button, .icon-btn { min-height: 44px; min-width: 44px; }
.mobile-panel { overflow-y: auto; overscroll-behavior: contain; padding-bottom: max(28px, env(safe-area-inset-bottom)); }

.hero-scroll-cue {
  position: absolute; z-index: 3; right: clamp(24px, 5vw, 76px); bottom: 34px;
  display: grid; justify-items: center; gap: 8px; border: 0; background: transparent;
  color: rgba(255,255,255,.78); cursor: pointer; letter-spacing: .2em; font-size: 9px;
}
.brand img, .footer-brand img { background: #0c2a24; border-radius: 50%; padding: 3px; object-fit: contain; }
.shop-modal { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 24px; background: rgba(4,20,17,.72); }
.shop-modal-card { position: relative; width: min(420px, 100%); padding: 36px 32px 32px; text-align: center; background: var(--paper); color: var(--ink); box-shadow: 0 24px 80px rgba(0,0,0,.28); }
.shop-modal-card h2 { margin: 8px 0 20px; font-family: var(--font-serif); font-size: 26px; }
.shop-modal-close { position: absolute; top: 10px; right: 14px; border: 0; background: transparent; color: var(--muted); font-size: 28px; line-height: 1; cursor: pointer; }
.shop-modal-image { display: block; width: min(260px, 100%); aspect-ratio: 1; object-fit: contain; margin: 0 auto 22px; background: #fff; }
.hero-scroll-cue i { width: 1px; height: 42px; background: linear-gradient(#c9a227, rgba(255,255,255,0)); position: relative; overflow: hidden; }
.hero-scroll-cue i::after { content: ""; position: absolute; inset: -22px 0 auto; height: 18px; background: #fff; animation: hero-scroll-line 1.8s ease-in-out infinite; }
@keyframes hero-scroll-line { to { transform: translateY(64px); } }
@media (max-width: 768px) { .hero-scroll-cue { right: 20px; bottom: 22px; } }
.menu-is-open { overflow: hidden; }
.footer-grid > *, .news-row > *, .org-parent > *, .org-sub > * { min-width: 0; }
.footer-grid p, .org-parent p, .org-sub p { overflow-wrap: anywhere; }
/* Reveal motion is owned by main.css + motion.js. Do not force a rise animation here:
   starting visible then animating from opacity 0 causes a flash on every is-in. */
@media (max-width: 1024px) {
  .nav, .nav-tools .search-open { display: none; }
  .menu-toggle { display: grid; }
  .product-bento { gap: 16px; }
  .product-tile figcaption { padding: 18px; }
  .product-tile strong { font-size: 18px; }
  .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 768px) {
  .hero { min-height: 640px; height: 88svh; max-height: 860px; }
  .hero-copy { min-height: 0; height: 100%; padding-bottom: 88px; }
  .hero-copy h1 { font-size: clamp(36px, 9vw, 52px); }
  .hero-copy p { max-width: 28em; }
  .origin-journey, .origin-journey.is-static { height: auto !important; }
  .origin-stage, .origin-journey.is-static .origin-stage { position: relative; min-height: 690px; height: 90svh; max-height: 880px; }
  .origin-copy { padding-right: 42px; padding-bottom: 100px; }
  .origin-copy h2 { font-size: clamp(36px, 9vw, 50px); }
  .origin-controls { bottom: 30px; right: var(--pad); }
  .origin-meter { top: auto; bottom: 34px; left: var(--pad); right: auto; transform: none; }
  .origin-filament, .origin-dots { display: none; }
  .statement { padding-block: 56px; }
  .statement h2 { font-size: 32px; }
  .home-products, .home-news, .home-cases { padding-block: 56px; }
  .product-bento { grid-template-columns: 1fr; grid-template-rows: auto; gap: 24px; }
  .product-tile img { aspect-ratio: 1.15; padding: 20px; }
  .product-tile strong { font-size: 22px; }
  .product-tile figcaption { padding: 22px; }
  .product-detail { grid-template-columns: 1fr; }
  .product-detail .product-visual { position: relative; top: auto; }
  .detail-back { margin-bottom: 20px; }
  .honor-wall { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: auto; gap: 14px; }
  .honor-tile img { height: 180px; padding: 10px; }
  .honor-tile figcaption { padding: 12px; }
  .honor-tile strong { font-size: 14px; }
  .article-item img { height: 220px; }
}
@media (max-width: 480px) {
  .product-grid { grid-template-columns: 1fr; }
  .product-card .thumb { aspect-ratio: 1.15; }
  .brand-name strong { font-size: 16px; }
  .nav-tools { gap: 8px; }
  .page-hero-copy h1 { font-size: 34px; line-height: 1.5; }
  .page-body { padding-block: 44px; }
}
@media (prefers-reduced-motion: reduce) { .hero-scroll-cue i::after { animation: none; } }

/* 列表分页（每页条数由后台「系统配置 → 显示设置」控制）*/
.pager-host { display: flex; justify-content: center; margin-top: 36px; }
.pager { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.pager button {
  min-width: 38px; height: 38px; padding: 0 12px;
  background: transparent; color: var(--ink);
  border: 1px solid var(--border); border-radius: var(--radius);
  font-family: var(--font-body); font-size: 14px; line-height: 1;
  cursor: pointer;
  transition: color .2s var(--ease), border-color .2s var(--ease), background .2s var(--ease);
}
.pager button:hover:not(:disabled):not(.is-on) { color: var(--gold); border-color: rgba(201, 162, 39, 0.55); }
.pager button.is-on { background: var(--gold); border-color: var(--gold); color: var(--ink-dark); }
.pager button:disabled { opacity: 0.3; cursor: default; }
.pager button:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
.pager-gap { padding: 0 6px; color: var(--muted); font-size: 14px; }
@media (max-width: 640px) {
  .pager { gap: 4px; }
  .pager button { min-width: 34px; height: 34px; padding: 0 8px; font-size: 13px; }
}

/* 广告类型：文字 / 代码（HTML5）幻灯 —— 后台「广告幻灯管理 → 广告类型」*/
.hero-slide.is-text {
  background: linear-gradient(135deg, #06231f 0%, #0b3b33 46%, #12564a 100%);
}
.hero-slide.is-html > :first-child {
  display: block; width: 100%; height: 100%; object-fit: cover;
}
.hero-slide.is-html video { object-fit: cover; }

/* 第三方客服代码落点容器：自身不占位，避免影响页面布局（代码片段多为 position:fixed 悬浮件）*/
.kefu-thirdparty { position: static; height: 0; overflow: visible; }
