/* Homepage partner section only. All tokens and selectors are locally scoped. */
.cp-partner {

    position:relative; isolation:isolate; overflow:hidden; padding-bottom:52px;
    color:var(--cp-ink); background:var(--cp-paper);
}
.cp-partner .cp-inner { width:90%; max-width:1600px; margin-inline:auto; }
.cp-partner::after { content:""; position:absolute; z-index:-1; right:-12%; bottom:-8%; width:112%; height:40%; border:1px solid color-mix(in srgb,var(--brand-gold) 30%,transparent); border-radius:50%; background:linear-gradient(165deg,color-mix(in srgb,var(--brand-gold-light) 16%,transparent),transparent 65%); transform:rotate(-12deg); pointer-events:none; }
.cp-partner .cp-stage { position:relative; min-height:clamp(620px,43vw,720px); background:var(--cp-navy); }
.cp-partner .cp-media { position:absolute; inset:0 0 0 36%; }
.cp-partner .cp-media img { position:absolute; right:0; bottom:0; display:block; width:min(100%,calc(clamp(620px,43vw,720px) * 1.451613)); max-width:100%; height:auto; object-fit:contain; object-position:right bottom; mask-image:linear-gradient(90deg,transparent,var(--mask-ink) 25%),linear-gradient(180deg,transparent,var(--mask-ink) 12%); mask-composite:intersect; }
.cp-partner .cp-stage::before {
    content:""; position:absolute; z-index:1; inset:0; pointer-events:none;
    background:linear-gradient(90deg,var(--brand-navy) 0%,color-mix(in srgb,var(--brand-navy) 99%,transparent) 25%,color-mix(in srgb,var(--brand-navy) 93%,transparent) 36%,color-mix(in srgb,var(--brand-navy) 65%,transparent) 45%,color-mix(in srgb,var(--brand-navy) 12%,transparent) 60%,transparent 72%);
}
.cp-partner .cp-stage::after { content:""; position:absolute; z-index:2; top:0; bottom:16%; left:0; width:12%; opacity:.23; background-image:radial-gradient(var(--border-strong) .8px,transparent .8px); background-size:20px 20px; mask-image:linear-gradient(90deg,var(--mask-ink),transparent); pointer-events:none; }
.cp-partner .cp-stage-inner { position:relative; z-index:3; display:flex; align-items:center; min-height:inherit; padding:64px 0 112px; }
.cp-partner .cp-copy { width:52%; max-width:720px; }
.cp-partner .cp-eyebrow { display:flex; align-items:center; gap:18px; margin:0 0 24px; color:var(--bg-primary); font-size:var(--type-eyebrow); line-height:1.6; letter-spacing:.2em; }
.cp-partner .cp-eyebrow::before { content:""; flex:none; width:32px; height:2px; background:var(--cp-gold); }
.cp-partner .cp-title { margin:0 0 26px; color:var(--bg-primary); font-family:var(--font-heading); font-size:var(--type-brand); font-weight:400; line-height:1.18; letter-spacing:0; }
.cp-partner .cp-title > span { display:block; white-space:nowrap; }
.cp-partner .cp-title em { color:var(--brand-gold-light); font-style:normal; }
.cp-partner .cp-description { max-width:535px; margin:0 0 26px; color:var(--text-on-dark-soft); font-size:var(--type-body-large); line-height:1.8; letter-spacing:.035em; }
.cp-partner .cp-proof { margin:0 0 28px; color:var(--text-on-dark-soft); font-size:var(--type-body); line-height:1.7; letter-spacing:.13em; }
.cp-partner .cp-actions { display:flex; flex-wrap:wrap; gap:16px; }
.cp-partner .cp-button { display:inline-flex; justify-content:center; align-items:center; gap:12px; min-height:56px; min-width:208px; padding:14px 26px; border:1px solid var(--cp-gold); border-radius:999px; color:var(--bg-primary); font-size:var(--type-button); font-weight:700; line-height:1.3; text-decoration:none; transition:transform .25s ease,box-shadow .25s ease,background-color .25s ease,filter .25s ease; }
.cp-partner .cp-button-primary { color:var(--brand-navy); background:linear-gradient(115deg,var(--brand-gold-light),var(--brand-gold)); box-shadow:0 8px 24px color-mix(in srgb,var(--mask-ink) 12%,transparent); }
.cp-partner .cp-button-secondary { background:color-mix(in srgb,var(--brand-navy) 28%,transparent); }
.cp-partner .cp-button svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; transition:transform .25s ease; }
.cp-partner .cp-button:focus-visible { outline:3px solid var(--brand-gold-light); outline-offset:5px; }
.cp-partner .cp-button:active { transform:translateY(1px); }
.cp-partner .cp-brand-note { position:absolute; top:65px; right:0; display:grid; gap:6px; margin:0; padding:0 0 0 18px; border-left:1px solid var(--brand-gold-light); color:var(--bg-primary); font-size:var(--type-body); line-height:1.4; text-shadow:0 2px 6px color-mix(in srgb,var(--mask-ink) 60%,transparent); }
.cp-partner .cp-arcs { position:absolute; z-index:2; inset:0; overflow:hidden; pointer-events:none; }
.cp-partner .cp-arcs i { position:absolute; top:-42%; right:-9%; width:70%; aspect-ratio:1; border:1px solid color-mix(in srgb,var(--brand-gold-light) 32%,transparent); border-radius:50%; }
.cp-partner .cp-arcs i:nth-child(2) { top:-57%; right:-17%; width:86%; border-color:color-mix(in srgb,var(--bg-soft) 24%,transparent); }
.cp-partner .cp-arcs i:nth-child(3) { top:83%; left:-28%; width:86%; border-color:color-mix(in srgb,var(--brand-gold-light) 50%,transparent); background:linear-gradient(140deg,color-mix(in srgb,var(--brand-gold-light) 15%,transparent),transparent 60%); }
.cp-partner .cp-cards { position:relative; z-index:4; display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); grid-auto-rows:1fr; align-items:stretch; gap:10px; margin-top:-64px; }
.cp-partner .cp-card-reveal { min-width:0; }
.cp-partner .cp-card { position:relative; display:flex; flex-direction:column; height:100%; min-height:246px; padding:24px 20px 32px; border:1px solid color-mix(in srgb,var(--bg-primary) 95%,transparent); border-radius:18px; background:linear-gradient(140deg,var(--bg-gold),var(--cp-paper)); box-shadow:0 10px 28px color-mix(in srgb,var(--brand-navy) 7%,transparent); transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease; }
.cp-partner .cp-card::after { content:""; display:block; width:32px; height:2px; flex:none; margin-top:auto; background:var(--brand-gold); transition:width .28s ease; }
.cp-partner .cp-icon { display:grid; place-items:center; flex:none; width:64px; height:64px; margin-bottom:16px; border-radius:50%; color:var(--cp-ink); background:var(--bg-gold); }
.cp-partner .cp-icon svg { width:38px; height:38px; fill:none; stroke:currentColor; stroke-width:1.65; stroke-linecap:round; stroke-linejoin:round; }
.cp-partner .cp-card h3 { min-height:2.6em; margin:0 0 10px; color:var(--cp-ink); font-size:var(--type-card); font-weight:700; line-height:1.3; text-wrap:balance; }
.cp-partner .cp-card p { margin:0 0 22px; color:var(--text-body); font-size:var(--type-body); line-height:1.65; overflow-wrap:break-word; }
html[lang="cn"] .cp-partner .cp-card h3 { min-height:1.3em; }
html[lang="en"] .cp-partner .cp-title { font-family:var(--font-heading); font-size:var(--type-brand); letter-spacing:-.035em; }
html[lang="en"] .cp-partner .cp-description { font-size:var(--type-body); line-height:1.7; }
html[lang="en"] .cp-partner .cp-proof { font-size:var(--type-eyebrow); letter-spacing:.045em; }
html[lang="en"] .cp-partner .cp-card h3 { font-size:var(--type-card); }
/* Entrance wrapper keeps the card's hover transform independent of its reveal. */
.cp-partner .cp-reveal-pending { opacity:0; transform:translateY(18px); }
.cp-partner .cp-reveal-pending.cp-visible { opacity:1; transform:none; transition:opacity .6s ease var(--cp-delay,0ms),transform .6s cubic-bezier(.22,1,.36,1) var(--cp-delay,0ms); }
@media (hover:hover) and (pointer:fine) {
    .cp-partner .cp-button:hover { transform:translateY(-2px); box-shadow:0 12px 28px color-mix(in srgb,var(--mask-ink) 23%,transparent); }
    .cp-partner .cp-button-primary:hover { filter:brightness(1.06); }
    .cp-partner .cp-button-secondary:hover { color:var(--bg-primary); background:color-mix(in srgb,var(--brand-gold) 12%,transparent); }
    .cp-partner .cp-button:hover svg { transform:translateX(4px); }
    .cp-partner .cp-button:active { transform:translateY(1px); }
    .cp-partner .cp-card:hover { transform:translateY(-6px); border-color:var(--brand-gold-light); box-shadow:0 18px 34px color-mix(in srgb,var(--brand-navy) 13%,transparent); }
    .cp-partner .cp-card:hover::after { width:48px; }
    .cp-partner .cp-card:hover .cp-icon-globe svg { animation:cp-globe .65s ease 1; }
    .cp-partner .cp-card:hover .cp-icon-settings svg { animation:cp-settings .65s ease 1; }
    .cp-partner .cp-card:hover .cp-icon-chart path { stroke-dasharray:1; animation:cp-chart .65s ease 1; }
    .cp-partner .cp-card:hover .cp-icon-chart path:nth-child(2) { animation-delay:.08s; }
    .cp-partner .cp-card:hover .cp-icon-chart path:nth-child(3) { animation-delay:.16s; }
    .cp-partner .cp-card:hover .cp-icon-lightbulb svg { animation:cp-lightbulb .7s ease 1; }
    .cp-partner .cp-card:hover .cp-icon-gem svg { animation:cp-gem .65s ease 1; }
    .cp-partner .cp-card:hover .cp-icon-users svg path:last-child { animation:cp-users .65s ease 1; }
}
@keyframes cp-globe { 45%{transform:rotate(-12deg)} }
@keyframes cp-settings { to{transform:rotate(180deg)} }
@keyframes cp-chart { 0%{stroke-dashoffset:1;opacity:.3} 100%{stroke-dashoffset:0;opacity:1} }
@keyframes cp-lightbulb { 45%{transform:translateY(-3px);stroke:var(--brand-gold-ink)} }
@keyframes cp-gem { 45%{transform:translateY(-3px);stroke:var(--brand-gold-ink)} }
@keyframes cp-users { 0%{transform:translateX(-3px);opacity:.3} 100%{transform:none;opacity:1} }
@media (min-width:1600px) { .cp-partner .cp-card { min-height:250px; padding:24px 28px 30px; } .cp-partner .cp-card h3 { font-size:var(--type-card); } .cp-partner .cp-card p { font-size:var(--type-body); } }
@media (max-width:1439px) { .cp-partner .cp-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px} .cp-partner .cp-card{min-height:226px} .cp-partner .cp-title{font-size:var(--type-brand)} .cp-partner .cp-brand-note{font-size:var(--type-description)} }
@media (max-width:1023px) { .cp-partner .cp-copy{width:62%} .cp-partner .cp-title{font-size:var(--type-brand)} .cp-partner .cp-stage-inner{padding-top:58px} .cp-partner .cp-description{max-width:430px;font-size:var(--type-body)} .cp-partner .cp-eyebrow{font-size:var(--type-eyebrow);letter-spacing:.13em} .cp-partner .cp-proof{font-size:var(--type-description)} .cp-partner .cp-button{min-width:174px;font-size:var(--type-button);padding-inline:20px} .cp-partner .cp-media{left:32%} .cp-partner .cp-cards{grid-template-columns:repeat(2,minmax(0,1fr))} html[lang="en"] .cp-partner .cp-title{font-size:var(--type-brand)} }
@media (max-width:767px) {
    .cp-partner{padding-bottom:32px} .cp-partner .cp-inner{width:calc(100% - 36px)}
    .cp-partner .cp-stage{display:flex;flex-direction:column;min-height:0}
    .cp-partner .cp-stage-inner{order:0;display:block;min-height:0;padding:44px 0 24px}
    .cp-partner .cp-copy{width:100%;max-width:none}
    .cp-partner .cp-copy-break{display:none}
    .cp-partner .cp-title{font-size:var(--type-brand);line-height:1.25;margin-bottom:22px}
    .cp-partner .cp-eyebrow{font-size:var(--type-eyebrow);gap:12px;margin-bottom:20px;letter-spacing:.12em}
    .cp-partner .cp-eyebrow::before{width:24px}
    .cp-partner .cp-description{max-width:520px;margin-bottom:20px;font-size:var(--type-body);letter-spacing:0;line-height:1.8;text-wrap:balance}
    .cp-partner .cp-proof{margin-bottom:24px;font-size:var(--type-eyebrow);letter-spacing:.065em}
    .cp-partner .cp-actions{gap:10px} .cp-partner .cp-button{min-width:0;flex:1;min-height:50px;padding:12px 14px;font-size:var(--type-button);gap:8px}
    .cp-partner .cp-media{order:1;position:relative;inset:auto;width:100%;padding:0 0 28px;background:var(--brand-navy)}
    .cp-partner .cp-media img{position:relative;right:auto;bottom:auto;width:100%;height:auto;object-fit:contain;mask-image:none}
    .cp-partner .cp-media::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,var(--brand-navy),transparent 18%);pointer-events:none}
    .cp-partner .cp-stage::before{display:none} .cp-partner .cp-stage::after{bottom:auto;height:340px}
    .cp-partner .cp-brand-note{display:none}
    .cp-partner .cp-arcs i{top:5%;right:-80%;width:150%}
    .cp-partner .cp-arcs i:nth-child(2){top:-5%;right:-90%;width:180%}
    .cp-partner .cp-arcs i:nth-child(3){display:none}
    .cp-partner .cp-cards{margin-top:-28px;gap:10px}
    .cp-partner .cp-card{padding:20px 16px 24px;min-height:244px;border-radius:16px}
    .cp-partner .cp-icon{width:56px;height:56px;margin-bottom:14px} .cp-partner .cp-icon svg{width:32px;height:32px}
    .cp-partner .cp-card h3{font-size:var(--type-card);min-height:2.6em!important} .cp-partner .cp-card p{font-size:var(--type-description);margin-bottom:20px}
    html[lang="en"] .cp-partner .cp-title{font-size:var(--type-brand)} html[lang="en"] .cp-partner .cp-description{font-size:var(--type-body)}
    html[lang="en"] .cp-partner .cp-proof{font-size:var(--type-eyebrow);letter-spacing:0} html[lang="en"] .cp-partner .cp-card h3{font-size:var(--type-card);min-height:2.6em!important}
    html[lang="en"] .cp-partner .cp-actions{flex-direction:column} html[lang="en"] .cp-partner .cp-button{width:100%;flex:none}
}
@media (max-width:359px) { .cp-partner .cp-cards{grid-template-columns:1fr} .cp-partner .cp-card{min-height:210px} .cp-partner .cp-card h3{min-height:0!important} .cp-partner .cp-title{font-size:8vw} .cp-partner .cp-button{font-size:var(--type-button)} }
@media (prefers-reduced-motion:reduce) {
    .cp-partner *, .cp-partner *::before, .cp-partner *::after { animation:none!important; transition:none!important; }
    .cp-partner .cp-reveal-pending { opacity:1;transform:none; }
    .cp-partner .cp-card:hover, .cp-partner .cp-button:hover, .cp-partner .cp-button:hover svg { transform:none; }
}
