:root{--ink:#12283f;--muted:#58739e;--paper:#f5f9ff;--line:#d5e3f5;--navy:#123c73;--navy-2:#1a4d8f;--orange:#0048a8;--orange-2:#003c8c;--white:#fff;--shadow:0 24px 70px rgba(14,29,47,.16);--sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.55}body[data-theme="dark"]{--ink:#eef4fa;--muted:#b7c9dd;--paper:#101d2f;--line:#2c4767;--white:#14273d;--orange:#7db4ff;--orange-2:#a9ccff}button,input,select,textarea{font:inherit}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}.announcement{height:36px;background:var(--navy);color:#dbe7f0;display:flex;align-items:center;justify-content:center;gap:24px;font-size:12px;letter-spacing:.02em;padding:0 20px}.text-button{border:0;background:transparent;color:#fff;font-weight:700}.site-header{height:85px;background:color-mix(in srgb,var(--paper) 94%,transparent);border-bottom:1px solid var(--line);padding:0 max(30px,calc((100vw - 1220px)/2));display:flex;align-items:center;justify-content:space-between;gap:24px;position:sticky;top:0;z-index:20;backdrop-filter:blur(14px)}.brand{display:flex;align-items:center;gap:10px;letter-spacing:.05em;flex:none}.brand-mark{width:37px;height:37px;display:grid;place-items:center;background:var(--orange);color:#fff;font-size:22px;font-weight:900;clip-path:polygon(0 0,82% 0,100% 18%,100% 100%,18% 100%,0 82%)}.brand strong{display:block;font-size:17px;letter-spacing:.12em;line-height:1}.brand small{display:block;color:var(--orange);font-size:8px;letter-spacing:.31em;line-height:1.4;margin-top:4px}.desktop-nav{display:flex;align-items:center;gap:30px;margin-left:auto;margin-right:12px}.desktop-nav a{font-size:13px;font-weight:650;color:var(--muted);transition:.2s}.desktop-nav a:hover{color:var(--orange)}.header-actions{display:flex;align-items:center;gap:8px}.icon-button,.menu-button,.cart-button{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--ink);display:grid;place-items:center;font-size:17px}.cart-button{position:relative;font-weight:800;font-size:21px}.cart-button span{background:var(--orange);color:#fff;border-radius:20px;font-size:9px;line-height:16px;min-width:16px;height:16px;position:absolute;right:-3px;top:-4px}.account-button{border:0;background:transparent;color:var(--ink);font-size:13px;font-weight:700;display:flex;gap:6px;align-items:center;padding:8px}.user-icon{font-size:18px}.menu-button{display:none}.mobile-nav{display:none}.section-shell{max-width:1220px;margin:auto;padding-left:30px;padding-right:30px}.hero{min-height:636px;display:grid;grid-template-columns:1.02fr .98fr;align-items:center;gap:58px;padding-top:72px;padding-bottom:74px}.eyebrow{color:var(--orange);font-size:11px;font-weight:800;letter-spacing:.16em;margin:0 0 15px}.hero h1,.section-heading h2,.split-heading h2,.about h2,.quality-grid h2,.cta-inner h2{font-size:clamp(40px,5.3vw,72px);line-height:1.02;letter-spacing:-.055em;margin:0;font-weight:800}.hero h1 em{font-style:normal;color:var(--orange)}.hero-text{color:var(--muted);font-size:17px;max-width:540px;margin:25px 0 30px}.hero-actions{display:flex;gap:14px;align-items:center}.primary-button,.orange-button,.white-button{border:0;background:#0048a8;color:#fff;padding:14px 19px;min-height:48px;font-size:13px;font-weight:750;border-radius:2px;transition:transform .2s,background .2s}.primary-button:hover,.orange-button:hover{background:#003c8c;transform:translateY(-2px)}.primary-button span,.orange-button span,.white-button span{font-size:20px;vertical-align:-2px;margin-left:8px}.secondary-button{border:1px solid var(--line);padding:13px 18px;min-height:48px;font-size:13px;font-weight:700;border-radius:2px;background:transparent;color:var(--ink)}.proof-row{display:flex;gap:0;margin-top:45px}.proof-row span{display:flex;flex-direction:column;border-right:1px solid var(--line);padding:0 26px}.proof-row span:first-child{padding-left:0}.proof-row span:last-child{border:0}.proof-row b{font-size:20px;letter-spacing:-.04em}.proof-row small{font-size:10px;color:var(--muted);margin-top:2px}.hero-visual{height:480px;position:relative;overflow:hidden;background:linear-gradient(135deg,#112b48,#071524 80%);border-radius:2px;box-shadow:var(--shadow)}.grid-plane{position:absolute;inset:0;background-image:linear-gradient(rgba(154,188,213,.13) 1px,transparent 1px),linear-gradient(90deg,rgba(154,188,213,.13) 1px,transparent 1px);background-size:32px 32px;transform:perspective(500px) rotateX(58deg) scale(1.5) translateY(112px);transform-origin:bottom}.component{position:absolute;box-shadow:inset 0 0 0 1px rgba(255,255,255,.25),14px 20px 28px rgba(0,0,0,.35)}.component-a{width:250px;height:250px;left:153px;top:113px;background:linear-gradient(130deg,#bccbd6,#526b80 57%,#d9e0e4);transform:rotate(30deg) skew(-8deg);clip-path:polygon(23% 0,100% 14%,86% 100%,0 82%)}.component-a:after{content:"";position:absolute;inset:53px;background:#132b43;clip-path:polygon(23% 0,100% 14%,86% 100%,0 82%);box-shadow:inset 0 0 0 13px #a7b8c3}.component-b{width:150px;height:65px;left:145px;top:210px;background:linear-gradient(#e7ecee,#718595);border-radius:48px;transform:rotate(30deg)}.component-c{width:63px;height:63px;left:326px;top:168px;border-radius:50%;background:radial-gradient(circle,#111f30 0 22%,#b5c6d0 24% 48%,#486175 50%)}.measurement{position:absolute;color:#d9e9f4;font-size:9px;letter-spacing:.13em}.measurement:before,.measurement:after{content:"";position:absolute;background:var(--orange)}.line-1{width:220px;border-top:1px solid rgba(232,244,250,.75);top:96px;left:134px}.line-1:before,.line-1:after{height:13px;width:1px;top:-7px}.line-1:after{right:0}.line-1 span{position:absolute;right:77px;top:-24px}.line-2{height:213px;border-left:1px solid rgba(232,244,250,.75);top:136px;left:438px}.line-2:before,.line-2:after{height:1px;width:13px;left:-7px}.line-2:after{bottom:0}.line-2 span{position:absolute;left:12px;bottom:7px;white-space:nowrap}.visual-label{position:absolute;display:flex;gap:7px;align-items:center;color:#cfdae2;font-size:9px;letter-spacing:.11em}.visual-label i{width:7px;height:7px;background:var(--orange);display:block}.visual-label.top{top:28px;left:28px}.visual-label.lower{bottom:29px;right:30px}.capabilities{padding-top:120px;padding-bottom:118px}.section-heading{max-width:720px}.section-heading h2,.split-heading h2,.about h2{font-size:clamp(34px,4vw,53px)}.section-heading>p:last-child{font-size:16px;color:var(--muted);max-width:650px;margin:19px 0 0}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:47px}.stat-grid article{background:var(--white);border:1px solid var(--line);padding:26px 24px;min-height:194px}.line-icon{color:var(--orange);font-size:27px;display:block;height:41px}.stat-grid b{font-size:25px;letter-spacing:-.04em}.stat-grid p{font-size:13px;color:var(--muted);margin:8px 0 0}.product-section{background:color-mix(in srgb,var(--navy) 97%,#000);color:#fff;padding:100px 0}.split-heading{display:flex;justify-content:space-between;align-items:end;gap:20px}.split-heading h2{color:#fff}.text-link,.mini-link{background:none;border:0;color:#7db4ff;font-size:13px;font-weight:700}.product-grid{display:grid;grid-template-columns:1.08fr .96fr .96fr;gap:14px;margin-top:43px}.product-card{height:372px;padding:25px;background:#16456f;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:end}.product-card:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:24px 24px;opacity:.26}.product-card span,.product-card h3,.product-card p,.product-card button{position:relative}.product-card span{font-size:11px;color:#7db4ff;font-weight:700}.product-card h3{font-size:23px;letter-spacing:-.035em;margin:9px 0 5px}.product-card p{color:#c3cfda;font-size:13px;margin:0 0 12px}.product-card .mini-link{align-self:flex-start;padding:0}.card-two{background:#1a4a80}.card-three{background:#205897}.machined-shape{position:absolute;width:185px;height:185px;border:33px solid #cbd4d9;border-radius:48px 16px 48px 16px;right:43px;top:58px;transform:rotate(31deg);box-shadow:inset 0 0 0 11px #687f90,17px 22px 15px rgba(0,0,0,.25)}.turned-shape{position:absolute;right:49px;top:84px;width:87px;height:175px;background:linear-gradient(90deg,#aebec8,#eff3f4,#718799);border-radius:0 0 40px 40px;clip-path:polygon(22% 0,78% 0,94% 10%,78% 25%,78% 90%,100% 100%,0 100%,22% 90%,22% 25%,6% 10%)}.finish-shape{position:absolute;width:160px;height:160px;right:40px;top:55px;background:conic-gradient(#0048a8,#f4ca64,#769dcc,#d4e3e4,#0048a8);border-radius:50%;box-shadow:inset 0 0 0 29px #1a4d8f}.about{padding-top:120px;padding-bottom:120px;display:grid;grid-template-columns:1fr 1fr;gap:95px;align-items:center}.about-copy>p:not(.eyebrow){color:var(--muted);font-size:16px}.about-list{margin-top:30px;border-top:1px solid var(--line)}.about-list span{display:block;padding:13px 0;border-bottom:1px solid var(--line);color:var(--orange);font-size:11px}.about-list b{color:var(--ink);font-size:13px;margin-left:13px}.quality-section{background:var(--navy);color:#fff;padding:108px 0}.quality-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:80px;align-items:center}.eyebrow.light{color:#7db4ff}.quality-grid h2{font-size:clamp(38px,4.5vw,58px)}.quality-grid>div>p:not(.eyebrow){color:#b8c7d4;font-size:16px;max-width:520px}.white-button{background:#fff;color:var(--navy);margin-top:14px}.inspection-card{background:#102d49;border:1px solid #34506a;padding:28px;box-shadow:16px 16px 0 #0048a8}.inspection-head{display:flex;align-items:center;gap:8px;font-size:10px;letter-spacing:.12em;color:#c3d2df;border-bottom:1px solid #34506a;padding-bottom:18px}.inspection-head b{margin-left:auto;color:#9de3ba;font-size:12px}.pulse{width:7px;height:7px;border-radius:50%;background:#9de3ba;box-shadow:0 0 0 5px rgba(157,227,186,.14)}.inspection-readout{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;padding:26px 0}.inspection-readout small{display:block;font-size:9px;color:#94afc2;letter-spacing:.06em}.inspection-readout strong{display:block;font-size:23px;letter-spacing:-.05em;margin-top:5px}.inspection-readout em{font-style:normal;font-size:10px;color:#a9becc;letter-spacing:0}.inspection-readout .orange{color:#7db4ff}.inspection-bars{height:92px;display:flex;align-items:end;gap:7px;border-bottom:1px solid #34506a;padding:0 7px}.inspection-bars i{background:#6eafcc;width:10%;height:var(--h,48%);display:block}.inspection-bars i:nth-child(2){height:71%}.inspection-bars i:nth-child(3){height:59%}.inspection-bars i:nth-child(4){height:87%;background:#0048a8}.inspection-bars i:nth-child(5){height:68%}.inspection-bars i:nth-child(6){height:77%}.inspection-bars i:nth-child(7){height:51%}.inspection-bars i:nth-child(8){height:64%}.inspection-card>p{font-size:10px;color:#b7c9d6;margin:16px 0 0}.reasons{padding-top:116px;padding-bottom:119px}.centered{text-align:center;margin:auto}.centered>p:last-child{margin-left:auto;margin-right:auto}.reason-grid{margin-top:52px;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.reason-grid article{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:28px;min-height:210px;background:var(--white)}.reason-icon{color:var(--orange);font-size:26px}.reason-grid h3{font-size:17px;margin:13px 0 7px;letter-spacing:-.02em}.reason-grid p{font-size:13px;color:var(--muted);margin:0}.cta-section{background:#173a58;color:#fff}.cta-inner{min-height:265px;display:flex;align-items:center;justify-content:space-between;gap:35px}.cta-inner h2{font-size:clamp(35px,4vw,52px);max-width:680px}.orange-button{white-space:nowrap}footer{background:#081522;color:#fff;padding-top:67px}.footer-grid{display:grid;grid-template-columns:1.25fr .8fr 1.25fr 1.25fr;gap:48px;padding-bottom:59px}.footer-brand{color:#fff}.footer-grid h3{font-size:12px;letter-spacing:.04em;margin:0 0 14px}.footer-grid p{font-size:12px;line-height:1.7;color:#a9bdcc;margin:0}.footer-grid>div:first-child p{max-width:220px;margin-top:20px}.footer-bottom{border-top:1px solid #284054;padding-top:19px;padding-bottom:22px;display:flex;justify-content:space-between;color:#8399ab;font-size:10px}.modal-backdrop{position:fixed;inset:0;z-index:50;background:rgba(3,15,28,.68);display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;visibility:hidden;transition:.2s}.modal-backdrop.open{opacity:1;visibility:visible}.modal{position:relative;background:var(--paper);color:var(--ink);width:min(530px,100%);max-height:calc(100vh - 40px);overflow:auto;padding:38px;transform:translateY(16px);transition:.25s;box-shadow:var(--shadow)}.modal-backdrop.open .modal{transform:translateY(0)}.close-modal{position:absolute;right:14px;top:11px;border:0;background:transparent;font-size:28px;color:var(--muted);line-height:1}.modal-kicker{color:var(--orange);font-size:10px;letter-spacing:.15em;font-weight:800}.modal h2{font-size:29px;letter-spacing:-.05em;margin:7px 0}.modal>p{font-size:14px;color:var(--muted);margin:0 0 22px}.auth-switch{display:flex;border-bottom:1px solid var(--line);margin-bottom:22px;gap:22px}.auth-switch button{border:0;background:none;padding:8px 0;color:var(--muted);font-size:13px;font-weight:700}.auth-switch button.active{color:var(--orange);border-bottom:2px solid var(--orange)}form label{display:block;margin:0 0 15px}form label>span{display:block;font-size:11px;font-weight:750;margin-bottom:6px;color:var(--muted)}input,select,textarea{width:100%;border:1px solid var(--line);background:var(--white);color:var(--ink);border-radius:2px;padding:11px;font-size:13px}textarea{min-height:72px;resize:vertical}.checkbox-row{display:flex!important;align-items:flex-start;gap:9px;margin-top:5px}.checkbox-row input{width:15px;height:15px;flex:none;margin-top:2px}.checkbox-row span{font-size:11px!important;font-weight:500!important;line-height:1.45}.full{width:100%;margin-top:8px}.modal-note{font-size:11px!important;line-height:1.45;margin-top:15px!important;margin-bottom:0!important}.quote-modal{width:min(850px,100%);padding:35px}.quote-title-row{display:flex;align-items:start;justify-content:space-between;gap:15px}.secure-tag{font-size:10px;color:#29775b;background:#e3f6e9;padding:5px 8px}.steps{display:flex;gap:0;margin:26px 0;border-bottom:1px solid var(--line)}.steps span{position:relative;flex:1;padding:0 0 12px;color:var(--muted);display:flex;align-items:center;gap:7px;font-size:11px}.steps span b{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--line);color:var(--muted);font-size:10px}.steps span.active{color:var(--ink);font-weight:750}.steps span.active:after{content:"";position:absolute;bottom:-1px;left:0;width:100%;height:2px;background:var(--orange)}.steps span.active b{background:var(--orange);color:#fff}.quote-step{display:none}.quote-step.active{display:block}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 15px}.upload-zone{border:1px dashed #99a9b5;padding:22px;text-align:center;color:var(--orange);background:color-mix(in srgb,var(--white) 78%,var(--orange) 5%)}.upload-zone input{display:none}.upload-zone b{display:block;font-size:13px}.upload-zone small{font-size:10px;color:var(--muted);margin-top:4px;display:block}.quote-actions{display:flex;justify-content:space-between;margin-top:25px}.quote-actions #quote-back{visibility:hidden}.compliance-banner{background:#eef4f8;border-left:3px solid var(--orange);padding:12px;margin-bottom:17px}.compliance-banner b{display:block;font-size:12px}.compliance-banner span{font-size:11px;color:#4f6370;display:block;margin-top:3px}.compliance-check{margin-top:4px}.quote-review{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;background:var(--navy);padding:18px}.quote-review div{color:#fff}.quote-review small{font-size:9px;letter-spacing:.07em;color:#a6bdcf;display:block}.quote-review strong{font-size:12px;margin-top:4px;display:block}.document-checklist{margin-top:20px;border:1px solid var(--line);padding:20px}.document-checklist h3{font-size:15px;margin:0 0 13px}.document-checklist ul{list-style:none;padding:0;margin:0}.document-checklist li{font-size:12px;color:#26744f;margin:7px 0}.document-checklist li span{color:var(--muted)}.document-checklist p{font-size:10px;color:var(--muted);margin:15px 0 0}.account-backdrop{padding:0;align-items:stretch;justify-content:stretch}.account-panel{background:var(--paper);width:100%;min-height:100%;display:grid;grid-template-columns:255px 1fr;position:relative}.account-panel aside{background:var(--navy);color:#fff;padding:29px 18px;display:flex;flex-direction:column}.account-brand .brand-mark{width:33px;height:33px}.account-user{display:flex;align-items:center;gap:9px;padding:26px 10px 21px;border-bottom:1px solid #29445d;margin-bottom:12px}.account-user>span{width:34px;height:34px;display:grid;place-items:center;background:#0048a8;color:#fff;border-radius:50%;font-size:11px;font-weight:800}.account-user b{font-size:12px;display:block}.account-user small{font-size:10px;color:#a9bdcd;display:block}.account-panel aside nav{display:flex;flex-direction:column;gap:3px}.account-panel aside nav button,.signout{border:0;background:transparent;color:#b7c7d5;text-align:left;padding:12px;border-radius:2px;font-size:12px;display:flex;gap:9px;align-items:center}.account-panel aside nav button.active,.account-panel aside nav button:hover{background:#1b3b57;color:#fff}.side-count{font-size:9px;background:var(--orange);color:#fff;border-radius:10px;padding:1px 6px;margin-left:auto}.signout{margin-top:auto}.account-content{padding:45px min(6vw,80px);overflow:auto;max-height:100vh}.close-modal.inverse{color:#c7d9e5;z-index:2}.portal-top{display:flex;align-items:start;justify-content:space-between;gap:25px;margin-bottom:30px}.portal-top h2{font-size:35px;letter-spacing:-.05em;margin:5px 0}.portal-top p{margin:0;color:var(--muted);font-size:14px}.portal-kicker{color:var(--orange);font-size:10px;font-weight:800;letter-spacing:.13em}.portal-action{align-self:center}.portal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.portal-stat{border:1px solid var(--line);background:var(--white);padding:19px}.portal-stat small{font-size:10px;color:var(--muted);display:block}.portal-stat b{font-size:27px;letter-spacing:-.04em;display:block;margin:5px 0}.portal-stat span{font-size:10px;color:#31805f}.portal-row{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}.portal-card{border:1px solid var(--line);background:var(--white);padding:22px}.portal-card h3{font-size:15px;margin:0 0 14px}.portal-card h3 span{color:var(--muted);font-size:11px;font-weight:500;float:right}.activity{display:flex;gap:12px;padding:13px 0;border-top:1px solid var(--line)}.activity:first-of-type{border-top:0}.activity i{width:8px;height:8px;background:var(--orange);border-radius:50%;margin-top:6px}.activity b{font-size:12px;display:block}.activity small{font-size:10px;color:var(--muted)}.milestone{border-left:1px solid var(--line);padding:5px 0 5px 16px;margin-left:4px;position:relative}.milestone:before{content:"";position:absolute;width:8px;height:8px;border-radius:50%;background:#6dbd96;left:-5px;top:10px}.milestone b{font-size:12px;display:block}.milestone small{font-size:10px;color:var(--muted)}.data-table-wrap{border:1px solid var(--line);background:var(--white);overflow:auto}.data-table{border-collapse:collapse;width:100%;min-width:680px}.data-table th{text-align:left;background:#edf2f5;color:#536574;font-size:10px;letter-spacing:.04em;padding:12px;border-bottom:1px solid var(--line)}.data-table td{font-size:12px;padding:15px 12px;border-bottom:1px solid var(--line)}.data-table tr:last-child td{border-bottom:0}.status{font-size:10px;border-radius:10px;padding:4px 7px;background:#e5f5e9;color:#2c7955;font-weight:700;white-space:nowrap}.status.pending{background:#fff1dc;color:#a3570b}.status.shipped{background:#e2effa;color:#23619a}.table-link{font-weight:700;color:var(--orange);border:0;background:none;font-size:11px}.cart-layout{display:grid;grid-template-columns:1fr 310px;gap:18px}.order-summary{border:1px solid var(--line);padding:21px;background:var(--white);height:max-content}.summary-line{display:flex;justify-content:space-between;font-size:12px;padding:7px 0;color:var(--muted)}.summary-total{border-top:1px solid var(--line);margin-top:10px;padding-top:13px;color:var(--ink)!important;font-weight:800;font-size:15px!important}.order-summary .primary-button{width:100%;margin-top:12px}.empty-cart{padding:37px;text-align:center;color:var(--muted);font-size:13px}.invoice-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px}.invoice-box{border:1px solid var(--line);padding:18px;background:var(--white)}.invoice-box small{font-size:10px;color:var(--muted);display:block}.invoice-box b{font-size:23px;letter-spacing:-.04em;display:block;margin-top:4px}.invoice-box p{font-size:10px;color:var(--muted);margin:5px 0 0}.shipment-card{border:1px solid var(--line);background:var(--white);padding:23px}.shipment-top{display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid var(--line);padding-bottom:17px}.shipment-top b{font-size:16px}.shipment-top p{margin:4px 0 0;font-size:11px;color:var(--muted)}.shipment-progress{display:flex;justify-content:space-between;margin:26px 0 18px;position:relative}.shipment-progress:before{content:"";height:2px;background:#76bd9e;position:absolute;top:8px;left:0;right:21%}.shipment-progress span{font-size:10px;text-align:center;position:relative;z-index:1;color:var(--muted);width:20%}.shipment-progress i{width:17px;height:17px;border-radius:50%;display:block;background:#6dbd96;border:4px solid var(--white);margin:0 auto 6px}.shipment-progress span:last-child i{background:#d9e3e9}.doc-pills{display:flex;gap:8px;flex-wrap:wrap}.doc-pills button{font-size:10px;border:1px solid var(--line);padding:6px;background:#f5f8f9;color:var(--ink)}.payment-total{background:var(--navy);color:#fff;padding:18px;margin:20px 0}.payment-total span,.payment-total small{display:block;font-size:10px;color:#b6c9d9}.payment-total b{font-size:28px;letter-spacing:-.05em;display:block;margin:5px 0}.gateway-options{display:grid;gap:8px}.gateway-options label{border:1px solid var(--line);padding:12px;display:flex;gap:10px;margin:0}.gateway-options input{width:14px}.gateway-options b{font-size:12px;display:block}.gateway-options small{font-size:10px;color:var(--muted);display:block;margin-top:2px}#toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);background:var(--navy);color:#fff;padding:12px 17px;border-radius:2px;font-size:12px;z-index:90;opacity:0;visibility:hidden;transition:.25s;box-shadow:var(--shadow)}#toast.show{opacity:1;visibility:visible;transform:translate(-50%,0)}
@media(max-width:900px){.desktop-nav{display:none}.menu-button{display:grid}.site-header{padding:0 20px;height:68px}.account-button span:last-child{display:none}.mobile-nav.open{display:flex;flex-direction:column;gap:18px;padding:20px;background:var(--paper);border-bottom:1px solid var(--line);position:fixed;z-index:19;top:104px;left:0;right:0}.hero{grid-template-columns:1fr;gap:42px;padding-top:58px}.hero-visual{height:390px;max-width:580px;width:100%}.stat-grid{grid-template-columns:repeat(2,1fr)}.product-grid{grid-template-columns:1fr}.product-card{height:310px}.about,.quality-grid{grid-template-columns:1fr;gap:48px}.about{padding-top:80px;padding-bottom:80px}.footer-grid{grid-template-columns:repeat(2,1fr)}.reason-grid{grid-template-columns:repeat(2,1fr)}.account-panel{grid-template-columns:205px 1fr}.account-content{padding:40px 30px}.portal-grid{grid-template-columns:repeat(2,1fr)}.portal-row,.cart-layout{grid-template-columns:1fr}.quote-modal{padding:28px}}
@media(max-width:580px){.announcement{justify-content:space-between;gap:8px;font-size:10px}.header-actions{gap:2px}.site-header{padding:0 13px}.brand strong{font-size:14px}.brand-mark{width:31px;height:31px;font-size:18px}.icon-button{display:none}.section-shell{padding-left:20px;padding-right:20px}.hero{padding-top:47px;padding-bottom:52px}.hero h1{font-size:46px}.hero-text{font-size:15px}.hero-actions{flex-direction:column;align-items:stretch}.hero-actions>*{text-align:center}.proof-row{margin-top:32px}.proof-row span{padding:0 10px}.proof-row b{font-size:16px}.proof-row small{font-size:8px}.hero-visual{height:310px}.component-a{transform:scale(.73) rotate(30deg) skew(-8deg);left:63px;top:42px}.component-b{left:74px;top:145px;transform:scale(.73) rotate(30deg)}.component-c{left:203px;top:100px;transform:scale(.73)}.line-1{left:52px;top:65px;transform:scale(.72);transform-origin:left}.line-2{left:324px;top:80px;transform:scale(.72);transform-origin:top}.capabilities,.reasons{padding-top:75px;padding-bottom:75px}.stat-grid{grid-template-columns:1fr}.stat-grid article{min-height:145px}.split-heading{display:block}.split-heading .text-link{margin-top:15px;padding:0}.product-section,.quality-section{padding:73px 0}.quality-grid{gap:30px}.inspection-card{padding:20px;box-shadow:10px 10px 0 #0048a8}.inspection-readout strong{font-size:18px}.reason-grid{grid-template-columns:1fr}.cta-inner{padding-top:50px;padding-bottom:50px;align-items:flex-start;flex-direction:column;justify-content:center}.footer-grid{grid-template-columns:1fr;gap:25px}.footer-bottom{display:block;line-height:2}.modal{padding:29px 22px}.quote-title-row .secure-tag{display:none}.steps span i{display:none}.form-grid{grid-template-columns:1fr}.quote-review{grid-template-columns:1fr}.account-panel{display:block}.account-panel aside{height:151px;padding:17px;position:relative}.account-user{position:absolute;right:18px;top:2px;border:0;padding:0}.account-panel aside nav{display:flex;flex-direction:row;overflow:auto;position:absolute;bottom:0;left:0;right:0;padding:0 12px}.account-panel aside nav button{white-space:nowrap;padding:10px 8px}.account-panel aside nav button span{font-size:10px}.account-panel aside nav button:first-child{display:none}.signout{display:none}.account-content{padding:28px 19px;max-height:calc(100vh - 151px)}.portal-top{display:block}.portal-action{margin-top:14px}.portal-grid{grid-template-columns:1fr 1fr}.portal-stat{padding:14px}.portal-stat b{font-size:22px}.invoice-summary{grid-template-columns:1fr}.shipment-progress span{font-size:8px}.shipment-card{padding:16px}.cart-button{width:32px;height:32px}.menu-button{width:32px;height:32px}.modal-backdrop{padding:0}.quote-modal{min-height:100%;padding:40px 20px}.account-backdrop{padding:0}}
:root{--ink:#12283f;--muted:#58739e;--paper:#f5f9ff;--line:#d5e3f5;--navy:#123c73;--navy-2:#1a4d8f;--orange:#0048a8;--orange-2:#003c8c;--white:#fff;--shadow:0 24px 70px rgba(14,29,47,.16);--sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
/* Unified authentication controls */
.auth-modal .reset-trigger{display:block;width:100%;border:1px solid var(--line);background:transparent;color:var(--muted);padding:11px 14px;margin-top:10px;font-size:12px;font-weight:700;border-radius:2px;text-align:center;transition:.2s}.auth-modal .reset-trigger:hover{border-color:var(--orange);color:var(--orange);background:color-mix(in srgb,var(--orange) 6%,transparent)}.auth-modal #password-reset-box{border-top:1px solid var(--line);margin-top:17px;padding-top:17px}.auth-modal .reset-back-link{display:block;width:100%;border:1px solid var(--line);background:transparent;color:var(--ink);padding:11px 14px;margin-top:10px;font-size:12px;font-weight:700;border-radius:2px;text-align:center}.auth-modal .reset-back-link:hover{border-color:var(--orange);color:var(--orange)}.auth-methods{display:flex;border:1px solid var(--line);padding:3px;gap:3px;margin:0 0 17px;background:var(--white)}.auth-methods button{flex:1;border:0;background:transparent;color:var(--muted);padding:9px 8px;font-size:11px;font-weight:700;border-radius:2px}.auth-methods button.active{background:var(--navy);color:#fff}.code-input-row{display:grid;grid-template-columns:1fr auto;gap:8px}.code-input-row .secondary-button{min-height:0;padding:10px 12px;font-size:11px}
/* Language controls stay available inside all modal layers. */
.auth-modal #password-reset-box label{display:block;margin:12px 0 0}
.auth-modal #password-reset-box label span{display:block;font-size:12px;font-weight:600;margin-bottom:6px}
.auth-modal #reset-request{margin-top:8px}.auth-modal #reset-confirm{margin-top:14px}
.auth-modal .reset-method-choice{display:grid;gap:8px;margin:12px 0 4px}.auth-modal .reset-method-choice .full{margin-top:0}.auth-modal #password-reset-box [hidden]{display:none!important}
.cart-icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.cart-nav-icon{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}.back-to-top{position:fixed;right:26px;bottom:26px;z-index:45;display:flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--navy);color:#fff;padding:10px 13px;border-radius:24px;font-size:12px;font-weight:750;box-shadow:0 8px 24px rgba(14,29,47,.22);opacity:0;visibility:hidden;transform:translateY(10px);transition:.2s;cursor:pointer}.back-to-top.visible{opacity:1;visibility:visible;transform:translateY(0)}.back-to-top>span:first-child{font-size:19px;line-height:1}@media(max-width:580px){.back-to-top{right:16px;bottom:16px;padding:10px 12px}.back-to-top-label{display:none}}#toast{left:50%;right:auto;bottom:50%;transform:translate(-50%,50%) scale(.98);min-width:min(360px,calc(100vw - 40px));max-width:min(560px,calc(100vw - 40px));text-align:center;border:1px solid rgba(255,255,255,.16);box-shadow:0 24px 70px rgba(14,29,47,.3)}#toast.show{transform:translate(-50%,50%) scale(1)}
.hero-banner-image{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:1;filter:none}.hero-visual .visual-label{z-index:1}.inspection-bars{display:none!important}

/* 图纸／文件上传控件（.upload-zone：新增询价页的拖放区 + 旧报价弹窗的拖放区）
   左右各收窄 100px。按容器宽度算，而不是写死像素宽度——「新增询价」页空态/停靠态、
   弹窗态三种容器宽度都自动跟着走；窄屏用 max() 保底 240px，避免被压成一条窄缝。
   注意：这里只收窄控件本身，卡片与其上的引导文案宽度不变。 */
.upload-zone{max-width:max(calc(100% - 200px),240px);margin-left:auto;margin-right:auto}
/* 语言只由用户在左下/侧栏底部显式切换。 */
.language-choice{display:inline-flex;align-items:center;justify-content:center;gap:2px;padding:2px;border:1px solid var(--line,#d9e1e8);border-radius:999px;background:var(--white,#fff)}
.language-choice button{min-width:42px;min-height:28px;padding:4px 9px;border:0;border-radius:999px;background:transparent;color:var(--muted,#617386);font:inherit;font-size:11px;line-height:1;cursor:pointer}
.language-choice button.active,.language-choice button[aria-pressed="true"]{background:var(--navy,#10283d);color:#fff;font-weight:700}
.language-choice button:focus-visible{outline:2px solid var(--orange,#0048a8);outline-offset:2px}
.portal-language-choice{margin:0}.account-panel aside .portal-language-choice~.signout{margin-top:0}
.mobile-nav .language-choice{margin:12px 16px 4px;align-self:flex-start}
@media(max-width:760px){.footer-bottom{flex-wrap:wrap;gap:12px}.portal-language-choice{margin:12px auto 4px}}
/* REQ99（2026-09-30）：中英文切换回到最顶部通告条，紧跟在通告文案后面，显示为加粗的「中文 EN」。
   基础 .language-choice 是白底胶囊（比通告条深蓝底重得多），所以这里把它压成一行加粗文字：
   透明底、无边框、两段之间一条细竖线，当前语言为纯白加下划线，另一个是半透明白。
   选择器比第 21~23 行的 .language-choice 规则更具体（多一个 .announcement-language 类），
   因此不需要依赖书写顺序去覆盖 active 态。 */
.announcement-language{margin:0;padding:0;border:0;background:transparent;gap:0;flex:none}
.announcement-language button{min-width:0;min-height:20px;padding:2px 7px;border:0;background:transparent;color:rgba(219,231,240,.7);font-size:12px;font-weight:700;line-height:1.2;cursor:pointer}
.announcement-language button+button{border-left:1px solid rgba(219,231,240,.35);border-radius:0}
.announcement-language button:hover{color:#fff}
.announcement-language button.active,.announcement-language button[aria-pressed="true"]{background:transparent;color:#fff;font-weight:700;text-decoration:underline;text-underline-offset:3px}
@media(max-width:580px){.announcement-language button{font-size:11px;padding:2px 5px}}
/* REQ86：头部「获取报价」按钮。此前 public/ 下 6 个样式表都没有 .header-quote-button 规则，
   所以它一直按浏览器默认渲染（灰底 + 2px outset 立体边框 + 16px/400），与站内其它「获取报价」按钮完全不一致。
   现与 .primary-button（hero / CTA 区的「获取报价」）同色同风格：--orange 底、白字、2px 直角、750 字重；
   仅按需求把高度压成紧凑长方形（32px）以适配 85px 的头部。height 必须显式声明，否则会被撑到 primary 的 48px。 */
.header-quote-button{border:0;background:var(--orange,#0048a8);color:#fff;border-radius:2px;font-size:13px;font-weight:750;line-height:1;display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 14px;white-space:nowrap;cursor:pointer;transition:background .2s,transform .2s}
.header-quote-button:hover{background:var(--orange-2,#003c8c)}
.header-quote-button span{font-size:15px;line-height:1}
/* 窄屏隐藏头部这个 CTA。实测：品牌 + 桌面导航 + 主题 + 登录 + 购物车 + 本按钮共需 959px，
   <960px 时动作区右缘会超出视口（901px 时超出 58px、950px 时超出 9px），右侧按钮被切掉。
   注意 901–960px 这一档桌面导航仍然显示（导航断点是 900px），所以不能只在 ≤900px 隐藏。 */
@media(max-width:960px){.header-quote-button{display:none}}

/* REQ88：中英文切换移到底部，与「退出登录」放进同一横向行（左语言、右退出）。
   贴底由隐私政策链接的 margin-top:auto 承担（见 src/privacy-entry.css），从而
   「隐私政策 + [语言 | 退出登录]」整块一起留在最底部，与改动前的位置一致。
   ≤960px 时账户面板侧栏收窄到 205px，两项已放不下：允许换行，并禁止按钮文字折行
   （否则会被挤成竖排的窄条），此时回到改动前「语言一行、退出登录一行」的排布。
   ≤760px 取消贴底，避免与绝对定位在底部的导航重叠。 */
.portal-footer-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;margin-top:6px}
.portal-footer-actions .signout{margin-top:0;white-space:nowrap}
@media(max-width:760px){.portal-footer-actions{margin-top:0}}

/* REQ104：全系统弹窗右上角固定显示的关闭 X（与 src/shared/dialog-close.css 同一套规则）。
   旧版静态页面（frontend/index.html + public/*.js）不经过 Vite，因此这里直接附上同样的规则：
   position:sticky 让 X 钉在滚动框架的可见顶部，负 margin 让它不占布局高度。 */
.dialog-x{position:sticky;top:6px;z-index:3;display:flex;align-items:center;justify-content:center;width:34px;height:34px;margin:0 0 -34px auto;border:0;border-radius:50%;background:transparent;color:#5b6b7b;font-size:22px;line-height:1;cursor:pointer;padding:0;flex:none}
.dialog-x:hover{background:#eef2f6;color:#12283f}
.dialog-x:focus-visible{outline:2px solid #0048a8;outline-offset:2px}
/* .modal 才是真正的滚动框架（max-height:calc(100vh - 40px);overflow:auto）：原有的 .close-modal 是
   position:absolute，弹窗主体一滚就跟着滚走。给它加 .dialog-x 后改成 sticky，钉在右上角；
   底色的半透明白圆沿用旧版外观，滚动的正文上仍然看得清。 */
.modal>.close-modal.dialog-x{position:sticky;top:6px;right:auto;z-index:3;display:flex;align-items:center;justify-content:center;width:34px;height:34px;margin:0 0 -34px auto;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.82);color:#5b6b7b;font-size:22px;line-height:1;cursor:pointer}
.modal>.close-modal.dialog-x:hover{background:#eef2f6;color:#12283f}

/* Compact signed-in shortcuts retain full labels without widening the viewport. */
.header-portal-link{border:1px solid var(--line);border-radius:5px;background:var(--white);color:var(--ink);font-size:12px;font-weight:650;line-height:1.35;padding:7px 9px;white-space:nowrap}
.header-portal-link:hover{background:color-mix(in srgb,var(--orange) 8%,var(--white));color:var(--orange)}
@media(max-width:600px){
  .site-header{gap:8px;padding-left:12px;padding-right:12px;flex-wrap:wrap;height:auto;min-height:68px;padding-top:8px;padding-bottom:8px}
  .header-actions{min-width:0;gap:4px;flex-wrap:wrap;justify-content:flex-end}
  .header-portal-link{font-size:11px;padding:6px}
  .site-header .brand strong{font-size:13px}.site-header .brand{gap:6px}
  .site-header .brand-mark{width:28px;height:28px;font-size:19px}
}

/* REQ135：弹窗按钮 hover 闪烁修复。
   根因：基础 .primary-button/.secondary-button 的 hover 带 transform:translateY(-2px)
   （见 src/admin/customer-rfq.css 注释「styles.css:.primary-button / .secondary-button（原值）」），
   全宽按钮上移后指针落到按钮外边界，hover 反复进入/离开 → 视觉闪烁。
   弹窗内禁用位移与滤镜，只保留颜色过渡。 */
.auth-modal .primary-button:hover,.auth-modal .secondary-button:hover,.auth-modal .reset-trigger:hover{transform:none;filter:none}
.auth-modal .primary-button,.auth-modal .secondary-button,.auth-modal .reset-trigger{transition:background-color .15s ease,border-color .15s ease,color .15s ease}

/* REQ136（2026-10-10）首页改版：产品工艺 3→6（两行各 3）、服务优势 6 项圆形框单行 6 个。
   蓝色族已在本文件内就地提亮分层：--orange #004aad→#0048a8、--orange-2 #003d91→#003c8c、
   --navy #0b1f36→#123c73、--navy-2 #122e4b→#1a4d8f、--ink #101e30→#12283f、
   --muted #5d6875→#5a7391、--line #dce2e8→#d5e3f5、--paper #f7f8fa→#f5f9ff、
   #80b5ff→#7db4ff；深色主题同步。 */

/* REQ136-B 六个零件：两行各 3 个，内容盒总高 179×2+14=372px，与改版前单行卡片高度一致 */
.product-grid{grid-template-columns:repeat(3,1fr);grid-auto-rows:300px;gap:14px;margin-top:43px}
.product-card{height:100%;padding:16px 18px 13px}
.product-card.card-four{background:#153f68}
.product-card.card-five{background:#1b4d84}
.product-card.card-six{background:#215e9c}
/* 照片定位与整卡压暗由后加载的 interactions.css（.product-photo / .product-card:after）提供；
   这里用更高优先级补一条「自底起算」的遮罩：interactions.css 用 inset:0 铺满整卡，
   与固定 height 组合会让遮罩从顶部起算，导致 179px 卡片底部文字对比度不足。 */
.product-section .product-card:after{content:"";position:absolute;left:0;right:0;bottom:0;top:auto;height:66%;z-index:0;pointer-events:none;background:linear-gradient(180deg,rgba(9,26,45,0) 0%,rgba(9,26,45,.1) 28%,rgba(9,26,45,.44) 62%,rgba(9,26,45,.74) 100%);backdrop-filter:blur(1.6px) saturate(.98);-webkit-backdrop-filter:blur(1.6px) saturate(.98);mask-image:linear-gradient(to top,rgba(0,0,0,.9) 6%,rgba(0,0,0,0) 97%);-webkit-mask-image:linear-gradient(to top,rgba(0,0,0,.9) 6%,rgba(0,0,0,0) 97%)}
.product-card span{font-size:10px;color:#aad4ff}
.product-card h3{font-size:17px;margin:3px 0 1px}
.product-card p{font-size:12px;line-height:1.4;margin:0 0 3px;color:#eaf4ff;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.product-card .mini-link{font-size:12px;margin-top:1px;color:#a3cdff}

/* REQ136-D 服务优势：圆形框图标，单行 6 个 */
.reason-grid{grid-template-columns:repeat(6,1fr);gap:24px;margin-top:46px;border-top:0;border-left:0}
.reason-grid article{border-right:0;border-bottom:0;background:transparent;min-height:0;padding:0;text-align:center}
.reason-icon{display:grid;place-items:center;width:68px;height:68px;margin:0 auto 14px;border-radius:50%;font-size:26px;line-height:1;color:var(--orange);background:#e9f1fb;border:1px solid #a8c3e8;box-shadow:0 8px 20px rgba(0,72,168,.12)}
.reason-grid h3{font-size:15px;margin:0 0 6px}
.reason-grid p{font-size:12px;line-height:1.6}
body[data-theme="dark"] .reason-icon{background:#16365f;border-color:#3f7cc4;box-shadow:0 8px 20px rgba(0,0,0,.35)}

@media(max-width:900px){
  .product-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:auto}
  .product-card{height:268px}
  .reason-grid{grid-template-columns:repeat(3,1fr);gap:22px;row-gap:30px}
  .reason-icon{width:60px;height:60px;font-size:22px}
}
@media(max-width:580px){
  .product-grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .product-card{height:240px;padding:12px}
  .product-card h3{font-size:14px}
  .reason-grid{grid-template-columns:repeat(2,1fr);gap:18px;row-gap:26px}
}

/* REQ136-R4（2026-10-10 追加）关于 + 品质：视觉合成一个斜切整体。
   用户要求：两个模块在中间斜着切开、留一点空隙，缝隙做白蓝双层斜效果，关于内容在左、
   品质内容在右，两侧衔接合理。
   实现取舍：**DOM 不变**（仍是 main 下相邻的两个 section，各自内部结构一字未改），改用
   main 两列网格让二者并排等高 + clip-path 斜切 + 中缝白蓝双层斜条。这样 CMS 的
   `section:nth-of-type(N)` 定位链全部继续有效（改 DOM 会让 about/quality/reasons/cta
   四组字段选择器整体位移，需要额外的 CMS 迁移）。 */
main{display:grid;grid-template-columns:1fr 1fr}
main>section{grid-column:1/-1}
/* REQ136-R5：`margin:0` 覆盖 .section-shell 的 margin:auto——网格项上的 auto 外边距会让
   左半按内容高度居中而不被拉伸，左右两半就会出现 15px 错位与 30px 高度差，斜缝也会短一截。 */
.about,.quality-section{max-width:none;position:relative;z-index:0;margin:0;align-self:stretch}
/* REQ136-R5：左半加一层比页面底色略深的淡底(padding 让位同样按加宽后的页宽算)，
   整段高度压到原来的约 4/5，两侧内容整体上移(上内边距 96→56)。 */
.about{grid-column:1;display:grid;grid-template-columns:minmax(0,1fr);gap:30px;background:#e9f1fb;padding:56px 92px 64px max(30px,calc((100vw - var(--shell))/2))}
.quality-section{grid-column:2;padding:56px max(30px,calc((100vw - var(--shell))/2)) 64px 92px}
/* 蓝色底由伪元素承担并斜切（section 自己不裁剪，否则会把斜缝条一起裁掉） */
.quality-section{background:transparent}
.quality-section::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--navy);clip-path:polygon(72px 0,100% 0,100% 100%,0 100%)}
/* 斜缝：缝隙水平宽 72px，靠左 26px 白层 + 靠右 46px 蓝层，两层与斜边同斜率；
   挂在左半（.about）上，位置取 left:calc(100% - 72px)，因此在任意视口都对准 50% 中缝。 */
.about::before,.about::after{content:"";position:absolute;top:0;bottom:0;left:calc(100% - 72px);width:144px;pointer-events:none}
.about::before{background:var(--white);clip-path:polygon(72px 0,98px 0,26px 100%,0 100%)}
.about::after{background:linear-gradient(180deg,#5c90d2,#003c8c);clip-path:polygon(98px 0,144px 0,72px 100%,26px 100%)}
/* 半幅内的排布：左半「照片 + 文案」，右半「文案 + 检测卡」，两侧等高（网格拉伸） */

.about .about-list{margin-top:18px}
.quality-section .quality-grid{display:flex;flex-direction:column;height:100%;max-width:none;margin:0;padding:0}
.quality-section .inspection-card{flex:1 1 auto;width:100%;min-height:400px;margin:24px 0 0}
.quality-section .quality-grid .eyebrow{margin-top:0}
.quality-section .quality-grid h2{font-size:clamp(34px,4vw,52px)}
.about h2{font-size:clamp(34px,4vw,52px)}
body[data-theme="dark"] .about::before{background:#dce9f8}
@media(max-width:1200px){
  .about{padding-right:64px}
  .quality-section{padding-left:64px}

}
@media(max-width:900px){
  main{display:block}
  .about,.quality-section{padding:64px 24px;max-width:none}
  .about{display:block}
  .about{padding-bottom:44px}
  .quality-section::before{clip-path:none}

  .about::before,.about::after{left:0;right:0;width:auto;top:auto}
  .about::before{bottom:12px;height:12px;clip-path:none}
  .about::after{bottom:0;height:12px;clip-path:none;background:linear-gradient(90deg,#5c90d2,#003c8c)}
}

/* REQ136-R5（2026-10-10 追加）页面内容左右加宽：用户指出「左右留白位置太多了，留白位置
   左右都减半，含 banner 在内的所有模块内容往两边再铺满一点点」。
   1920px 视口下原先单侧留白 350px，这里把页面栅格宽度由 1220px 提到 1570px
   （单侧留白 175px，正好减半），页头、页脚(复用 .section-shell)、关于/品质以及 banner
   的内边距全部改读同一个 --shell 变量，保证各模块内容左右边界一致。 */
:root{--shell:1570px}
.section-shell{max-width:var(--shell)}
.site-header{padding:0 max(30px,calc((100vw - var(--shell))/2))}

/* REQ137（2026-10-11）产品六卡：照片范围加高（模块总高不变）+ 只保留文字区的轻微压暗/虚化。
   桌面网格行 179→199 使照片区变高，同断点把 section 上下留白各减 20 抵消（100→80），
   #products 的 section 总高保持 701px 不变（qa-card-geometry.mjs 对比实测）。 */
/* REQ139（2026-10-11 主页优化·客户端 10.11 反馈）：
   R1-2 品牌蓝统一到 LOGO 底板蓝 #0048a8（详见文件头注释）；R2-1 工艺库小标改「what we make」并上移
   （桌面上下留白 60→42，小标再上提 10px）；R2-2 六张材料卡照片区由行高 219px 加到 300px
   （≤900 视口 200→268，≤580 视口 172→240）；R3-2 首页检测卡 300→400 让 ZEISS 图片更大。 */
/* REQ139-R1-2：深蓝底板块的小标不用 LOGO 底板深蓝（#0048a8 压在同色深底上不可读），
   改用同族浅一档 #7db4ff（即深色主题里的 --orange），浅底上的蓝仍统一为 #0048a8。 */
.product-section .eyebrow{color:#7db4ff}
@media(min-width:901px){.product-section{padding:42px 0}.product-section .eyebrow{margin-top:-10px}}
.product-card h3,.product-card p,.product-card span,.product-card .product-finish,.product-card .mini-link{text-shadow:0 1px 2px rgba(5,15,28,.9),0 0 16px rgba(5,15,28,.45)}
.product-card.card-one .product-photo{object-position:center 52%}
.product-card.card-three .product-photo{object-position:center 46%}
.product-card.card-five .product-photo{object-position:center 50%}
.product-card.card-six .product-photo{object-position:center 54%}
/* REQ158（用户 2026-10-14）：账户面板菜单里的「总览」从中间切开——左半仍是总览页，
   右半是「首页」，两半等宽。两半都是 <nav> 里的按钮，样式沿用同一条规则。 */
.account-panel aside nav .account-nav-split{display:flex;gap:3px}
.account-panel aside nav .account-nav-split>button{flex:1 1 0;justify-content:center;min-width:0}