/* Visual layer. Product selection is supplied by existing data-product. */
body.digital-product,body.portal-page{--product:#7548bc;--product-soft:#f1eaff;--visual-ink:#2b2048;--visual-bg:#fbf9ff;--visual-line:#e6dafa;--visual-muted:#6b617c;background:var(--visual-bg);color:var(--visual-ink)}
body.digital-product[data-product="zhiku"]{--product:#1f55c5;--product-soft:#e9f1ff;--visual-ink:#102345;--visual-bg:#f7faff;--visual-line:#dbe7fb;--visual-muted:#526681}
body.digital-product[data-product="hehe"]{--product:#b95f3e;--product-soft:#f8eee4;--visual-ink:#302722;--visual-bg:#fffaf5;--visual-line:#e8d2bf;--visual-muted:#756357}
body.case-library-page{--product:#1c644d;--product-soft:#e8f0e8;--visual-ink:#193328;--visual-bg:#f7faf5;--visual-line:#d7e7d9;--visual-muted:#50695b}
.digital-product .product-hero{margin-top:28px;border-radius:24px;background:var(--product-soft);color:var(--visual-ink);padding:48px;min-height:300px;border:1px solid var(--visual-line)}
.digital-product .product-hero p,.digital-product .product-stat span{color:var(--visual-muted);line-height:1.8}
.digital-product .product-hero>div>p:first-child,.digital-product .product-stat strong{color:var(--product)}
.digital-product .product-stat{border-left:1px solid var(--visual-line);padding-left:40px;margin-left:28px;flex-shrink:0}
.digital-product .product-hero h1{font-size:clamp(30px,4vw,52px);letter-spacing:-.03em}
.digital-product[data-product="hehe"] .product-hero h1{font-family:"Songti SC","SimSun",serif;font-weight:600;line-height:1.4}
.digital-product[data-product="hehe"] .product-hero{border-radius:6px}
.digital-product .product-tools{margin:24px 0 0;border-radius:16px;border-color:var(--visual-line);gap:12px;padding:16px}
.digital-product .search-control{background:var(--visual-bg);border-color:var(--visual-line);border-radius:10px}
.digital-product .product-tabs button,.digital-product .refresh-button{border-radius:9px;background:var(--product-soft);color:var(--product)}
.digital-product .product-tabs button.active{background:var(--product);color:#fff}
.digital-product .product-header nav button,.digital-product .action-primary,.digital-product .action-secondary{border-radius:10px}
.digital-product .action-secondary{background:var(--product-soft);color:var(--visual-ink)}
.digital-product .product-results{padding-top:32px}
.digital-product .product-card{border-color:var(--visual-line);border-radius:18px;gap:8px;box-shadow:0 6px 20px #20203006}
.digital-product .product-card h3{line-height:1.5;margin-top:14px}.digital-product .product-card p{color:var(--visual-muted);line-height:1.8}
.digital-product .card-foot{border-color:var(--visual-line)}.digital-product .card-foot strong{color:var(--product)}
.digital-product dialog{border-radius:20px;color:var(--visual-ink)}.digital-product .detail-facts{background:var(--visual-line);border-radius:12px;overflow:hidden}.digital-product .detail-facts span{background:var(--visual-bg)}
.portal-page .portal-intro,.portal-page .case-library-intro{background:var(--product-soft);border:1px solid var(--visual-line);border-radius:24px;padding:32px}
.portal-page .portal-product,.portal-page .content-card,.portal-page .case-card{border:1px solid var(--visual-line);border-radius:18px;box-shadow:0 6px 20px #20203006}
.portal-page .portal-product.course{background:#f1eaff;color:#2b2048}.portal-page .portal-product.zhiku{background:#e9f1ff;color:#102345}.portal-page .portal-product.alliance{background:#f8eee4;color:#302722}.portal-page .portal-product.cases{background:#e8f0e8;color:#193328}
.case-library-page{--red:#1c644d;--red-dark:#174c3d;--ink:#193328;--line:#d7e7d9;--muted:#50695b}
.digital-product :is(button,input,textarea):focus-visible,.portal-page :is(button,input,a):focus-visible{outline:2px solid var(--product);outline-offset:3px}
@media(max-width:800px){.digital-product .product-hero{padding:28px 22px;margin-top:18px;min-height:230px}.portal-page .portal-intro,.portal-page .case-library-intro{padding:22px}.digital-product .product-tools{gap:10px}}
body.digital-product .product-card h3,body.digital-product .product-card p,body.digital-product .card-foot span,body.digital-product .detail-copy{color:var(--visual-ink)}
body.digital-product .product-card p,body.digital-product .card-foot span{color:var(--visual-muted)}
body.digital-product .product-header{background:#fff;border-color:var(--visual-line);color:var(--visual-ink)}
body.digital-product .product-header .brand strong,body.digital-product .product-header nav a{color:var(--visual-ink)}
body.digital-product .product-header .brand small{color:var(--visual-muted)}
@media(prefers-reduced-motion:reduce){.digital-product .product-card{transition:none;transform:none}}
