/* ============================================
   飞扬膜结构 - 区域分站样式表
   支持6套主题色 + 3种Hero布局，通过CSS变量切换
   ============================================ */

/* ---------- 主题变量（默认科技蓝，各页面可覆盖） ---------- */
:root {
    --c-primary: #0A6CFF;
    --c-primary-dark: #0050D8;
    --c-primary-light: #E8F1FF;
    --c-accent: #00C2A8;
    --c-hero-1: #0A6CFF;
    --c-hero-2: #062B6D;
    --c-dark: #1A1A1A;
    --c-text: #2D2D2D;
    --c-text-sub: #6B7280;
    --c-border: #E5E7EB;
    --c-bg: #FFFFFF;
    --c-bg-soft: #F9FAFB;
    --c-topbar: #0A1E3C;
    --shadow-sm: 0 1px 3px rgba(0,0,0,.06);
    --shadow-md: 0 4px 20px rgba(0,0,0,.08);
    --shadow-lg: 0 12px 40px rgba(0,0,0,.12);
    --radius: 14px;
    --radius-sm: 8px;
    --max-w: 1280px;
    --header-h: 100px;
    --topbar-h: 36px;
    --font: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif;
}

/* ---------- 重置 ---------- */
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body { font-family:var(--font); color:var(--c-text); background:var(--c-bg); line-height:1.7; font-size:16px; overflow-x:hidden; }
img { max-width:100%; display:block; }
a { color:inherit; text-decoration:none; transition:color .25s ease; }
ul,ol { list-style:none; }
button { font-family:inherit; cursor:pointer; border:none; background:none; }

/* ---------- 通用 ---------- */
.container { max-width:var(--max-w); margin:0 auto; padding:0 24px; }
.section { padding:88px 0; }
.section-soft { background:var(--c-bg-soft); }
.section-head { text-align:center; margin-bottom:48px; }
.section-head .eyebrow { display:inline-block; font-size:13px; letter-spacing:2px; color:var(--c-primary); font-weight:600; text-transform:uppercase; margin-bottom:12px; }
.section-head h2 { font-size:clamp(26px,4vw,38px); font-weight:700; color:var(--c-dark); line-height:1.3; letter-spacing:-.5px; }
.section-head .desc { margin-top:16px; font-size:16px; color:var(--c-text-sub); max-width:680px; margin-left:auto; margin-right:auto; }

/* ============================================
   头部
   ============================================ */
