
/* === Kaiyuan-style About & Video (homepage) === */
.ky-about{padding:4.2rem 0;background:var(--color-surface)}
.ky-grid{display:grid;grid-template-columns:1.02fr 1fr;gap:3rem;align-items:center}
.ky-title{margin:0;font-size:clamp(1.9rem,3.4vw,2.6rem);font-weight:800;color:var(--color-primary-ink);line-height:1.2}
.ky-sub{display:block;margin-top:.45rem;font-size:.9rem;font-weight:600;letter-spacing:.42em;text-transform:uppercase;color:#93a29b}
.ky-line{display:block;width:3.6rem;height:4px;margin:1.1rem 0 1.3rem;border-radius:2px;background:linear-gradient(90deg,var(--color-accent),var(--color-primary))}
.ky-desc{margin:0 0 1.9rem;color:var(--color-muted-text);font-size:1rem;line-height:1.95;text-align:justify}
.ky-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-bottom:2.1rem}
.ky-stat .n{color:var(--color-primary);font-weight:800;font-size:clamp(1.65rem,2.4vw,2.2rem);line-height:1;font-variant-numeric:tabular-nums}
.ky-stat .n .u{font-size:.5em;font-weight:700;margin-left:.15rem}
.ky-stat p{margin:.55rem 0 0;color:var(--color-muted-text);font-size:.84rem;line-height:1.45}
.ky-btn{display:inline-block;padding:.72rem 2.4rem;border-radius:999px;background:#5f7169;color:#fff;font-weight:600;font-size:.95rem;letter-spacing:.04em;transition:background .25s ease,transform .25s ease}
.ky-btn:hover{background:var(--color-primary);color:#fff;transform:translateY(-1px);text-decoration:none}
.ky-media{margin:0}
.ky-media img,.ky-media video{display:block;width:100%;aspect-ratio:16/10.4;object-fit:cover;border-radius:14px;box-shadow:0 18px 44px rgba(7,59,40,.14)}
@media (max-width:920px){
  .ky-grid{grid-template-columns:1fr;gap:2.2rem}
  .ky-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem}
}
@media (max-width:420px){.ky-stats{gap:.8rem}.ky-btn{padding:.65rem 1.8rem}}

/* === Kaiyuan-style products === */
#products{padding:4.2rem 0 4.8rem;background:var(--color-surface)}
#products{position:relative;background:url('assets/img/kp-bg.webp') center/cover no-repeat;padding:4.6rem 0 5rem}
#products::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(226,236,243,.5),rgba(235,242,246,.72) 55%,rgba(240,245,248,.82));z-index:0}
#products>.container{position:relative;z-index:1}
.kp-top{display:flex;justify-content:space-between;align-items:flex-start;gap:2rem;margin-bottom:2.4rem}
.kp-tabs{display:flex;flex-wrap:wrap;gap:.8rem;padding-top:.35rem}
.kp-tab{padding:.5rem 1.5rem;border-radius:999px;background:#fff;border:none;font-size:.9rem;font-weight:600;color:#1c1c1c;cursor:pointer;text-decoration:none;display:inline-block;box-shadow:0 2px 10px rgba(70,90,110,.08);transition:transform .2s ease,background .2s ease}
.kp-tab:hover{transform:translateY(-2px)}
.kp-tab.on{background:#e3ebf3;color:#0d0d0d}
.kp-head{display:flex;flex-direction:column;align-items:flex-end;text-align:right;flex-shrink:0}
.kp-cap{font-size:1.02rem;font-weight:600;letter-spacing:.05em;color:#a4aeb8}
.kp-head h2{margin:.1rem 0 0;font-size:clamp(2.2rem,3.5vw,3.4rem);font-weight:900;color:#0d0d0d;letter-spacing:.01em}
.kp-main{position:relative;display:grid;grid-template-columns:1fr 1.12fr;gap:3rem;align-items:center;padding:1.2rem 0 0}
.kp-copy .en{font-size:.9rem;font-weight:600;letter-spacing:.22em;color:#8a9199;text-transform:uppercase}
.kp-copy h3{margin:.6rem 0 1rem;font-size:clamp(1.9rem,2.9vw,2.8rem);font-weight:900;color:#0d0d0d;line-height:1.2}
.kp-copy p{margin:0 0 2.4rem;color:#6b7280;line-height:1.9;font-size:.95rem;max-width:34em;min-height:3.6em}
.kp-prevrow{position:absolute;left:-13px;top:50%;transform:translateY(-50%);margin:0;z-index:6}
.kp-arrow{width:26px;height:46px;border-radius:5px;border:none;background:rgba(88,98,110,.55);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s ease}
.kp-arrow:hover{background:rgba(58,68,80,.78)}
.kp-arrow svg{width:14px;height:14px;fill:none;stroke:#fff;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.kp-detail{display:inline-block;margin-top:calc(46px + 1.8rem);padding:.74em 3.1em;border-radius:999px;background:#9aa1a9;color:#fff;font-size:.92rem;font-weight:600;text-decoration:none;transition:background .2s ease}
.kp-detail:hover{background:#7d848d;color:#fff}
.kp-stage{position:relative;background:#fff;border-radius:22px;box-shadow:0 30px 60px rgba(60,80,100,.16);min-height:480px}
.kp-stage::before{content:"";position:absolute;left:-34px;top:8%;width:70%;height:84%;background:rgba(255,255,255,.66);border-radius:22px;box-shadow:0 18px 40px rgba(60,80,100,.1);z-index:0}
.kp-watermark{position:absolute;top:3%;left:0;right:0;text-align:center;font-size:clamp(3.6rem,7vw,6.4rem);font-weight:900;letter-spacing:.05em;color:#edf1f6;z-index:1;user-select:none;pointer-events:none;line-height:1;overflow:hidden;white-space:nowrap}
.kp-photo{position:absolute;z-index:2;left:14%;right:14%;top:27%;bottom:11%;display:flex;align-items:center;justify-content:center}
.kp-photo img{max-width:100%;max-height:100%;object-fit:contain;display:block;border-radius:10px;box-shadow:0 8px 22px rgba(60,80,100,.13);transition:opacity .35s ease}
.kp-side{position:absolute;z-index:3;left:20px;top:50%;transform:translateY(-50%);writing-mode:vertical-rl;font-size:.74rem;font-weight:600;letter-spacing:.2em;color:#5c6672;text-transform:uppercase;user-select:none}
.kp-brand{position:absolute;z-index:3;right:26px;bottom:16px;font-weight:700;color:#2f3540;font-size:1.15rem;letter-spacing:.03em}
.kp-arrow-next{position:absolute;right:-13px;top:50%;transform:translateY(-50%);z-index:6}
.kp-thumbs{display:grid;grid-template-columns:repeat(8,1fr);gap:1.1rem;margin-top:2.6rem}
.kp-thumb{background:#fff;border:2px solid transparent;border-radius:10px;padding:.9rem .6rem .7rem;text-align:center;cursor:pointer;text-decoration:none;color:inherit;display:block;transition:all .2s ease;box-shadow:0 4px 14px rgba(60,80,100,.06)}
.kp-thumb img{width:100%;aspect-ratio:1.3;object-fit:cover;display:block;margin-bottom:.6rem;border-radius:6px}
.kp-thumb span{font-size:.82rem;color:#333;display:block;line-height:1.35}
.kp-thumb:hover{transform:translateY(-3px);box-shadow:0 10px 22px rgba(60,80,100,.12)}
.kp-thumb.on{border-color:#c6d4e2;box-shadow:0 10px 22px rgba(60,80,100,.12)}
@media (max-width:980px){.kp-thumbs{grid-template-columns:repeat(4,1fr)}.kp-top{flex-direction:column}.kp-head{align-items:flex-start;text-align:left}}
@media (max-width:920px){.kp-main{grid-template-columns:1fr;gap:2rem}.kp-arrow-next{display:none}.kp-prevrow{position:static;transform:none;margin:0 0 1.8rem}.kp-detail{margin-top:0}.kp-stage{min-height:360px}.kp-photo{left:12%;right:12%}}
@media (max-width:560px){.kp-thumbs{grid-template-columns:repeat(2,1fr)}.kp-copy p{min-height:0}}

/* === Site-wide harmony overrides (title/eyebrow/btn unified to Hongbo green) === */
.ky-sub{color:var(--color-primary)}
.ky-btn{background:var(--color-primary)}
.ky-btn:hover{background:var(--color-primary-dark)}
.kp-head h2{color:var(--color-primary-ink);font-weight:800}
.kp-cap{color:var(--color-primary);text-transform:uppercase;font-size:.92rem;letter-spacing:.24em;font-weight:700}
.kp-tab.on{background:#e2f1ea;color:var(--color-primary-dark)}
.kp-thumb.on{border-color:#b9ddcd}
.kp-detail{background:var(--color-primary)}
.kp-detail:hover{background:var(--color-primary-dark)}
.kp-arrow{background:rgba(7,59,40,.5)}
.kp-arrow:hover{background:rgba(7,59,40,.75)}
.kp-watermark{color:#ecf3ee}
.kp-stage{box-shadow:0 30px 60px rgba(20,60,44,.16)}
.kp-stage::before{box-shadow:0 18px 40px rgba(20,60,44,.1)}
.kp-photo img{box-shadow:0 8px 22px rgba(20,60,44,.13)}
#products::before{background:linear-gradient(180deg,rgba(231,240,235,.5),rgba(237,243,239,.72) 55%,rgba(241,246,243,.82))}
.fa2-apps-head h2{color:var(--f2-ink)}
.fa2-h1line b{color:var(--color-accent)}
.fa2-bstats .n .sfx{color:var(--color-accent)}
.fa2-stat .n .sfx{color:var(--color-accent)}

/* === Hero tidy-up (calmer banner, same photo) === */
.fa2-banner .shade{background:linear-gradient(180deg,rgba(6,32,22,.6) 0%,rgba(6,32,22,.44) 45%,rgba(4,22,15,.74) 100%)}
.fa2-banner .bg img{filter:saturate(.8) brightness(.93)}
.fa2-eyebrow{margin:0 0 1rem;font-size:.82rem;letter-spacing:.34em;color:rgba(255,255,255,.6)}
.fa2-h1line{font-size:clamp(2.2rem,4.6vw,4.1rem);line-height:1.18;text-shadow:0 2px 16px rgba(0,0,0,.35)}
.fa2-sub{margin:.9rem auto 0;max-width:700px;color:rgba(255,255,255,.74);font-size:clamp(.95rem,1.4vw,1.12rem);line-height:1.65}
.fa2-bstats{margin-top:1.7rem;width:min(720px,94%)}
.fa2-bstats li{padding:.1rem .9rem}
.fa2-bstats li+li{border-left-color:rgba(255,255,255,.2)}
.fa2-bstats .n{font-size:clamp(1.8rem,3vw,2.5rem)}
.fa2-bstats .n i{color:var(--color-accent)}
.fa2-bstats .cap{margin-top:.3rem;font-size:.8rem;color:rgba(255,255,255,.6)}
.fa2-cta{margin-top:1.9rem}
.fa2-btn{font-size:1.02rem;padding:.85em 1.9em}
.fa2-scroll{color:rgba(255,255,255,.6)}

/* why cards: real photos, full-width banner on card top */
#strengths .card { overflow: hidden; }
#strengths .card .ico { width: calc(100% + 3.2rem); height: 8.5rem; margin: -1.6rem 0 0 -1.6rem; border-radius: 0; background: transparent; }
#strengths .card .ico img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; display: block; }
/* === Banner v2: lift copy, remove duplicated stats, cleaner shade === */
.fa2-banner-info{justify-content:flex-start;padding-top:clamp(6.5rem,15vh,10.5rem);transform:none;}
.fa2-bstats{display:none;}
.fa2-sub{margin-top:1.05rem;max-width:640px;}
.fa2-cta{margin-top:2.2rem;}
.fa2-banner .shade{background:linear-gradient(180deg,rgba(4,21,13,.68) 0%,rgba(4,21,13,.4) 38%,rgba(4,21,13,.34) 70%,rgba(4,21,13,.52) 100%);}
.fa2-banner .bg img{filter:saturate(.92) brightness(.98);}
@media (max-width:980px){.fa2-banner-info{padding-top:clamp(4.5rem,12vh,6.5rem);}}