/* R5.1 narrow partnership polish within the approved FUBANG visual system. */
body.distributor-page { --partner-navy:#162d3b; --partner-light:#f2f5f5; }
.distributor-page main { overflow:clip; }
.partner-hero { background:#edf2f3; padding:22px 0 64px; }
.partner-hero .breadcrumbs { margin:0 0 32px; }
.partner-hero-layout { display:grid; grid-template-columns:1.04fr 1fr; align-items:center; gap:32px; }
.partner-hero h1 { max-width:none; font-size:clamp(2.5rem,3.55vw,3.2rem); line-height:1.07; letter-spacing:-.025em; text-wrap:balance; }
.partner-hero .intro { max-width:47ch; margin:22px 0 28px; font-size:1.12rem; line-height:1.6; color:#435965; }
.partner-hero .hero-actions { display:flex; gap:12px; flex-wrap:wrap; }
.partner-hero .button { min-height:48px; }
.partner-hero-equipment { margin:0; position:relative; }
.partner-hero-equipment::before { content:''; position:absolute; inset:auto 6% 5% 7%; height:4%; border-radius:50%; background:rgba(42,64,77,.10); filter:blur(14px); pointer-events:none; }
.partner-hero-equipment img { position:relative; width:100%; height:auto; object-fit:contain; }
.partner-hero-equipment picture { display:block; width:100%; }
.partner-section { padding:72px 0; scroll-margin-top:100px; }
.partner-section h2 { max-width:25ch; }
.partner-section .section-intro { max-width:68ch; color:var(--muted); margin:14px 0 32px; line-height:1.6; }
.partner-types { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px 56px; margin:32px 0 0; }
.partner-types article { border-top:1px solid var(--line); padding-top:22px; }
.partner-types h3 { margin-bottom:10px; }
.partner-types p { margin:0; max-width:50ch; color:var(--muted); line-height:1.6; }
.partner-families { background:var(--partner-light); }
.partner-family-grid { display:grid; grid-template-columns:repeat(8,minmax(0,1fr)); gap:20px; }
.partner-family-grid>.partner-family { grid-column:span 2; }
.partner-family-grid>.partner-family:where(:nth-child(5)) { grid-column:2 / span 2; }
.partner-family-grid>.partner-family:where(:nth-child(6)) { grid-column:4 / span 2; }
.partner-family-grid>.partner-family:where(:nth-child(7)) { grid-column:6 / span 2; }
.partner-family { display:flex; flex-direction:column; padding:20px; background:#fff; text-decoration:none; border:1px solid #dce3e5; min-width:0; }
.partner-family-image { margin-bottom:18px; height:170px; display:flex; align-items:flex-end; justify-content:center; }
.partner-family-image picture { display:flex; width:100%; height:100%; align-items:flex-end; justify-content:center; }
.partner-family-image img { object-fit:contain; max-height:100%; max-width:88%; width:auto; height:auto; }
.partner-family-image.wide img { max-width:100%; max-height:150px; }
.partner-family h3 { font-size:1.17rem; line-height:1.2; margin-bottom:10px; }
.partner-family p { color:var(--muted); font-size:.97rem; line-height:1.55; margin:0 0 20px; }
.partner-family .text-link { margin-top:auto; font-size:.94rem; color:var(--red); font-weight:700; }
.partner-cooperation { background:var(--partner-navy); color:#fff; }
.partner-cooperation .section-intro { color:#c3d0d6; }
.partner-process { position:relative; margin-top:36px; }
.partner-process-line { position:absolute; left:0; right:0; top:0; height:1px; background:#91a8b3; pointer-events:none; }
.partner-steps { list-style:none; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin:0; padding:0; gap:30px; }
.partner-steps li { position:relative; padding-top:25px; }
.partner-step-number { display:block; font-size:1.1rem; font-weight:700; color:#d2dde3; margin-bottom:17px; font-variant-numeric:tabular-nums; }
.partner-steps h3 { max-width:20ch; margin-bottom:14px; }
.partner-steps p { color:#c3d0d6; font-size:1rem; line-height:1.6; margin:0; }
.partner-support-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px 40px; margin-top:34px; }
.partner-support-grid article { padding-top:18px; border-top:1px solid var(--line); }
.partner-support-number { display:block; margin-bottom:12px; color:var(--red); font-size:.92rem; font-weight:700; font-variant-numeric:tabular-nums; }
.partner-support-grid h3 { font-size:1.2rem; }
.partner-support-grid p { color:var(--muted); margin:0; line-height:1.6; }
.partner-criteria { background:var(--partner-light); }
.partner-criteria-layout { display:grid; grid-template-columns:1fr 1.15fr; gap:64px; }
.partner-criteria .section-intro { margin-bottom:0; }
.partner-criteria-list { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 28px; }
.partner-criteria-list li { padding-top:16px; border-top:1px solid #ccd7dc; line-height:1.5; font-weight:700; }
.partner-scope .scope-layout { display:grid; grid-template-columns:1.05fr 1fr; gap:64px; align-items:start; background:var(--partner-navy); color:#fff; padding:42px; }
.partner-scope .scope-layout h2 { margin:0; }
.partner-scope p { color:#d2dde3; line-height:1.65; margin:18px 0 0; max-width:47ch; }
.partner-scope ul { list-style:none; padding:0; margin:3px 0 0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 28px; }
.partner-scope li { border-top:1px solid #537080; padding-top:15px; font-size:1.08rem; font-weight:700; color:#fff; line-height:1.45; }
.partner-evidence { padding-top:0; }
.partner-evidence-layout { display:block; }
.partner-evidence .section-intro { margin-bottom:0; }
.partner-evidence-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 48px; margin-top:32px; }
.partner-evidence-links a { display:block; padding:22px 0; border-top:1px solid var(--line); text-decoration:none; }
.partner-evidence-links a:hover strong,.partner-evidence-links a:focus-visible strong { color:var(--red); }
.partner-evidence-links strong { display:block; margin-bottom:10px; font-size:1.2rem; line-height:1.3; }
.partner-evidence-links span { color:var(--muted); font-size:.97rem; }
.partner-application { background:var(--partner-light); }
.partner-application-layout { display:grid; grid-template-columns:minmax(0,1.75fr) minmax(240px,.8fr); gap:48px; align-items:start; }
.partner-form-panel { background:#fff; padding:36px; border:1px solid #d7e0e4; min-width:0; }
.partner-form-panel>p { color:var(--muted); max-width:58ch; }
.partner-form .form-grid { gap:18px 22px; }
.partner-form .field { min-width:0; }
.partner-form label,.partner-form legend { font-weight:700; font-size:.98rem; }
.partner-form .field input,.partner-form .field select,.partner-form .field textarea { width:100%; border:1px solid #8496a0; padding:11px 12px; border-radius:0; background:#fff; color:var(--ink); min-height:48px; line-height:1.4; }
.partner-form textarea { min-height:126px; resize:vertical; }
.partner-form .field-error { min-height:0; margin:6px 0 0; font-size:.88rem; line-height:1.45; color:#98212a; }
.partner-form .field-error:empty { display:none; }
.partner-form [aria-invalid=true] { border-color:#98212a!important; }
.partner-form input:focus-visible,.partner-form select:focus-visible,.partner-form textarea:focus-visible { outline:3px solid #a9232c; outline-offset:2px; border-color:#a9232c; }
.partner-form .field-help { font-size:.89rem; line-height:1.5; color:var(--muted); margin:7px 0 0; }
.partner-form .field input::placeholder,.partner-form .field textarea::placeholder { color:#667882; opacity:1; }
.partner-interest { padding:0; margin:4px 0 22px; border:0; min-width:0; }
.partner-interest legend { margin-bottom:8px; padding:0; }
.partner-interest .field-help { margin-bottom:12px; }
.partner-interest-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px 18px; }
.partner-interest-options label { display:flex; align-items:flex-start; gap:10px; min-height:44px; font-size:.92rem; font-weight:400; line-height:1.45; padding:7px 0; cursor:pointer; }
.partner-interest-options input { width:19px; height:19px; margin:1px 0 0; flex:0 0 auto; accent-color:var(--red); }
.partner-interest[aria-invalid=true] { padding:10px; margin-inline:-10px; outline:1px solid #98212a; }
.partner-optional { margin:24px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:16px 0; }
.partner-optional summary { cursor:pointer; font-weight:700; min-height:28px; }
.partner-optional[open] summary { margin-bottom:20px; }
.partner-form input[type=file] { padding:10px; font-size:.93rem; }
.partner-form input[type=file]::file-selector-button { font:inherit; padding:7px 10px; margin-right:10px; border:1px solid #8094a0; background:#edf2f4; color:var(--ink); cursor:pointer; }
@media(max-width:480px) { .partner-form input[type=file] { font-size:16px; } }
.partner-form .form-note { font-size:.91rem; line-height:1.55; color:#52616a; }
.partner-form .form-note a { text-underline-offset:3px; }
.partner-form .form-actions { align-items:flex-start; flex-wrap:wrap; }
.partner-form .form-status { flex:1 1 100%; padding-top:4px; line-height:1.5; }
.partner-form .button[disabled] { opacity:.68; cursor:wait; }
.partner-next { padding-top:6px; }
.partner-next h3 { font-size:1.45rem; margin-bottom:22px; }
.partner-next ol { list-style:none; padding:0; margin:0; }
.partner-next li { margin:0 0 24px; padding-top:18px; border-top:1px solid #b9c9d1; }
.partner-next .partner-step-number { font-size:.91rem; color:#536d7b; margin-bottom:8px; }
.partner-next strong { display:block; margin-bottom:8px; font-size:1.04rem; }
.partner-next p { color:var(--muted); line-height:1.6; font-size:.97rem; }
.partner-next .partner-rfq-link { padding-top:20px; border-top:1px solid #b9c9d1; }
.partner-next a { color:var(--red); text-underline-offset:3px; }
.partner-confirmation { border:1px solid #738e9d; padding:24px; background:#f2f7f9; margin-bottom:24px; scroll-margin-top:110px; }
.partner-confirmation[hidden] { display:none; }
.partner-confirmation h3 { font-size:1.3rem; }
.partner-confirmation p { line-height:1.6; }
.partner-confirmation .partner-reference { font-weight:700; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.partner-confirmation-actions { display:flex; flex-wrap:wrap; gap:20px; }
.partner-confirmation-actions a { color:var(--red); }

@media(max-width:1100px) { .partner-family-grid { grid-template-columns:repeat(6,minmax(0,1fr)); } .partner-family-grid>.partner-family { grid-column:span 2; } .partner-family-grid>.partner-family:where(:nth-child(7)) { grid-column:3 / span 2; } .partner-steps { gap:22px; } .partner-application-layout { gap:30px; grid-template-columns:minmax(0,1.6fr) minmax(220px,.8fr); } .partner-form-panel { padding:28px; } }
@media(max-width:900px) { .partner-hero-layout { grid-template-columns:1fr 1fr; gap:24px; } .partner-hero h1 { font-size:2.8rem; } .partner-hero .hero-actions { flex-direction:column; align-items:flex-start; } .partner-steps { grid-template-columns:1fr; gap:28px; } .partner-process-line { left:14px; right:auto; top:12px; bottom:12px; width:1px; height:auto; } .partner-steps li { display:grid; grid-template-columns:28px minmax(0,1fr); column-gap:18px; padding-top:0; } .partner-steps .partner-step-number { grid-column:1; grid-row:1 / 3; margin:0; padding:4px 0; position:relative; z-index:1; background:var(--partner-navy); align-self:start; font-size:1rem; } .partner-steps h3,.partner-steps p { grid-column:2; max-width:64ch; } .partner-steps h3 { margin-bottom:10px; } .partner-support-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .partner-criteria-layout,.partner-scope .scope-layout,.partner-evidence-layout { gap:36px; } .partner-application-layout { grid-template-columns:1fr; gap:36px; } .partner-next ol { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; } }
@media(max-width:700px) { .partner-hero { padding:18px 0 42px; } .partner-hero .breadcrumbs { margin-bottom:26px; } .partner-hero-layout { grid-template-columns:1fr; gap:30px; } .partner-hero h1 { max-width:17ch; font-size:2.5rem; } .partner-hero .intro { font-size:1.04rem; margin:20px 0 24px; } .partner-hero .hero-actions { flex-direction:row; } .partner-hero-equipment { width:min(100%,520px); margin-inline:auto; } .partner-section { padding:48px 0; } .partner-section h2 { font-size:1.9rem; } .partner-family-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; } .partner-family-grid>.partner-family { grid-column:span 2; } .partner-family-grid>.partner-family:where(:nth-child(7)) { grid-column:2 / span 2; } .partner-family { padding:17px; } .partner-family-image { height:155px; } .partner-family h3 { font-size:1.12rem; } .partner-family p { font-size:.94rem; } .partner-types { gap:24px; } .partner-criteria-layout,.partner-scope .scope-layout,.partner-evidence-layout { grid-template-columns:1fr; gap:28px; } .partner-scope .scope-layout { padding:28px; } .partner-evidence { padding-top:0; } .partner-form-panel { padding:26px; } .partner-form .form-grid { grid-template-columns:1fr; } .partner-form .field.full { grid-column:auto; } .partner-next ol { gap:18px; } }
@media(max-width:480px) { .partner-hero h1 { font-size:2.35rem; max-width:16ch; } .partner-hero .hero-actions { flex-direction:column; align-items:stretch; } .partner-hero .button { justify-content:center; width:100%; } .partner-types,.partner-family-grid,.partner-support-grid,.partner-steps,.partner-criteria-list,.partner-interest-options { grid-template-columns:1fr; } .partner-family { display:grid; grid-template-columns:102px minmax(0,1fr); gap:0 18px; align-items:start; padding:20px; } .partner-family-image { grid-row:1 / 4; height:170px; margin:0; align-self:center; } .partner-family-image.wide { height:115px; } .partner-family-image.wide img { max-height:115px; } .partner-family p { margin-bottom:14px; } .partner-family h3 { margin:0 0 10px; } .partner-family .text-link { margin-top:0; } .partner-scope .scope-layout { padding:24px; } .partner-scope ul,.partner-evidence-links { grid-template-columns:1fr; } .partner-family-grid>.partner-family { grid-column:auto; } .partner-form-panel { padding:24px 20px; } .partner-next ol { display:block; } .partner-interest-options { gap:0; } .partner-interest-options label { padding:10px 0; } .partner-form .form-actions .button { width:100%; justify-content:center; } }
@media(prefers-reduced-motion:reduce) { .partner-family,.partner-family img,.partner-form input,.partner-form textarea { transition:none!important; animation:none!important; } }