#header { position:fixed; top:0; left:0; right:0; z-index:1000; height:var(--header-h); display:flex; flex-direction:column; background:rgba(255,255,255,.92); backdrop-filter:saturate(180%) blur(20px); -webkit-backdrop-filter:saturate(180%) blur(20px); border-bottom:1px solid transparent; transition:background .3s ease,border-color .3s ease,box-shadow .3s ease; }
#header.scrolled { background:rgba(255,255,255,.96); border-bottom-color:var(--c-border); box-shadow:var(--shadow-sm); }
.top-bar { height:var(--topbar-h); background:var(--c-topbar); color:#fff; flex-shrink:0; }
.top-bar-inner { max-width:var(--max-w); margin:0 auto; padding:0 24px; height:100%; display:flex; align-items:center; justify-content:space-between; font-size:13px; }
.top-bar .top-company { font-weight:600; letter-spacing:.5px; }
.top-bar .top-contact { display:flex; align-items:center; gap:6px; color:rgba(255,255,255,.9); }
.top-bar .top-contact svg { color:var(--c-accent); }
.top-bar .top-contact a { color:#fff; font-weight:700; }
.top-bar .top-contact a:hover { color:var(--c-accent); }
.header-inner { flex:1; width:100%; max-width:var(--max-w); margin:0 auto; padding:0 24px; display:flex; align-items:center; justify-content:space-between; }
.logo { display:flex; align-items:center; gap:10px; flex-shrink:0; }
.logo-text { font-size:22px; font-weight:800; color:var(--c-primary); letter-spacing:-.5px; display:flex; align-items:flex-start; line-height:1; }
.logo-text .reg { font-size:11px; font-weight:700; color:var(--c-primary); margin:-2px 0 0 1px; vertical-align:super; }
.logo-sep { color:var(--c-text-sub); font-weight:300; font-size:20px; }
.logo-sub { font-size:14px; font-weight:600; color:var(--c-dark); letter-spacing:1px; }
.nav { display:flex; align-items:center; gap:4px; }
.nav a { padding:8px 16px; font-size:15px; font-weight:500; color:var(--c-text); border-radius:var(--radius-sm); transition:all .2s ease; }
.nav a:hover { color:var(--c-primary); background:var(--c-primary-light); }
.nav .nav-cta { background:var(--c-primary); color:#fff; padding:9px 22px; margin-left:10px; }
.nav .nav-cta:hover { background:var(--c-primary-dark); color:#fff; }
.menu-toggle { display:none; width:40px; height:40px; border-radius:var(--radius-sm); align-items:center; justify-content:center; flex-direction:column; gap:5px; }
.menu-toggle span { display:block; width:22px; height:2px; background:var(--c-dark); border-radius:2px; transition:all .3s ease; }
.menu-toggle.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.menu-toggle.open span:nth-child(2) { opacity:0; }
.menu-toggle.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* ============================================
   Hero - 布局A（居中）
   ============================================ */
#hero { position:relative; min-height:100vh; display:flex; align-items:center; overflow:hidden; padding-top:var(--header-h); background:linear-gradient(135deg,var(--c-hero-1),var(--c-hero-2)); }
#hero.hero-img { background:var(--c-hero-2); }
#hero.hero-img .hero-bg { position:absolute; inset:0; background:url('') center/cover no-repeat; opacity:.25; }
#hero::before { content:''; position:absolute; inset:0; background:linear-gradient(120deg,rgba(0,0,0,.55) 0%,transparent 50%,rgba(0,0,0,.35) 100%); pointer-events:none; }
#hero::after { content:''; position:absolute; bottom:0; left:0; right:0; height:100px; background:linear-gradient(to top,var(--c-bg),transparent); pointer-events:none; }
.hero-grid-bg { position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px); background-size:50px 50px; pointer-events:none; mask-image:radial-gradient(ellipse at center,#000 30%,transparent 70%); -webkit-mask-image:radial-gradient(ellipse at center,#000 30%,transparent 70%); }
.hero-content { position:relative; z-index:2; max-width:var(--max-w); margin:0 auto; padding:0 24px; width:100%; }
.hero-tag { display:inline-flex; align-items:center; gap:8px; padding:7px 18px; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.2); border-radius:100px; color:#fff; font-size:13px; font-weight:500; margin-bottom:24px; backdrop-filter:blur(10px); }
.hero-tag .dot { width:8px; height:8px; background:var(--c-accent); border-radius:50%; animation:pulse 2s ease-in-out infinite; }
@keyframes pulse { 0%,100%{opacity:1;transform:scale(1);} 50%{opacity:.5;transform:scale(1.3);} }
.hero-content h1 { font-size:clamp(32px,5.5vw,56px); font-weight:800; color:#fff; line-height:1.15; letter-spacing:-1px; margin-bottom:20px; max-width:880px; }
.hero-content h1 .accent { color:rgba(255,255,255,.7); }
.hero-sub { font-size:clamp(15px,2vw,18px); color:rgba(255,255,255,.78); max-width:620px; margin-bottom:36px; line-height:1.6; }
.hero-btns { display:flex; gap:14px; flex-wrap:wrap; }
.btn { display:inline-flex; align-items:center; gap:8px; padding:14px 30px; font-size:15px; font-weight:600; border-radius:100px; transition:all .25s ease; white-space:nowrap; }
.btn-primary { background:#fff; color:var(--c-primary); }
.btn-primary:hover { background:var(--c-primary); color:#fff; transform:translateY(-2px); box-shadow:0 8px 24px rgba(0,0,0,.2); }
.btn-ghost { background:rgba(255,255,255,.1); color:#fff; border:1px solid rgba(255,255,255,.3); }
.btn-ghost:hover { background:rgba(255,255,255,.2); }
.hero-stats { display:flex; gap:40px; margin-top:52px; flex-wrap:wrap; }
.hero-stat .num { font-size:clamp(26px,4vw,36px); font-weight:800; color:#fff; line-height:1; }
.hero-stat .num span { font-size:.6em; font-weight:600; color:rgba(255,255,255,.5); }
.hero-stat .label { font-size:13px; color:rgba(255,255,255,.6); margin-top:6px; }

/* Hero布局B（左对齐 + 右侧统计） */
#hero.layout-b .hero-content { display:grid; grid-template-columns:1.3fr 1fr; gap:48px; align-items:center; }
#hero.layout-b .hero-side { background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.15); border-radius:var(--radius); padding:36px; backdrop-filter:blur(10px); }
#hero.layout-b .hero-side h3 { color:#fff; font-size:18px; margin-bottom:20px; }
#hero.layout-b .hero-side-stat { display:flex; justify-content:space-between; padding:14px 0; border-bottom:1px solid rgba(255,255,255,.1); }
#hero.layout-b .hero-side-stat:last-child { border-bottom:none; }
#hero.layout-b .hero-side-stat .v { color:#fff; font-size:22px; font-weight:800; }
#hero.layout-b .hero-side-stat .l { color:rgba(255,255,255,.6); font-size:14px; }

/* Hero布局C（渐变网格式） */
#hero.layout-c { background:var(--c-hero-2); }
#hero.layout-c::before { background:radial-gradient(circle at 30% 40%,var(--c-hero-1) 0%,transparent 50%),radial-gradient(circle at 70% 60%,var(--c-accent) 0%,transparent 40%); opacity:.6; }
#hero.layout-c .hero-content { text-align:center; max-width:760px; }
#hero.layout-c .hero-tag { margin:0 auto 24px; }
#hero.layout-c .hero-content h1 { margin:0 auto 20px; }
#hero.layout-c .hero-sub { margin:0 auto 36px; }
#hero.layout-c .hero-btns { justify-content:center; }
#hero.layout-c .hero-stats { justify-content:center; }

/* ============================================
   公司介绍
   ============================================ */
.about-grid { display:grid; grid-template-columns:1.2fr 1fr; gap:56px; align-items:center; }
.about-text p { color:var(--c-text-sub); font-size:16px; margin-bottom:16px; line-height:1.85; }
.about-text p strong { color:var(--c-dark); font-weight:600; }
.about-tags { display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }
.about-tag { display:inline-flex; align-items:center; gap:6px; padding:8px 16px; background:var(--c-primary-light); color:var(--c-primary); border-radius:100px; font-size:14px; font-weight:600; }
.about-tag svg { width:1em; height:1em; fill:currentColor; }
.about-features { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.about-feature { padding:24px 20px; background:var(--c-bg-soft); border-radius:var(--radius); border:1px solid var(--c-border); transition:all .3s ease; }
.about-feature:hover { border-color:var(--c-primary); background:#fff; box-shadow:var(--shadow-md); transform:translateY(-4px); }
.about-feature .af-num { font-size:30px; font-weight:800; color:var(--c-primary); line-height:1; }
.about-feature .af-num span { font-size:15px; color:var(--c-text-sub); font-weight:600; }
.about-feature .af-label { font-size:13px; color:var(--c-text-sub); margin-top:8px; font-weight:500; }

/* ============================================
   产品展示
   ============================================ */
.product-tabs { display:flex; justify-content:center; flex-wrap:wrap; gap:8px; margin-bottom:40px; }
.product-tab { padding:9px 20px; font-size:14px; font-weight:600; color:var(--c-text-sub); background:#fff; border:1px solid var(--c-border); border-radius:100px; transition:all .25s ease; }
.product-tab:hover { color:var(--c-primary); border-color:var(--c-primary); }
.product-tab.active { background:var(--c-primary); color:#fff; border-color:var(--c-primary); box-shadow:0 4px 14px rgba(10,108,255,.3); }
.product-panel { display:none; }
.product-panel.active { display:block; animation:fadeIn .4s ease; }
@keyframes fadeIn { from{opacity:0;transform:translateY(12px);} to{opacity:1;transform:translateY(0);} }
.product-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.product-card { background:#fff; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-sm); border:1px solid var(--c-border); transition:all .3s ease; cursor:pointer; }
.product-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-lg); border-color:var(--c-primary); }
.product-card .pc-img { aspect-ratio:4/3; overflow:hidden; background:var(--c-bg-soft); position:relative; }
.product-card .pc-img img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.product-card:hover .pc-img img { transform:scale(1.06); }
.product-card .pc-img::after { content:'点击放大'; position:absolute; inset:0; background:rgba(10,108,255,.7); color:#fff; display:flex; align-items:center; justify-content:center; font-size:14px; font-weight:600; opacity:0; transition:opacity .25s ease; }
.product-card:hover .pc-img::after { opacity:1; }
.product-card .pc-info { padding:12px 14px; }
.product-card .pc-name { font-size:14px; font-weight:600; color:var(--c-dark); margin-bottom:3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.product-card .pc-desc { font-size:12px; color:var(--c-text-sub); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

/* ============================================
   应用领域
   ============================================ */
.app-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:18px; }
.app-card { padding:28px 18px; text-align:center; background:var(--c-bg-soft); border-radius:var(--radius); border:1px solid var(--c-border); transition:all .3s ease; }
.app-card:hover { background:#fff; border-color:var(--c-primary); box-shadow:var(--shadow-md); transform:translateY(-4px); }
.app-card .app-icon { width:48px; height:48px; margin:0 auto 14px; background:var(--c-primary-light); border-radius:12px; display:flex; align-items:center; justify-content:center; color:var(--c-primary); transition:all .3s ease; }
.app-card:hover .app-icon { background:var(--c-primary); color:#fff; transform:rotate(-5deg) scale(1.05); }
.app-card .app-icon svg { width:24px; height:24px; }
.app-card h3 { font-size:15px; font-weight:700; color:var(--c-dark); margin-bottom:5px; }
.app-card p { font-size:12px; color:var(--c-text-sub); }

/* ============================================
   工程案例
   ============================================ */
.case-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.case-card { background:#fff; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-sm); border:1px solid var(--c-border); transition:all .3s ease; }
.case-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg); }
.case-card .cc-img { aspect-ratio:16/10; overflow:hidden; background:var(--c-bg-soft); position:relative; }
.case-card .cc-img img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.case-card:hover .cc-img img { transform:scale(1.05); }
.case-card .cc-region { position:absolute; top:10px; left:10px; background:rgba(10,108,255,.92); color:#fff; font-size:12px; font-weight:600; padding:4px 11px; border-radius:100px; backdrop-filter:blur(4px); }
.case-card .cc-info { padding:14px 16px; }
.case-card .cc-title { font-size:15px; font-weight:700; color:var(--c-dark); margin-bottom:3px; }
.case-card .cc-desc { font-size:13px; color:var(--c-text-sub); }

/* ============================================
   FAQ
   ============================================ */
.faq-list { max-width:800px; margin:0 auto; }
.faq-item { border:1px solid var(--c-border); border-radius:var(--radius); margin-bottom:12px; overflow:hidden; background:#fff; transition:border-color .25s ease,box-shadow .25s ease; }
.faq-item:hover { border-color:var(--c-primary); }
.faq-item.open { border-color:var(--c-primary); box-shadow:var(--shadow-md); }
.faq-question { width:100%; text-align:left; padding:18px 22px; font-size:15px; font-weight:600; color:var(--c-dark); display:flex; align-items:center; justify-content:space-between; gap:14px; transition:color .2s ease; }
.faq-question:hover { color:var(--c-primary); }
.faq-question .q-icon { flex-shrink:0; width:22px; height:22px; border-radius:50%; background:var(--c-primary-light); color:var(--c-primary); display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:700; transition:all .3s ease; }
.faq-item.open .q-icon { background:var(--c-primary); color:#fff; transform:rotate(45deg); }
.faq-answer { max-height:0; overflow:hidden; transition:max-height .35s ease; }
.faq-answer-inner { padding:0 22px 18px; font-size:14px; color:var(--c-text-sub); line-height:1.8; }

/* ============================================
   城市分站链接
   ============================================ */
#city-links { background:var(--c-bg-soft); }
.city-links-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
.city-link { display:inline-flex; align-items:center; gap:6px; padding:9px 14px; background:#fff; border:1px solid var(--c-border); border-radius:var(--radius-sm); font-size:13px; color:var(--c-text-sub); transition:all .2s ease; }
.city-link:hover { color:var(--c-primary); border-color:var(--c-primary); background:var(--c-primary-light); transform:translateY(-2px); }
.city-link svg { width:14px; height:14px; fill:currentColor; opacity:.5; }

/* ============================================
   联系方式
   ============================================ */
#contact { background:linear-gradient(135deg,var(--c-hero-1),var(--c-hero-2)); color:#fff; overflow:hidden; position:relative; }
#contact::before { content:''; position:absolute; inset:0; background:radial-gradient(circle at 15% 20%,rgba(255,255,255,.08) 0%,transparent 35%),radial-gradient(circle at 85% 80%,rgba(0,194,168,.1) 0%,transparent 35%); pointer-events:none; }
#contact .section-head h2 { color:#fff; }
#contact .section-head .eyebrow { color:rgba(255,255,255,.6); }
#contact .section-head .desc { color:rgba(255,255,255,.7); }
.contact-grid { display:grid; grid-template-columns:1fr auto; gap:40px; align-items:start; position:relative; z-index:1; }
.contact-info { display:flex; flex-direction:column; gap:18px; }
.contact-item { display:flex; align-items:flex-start; gap:14px; padding:20px 24px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.15); border-radius:var(--radius); backdrop-filter:blur(10px); transition:all .3s ease; }
.contact-item:hover { background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.3); }
.contact-item .ci-icon { flex-shrink:0; width:42px; height:42px; background:rgba(255,255,255,.15); border-radius:12px; display:flex; align-items:center; justify-content:center; color:#fff; }
.contact-item .ci-icon svg { width:20px; height:20px; fill:currentColor; }
.contact-item .ci-label { font-size:12px; color:rgba(255,255,255,.6); margin-bottom:3px; }
.contact-item .ci-value { font-size:16px; font-weight:600; color:#fff; }
.contact-item .ci-value a { color:#fff; }
.contact-item .ci-value a:hover { color:rgba(255,255,255,.7); }
.contact-qr { text-align:center; padding:28px 24px; background:#fff; border-radius:var(--radius); color:var(--c-dark); box-shadow:var(--shadow-lg); min-width:200px; }
.contact-qr img { width:160px; height:160px; margin:0 auto 14px; border-radius:12px; }
.contact-qr .qr-title { font-size:15px; font-weight:700; color:var(--c-dark); margin-bottom:3px; }
.contact-qr .qr-sub { font-size:12px; color:var(--c-text-sub); }

/* ============================================
   底部
   ============================================ */
#footer { background:#0A0E1A; color:rgba(255,255,255,.6); padding:36px 0 30px; }
.footer-inner { text-align:center; }
.footer-inner p { font-size:13px; line-height:1.9; margin-bottom:3px; }
.footer-inner a { color:rgba(255,255,255,.75); transition:color .2s ease; }
.footer-inner a:hover { color:var(--c-primary); }
.footer-links { margin-bottom:14px; display:flex; justify-content:center; gap:18px; flex-wrap:wrap; font-size:13px; }
.footer-links a:hover { color:var(--c-primary); }

/* ============================================
   灯箱
   ============================================ */
#lightbox { position:fixed; inset:0; z-index:2000; background:rgba(0,0,0,.9); display:none; align-items:center; justify-content:center; padding:40px; opacity:0; transition:opacity .3s ease; }
#lightbox.show { display:flex; opacity:1; }
#lightbox img { max-width:90%; max-height:90vh; border-radius:12px; box-shadow:0 20px 60px rgba(0,0,0,.5); }
#lightbox .lb-close { position:absolute; top:24px; right:24px; width:44px; height:44px; background:rgba(255,255,255,.15); border-radius:50%; color:#fff; font-size:24px; display:flex; align-items:center; justify-content:center; transition:background .2s ease; }
#lightbox .lb-close:hover { background:rgba(255,255,255,.3); }
#lightbox .lb-caption { position:absolute; bottom:30px; left:50%; transform:translateX(-50%); color:#fff; font-size:14px; background:rgba(0,0,0,.5); padding:7px 18px; border-radius:100px; backdrop-filter:blur(4px); }

/* 回到顶部 */
#back-top { position:fixed; bottom:28px; right:28px; width:46px; height:46px; background:var(--c-primary); color:#fff; border-radius:50%; display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-lg); opacity:0; visibility:hidden; transform:translateY(20px); transition:all .3s ease; z-index:900; }
#back-top.show { opacity:1; visibility:visible; transform:translateY(0); }
#back-top:hover { background:var(--c-primary-dark); transform:translateY(-3px); }
#back-top svg { width:20px; height:20px; fill:currentColor; }

/* 渐入动画 */
.reveal { opacity:0; transform:translateY(28px); transition:opacity .7s ease,transform .7s ease; }
.reveal.in { opacity:1; transform:translateY(0); }

/* ============================================
   响应式
   ============================================ */
@media (max-width:1024px) {
    .about-grid { grid-template-columns:1fr; gap:36px; }
    .product-grid { grid-template-columns:repeat(3,1fr); }
    .app-grid { grid-template-columns:repeat(3,1fr); }
    .case-grid { grid-template-columns:repeat(2,1fr); }
    .city-links-grid { grid-template-columns:repeat(3,1fr); }
    .contact-grid { grid-template-columns:1fr; }
    .contact-qr { max-width:260px; margin:0 auto; }
    #hero.layout-b .hero-content { grid-template-columns:1fr; }
    #hero.layout-b .hero-side { display:none; }
}
@media (max-width:768px) {
    :root { --header-h:92px; --topbar-h:32px; }
    .section { padding:56px 0; }
    .container,.header-inner,.hero-content { padding:0 20px; }
    .section-head { margin-bottom:36px; }
    .top-bar-inner { font-size:12px; padding:0 20px; }
    .top-bar .top-company { display:none; }
    .logo-text { font-size:18px; }
    .logo-sub { font-size:12px; }
    .logo-sep { font-size:16px; }
    .nav { position:fixed; top:var(--header-h); left:0; right:0; background:#fff; flex-direction:column; padding:14px; gap:4px; border-bottom:1px solid var(--c-border); box-shadow:var(--shadow-md); transform:translateY(-120%); transition:transform .3s ease; max-height:calc(100vh - var(--header-h)); overflow-y:auto; }
    .nav.open { transform:translateY(0); }
    .nav a { width:100%; padding:12px 16px; }
    .nav .nav-cta { margin:6px 0 0; text-align:center; }
    .menu-toggle { display:flex; }
    .hero-stats { gap:24px; margin-top:36px; }
    .hero-btns .btn { flex:1; justify-content:center; padding:12px 22px; font-size:14px; }
    .product-grid { grid-template-columns:repeat(2,1fr); }
    .app-grid { grid-template-columns:repeat(2,1fr); }
    .case-grid { grid-template-columns:1fr; }
    .city-links-grid { grid-template-columns:repeat(2,1fr); }
    .about-features { grid-template-columns:1fr; }
    .faq-question { font-size:14px; padding:16px 18px; }
    .faq-answer-inner { padding:0 18px 16px; font-size:13px; }
    .contact-item { padding:16px 18px; }
    .contact-item .ci-value { font-size:14px; }
    #hero.layout-c .hero-content { text-align:left; max-width:100%; }
}
@media (max-width:420px) {
    .product-grid { grid-template-columns:1fr; }
    .app-grid { grid-template-columns:1fr; }
    .city-links-grid { grid-template-columns:1fr; }
    .hero-stats { gap:18px; }
    .hero-stat .num { font-size:24px; }
    #back-top { bottom:18px; right:18px; width:42px; height:42px; }
}
