/* The mobile reference uses its own compact shell, enabled below 768px. */
.mobile-topbar,.mobile-menu,.mobile-menu-overlay,.mobile-home,.mobile-category,.mobile-all-categories,.mobile-page-end { display:none; }
.bottom-bar .bb-home { display:none; }
.bottom-bar svg { display:none; }
@media (min-width:768px) {
  .footer { padding:15px 0; }
  .footer>.container { position:relative; }
  .footer .copyright { line-height:24px; text-align:center; }
  .footer .copyright p { margin:0; }
  .footer .mobile-all-categories { display:block; position:absolute; right:0; top:24px; font-size:12px; line-height:24px; }
  .footer .mobile-all-categories summary { cursor:pointer; color:#aaa; }
  .footer .mobile-all-categories nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:5px; position:absolute; right:0; bottom:30px; z-index:1200; width:300px; padding:12px; background:#fff; box-shadow:0 2px 12px #0002; }
  .footer .mobile-all-categories nav a { display:block; padding:4px 3px; color:#777; text-align:center; background:#f7f8fa; }
}
@media (max-width:767px) {
  body { padding-top:44px; padding-bottom:calc(66px + env(safe-area-inset-bottom)); font:16px/24px "Helvetica Neue",Helvetica,"PingFang SC",Tahoma,Arial,sans-serif; background:#f7f8fa; color:#212121; }
  .container,.box { width:100%; max-width:100%; }
  .main.container,.main.template-home,.main:not(.template-home) { width:100%; max-width:100%; margin:0; padding:0; }
  .head { overflow:visible; background:transparent; }
  .head>.head-top,.head>.head-box,.head>.head-nav { display:none; }
  .mobile-topbar { display:flex; align-items:center; position:fixed; z-index:1202; top:0; left:0; right:0; height:44px; background:#fff; padding:8px 10px; gap:10px; }
  .mobile-logo { display:block; width:80px; height:28px; flex-shrink:0; }
  .mobile-logo img { display:block; width:80px; height:28px; object-fit:contain; }
  .mobile-quick-search { display:flex; height:28px; flex:1; min-width:0; margin:0 30px 0 0; padding:0; background:#f7f8fa; border:1px solid #ededf1; border-radius:20px; overflow:hidden; }
  .mobile-quick-search input { min-width:0; flex:1; width:100%; height:26px; background:transparent; border:0; padding:0 10px; color:#333; font-size:13px; outline:0; border-radius:20px; }
  .mobile-quick-search button { display:flex; align-items:center; justify-content:center; width:30px; padding:0 6px 0 2px; background:transparent; border:0; color:#a2a2b6; }
  .mobile-quick-search svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.6; }
  .mobile-menu-toggle { position:absolute; right:10px; top:8px; width:28px; height:28px; padding:0; display:flex; align-items:center; justify-content:center; gap:3px; border:0; background:transparent; cursor:pointer; }
  .mobile-menu-toggle span { width:4px; height:4px; border-radius:50%; background:#333; }
  .mobile-menu-toggle[aria-expanded="true"] { background:#f7f8fa; border-radius:3px; }
  .mobile-menu-toggle[aria-expanded="true"] span:first-child,.mobile-menu-toggle[aria-expanded="true"] span:last-child { position:absolute; width:22px; height:1px; border-radius:0; transform:rotate(45deg); background:#aaa; }
  .mobile-menu-toggle[aria-expanded="true"] span:last-child { transform:rotate(-45deg); }
  .mobile-menu-toggle[aria-expanded="true"] span:nth-child(2) { display:none; }
  .mobile-menu-overlay:not([hidden]) { display:block; position:fixed; inset:44px 0 0; width:100%; height:calc(100% - 44px); background:#0006; border:0; padding:0; z-index:1200; }
  .mobile-menu:not([hidden]) { display:block; position:fixed; top:44px; left:0; right:0; z-index:1201; background:#f7f8fa; max-height:calc(100dvh - 44px); overflow:auto; box-shadow:0 4px 8px #0001; }
  body.mobile-menu-open { overflow:hidden; }
  .mobile-menu-search { display:flex; height:48px; margin:0; padding:8px 10px; }
  .mobile-menu-search input { flex:1; min-width:0; height:32px; margin:0; padding:0 12px; background:white; border:0; border-radius:3px 0 0 3px; font-size:14px; }
  .mobile-menu-search button { width:55px; background:#fff; color:#333; border:0; font-size:14px; border-radius:0 3px 3px 0; }
  .mobile-category-nav { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); row-gap:15px; padding:15px 0 20px; background:#fff; }
  .mobile-category-nav a { display:flex; flex-direction:column; align-items:center; gap:5px; min-width:0; color:#222; font-size:13px; line-height:20px; white-space:nowrap; }
  .mobile-nav-icon { display:flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:50%; color:white; background:#e75840; }
  .mobile-nav-icon svg { width:25px; height:25px; fill:none; stroke:currentColor; stroke-width:1.45; stroke-linecap:round; stroke-linejoin:round; }
  .mobile-category-nav a:nth-child(2) .mobile-nav-icon { background:#a759e8; }
  .mobile-category-nav a:nth-child(3) .mobile-nav-icon { background:#6189ef; }
  .mobile-category-nav a:nth-child(4) .mobile-nav-icon { background:#ed9550; }
  .mobile-category-nav a:nth-child(5) .mobile-nav-icon { background:#ce557a; }
  .mobile-category-nav a:nth-child(6) .mobile-nav-icon { background:#b757b5; }
  .mobile-category-nav a:nth-child(7) .mobile-nav-icon { background:#473c80; }
  .mobile-category-nav a:nth-child(8) .mobile-nav-icon { background:#f96d70; }
  .mobile-category-nav a:nth-child(9) .mobile-nav-icon { background:#00a1b1; }
  .mobile-category-nav a:nth-child(10) .mobile-nav-icon { background:#ffb354; }
  .mobile-menu .mobile-category-nav { padding:20px 0; row-gap:20px; background:#fff; }
  .mobile-menu-home { display:block; text-align:center; height:80px; line-height:40px; border:20px solid #f7f8fa; border-left-width:15px; border-right-width:15px; color:#fff; font-size:16px; background:#c39869; }
  .head .head-alist { margin:0; padding:0; width:100%; max-width:100%; }
  .head-alist .service-banner-hero { width:100%; height:calc(100vw / 3.5); min-height:91px; }
  .head-alist .service-banner-background { object-fit:cover; object-position:center; }
  .head-alist .banner-headline { left:18%; top:15%; display:block; height:auto; }
  .head-alist .banner-headline strong { display:block; padding:0 10px; font-size:clamp(15px,4.6vw,23px); line-height:32px; border-radius:18px; }
  .head-alist .banner-headline b,.head-alist .banner-services,.head-alist .banner-hotline span { display:none; }
  .head-alist .banner-hotline { left:22%; top:55%; right:auto; width:auto; text-align:left; }
  .head-alist .banner-hotline b { font-size:clamp(19px,5.8vw,28px); line-height:30px; background:transparent; }
  .head-alist .banner-headline,.head-alist .banner-hotline,.head-alist .banner-services { display:none; }
  .main.template-home>:not(.mobile-home) { display:none; }
  .mobile-home,.mobile-category { display:block; }
  .mobile-home,.mobile-home *,.mobile-home *::before,.mobile-home *::after { box-sizing:border-box; }
  .mobile-home-navigation { position:relative; padding:10px 10px 0; margin-top:-40px; }
  .mobile-home-navigation .mobile-category-nav { border-radius:6px 6px 0 0; padding:20px 0 25px; }
  .category-template>.mobile-category~* { display:none; }
  .mobile-breadcrumb { display:flex; align-items:center; gap:10px; height:40px; padding:0 15px; color:#a2a2b6; font-size:14px; line-height:40px; }
  .mobile-breadcrumb a { color:#a2a2b6; }
  .mobile-breadcrumb i { color:#e6454a; font-size:20px; font-style:normal; }
  .mobile-news-section { margin-top:10px; padding:15px; background:#fff; }
  .mobile-section-title { display:flex; align-items:center; justify-content:space-between; height:20px; line-height:20px; gap:10px; }
  .mobile-section-title h2 { margin:0; padding:0; color:#e6454a; font-size:18px; font-weight:700; line-height:20px; }
  .mobile-section-title>a { color:#a2a2b6; font-size:13px; white-space:nowrap; }
  .mobile-section-title i { margin-left:5px; font-style:normal; }
  .mobile-article-list { list-style:none; padding:0; margin:0; }
  .mobile-article-list li { padding:15px 0; height:110px; border-bottom:1px solid #f7f8fa; }
  .mobile-article-list li:last-child { height:95px; padding-bottom:0; border:0; }
  .mobile-article-list li>a { display:flex; height:80px; color:#222; }
  .mobile-article-copy { display:flex; flex-direction:column; justify-content:space-between; width:62%; min-width:0; padding-right:15px; }
  .mobile-article-title { height:40px; font-size:16px; line-height:20px; overflow:hidden; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
  .mobile-article-list img { display:block; width:38%; height:80px; object-fit:cover; flex-shrink:0; }
  .mobile-article-meta { display:flex; align-items:center; gap:7px; height:20px; font-size:12px; line-height:20px; color:#a2a2b6; white-space:nowrap; }
  .mobile-article-meta>span:first-child { overflow:hidden; text-overflow:ellipsis; }
  .mobile-article-meta>span:last-child { margin-left:auto; }
  .mobile-empty { margin:0; padding:12px 0 0; color:#a2a2b6; font-size:13px; line-height:20px; }
  .mobile-empty a { color:#e6454a; }
  .mobile-service-card { position:relative; margin-top:10px; padding:15px 10px; min-height:440px; background:#fff0e5; }
  .mobile-service-intro { display:flex; align-items:flex-start; }
  .mobile-service-portrait { display:block; width:25%; height:140px; flex-shrink:0; overflow:hidden; }
  .mobile-service-portrait img { display:block; width:100%; height:100%; object-fit:contain; object-position:bottom; }
  .mobile-service-copy { flex:1; min-width:0; padding-left:10px; }
  .mobile-service-card h2 { font-size:16px; font-weight:400; margin:0; color:#e6454a; line-height:24px; white-space:nowrap; overflow:hidden; }
  .mobile-service-card p { font-size:13px; color:#333; line-height:20px; margin-top:5px; }
  .mobile-service-card p>span { color:#a2a2b6; }
  .mobile-service-card p>a { font-size:20px; color:#e6454a; white-space:nowrap; }
  .mobile-service-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px 8px; padding-top:15px; margin-top:15px; border-top:1px dashed #d9ccbe; }
  .mobile-service-grid a { position:relative; display:block; min-width:0; overflow:hidden; }
  .mobile-service-grid img { display:block; width:100%; height:60px; object-fit:contain; }
  .mobile-service-grid span { display:block; line-height:20px; font-size:12px; text-align:center; background:#fff9; color:#666; }
  .mobile-service-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:15px 0 5px; }
  .mobile-service-actions a { display:block; text-align:center; background:#e6454a; color:#fff; font-size:14px; line-height:40px; }
  .mobile-service-actions a:last-child { background:#c39869; }
  .mobile-service-ad-label { position:absolute; bottom:0; right:2px; color:#a2a2b6; font-size:10px; line-height:14px; }
  .mobile-home-asks { margin:0; padding:0; list-style:none; }
  .mobile-home-asks li { padding:15px 0; border-bottom:1px solid #f7f8fa; }
  .mobile-home-asks li:last-child { padding-bottom:0; border:0; }
  .mobile-home-asks a { display:block; color:#333; font-size:15px; line-height:25px; }
  .mobile-home-ask-title { height:20px; line-height:20px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
  .mobile-home-ask-image { display:block; width:100%; height:160px; margin-top:5px; object-fit:contain; }
  .mobile-home-ask-meta { display:flex; align-items:center; gap:8px; margin-top:5px; font-size:12px; line-height:20px; color:#a2a2b6; white-space:nowrap; }
  .mobile-home-ask-meta>span:last-child { margin-left:auto; }
  .mobile-home-asks b { padding:3px 5px; margin-right:7px; background:#e6454a; color:white; font-size:12px; font-weight:400; }
  .mobile-category-pagination { padding:10px 15px; }
  .mobile-category-pagination .pagination { flex-wrap:wrap; }
  .mobile-secondary-banner { margin-top:10px; }
  .mobile-secondary-banner .service-banner-hero { width:100%; height:calc(100vw / 3.5); }
  .mobile-secondary-banner .banner-headline,.mobile-secondary-banner .banner-hotline,.mobile-secondary-banner .banner-services { display:none; }
  .mobile-search-tags { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:5px 10px; margin-top:15px; }
  .mobile-search-tags a { height:34px; line-height:34px; padding:0 10px; background:#f7f8fa; color:#666; font-size:14px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .mobile-friend-links { display:flex; flex-wrap:wrap; gap:8px 15px; margin-top:15px; }
  .mobile-friend-links a { color:#888; font-size:12px; line-height:20px; }
  .mobile-page-end { display:flex; align-items:center; justify-content:center; gap:15px; padding:20px 15px; height:64px; color:#a2a2b6; font-size:12px; }
  .mobile-page-end::before,.mobile-page-end::after { content:''; width:40px; height:1px; background:#ddd; }
  .mobile-all-categories { display:block; margin:0 0 12px; text-align:left; }
  .mobile-all-categories summary { cursor:pointer; text-align:center; color:#888; font-size:12px; line-height:28px; }
  .mobile-all-categories nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-top:10px; }
  .mobile-all-categories nav a { display:block; font-size:12px; line-height:28px; text-align:center; background:#f7f8fa; }
  .footer { margin-top:10px; padding:15px 15px 20px; text-align:center; background:#fff; color:#a2a2b6; }
  .footer>.container { width:100%; max-width:100%; }
  .footer-categories { display:none; }
  .footer .copyright { line-height:20px; font-size:11px; color:#a2a2b6; }
  .footer a { color:#a2a2b6; }
  .contact-widget { display:none; }
  .bottom-bar { position:fixed; left:0; right:0; bottom:0; z-index:1201; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); height:calc(60px + env(safe-area-inset-bottom)); padding-bottom:env(safe-area-inset-bottom); border:0; background:#e6454a; box-shadow:0 -1px 3px #0001; }
  .bottom-bar a,.bottom-bar .bb-call,.bottom-bar .bb-jump { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; padding:8px 0; color:#fff; font-size:12px; line-height:18px; border:0; background:#e6454a; }
  .bottom-bar .bb-home { display:flex; background:#e75840; color:#fff; }
  .bottom-bar .bb-call { background:#a064ef; }
  .bottom-bar .bb-jump { background:#ee9850; }
  .bottom-bar svg { display:block; width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
  .bottom-bar .bb-call svg { fill:currentColor; stroke:none; }
  a:focus-visible,button:focus-visible,input:focus-visible { outline:2px solid #e6454a; outline-offset:2px; }
}
