.site-public, .site-public{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}.site-public *, .site-public :after, .site-public :before{box-sizing:border-box;border:0 solid;margin:0;padding:0}.site-public ::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}.site-public ::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}.site-public, .site-public{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}.site-public hr{height:0;color:inherit;border-top-width:1px}.site-public abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.site-public h1, .site-public h2, .site-public h3, .site-public h4, .site-public h5, .site-public h6{font-size:inherit;font-weight:inherit}.site-public a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}.site-public b, .site-public strong{font-weight:bolder}.site-public code, .site-public kbd, .site-public samp, .site-public pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}.site-public small{font-size:80%}.site-public sub, .site-public sup{vertical-align:baseline;font-size:15px;line-height:0;position:relative}.site-public sub{bottom:-.25em}.site-public sup{top:-.5em}.site-public table{text-indent:0;border-color:inherit;border-collapse:collapse}.site-public :-moz-focusring{outline:auto}.site-public progress{vertical-align:baseline}.site-public summary{display:list-item}.site-public ol, .site-public ul, .site-public menu{list-style:none}.site-public img, .site-public svg, .site-public video, .site-public canvas, .site-public audio, .site-public iframe, .site-public embed, .site-public object{vertical-align:middle;display:block}.site-public img, .site-public video{max-width:100%;height:auto}.site-public button, .site-public input, .site-public select, .site-public optgroup, .site-public textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}.site-public ::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}.site-public :where(select:is([multiple], .site-public [size])) optgroup{font-weight:bolder}.site-public :where(select:is([multiple], .site-public [size])) optgroup option{padding-inline-start:20px}.site-public ::file-selector-button{margin-inline-end:4px}.site-public ::placeholder{opacity:1}.site-public @supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}.site-public textarea{resize:vertical}.site-public ::-webkit-search-decoration{-webkit-appearance:none}.site-public ::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}.site-public ::-webkit-datetime-edit{display:inline-flex}.site-public ::-webkit-datetime-edit-fields-wrapper{padding:0}.site-public ::-webkit-datetime-edit{padding-block:0}.site-public ::-webkit-datetime-edit-year-field{padding-block:0}.site-public ::-webkit-datetime-edit-month-field{padding-block:0}.site-public ::-webkit-datetime-edit-day-field{padding-block:0}.site-public ::-webkit-datetime-edit-hour-field{padding-block:0}.site-public ::-webkit-datetime-edit-minute-field{padding-block:0}.site-public ::-webkit-datetime-edit-second-field{padding-block:0}.site-public ::-webkit-datetime-edit-millisecond-field{padding-block:0}.site-public ::-webkit-datetime-edit-meridiem-field{padding-block:0}.site-public ::-webkit-calendar-picker-indicator{line-height:1}.site-public :-moz-ui-invalid{box-shadow:none}.site-public button, .site-public input:where([type=button], .site-public [type=reset], .site-public [type=submit]){-webkit-appearance:button;appearance:button}.site-public ::file-selector-button{-webkit-appearance:button;appearance:button}.site-public ::-webkit-inner-spin-button{height:auto}.site-public ::-webkit-outer-spin-button{height:auto}.site-public [hidden]:where(:not([hidden=until-found])){display:none!important}.site-public .sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.site-public .relative{position:relative}.site-public .start{inset-inline-start:var(--spacing)}.site-public .table{display:table}.site-public{--night:#080d13;--night-2:#16202b;--ink:#252b31;--muted:#6f747a;--blue:#55b8f3;--blue-strong:#2ca9f4;--paper:#f6f6f4;--line:#e0e3e5;--white:#fff;--radius:18px;--gutter:max(5vw, calc((100vw - 1300px) / 2))}.site-public *{box-sizing:border-box}.site-public{scroll-behavior:smooth;background:var(--night)}.site-public{color:var(--ink);background:var(--white);-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,PingFang SC,Noto Sans SC,Microsoft YaHei,sans-serif}.site-public, .site-public button{font-size:16px}.site-public a{color:inherit;text-decoration:none}.site-public button{font:inherit}.site-public img{max-width:100%;display:block}.site-public h1, .site-public h2, .site-public h3, .site-public p, .site-public figure{margin-top:0}.site-public p{line-height:1.8}.site-public section[id], .site-public main[id]{scroll-margin-top:80px}.site-public #content:focus{outline:none}.site-public .sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.site-public .skip-link{z-index:1000;color:var(--night);background:var(--blue);border-radius:8px;padding:12px 18px;font-weight:700;transition:top .2s;position:fixed;top:-80px;left:20px}.site-public .skip-link:focus{top:16px}.site-public :focus-visible{outline:3px solid var(--blue);outline-offset:4px;border-radius:4px}.site-public .site-header{z-index:100;height:72px;padding:0 var(--gutter);color:var(--white);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#080d13f2;border-bottom:1px solid #ffffff1a;grid-template-columns:auto 1fr auto;align-items:center;gap:42px;display:grid;position:fixed;inset:0 0 auto}.site-public .site-header>a:first-of-type{justify-self:start}.site-public .brand{letter-spacing:.04em;white-space:nowrap;align-items:center;gap:14px;font-size:15px;font-weight:600;display:inline-flex}.site-public .brand img{width:126px;height:auto}.site-public .brand-dark img{filter:none}.site-public .site-header nav{justify-content:center;align-items:center;gap:clamp(18px,2.2vw,36px);display:flex}.site-public .site-header nav a{color:#d7dce1;padding:25px 0 23px;font-size:16px;position:relative}.site-public .site-header nav a:after{content:"";background:var(--blue);height:2px;transition:right .25s;position:absolute;bottom:16px;left:0;right:100%}.site-public .site-header nav a:hover{color:var(--white)}.site-public .site-header nav a:hover:after{right:0}.site-public .header-cta{min-height:42px;color:var(--night);background:var(--blue);border-radius:999px;align-items:center;gap:10px;padding:0 18px;font-size:15px;font-weight:700;display:inline-flex}.site-public .menu-button{cursor:pointer;background:0 0;border:0;width:44px;height:44px;display:none}.site-public .menu-button i{background:var(--white);width:23px;height:2px;margin:6px auto;transition:transform .25s;display:block}.site-public .hero{isolation:isolate;height:min(900px,100svh);min-height:760px;padding:128px var(--gutter) 70px;color:var(--white);background:var(--night);align-items:center;display:flex;position:relative;overflow:hidden}.site-public .hero-bg{z-index:-3;object-fit:cover;object-position:center;width:100%;height:100%;animation:14s ease-in-out infinite alternate heroDrift;position:absolute;inset:0}.site-public .hero-shade{z-index:-2;background:linear-gradient(90deg,#05090ee6 0%,#070c129e 44%,#070c1214 82%),linear-gradient(#0000 50%,#080d13b8);position:absolute;inset:0}.site-public .hero-content{z-index:2;width:min(710px,67vw);position:relative}.site-public .hero-logo{width:124px;margin-bottom:44px}.site-public .hero-kicker, .site-public .eyebrow{color:var(--blue);letter-spacing:.24em;font-size:15px;font-weight:700}.site-public .hero h1{letter-spacing:-.06em;margin:18px 0 28px;font-size:clamp(58px,7vw,106px);font-weight:300;line-height:.98}.site-public .hero-inner{height:min(450px,50svh);min-height:380px;padding:80px var(--gutter) 50px}.site-public .hero-inner h1{margin:14px 0 20px;font-size:72px}.site-public .hero-inner .hero-bg{animation:none}.site-public .hero h1 em{color:var(--blue);font-style:normal;font-weight:500}.site-public .hero-lead{color:#c7d0d8;max-width:620px;margin-bottom:30px;font-size:clamp(16px,1.5vw,20px)}.site-public .hero-actions{flex-wrap:wrap;gap:12px;display:flex}.site-public .button{border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:14px;min-height:50px;padding:0 22px;font-size:14px;font-weight:700;/* ↑ 按钮字号 **14px**：老板 2026-09-17 反馈「页尾『先让一间教室，真正清晰起来』这块不如以前」。查证：字号统一到 ≥15px 那轮把 .button 从 14 抬到了 15，是这块**唯一**被动过的字体（h2 49.84px / 正文 16px / 品牌标 均未变）；已回退。⚠ 按钮不适用「避免小字」那条 —— 那条针对正文、说明、标签；按钮是大色块 + 700 字重 + 50px 高，14px 不显小。⚠ 本类同时用于**首页首屏**两个按钮（了解产品体系 / 查看场景方案），一起回退以保持一致。 */transition:transform .25s,box-shadow .25s,background .25s;display:inline-flex}.site-public .button:hover{transform:translateY(-2px)}.site-public .button-blue{color:var(--night);background:var(--blue);box-shadow:0 10px 35px #55b8f333}.site-public .button-blue:hover{background:#85cdf8;box-shadow:0 14px 38px #55b8f34d}.site-public .button-ghost{color:var(--white);background:#ffffff0a;border-color:#ffffff42}.site-public .hero-proof{color:#d8e1e7;flex-wrap:wrap;gap:12px 26px;margin-top:36px;font-size:15px;display:flex}.site-public .hero-proof span{align-items:center;gap:8px;display:flex}.site-public .hero-proof span:before{content:"";background:var(--blue);width:5px;height:5px;box-shadow:0 0 12px var(--blue);border-radius:50%}.site-public .hero-philosophy{z-index:2;left:var(--gutter);color:#ffffff70;letter-spacing:.27em;margin:0;font-size:15px;position:absolute;bottom:24px}.site-public .acoustic-dome{z-index:-1;aspect-ratio:1;width:min(70vw,900px);position:absolute;bottom:-16vw;right:-4vw}.site-public .acoustic-dome i, .site-public .contact-rings i{inset:calc(var(--i,0) * 10%);border:1px solid #55b8f338;border-radius:50%;animation:7s ease-in-out infinite ringPulse;position:absolute}.site-public .acoustic-dome i:first-child{--i:0}.site-public .acoustic-dome i:nth-child(2){--i:1;animation-delay:-1.2s}.site-public .acoustic-dome i:nth-child(3){--i:2;animation-delay:-2.4s}.site-public .acoustic-dome i:nth-child(4){--i:3;animation-delay:-3.6s}/* ⚠ 2026-09-21：政策条文案改成「引文 —— 摘自 出处」后**去掉了左侧日期胶囊**，
   子元素由 3 个变 2 个 ⇒ `auto 1fr auto` 会让 <small> 落进 1fr 之前被挤压成竖排，
   故列数改为 `1fr auto`；并给 small 加 nowrap 防挤压（≤760px 仍是单列）。 */
.site-public .policy-strip{min-height:94px;padding:18px var(--gutter);color:var(--white);background:var(--night-2);border-top:1px solid #55b8f352;grid-template-columns:1fr auto;align-items:center;gap:30px;display:grid}.site-public .policy-strip p{margin:0;font-size:15px}.site-public .policy-strip strong{color:var(--blue)}.site-public .policy-strip small{color:#9ca7af;font-size:15px;white-space:nowrap}.site-public .policy-date{color:var(--blue);font:600 24px/1 Inter,sans-serif}.site-public .section{padding:120px var(--gutter)}.site-public .section-title{grid-template-columns:88px 1fr;align-items:start;gap:34px;margin-bottom:64px;display:grid}.site-public .section-title.no-number{grid-template-columns:1fr}.site-public .section-title>span{color:var(--blue);font-size:44px;font-weight:300;line-height:1}.site-public .section-title small{color:#7b8187;letter-spacing:.24em;font-size:15px;font-weight:700}.site-public .section-title h2, .site-public .intro-copy h2, .site-public .comparison-head h2, .site-public .installation-copy h2, .site-public .company-copy h2, .site-public .contact h2{letter-spacing:-.045em;margin:10px 0 0;font-size:clamp(38px,4.6vw,68px);font-weight:300;line-height:1.12}.site-public .section-title.inverted h2{color:var(--white)}.site-public .section-title.inverted small{color:#a3aeb6}.site-public .pain{background:var(--paper)}.site-public .pain-layout{grid-template-columns:1.12fr .88fr;align-items:stretch;gap:70px;display:grid}.site-public .teacher-photo{border-radius:var(--radius);background:#d9dde0;min-height:470px;margin:0;position:relative;overflow:hidden}.site-public .teacher-photo img{object-fit:cover;width:100%;height:100%}.site-public .teacher-photo figcaption{color:var(--white);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#080d13b8;border-radius:8px;padding:12px 16px;font-size:15px;position:absolute;inset:auto 18px 18px}
.site-public .pain-subtitle{color:var(--ink);margin:16px 0 0;font-size:24px;font-weight:500}
.site-public .pain-dimensions{display:flex;gap:16px;margin-top:20px;flex-wrap:wrap}
.site-public .pain-dimensions span{background:#888;color:#fff;font-size:15px;font-weight:500;padding:10px 24px;border-radius:6px;display:inline-block}
.site-public .pain-list{display:grid}.site-public .pain-list article{border-top:1px solid #d5d8da;padding:26px 0}.site-public .pain-list article:last-child{border-bottom:1px solid #d5d8da}.site-public .pain-list span{color:var(--blue-strong);letter-spacing:.2em;font-size:15px;font-weight:700}.site-public .pain-list h3{margin:10px 0 6px;font-size:24px;font-weight:500}.site-public .pain-list p{color:var(--muted);margin:0;font-size:15px}.site-public .product-intro{background:var(--white);position:relative}.site-public .product-stage{border-radius:var(--radius);background:#e7e8e7;margin-bottom:76px;position:relative;overflow:hidden}.site-public .product-stage img{object-fit:cover;width:100%;min-height:340px}.site-public .stage-light{pointer-events:none;background:radial-gradient(circle at 58% 8%,#ffffffbf,#0000 40%);position:absolute;inset:0}.site-public .intro-copy{grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);align-items:end;gap:70px;margin-bottom:60px;display:grid}.site-public .intro-copy .eyebrow{grid-column:1/-1;margin:0 0 -46px}.site-public .intro-copy p:last-child{color:var(--muted);margin-bottom:0}.site-public .value-grid{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(5,1fr);display:grid}.site-public .value-card{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:250px;padding:28px 22px;transition:background .3s,transform .3s}.site-public .value-card:first-child{border-left:1px solid var(--line)}.site-public .value-card:hover{background:#f5f9fb;transform:translateY(-4px)}.site-public .value-card>span{color:var(--blue-strong);font-size:15px}.site-public .value-card h3{margin:42px 0 14px;font-size:22px;font-weight:500}.site-public .value-card p{color:var(--muted);font-size:15px}.site-public .comparison{background:var(--paper)}.site-public .comparison-head{grid-template-columns:.65fr 1.35fr;align-items:end;gap:80px;margin-bottom:55px;display:grid}.site-public .comparison-head .eyebrow{align-self:start;margin-top:12px}.site-public .comparison-table-wrap{border-radius:var(--radius);overflow-x:auto;box-shadow:0 12px 45px #080d130f}.site-public .comparison-table{border-collapse:collapse;text-align:left;background:var(--white);width:100%;min-width:720px}.site-public .comparison-table th, .site-public .comparison-table td{border-bottom:1px solid var(--line);padding:22px 26px;font-size:15px;line-height:1.55}.site-public .comparison-table thead th{color:#6f777e;background:#edf0f1;font-size:15px;font-weight:600}.site-public .comparison-table thead th:nth-child(2){color:var(--night);background:var(--blue)}.site-public .comparison-table tbody th{width:20%;font-weight:600}.site-public .comparison-table tbody td:nth-child(2){color:#18222b;background:#55b8f314;width:40%;font-weight:600}.site-public .comparison-table tbody td:nth-child(3){color:#7f858a}.site-public .partner-section{padding:120px var(--gutter);color:var(--white);background:var(--night);position:relative;overflow:hidden}.site-public .partner-section:after{content:"";pointer-events:none;background:radial-gradient(circle at 85% 20%,#55b8f326,#0000 26%);position:absolute;inset:0}.site-public .diagonal{background:linear-gradient(135deg,#ffffff06,#55b8f30d);width:54%;height:120%;position:absolute;top:-30%;right:-8%;transform:skew(-13deg)}.site-public .partner-section>:not(.diagonal){z-index:1;position:relative}.site-public .partner-grid{border-top:1px solid #ffffff24;grid-template-columns:repeat(4,1fr);display:grid}.site-public .partner-grid article{border-right:1px solid #ffffff24;border-bottom:1px solid #ffffff24;min-height:270px;padding:28px 26px}.site-public .partner-grid article:first-child{border-left:1px solid #ffffff24}.site-public .partner-grid span{color:var(--blue);font-size:15px}.site-public .partner-grid h3{margin:52px 0 16px;font-size:23px;font-weight:500}.site-public .partner-grid p{color:#aeb9c1;font-size:15px}.site-public .system{background:var(--white)}.site-public .signal-flow{counter-reset:flow;grid-template-columns:repeat(3,1fr);gap:36px;margin:0 0 64px;padding:0;list-style:none;display:grid}.site-public .signal-flow li{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);flex-direction:column;justify-content:center;min-height:180px;padding:28px;display:flex;position:relative}.site-public .signal-flow li:not(:last-child):after{content:"→";color:var(--blue-strong);font-size:22px;position:absolute;top:50%;right:-29px}.site-public .signal-flow span{color:var(--blue-strong);letter-spacing:.2em;font-size:15px;font-weight:700}.site-public .signal-flow b{margin:16px 0 8px;font-size:19px}.site-public .signal-flow small{color:var(--muted)}.site-public .product-grid{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.site-public .product-card{border-bottom:1px solid var(--line);min-width:0;padding-bottom:28px;display:flex;flex-direction:column}.site-public .product-image{background:#eef0f1;border-radius:12px;place-items:center;height:260px;margin-bottom:24px;display:grid;overflow:hidden}.site-public .product-image img{object-fit:contain;width:100%;height:100%;transition:transform .55s}.site-public .product-card:hover .product-image img{transform:translateY(-5px)scale(1.02)}.site-public .product-card>p{color:var(--blue-strong);letter-spacing:.08em;margin:0 0 8px;font-size:15px;font-weight:700}.site-public .product-card h3{margin:0 0 14px;font-size:21px;font-weight:500}.site-public .product-card strong{margin-bottom:10px;font-size:15px;display:block}.site-public .product-card>span{color:var(--muted);font-size:15px;line-height:1.7;flex:1}.site-public .product-more{display:inline-block;margin-top:auto;color:var(--blue-strong);font-size:15px;font-weight:600;text-decoration:none;transition:color .3s}.site-public .product-more:hover{color:var(--blue)}.site-public .product-detail-layout,.site-public .solution-detail-layout{grid-template-columns:1fr 1fr;gap:80px;align-items:start;display:grid}.site-public .product-detail-image img,.site-public .solution-detail-image img{border-radius:var(--radius);width:100%;height:auto;display:block}.site-public .product-detail-content h2,.site-public .solution-detail-content h2{font-size:36px;font-weight:400;margin:0 0 12px}.site-public .detail-subtitle{color:var(--blue-strong);font-size:15px;font-weight:600;margin:0 0 20px}.site-public .detail-description{color:var(--muted);font-size:16px;line-height:1.7;margin:0 0 36px}.site-public .detail-specs{display:flex;flex-direction:column;gap:20px}.site-public .spec-item strong{display:block;font-size:15px;font-weight:600;margin-bottom:6px}.site-public .spec-item p{color:var(--muted);font-size:15px;line-height:1.7;margin:0}.site-public .optional-product{border-radius:var(--radius);background:var(--paper);grid-template-columns:minmax(280px,.75fr) 1.25fr;align-items:center;gap:60px;margin-top:58px;display:grid;overflow:hidden}.site-public .optional-product>img{object-fit:contain;width:100%;height:280px}.site-public .optional-product>div{padding:36px 55px 36px 0}.site-public .optional-product small{color:var(--blue-strong);letter-spacing:.18em;font-weight:700}.site-public .optional-product h3{margin:12px 0;font-size:28px;font-weight:400}.site-public .optional-product p{color:var(--muted);margin:0;font-size:15px}.site-public .technology{padding:120px var(--gutter);color:var(--white);background:var(--night-2);grid-template-columns:.85fr 1.15fr;gap:70px;display:grid}.site-public .technology-visual{border-radius:var(--radius);background:radial-gradient(circle,#55b8f32e,#0000 56%),#0b1118;place-items:center;min-height:380px;display:grid;position:relative;overflow:hidden}.site-public .technology-visual img{z-index:2;object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.site-public .wave-line{border:1px solid #55b8f34d;border-radius:50%;width:120%;height:120px;position:absolute;transform:rotate(-10deg);box-shadow:0 0 30px #55b8f326}.site-public .technology-copy .section-title{margin-bottom:26px}.site-public .technology-copy>p{color:#adb8c0;max-width:600px}.site-public .metric-grid{border-top:1px solid #ffffff26;grid-column:1/-1;grid-template-columns:repeat(3,1fr);display:grid}.site-public .metric{border-bottom:1px solid #ffffff26;border-right:1px solid #ffffff26;flex-direction:column;min-height:210px;padding:32px;display:flex}.site-public .metric:nth-child(3n+1){border-left:1px solid #ffffff26}.site-public .metric strong{color:var(--blue);letter-spacing:-.05em;font-size:clamp(40px,4vw,60px);font-weight:300}.site-public .metric strong em{margin-left:4px;font-size:17px;font-style:normal}.site-public .metric b{margin-top:auto;font-size:15px}.site-public .metric span{color:#98a4ad;margin-top:6px;font-size:15px}.site-public .metric-note{color:#8d99a2;grid-column:1/-1;margin:-48px 0 0;font-size:15px}.site-public .tech-cards-grid{grid-column:1/-1;grid-template-columns:repeat(2,1fr);gap:24px;display:grid}.site-public .tech-card{background:#ffffff0d;border-radius:var(--radius);padding:32px}.site-public .tech-card h3{color:var(--white);margin:0 0 20px;font-size:20px;font-weight:600}.site-public .tech-card ul{list-style:none;padding:0;margin:0}.site-public .tech-card li{color:#c4cdd3;margin:0 0 14px;font-size:15px;line-height:1.7}.site-public .tech-card li:last-child{margin-bottom:0}.site-public .tech-card li strong{color:var(--white);font-weight:600}.site-public .solutions{background:var(--paper)}.site-public .solution-grid{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.site-public .solution-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--white);min-width:0;padding:22px;transition:transform .3s,box-shadow .3s,border-color .3s;position:relative}.site-public .solution-card:hover{border-color:var(--blue);transform:translateY(-6px);box-shadow:0 20px 45px #080d1317}.site-public .solution-number{color:var(--blue-strong);font-size:15px}.site-public .solution-image{background:#f0f1f1;border-radius:10px;place-items:center;height:190px;margin:18px -4px 22px;display:grid;overflow:hidden}.site-public .solution-image img{object-fit:contain;width:100%;height:100%}.site-public .solution-card>p{color:var(--blue-strong);margin:0;font-size:15px;font-weight:700}.site-public .solution-card h3{margin:6px 0 16px;font-size:23px;font-weight:500}.site-public .solution-card b{min-height:45px;font-size:15px;line-height:1.65;display:block}.site-public .solution-card>span:last-child{color:var(--muted);margin-top:12px;font-size:15px;line-height:1.7;display:block}.site-public .solution-more{display:inline-block;margin-top:16px;color:var(--blue-strong);font-size:15px;font-weight:600;text-decoration:none;transition:color .3s}.site-public .solution-more:hover{color:var(--blue)}.site-public .installation{background:var(--white);grid-template-columns:.7fr 1.3fr;align-items:center;gap:70px;display:grid}.site-public .installation-copy h2{font-size:clamp(34px,3.7vw,54px);line-height:1.18}.site-public .installation-copy p:last-child{color:var(--muted);margin-top:28px}.site-public .installation-image{border-radius:var(--radius);margin:0;overflow:hidden;box-shadow:0 18px 60px #080d131a;position:relative}.site-public .installation-image img{width:100%;height:auto;display:block}.site-public .image-labels{position:absolute;inset:0;pointer-events:none}.site-public .image-labels .label{position:absolute;background:#fff;color:#1a1a1a;font-size:15px;font-weight:500;padding:6px 14px;border-radius:20px;box-shadow:0 2px 8px rgba(0,0,0,0.15);white-space:nowrap;transform:translate(-50%,-50%)}.site-public .cases{padding:120px var(--gutter);color:var(--white);background:var(--night);grid-template-columns:.65fr 1.35fr;align-items:center;gap:70px;display:grid}.site-public .cases-light{padding:120px var(--gutter);color:var(--night);background:var(--white);grid-template-columns:.65fr 1.35fr;align-items:center;gap:70px;display:grid}.site-public .case-copy-light p{color:#5a6268}.site-public .case-copy-light .section-title small{color:#7b8187}.site-public .case-copy-light .section-title h2{color:var(--night)}.site-public .case-copy>p{color:#aab6bf}.site-public .case-photo{border-radius:var(--radius);margin:0;overflow:hidden}.site-public .case-photo img{width:100%;transition:transform 3s ease-out}.site-public .case-photo:hover img{transform:scale(1.025)}.site-public .service{background:var(--paper);grid-template-columns:.8fr 1.2fr;gap:70px;display:grid}.site-public .company-copy p:last-child{color:var(--muted)}.site-public .credentials{align-self:center}.site-public .credentials img{border-radius:12px;width:100%}.site-public .credentials span{color:var(--muted);text-align:right;margin-top:12px;font-size:15px;display:block}.site-public .service-grid{border-top:1px solid #d7dadc;grid-column:1/-1;grid-template-columns:repeat(4,1fr);display:grid}.site-public .service-grid article{border-right:1px solid #d7dadc;border-bottom:1px solid #d7dadc;min-height:160px;padding:26px}.site-public .service-grid article:first-child{border-left:1px solid #d7dadc}.site-public .service-grid h3{font-size:18px;font-weight:500}.site-public .service-grid p{color:var(--muted);font-size:15px}.site-public .service-note{color:var(--muted);text-align:right;grid-column:1/-1;margin:-44px 0 0;font-size:15px}.site-public .contact{isolation:isolate;min-height:440px;padding:44px var(--gutter);color:var(--white);background:var(--night);text-align:center;place-items:center;display:grid;position:relative;overflow:hidden}.site-public .contact>img{z-index:-3;object-fit:cover;opacity:.58;width:100%;height:100%;position:absolute;inset:0}.site-public .contact:after{content:"";z-index:-2;background:#080d137a;position:absolute;inset:0}.site-public .contact-content{z-index:2;flex-direction:column;align-items:center;max-width:760px;display:flex;position:relative}.site-public .contact-content>img{width:124px;margin-bottom:46px}.site-public .contact-content h2{margin-top:20px}.site-public .contact-content p{color:#c4cdd3;font-size:16px;margin-top:24px}.site-public .contact-content .button{margin-top:14px}/* ↑ 2026-09-18 老板：「所有页面最下方的『先让一间教室，真正清晰起来』部分，
   把『下载实施指南』的按键删除，留出空间把字体和『获取方案与报价』按钮重新排得松一些」。
   改动**只在 `.contact-content` 作用域内**，首页与全部内页同时生效（这批 class 本来就共用）：
     ① 白 LOGO → 标题     32 → **46px**
     ② 标题 → 正文        0  → **24px**（原来 p 的 margin 被 reset 清零，两行贴在一起）
     ③ 正文 → 按钮        28 → **46px**（原先 28px 是为"两个按钮"排的，现在页尾只剩一个主按钮，
                                          间距可以放开到跟"段间距"同一量级，节奏才松得下来）
   按钮**组内间距 14px 保持不变** —— 现在的页尾只有一个按钮，这条只作为将来再加按钮时的兜底。
   ⚠ 那条 `.contact h2{margin:10px 0 0}` 是 6 个区块**共用**的规则，所以标题的上边距
     必须靠上面新增的 `.contact-content h2{margin-top:20px}` 单独覆盖，**不能去改共用那条**。 */
.site-public .contact-content p + .button{margin-top:46px}.site-public .contact-rings{z-index:-1;aspect-ratio:1;width:min(85vw,900px);position:absolute}.site-public .contact-rings i:first-child{inset:0}.site-public .contact-rings i:nth-child(2){animation-delay:-2s;inset:14%}.site-public .contact-rings i:nth-child(3){animation-delay:-4s;inset:28%}.site-public footer{padding:72px var(--gutter) 26px;color:#d5dde2;background:var(--night);border-top:1px solid #ffffff1a;grid-template-columns:1.3fr .8fr 1fr;gap:60px;display:grid}.site-public footer>div:first-child p{color:#8e99a1;margin-top:24px;font-size:15px}.site-public .footer-nav, .site-public .footer-company{flex-direction:column;align-items:flex-start;gap:14px;font-size:15px;display:flex}.site-public .footer-nav a, .site-public .footer-company a{color:#a5b0b8}.site-public .footer-nav a:hover, .site-public .footer-company a:hover{color:var(--blue)}.site-public footer>small{color:#707c84;border-top:1px solid #ffffff1a;grid-column:1/-1;padding-top:24px;font-size:15px}.site-public .reveal{opacity:1;transform:none}.site-public .motion-ready .reveal:not(.is-visible){opacity:0;transform:translateY(22px)}.site-public .motion-ready .reveal{transition:opacity .7s,transform .7s}@keyframes ringPulse{0%,to{opacity:.35;transform:scale(.98)}50%{opacity:.8;transform:scale(1.025)}}@keyframes heroDrift{0%{transform:scale(1)}to{transform:scale(1.025)}}/* ---- 标题下的小字说明（lead）：限宽 + 优化中文断行（2026-09-18 新增）----
   老板反馈：「这两个标题下面的小字说明，都有中间奇怪的换行，这个换行是为什么？
   为了让手机端看起来没问题吗？」—— 实测 **与手机端无关**：
   中文没有词间空格，浏览器允许在任意两个汉字之间断行，断点完全由**容器宽度**决定。
   lead 原本占满整行（约 1260px ≈ 一行 60 多字），排到末尾只剩两三个字的位置，
   于是「三类设备」被拆成「三类设 / 备」这种词内断裂。
   ⇒ 两件事一起做：
     ① `max-width:42em`：正文行宽收到约 42 个汉字（排版上 45–75 字符的舒适区），
        段落自动分成两三行、每行长度接近，末行不会只剩孤字；
     ② `text-wrap:pretty`：交给浏览器优化断行点（Chrome 117+ 支持，老浏览器忽略即可）。
   ⚠ 这两个选择器一个走首页（`.sec-lead`）、一个走内页（`.i-lead`），
     所以规则放在**两者共用的** home.base.css，不能只写进 inner.css。 */
.site-public .sec-lead, .inner .i-lead, .site-public .i-lead, .inner .sec-lead{ max-width:42em; text-wrap:pretty; }

/* 「设备融入空间」左侧那段说明做**两端对齐**（2026-09-18 老板：「小字右侧并没有对齐」）。
   中文段落默认左对齐、右边缘参差；这里用 justify + inter-ideograph（按汉字/标点断行、
   不做西文那种"拉伸字距"的处理），右边缘就齐了，观感更像正式排版。 */
.site-public .installation-copy p{ text-align:justify; text-justify:inter-ideograph; }

@media (max-width:1020px){.site-public .site-header{gap:22px}.site-public .site-header nav{gap:16px}.site-public .site-header nav a{font-size:15px}.site-public .section, .site-public .partner-section, .site-public .technology, .site-public .cases, .site-public .cases-light{padding-top:90px;padding-bottom:90px}.site-public .value-grid, .site-public .product-grid, .site-public .solution-grid, .site-public .partner-grid{grid-template-columns:repeat(2,1fr)}.site-public .value-card:nth-child(odd), .site-public .partner-grid article:nth-child(odd){border-left:1px solid var(--line)}.site-public .pain-layout, .site-public .installation, .site-public .cases, .site-public .cases-light{grid-template-columns:1fr}.site-public .teacher-photo{min-height:380px}.site-public .technology{grid-template-columns:1fr}.site-public .technology-copy{grid-row:1}.site-public .cases-light{grid-template-columns:1fr}.site-public .case-copy-light{grid-row:1}.site-public .metric-grid{grid-template-columns:repeat(2,1fr)}.site-public .metric:nth-child(3n+1){border-left:0}.site-public .metric:nth-child(odd){border-left:1px solid #ffffff26}}@media (max-width:760px){.site-public{--gutter:22px}.site-public .site-header{grid-template-columns:1fr auto;height:64px}.site-public .site-header .header-cta{display:none}.site-public .site-header nav{color:var(--white);background:#0d141cfa;border:1px solid #ffffff1f;border-radius:14px;flex-direction:column;align-items:stretch;gap:0;padding:10px;display:none;position:absolute;top:70px;left:12px;right:12px;box-shadow:0 20px 50px #00000059}.site-public .site-header nav.open{display:flex}.site-public .site-header nav a{min-height:46px;padding:14px}.site-public .site-header nav a:after{display:none}.site-public .menu-button{display:block}.site-public .hero{height:100svh;min-height:720px;padding-top:102px}.site-public .hero-content{width:100%}.site-public .hero-logo{margin-bottom:34px}.site-public .hero h1{font-size:clamp(55px,17vw,82px)}.site-public .hero-shade{background:linear-gradient(90deg,#05090ee6,#070c128f),linear-gradient(#0000,#080d13cc)}.site-public .hero-philosophy{white-space:nowrap;right:20px;overflow:hidden}.site-public .policy-strip{grid-template-columns:1fr;gap:8px;padding-top:22px;padding-bottom:22px}.site-public .policy-date{font-size:18px}.site-public .section-title{grid-template-columns:48px 1fr;gap:16px;margin-bottom:45px}.site-public .section-title>span{font-size:30px}.site-public .section-title h2, .site-public .intro-copy h2, .site-public .comparison-head h2, .site-public .installation-copy h2, .site-public .company-copy h2, .site-public .contact h2{font-size:clamp(34px,10vw,50px)}.site-public .installation-copy h2{font-size:clamp(32px,8.5vw,44px)}.site-public .section, .site-public .partner-section, .site-public .technology, .site-public .cases, .site-public .cases-light{padding-top:76px;padding-bottom:76px}.site-public .pain-layout{gap:34px}.site-public .teacher-photo{min-height:280px}.site-public .product-stage{margin-bottom:50px}.site-public .product-stage img{min-height:220px}.site-public .intro-copy, .site-public .comparison-head{grid-template-columns:1fr;gap:20px}.site-public .intro-copy .eyebrow{grid-column:auto;margin:0}.site-public .value-grid, .site-public .product-grid, .site-public .solution-grid, .site-public .partner-grid{grid-template-columns:1fr}.site-public .value-card, .site-public .partner-grid article{border-left:1px solid var(--line);border-bottom:1px solid var(--line);min-height:0}.site-public .value-card h3, .site-public .partner-grid h3{margin-top:24px}.site-public .signal-flow{grid-template-columns:1fr;gap:18px}.site-public .signal-flow li{min-height:140px}.site-public .signal-flow li:not(:last-child):after{content:"↓";top:auto;bottom:-22px;right:50%;transform:translate(50%)}.site-public .product-image{height:270px}.site-public .optional-product{grid-template-columns:1fr;gap:0}.site-public .optional-product>div{padding:28px}.site-public .technology-visual{min-height:270px}.site-public .metric-grid{grid-template-columns:1fr 1fr}.site-public .metric{min-height:185px;padding:24px 16px}.site-public .metric strong{font-size:39px}.site-public .metric b{font-size:15px}.site-public .metric-note, .site-public .service-note{text-align:left;margin-top:-25px}.site-public .tech-cards-grid{grid-template-columns:1fr}.site-public .hero-inner{height:50svh;min-height:360px;padding-top:60px}.site-public .hero-inner h1{font-size:48px}.site-public .product-detail-layout,.site-public .solution-detail-layout{grid-template-columns:1fr;gap:40px}.site-public .product-detail-content h2,.site-public .solution-detail-content h2{font-size:28px}.site-public .installation{gap:38px}.site-public .service{grid-template-columns:1fr;gap:38px}.site-public .service-grid{grid-template-columns:1fr 1fr}.site-public .service-grid article:nth-child(odd){border-left:1px solid #d7dadc}.site-public .contact{min-height:380px}.site-public footer{grid-template-columns:1fr 1fr;gap:36px}.site-public footer>div:first-child, .site-public footer>small{grid-column:1/-1}}@media (max-width:430px){.site-public .hero-actions{flex-direction:column;align-items:stretch}.site-public .hero-actions .button{width:100%}.site-public .hero-proof{gap:8px 16px}.site-public .metric-grid, .site-public .service-grid{grid-template-columns:1fr}.site-public .metric, .site-public .metric:nth-child(odd), .site-public .service-grid article, .site-public .service-grid article:nth-child(odd){border-left:1px solid #ffffff26}.site-public .service-grid article, .site-public .service-grid article:nth-child(odd){border-color:#d7dadc}.site-public footer{grid-template-columns:1fr}.site-public footer>div:first-child, .site-public footer>small{grid-column:auto}}@media (prefers-reduced-motion:reduce){.site-public{scroll-behavior:auto}.site-public *, .site-public :before, .site-public :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.site-public .motion-ready .reveal:not(.is-visible){opacity:1;transform:none}}

/* ===========================================================================
   结尾 CTA「条幅化」（老板 2026-09-17）
   原：min-height 660 / padding 110 / h2 与各大标题共用 clamp(38px,4.6vw,68px)
   → 两行标题就占 148px，整体 660px 高，像一整屏而不像收尾条幅。
   现在：660→440（被内容撑到 449）、padding 110→44、标题单独收一档。
   ⚠ 标题那两条原本和 `.section-title h2` 等**共用一条选择器**，所以必须单独拆出来覆盖；
   ⚠ 窄屏那条也必须在**媒体查询里**给值 —— 文件末尾的普通规则会盖掉前面断点里的 `.contact h2`
     （本项目 §17/§18 都踩过这个坑）。
   =========================================================================== */
.site-public .contact h2 { font-size: clamp(30px, 3.5vw, 56px); }
@media (max-width: 760px) {
  .site-public .contact h2 { font-size: clamp(26px, 7.6vw, 40px); }
}
/* ---------------------------------------------------------------------------
   首页「设备融入空间」的标注：图片窄到放不下浮动标签时，改为图片下方的流式图例
   （2026-09-20）

   桌面端：4 枚标签绝对定位在图上（`.image-labels` inset:0，每枚 transform 居中）。
   问题：标签是**固定 15px** 的 DOM 文字（这正是不糊的原因），不随图缩放 ——
        图片宽度不足时，左右两枚会被图片边界裁掉、中间两枚互相压住。
   ⚠ 判据必须落在「**图片自己的宽度**」上，不能用视口宽度：
     `.installation` 到 **≤1020px 才变单列**，因此存在「视口 1021~1200px 但图片列
     只有 524~620px」的区间 —— 只看视口的媒体查询会漏掉它。
     ⇒ 用容器查询 `@container (max-width:700px)`（实测图宽 ≥700px 时放得下：
       最宽标签 133px、中心 9.9%，左边界约 +0.4%）。
   ⚠ 标签的内联样式里有 transform，内联优先于类选择器 ⇒ 必须 !important。
   ⚠ 末尾的 `@media (max-width:760px)` 是**不支持容器查询时的兜底**，两者结论一致。
   --------------------------------------------------------------------------- */
.site-public .installation-image { container-type: inline-size; }

@container (max-width: 700px) {
  .site-public .installation-image .image-labels {
    position: static; inset: auto;
    display: flex; flex-wrap: wrap; gap: 8px; justify-content: center;
    padding-top: 14px;
  }
  .site-public .installation-image .image-labels .label {
    position: static; transform: none !important;
    font-size: 13px; padding: 6px 13px;
    box-shadow: none; background: var(--paper);
  }
}

@media (max-width: 760px) {
  .site-public .installation-image .image-labels {
    position: static; inset: auto;
    display: flex; flex-wrap: wrap; gap: 8px; justify-content: center;
    padding-top: 14px;
  }
  .site-public .installation-image .image-labels .label {
    position: static; transform: none !important;
    font-size: 13px; padding: 6px 13px;
    box-shadow: none; background: var(--paper);
  }
}

/* ===========================================================================
   首页页头二级菜单（2026-09-21）
   ⚠ 背景：首页导航原先把 NAV 的 `_subs` 丢掉了，只渲染 7 个平铺 <a>，所以
     「产品中心 / 解决方案」没有下拉 —— 老板报的 bug。现在结构与内页逐字同构
     （`ul.nav-list > li.has-sub > ul.nav-sub` + `.caret`），但首页**不加载
     inner.css**（内页那份下拉样式全在那里、且带 `.inner` 前缀），故在此补一份。
   ⚠ 用 `.page-home` 限定，只作用于首页，不会与内页那份互相覆盖。
   ⚠ 顶层导航项的下划线动画（`nav a:after`）要保留；**下拉项里必须关掉**，
     否则 hover 时会有一条蓝线穿过文字（内页也踩过，同样的处理）。
   =========================================================================== */
.site-public.page-home .site-header .nav-list{display:flex;align-items:center;gap:clamp(18px,2.2vw,36px);list-style:none;margin:0;padding:0}
.site-public.page-home .site-header .nav-list>li{position:relative}
.site-public.page-home .site-header .nav-list>li>a{display:flex;align-items:center;gap:5px}
.site-public.page-home .site-header .nav-sub a:after{display:none}
.site-public.page-home .site-header .caret{width:11px;height:11px;opacity:.6;transition:transform .2s}
.site-public.page-home .site-header .has-sub:hover .caret{transform:rotate(180deg)}
.site-public.page-home .site-header .nav-sub{position:absolute;top:calc(100% + 10px);left:0;z-index:95;min-width:368px;max-height:calc(100vh - 130px);overflow-y:auto;overscroll-behavior:contain;background:#101922;border:1px solid rgba(255,255,255,.09);border-radius:14px;padding:8px;box-shadow:0 24px 56px rgba(0,0,0,.5);list-style:none;margin:0;opacity:0;visibility:hidden;transform:translateY(-6px);transition:.2s}
.site-public.page-home .site-header .has-sub:hover .nav-sub,
.site-public.page-home .site-header .has-sub:focus-within .nav-sub{opacity:1;visibility:visible;transform:none}
.site-public.page-home .site-header .nav-sub a{display:block;padding:10px 12px;border-radius:9px;font-size:15px;color:#e6ecf2;white-space:normal}
.site-public.page-home .site-header .nav-sub a small{display:block;margin-top:3px;font-size:15px;color:#7d8996;line-height:1.5}
.site-public.page-home .site-header .nav-sub a:hover{background:rgba(85,184,243,.12)}

@media (max-width:1020px){
.site-public.page-home .site-header .nav-list{gap:16px}
}

@media (max-width:900px){
.site-public.page-home .site-header .nav-list{flex-direction:column;align-items:stretch;gap:2px}
.site-public.page-home .site-header .nav-list>li>a{min-height:46px;padding:14px;font-size:15px}
.site-public.page-home .site-header .nav-sub{position:static;opacity:1;visibility:visible;transform:none;background:none;border:0;box-shadow:none;padding:0 0 8px 12px;min-width:0;max-height:none;overflow:visible}
}

/* 公安备案图标（2026-11-05）：36x40 原图，压到 18x20，与 15px 页脚文字基线对齐 */
.site-public .beian-ico{display:inline-block;width:18px;height:20px;vertical-align:-6px;margin-right:5px;border:0}
