/* Product collections use the site's shared Tonghua design tokens. */
.source-catalog { color:var(--text); background:var(--white); }
.source-catalog [hidden] { display:none!important; }
.sc-wrap { max-width:1240px; margin-inline:auto; padding-inline:24px; }
.sc-intro { text-align:left; border-bottom:3px solid var(--red); }
.sc-intro.site-page-hero { padding:32px 24px!important; }
.sc-intro .site-hero-inner { max-width:1192px; display:grid; grid-template-columns:minmax(0,1fr) auto; column-gap:56px; }
.sc-intro .site-hero-inner>:not(.sc-hero-actions) { grid-column:1; }
.sc-intro.site-page-hero h1 { margin:12px 0 10px!important; }
.sc-intro.site-page-hero .site-hero-inner>p { margin:0; max-width:720px; }
.sc-eyebrow { display:inline-block; font-family:var(--font-body); font-size:11px; font-weight:600; letter-spacing:.12em; color:var(--red); }
.sc-intro h1 { color:var(--white); }
.sc-intro .site-hero-inner>p { color:#d1d5d8; }
.sc-intro-meta { display:flex; gap:10px; flex-wrap:wrap; margin-top:16px; font-size:12px; color:#d1d5d8; }
.sc-intro-meta span { padding:5px 12px; border:1px solid #ffffff25; border-radius:6px; background:#ffffff08; }
.sc-hero-actions { grid-column:2; grid-row:2/5; display:flex; flex-direction:column; justify-content:center; gap:10px; min-width:180px; }
.sc-btn { display:inline-flex; align-items:center; justify-content:center; gap:16px; min-height:44px; border-radius:6px; padding:12px 20px; font-size:13px; font-weight:600; line-height:1.4; transition:background .15s,color .15s,border-color .15s; }
.sc-btn-primary { background:var(--red); color:var(--white); border:1px solid var(--red); }
.sc-btn-primary:hover { background:var(--red-dark); border-color:var(--red-dark); }
.sc-btn-outline { border:1px solid #ffffff50; color:var(--white); background:#ffffff08; }
.sc-btn-outline:hover { background:#ffffff18; }
.sc-category-nav { display:flex; gap:8px; overflow-x:auto; padding-block:16px; scrollbar-width:thin; border-bottom:1px solid var(--line); }
.sc-category-nav a { white-space:nowrap; padding:10px 15px; border:1px solid var(--line); border-radius:6px; font-size:12px; font-weight:500; min-height:40px; color:var(--text-2); background:var(--white); }
.sc-category-nav a[aria-current=page] { background:var(--red); color:var(--white); border-color:var(--red); }
.sc-category-nav a:hover:not([aria-current]) { color:var(--red); border-color:var(--red); background:var(--red-soft); }
.sc-browse { padding-top:28px; padding-bottom:48px; scroll-margin-top:92px; }
.sc-browse-heading { display:flex; align-items:baseline; flex-wrap:wrap; column-gap:24px; row-gap:8px; }
.sc-browse-heading h2,.sc-contact h2,.sc-next h2,.sc-solar-reference>h2 { font-family:var(--font-display); font-size:32px; font-weight:400; line-height:1.2; letter-spacing:-.025em; color:var(--ink); }
.sc-browse-heading p { color:var(--text-2); font-size:14px; margin:0; }
.sc-controls { display:grid; grid-template-columns:minmax(0,1fr) 240px auto; gap:14px; align-items:end; background:var(--bg-warm); padding:16px; border:1px solid var(--line); border-radius:8px; margin-top:18px; }
.sc-controls.sc-single-collection { grid-template-columns:minmax(0,1fr) auto; }
.sc-controls label { display:flex; flex-direction:column; gap:7px; font-size:12px; font-weight:600; min-width:0; color:var(--text); }
.sc-controls input,.sc-controls select { width:100%; min-height:46px; border:1px solid #cfd2d5; border-radius:6px; padding:10px 12px; font:inherit; font-size:14px; background:var(--white); color:var(--ink); }
.sc-controls input::placeholder { color:#7e858c; font-weight:400; }
.sc-controls button { min-height:46px; border:1px solid #cfd2d5; padding:10px 16px; border-radius:6px; background:var(--white); color:var(--text); font-size:13px; }
.sc-controls button:hover { border-color:var(--red); color:var(--red); }
.source-catalog :focus-visible { outline:3px solid var(--red); outline-offset:3px; }
#sc-status { font-size:12px; color:var(--text-2); margin:16px 0; }
.sc-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; scroll-margin-top:96px; }
.sc-card { min-width:0; padding:18px; border:1px solid #e0e2e4; border-radius:12px; background:var(--white); box-shadow:0 3px 12px #00000004; display:flex; flex-direction:column; scroll-margin-top:100px; transition:border-color .15s,box-shadow .15s; }
.sc-card:hover { border-color:#c4c8cc; box-shadow:0 5px 20px #00000008; }
.sc-photo { position:relative; display:flex; align-items:center; justify-content:center; aspect-ratio:1.3; background:#f6f6f4; overflow:hidden; border-radius:6px; }
.sc-photo[aria-haspopup] { cursor:zoom-in; }
.sc-photo[aria-haspopup]::after { content:'Enlarge ↗'; position:absolute; right:10px; bottom:10px; padding:6px 9px; color:var(--ink); background:#fffffff2; border:1px solid #00000012; border-radius:4px; font-size:11px; font-weight:500; }
.sc-photo img { display:block; width:100%; height:100%; object-fit:contain; }
.sc-card-body { padding:18px 0 0; display:flex; flex:1; flex-direction:column; }
.sc-kind { align-self:flex-start; max-width:100%; color:#a30d1b; background:var(--red-soft); font-size:11px; font-weight:500; line-height:1.5; padding:3px 8px; border-radius:4px; margin-bottom:6px; }
.sc-card h3 { color:var(--ink); font-family:var(--font-body); font-size:20px; line-height:1.3; font-weight:700; margin:0 0 16px; letter-spacing:-.02em; }
.sc-model-line { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:4px 12px; margin-bottom:10px; }
.sc-model-line h3 { margin:0; overflow-wrap:anywhere; }
.sc-copy-model { min-height:44px; padding:8px 0; flex-shrink:0; background:transparent; border:0; color:var(--text-2); font:inherit; font-size:12px; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.sc-copy-model:hover { color:var(--red); }
.sc-announcement,.sc-copy-field { position:fixed; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.sc-key-specs { font-size:13px; line-height:1.55; margin:0 0 18px; }
.sc-key-specs div { display:grid; grid-template-columns:85px minmax(0,1fr); gap:10px; margin:7px 0; }
.sc-key-specs dt { color:#697179; font-size:12px; }
.sc-key-specs dd { color:#2c3238; margin:0; overflow-wrap:anywhere; }
.sc-key-specs .sc-price-row { border-top:1px solid var(--line); margin-top:12px; padding-top:12px; }
.sc-price-row dd { font-weight:500; font-variant-numeric:tabular-nums; }
.sc-details { border-top:1px solid var(--line); padding-top:12px; margin-top:auto; font-size:13px; }
.sc-details summary { cursor:pointer; font-weight:500; color:var(--ink); padding:10px 0; min-height:44px; }
.sc-details summary:hover { color:var(--red); }
.sc-details dl { padding:5px 0 12px; }
.sc-details dl div { margin-bottom:10px; }
.sc-details dt { font-weight:500; color:var(--muted); margin-bottom:2px; }
.sc-details dd { margin:0; line-height:1.65; overflow-wrap:anywhere; }
.sc-small { font-size:12px; color:var(--muted); line-height:1.65; margin:0 0 12px; }
.sc-quote { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:12px 16px; border:1px solid var(--red); border-radius:6px; font-size:13px; font-weight:600; color:var(--white); min-height:44px; margin-top:12px; background:var(--red); transition:background .15s; }
.sc-quote:hover { background:var(--red-dark); border-color:var(--red-dark); }
.sc-quote span { font-size:18px; font-weight:400; }
.sc-calc { display:flex; align-items:center; justify-content:center; min-height:40px; margin-top:8px; color:var(--text); font-size:12px; font-weight:500; text-decoration:underline; text-underline-offset:3px; }
.sc-calc:hover { color:var(--red); }
#sc-more { display:block; margin:30px auto 0; padding:13px 32px; min-height:46px; border:1px solid #cfd2d5; border-radius:6px; color:var(--ink); background:var(--white); font-weight:600; font-size:13px; }
#sc-more:hover { color:var(--red); border-color:var(--red); }
#sc-empty { padding:36px 20px; background:var(--bg-warm); border:1px solid var(--line); border-radius:10px; text-align:center; }
#sc-empty h3 { font-size:18px; margin-bottom:10px; }
.sc-contact { padding-top:8px; padding-bottom:40px; scroll-margin-top:100px; }
.sc-contact-inner { display:flex; align-items:center; justify-content:space-between; gap:40px; background:#1d2023; border-radius:12px; padding:36px; }
.sc-contact .sc-eyebrow { color:#ff9ca2; }
.sc-contact h2 { color:var(--white); font-size:30px; margin:12px 0 14px; }
.sc-contact p { max-width:620px; color:#d1d5d8; font-size:14px; line-height:1.75; }
.sc-contact .sc-btn { flex-shrink:0; }
.sc-next { padding-block:32px 56px; border-top:1px solid var(--line); }
.sc-next>div { display:grid; grid-template-columns:repeat(3,1fr); gap:32px; margin-top:24px; font-size:13px; line-height:1.8; color:var(--text-2); }
.sc-next strong { display:block; color:var(--ink); font-weight:600; margin-bottom:6px; }
.sc-next a { text-decoration:underline; color:var(--red); }
.sc-anchor { scroll-margin-top:120px; }
.sc-solar-reference { padding-bottom:60px; }
.sc-solar-reference>h2 { margin-bottom:20px; }
.sc-reference { border:1px solid var(--line); border-radius:8px; margin:12px 0; padding:0 20px; }
.sc-reference>summary { padding:18px 0; font-size:15px; font-weight:500; cursor:pointer; color:var(--ink); }
.sc-reference>summary:hover { color:var(--red); }
.sc-reference-body { padding:8px 0 22px; font-size:14px; line-height:1.8; overflow:auto; }
.sc-reference-body h3 { font-size:18px; font-weight:600; margin:20px 0 6px; }
.sc-reference-body p { margin-bottom:12px; }
.sc-reference-body img,.sc-reference-body video { max-width:100%; height:auto; max-height:460px; object-fit:contain; margin:12px 0; }
.sc-reference-body table { width:100%; border-collapse:collapse; }
.sc-reference-body td,.sc-reference-body th { padding:12px; border:1px solid var(--line); text-align:left; white-space:nowrap; }
.sc-reference-body th { background:var(--bg-warm); }
.sc-reference-body a { text-decoration:underline; color:var(--red); }
.sc-reference-body>div { margin-bottom:16px; }
.source-catalog .v3-dropdown { min-width:220px; }
.sc-preview { width:min(960px,calc(100% - 32px)); max-height:calc(100dvh - 32px); padding:0; margin:auto; border:0; border-radius:10px; color:var(--text); background:var(--white); box-shadow:0 24px 80px #0005; }
.sc-preview::backdrop { background:#111b; }
.sc-preview[open] { display:flex; flex-direction:column; }
.sc-preview-header { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:14px 20px; border-bottom:1px solid var(--line); flex-shrink:0; }
.sc-preview-title { font-size:20px; font-weight:700; line-height:1.3; overflow-wrap:anywhere; }
.sc-preview-close { min-width:44px; min-height:44px; padding:8px; background:var(--bg-warm); border:1px solid var(--line); border-radius:6px; font-size:22px; cursor:pointer; }
.sc-preview-image { display:block; min-height:0; width:100%; height:min(60dvh,620px); object-fit:contain; background:#f6f6f4; }
.sc-preview-footer { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px 20px; padding:12px 20px; border-top:1px solid var(--line); }
.sc-preview-footer p { font-size:12px; color:var(--text-2); }
.sc-preview-actions { display:flex; align-items:center; flex-wrap:wrap; gap:20px; }
.sc-preview-open { overflow:hidden; }
@media(max-width:950px) {
 .sc-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .sc-controls { grid-template-columns:minmax(0,1fr) 180px auto; }
 .sc-contact-inner { gap:24px; padding:28px; }
}
@media(max-width:760px) {
 .sc-intro .site-hero-inner { display:block; }
 .sc-hero-actions { flex-direction:row; justify-content:flex-start; flex-wrap:wrap; margin-top:18px; }
}
@media(max-width:600px) {
 .sc-wrap { padding-inline:18px; }
 .sc-intro.site-page-hero { padding:24px 18px!important; }
 .sc-intro h1 { font-size:32px!important; }
 .sc-intro .site-hero-inner>p { font-size:14px!important; }
 .sc-intro-meta { margin-top:14px; }
 .sc-hero-actions { gap:10px; margin-top:16px; }
 .sc-hero-actions .sc-btn { padding:11px 14px; font-size:12px; }
 .sc-category-nav { padding-block:12px; }
 .sc-controls { grid-template-columns:minmax(0,1fr) auto; padding:12px; gap:10px; margin-top:16px; }
 .sc-search-label { grid-column:1/-1; }
 .sc-single-collection .sc-search-label { grid-column:auto; }
 .sc-single-collection #sc-clear { padding-inline:10px; }
 .sc-controls input { font-size:16px; }
 .sc-grid { grid-template-columns:minmax(0,1fr); gap:20px; }
 .sc-card { padding:16px; }
 .sc-photo { aspect-ratio:1.3; }
 .sc-card-body { padding-top:16px; }
 .sc-browse { padding-top:26px; padding-bottom:36px; }
 .sc-browse-heading h2,.sc-contact h2,.sc-next h2,.sc-solar-reference>h2 { font-size:27px; }
 .sc-contact-inner { flex-direction:column; align-items:stretch; gap:24px; padding:26px 22px; }
 .sc-contact .sc-btn { align-self:flex-start; }
 .sc-next>div { grid-template-columns:1fr; gap:20px; }
 .sc-key-specs { font-size:13px; }
 .sc-reference { padding-inline:16px; }
 .sc-preview { width:calc(100% - 20px); max-height:calc(100dvh - 20px); }
 .sc-preview-header,.sc-preview-footer { padding:10px 14px; }
 .sc-preview-image { height:50dvh; }
 .sc-preview-actions { width:100%; justify-content:space-between; gap:12px; }
}
@media(prefers-reduced-motion:reduce) { .sc-card,.sc-btn,.sc-quote { transition:none; } }
