@charset "utf-8";

/* HI BAGS v114 consolidated CSS bundle. Generated from existing stylesheet order to reduce render-blocking requests while preserving cascade. */


/* ===== assets/css/style.css ===== */


:root{
  --ink:#142033;
  --blue:#0B3F78;
  --blue2:#0b66a3;
  --muted:#65758b;
  --soft:#f4f8fb;
  --line:#dbe8f2;
  --orange:#ff8a00;
  --green:#008b70;
  --radius:22px;
}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei","Noto Sans SC",Arial,sans-serif;color:var(--ink);line-height:1.75;background:#fff}
a{color:inherit;text-decoration:none}
.container{width:min(1180px,calc(100% - 40px));margin:0 auto}
.topbar{background:#08365d;color:#dceefb;font-size:14px;padding:8px 0}
.topbar .container{display:flex;justify-content:space-between;gap:16px;align-items:center}
.header{background:#fff;position:sticky;top:0;z-index:20;border-bottom:1px solid var(--line);box-shadow:0 2px 16px rgba(10,48,90,.04)}
.header-row{display:flex;align-items:center;justify-content:space-between;padding:14px 0;gap:18px}
.brand{display:flex;align-items:center;gap:12px}
.brand img{width:48px;height:48px;object-fit:contain;border-radius:10px}
.brand-title{font-size:20px;font-weight:900;color:var(--blue)}
.brand-sub{font-size:12px;color:var(--muted)}
.nav{display:flex;gap:10px;align-items:center}
.nav a{font-weight:800;color:var(--blue);padding:10px 12px;border-radius:999px}
.nav a:hover{background:#eef7ff}
.header-contact{display:flex;align-items:center;gap:10px}
.tel-btn{background:var(--orange);color:#fff;font-weight:900;padding:10px 16px;border-radius:999px}
.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:12px 22px;font-weight:900;border:1px solid transparent}
.btn.primary{background:var(--orange);color:#fff}
.btn.secondary{background:#fff;color:var(--blue);border-color:var(--line)}
.btn.ghost{background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.4)}
.hero{position:relative;background:#052b56;overflow:hidden}
.hero-slide{display:none}
.hero-slide.active{display:block}
.hero-slide img,.hero-slide svg{width:100%;display:block;height:auto}
.hero-dots{position:absolute;left:6.5%;bottom:16%;display:flex;gap:18px;z-index:4}
.hero-dots button{width:14px;height:14px;border:0;border-radius:50%;background:rgba(255,255,255,.6);cursor:pointer}
.hero-dots button.active{background:#15a8ff}
.section{padding:72px 0}
.section.soft{background:var(--soft)}
.section-head{text-align:center;margin-bottom:36px}
.eyebrow{display:block;color:var(--green);font-weight:900;letter-spacing:.18em;font-size:13px;text-transform:uppercase;margin-bottom:8px}
h1,h2,h3{line-height:1.35;margin:0 0 14px}
.section-head h2{font-size:38px;color:var(--blue)}
.section-head p{max-width:780px;margin:0 auto;color:var(--muted)}
.issue-grid,.scene-grid,.price-grid,.why-grid,.area-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.issue-card,.scene-card,.price-card,.why-card,.area-card,.faq-list details,.contact-card,.form-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 12px 30px rgba(11,63,120,.07)}
.issue-card{padding:28px;font-size:19px;font-weight:800;color:var(--ink)}
.scene-card{padding:28px;display:flex;flex-direction:column;justify-content:space-between;min-height:220px}
.scene-card h3,.why-card h3,.area-card h3{color:var(--blue);font-size:23px}
.scene-card p,.why-card p,.area-card p{color:var(--muted)}
.scene-card a{color:var(--blue2);font-weight:900}
.price-card{padding:28px}
.price-card h3{color:var(--blue);font-size:24px}
.price-main{font-size:30px;color:var(--blue);font-weight:900;line-height:1.45;margin:10px 0}
.price-card ul{padding-left:1.2em;color:var(--muted)}
.price-note{margin-top:20px;padding:18px 22px;border-radius:16px;background:#fff7ed;color:#7c4a03;border:1px solid #ffd7a8}
.flow-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:34px;box-shadow:0 12px 30px rgba(11,63,120,.07)}
.flow-list{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.flow-item{border:1px solid var(--line);border-radius:18px;padding:20px;background:#fbfdff}
.flow-item b{display:inline-flex;width:40px;height:40px;border-radius:50%;background:var(--blue);color:#fff;align-items:center;justify-content:center;margin-bottom:12px}
.flow-item strong{display:block;color:var(--blue);font-size:17px}
.flow-item span{display:block;color:var(--muted);font-size:14px}
.why-card,.area-card{padding:24px}
.faq-list{display:grid;gap:14px}
.faq-list details{padding:18px 22px}
.faq-list summary{font-weight:900;color:var(--blue);cursor:pointer}
.faq-list p{color:var(--muted)}
.boundary{background:#fff;border:1px solid #ffd7a8;border-radius:var(--radius);padding:28px;color:#7c4a03}
.contact-final-head{text-align:center;max-width:900px}
.contact-final-head h2{font-size:38px;color:var(--blue)}
.contact-final-head p{max-width:780px;margin:0 auto;color:var(--muted)}
.contact-grid{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(440px,1.1fr);gap:28px;margin-top:34px;align-items:start}
.contact-card,.form-card{padding:32px}
.big-phone{display:block;background:#eef7ff;border-radius:16px;padding:18px;color:var(--blue);font-size:34px;font-weight:900;text-align:center;margin:18px 0}
.qr-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.qr-box{text-align:center;border:1px solid var(--line);border-radius:16px;padding:16px}
.qr-box img{width:150px;height:150px;object-fit:contain}
.contact-hour{color:var(--muted);font-size:14px;text-align:center}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form-grid .full{grid-column:1/-1}
label{display:block;font-weight:800;color:var(--ink);font-size:14px}
input,select,textarea{width:100%;margin-top:8px;border:1px solid var(--line);border-radius:12px;padding:13px 14px;font:inherit}
textarea{min-height:150px;resize:vertical}
.privacy-agree{display:flex!important;gap:10px;align-items:flex-start;background:#f8fbff;border:1px solid var(--line);border-radius:12px;padding:13px}
.privacy-agree input{width:auto;margin-top:5px}
.privacy-agree a{color:var(--blue2);text-decoration:underline}
.policy-buttons{display:flex;gap:10px;flex-wrap:wrap}
.mini-link-btn{display:inline-flex;padding:8px 12px;border:1px solid var(--line);border-radius:999px;font-size:13px;color:var(--blue);font-weight:800}
.form-error{color:#c0392b;font-weight:800}
.form-result{margin-top:20px;background:#f8fbff;border:1px solid var(--line);border-radius:16px;padding:18px}
.form-result pre{white-space:pre-wrap;font-family:inherit;color:var(--ink)}
.site-footer{background:#08365d;color:#d7e7f5;padding-top:50px}
.footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:30px}
.site-footer h3{color:#fff}
.site-footer p,.site-footer a{color:#d7e7f5}
.footer-links{display:grid;gap:8px}
.footer-bottom{text-align:center;border-top:1px solid rgba(255,255,255,.14);margin-top:36px;padding:18px 0;color:#d7e7f5;font-size:14px}
.sticky-mobile{display:none}
@media(max-width:980px){.nav{display:none}.issue-grid,.scene-grid,.price-grid,.why-grid,.area-grid{grid-template-columns:1fr 1fr}.flow-list{grid-template-columns:1fr 1fr}.contact-grid{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}}
@media(max-width:640px){.container{width:min(100% - 28px,1180px)}.topbar{display:none}.header-contact{display:none}.brand-title{font-size:17px}.issue-grid,.scene-grid,.price-grid,.why-grid,.area-grid,.flow-list,.form-grid,.qr-grid{grid-template-columns:1fr}.section{padding:54px 0}.section-head h2,.contact-final-head h2{font-size:30px}.hero-slide img,.hero-slide svg{width:160%;max-width:none;transform:translateX(-6%)}.hero-dots{left:9%;bottom:9%}.big-phone{font-size:26px}.sticky-mobile{position:fixed;left:0;right:0;bottom:0;background:#fff;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr 1fr;z-index:30}.sticky-mobile a{padding:10px;text-align:center;font-weight:900;color:var(--blue);font-size:13px}.sticky-mobile a:first-child{background:var(--orange);color:#fff}}


/* v2: use uploaded full WebP banner images, no overlay text/phone */
.hero{
  position:relative;
  background:#052b56;
  overflow:hidden;
}
.hero-slide{
  display:none;
}
.hero-slide.active{
  display:block;
}
.hero-slide img{
  display:block;
  width:100%;
  height:auto;
}
.hero-dots{
  position:absolute;
  left:6.5%;
  bottom:15.5%;
  display:flex;
  gap:18px;
  z-index:4;
}
.hero-dots button{
  width:14px;
  height:14px;
  border:0;
  border-radius:50%;
  background:rgba(255,255,255,.62);
  cursor:pointer;
  padding:0;
}
.hero-dots button.active{
  background:#15a8ff;
}
@media(max-width:640px){
  .hero-slide img{
    width:160%;
    max-width:none;
    transform:translateX(-6%);
  }
  .hero-dots{
    left:9%;
    bottom:9%;
    gap:12px;
  }
  .hero-dots button{
    width:10px;
    height:10px;
  }
}


/* v3: service-first header, real WeChat QR, optional email field */
.brand-title{
  font-size:18px;
  line-height:1.25;
}
.brand-sub{
  font-size:12px;
  color:var(--muted);
}
.qr-box img{
  background:#fff;
  border-radius:12px;
}
@media(max-width:720px){
  .brand-title{
    font-size:15px;
  }
}


/* v4: safer wording, WeChat anchor, QR visual adjustment */
.wechat-top-btn{
  background:#18b957;
  color:#fff;
  font-weight:900;
  padding:10px 16px;
  border-radius:999px;
}
.header-contact{
  gap:8px;
}
.qr-grid{
  align-items:stretch;
}
.qr-box{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  min-height:310px;
}
.qr-box h3{
  color:var(--blue);
  margin-bottom:12px;
}
.qr-box img{
  object-fit:contain;
}
.wechat-qr-box img{
  width:230px;
  height:auto;
  max-height:250px;
}
.line-qr-box img{
  width:230px;
  height:230px;
}
.contact-final-head h2{
  color:var(--blue);
}
@media(max-width:640px){
  .wechat-top-btn{
    display:none;
  }
  .qr-box{
    min-height:auto;
  }
  .wechat-qr-box img{
    width:240px;
    max-height:none;
  }
  .line-qr-box img{
    width:240px;
    height:240px;
  }
}


/* v5: trust/company, service-price merge, region SEO, better WeChat wording */
.trust-section{padding:54px 0}
.trust-card{
  display:grid;
  grid-template-columns:1.5fr .8fr;
  gap:24px;
  align-items:center;
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:30px;
  box-shadow:0 12px 30px rgba(11,63,120,.07);
}
.trust-card h2{color:var(--blue);font-size:30px}
.trust-card p{color:var(--muted)}
.company-mini{
  background:#f4f8fb;
  border-radius:18px;
  padding:22px;
  display:grid;
  gap:8px;
}
.company-mini strong{color:var(--blue);font-size:22px}
.company-mini span{color:var(--muted)}
.service-price-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
}
.service-price-card-cn{
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:24px;
  box-shadow:0 12px 30px rgba(11,63,120,.07);
  display:flex;
  flex-direction:column;
  gap:12px;
}
.service-price-card-cn h3{color:var(--blue);font-size:22px}
.service-price-card-cn p,.service-price-card-cn span{color:var(--muted)}
.cn-price{background:#eef7ff;border-radius:14px;padding:14px}
.cn-price strong{display:block;color:var(--blue);font-size:21px}
.service-price-card-cn a{margin-top:auto;color:var(--blue2);font-weight:900}
.seo-links{
  margin-top:22px;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
}
.seo-links strong{color:var(--blue);margin-right:4px}
.seo-links a{
  border:1px solid var(--line);
  background:#fff;
  color:var(--blue);
  font-weight:800;
  padding:8px 12px;
  border-radius:999px;
}
.area-page-card{padding:30px;max-width:860px}
.wechat-top-btn{min-width:106px;text-align:center}
@media(max-width:1100px){.service-price-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.trust-card,.service-price-grid{grid-template-columns:1fr}}


/* v6: SEO hub, keyword landing pages, mobile optimization */
.seo-hub-hero .section-head h1,
.seo-landing h1{
  color:var(--blue);
  font-size:40px;
}
.seo-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}
.seo-card,
.seo-landing-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:0 12px 30px rgba(11,63,120,.07);
}
.seo-card{
  padding:24px;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.seo-card h3{
  color:var(--blue);
  font-size:22px;
}
.seo-card p,
.seo-landing-card p,
.seo-landing-card li{
  color:var(--muted);
}
.seo-card a{
  color:var(--blue2);
  font-weight:900;
  margin-top:auto;
}
.keyword-tags{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.keyword-tags span{
  display:inline-flex;
  border:1px solid var(--line);
  color:var(--blue);
  background:#f7fbff;
  border-radius:999px;
  padding:6px 10px;
  font-size:13px;
  font-weight:800;
}
.seo-landing-card{
  padding:34px;
}
.seo-landing-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:22px;
  margin:24px 0;
}
.seo-landing-grid h2{
  color:var(--blue);
}
.big-tags span{
  font-size:14px;
}
.header-contact .wechat-top-btn{
  white-space:nowrap;
}
@media(max-width:1100px){
  .seo-grid{
    grid-template-columns:repeat(2,1fr);
  }
}
@media(max-width:780px){
  .topbar{
    display:none;
  }
  .header-row{
    gap:10px;
  }
  .brand img{
    width:42px;
    height:42px;
  }
  .brand-title{
    font-size:14px;
    line-height:1.25;
  }
  .brand-sub{
    font-size:11px;
  }
  .header-contact{
    display:flex;
    gap:6px;
  }
  .header-contact .wechat-top-btn{
    display:none;
  }
  .header-contact .tel-btn{
    padding:8px 10px;
    font-size:12px;
  }
  .hero-slide img{
    width:185%;
    max-width:none;
    transform:translateX(-11%);
  }
  .hero-dots{
    bottom:8%;
    left:10%;
  }
  .section{
    padding:48px 0;
  }
  .section-head h2,
  .contact-final-head h2,
  .seo-hub-hero .section-head h1,
  .seo-landing h1{
    font-size:28px;
  }
  .issue-card{
    font-size:17px;
    padding:22px;
  }
  .trust-card,
  .contact-grid,
  .footer-grid,
  .seo-grid,
  .seo-landing-grid{
    grid-template-columns:1fr;
  }
  .service-price-grid,
  .issue-grid,
  .why-grid,
  .area-grid{
    grid-template-columns:1fr;
  }
  .flow-list{
    grid-template-columns:1fr;
  }
  .form-grid{
    grid-template-columns:1fr;
  }
  .qr-grid{
    grid-template-columns:1fr;
  }
  .wechat-qr-box img,
  .line-qr-box img{
    width:min(260px,80vw);
    height:auto;
  }
  .big-phone{
    font-size:24px;
  }
  .sticky-mobile{
    display:grid;
    grid-template-columns:1fr 1fr 1fr;
  }
  body{
    padding-bottom:48px;
  }
}


/* v7: clean compact navigation and calmer header contact buttons */
.header-row{
  padding:12px 0;
}
.brand{
  flex:0 0 auto;
}
.nav{
  gap:8px;
  flex:1;
  justify-content:center;
}
.nav a{
  white-space:nowrap;
  font-size:15px;
  padding:9px 12px;
}
.vertical-contact{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:6px;
  min-width:185px;
}
.vertical-contact .wechat-top-btn,
.vertical-contact .tel-btn{
  border-radius:999px;
  padding:8px 14px;
  font-size:14px;
  line-height:1.2;
  text-align:center;
  box-shadow:none;
}
.vertical-contact .wechat-top-btn{
  background:#eef7ff;
  border:1px solid var(--line);
  color:var(--blue);
}
.vertical-contact .tel-btn{
  background:#fff;
  border:1px solid var(--line);
  color:var(--blue);
}
.trust-section{
  display:none !important;
}
@media(max-width:980px){
  .nav{
    display:none;
  }
  .vertical-contact{
    min-width:auto;
  }
}
@media(max-width:780px){
  .header-contact.vertical-contact{
    display:flex;
  }
  .vertical-contact .wechat-top-btn{
    display:none;
  }
  .vertical-contact .tel-btn{
    font-size:12px;
    padding:8px 10px;
  }
}


/* v8: align service-price cards and keyword chips */
.service-price-grid{
  align-items:stretch;
}
.service-price-card-cn{
  min-height:360px;
  display:grid;
  grid-template-rows:auto minmax(76px, auto) 128px 34px auto;
  align-content:start;
}
.service-price-card-cn h3{
  min-height:60px;
  display:flex;
  align-items:flex-start;
}
.service-price-card-cn p{
  min-height:76px;
  margin:0;
}
.cn-price{
  min-height:128px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:8px;
}
.cn-price strong{
  line-height:1.35;
  white-space:normal;
}
.service-price-card-cn > span{
  min-height:34px;
  display:block;
}
.service-price-card-cn a{
  align-self:end;
}
.seo-grid{
  align-items:stretch;
}
.seo-card{
  min-height:300px;
  display:grid;
  grid-template-rows:auto minmax(82px, auto) minmax(92px, auto) auto;
}
.seo-card h3{
  min-height:58px;
  display:flex;
  align-items:flex-start;
}
.seo-card p{
  margin:0;
}
.keyword-tags{
  align-content:flex-start;
  align-items:flex-start;
}
.keyword-tags span{
  min-height:34px;
  align-items:center;
}
.legal-section-cn{
  padding-top:0;
}
.legal-doc{
  max-width:960px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:0 12px 30px rgba(11,63,120,.07);
  padding:40px;
}
.legal-doc h2{
  color:var(--blue);
  font-size:32px;
}
.legal-doc h3{
  color:var(--blue);
  margin-top:30px;
  font-size:21px;
}
.legal-doc p,
.legal-doc li{
  color:var(--muted);
}
.legal-doc ul{
  padding-left:1.35em;
}
.legal-date{
  margin-top:28px;
  font-weight:800;
  color:var(--blue) !important;
}
@media(max-width:1100px){
  .service-price-card-cn{
    min-height:auto;
  }
}
@media(max-width:780px){
  .service-price-card-cn{
    display:flex;
    min-height:auto;
  }
  .service-price-card-cn h3,
  .service-price-card-cn p,
  .service-price-card-cn > span{
    min-height:0;
  }
  .cn-price{
    min-height:auto;
  }
  .seo-card{
    min-height:auto;
    display:flex;
  }
  .seo-card h3{
    min-height:0;
  }
  .legal-doc{
    padding:26px;
  }
}


/* v9: QR area visual normalization */
.contact-card{
  overflow:hidden;
}
.qr-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  align-items:stretch;
}
.qr-box{
  min-width:0;
  min-height:360px;
  padding:22px;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  overflow:hidden;
}
.qr-box h3{
  font-size:20px;
  line-height:1.3;
  margin:0 0 18px;
  color:var(--blue);
}
.qr-box .qr-img{
  display:block;
  width:220px !important;
  height:220px !important;
  max-width:100%;
  object-fit:contain;
  border-radius:12px;
  background:#fff;
}
.qr-box .wechat-img{
  /* WeChat source has extra white margins, slightly larger visual box keeps QR readable */
  width:240px !important;
  height:240px !important;
}
.qr-box .line-img{
  width:220px !important;
  height:220px !important;
}
.contact-card .contact-hour{
  margin-top:18px;
  text-align:center;
  color:var(--muted);
}
.big-phone{
  margin-bottom:24px;
}
@media(max-width:980px){
  .qr-grid{
    grid-template-columns:1fr 1fr;
  }
  .qr-box .qr-img{
    width:210px !important;
    height:210px !important;
  }
  .qr-box .wechat-img{
    width:230px !important;
    height:230px !important;
  }
}
@media(max-width:640px){
  .qr-grid{
    grid-template-columns:1fr;
    gap:16px;
  }
  .qr-box{
    min-height:auto;
    padding:20px;
  }
  .qr-box .qr-img,
  .qr-box .line-img{
    width:min(245px,78vw) !important;
    height:min(245px,78vw) !important;
  }
  .qr-box .wechat-img{
    width:min(265px,82vw) !important;
    height:min(265px,82vw) !important;
  }
}


/* v10: final QR size tuning and footer address alignment */
.qr-box .wechat-img{
  width:270px !important;
  height:270px !important;
}
.qr-box .line-img{
  width:190px !important;
  height:190px !important;
}
.footer-address{
  display:grid;
  grid-template-columns:auto 1fr;
  column-gap:0;
  align-items:start;
}
.footer-address .footer-label{
  white-space:nowrap;
}
@media(max-width:640px){
  .qr-box .wechat-img{
    width:min(285px,86vw) !important;
    height:min(285px,86vw) !important;
  }
  .qr-box .line-img{
    width:min(210px,68vw) !important;
    height:min(210px,68vw) !important;
  }
}


/* v11: final QR centering and size tuning */
.qr-grid{
  justify-items:center;
}
.qr-box{
  text-align:center;
  justify-content:flex-start;
}
.qr-box .qr-img{
  margin-left:auto;
  margin-right:auto;
}
.qr-box .wechat-img{
  width:310px !important;
  height:310px !important;
}
.qr-box .line-img{
  width:175px !important;
  height:175px !important;
}
@media(max-width:640px){
  .qr-box .wechat-img{
    width:min(315px,88vw) !important;
    height:min(315px,88vw) !important;
  }
  .qr-box .line-img{
    width:min(195px,62vw) !important;
    height:min(195px,62vw) !important;
  }
}


/* v12: hard override for QR visual alignment */
.qr-grid{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:24px !important;
  align-items:stretch !important;
}
.qr-box{
  min-width:0 !important;
  min-height:660px !important;
  padding:34px 28px !important;
  display:grid !important;
  grid-template-rows:64px 1fr !important;
  align-items:start !important;
  justify-items:center !important;
  text-align:center !important;
  overflow:hidden !important;
}
.qr-box h3{
  margin:0 !important;
  height:64px !important;
  line-height:1.2 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  font-size:28px !important;
  color:var(--blue) !important;
}
.qr-frame{
  width:100% !important;
  height:480px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  overflow:visible !important;
}
.qr-frame img{
  display:block !important;
  object-fit:contain !important;
  margin:0 auto !important;
  max-width:none !important;
  border-radius:0 !important;
  background:#fff !important;
}
.wechat-frame img{
  width:390px !important;
  height:390px !important;
}
.line-frame img{
  width:155px !important;
  height:155px !important;
}
.contact-card .contact-hour{
  margin-top:24px !important;
  text-align:center !important;
}
@media(max-width:980px){
  .qr-box{
    min-height:600px !important;
  }
  .qr-frame{
    height:430px !important;
  }
  .wechat-frame img{
    width:360px !important;
    height:360px !important;
  }
  .line-frame img{
    width:150px !important;
    height:150px !important;
  }
}
@media(max-width:640px){
  .qr-grid{
    grid-template-columns:1fr !important;
    gap:18px !important;
  }
  .qr-box{
    min-height:auto !important;
    grid-template-rows:52px auto !important;
    padding:24px 20px !important;
  }
  .qr-box h3{
    height:52px !important;
    font-size:24px !important;
  }
  .qr-frame{
    height:auto !important;
    min-height:300px !important;
  }
  .wechat-frame img{
    width:min(340px,86vw) !important;
    height:min(340px,86vw) !important;
  }
  .line-frame img{
    width:min(155px,46vw) !important;
    height:min(155px,46vw) !important;
  }
}


/* v13: homepage visual scene and final QR position tuning */
.visual-scene-section{
  padding:54px 0 28px;
  background:#fff;
}
.visual-scene-card{
  display:grid;
  grid-template-columns:0.86fr 1.14fr;
  gap:28px;
  align-items:center;
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:0 14px 34px rgba(11,63,120,.08);
  overflow:hidden;
}
.visual-scene-text{
  padding:38px;
}
.visual-scene-text h2{
  color:var(--blue);
  font-size:32px;
}
.visual-scene-text p{
  color:var(--muted);
}
.visual-scene-image{
  min-height:330px;
}
.visual-scene-image img{
  display:block;
  width:100%;
  height:100%;
  min-height:330px;
  object-fit:cover;
}

/* QR: keep LINE size from v12, enlarge WeChat, reduce empty top space */
.qr-box{
  min-height:560px !important;
  grid-template-rows:58px auto !important;
  padding:30px 28px !important;
}
.qr-box h3{
  height:58px !important;
}
.qr-frame{
  height:430px !important;
  align-items:flex-start !important;
  padding-top:8px !important;
}
.wechat-frame img{
  width:430px !important;
  height:430px !important;
}
.line-frame img{
  width:155px !important;
  height:155px !important;
}
@media(max-width:980px){
  .visual-scene-card{
    grid-template-columns:1fr;
  }
  .visual-scene-image{
    order:-1;
    min-height:280px;
  }
  .visual-scene-image img{
    min-height:280px;
  }
  .qr-box{
    min-height:510px !important;
  }
  .qr-frame{
    height:390px !important;
  }
  .wechat-frame img{
    width:390px !important;
    height:390px !important;
  }
  .line-frame img{
    width:155px !important;
    height:155px !important;
  }
}
@media(max-width:640px){
  .visual-scene-section{
    padding:36px 0 16px;
  }
  .visual-scene-text{
    padding:24px;
  }
  .visual-scene-text h2{
    font-size:26px;
  }
  .visual-scene-image,
  .visual-scene-image img{
    min-height:210px;
  }
  .qr-box{
    min-height:auto !important;
    grid-template-rows:52px auto !important;
  }
  .qr-frame{
    height:auto !important;
    min-height:0 !important;
    padding-top:6px !important;
  }
  .wechat-frame img{
    width:min(360px,90vw) !important;
    height:min(360px,90vw) !important;
  }
  .line-frame img{
    width:min(155px,46vw) !important;
    height:min(155px,46vw) !important;
  }
}


/* v14: move visual scene before contact; QR final size/position */
.visual-scene-section{
  padding:68px 0 22px !important;
  background:#fff !important;
}
.qr-frame{
  padding-top:28px !important; /* move QR images down about 20px from v13 */
}
.wechat-frame img{
  width:470px !important;
  height:470px !important;
}
.line-frame img{
  width:125px !important;
  height:125px !important;
}
.qr-box{
  min-height:590px !important;
}
@media(max-width:980px){
  .wechat-frame img{
    width:420px !important;
    height:420px !important;
  }
  .line-frame img{
    width:125px !important;
    height:125px !important;
  }
}
@media(max-width:640px){
  .qr-frame{
    padding-top:18px !important;
  }
  .wechat-frame img{
    width:min(380px,92vw) !important;
    height:min(380px,92vw) !important;
  }
  .line-frame img{
    width:min(125px,40vw) !important;
    height:min(125px,40vw) !important;
  }
}


/* v15: QR visual-center alignment
   WeChat source image includes extra top brand/white area, so move it up.
   LINE QR has less extra visual padding, so move it down to align perceived centers.
*/
.wechat-frame{
  align-items:flex-start !important;
  padding-top:0 !important;
  transform:translateY(-34px) !important;
}
.line-frame{
  align-items:flex-start !important;
  padding-top:0 !important;
  transform:translateY(54px) !important;
}
@media(max-width:980px){
  .wechat-frame{
    transform:translateY(-26px) !important;
  }
  .line-frame{
    transform:translateY(42px) !important;
  }
}
@media(max-width:640px){
  .wechat-frame{
    transform:translateY(-16px) !important;
  }
  .line-frame{
    transform:translateY(24px) !important;
  }
}


/* v16: repair QR clipping. Do NOT move the whole frame/card. */
.qr-grid{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:24px !important;
  align-items:stretch !important;
  justify-items:stretch !important;
}
.qr-box{
  min-height:620px !important;
  padding:40px 28px 34px !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:flex-start !important;
  text-align:center !important;
  overflow:visible !important;
}
.qr-box h3{
  display:block !important;
  height:auto !important;
  min-height:0 !important;
  margin:0 0 28px !important;
  padding:0 !important;
  line-height:1.18 !important;
  font-size:44px !important;
  color:var(--blue) !important;
  overflow:visible !important;
  transform:none !important;
}
.qr-frame{
  width:100% !important;
  height:430px !important;
  padding:0 !important;
  margin:0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  overflow:visible !important;
  transform:none !important;
}
.wechat-frame,
.line-frame{
  transform:none !important;
  padding:0 !important;
  align-items:center !important;
}
.qr-frame img{
  display:block !important;
  object-fit:contain !important;
  max-width:none !important;
  margin:0 auto !important;
  background:#fff !important;
  border-radius:0 !important;
}
.wechat-frame img{
  width:440px !important;
  height:440px !important;
  transform:translateY(-18px) !important;
}
.line-frame img{
  width:145px !important;
  height:145px !important;
  transform:translateY(52px) !important;
}
@media(max-width:980px){
  .qr-box{
    min-height:560px !important;
  }
  .qr-box h3{
    font-size:36px !important;
    margin-bottom:24px !important;
  }
  .qr-frame{
    height:390px !important;
  }
  .wechat-frame img{
    width:390px !important;
    height:390px !important;
    transform:translateY(-14px) !important;
  }
  .line-frame img{
    width:140px !important;
    height:140px !important;
    transform:translateY(42px) !important;
  }
}
@media(max-width:640px){
  .qr-grid{
    grid-template-columns:1fr !important;
    gap:18px !important;
  }
  .qr-box{
    min-height:auto !important;
    padding:28px 20px !important;
  }
  .qr-box h3{
    font-size:32px !important;
    margin-bottom:20px !important;
  }
  .qr-frame{
    height:auto !important;
    min-height:0 !important;
  }
  .wechat-frame img{
    width:min(360px,88vw) !important;
    height:min(360px,88vw) !important;
    transform:translateY(-8px) !important;
  }
  .line-frame img{
    width:min(145px,42vw) !important;
    height:min(145px,42vw) !important;
    transform:translateY(22px) !important;
  }
}


/* v17: clean rebuild of QR consultation area.
   This overrides all previous QR size/position patches. */
.qr-grid-clean{
  display:grid !important;
  grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  gap:22px !important;
  align-items:stretch !important;
  justify-items:stretch !important;
  margin-top:22px !important;
}
.qr-box-clean{
  min-width:0 !important;
  min-height:460px !important;
  height:auto !important;
  padding:30px 26px !important;
  border:1px solid var(--line) !important;
  border-radius:22px !important;
  background:#fff !important;
  box-shadow:none !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:flex-start !important;
  text-align:center !important;
  overflow:visible !important;
  transform:none !important;
}
.qr-box-clean h3{
  display:block !important;
  width:100% !important;
  height:auto !important;
  min-height:0 !important;
  margin:0 0 20px !important;
  padding:0 !important;
  font-size:32px !important;
  line-height:1.2 !important;
  letter-spacing:0 !important;
  color:var(--blue) !important;
  white-space:nowrap !important;
  overflow:visible !important;
  transform:none !important;
}
.qr-image-wrap{
  width:100% !important;
  height:310px !important;
  margin:0 !important;
  padding:0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  overflow:visible !important;
  transform:none !important;
}
.qr-image-wrap img{
  display:block !important;
  object-fit:contain !important;
  margin:0 auto !important;
  max-width:100% !important;
  background:#fff !important;
  border-radius:0 !important;
  transform:none !important;
}
.wechat-image-wrap img{
  width:330px !important;
  height:330px !important;
}
.line-image-wrap img{
  width:230px !important;
  height:230px !important;
}
.qr-box-clean p{
  margin:18px 0 0 !important;
  color:var(--muted) !important;
  font-size:15px !important;
  line-height:1.6 !important;
}
.contact-card .contact-hour{
  margin-top:20px !important;
  text-align:center !important;
  color:var(--muted) !important;
}
.big-phone{
  margin-bottom:18px !important;
}
@media(max-width:980px){
  .qr-box-clean{
    min-height:430px !important;
    padding:26px 20px !important;
  }
  .qr-box-clean h3{
    font-size:30px !important;
  }
  .qr-image-wrap{
    height:285px !important;
  }
  .wechat-image-wrap img{
    width:305px !important;
    height:305px !important;
  }
  .line-image-wrap img{
    width:215px !important;
    height:215px !important;
  }
}
@media(max-width:640px){
  .qr-grid-clean{
    grid-template-columns:1fr !important;
    gap:16px !important;
  }
  .qr-box-clean{
    min-height:auto !important;
    padding:24px 18px !important;
  }
  .qr-box-clean h3{
    font-size:28px !important;
    margin-bottom:14px !important;
  }
  .qr-image-wrap{
    height:auto !important;
    min-height:0 !important;
  }
  .wechat-image-wrap img{
    width:min(320px,84vw) !important;
    height:min(320px,84vw) !important;
  }
  .line-image-wrap img{
    width:min(220px,62vw) !important;
    height:min(220px,62vw) !important;
  }
  .qr-box-clean p{
    margin-top:12px !important;
  }
}


/* v18: only enlarge WeChat QR, keep LINE/layout unchanged */
.wechat-image-wrap img{
  width:370px !important;
  height:370px !important;
}
@media(max-width:980px){
  .wechat-image-wrap img{
    width:345px !important;
    height:345px !important;
  }
}
@media(max-width:640px){
  .wechat-image-wrap img{
    width:min(350px,88vw) !important;
    height:min(350px,88vw) !important;
  }
}

/* v19: richer content sections and conversion FAQ */
.detail-scene-grid,.price-decision-grid,.payment-note-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.detail-scene-grid article,.price-decision-card,.payment-note-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 12px 30px rgba(11,63,120,.07)}
.detail-scene-grid article{padding:24px}
.detail-scene-grid h3,.price-decision-card h2,.payment-note-card h2,.price-decision-grid h3{color:var(--blue)}
.detail-scene-grid p,.price-decision-grid p,.payment-note-grid p{color:var(--muted)}
.price-decision-card,.payment-note-card{padding:30px}
.price-decision-grid{grid-template-columns:repeat(3,1fr);margin-top:18px}
.price-decision-grid div{background:#f4f8fb;border-radius:16px;padding:18px}
.friendly-note{margin-top:18px;color:var(--blue) !important;font-weight:900;background:#eef7ff;border-radius:14px;padding:14px 16px}
.payment-note-grid p{background:#f4f8fb;border-radius:14px;padding:16px;margin:0}
.rich-seo-card .seo-detail-grid{margin-top:24px;display:grid;grid-template-columns:1fr 1fr;gap:22px}
.rich-seo-card .seo-detail-grid div{background:#f4f8fb;border-radius:16px;padding:20px}
.rich-seo-card h2{color:var(--blue)}
.rich-seo-card li{margin-bottom:8px}
@media(max-width:1100px){.detail-scene-grid,.payment-note-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:780px){.detail-scene-grid,.price-decision-grid,.payment-note-grid,.rich-seo-card .seo-detail-grid{grid-template-columns:1fr}}


/* v20: homepage content cleanup */
.issue-card h3{
  word-break:keep-all;
  line-height:1.5;
}
@media(max-width:780px){
  .issue-card h3{
    word-break:normal;
  }
}


/* v21: mobile header menu and banner responsive fix */
.mobile-menu-toggle{
  display:none;
  width:44px;
  height:44px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:5px;
  cursor:pointer;
  flex:0 0 auto;
}
.mobile-menu-toggle span{
  display:block;
  width:22px;
  height:2px;
  border-radius:99px;
  background:var(--blue);
  transition:transform .2s ease, opacity .2s ease;
}
body.nav-open .mobile-menu-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
body.nav-open .mobile-menu-toggle span:nth-child(2){opacity:0}
body.nav-open .mobile-menu-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

@media(max-width:860px){
  .site-header{
    position:sticky;
    top:0;
    z-index:100;
    background:#fff;
  }
  .site-header .container,
  .header-inner{
    position:relative;
  }
  .mobile-menu-toggle{
    display:flex !important;
    order:3;
  }
  .site-nav{
    display:none !important;
    position:absolute;
    left:18px;
    right:18px;
    top:calc(100% + 8px);
    z-index:120;
    padding:12px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:18px;
    box-shadow:0 18px 44px rgba(11,63,120,.16);
    grid-template-columns:1fr;
    gap:6px;
  }
  body.nav-open .site-nav{
    display:grid !important;
  }
  .site-nav a{
    display:block !important;
    padding:13px 14px !important;
    border-radius:12px !important;
    color:var(--blue) !important;
    font-weight:900 !important;
    background:#f4f8fb !important;
    text-align:left !important;
  }
  .header-contact{
    order:2;
    margin-left:auto;
  }
  .brand,
  .site-brand{
    min-width:0;
  }
}

/* Mobile banner: show whole horizontal banner instead of cropping text */
@media(max-width:640px){
  .hero,
  .hero-slider,
  .hero-slide,
  .hero-banner,
  .banner-slider,
  .banner-slide,
  .main-visual{
    height:auto !important;
    min-height:0 !important;
  }
  .hero img,
  .hero-slide img,
  .hero-banner img,
  .banner-slide img,
  .main-visual img,
  img.mobile-full-banner{
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    object-fit:contain !important;
    object-position:center center !important;
    display:block !important;
  }
  .hero,
  .hero-slider,
  .banner-slider,
  .main-visual{
    background:#062f5c !important;
    overflow:hidden !important;
  }
  .hero-slide,
  .banner-slide{
    background-size:contain !important;
    background-position:center center !important;
    background-repeat:no-repeat !important;
    background-color:#062f5c !important;
  }
}


/* v22: mobile compact layout, reduce excessive vertical stacking */
@media(max-width:640px){
  body{
    font-size:15px !important;
  }

  /* Header: keep logo, phone, menu in one compact row */
  .site-header{
    padding:8px 0 !important;
  }
  .site-header .container,
  .header-inner{
    display:flex !important;
    align-items:center !important;
    gap:8px !important;
    min-height:64px !important;
  }
  .site-brand,
  .brand{
    flex:1 1 auto !important;
    min-width:0 !important;
    display:flex !important;
    align-items:center !important;
    gap:8px !important;
  }
  .site-brand img,
  .brand img,
  .logo img{
    width:42px !important;
    height:auto !important;
    flex:0 0 auto !important;
  }
  .brand-text,
  .site-brand-text{
    min-width:0 !important;
  }
  .brand-title,
  .site-title,
  .brand h1,
  .site-brand h1{
    font-size:15px !important;
    line-height:1.25 !important;
    margin:0 !important;
    max-width:150px !important;
  }
  .brand-subtitle,
  .site-subtitle,
  .brand p,
  .site-brand p{
    font-size:11px !important;
    line-height:1.2 !important;
    margin:2px 0 0 !important;
  }
  .header-contact{
    flex:0 0 auto !important;
    margin-left:auto !important;
  }
  .header-contact .btn,
  .header-contact a,
  .phone-pill,
  .tel-pill{
    padding:8px 10px !important;
    font-size:12px !important;
    line-height:1 !important;
    border-radius:999px !important;
    white-space:nowrap !important;
  }
  .mobile-menu-toggle{
    width:38px !important;
    height:38px !important;
    border-radius:10px !important;
    flex:0 0 auto !important;
  }

  /* Mobile menu: compact 2-column grid instead of long vertical list */
  body.nav-open .site-nav{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:8px !important;
    left:12px !important;
    right:12px !important;
    padding:10px !important;
  }
  .site-nav a{
    text-align:center !important;
    padding:10px 8px !important;
    font-size:14px !important;
  }

  /* Banner: show complete image but avoid occupying too much height */
  .hero,
  .hero-slider,
  .hero-slide,
  .banner-slider,
  .banner-slide,
  .main-visual{
    margin:0 !important;
  }
  .hero img,
  .hero-slide img,
  .hero-banner img,
  .banner-slide img,
  .main-visual img,
  img.mobile-full-banner{
    width:100% !important;
    height:auto !important;
    object-fit:contain !important;
  }

  /* General section compression */
  .section{
    padding:36px 0 !important;
  }
  .section-head{
    margin-bottom:22px !important;
  }
  .section-head h2,
  .section h2{
    font-size:28px !important;
    line-height:1.3 !important;
  }
  .section-head p,
  .section p{
    font-size:15px !important;
    line-height:1.75 !important;
  }
  .eyebrow{
    font-size:12px !important;
    letter-spacing:.14em !important;
  }

  /* Issue cards: two columns, shorter cards */
  .issue-grid,
  .scene-grid,
  .needs-grid,
  .service-grid,
  .service-cards,
  .cards-grid{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:12px !important;
  }
  .issue-card,
  .scene-card,
  .service-card,
  .card{
    padding:18px 16px !important;
    min-height:auto !important;
    border-radius:18px !important;
  }
  .issue-card h3,
  .scene-card h3,
  .service-card h3,
  .card h3{
    font-size:18px !important;
    line-height:1.45 !important;
  }
  .issue-card p,
  .scene-card p,
  .service-card p,
  .card p{
    font-size:13px !important;
    line-height:1.65 !important;
  }

  /* Detailed scenarios: two columns; compact examples */
  .detail-scene-grid{
    grid-template-columns:1fr 1fr !important;
    gap:12px !important;
  }
  .detail-scene-grid article{
    padding:16px !important;
    border-radius:18px !important;
  }
  .detail-scene-grid h3{
    font-size:17px !important;
    line-height:1.4 !important;
  }
  .detail-scene-grid p{
    font-size:13px !important;
    line-height:1.65 !important;
  }

  /* Service/price cards: two columns where possible, smaller numbers */
  .price-grid,
  .price-card-grid,
  .service-price-grid{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:12px !important;
  }
  .price-card,
  .service-price-card{
    padding:16px !important;
    border-radius:18px !important;
  }
  .price-card h3,
  .service-price-card h3{
    font-size:18px !important;
    line-height:1.4 !important;
  }
  .price-number,
  .price-main,
  .price-card strong{
    font-size:22px !important;
    line-height:1.35 !important;
  }
  .keyword-tags,
  .big-tags{
    gap:8px !important;
  }
  .keyword-tags span,
  .big-tags span{
    font-size:12px !important;
    padding:7px 9px !important;
  }

  /* How to choose / payment blocks: two columns */
  .price-decision-grid,
  .payment-note-grid{
    grid-template-columns:1fr 1fr !important;
    gap:10px !important;
  }
  .price-decision-card,
  .payment-note-card{
    padding:20px !important;
  }
  .price-decision-grid div,
  .payment-note-grid p{
    padding:13px !important;
    border-radius:14px !important;
    font-size:13px !important;
  }

  /* Flow: compact two-column cards */
  .flow-grid,
  .process-grid,
  .steps-grid{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:12px !important;
  }
  .flow-card,
  .process-card,
  .step-card{
    padding:16px !important;
    min-height:auto !important;
  }

  /* FAQ: reduce vertical length */
  .faq-list{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
  }
  .faq-list details{
    padding:0 !important;
    border-radius:14px !important;
  }
  .faq-list summary{
    padding:14px 16px !important;
    font-size:15px !important;
    line-height:1.5 !important;
  }
  .faq-list p{
    padding:0 16px 14px !important;
    font-size:14px !important;
  }

  /* Contact: keep phone + QR compact; avoid huge single-column stretching */
  .contact-layout,
  .contact-grid{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:18px !important;
  }
  .big-phone{
    padding:18px 14px !important;
    font-size:25px !important;
    border-radius:18px !important;
  }
  .qr-grid-clean{
    grid-template-columns:1fr 1fr !important;
    gap:12px !important;
  }
  .qr-box-clean{
    min-height:330px !important;
    padding:18px 12px !important;
    border-radius:18px !important;
  }
  .qr-box-clean h3{
    font-size:21px !important;
    margin-bottom:10px !important;
    white-space:nowrap !important;
  }
  .qr-image-wrap{
    height:230px !important;
  }
  .wechat-image-wrap img{
    width:250px !important;
    height:250px !important;
  }
  .line-image-wrap img{
    width:170px !important;
    height:170px !important;
  }
  .qr-box-clean p{
    font-size:12px !important;
    line-height:1.4 !important;
    margin-top:8px !important;
  }
  .contact-hour{
    font-size:13px !important;
    margin-top:12px !important;
  }

  /* Form: two fields per row on mobile when width allows */
  .form-grid,
  .contact-form-grid{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:12px !important;
  }
  .form-grid .full,
  .contact-form-grid .full,
  textarea,
  .agreement-row,
  .form-actions{
    grid-column:1 / -1 !important;
  }
  input,
  select,
  textarea{
    min-height:44px !important;
    font-size:14px !important;
  }

  /* Footer: compact two-column layout */
  .site-footer{
    padding:34px 0 70px !important;
  }
  .footer-grid,
  .footer-main,
  .footer-cols{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:18px !important;
  }
  .footer-grid > *,
  .footer-main > *,
  .footer-cols > *{
    min-width:0 !important;
  }
  .site-footer h3,
  .site-footer h4{
    font-size:15px !important;
    margin-bottom:8px !important;
  }
  .site-footer p,
  .site-footer a,
  .site-footer li{
    font-size:12px !important;
    line-height:1.65 !important;
  }
  .footer-bottom{
    margin-top:18px !important;
    font-size:12px !important;
    text-align:center !important;
  }

  /* Bottom fixed CTA: keep but compact */
  .mobile-bottom-bar,
  .bottom-cta{
    height:54px !important;
  }
  .mobile-bottom-bar a,
  .bottom-cta a{
    font-size:13px !important;
    padding:10px 4px !important;
  }
}

/* Very narrow phones: allow critical grids to fall back to single column only when necessary */
@media(max-width:380px){
  .issue-grid,
  .scene-grid,
  .needs-grid,
  .service-grid,
  .service-cards,
  .cards-grid,
  .detail-scene-grid,
  .price-grid,
  .price-card-grid,
  .service-price-grid,
  .qr-grid-clean,
  .form-grid,
  .contact-form-grid,
  .footer-grid,
  .footer-main,
  .footer-cols{
    grid-template-columns:1fr !important;
  }
}


/* v23: mobile layout repair without affecting desktop */
@media(max-width:640px){

  /* 1. Header: prevent service name wrapping */
  .site-header{
    padding:7px 0 !important;
  }
  .site-header .container,
  .header-inner{
    display:grid !important;
    grid-template-columns:44px minmax(0, 1fr) auto 40px !important;
    align-items:center !important;
    gap:7px !important;
    min-height:64px !important;
  }
  .site-brand,
  .brand{
    display:contents !important;
  }
  .site-brand img,
  .brand img,
  .logo img{
    grid-column:1 !important;
    width:42px !important;
    height:auto !important;
    max-width:42px !important;
  }
  .brand-text,
  .site-brand-text,
  .brand-copy{
    grid-column:2 !important;
    min-width:0 !important;
  }
  .brand-title,
  .site-title,
  .brand h1,
  .site-brand h1{
    font-size:13px !important;
    line-height:1.15 !important;
    margin:0 !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    max-width:100% !important;
    word-break:keep-all !important;
  }
  .brand-subtitle,
  .site-subtitle,
  .brand p,
  .site-brand p{
    font-size:10px !important;
    line-height:1.15 !important;
    margin:3px 0 0 !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }
  .header-contact{
    grid-column:3 !important;
    margin:0 !important;
    min-width:0 !important;
  }
  .header-contact .btn,
  .header-contact a,
  .phone-pill,
  .tel-pill{
    padding:8px 9px !important;
    font-size:11px !important;
    letter-spacing:0 !important;
    max-width:132px !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }
  .mobile-menu-toggle{
    grid-column:4 !important;
    display:flex !important;
    width:38px !important;
    height:38px !important;
    padding:0 !important;
    margin:0 !important;
    z-index:130 !important;
  }

  /* 2. Make menu actually visible when opened */
  .site-nav{
    display:none !important;
    position:absolute !important;
    top:calc(100% + 8px) !important;
    left:12px !important;
    right:12px !important;
    z-index:999 !important;
    padding:10px !important;
    background:#fff !important;
    border:1px solid var(--line) !important;
    border-radius:16px !important;
    box-shadow:0 18px 44px rgba(11,63,120,.20) !important;
    grid-template-columns:1fr 1fr !important;
    gap:8px !important;
  }
  body.nav-open .site-nav{
    display:grid !important;
  }
  .site-nav a{
    display:block !important;
    padding:11px 8px !important;
    border-radius:12px !important;
    text-align:center !important;
    font-size:14px !important;
    line-height:1.3 !important;
    color:var(--blue) !important;
    background:#f4f8fb !important;
    font-weight:900 !important;
  }

  /* 6. Banner: reduce cropping but preserve readable height */
  .hero,
  .hero-slider,
  .hero-slide,
  .banner-slider,
  .banner-slide,
  .main-visual{
    height:220px !important;
    min-height:220px !important;
    max-height:220px !important;
    overflow:hidden !important;
    background:#062f5c !important;
  }
  .hero img,
  .hero-slide img,
  .hero-banner img,
  .banner-slide img,
  .main-visual img,
  img.mobile-full-banner{
    width:100% !important;
    height:220px !important;
    min-height:220px !important;
    max-height:220px !important;
    object-fit:cover !important;
    object-position:center center !important;
    display:block !important;
  }
  /* background-image banners */
  .hero-slide,
  .banner-slide{
    background-size:cover !important;
    background-position:center center !important;
    background-repeat:no-repeat !important;
  }
  .hero .dots,
  .hero-dots,
  .slider-dots,
  .banner-dots{
    bottom:12px !important;
  }

  /* 3. Flow two columns on mobile */
  .flow-grid,
  .process-grid,
  .steps-grid,
  .workflow-grid,
  .flow-steps{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:12px !important;
  }
  .flow-card,
  .process-card,
  .step-card,
  .workflow-card,
  .flow-step{
    padding:14px !important;
    min-height:auto !important;
    border-radius:16px !important;
  }
  .flow-card h3,
  .process-card h3,
  .step-card h3,
  .workflow-card h3,
  .flow-step h3{
    font-size:16px !important;
    line-height:1.35 !important;
  }
  .flow-card p,
  .process-card p,
  .step-card p,
  .workflow-card p,
  .flow-step p{
    font-size:12.5px !important;
    line-height:1.55 !important;
  }

  /* 4. Why choose us: three columns */
  .why-grid,
  .reason-grid,
  .features-grid,
  .strength-grid{
    display:grid !important;
    grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
    gap:9px !important;
  }
  .why-card,
  .reason-card,
  .feature-card,
  .strength-card{
    padding:13px 10px !important;
    border-radius:16px !important;
    min-height:auto !important;
  }
  .why-card h3,
  .reason-card h3,
  .feature-card h3,
  .strength-card h3{
    font-size:14px !important;
    line-height:1.35 !important;
  }
  .why-card p,
  .reason-card p,
  .feature-card p,
  .strength-card p{
    font-size:11.5px !important;
    line-height:1.55 !important;
  }

  /* 5. Footer: three columns, more compact */
  .site-footer{
    padding:26px 0 68px !important;
  }
  .footer-grid,
  .footer-main,
  .footer-cols{
    display:grid !important;
    grid-template-columns:1.15fr .92fr .92fr !important;
    gap:14px !important;
    align-items:start !important;
  }
  .footer-grid > *,
  .footer-main > *,
  .footer-cols > *{
    min-width:0 !important;
  }
  .site-footer h3,
  .site-footer h4{
    font-size:14px !important;
    line-height:1.35 !important;
    margin:0 0 8px !important;
  }
  .site-footer p,
  .site-footer a,
  .site-footer li{
    font-size:11.5px !important;
    line-height:1.55 !important;
    margin-bottom:5px !important;
  }
  .footer-bottom{
    margin-top:16px !important;
    padding-top:14px !important;
    font-size:11px !important;
    line-height:1.6 !important;
    text-align:center !important;
  }

  /* Other mobile cleanups found from screenshots */
  .section{
    padding:32px 0 !important;
  }
  .section-head h2,
  .section h2{
    font-size:26px !important;
    line-height:1.32 !important;
  }
  .section-head p{
    font-size:14px !important;
    line-height:1.65 !important;
  }
  .issue-card h3{
    font-size:17px !important;
    line-height:1.45 !important;
  }

  /* bottom fixed bar should not cover content */
  body{
    padding-bottom:62px !important;
  }
}

/* Larger mobile screens: slightly taller banner */
@media(min-width:430px) and (max-width:640px){
  .hero,
  .hero-slider,
  .hero-slide,
  .banner-slider,
  .banner-slide,
  .main-visual{
    height:250px !important;
    min-height:250px !important;
    max-height:250px !important;
  }
  .hero img,
  .hero-slide img,
  .hero-banner img,
  .banner-slide img,
  .main-visual img,
  img.mobile-full-banner{
    height:250px !important;
    min-height:250px !important;
    max-height:250px !important;
  }
}

/* Very narrow screens: footer and why cards drop to two columns only when necessary */
@media(max-width:370px){
  .why-grid,
  .reason-grid,
  .features-grid,
  .strength-grid,
  .footer-grid,
  .footer-main,
  .footer-cols{
    grid-template-columns:1fr 1fr !important;
  }
  .header-contact .btn,
  .header-contact a,
  .phone-pill,
  .tel-pill{
    max-width:116px !important;
    font-size:10px !important;
  }
}


/* v24: final mobile-only repair. Does not affect desktop. */
@media(max-width:640px){

  /* Header service title: no wrapping */
  .header-row{
    display:grid !important;
    grid-template-columns:42px minmax(0,1fr) auto 38px !important;
    gap:8px !important;
    align-items:center !important;
    min-height:66px !important;
  }
  .brand{
    display:contents !important;
  }
  .brand > img{
    grid-column:1 !important;
    width:42px !important;
    max-width:42px !important;
    height:auto !important;
  }
  .brand > span{
    grid-column:2 !important;
    min-width:0 !important;
  }
  .brand-title{
    display:block !important;
    max-width:100% !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    word-break:keep-all !important;
    font-size:14px !important;
    line-height:1.2 !important;
  }
  .brand-sub{
    display:block !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    font-size:10px !important;
    line-height:1.2 !important;
    margin-top:2px !important;
  }
  .header-contact{
    grid-column:3 !important;
    margin:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    min-width:0 !important;
  }
  .header-contact .wechat-top-btn{
    display:none !important;
  }
  .header-contact .tel-btn,
  .header-contact a[href^="tel"]{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    max-width:142px !important;
    padding:9px 11px !important;
    font-size:11px !important;
    line-height:1 !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    border-radius:999px !important;
  }
  .mobile-menu-toggle{
    grid-column:4 !important;
    display:flex !important;
    width:38px !important;
    height:38px !important;
    padding:0 !important;
    margin:0 !important;
    z-index:1001 !important;
  }

  /* Make hamburger menu open reliably; target both .nav and .site-nav */
  .nav.site-nav,
  nav.site-nav,
  nav.nav{
    display:none !important;
    position:absolute !important;
    top:calc(100% + 8px) !important;
    left:12px !important;
    right:12px !important;
    z-index:1000 !important;
    padding:10px !important;
    background:#fff !important;
    border:1px solid var(--line) !important;
    border-radius:16px !important;
    box-shadow:0 18px 44px rgba(11,63,120,.22) !important;
    grid-template-columns:1fr 1fr !important;
    gap:8px !important;
  }
  body.nav-open .nav.site-nav,
  body.nav-open nav.site-nav,
  body.nav-open nav.nav{
    display:grid !important;
  }
  .nav.site-nav a,
  nav.site-nav a,
  nav.nav a{
    display:block !important;
    padding:11px 8px !important;
    border-radius:12px !important;
    text-align:center !important;
    font-size:14px !important;
    line-height:1.3 !important;
    color:var(--blue) !important;
    background:#f4f8fb !important;
    font-weight:900 !important;
  }

  /* Banner: full image display without cropping; add usable height via background */
  .hero{
    height:230px !important;
    min-height:230px !important;
    max-height:230px !important;
    background:#062f5c !important;
    overflow:hidden !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
  }
  .hero-slider,
  .hero-slide{
    height:230px !important;
    min-height:230px !important;
    max-height:230px !important;
    width:100% !important;
    background:#062f5c !important;
    overflow:hidden !important;
  }
  .hero-slide img,
  .hero img,
  img.mobile-full-banner{
    width:100% !important;
    height:230px !important;
    min-height:230px !important;
    max-height:230px !important;
    object-fit:contain !important;
    object-position:center center !important;
    display:block !important;
    background:#062f5c !important;
  }
  .hero-dots,
  .slider-dots,
  .banner-dots{
    bottom:10px !important;
    z-index:5 !important;
  }

  /* Flow: actual classes are .flow-list and .flow-item */
  .flow-list{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:12px !important;
  }
  .flow-item{
    min-height:auto !important;
    padding:14px !important;
    border-radius:16px !important;
  }
  .flow-item b{
    font-size:15px !important;
  }
  .flow-item strong{
    font-size:15px !important;
    line-height:1.35 !important;
  }
  .flow-item span{
    font-size:12px !important;
    line-height:1.5 !important;
  }
  .flow-card{
    padding:18px !important;
  }

  /* Why us: actual classes are .why-grid and .why-card */
  .why-grid{
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:9px !important;
  }
  .why-card{
    min-height:auto !important;
    padding:13px 9px !important;
    border-radius:16px !important;
  }
  .why-card h3{
    font-size:13.5px !important;
    line-height:1.35 !important;
    margin-bottom:6px !important;
  }
  .why-card p{
    font-size:11px !important;
    line-height:1.5 !important;
  }

  /* Footer: actual class .footer-grid; reduce excess bottom whitespace */
  .site-footer{
    padding:24px 0 46px !important;
    margin-bottom:0 !important;
  }
  .footer-grid{
    display:grid !important;
    grid-template-columns:1.2fr .9fr .9fr !important;
    gap:14px !important;
    align-items:start !important;
  }
  .footer-grid > div{
    min-width:0 !important;
  }
  .site-footer h3{
    font-size:14px !important;
    margin:0 0 8px !important;
    line-height:1.35 !important;
  }
  .site-footer p,
  .site-footer a{
    font-size:11.5px !important;
    line-height:1.55 !important;
    margin:0 0 6px !important;
  }
  .footer-links{
    gap:4px !important;
  }
  .footer-bottom{
    margin-top:12px !important;
    padding-top:12px !important;
  }
  .footer-bottom p{
    font-size:11px !important;
    line-height:1.55 !important;
  }

  /* More issues found: bottom fixed bar was creating perceived whitespace */
  body{
    padding-bottom:50px !important;
  }
  .mobile-bottom-bar,
  .bottom-cta{
    height:50px !important;
  }
  .mobile-bottom-bar a,
  .bottom-cta a{
    font-size:12px !important;
    padding:8px 4px !important;
  }
}

/* slightly taller banner on wider phones */
@media(min-width:430px) and (max-width:640px){
  .hero,
  .hero-slider,
  .hero-slide{
    height:260px !important;
    min-height:260px !important;
    max-height:260px !important;
  }
  .hero-slide img,
  .hero img,
  img.mobile-full-banner{
    height:260px !important;
    min-height:260px !important;
    max-height:260px !important;
  }
}

/* Ultra narrow screens: footer/why fall back to two columns only if necessary */
@media(max-width:370px){
  .why-grid,
  .footer-grid{
    grid-template-columns:1fr 1fr !important;
  }
}


/* v25: mobile real-device repair; desktop unaffected */
@media(max-width:640px){

  /* Prevent horizontal overflow seen on mobile */
  html, body{
    width:100% !important;
    max-width:100% !important;
    overflow-x:hidden !important;
  }
  *{
    box-sizing:border-box !important;
  }

  /* Header fixed safe grid: logo / title / phone / menu */
  .site-header,
  header.site-header{
    width:100% !important;
    max-width:100vw !important;
    overflow:visible !important;
    padding:6px 0 !important;
  }
  .site-header .container,
  .header-row,
  .header-inner{
    width:100% !important;
    max-width:100vw !important;
    padding-left:10px !important;
    padding-right:10px !important;
    display:grid !important;
    grid-template-columns:42px minmax(0,1fr) 126px 38px !important;
    gap:6px !important;
    align-items:center !important;
    min-height:66px !important;
    overflow:visible !important;
  }
  .brand{
    display:contents !important;
  }
  .brand > img,
  .site-brand img,
  .logo img{
    grid-column:1 !important;
    width:40px !important;
    max-width:40px !important;
    height:auto !important;
  }
  .brand > span,
  .brand-copy,
  .brand-text,
  .site-brand-text{
    grid-column:2 !important;
    min-width:0 !important;
    overflow:hidden !important;
  }
  .brand-title,
  .site-title,
  .brand h1,
  .site-brand h1{
    display:block !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    max-width:100% !important;
    font-size:13px !important;
    line-height:1.18 !important;
    word-break:keep-all !important;
  }
  .brand-sub,
  .brand-subtitle,
  .site-subtitle,
  .brand p,
  .site-brand p{
    display:block !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    max-width:100% !important;
    font-size:10px !important;
    line-height:1.15 !important;
    margin-top:2px !important;
  }
  .header-contact{
    grid-column:3 !important;
    min-width:0 !important;
    max-width:126px !important;
    margin:0 !important;
    justify-self:end !important;
    display:flex !important;
    align-items:center !important;
    overflow:hidden !important;
  }
  .header-contact .wechat-top-btn{
    display:none !important;
  }
  .header-contact .tel-btn,
  .header-contact a[href^="tel"],
  .phone-pill,
  .tel-pill{
    max-width:126px !important;
    width:126px !important;
    min-width:0 !important;
    padding:8px 6px !important;
    font-size:10px !important;
    line-height:1 !important;
    letter-spacing:0 !important;
    text-align:center !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    border-radius:999px !important;
  }
  .mobile-menu-toggle{
    grid-column:4 !important;
    display:flex !important;
    width:38px !important;
    height:38px !important;
    padding:0 !important;
    margin:0 !important;
    position:relative !important;
    z-index:5001 !important;
    justify-self:end !important;
    pointer-events:auto !important;
  }

  /* Mobile menu: visible with inline onclick fallback */
  nav.nav.site-nav,
  nav.nav,
  nav.site-nav{
    display:none !important;
    position:absolute !important;
    top:calc(100% + 8px) !important;
    left:10px !important;
    right:10px !important;
    z-index:5000 !important;
    padding:10px !important;
    background:#fff !important;
    border:1px solid var(--line) !important;
    border-radius:16px !important;
    box-shadow:0 18px 44px rgba(11,63,120,.24) !important;
    grid-template-columns:1fr 1fr !important;
    gap:8px !important;
  }
  body.nav-open nav.nav.site-nav,
  body.nav-open nav.nav,
  body.nav-open nav.site-nav{
    display:grid !important;
  }
  nav.nav.site-nav a,
  nav.nav a,
  nav.site-nav a{
    display:block !important;
    padding:11px 8px !important;
    border-radius:12px !important;
    text-align:center !important;
    font-size:14px !important;
    line-height:1.3 !important;
    color:var(--blue) !important;
    background:#f4f8fb !important;
    font-weight:900 !important;
  }

  /* Banner: show full image. Use contain, taller box, no horizontal scroll */
  .hero,
  .hero-slider,
  .hero-slide{
    width:100vw !important;
    max-width:100vw !important;
    height:260px !important;
    min-height:260px !important;
    max-height:260px !important;
    overflow:hidden !important;
    background:#062f5c !important;
    margin-left:calc(50% - 50vw) !important;
    margin-right:calc(50% - 50vw) !important;
  }
  .hero-slider{
    display:block !important;
  }
  .hero-slide{
    display:none !important;
    align-items:center !important;
    justify-content:center !important;
  }
  .hero-slide.active,
  .hero-slide:first-child{
    display:flex !important;
  }
  .hero img,
  .hero-slide img,
  img.mobile-full-banner{
    display:block !important;
    width:100vw !important;
    max-width:100vw !important;
    height:260px !important;
    min-height:260px !important;
    max-height:260px !important;
    object-fit:contain !important;
    object-position:center center !important;
    background:#062f5c !important;
  }
  .hero-dots,
  .slider-dots,
  .banner-dots{
    bottom:12px !important;
    z-index:10 !important;
  }

  /* Service flow: 5 columns as requested */
  .flow-list{
    display:grid !important;
    grid-template-columns:repeat(5, minmax(0, 1fr)) !important;
    gap:6px !important;
  }
  .flow-item{
    padding:9px 5px !important;
    min-height:118px !important;
    border-radius:14px !important;
    text-align:center !important;
  }
  .flow-item b{
    font-size:13px !important;
    line-height:1 !important;
  }
  .flow-item strong{
    display:block !important;
    font-size:11px !important;
    line-height:1.25 !important;
    margin:6px 0 4px !important;
    word-break:keep-all !important;
  }
  .flow-item span{
    display:block !important;
    font-size:9.5px !important;
    line-height:1.35 !important;
  }

  /* Footer whitespace trim */
  .site-footer{
    padding-bottom:34px !important;
  }
  body{
    padding-bottom:44px !important;
  }
  .mobile-bottom-bar,
  .bottom-cta{
    height:46px !important;
  }
}

/* slightly taller on wider mobile */
@media(min-width:430px) and (max-width:640px){
  .hero,
  .hero-slider,
  .hero-slide,
  .hero img,
  .hero-slide img,
  img.mobile-full-banner{
    height:290px !important;
    min-height:290px !important;
    max-height:290px !important;
  }
}

/* very narrow phones: reduce phone pill width but keep no overflow */
@media(max-width:370px){
  .site-header .container,
  .header-row,
  .header-inner{
    grid-template-columns:40px minmax(0,1fr) 108px 36px !important;
    gap:5px !important;
  }
  .header-contact,
  .header-contact .tel-btn,
  .header-contact a[href^="tel"],
  .phone-pill,
  .tel-pill{
    width:108px !important;
    max-width:108px !important;
    font-size:9px !important;
  }
  .mobile-menu-toggle{
    width:36px !important;
    height:36px !important;
  }
}


/* v26: real mobile fixes only; desktop unaffected */
@media(max-width:640px){

  /* hard stop horizontal overflow */
  html, body{
    width:100% !important;
    max-width:100vw !important;
    overflow-x:hidden !important;
  }

  /* Header: show full phone, keep all within viewport */
  .site-header,
  header.site-header{
    width:100vw !important;
    max-width:100vw !important;
    overflow:visible !important;
  }
  .header-row,
  .header-inner,
  .site-header .container{
    width:100% !important;
    max-width:100vw !important;
    padding-left:8px !important;
    padding-right:8px !important;
    display:grid !important;
    grid-template-columns:40px minmax(0,1fr) 150px 38px !important;
    gap:5px !important;
    align-items:center !important;
    overflow:visible !important;
  }
  .brand{
    display:contents !important;
  }
  .brand > img,
  .site-brand img,
  .logo img{
    grid-column:1 !important;
    width:39px !important;
    max-width:39px !important;
    height:auto !important;
  }
  .brand > span,
  .brand-copy,
  .brand-text,
  .site-brand-text{
    grid-column:2 !important;
    min-width:0 !important;
    overflow:hidden !important;
  }
  .brand-title{
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    font-size:12.5px !important;
    line-height:1.15 !important;
    word-break:keep-all !important;
  }
  .brand-sub{
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    font-size:9.5px !important;
    line-height:1.15 !important;
  }
  .header-contact{
    grid-column:3 !important;
    width:150px !important;
    max-width:150px !important;
    min-width:150px !important;
    overflow:visible !important;
    justify-self:end !important;
    margin:0 !important;
  }
  .header-contact .wechat-top-btn{
    display:none !important;
  }
  .header-contact .tel-btn,
  .header-contact a[href^="tel"],
  a.tel-btn,
  .phone-pill,
  .tel-pill{
    width:150px !important;
    max-width:150px !important;
    min-width:150px !important;
    padding:8px 5px !important;
    font-size:10.5px !important;
    letter-spacing:0 !important;
    white-space:nowrap !important;
    overflow:visible !important;
    text-overflow:clip !important;
    text-align:center !important;
    justify-content:center !important;
    border-radius:999px !important;
  }
  .mobile-menu-toggle{
    grid-column:4 !important;
    display:flex !important;
    width:38px !important;
    height:38px !important;
    min-width:38px !important;
    z-index:9999 !important;
    justify-self:end !important;
    pointer-events:auto !important;
  }

  /* menu visible with nav-open */
  nav.nav.site-nav,
  nav.nav,
  nav.site-nav{
    display:none !important;
    position:absolute !important;
    top:calc(100% + 8px) !important;
    left:8px !important;
    right:8px !important;
    z-index:9998 !important;
    padding:10px !important;
    background:#fff !important;
    border:1px solid var(--line) !important;
    border-radius:16px !important;
    box-shadow:0 18px 44px rgba(11,63,120,.24) !important;
    grid-template-columns:1fr 1fr !important;
    gap:8px !important;
  }
  body.nav-open nav.nav.site-nav,
  body.nav-open nav.nav,
  body.nav-open nav.site-nav{
    display:grid !important;
  }

  /* Banner: full-width stage + no crop. The old slider width/translate is neutralized. */
  .hero{
    width:100vw !important;
    max-width:100vw !important;
    height:300px !important;
    min-height:300px !important;
    max-height:300px !important;
    margin-left:calc(50% - 50vw) !important;
    margin-right:calc(50% - 50vw) !important;
    overflow:hidden !important;
    background:#062f5c !important;
    position:relative !important;
  }
  .hero-slider{
    width:100vw !important;
    max-width:100vw !important;
    height:300px !important;
    min-height:300px !important;
    max-height:300px !important;
    display:block !important;
    transform:none !important;
    translate:none !important;
    overflow:hidden !important;
    background:#062f5c !important;
  }
  .hero-slide{
    width:100vw !important;
    max-width:100vw !important;
    height:300px !important;
    min-height:300px !important;
    max-height:300px !important;
    display:none !important;
    overflow:hidden !important;
    background:#062f5c !important;
    position:absolute !important;
    inset:0 !important;
    transform:none !important;
    translate:none !important;
  }
  .hero-slide.active,
  .hero-slide[aria-hidden="false"],
  .hero-slide:first-child{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
  }
  .hero-slide img,
  .hero img,
  img.mobile-hero-img,
  img.mobile-full-banner{
    width:100vw !important;
    max-width:100vw !important;
    height:300px !important;
    min-height:300px !important;
    max-height:300px !important;
    object-fit:contain !important;
    object-position:center center !important;
    display:block !important;
    background:#062f5c !important;
  }
  .hero-dots,
  .slider-dots,
  .banner-dots{
    position:absolute !important;
    left:0 !important;
    right:0 !important;
    bottom:12px !important;
    z-index:15 !important;
  }

  /* Flow: 5 side-by-side columns. Cover all possible actual class names */
  .flow-list,
  .flow-grid,
  .steps-grid,
  .process-grid,
  .workflow-grid,
  .flow-steps{
    display:grid !important;
    grid-template-columns:repeat(5, minmax(0, 1fr)) !important;
    gap:5px !important;
  }
  .flow-item,
  .flow-card,
  .step-card,
  .process-card,
  .workflow-card,
  .flow-step{
    min-height:108px !important;
    padding:8px 4px !important;
    border-radius:13px !important;
    text-align:center !important;
  }
  .flow-item b,
  .flow-card b,
  .step-card b{
    font-size:12px !important;
  }
  .flow-item strong,
  .flow-card strong,
  .step-card strong,
  .flow-item h3,
  .flow-card h3,
  .step-card h3{
    font-size:10.5px !important;
    line-height:1.25 !important;
    margin:5px 0 3px !important;
  }
  .flow-item span,
  .flow-card span,
  .step-card span,
  .flow-item p,
  .flow-card p,
  .step-card p{
    font-size:9px !important;
    line-height:1.25 !important;
  }

  /* Service area: 3 columns */
  .area-grid,
  .service-area-grid,
  .region-grid,
  .location-grid,
  .coverage-grid,
  .area-list{
    display:grid !important;
    grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
    gap:8px !important;
  }
  .area-card,
  .service-area-card,
  .region-card,
  .location-card,
  .coverage-card,
  .area-item{
    padding:12px 8px !important;
    border-radius:14px !important;
    min-height:auto !important;
  }
  .area-card h3,
  .service-area-card h3,
  .region-card h3,
  .location-card h3,
  .coverage-card h3,
  .area-item h3{
    font-size:13px !important;
    line-height:1.35 !important;
    margin-bottom:4px !important;
  }
  .area-card p,
  .service-area-card p,
  .region-card p,
  .location-card p,
  .coverage-card p,
  .area-item p{
    font-size:10.5px !important;
    line-height:1.45 !important;
  }
}

/* wider mobile gets taller banner */
@media(min-width:430px) and (max-width:640px){
  .hero,
  .hero-slider,
  .hero-slide,
  .hero-slide img,
  .hero img,
  img.mobile-hero-img,
  img.mobile-full-banner{
    height:330px !important;
    min-height:330px !important;
    max-height:330px !important;
  }
}

/* very narrow phones: keep header usable */
@media(max-width:370px){
  .header-row,
  .header-inner,
  .site-header .container{
    grid-template-columns:38px minmax(0,1fr) 135px 36px !important;
  }
  .header-contact,
  .header-contact .tel-btn,
  .header-contact a[href^="tel"],
  a.tel-btn,
  .phone-pill,
  .tel-pill{
    width:135px !important;
    max-width:135px !important;
    min-width:135px !important;
    font-size:9.4px !important;
  }
}


/* v27: verified mobile structure fix, desktop unaffected */
.mobile-nav-checkbox{display:none!important;}
@media(max-width:640px){
  html,body{width:100%!important;max-width:100vw!important;overflow-x:hidden!important;}
  .header{width:100vw!important;max-width:100vw!important;overflow:visible!important;}
  .header-row{width:100%!important;max-width:100vw!important;padding:8px 8px!important;display:grid!important;grid-template-columns:40px minmax(0,1fr) 124px 38px!important;gap:5px!important;align-items:center!important;min-height:66px!important;overflow:visible!important;}
  .brand{display:contents!important;}
  .brand>img{grid-column:1!important;width:39px!important;height:auto!important;max-width:39px!important;}
  .brand>span{grid-column:2!important;min-width:0!important;overflow:hidden!important;}
  .brand-title{display:block!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;font-size:12.5px!important;line-height:1.15!important;word-break:keep-all!important;}
  .brand-sub{display:block!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;font-size:9.5px!important;line-height:1.15!important;margin-top:2px!important;}
  .header-contact{grid-column:3!important;display:flex!important;width:124px!important;max-width:124px!important;min-width:124px!important;margin:0!important;justify-self:end!important;overflow:visible!important;}
  .header-contact .wechat-top-btn{display:none!important;}
  .header-contact .tel-btn,.header-contact a[href^="tel"],a.tel-btn{width:124px!important;max-width:124px!important;min-width:124px!important;padding:8px 4px!important;font-size:10.4px!important;letter-spacing:0!important;line-height:1!important;white-space:nowrap!important;overflow:visible!important;text-overflow:clip!important;text-align:center!important;justify-content:center!important;border-radius:999px!important;}
  .header-contact .tel-prefix{display:none!important;}
  .mobile-menu-toggle{grid-column:4!important;display:flex!important;width:38px!important;height:38px!important;min-width:38px!important;align-items:center!important;justify-content:center!important;flex-direction:column!important;gap:5px!important;border:1px solid var(--line)!important;border-radius:12px!important;background:#fff!important;z-index:9999!important;cursor:pointer!important;}
  .mobile-menu-toggle span{display:block!important;width:21px!important;height:2px!important;border-radius:99px!important;background:var(--blue)!important;}

  /* CSS-only hamburger: no JS dependency */
  nav.nav.site-nav{display:none!important;position:absolute!important;top:calc(100% + 8px)!important;left:8px!important;right:8px!important;z-index:9998!important;padding:10px!important;background:#fff!important;border:1px solid var(--line)!important;border-radius:16px!important;box-shadow:0 18px 44px rgba(11,63,120,.24)!important;grid-template-columns:1fr 1fr!important;gap:8px!important;}
  .mobile-nav-checkbox:checked ~ nav.nav.site-nav,body.nav-open nav.nav.site-nav{display:grid!important;}
  nav.nav.site-nav a{display:block!important;padding:11px 8px!important;border-radius:12px!important;text-align:center!important;font-size:14px!important;line-height:1.3!important;color:var(--blue)!important;background:#f4f8fb!important;font-weight:900!important;}

  /* Mobile hero uses dedicated cropped mobile webp, no slider overflow */
  .hero{width:100vw!important;max-width:100vw!important;height:260px!important;min-height:260px!important;max-height:260px!important;margin-left:calc(50% - 50vw)!important;margin-right:calc(50% - 50vw)!important;overflow:hidden!important;background:#062f5c!important;position:relative!important;}
  .hero-slide{width:100vw!important;max-width:100vw!important;height:260px!important;min-height:260px!important;max-height:260px!important;display:none!important;position:absolute!important;inset:0!important;overflow:hidden!important;background:#062f5c!important;transform:none!important;translate:none!important;}
  .hero-slide.active,.hero-slide:first-child{display:block!important;}
  .hero-picture{display:block!important;width:100vw!important;height:260px!important;}
  .hero-slide img,.hero img,img.mobile-hero-img,img.mobile-full-banner{display:block!important;width:100vw!important;max-width:100vw!important;height:260px!important;min-height:260px!important;max-height:260px!important;object-fit:cover!important;object-position:center center!important;transform:none!important;background:#062f5c!important;}
  .hero-dots{position:absolute!important;left:0!important;right:0!important;bottom:12px!important;z-index:10!important;justify-content:center!important;}

  /* Flow: five columns */
  .flow-list{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:5px!important;}
  .flow-item{min-height:104px!important;padding:8px 4px!important;border-radius:13px!important;text-align:center!important;}
  .flow-item b{width:26px!important;height:26px!important;font-size:11px!important;margin-bottom:4px!important;}
  .flow-item strong{font-size:10px!important;line-height:1.22!important;margin:4px 0 2px!important;}
  .flow-item span{font-size:8.8px!important;line-height:1.25!important;}

  /* Area: three columns */
  .area-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important;}
  .area-card{padding:12px 8px!important;border-radius:14px!important;min-height:auto!important;}
  .area-card h3{font-size:13px!important;line-height:1.3!important;margin-bottom:4px!important;}
  .area-card p{font-size:10px!important;line-height:1.42!important;}

  .site-footer{padding-bottom:32px!important;}
  body{padding-bottom:44px!important;}
}
@media(min-width:430px) and (max-width:640px){
  .hero,.hero-slide,.hero-picture,.hero-slide img,.hero img,img.mobile-hero-img,img.mobile-full-banner{height:290px!important;min-height:290px!important;max-height:290px!important;}
}
@media(max-width:370px){
  .header-row{grid-template-columns:38px minmax(0,1fr) 116px 36px!important;gap:4px!important;}
  .header-contact,.header-contact .tel-btn,.header-contact a[href^="tel"],a.tel-btn{width:116px!important;max-width:116px!important;min-width:116px!important;font-size:9.6px!important;}
  .mobile-menu-toggle{width:36px!important;height:36px!important;min-width:36px!important;}
}


/* v31: safe mobile-only fixes. Desktop layout is untouched. */
@media(max-width:640px){
  html, body{
    width:100% !important;
    max-width:100vw !important;
    overflow-x:hidden !important;
  }

  /* Header: title closer to logo and larger; phone complete with TEL */
  .header-row{
    grid-template-columns:40px minmax(0,1fr) 156px 38px !important;
    column-gap:3px !important;
    padding-left:8px !important;
    padding-right:8px !important;
  }

  .brand > span{
    margin-left:-4px !important;
    min-width:0 !important;
  }

  .brand-title{
    font-size:14.5px !important;
    line-height:1.16 !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }

  .brand-sub{
    font-size:11.5px !important;
    line-height:1.16 !important;
    margin-top:3px !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }

  .header-contact{
    width:156px !important;
    max-width:156px !important;
    min-width:156px !important;
  }

  .header-contact .tel-btn{
    width:156px !important;
    max-width:156px !important;
    min-width:156px !important;
    padding:8px 3px !important;
    font-size:10px !important;
    letter-spacing:-0.2px !important;
    white-space:nowrap !important;
    overflow:visible !important;
    text-overflow:clip !important;
    text-align:center !important;
  }

  /* Mobile banner: use existing mobile webp sources; increase height but do not affect desktop */
  .hero{
    height:330px !important;
    min-height:330px !important;
    max-height:330px !important;
    background:#062f5c !important;
    overflow:hidden !important;
  }

  .hero-slide,
  .hero-picture,
  .hero-picture img,
  .hero-slide img{
    height:330px !important;
    min-height:330px !important;
    max-height:330px !important;
  }

  .hero-slide img{
    width:100% !important;
    object-fit:contain !important;
    object-position:center center !important;
    background:#062f5c !important;
  }

  /* Flow: actual v27 classes */
  .flow-list{
    display:grid !important;
    grid-template-columns:repeat(5,minmax(0,1fr)) !important;
    gap:5px !important;
  }

  .flow-item{
    min-width:0 !important;
    min-height:110px !important;
    padding:8px 4px !important;
    border-radius:13px !important;
    text-align:center !important;
  }

  .flow-item b{
    font-size:12px !important;
  }

  .flow-item strong{
    font-size:10.5px !important;
    line-height:1.25 !important;
    margin:5px 0 3px !important;
  }

  .flow-item span{
    font-size:9px !important;
    line-height:1.25 !important;
  }

  /* Area: actual v27 classes */
  .area-grid{
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:8px !important;
  }

  .area-card{
    min-width:0 !important;
    padding:12px 8px !important;
    border-radius:14px !important;
  }

  .area-card h3{
    font-size:13px !important;
    line-height:1.35 !important;
    margin-bottom:4px !important;
  }

  .area-card p{
    font-size:10.5px !important;
    line-height:1.45 !important;
  }
}

@media(max-width:370px){
  .header-row{
    grid-template-columns:38px minmax(0,1fr) 145px 36px !important;
    column-gap:3px !important;
  }

  .brand > span{
    margin-left:-3px !important;
  }

  .brand-title{
    font-size:13.5px !important;
  }

  .brand-sub{
    font-size:10.5px !important;
  }

  .header-contact,
  .header-contact .tel-btn{
    width:145px !important;
    max-width:145px !important;
    min-width:145px !important;
    font-size:9.2px !important;
  }

  .hero,
  .hero-slide,
  .hero-picture,
  .hero-picture img,
  .hero-slide img{
    height:310px !important;
    min-height:310px !important;
    max-height:310px !important;
  }
}


/* ===== assets/css/mobile-final-v32.css ===== */

/* v32 final mobile override. Loaded after style.css. Desktop is untouched. */
@media (max-width: 640px) {
  html, body {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  body * {
    box-sizing: border-box !important;
  }

  .container {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 14px !important;
    padding-right: 14px !important;
  }

  .topbar {
    display: none !important;
  }

  .header {
    width: 100% !important;
    max-width: 100% !important;
    overflow: visible !important;
    background: #fff !important;
  }

  .header-row {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 72px !important;
    display: grid !important;
    grid-template-columns: 40px minmax(0, 1fr) 132px 38px !important;
    align-items: center !important;
    gap: 4px !important;
    padding: 8px 8px !important;
  }

  .brand {
    grid-column: 1 / 3 !important;
    display: grid !important;
    grid-template-columns: 40px minmax(0, 1fr) !important;
    align-items: center !important;
    column-gap: 4px !important;
    min-width: 0 !important;
    overflow: hidden !important;
  }

  .brand img {
    width: 39px !important;
    max-width: 39px !important;
    height: auto !important;
    display: block !important;
  }

  .brand > span {
    min-width: 0 !important;
    margin-left: 0 !important;
    display: block !important;
    overflow: hidden !important;
  }

  .brand-title {
    display: block !important;
    font-size: 14.5px !important;
    line-height: 1.16 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    word-break: keep-all !important;
  }

  .brand-sub {
    display: block !important;
    font-size: 11.5px !important;
    line-height: 1.16 !important;
    margin-top: 3px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  .header-contact {
    grid-column: 3 !important;
    width: 132px !important;
    max-width: 132px !important;
    min-width: 132px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    margin: 0 !important;
    overflow: visible !important;
  }

  .header-contact .wechat-top-btn {
    display: none !important;
  }

  .header-contact .tel-btn {
    width: 132px !important;
    max-width: 132px !important;
    min-width: 132px !important;
    height: 36px !important;
    padding: 0 2px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 999px !important;
    font-size: 9.2px !important;
    line-height: 1 !important;
    letter-spacing: -0.35px !important;
    white-space: nowrap !important;
    overflow: visible !important;
    text-overflow: clip !important;
  }

  .header-contact .tel-prefix {
    display: inline !important;
  }

  .mobile-menu-toggle {
    grid-column: 4 !important;
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 5px !important;
    border: 1px solid var(--line) !important;
    border-radius: 12px !important;
    background: #fff !important;
    z-index: 9999 !important;
  }

  .mobile-menu-toggle span {
    display: block !important;
    width: 22px !important;
    height: 2px !important;
    background: var(--blue) !important;
    border-radius: 999px !important;
  }

  .mobile-nav-checkbox {
    display: none !important;
  }

  .nav.site-nav {
    display: none !important;
    position: absolute !important;
    left: 10px !important;
    right: 10px !important;
    top: calc(100% + 8px) !important;
    z-index: 9998 !important;
    padding: 10px !important;
    background: #fff !important;
    border: 1px solid var(--line) !important;
    border-radius: 16px !important;
    box-shadow: 0 18px 44px rgba(11, 63, 120, .24) !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
  }

  #mobile-nav-toggle:checked ~ .nav.site-nav,
  body.nav-open .nav.site-nav {
    display: grid !important;
  }

  .nav.site-nav a {
    display: block !important;
    padding: 11px 8px !important;
    border-radius: 12px !important;
    background: #f4f8fb !important;
    text-align: center !important;
    font-size: 14px !important;
    line-height: 1.3 !important;
    font-weight: 900 !important;
    color: var(--blue) !important;
  }

  .hero {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    overflow: hidden !important;
    background: #062f5c !important;
  }

  .hero-slide {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    position: relative !important;
    inset: auto !important;
    transform: none !important;
    translate: none !important;
    overflow: hidden !important;
    background: #062f5c !important;
  }

  .hero-slide:not(.active) {
    display: none !important;
  }

  .hero-slide.active {
    display: block !important;
  }

  .hero-picture,
  .hero-picture img,
  .hero-slide img,
  .hero img,
  img.mobile-full-banner,
  img.mobile-hero-img {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    object-fit: contain !important;
    object-position: center center !important;
    transform: none !important;
    background: #062f5c !important;
  }

  .hero-dots {
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 14px !important;
    z-index: 20 !important;
    display: flex !important;
    justify-content: center !important;
    gap: 12px !important;
  }

  .hero-dots button {
    width: 12px !important;
    height: 12px !important;
    border-radius: 999px !important;
  }

  .flow-list {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 5px !important;
  }

  .flow-item {
    min-width: 0 !important;
    min-height: 108px !important;
    padding: 8px 4px !important;
    border-radius: 13px !important;
    text-align: center !important;
  }

  .flow-item b {
    font-size: 12px !important;
    line-height: 1 !important;
  }

  .flow-item strong {
    display: block !important;
    font-size: 10.5px !important;
    line-height: 1.25 !important;
    margin: 5px 0 3px !important;
  }

  .flow-item span {
    display: block !important;
    font-size: 9px !important;
    line-height: 1.25 !important;
  }

  .area-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  .area-card {
    min-width: 0 !important;
    padding: 12px 8px !important;
    border-radius: 14px !important;
  }

  .area-card h3 {
    font-size: 13px !important;
    line-height: 1.35 !important;
    margin-bottom: 4px !important;
  }

  .area-card p {
    font-size: 10.5px !important;
    line-height: 1.45 !important;
  }

  .sticky-mobile {
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }
}

@media (max-width: 370px) {
  .header-row {
    grid-template-columns: 38px minmax(0, 1fr) 126px 36px !important;
    gap: 3px !important;
    padding-left: 7px !important;
    padding-right: 7px !important;
  }

  .brand {
    grid-template-columns: 38px minmax(0, 1fr) !important;
    column-gap: 3px !important;
  }

  .brand img {
    width: 37px !important;
    max-width: 37px !important;
  }

  .brand-title {
    font-size: 13.5px !important;
  }

  .brand-sub {
    font-size: 10.5px !important;
  }

  .header-contact,
  .header-contact .tel-btn {
    width: 126px !important;
    max-width: 126px !important;
    min-width: 126px !important;
  }

  .header-contact .tel-btn {
    font-size: 8.7px !important;
  }

  .mobile-menu-toggle {
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
  }
}


/* ===== assets/css/mobile-final-v33.css ===== */


/* v33 mobile final override: only affects screens <= 640px */
@media (max-width: 640px) {
  html, body {
    width: 100% !important;
    max-width: 100vw !important;
    overflow-x: hidden !important;
  }

  /* Header: 2-row mobile layout: logo/title/menu + full phone below */
  .site-header,
  header.site-header,
  .header {
    width: 100% !important;
    max-width: 100vw !important;
    overflow: visible !important;
    background: #fff !important;
  }

  .site-header .container,
  .header .container,
  .header-row,
  .header-inner {
    width: 100% !important;
    max-width: 100vw !important;
    padding: 10px 12px !important;
    display: grid !important;
    grid-template-columns: 48px minmax(0, 1fr) 44px !important;
    grid-template-areas:
      "logo brand menu"
      "logo phone menu" !important;
    column-gap: 8px !important;
    row-gap: 5px !important;
    align-items: center !important;
    min-height: 84px !important;
    box-sizing: border-box !important;
  }

  .brand {
    display: contents !important;
  }

  .brand > img,
  .site-brand img,
  .logo img {
    grid-area: logo !important;
    width: 46px !important;
    max-width: 46px !important;
    height: auto !important;
    align-self: center !important;
    justify-self: start !important;
  }

  .brand > span,
  .brand-copy,
  .brand-text,
  .site-brand-text {
    grid-area: brand !important;
    min-width: 0 !important;
    overflow: hidden !important;
    margin-left: 0 !important;
    align-self: end !important;
  }

  .brand-title,
  .site-title,
  .brand h1,
  .site-brand h1 {
    display: block !important;
    font-size: 16.5px !important;
    line-height: 1.18 !important;
    font-weight: 900 !important;
    color: #0b3f78 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    word-break: keep-all !important;
  }

  .brand-sub,
  .brand-subtitle,
  .site-subtitle,
  .brand p,
  .site-brand p {
    display: block !important;
    font-size: 12.5px !important;
    line-height: 1.2 !important;
    color: #6b7788 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    margin-top: 3px !important;
  }

  .header-contact {
    grid-area: phone !important;
    width: 100% !important;
    max-width: 210px !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    justify-self: start !important;
    align-self: start !important;
    display: flex !important;
    justify-content: flex-start !important;
  }

  .header-contact .wechat-top-btn {
    display: none !important;
  }

  .header-contact .tel-btn,
  .header-contact a[href^="tel"],
  a.tel-btn,
  .phone-pill,
  .tel-pill {
    display: inline-flex !important;
    width: auto !important;
    min-width: 158px !important;
    max-width: 210px !important;
    height: 30px !important;
    padding: 6px 10px !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 999px !important;
    font-size: 11.5px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    letter-spacing: -0.2px !important;
    color: #0b3f78 !important;
    background: #fff !important;
    border: 1px solid #d8e7f3 !important;
    white-space: nowrap !important;
    overflow: visible !important;
    text-overflow: clip !important;
    box-sizing: border-box !important;
  }

  .tel-prefix {
    display: inline !important;
    margin-right: 3px !important;
  }

  .mobile-menu-toggle {
    grid-area: menu !important;
    display: flex !important;
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    padding: 0 !important;
    margin: 0 !important;
    align-items: center !important;
    justify-content: center !important;
    flex-direction: column !important;
    gap: 5px !important;
    border: 1px solid #d8e7f3 !important;
    border-radius: 12px !important;
    background: #fff !important;
    position: relative !important;
    z-index: 9999 !important;
    cursor: pointer !important;
    pointer-events: auto !important;
    justify-self: end !important;
    align-self: center !important;
  }

  .mobile-menu-toggle span {
    display: block !important;
    width: 22px !important;
    height: 3px !important;
    border-radius: 99px !important;
    background: #0b3f78 !important;
    margin: 0 !important;
  }

  /* JS/on-click mobile menu */
  nav.nav.site-nav,
  nav.nav,
  nav.site-nav,
  header nav {
    display: none !important;
    position: absolute !important;
    top: calc(100% + 8px) !important;
    left: 12px !important;
    right: 12px !important;
    z-index: 9998 !important;
    padding: 10px !important;
    background: #fff !important;
    border: 1px solid #d8e7f3 !important;
    border-radius: 16px !important;
    box-shadow: 0 18px 44px rgba(11,63,120,.24) !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
  }

  body.nav-open nav.nav.site-nav,
  body.nav-open nav.nav,
  body.nav-open nav.site-nav,
  body.nav-open header nav {
    display: grid !important;
  }

  nav.nav.site-nav a,
  nav.nav a,
  nav.site-nav a,
  header nav a {
    display: block !important;
    padding: 12px 8px !important;
    border-radius: 12px !important;
    text-align: center !important;
    font-size: 14px !important;
    line-height: 1.3 !important;
    color: #0b3f78 !important;
    background: #f4f8fb !important;
    font-weight: 900 !important;
    text-decoration: none !important;
  }

  /* Banner: full-width hero, no tiny centered image, no extra blue canvas */
  .mobile-hero-only,
  .mobile-full-hero,
  .mobile-hero-stage {
    display: none !important;
  }

  .hero {
    display: block !important;
    width: 100% !important;
    max-width: 100vw !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    background: #062f5c !important;
    position: relative !important;
  }

  .hero-slider {
    display: block !important;
    width: 100% !important;
    max-width: 100vw !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    translate: none !important;
    overflow: hidden !important;
    background: #062f5c !important;
  }

  .hero-slide {
    display: none !important;
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    max-width: 100vw !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    translate: none !important;
    overflow: hidden !important;
    background: #062f5c !important;
  }

  .hero-slide.active,
  .hero-slide.is-active,
  .hero-slide:first-child {
    display: block !important;
  }

  .hero-picture,
  .hero picture,
  .hero-slide picture {
    display: block !important;
    width: 100% !important;
    max-width: 100vw !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .hero img,
  .hero-slide img,
  .hero-picture img,
  img.mobile-hero-img,
  img.mobile-full-banner {
    display: block !important;
    width: 100% !important;
    max-width: 100vw !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    object-fit: contain !important;
    object-position: center center !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #062f5c !important;
  }

  .hero-dots,
  .slider-dots,
  .banner-dots {
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 14px !important;
    z-index: 20 !important;
    display: flex !important;
    justify-content: center !important;
    gap: 12px !important;
  }

  /* Flow: force 5 columns */
  .flow-list,
  .mobile-force-flow5,
  .flow-grid,
  .steps-grid,
  .process-grid,
  .workflow-grid,
  .flow-steps {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 5px !important;
  }

  .flow-list > *,
  .mobile-force-flow5 > *,
  .flow-grid > *,
  .steps-grid > *,
  .process-grid > *,
  .workflow-grid > *,
  .flow-steps > * {
    min-width: 0 !important;
    min-height: 108px !important;
    padding: 8px 4px !important;
    border-radius: 13px !important;
    text-align: center !important;
  }

  .flow-list b,
  .mobile-force-flow5 b {
    font-size: 12px !important;
  }

  .flow-list strong,
  .flow-list h3,
  .mobile-force-flow5 strong,
  .mobile-force-flow5 h3 {
    font-size: 10.5px !important;
    line-height: 1.25 !important;
    margin: 5px 0 3px !important;
  }

  .flow-list span,
  .flow-list p,
  .mobile-force-flow5 span,
  .mobile-force-flow5 p {
    font-size: 9px !important;
    line-height: 1.25 !important;
  }

  /* Area: force 3 columns */
  .area-grid,
  .mobile-force-area3,
  .service-area-grid,
  .region-grid,
  .coverage-grid,
  .area-list {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  .area-grid > *,
  .mobile-force-area3 > *,
  .service-area-grid > *,
  .region-grid > *,
  .coverage-grid > *,
  .area-list > * {
    min-width: 0 !important;
    padding: 12px 8px !important;
    border-radius: 14px !important;
  }

  .area-grid h3,
  .mobile-force-area3 h3 {
    font-size: 13px !important;
    line-height: 1.35 !important;
    margin-bottom: 4px !important;
  }

  .area-grid p,
  .mobile-force-area3 p {
    font-size: 10.5px !important;
    line-height: 1.45 !important;
  }
}

@media (max-width: 370px) {
  .site-header .container,
  .header .container,
  .header-row,
  .header-inner {
    grid-template-columns: 46px minmax(0,1fr) 42px !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  .brand-title {
    font-size: 15.2px !important;
  }

  .brand-sub {
    font-size: 11.5px !important;
  }

  .header-contact .tel-btn,
  .header-contact a[href^="tel"],
  a.tel-btn {
    font-size: 11px !important;
  }
}


/* ===== assets/css/mobile-final-v34.css ===== */


/* v34 mobile final: header alignment + stable one-slide banner */
@media (max-width: 640px) {
  html, body {
    width: 100% !important;
    max-width: 100vw !important;
    overflow-x: hidden !important;
  }

  /* Header: title aligns vertically with logo; phone top-right above menu */
  .site-header,
  header.site-header,
  .header {
    background: #fff !important;
    width: 100% !important;
    max-width: 100vw !important;
    overflow: visible !important;
  }

  .site-header .container,
  .header .container,
  .header-row,
  .header-inner {
    width: 100% !important;
    max-width: 100vw !important;
    padding: 10px 12px !important;
    display: grid !important;
    grid-template-columns: 50px minmax(0,1fr) 168px !important;
    grid-template-rows: 30px 34px !important;
    grid-template-areas:
      "logo brand phone"
      "logo sub   menu" !important;
    column-gap: 8px !important;
    row-gap: 4px !important;
    align-items: center !important;
    min-height: 92px !important;
    box-sizing: border-box !important;
  }

  .brand {
    display: contents !important;
  }

  .brand > img,
  .site-brand img,
  .logo img {
    grid-area: logo !important;
    width: 48px !important;
    max-width: 48px !important;
    height: auto !important;
    justify-self: start !important;
    align-self: center !important;
  }

  .brand > span,
  .brand-copy,
  .brand-text,
  .site-brand-text {
    display: contents !important;
  }

  .brand-title,
  .site-title,
  .brand h1,
  .site-brand h1 {
    grid-area: brand !important;
    display: block !important;
    align-self: center !important;
    justify-self: start !important;
    font-size: 17.8px !important;
    line-height: 1.12 !important;
    font-weight: 900 !important;
    color: #0b3f78 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    word-break: keep-all !important;
    margin: 0 !important;
    padding: 0 !important;
    max-width: 100% !important;
  }

  .brand-sub,
  .brand-subtitle,
  .site-subtitle,
  .brand p,
  .site-brand p {
    grid-area: sub !important;
    display: block !important;
    align-self: start !important;
    justify-self: start !important;
    font-size: 13.2px !important;
    line-height: 1.15 !important;
    color: #6b7788 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    margin: 0 !important;
    padding: 0 !important;
    max-width: 100% !important;
  }

  .header-contact {
    grid-area: phone !important;
    width: 168px !important;
    max-width: 168px !important;
    min-width: 168px !important;
    margin: 0 !important;
    padding: 0 !important;
    justify-self: end !important;
    align-self: center !important;
    overflow: visible !important;
    display: flex !important;
    justify-content: flex-end !important;
  }

  .header-contact .wechat-top-btn {
    display: none !important;
  }

  .header-contact .tel-btn,
  .header-contact a[href^="tel"],
  a.tel-btn,
  .phone-pill,
  .tel-pill {
    display: inline-flex !important;
    width: 168px !important;
    min-width: 168px !important;
    max-width: 168px !important;
    height: 30px !important;
    padding: 6px 7px !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 999px !important;
    font-size: 10.6px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    letter-spacing: -0.45px !important;
    color: #0b3f78 !important;
    background: #fff !important;
    border: 1px solid #d8e7f3 !important;
    white-space: nowrap !important;
    overflow: visible !important;
    text-overflow: clip !important;
    box-sizing: border-box !important;
  }

  .mobile-menu-toggle {
    grid-area: menu !important;
    display: flex !important;
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    padding: 0 !important;
    margin: 0 !important;
    align-items: center !important;
    justify-content: center !important;
    flex-direction: column !important;
    gap: 5px !important;
    border: 1px solid #d8e7f3 !important;
    border-radius: 12px !important;
    background: #fff !important;
    position: relative !important;
    z-index: 9999 !important;
    cursor: pointer !important;
    pointer-events: auto !important;
    justify-self: end !important;
    align-self: start !important;
  }

  .mobile-menu-toggle span {
    display: block !important;
    width: 22px !important;
    height: 3px !important;
    border-radius: 99px !important;
    background: #0b3f78 !important;
    margin: 0 !important;
  }

  /* Menu overlay */
  nav.nav.site-nav,
  nav.nav,
  nav.site-nav,
  header nav {
    display: none !important;
    position: absolute !important;
    top: calc(100% + 8px) !important;
    left: 12px !important;
    right: 12px !important;
    z-index: 9998 !important;
    padding: 10px !important;
    background: #fff !important;
    border: 1px solid #d8e7f3 !important;
    border-radius: 16px !important;
    box-shadow: 0 18px 44px rgba(11,63,120,.24) !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
  }

  body.nav-open nav.nav.site-nav,
  body.nav-open nav.nav,
  body.nav-open nav.site-nav,
  body.nav-open header nav {
    display: grid !important;
  }

  nav.nav.site-nav a,
  nav.nav a,
  nav.site-nav a,
  header nav a {
    display: block !important;
    padding: 12px 8px !important;
    border-radius: 12px !important;
    text-align: center !important;
    font-size: 14px !important;
    line-height: 1.3 !important;
    color: #0b3f78 !important;
    background: #f4f8fb !important;
    font-weight: 900 !important;
    text-decoration: none !important;
  }

  /* Banner: one active slide only, full-width, no double-screen stacking */
  .mobile-hero-only,
  .mobile-full-hero,
  .mobile-hero-stage {
    display: none !important;
  }

  .hero {
    display: block !important;
    width: 100% !important;
    max-width: 100vw !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    background: #062f5c !important;
    position: relative !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
  }

  .hero-slider {
    display: block !important;
    position: relative !important;
    width: 100% !important;
    max-width: 100vw !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    translate: none !important;
    overflow: hidden !important;
    background: #062f5c !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
  }

  .hero-slide {
    display: none !important;
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    max-width: 100vw !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    translate: none !important;
    overflow: hidden !important;
    background: #062f5c !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
  }

  .hero-slide.active,
  .hero-slide.is-active,
  .hero-slide[aria-hidden="false"] {
    display: block !important;
  }

  .hero-slide:not(.active):not(.is-active):not([aria-hidden="false"]) {
    display: none !important;
  }

  .hero-picture,
  .hero picture,
  .hero-slide picture {
    display: block !important;
    width: 100% !important;
    max-width: 100vw !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .hero img,
  .hero-slide img,
  .hero-picture img,
  img.mobile-hero-img,
  img.mobile-full-banner {
    display: block !important;
    width: 100% !important;
    max-width: 100vw !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    object-fit: contain !important;
    object-position: center center !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #062f5c !important;
  }

  .hero-dots,
  .slider-dots,
  .banner-dots {
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 14px !important;
    z-index: 20 !important;
    display: flex !important;
    justify-content: center !important;
    gap: 12px !important;
  }
}

@media (max-width: 370px) {
  .site-header .container,
  .header .container,
  .header-row,
  .header-inner {
    grid-template-columns: 48px minmax(0,1fr) 154px !important;
    grid-template-rows: 30px 34px !important;
  }

  .brand-title {
    font-size: 16.6px !important;
  }

  .brand-sub {
    font-size: 12.2px !important;
  }

  .header-contact {
    width: 154px !important;
    min-width: 154px !important;
    max-width: 154px !important;
  }

  .header-contact .tel-btn,
  .header-contact a[href^="tel"],
  a.tel-btn {
    width: 154px !important;
    min-width: 154px !important;
    max-width: 154px !important;
    font-size: 9.8px !important;
    letter-spacing: -0.55px !important;
  }
}


/* ===== assets/css/mobile-final-v35.css ===== */


/* v35 mobile final override: max-width 640px only. Desktop unaffected. */
@media (max-width: 640px) {
  html, body {
    width: 100% !important;
    max-width: 100vw !important;
    overflow-x: hidden !important;
  }

  /* Header: LOGO + title + menu in first row; subtitle + phone in second row */
  .site-header,
  header.site-header,
  .header {
    background: #fff !important;
    width: 100% !important;
    max-width: 100vw !important;
    overflow: visible !important;
  }

  .site-header .container,
  .header .container,
  .header-row,
  .header-inner {
    width: 100% !important;
    max-width: 100vw !important;
    padding: 9px 12px !important;
    display: grid !important;
    grid-template-columns: 48px minmax(0,1fr) 44px !important;
    grid-template-rows: 30px 30px !important;
    grid-template-areas:
      "logo brand menu"
      "logo sub   phone" !important;
    column-gap: 8px !important;
    row-gap: 3px !important;
    align-items: center !important;
    min-height: 82px !important;
    box-sizing: border-box !important;
  }

  .brand { display: contents !important; }

  .brand > img,
  .site-brand img,
  .logo img {
    grid-area: logo !important;
    width: 46px !important;
    max-width: 46px !important;
    height: auto !important;
    justify-self: start !important;
    align-self: center !important;
  }

  .brand > span,
  .brand-copy,
  .brand-text,
  .site-brand-text {
    display: contents !important;
  }

  .brand-title,
  .site-title,
  .brand h1,
  .site-brand h1 {
    grid-area: brand !important;
    display: block !important;
    align-self: end !important;
    justify-self: start !important;
    font-size: 18px !important;
    line-height: 1.12 !important;
    font-weight: 900 !important;
    color: #0b3f78 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    word-break: keep-all !important;
    margin: 0 !important;
    padding: 0 !important;
    max-width: 100% !important;
  }

  .brand-sub,
  .brand-subtitle,
  .site-subtitle,
  .brand p,
  .site-brand p {
    grid-area: sub !important;
    display: block !important;
    align-self: start !important;
    justify-self: start !important;
    font-size: 13px !important;
    line-height: 1.15 !important;
    color: #6b7788 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    margin: 0 !important;
    padding: 0 !important;
    max-width: 100% !important;
  }

  .mobile-menu-toggle {
    grid-area: menu !important;
    display: flex !important;
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    padding: 0 !important;
    margin: 0 !important;
    align-items: center !important;
    justify-content: center !important;
    flex-direction: column !important;
    gap: 5px !important;
    border: 1px solid #d8e7f3 !important;
    border-radius: 12px !important;
    background: #fff !important;
    position: relative !important;
    z-index: 9999 !important;
    cursor: pointer !important;
    pointer-events: auto !important;
    justify-self: end !important;
    align-self: center !important;
  }

  .mobile-menu-toggle span {
    display: block !important;
    width: 22px !important;
    height: 3px !important;
    border-radius: 99px !important;
    background: #0b3f78 !important;
    margin: 0 !important;
  }

  .header-contact {
    grid-area: phone !important;
    width: auto !important;
    max-width: 174px !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    justify-self: end !important;
    align-self: start !important;
    overflow: visible !important;
    display: flex !important;
    justify-content: flex-end !important;
  }

  .header-contact .wechat-top-btn { display: none !important; }

  .header-contact .tel-btn,
  .header-contact a[href^="tel"],
  a.tel-btn,
  .phone-pill,
  .tel-pill {
    display: inline-flex !important;
    width: 174px !important;
    min-width: 174px !important;
    max-width: 174px !important;
    height: 28px !important;
    padding: 5px 7px !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 999px !important;
    font-size: 10.8px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    letter-spacing: -0.45px !important;
    color: #0b3f78 !important;
    background: #fff !important;
    border: 1px solid #d8e7f3 !important;
    white-space: nowrap !important;
    overflow: visible !important;
    text-overflow: clip !important;
    box-sizing: border-box !important;
  }

  /* menu overlay */
  nav.nav.site-nav,
  nav.nav,
  nav.site-nav,
  header nav {
    display: none !important;
    position: absolute !important;
    top: calc(100% + 8px) !important;
    left: 12px !important;
    right: 12px !important;
    z-index: 9998 !important;
    padding: 10px !important;
    background: #fff !important;
    border: 1px solid #d8e7f3 !important;
    border-radius: 16px !important;
    box-shadow: 0 18px 44px rgba(11,63,120,.24) !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
  }

  body.nav-open nav.nav.site-nav,
  body.nav-open nav.nav,
  body.nav-open nav.site-nav,
  body.nav-open header nav {
    display: grid !important;
  }

  nav.nav.site-nav a,
  nav.nav a,
  nav.site-nav a,
  header nav a {
    display: block !important;
    padding: 12px 8px !important;
    border-radius: 12px !important;
    text-align: center !important;
    font-size: 14px !important;
    line-height: 1.3 !important;
    color: #0b3f78 !important;
    background: #f4f8fb !important;
    font-weight: 900 !important;
    text-decoration: none !important;
  }

  /* Banner: mobile source is 780x520, display full width at natural ratio, one slide only */
  .mobile-hero-only,
  .mobile-full-hero,
  .mobile-hero-stage { display: none !important; }

  .hero {
    display: block !important;
    width: 100% !important;
    max-width: 100vw !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    background: #062f5c !important;
    position: relative !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
  }

  .hero-slider {
    display: block !important;
    position: relative !important;
    width: 100% !important;
    max-width: 100vw !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    translate: none !important;
    overflow: hidden !important;
    background: #062f5c !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
  }

  .hero-slide {
    display: none !important;
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    max-width: 100vw !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    translate: none !important;
    overflow: hidden !important;
    background: #062f5c !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
  }

  .hero-slide.active,
  .hero-slide.is-active,
  .hero-slide[aria-hidden="false"] { display: block !important; }
  .hero-slide:not(.active):not(.is-active):not([aria-hidden="false"]) { display: none !important; }

  .hero-picture,
  .hero picture,
  .hero-slide picture {
    display: block !important;
    width: 100% !important;
    max-width: 100vw !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .hero img,
  .hero-slide img,
  .hero-picture img,
  img.mobile-hero-img,
  img.mobile-full-banner {
    display: block !important;
    width: 100% !important;
    max-width: 100vw !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    object-fit: contain !important;
    object-position: center center !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #062f5c !important;
  }

  .hero-dots,
  .slider-dots,
  .banner-dots {
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 14px !important;
    z-index: 20 !important;
    display: flex !important;
    justify-content: center !important;
    gap: 12px !important;
  }

  /* service/area final */
  .flow-list,
  .mobile-force-flow5,
  .flow-grid,
  .steps-grid,
  .process-grid,
  .workflow-grid,
  .flow-steps {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 5px !important;
  }

  .area-grid,
  .mobile-force-area3,
  .service-area-grid,
  .region-grid,
  .coverage-grid,
  .area-list {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  /* price cards: cleaner mobile layout */
  .service-price-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }

  .service-price-card-cn {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 150px !important;
    grid-template-areas:
      "title price"
      "desc  price"
      "note  action" !important;
    gap: 8px 12px !important;
    padding: 18px !important;
    align-items: center !important;
  }

  .service-price-card-cn h3 {
    grid-area: title !important;
    font-size: 22px !important;
    line-height: 1.25 !important;
    margin: 0 !important;
    white-space: nowrap !important;
  }

  .service-price-card-cn p {
    grid-area: desc !important;
    font-size: 14px !important;
    line-height: 1.65 !important;
    margin: 0 !important;
  }

  .service-price-card-cn .cn-price {
    grid-area: price !important;
    padding: 12px !important;
    border-radius: 14px !important;
  }

  .service-price-card-cn .cn-price strong {
    font-size: 18px !important;
    line-height: 1.35 !important;
    white-space: nowrap !important;
  }

  .service-price-card-cn > span {
    grid-area: note !important;
    font-size: 13px !important;
  }

  .service-price-card-cn > a {
    grid-area: action !important;
    font-size: 14px !important;
    white-space: nowrap !important;
    justify-self: end !important;
  }
}

@media (max-width: 370px) {
  .site-header .container,
  .header .container,
  .header-row,
  .header-inner {
    grid-template-columns: 48px minmax(0,1fr) 42px !important;
    grid-template-rows: 30px 32px !important;
  }

  .brand-title { font-size: 16.5px !important; }
  .brand-sub { font-size: 12px !important; }

  .header-contact .tel-btn,
  .header-contact a[href^="tel"],
  a.tel-btn {
    width: 162px !important;
    min-width: 162px !important;
    max-width: 162px !important;
    font-size: 10.2px !important;
  }
}


/* ===== assets/css/site-final-v42.css ===== */


/* v42 cumulative final adjustments */
.privacy-agree{display:flex!important;align-items:center!important;gap:12px!important;padding:14px 16px!important}
.privacy-agree input[type="checkbox"]{flex:0 0 auto!important;width:22px!important;height:22px!important;margin:0!important}
.privacy-agree span{display:block!important;line-height:1.6!important}
.policy-buttons{display:none!important}
.contact-form>button[type="submit"],.contact-form .btn.primary[type="submit"]{display:inline-flex!important;margin-left:auto!important;margin-right:0!important;align-items:center!important;justify-content:center!important}
.big-phone .phone-line-main,.big-phone .phone-line-country{display:inline}
.big-phone .phone-line-country{margin-left:.2em;white-space:nowrap}
.service-price-card-cn{position:relative}
.service-card-top{display:flex;flex-direction:column;gap:8px}
.service-card-tag{display:inline-flex;align-self:flex-start;padding:5px 10px;border-radius:999px;background:#eef7ff;color:#0b3f78;font-size:12px;font-weight:800;line-height:1}
.service-price-card-cn .service-extra{color:var(--muted)}
.price-note{line-height:1.8}
.site-footer{padding-bottom:28px!important}
.site-footer .footer-grid{grid-template-columns:minmax(320px,1.05fr) minmax(330px,1.12fr) minmax(180px,.72fr);column-gap:24px;align-items:start}
.site-footer .footer-grid>div:nth-child(2){justify-self:center;min-width:300px}
.site-footer .footer-grid>div:nth-child(3){justify-self:end;min-width:170px}
.site-footer .footer-grid>div:nth-child(2) h3,.site-footer .footer-grid>div:nth-child(2) .footer-links,.site-footer .footer-grid>div:nth-child(3) h3,.site-footer .footer-grid>div:nth-child(3) .footer-links{text-align:left}
.site-footer .footer-grid>div:nth-child(2) .footer-links,.site-footer .footer-grid>div:nth-child(3) .footer-links{align-items:flex-start}
.footer-bottom{margin-top:16px!important;padding-top:12px!important;padding-bottom:0!important}
.footer-bottom p{margin-bottom:4px!important}
.mobile-mail-form-title{display:none}
@media(max-width:640px){
.mobile-mail-form-title{display:block!important;width:100%!important;margin:18px 0 10px!important;padding:0 2px!important;font-size:22px!important;line-height:1.35!important;font-weight:900!important;color:#0b3f78!important;text-align:left!important;letter-spacing:.02em!important}
.mobile-mail-form-title::before{content:"";display:inline-block;width:6px;height:22px;margin-right:10px;border-radius:999px;background:#ff8a00;vertical-align:-4px}
.contact-form textarea{min-height:160px!important}
.privacy-agree{margin-top:4px!important;padding:14px 14px!important}
.privacy-agree input[type="checkbox"]{width:24px!important;height:24px!important}
.contact-form>button[type="submit"],.contact-form .btn.primary[type="submit"]{margin-top:14px!important;min-width:150px!important;font-size:15px!important}
.big-phone{text-align:center!important;line-height:1.28!important}
.big-phone .phone-line-main{display:block!important;white-space:nowrap!important}
.big-phone .phone-line-country{display:block!important;margin-left:0!important;margin-top:4px!important;text-align:center!important;white-space:nowrap!important;letter-spacing:.03em!important}
.service-price-grid{grid-template-columns:1fr!important;gap:14px!important}
.service-price-card-cn{display:grid!important;grid-template-columns:minmax(0,1fr) 158px!important;grid-template-areas:"top price" "desc price" "note action"!important;gap:10px 12px!important;padding:18px!important;min-height:0!important;align-items:center!important}
.service-price-card-cn .service-card-top{grid-area:top!important}
.service-price-card-cn h3{font-size:21px!important;line-height:1.25!important;margin:0!important;min-height:0!important;white-space:nowrap!important}
.service-price-card-cn p{grid-area:desc!important;font-size:14px!important;line-height:1.6!important;margin:0!important;min-height:0!important}
.service-price-card-cn .cn-price{grid-area:price!important;min-height:0!important;padding:12px!important;border-radius:14px!important;justify-content:center!important}
.service-price-card-cn .cn-price strong{font-size:16px!important;line-height:1.35!important;white-space:normal!important}
.service-price-card-cn .service-extra,.service-price-card-cn>span{grid-area:note!important;font-size:13px!important;min-height:0!important}
.service-price-card-cn>a{grid-area:action!important;justify-self:end!important;font-size:14px!important;white-space:nowrap!important}
.price-note{font-size:13.5px!important;line-height:1.75!important}
.site-footer{padding-bottom:42px!important}
.site-footer .footer-grid{grid-template-columns:1.05fr 1.08fr .82fr!important;column-gap:10px!important}
.site-footer .footer-grid>div:nth-child(2){justify-self:center!important;min-width:0!important}
.site-footer .footer-grid>div:nth-child(3){justify-self:end!important;min-width:0!important}
}
@media(max-width:370px){
.service-price-card-cn{grid-template-columns:1fr!important;grid-template-areas:"top" "desc" "price" "note" "action"!important}
.service-price-card-cn>a{justify-self:start!important}
}


/* ===== assets/css/mobile-header-v43.css ===== */


/* v43 mobile header alignment. Only affects screens <= 640px. */
@media (max-width: 640px) {
  .site-header,
  header.site-header,
  .header {
    background: #fff !important;
    width: 100% !important;
    max-width: 100vw !important;
    overflow: visible !important;
  }

  /* Three-row layout:
     row 1: logo / main title / menu
     row 2: logo / subtitle   / menu
     row 3: empty / phone spanning to the right
  */
  .site-header .container,
  .header .container,
  .header-row,
  .header-inner {
    width: 100% !important;
    max-width: 100vw !important;
    padding: 10px 12px 12px !important;
    display: grid !important;
    grid-template-columns: 50px minmax(0, 1fr) 46px !important;
    grid-template-rows: 28px 20px 38px !important;
    grid-template-areas:
      "logo brand menu"
      "logo sub   menu"
      ".    phone phone" !important;
    column-gap: 8px !important;
    row-gap: 4px !important;
    align-items: start !important;
    min-height: 104px !important;
    box-sizing: border-box !important;
  }

  .brand {
    display: contents !important;
  }

  .brand > img,
  .site-brand img,
  .logo img {
    grid-area: logo !important;
    width: 48px !important;
    max-width: 48px !important;
    height: auto !important;
    justify-self: start !important;
    align-self: center !important;
    margin: 0 !important;
  }

  .brand > span,
  .brand-copy,
  .brand-text,
  .site-brand-text {
    display: contents !important;
  }

  .brand-title,
  .site-title,
  .brand h1,
  .site-brand h1 {
    grid-area: brand !important;
    display: block !important;
    align-self: start !important;
    justify-self: start !important;
    font-size: 19.8px !important;
    line-height: 1.12 !important;
    font-weight: 900 !important;
    color: #0b3f78 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    word-break: keep-all !important;
    margin: 0 !important;
    padding: 0 !important;
    max-width: 100% !important;
  }

  .brand-sub,
  .brand-subtitle,
  .site-subtitle,
  .brand p,
  .site-brand p {
    grid-area: sub !important;
    display: block !important;
    align-self: start !important;
    justify-self: start !important;
    font-size: 14.6px !important;
    line-height: 1.15 !important;
    color: #6b7788 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    margin: 0 !important;
    padding: 0 !important;
    max-width: 100% !important;
  }

  .mobile-menu-toggle {
    grid-area: menu !important;
    display: flex !important;
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    padding: 0 !important;
    margin: 0 !important;
    align-items: center !important;
    justify-content: center !important;
    flex-direction: column !important;
    gap: 5px !important;
    border: 1px solid #d8e7f3 !important;
    border-radius: 12px !important;
    background: #fff !important;
    position: relative !important;
    z-index: 9999 !important;
    cursor: pointer !important;
    pointer-events: auto !important;
    justify-self: end !important;
    align-self: start !important;
  }

  .mobile-menu-toggle span {
    display: block !important;
    width: 22px !important;
    height: 3px !important;
    border-radius: 99px !important;
    background: #0b3f78 !important;
    margin: 0 !important;
  }

  .header-contact {
    grid-area: phone !important;
    width: 100% !important;
    max-width: 238px !important;
    min-width: 0 !important;
    margin: 8px 0 0 !important; /* push phone down and separate from menu */
    padding: 0 !important;
    justify-self: end !important;
    align-self: start !important;
    overflow: visible !important;
    display: flex !important;
    justify-content: flex-end !important;
  }

  .header-contact .wechat-top-btn {
    display: none !important;
  }

  .header-contact .tel-btn,
  .header-contact a[href^="tel"],
  a.tel-btn,
  .phone-pill,
  .tel-pill {
    display: inline-flex !important;
    width: auto !important;
    min-width: 222px !important;
    max-width: 238px !important;
    height: 32px !important;
    padding: 6px 10px !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 999px !important;
    font-size: 12.8px !important; /* +2px */
    line-height: 1 !important;
    font-weight: 900 !important;
    letter-spacing: -0.45px !important;
    color: #0b3f78 !important;
    background: #fff !important;
    border: 1px solid #d8e7f3 !important;
    white-space: nowrap !important;
    overflow: visible !important;
    text-overflow: clip !important;
    box-sizing: border-box !important;
  }
}

@media (max-width: 370px) {
  .site-header .container,
  .header .container,
  .header-row,
  .header-inner {
    grid-template-columns: 48px minmax(0, 1fr) 42px !important;
    grid-template-rows: 27px 19px 36px !important;
    column-gap: 7px !important;
    min-height: 100px !important;
  }

  .brand-title,
  .site-title,
  .brand h1,
  .site-brand h1 {
    font-size: 18.2px !important;
  }

  .brand-sub,
  .brand-subtitle,
  .site-subtitle,
  .brand p,
  .site-brand p {
    font-size: 13.2px !important;
  }

  .header-contact {
    max-width: 218px !important;
    margin-top: 8px !important;
  }

  .header-contact .tel-btn,
  .header-contact a[href^="tel"],
  a.tel-btn,
  .phone-pill,
  .tel-pill {
    min-width: 210px !important;
    max-width: 218px !important;
    font-size: 11.8px !important;
    letter-spacing: -0.55px !important;
  }
}


/* ===== assets/css/mobile-final-v44.css ===== */


/* v44 mobile final: header alignment, adaptive price cards, compact 3-line address.
   This file is mobile-only and does not affect desktop. */
@media (max-width: 640px) {
  /* Header: logo top aligns with main title. Phone moves down and separates from menu. */
  .site-header .container,
  .header .container,
  .header-row,
  .header-inner {
    grid-template-columns: 50px minmax(0, 1fr) 46px !important;
    grid-template-rows: 30px 24px 40px !important;
    grid-template-areas:
      "logo brand menu"
      "logo sub   menu"
      ".    phone phone" !important;
    column-gap: 8px !important;
    row-gap: 4px !important;
    padding: 10px 12px 12px !important;
    min-height: 110px !important;
    align-items: start !important;
  }

  .brand > img,
  .site-brand img,
  .logo img {
    grid-area: logo !important;
    width: 48px !important;
    max-width: 48px !important;
    align-self: start !important;      /* logo top aligns with title */
    justify-self: start !important;
    margin-top: 0 !important;
  }

  .brand-title,
  .site-title,
  .brand h1,
  .site-brand h1 {
    grid-area: brand !important;
    align-self: start !important;
    font-size: 21.8px !important;      /* +2px from v43 */
    line-height: 1.08 !important;
    font-weight: 900 !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #0b3f78 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  .brand-sub,
  .brand-subtitle,
  .site-subtitle,
  .brand p,
  .site-brand p {
    grid-area: sub !important;
    align-self: start !important;
    font-size: 16.6px !important;      /* +2px from v43 */
    line-height: 1.12 !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #6b7788 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  .mobile-menu-toggle {
    grid-area: menu !important;
    width: 46px !important;            /* icon/button +1 step */
    height: 46px !important;
    min-width: 46px !important;
    justify-self: end !important;
    align-self: start !important;      /* menu top aligns with title */
    margin: 0 !important;
  }

  .mobile-menu-toggle span {
    width: 25px !important;
    height: 4px !important;            /* icon stroke +1 step */
  }

  .header-contact {
    grid-area: phone !important;
    width: 100% !important;
    max-width: 250px !important;
    margin: 10px 0 0 !important;       /* separate phone from menu */
    justify-self: end !important;
    align-self: start !important;
  }

  .header-contact .tel-btn,
  .header-contact a[href^="tel"],
  a.tel-btn,
  .phone-pill,
  .tel-pill {
    min-width: 232px !important;
    max-width: 250px !important;
    height: 34px !important;
    font-size: 14.8px !important;      /* +2px from v43 */
    padding: 7px 10px !important;
    letter-spacing: -0.55px !important;
  }

  /* Service price: adaptive natural cards, no forced awkward split. */
  .service-price-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)) !important;
    gap: 14px !important;
  }

  .service-price-card-cn {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 12px !important;
    padding: 18px !important;
    min-height: 0 !important;
  }

  .service-price-card-cn .service-card-top {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
  }

  .service-price-card-cn h3 {
    font-size: 22px !important;
    line-height: 1.25 !important;
    margin: 0 !important;
    white-space: normal !important;
    word-break: keep-all !important;
  }

  .service-price-card-cn p {
    font-size: 14px !important;
    line-height: 1.65 !important;
    margin: 0 !important;
  }

  .service-price-card-cn .cn-price {
    width: 100% !important;
    min-height: 0 !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    padding: 14px !important;
    border-radius: 14px !important;
  }

  .service-price-card-cn .cn-price strong {
    font-size: 18px !important;
    line-height: 1.35 !important;
    white-space: normal !important;
  }

  .service-price-card-cn .service-extra,
  .service-price-card-cn > span {
    font-size: 13px !important;
    line-height: 1.55 !important;
    margin: 0 !important;
  }

  .service-price-card-cn > a {
    align-self: flex-end !important;
    font-size: 14px !important;
    white-space: nowrap !important;
    margin-top: 4px !important;
  }

  /* Footer address exactly 3 visible lines on mobile. */
  .site-footer .footer-grid {
    grid-template-columns: 1.55fr .9fr .75fr !important;
    column-gap: 8px !important;
  }

  .site-footer .footer-grid > div:first-child {
    min-width: 0 !important;
  }

  .footer-address {
    display: block !important;
    font-size: 10.2px !important;
    line-height: 1.42 !important;
    margin: 0 0 6px !important;
  }

  .footer-address .footer-label,
  .footer-address .footer-address-text {
    display: inline !important;
  }

  .footer-address .footer-address-text {
    white-space: nowrap !important;
  }
}

@media (max-width: 370px) {
  .site-header .container,
  .header .container,
  .header-row,
  .header-inner {
    grid-template-columns: 48px minmax(0, 1fr) 44px !important;
    grid-template-rows: 29px 23px 38px !important;
    min-height: 106px !important;
  }

  .brand-title,
  .site-title,
  .brand h1,
  .site-brand h1 {
    font-size: 20px !important;
  }

  .brand-sub,
  .brand-subtitle,
  .site-subtitle,
  .brand p,
  .site-brand p {
    font-size: 15px !important;
  }

  .mobile-menu-toggle {
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
  }

  .mobile-menu-toggle span {
    width: 24px !important;
    height: 4px !important;
  }

  .header-contact .tel-btn,
  .header-contact a[href^="tel"],
  a.tel-btn,
  .phone-pill,
  .tel-pill {
    min-width: 220px !important;
    max-width: 232px !important;
    font-size: 13.6px !important;
  }

  .footer-address {
    font-size: 9.6px !important;
  }
}


/* ===== assets/css/site-final-v45.css ===== */


/* v45 final: service-fit alignment, bottom bar, footer address, mobile horizontal lock */

/* Align second line of 适合 content with text after the colon. */
.service-fit{
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr)!important;
  column-gap:0!important;
  align-items:start!important;
  margin:0!important;
}
.service-fit .fit-label{
  white-space:nowrap!important;
}
.service-fit .fit-text{
  display:block!important;
  min-width:0!important;
  line-height:1.65!important;
}

/* Footer address: lower lines align with the 〒 content, not the label. */
.footer-address{
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr)!important;
  column-gap:0!important;
  align-items:start!important;
}
.footer-address .footer-label{
  white-space:nowrap!important;
}
.footer-address .footer-address-text{
  display:block!important;
  min-width:0!important;
  line-height:1.65!important;
}

@media(max-width:640px){
  html, body{
    width:100%!important;
    max-width:100%!important;
    overflow-x:hidden!important;
    position:relative!important;
  }

  body{
    overscroll-behavior-x:none!important;
    padding-bottom:58px!important;
  }

  *,
  *::before,
  *::after{
    box-sizing:border-box!important;
  }

  .site-header,
  .site-header *,
  main,
  section,
  .container,
  .hero,
  .hero-slider,
  .hero-slide,
  .sticky-mobile,
  .site-footer{
    max-width:100vw!important;
  }

  .container{
    width:100%!important;
    overflow-x:clip!important;
  }

  .hero,
  .hero-slider,
  .hero-slide{
    margin-left:0!important;
    margin-right:0!important;
    transform:none!important;
    translate:none!important;
  }

  .hero img,
  .hero-slide img,
  .hero-picture img{
    max-width:100%!important;
  }

  .issue-grid,
  .service-price-grid,
  .detail-scene-grid,
  .area-grid,
  .flow-list,
  .why-grid,
  .qr-grid-clean,
  .footer-grid{
    width:100%!important;
    max-width:100%!important;
    overflow-x:hidden!important;
  }

  /* Flow: keep 5 columns and center text. */
  .flow-list{
    display:grid!important;
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    gap:5px!important;
  }

  .flow-item{
    min-width:0!important;
    padding:8px 4px!important;
    text-align:center!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:flex-start!important;
  }

  .flow-item b,
  .flow-item strong,
  .flow-item span{
    display:block!important;
    width:100%!important;
    text-align:center!important;
  }

  .flow-item span{
    min-height:2.5em!important;
    font-size:9.5px!important;
    line-height:1.25!important;
    word-break:keep-all!important;
    overflow-wrap:normal!important;
  }

  /* Sticky mobile bottom unified style */
  .sticky-mobile{
    position:fixed!important;
    left:0!important;
    right:0!important;
    bottom:0!important;
    width:100%!important;
    max-width:100vw!important;
    height:54px!important;
    display:grid!important;
    grid-template-columns:repeat(3,1fr)!important;
    background:#fff!important;
    border-top:1px solid #d8e7f3!important;
    box-shadow:0 -8px 22px rgba(11,63,120,.08)!important;
    z-index:9997!important;
    overflow:hidden!important;
  }

  .sticky-mobile a,
  .sticky-mobile .sticky-mobile-link,
  .sticky-mobile .tel-btn{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    height:54px!important;
    min-width:0!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:#fff!important;
    color:#0b3f78!important;
    font-size:15px!important;
    font-weight:900!important;
    line-height:1!important;
    letter-spacing:0!important;
    text-align:center!important;
    text-decoration:none!important;
    white-space:nowrap!important;
    box-sizing:border-box!important;
  }

  .sticky-mobile a+a{
    border-left:1px solid #eef3f8!important;
  }

  .sticky-mobile a:active{
    background:#eef7ff!important;
  }

  .footer-address .footer-address-text{
    line-height:1.45!important;
  }
}


/* ===== assets/css/site-final-v46.css ===== */


/* v46 final patch */

/* price-note label alignment */
.price-note-line{
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr)!important;
  column-gap:0!important;
  align-items:start!important;
  margin:0 0 8px!important;
}
.price-note-line strong{white-space:nowrap!important;}
.price-note-line span{display:block!important;min-width:0!important;}

/* service fit label alignment */
.service-fit{
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr)!important;
  column-gap:0!important;
  align-items:start!important;
}
.service-fit .fit-label{white-space:nowrap!important;}
.service-fit .fit-text{display:block!important;min-width:0!important;}

/* footer address alignment */
.footer-address{
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr)!important;
  column-gap:0!important;
  align-items:start!important;
}
.footer-address .footer-label{white-space:nowrap!important;}
.footer-address .footer-address-text{display:block!important;min-width:0!important;}

@media(max-width:640px){
  html,body{
    width:100%!important;
    max-width:100%!important;
    overflow-x:hidden!important;
    overscroll-behavior-x:none!important;
  }
  *,*::before,*::after{box-sizing:border-box!important;}
  main,section,.container,.hero,.hero-slider,.hero-slide,.sticky-mobile,.site-footer{max-width:100vw!important;}
  .container{width:100%!important;overflow-x:clip!important;}
  .hero,.hero-slider,.hero-slide{margin-left:0!important;margin-right:0!important;transform:none!important;translate:none!important;}
  .hero img,.hero-slide img,.hero-picture img{max-width:100%!important;}

  /* Flow visual fix */
  .flow-list{
    display:grid!important;
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    gap:6px!important;
    align-items:stretch!important;
  }
  .flow-item{
    min-width:0!important;
    min-height:126px!important;
    padding:8px 4px 9px!important;
    border-radius:14px!important;
    display:grid!important;
    grid-template-rows:38px auto minmax(38px,auto)!important;
    align-items:start!important;
    justify-items:center!important;
    text-align:center!important;
    overflow:visible!important;
  }
  .flow-item b{
    width:36px!important;
    height:36px!important;
    min-width:36px!important;
    min-height:36px!important;
    aspect-ratio:1 / 1!important;
    border-radius:50%!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    font-size:12px!important;
    line-height:1!important;
    margin:0 auto!important;
    padding:0!important;
    transform:none!important;
  }
  .flow-item strong{
    display:block!important;
    width:100%!important;
    font-size:12.5px!important;
    line-height:1.25!important;
    margin:5px 0 3px!important;
    white-space:normal!important;
    overflow:visible!important;
    word-break:keep-all!important;
    overflow-wrap:normal!important;
  }
  .flow-item span{
    display:block!important;
    width:100%!important;
    font-size:10px!important;
    line-height:1.25!important;
    white-space:normal!important;
    overflow:visible!important;
    word-break:keep-all!important;
    overflow-wrap:normal!important;
  }

  .issue-grid{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:12px!important;
  }

  .price-note-line{
    font-size:13.5px!important;
    line-height:1.75!important;
    margin-bottom:6px!important;
  }
}


/* ===== assets/css/visual-final-v47.css ===== */


/* v47 final visual fix. Desktop is not changed. */
@media (max-width: 640px) {
  html, body {
    overflow-x: hidden !important;
    max-width: 100% !important;
  }

  .flow-card {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  .flow-list {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 6px !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: visible !important;
    align-items: stretch !important;
  }

  .flow-item {
    min-width: 0 !important;
    min-height: 132px !important;
    padding: 8px 3px 9px !important;
    border-radius: 12px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-start !important;
    text-align: center !important;
    overflow: hidden !important;
  }

  .flow-item b {
    width: 34px !important;
    height: 34px !important;
    min-width: 34px !important;
    min-height: 34px !important;
    max-width: 34px !important;
    max-height: 34px !important;
    aspect-ratio: 1 / 1 !important;
    border-radius: 50% !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    margin: 0 auto 8px !important;
    line-height: 1 !important;
    font-size: 12px !important;
    transform: none !important;
    flex: 0 0 34px !important;
  }

  .flow-item strong {
    display: block !important;
    width: 100% !important;
    min-height: 30px !important;
    margin: 0 0 5px !important;
    font-size: 12px !important;
    line-height: 1.25 !important;
    text-align: center !important;
    white-space: normal !important;
    word-break: keep-all !important;
    overflow-wrap: anywhere !important;
  }

  .flow-item span {
    display: block !important;
    width: 100% !important;
    min-height: 34px !important;
    font-size: 9.2px !important;
    line-height: 1.25 !important;
    text-align: center !important;
    white-space: normal !important;
    word-break: keep-all !important;
    overflow-wrap: anywhere !important;
  }

  .price-note-line {
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr) !important;
    align-items: start !important;
    column-gap: 0 !important;
    margin-bottom: 8px !important;
  }

  .price-note-line strong {
    white-space: nowrap !important;
  }

  .price-note-line span {
    display: block !important;
    min-width: 0 !important;
    line-height: 1.75 !important;
  }

  .issue-grid {
    grid-template-columns: 1fr 1fr !important;
  }
}

@media (max-width: 370px) {
  .flow-list {
    gap: 4px !important;
  }

  .flow-item {
    padding-left: 2px !important;
    padding-right: 2px !important;
  }

  .flow-item b {
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
    min-height: 30px !important;
    flex-basis: 30px !important;
    font-size: 11px !important;
  }

  .flow-item strong {
    font-size: 10.5px !important;
  }

  .flow-item span {
    font-size: 8.3px !important;
  }
}


/* ===== assets/css/form-resend-v48.css ===== */


/* v48 real email form via Cloudflare Pages Function + Resend */
.hp-field {
  position: absolute !important;
  left: -10000px !important;
  top: auto !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

.form-success {
  margin: 10px 0 0;
  color: #067647;
  font-weight: 700;
  line-height: 1.6;
}

.form-error {
  margin: 10px 0 0;
  color: #b42318;
  font-weight: 700;
  line-height: 1.6;
}

.contact-form button[disabled] {
  opacity: .65;
  cursor: wait;
}


/* ===== assets/css/seo-final-v49.css ===== */


/* v49 SEO additions */
.seo-h1 {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.seo-content-block {
  background: #f6fbff;
}
.seo-content-card {
  background: #fff;
  border: 1px solid #d8e7f3;
  border-radius: 24px;
  padding: 32px;
  box-shadow: 0 16px 40px rgba(11,63,120,.06);
}
.seo-content-card h2 {
  margin-top: 0;
  color: #0b3f78;
}
.seo-content-card h3 {
  margin: 22px 0 8px;
  color: #0b3f78;
}
.seo-content-card p {
  color: #5c6b7a;
  line-height: 1.9;
  margin: 0;
}
@media(max-width:640px){
  .seo-content-card {
    padding: 22px 18px;
    border-radius: 18px;
  }
}


/* ===== assets/css/header-banner-fix-v51.css ===== */


/* v51 final header and banner fix.
   Mobile-only. Desktop layout, SEO title/meta, form, and content are not changed. */
@media (max-width: 640px) {
  /* Header visible title: keep SEO meaning, but do not show two keyword phrases split by | */
  .brand-title,
  .site-title,
  .brand h1,
  .site-brand h1 {
    font-size: 21px !important;
    line-height: 1.1 !important;
    letter-spacing: -0.04em !important;
    white-space: nowrap !important;
    overflow: visible !important;
    text-overflow: clip !important;
    max-width: 100% !important;
  }

  .brand-sub,
  .brand-subtitle,
  .site-subtitle,
  .brand p,
  .site-brand p {
    font-size: 15.5px !important;
    line-height: 1.16 !important;
  }

  /* Mobile hero: force exactly one slide to occupy the hero area.
     This prevents the first and second banners from stacking vertically. */
  .hero[data-hero-slider],
  section.hero[data-hero-slider] {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    max-width: 100vw !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    background: #062f5c !important;
  }

  .hero[data-hero-slider] .hero-slide {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    height: 0 !important;
    max-height: 0 !important;
    overflow: hidden !important;
    pointer-events: none !important;
    position: relative !important;
    inset: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    translate: none !important;
  }

  .hero[data-hero-slider] .hero-slide.active {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    height: auto !important;
    max-height: none !important;
    overflow: hidden !important;
    pointer-events: auto !important;
  }

  .hero[data-hero-slider] .hero-slide:not(.active),
  .hero[data-hero-slider] .hero-slide:not(.active) *,
  .hero[data-hero-slider] .hero-slide:not(.active) picture,
  .hero[data-hero-slider] .hero-slide:not(.active) img {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    max-height: 0 !important;
  }

  .hero[data-hero-slider] picture,
  .hero[data-hero-slider] .hero-picture,
  .hero[data-hero-slider] .hero-slide.active picture {
    display: block !important;
    width: 100% !important;
    max-width: 100vw !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .hero[data-hero-slider] .hero-slide.active img,
  .hero[data-hero-slider] img.mobile-hero-img,
  .hero[data-hero-slider] img.mobile-full-banner {
    display: block !important;
    width: 100% !important;
    max-width: 100vw !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    object-fit: contain !important;
    object-position: center center !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #062f5c !important;
  }

  .hero[data-hero-slider] .hero-dots {
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 14px !important;
    z-index: 5 !important;
  }
}

@media (max-width: 370px) {
  .brand-title,
  .site-title,
  .brand h1,
  .site-brand h1 {
    font-size: 19.5px !important;
    letter-spacing: -0.055em !important;
  }
}


/* ===== assets/css/fixed-header-v52.css ===== */


/* v52 fixed header.
   Purpose: keep the page header fixed while scrolling/clicking.
   Content, SEO, form, and desktop/mobile page sections are not changed. */

:root {
  --fixed-header-h: 82px;
}

html {
  scroll-padding-top: calc(var(--fixed-header-h) + 14px);
}

body {
  padding-top: var(--fixed-header-h) !important;
}

.header,
.site-header,
header.header,
header.site-header {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  z-index: 10000 !important;
  background: #fff !important;
  transform: translateZ(0) !important;
  will-change: transform !important;
}

/* Anchor targets should not be hidden under the fixed header. */
section[id],
div[id],
.form-card[id],
#mail-form,
#wechat-qr,
#quick-contact {
  scroll-margin-top: calc(var(--fixed-header-h) + 18px) !important;
}

@media (max-width: 640px) {
  :root {
    --fixed-header-h: 124px;
  }

  body {
    padding-top: var(--fixed-header-h) !important;
    padding-bottom: 58px !important;
  }

  .header,
  .site-header,
  header.header,
  header.site-header {
    box-shadow: 0 2px 14px rgba(11, 63, 120, .08) !important;
  }

  html {
    scroll-padding-top: calc(var(--fixed-header-h) + 12px);
  }

  section[id],
  div[id],
  .form-card[id],
  #mail-form,
  #wechat-qr,
  #quick-contact {
    scroll-margin-top: calc(var(--fixed-header-h) + 14px) !important;
  }
}

@media (max-width: 370px) {
  :root {
    --fixed-header-h: 120px;
  }
}


/* ===== assets/css/fixed-header-clean-v53.css ===== */


/* v53 fixed header cleanup.
   Removes the old blue topbar strip that appeared between the fixed header and banner.
   Header remains fixed; page offset is controlled by --fixed-header-h. */

:root {
  --fixed-header-h: 108px;
}

/* This dark strip is redundant once the header is fixed. It caused the extra bar above the banner. */
.topbar {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  max-height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden !important;
}

html {
  scroll-padding-top: calc(var(--fixed-header-h) + 14px) !important;
}

body {
  padding-top: var(--fixed-header-h) !important;
}

.header,
.site-header,
header.header,
header.site-header {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  z-index: 10000 !important;
  background: #ffffff !important;
  box-shadow: 0 2px 14px rgba(11, 63, 120, .08) !important;
}

/* Make banner start immediately after the fixed header. */
main {
  margin-top: 0 !important;
}

.hero,
section.hero {
  margin-top: 0 !important;
}

/* Anchor targets should not be hidden by fixed header. */
section[id],
div[id],
.form-card[id],
#mail-form,
#wechat-qr,
#quick-contact {
  scroll-margin-top: calc(var(--fixed-header-h) + 16px) !important;
}

@media (max-width: 640px) {
  :root {
    --fixed-header-h: 124px;
  }

  body {
    padding-top: var(--fixed-header-h) !important;
    padding-bottom: 58px !important;
  }

  html {
    scroll-padding-top: calc(var(--fixed-header-h) + 12px) !important;
  }

  section[id],
  div[id],
  .form-card[id],
  #mail-form,
  #wechat-qr,
  #quick-contact {
    scroll-margin-top: calc(var(--fixed-header-h) + 14px) !important;
  }
}

@media (max-width: 370px) {
  :root {
    --fixed-header-h: 120px;
  }
}


/* ===== assets/css/footer-fix-v54.css ===== */


/* v54 footer wording fix */
.footer-links a .nowrap,
.nowrap {
  white-space: nowrap !important;
}


/* ===== assets/css/tablet-fix-v56.css ===== */


/* v56 tablet fix.
   Scope: tablet widths only, 641px-980px.
   Mobile <=640 and desktop >=981 are not changed. */
@media (min-width: 641px) and (max-width: 980px) {
  html,
  body {
    max-width: 100% !important;
    overflow-x: hidden !important;
    overscroll-behavior-x: none !important;
  }

  .topbar {
    display: none !important;
    height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
  }

  .header,
  .site-header,
  header.header,
  header.site-header {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    z-index: 10000 !important;
    background: #fff !important;
    box-shadow: 0 2px 14px rgba(11, 63, 120, .08) !important;
  }

  .header-row {
    width: 100% !important;
    max-width: min(100%, 940px) !important;
    min-height: 86px !important;
    padding: 12px 18px !important;
    margin: 0 auto !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 210px 46px !important;
    column-gap: 14px !important;
    align-items: center !important;
  }

  .brand {
    min-width: 0 !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
  }

  .brand img {
    width: 48px !important;
    height: 48px !important;
    flex: 0 0 48px !important;
  }

  .brand > span {
    min-width: 0 !important;
  }

  .brand-title {
    display: block !important;
    font-size: 21px !important;
    line-height: 1.16 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  .brand-sub {
    display: block !important;
    font-size: 13px !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  /* Tablet nav: hide normal nav but ALWAYS show hamburger between 641-980px. */
  nav.nav.site-nav,
  nav.nav,
  nav.site-nav {
    display: none !important;
    position: absolute !important;
    top: calc(100% + 8px) !important;
    left: 18px !important;
    right: 18px !important;
    z-index: 10001 !important;
    padding: 12px !important;
    background: #fff !important;
    border: 1px solid #d8e7f3 !important;
    border-radius: 18px !important;
    box-shadow: 0 18px 44px rgba(11, 63, 120, .16) !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  body.nav-open nav.nav.site-nav,
  body.nav-open nav.nav,
  body.nav-open nav.site-nav {
    display: grid !important;
  }

  nav.nav.site-nav a,
  nav.nav a,
  nav.site-nav a {
    display: block !important;
    text-align: center !important;
    padding: 12px 10px !important;
    border-radius: 999px !important;
    background: #f4f8fb !important;
    color: #0b3f78 !important;
    font-weight: 900 !important;
    white-space: nowrap !important;
  }

  .mobile-menu-toggle {
    display: flex !important;
    width: 46px !important;
    height: 46px !important;
    min-width: 46px !important;
    padding: 0 !important;
    margin: 0 !important;
    align-items: center !important;
    justify-content: center !important;
    flex-direction: column !important;
    gap: 5px !important;
    border: 1px solid #d8e7f3 !important;
    border-radius: 12px !important;
    background: #fff !important;
    justify-self: end !important;
    cursor: pointer !important;
  }

  .mobile-menu-toggle span {
    display: block !important;
    width: 24px !important;
    height: 3px !important;
    border-radius: 99px !important;
    background: #0b3f78 !important;
  }

  .header-contact.vertical-contact,
  .header-contact {
    display: flex !important;
    width: 210px !important;
    min-width: 210px !important;
    max-width: 210px !important;
    justify-self: end !important;
  }

  .header-contact .wechat-top-btn {
    display: none !important;
  }

  .header-contact .tel-btn,
  .header-contact a[href^="tel"] {
    display: inline-flex !important;
    width: 210px !important;
    max-width: 210px !important;
    min-width: 210px !important;
    height: 40px !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 8px 12px !important;
    font-size: 14px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    white-space: nowrap !important;
    border-radius: 999px !important;
    color: #0b3f78 !important;
    background: #fff !important;
    border: 1px solid #d8e7f3 !important;
  }

  main,
  .hero,
  section.hero {
    margin-top: 0 !important;
    max-width: 100vw !important;
    overflow-x: hidden !important;
  }

  /* Tablet: use desktop-wide banner ratio, not mobile crop. */
  .hero-slide img,
  .hero-picture img,
  img.mobile-hero-img,
  img.mobile-full-banner {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    transform: none !important;
    object-fit: contain !important;
  }

  .issue-grid,
  .service-price-grid,
  .why-grid,
  .area-grid,
  .footer-grid {
    max-width: 100% !important;
    overflow-x: hidden !important;
  }
}

/* Slightly smaller tablet width. */
@media (min-width: 641px) and (max-width: 760px) {
  .header-row {
    grid-template-columns: minmax(0, 1fr) 188px 44px !important;
    column-gap: 10px !important;
    padding-left: 14px !important;
    padding-right: 14px !important;
  }

  .brand-title {
    font-size: 18px !important;
  }

  .brand-sub {
    font-size: 12px !important;
  }

  .header-contact.vertical-contact,
  .header-contact,
  .header-contact .tel-btn,
  .header-contact a[href^="tel"] {
    width: 188px !important;
    max-width: 188px !important;
    min-width: 188px !important;
    font-size: 12.5px !important;
  }

  .mobile-menu-toggle {
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
  }
}


/* ===== assets/css/form-required-zoom-fix-v57.css ===== */


/* v57 form usability fix:
   - visually marks required fields
   - prevents iOS/Safari auto-zoom on form focus by using 16px controls on mobile/tablet */

.field-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.required-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 18px;
  padding: 2px 7px;
  border-radius: 999px;
  background: #fff0e6;
  color: #c2410c;
  border: 1px solid #ffd7b5;
  font-size: 12px;
  line-height: 1.1;
  font-weight: 900;
  vertical-align: middle;
  white-space: nowrap;
}

.privacy-agree .agree-badge {
  margin-right: 6px;
}

.required-field input[required],
.required-field textarea[required] {
  border-color: #cfe1ef;
}

/* Mobile/tablet focus zoom fix. Scope below 980px to avoid changing desktop. */
@media (max-width: 980px) {
  input,
  select,
  textarea,
  button {
    font-size: 16px !important;
  }

  input,
  select,
  textarea {
    line-height: 1.35 !important;
    -webkit-text-size-adjust: 100% !important;
    text-size-adjust: 100% !important;
    touch-action: manipulation !important;
  }

  input:focus,
  select:focus,
  textarea:focus {
    font-size: 16px !important;
    transform: none !important;
    zoom: 1 !important;
  }

  .contact-form,
  .form-grid,
  .form-card {
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  .required-badge {
    font-size: 12px !important;
  }
}

@media (max-width: 640px) {
  .field-label {
    gap: 6px;
  }

  input,
  select,
  textarea {
    min-height: 46px !important;
    padding: 13px 14px !important;
  }

  textarea {
    min-height: 170px !important;
  }

  .privacy-agree {
    align-items: flex-start !important;
  }

  .privacy-agree input[type="checkbox"] {
    margin-top: 3px !important;
  }
}


/* ===== assets/css/mobile-footer-address-v61.css ===== */


/* v61 mobile footer address adjustment */
.footer-address-text .address-line {
  display: block;
  white-space: nowrap;
  line-height: 1.45;
}

@media (max-width: 640px) {
  .footer-address {
    align-items: flex-start !important;
  }

  .footer-address .footer-label {
    flex: 0 0 auto;
    white-space: nowrap;
  }

  .footer-address-text {
    display: inline-block !important;
    min-width: 0 !important;
  }

  .footer-address-text .address-line {
    display: block;
    white-space: nowrap;
  }
}


/* ===== assets/css/language-seo-entry-v62.css ===== */


/* v62: language switch, safe header text split, footer link text, and standalone SEO pages. No core mobile layout rewrite. */
.brand-sub {
  color: inherit;
}
.brand-sub-line {
  display: inline;
}
.language-switch {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  flex-wrap: wrap;
  font-size: 12px;
  line-height: 1.35;
  color: #6a7482;
}
.language-switch a {
  color: #0b4f86;
  text-decoration: none;
  font-weight: 800;
}
.language-switch span {
  color: #a7b0bc;
}
.header-contact .language-switch {
  margin-top: 6px;
  width: 100%;
}
.footer-language-switch {
  margin-top: 10px;
}
.footer-language-switch .language-switch {
  justify-content: flex-start;
}
.seo-landing-hero {
  background: linear-gradient(180deg, #f4f9ff 0%, #ffffff 100%);
}
.seo-detail-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.seo-detail-card {
  background: #fff;
  border: 1px solid #dce6f0;
  border-radius: 18px;
  padding: 22px;
  box-shadow: 0 10px 28px rgba(14, 54, 97, .06);
}
.seo-detail-card h2 {
  margin: 0 0 12px;
  font-size: 20px;
  color: #073b68;
}
.seo-detail-card ul {
  margin: 0;
  padding-left: 1.15em;
}
.seo-detail-card li {
  margin: 7px 0;
  line-height: 1.65;
}
.seo-actions {
  justify-content: center;
}
.seo-keyword-cloud {
  justify-content: center;
}
.cta-box {
  text-align: center;
  background: #fff;
  border: 1px solid #dce6f0;
  border-radius: 22px;
  padding: 30px;
  box-shadow: 0 12px 30px rgba(14, 54, 97, .06);
}
.cta-box .primary,
.cta-box .secondary {
  margin: 8px;
}
@media (max-width: 860px) {
  .seo-detail-grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 640px) {
  .brand-sub {
    display: block;
    max-width: 100%;
  }
  .brand-sub-line {
    display: block;
  }
  .brand-sub-sep {
    display: none;
  }
  .header-contact .language-switch {
    margin-top: 7px;
    font-size: 11px;
    gap: 4px;
  }
  .header-contact .language-switch a {
    font-weight: 800;
  }
  .footer-language-switch .language-switch {
    justify-content: flex-start;
    font-size: 12px;
  }
  .seo-detail-card {
    padding: 18px;
    border-radius: 16px;
  }
  .seo-detail-card h2 {
    font-size: 18px;
  }
  .cta-box {
    padding: 22px 16px;
  }
}


/* ===== assets/css/language-seo-entry-v63.css ===== */


/* v63: fixed language switch placement, partner nav, and cleaner footer language block. */
.header-language-row {
  display: flex;
  justify-content: flex-end;
  width: 100%;
  margin-top: -6px;
}
.header-language-row .language-switch {
  justify-content: flex-end;
}
.footer-language-block {
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid rgba(255,255,255,.16);
}
.footer-language-block h3 {
  margin: 0 0 8px;
  font-size: 16px;
}
.footer-language-block .language-switch {
  justify-content: flex-start;
  gap: 5px;
}
.footer-language-block .language-switch a {
  color: #cfe7ff;
}
.footer-language-block .language-switch span {
  color: rgba(255,255,255,.35);
}
.partnership-badge-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
}
.partnership-badge-list span {
  display: inline-flex;
  border: 1px solid #dce6f0;
  background: #fff;
  color: #0b4f86;
  border-radius: 999px;
  padding: 7px 13px;
  font-weight: 800;
  font-size: 14px;
}
@media (max-width: 640px) {
  .header .container,
  .header-row,
  .header-inner {
    grid-template-rows: 28px 42px 36px 24px !important;
    grid-template-areas:
      "logo brand menu"
      "logo sub   menu"
      ".    phone phone"
      "lang lang  lang" !important;
    min-height: 136px !important;
    row-gap: 3px !important;
  }
  .header-language-row {
    grid-area: lang !important;
    width: 100% !important;
    max-width: 100% !important;
    justify-content: center !important;
    align-self: center !important;
    justify-self: center !important;
    margin: 0 !important;
    padding: 0 4px !important;
    display: flex !important;
    overflow: visible !important;
  }
  .header-language-row .language-switch {
    width: 100% !important;
    justify-content: center !important;
    flex-wrap: nowrap !important;
    gap: 3px !important;
    font-size: 11px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
  }
  .header-language-row .language-switch a {
    font-weight: 800 !important;
    letter-spacing: 0 !important;
  }
  .header-language-row .language-switch span {
    margin: 0 1px !important;
  }
  .header-contact .language-switch {
    display: none !important;
  }
  .brand-sub {
    line-height: 1.17 !important;
  }
  .brand-sub-line {
    display: block !important;
  }
  .brand-sub-sep {
    display: none !important;
  }
  .site-footer .footer-grid {
    gap: 24px !important;
  }
  .footer-language-block {
    margin-top: 14px;
    padding-top: 12px;
  }
  .footer-language-block .language-switch {
    font-size: 12px !important;
    line-height: 1.45 !important;
    flex-wrap: wrap !important;
  }
}


/* ===== assets/css/language-seo-entry-v64.css ===== */


/* v64: restore desktop main menu to 4 items, keep partnership out of header nav, clean language layout. */
@media (min-width: 641px) {
  .site-nav {
    gap: 38px !important;
  }
  .header-row {
    grid-template-columns: auto auto auto auto !important;
  }
  .header-language-row {
    align-self: center !important;
    margin-top: 0 !important;
    min-width: 210px;
  }
  .header-language-row .language-switch {
    justify-content: flex-end !important;
    font-size: 13px !important;
    row-gap: 6px !important;
  }
}
.footer-language-block {
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid rgba(255,255,255,.16);
}
.footer-language-block h3 {
  margin: 0 0 8px;
  font-size: 16px;
}
.footer-language-block .language-switch {
  justify-content: flex-start;
}
.site-footer .language-switch a {
  color: #d5ecff !important;
}
.site-footer .language-switch span {
  color: rgba(255,255,255,.38) !important;
}
@media (max-width: 640px) {
  .header-language-row {
    grid-area: lang !important;
    width: 100% !important;
    display: flex !important;
    justify-content: center !important;
  }
  .header-language-row .language-switch {
    display: flex !important;
    justify-content: center !important;
    flex-wrap: nowrap !important;
    width: 100% !important;
    font-size: 11px !important;
    white-space: nowrap !important;
  }
  .footer-language-block .language-switch {
    justify-content: flex-start !important;
    flex-wrap: wrap !important;
    font-size: 12px !important;
  }
}


/* ===== assets/css/v65-header-nav-partner-layout.css ===== */

/* v65: desktop header nav restore, second-row tools, language links, and QR sizing */
.v65-header {
  background: #fff;
  border-bottom: 1px solid var(--line);
  box-shadow: 0 2px 16px rgba(10, 48, 90, .05);
  position: sticky;
  top: 0;
  z-index: 40;
}

.v65-header .container,
.topbar .container {
  width: min(1220px, calc(100% - 40px));
}

.v65-header .header-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  padding: 13px 0 9px;
}

.v65-header .brand {
  flex: 0 1 420px;
  min-width: 280px;
}

.v65-header .site-nav {
  display: flex;
  flex: 1 1 auto;
  justify-content: flex-end;
  align-items: center;
  gap: 14px;
}

.v65-header .site-nav a {
  font-size: 15px;
  line-height: 1.2;
  padding: 9px 11px;
  white-space: nowrap;
}

.v65-header-tools {
  border-top: 1px solid #edf3f8;
  background: #fbfdff;
}

.v65-header-tools-inner {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 12px 18px;
  padding: 8px 0 10px;
}

.v65-tools-note {
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}

.v65-header .language-switch {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 5px;
  color: var(--blue);
  font-size: 13px;
  font-weight: 900;
}

.v65-header .language-switch a {
  color: var(--blue);
}

.v65-header .language-switch .is-current {
  color: var(--green);
}

.v65-wechat-btn {
  background: #eef7ff;
  border: 1px solid var(--line);
  color: var(--blue);
  font-weight: 900;
  padding: 8px 14px;
  border-radius: 999px;
  white-space: nowrap;
}

.v65-tel-btn {
  background: var(--orange);
  color: #fff;
  font-weight: 900;
  padding: 8px 15px;
  border-radius: 999px;
  white-space: nowrap;
}

.v65-header .mobile-menu-toggle {
  display: none;
}

.qr-image-wrap {
  width: 220px;
  max-width: 100%;
  aspect-ratio: 1 / 1;
  display: grid;
  place-items: center;
  margin: 0 auto;
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
}

.qr-image-wrap img,
.wechat-image-wrap img,
.line-image-wrap img,
.qr-box img {
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  display: block;
}

.wechat-image-wrap,
.line-image-wrap {
  width: 220px !important;
  height: auto !important;
  aspect-ratio: 1 / 1;
}

.qr-box {
  min-height: 330px;
}

.language-seo-card,
.seo-detail-card,
.partnership-card {
  word-break: normal;
}

@media (max-width: 1120px) {
  .v65-header .header-row {
    gap: 14px;
  }

  .v65-header .brand {
    flex-basis: 380px;
  }

  .v65-header .site-nav {
    gap: 6px;
  }

  .v65-header .site-nav a {
    padding: 9px 8px;
  }
}

@media (max-width: 860px) {
  .topbar {
    display: none !important;
  }

  .v65-header {
    position: sticky;
    top: 0;
  }

  .v65-header .container {
    width: min(100% - 18px, 1220px);
  }

  .v65-header .header-row {
    display: grid !important;
    grid-template-columns: 42px minmax(0, 1fr) 42px !important;
    gap: 8px !important;
    align-items: center !important;
    padding: 8px 0 4px !important;
    min-height: auto !important;
  }

  .v65-header .brand {
    display: grid !important;
    grid-template-columns: 42px minmax(0, 1fr);
    align-items: center;
    gap: 7px;
    grid-column: 1 / 3 !important;
    min-width: 0 !important;
    width: auto !important;
  }

  .v65-header .brand > img {
    grid-column: 1 !important;
    width: 40px !important;
    max-width: 40px !important;
    height: 40px !important;
  }

  .v65-header .brand > span {
    grid-column: 2 !important;
    min-width: 0 !important;
    overflow: hidden !important;
  }

  .v65-header .brand-title {
    display: block !important;
    font-size: 14px !important;
    line-height: 1.16 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  .v65-header .brand-sub {
    display: block !important;
    margin-top: 2px !important;
    font-size: 11px !important;
    line-height: 1.2 !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
  }

  .v65-header .brand-sub-line {
    display: block;
  }

  .v65-header .brand-sub-sep {
    display: none;
  }

  .v65-header .mobile-menu-toggle {
    display: flex !important;
    grid-column: 3 !important;
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    align-items: center !important;
    justify-content: center !important;
    flex-direction: column !important;
    gap: 5px !important;
    border: 1px solid var(--line) !important;
    border-radius: 12px !important;
    background: #fff !important;
    cursor: pointer !important;
    z-index: 60 !important;
  }

  .v65-header .mobile-menu-toggle span {
    display: block !important;
    width: 21px !important;
    height: 2px !important;
    border-radius: 99px !important;
    background: var(--blue) !important;
  }

  .v65-header nav.nav.site-nav {
    display: none !important;
    position: absolute !important;
    top: calc(100% + 6px) !important;
    left: 9px !important;
    right: 9px !important;
    z-index: 59 !important;
    padding: 10px !important;
    background: #fff !important;
    border: 1px solid var(--line) !important;
    border-radius: 16px !important;
    box-shadow: 0 18px 44px rgba(11, 63, 120, .24) !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
  }

  body.nav-open .v65-header nav.nav.site-nav,
  .v65-header .mobile-nav-checkbox:checked ~ nav.nav.site-nav {
    display: grid !important;
  }

  .v65-header nav.nav.site-nav a {
    display: block !important;
    padding: 11px 8px !important;
    border-radius: 12px !important;
    text-align: center !important;
    font-size: 14px !important;
    line-height: 1.3 !important;
    color: var(--blue) !important;
    background: #f4f8fb !important;
    font-weight: 900 !important;
  }

  .v65-header-tools-inner {
    justify-content: center;
    gap: 6px;
    padding: 3px 0 8px;
  }

  .v65-tools-note,
  .v65-wechat-btn {
    display: none !important;
  }

  .v65-tel-btn {
    width: min(260px, 88vw);
    text-align: center;
    padding: 8px 12px;
    font-size: 12px;
    line-height: 1.2;
  }

  .v65-header .language-switch {
    width: 100%;
    justify-content: center;
    font-size: 11.5px;
    line-height: 1.25;
    gap: 4px;
  }
}

@media (max-width: 640px) {
  .qr-image-wrap,
  .wechat-image-wrap,
  .line-image-wrap {
    width: min(245px, 78vw) !important;
  }

  .qr-box {
    min-height: auto;
  }
}

@media print {
  .topbar,
  .v65-header-tools,
  .mobile-menu-toggle,
  .sticky-mobile {
    display: none !important;
  }
}


/* ===== assets/css/v66-keyword-visual-partner-final.css ===== */

/* v66: mobile header/footer repair, desktop nav tightening, SEO cards */
.v65-header .container,
.topbar .container {
  width: min(1180px, calc(100% - 48px));
}

.v65-tools-note {
  display: none !important;
}

.v65-wechat-btn::before {
  content: "";
}

.v65-header-tools-inner {
  justify-content: flex-end;
  gap: 12px 16px;
}

.v65-header .site-nav {
  gap: 16px;
}

.v65-header .site-nav a {
  font-size: 15px;
  padding: 9px 10px;
}

.seo-keyword-block,
.seo-intent-block,
.seo-faq-block {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: 0 12px 30px rgba(11, 63, 120, .07);
  padding: 28px;
}

.seo-intent-grid,
.partner-slot-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.partner-slot-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 24px;
  box-shadow: 0 12px 30px rgba(11, 63, 120, .07);
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.partner-slot-card h3,
.seo-keyword-block h2,
.seo-intent-block h2 {
  color: var(--blue);
}

.partner-slot-status {
  display: inline-flex;
  width: fit-content;
  border-radius: 999px;
  background: #eef7ff;
  color: var(--blue);
  font-weight: 900;
  font-size: 13px;
  padding: 5px 10px;
}

.partner-slot-card .btn,
.partner-coop-card .btn {
  margin-top: auto;
}

.partner-coop-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 32px;
  box-shadow: 0 12px 30px rgba(11, 63, 120, .07);
}

.partner-coop-card h2 {
  color: var(--blue);
}

.seo-natural-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}

.seo-natural-links a {
  display: inline-flex;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 8px 12px;
  color: var(--blue);
  background: #fff;
  font-weight: 900;
}

@media (max-width: 1100px) {
  .v65-header .container,
  .topbar .container {
    width: min(1000px, calc(100% - 32px));
  }

  .v65-header .brand {
    flex-basis: 360px;
    min-width: 250px;
  }

  .v65-header .brand-title {
    font-size: 17px;
  }

  .v65-header .brand-sub {
    font-size: 11px;
  }

  .v65-header .site-nav {
    gap: 8px;
  }

  .v65-header .site-nav a {
    font-size: 14px;
    padding: 8px 7px;
  }

  .v65-header-tools-inner {
    flex-wrap: wrap;
  }
}

@media (max-width: 980px) {
  .v65-header .brand {
    flex-basis: 320px;
  }

  .v65-header .site-nav {
    gap: 4px;
  }

  .v65-header .site-nav a {
    font-size: 13px;
    padding: 8px 6px;
  }
}

@media (max-width: 860px) {
  .v65-header .site-nav {
    gap: 8px;
  }
}

@media (max-width: 640px) {
  html,
  body {
    max-width: 100vw !important;
    overflow-x: hidden !important;
  }

  .topbar {
    display: none !important;
  }

  .v65-header {
    position: sticky !important;
    top: 0 !important;
    overflow: visible !important;
  }

  .v65-header .container {
    width: 100% !important;
  }

  .v65-header .header-row {
    display: grid !important;
    grid-template-columns: 54px minmax(0, 1fr) 48px !important;
    grid-template-areas:
      "logo brand menu"
      "logo sub menu" !important;
    grid-template-rows: auto auto !important;
    align-items: center !important;
    column-gap: 8px !important;
    row-gap: 2px !important;
    padding: 10px 14px 6px !important;
    min-height: auto !important;
  }

  .v65-header .brand {
    display: contents !important;
    min-width: 0 !important;
  }

  .v65-header .brand > img {
    grid-area: logo !important;
    width: 46px !important;
    height: 46px !important;
    max-width: 46px !important;
    object-fit: contain !important;
    align-self: center !important;
    justify-self: start !important;
  }

  .v65-header .brand > span {
    display: contents !important;
  }

  .v65-header .brand-title {
    grid-area: brand !important;
    display: block !important;
    font-size: 17px !important;
    line-height: 1.2 !important;
    font-weight: 900 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    color: #0b4778 !important;
    min-width: 0 !important;
  }

  .v65-header .brand-sub {
    grid-area: sub !important;
    display: block !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
    color: #66788c !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    min-width: 0 !important;
  }

  .v65-header .brand-sub-line {
    display: block !important;
  }

  .v65-header .brand-sub-sep {
    display: none !important;
  }

  .v65-header .mobile-menu-toggle {
    grid-area: menu !important;
    display: flex !important;
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    justify-self: end !important;
    align-self: center !important;
  }

  .v65-header-tools {
    border-top: 0 !important;
    background: #fff !important;
  }

  .v65-header-tools-inner {
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-template-areas:
      "phone"
      "lang" !important;
    justify-items: center !important;
    gap: 6px !important;
    width: 100% !important;
    padding: 0 14px 10px !important;
  }

  .v65-tools-note,
  .v65-wechat-btn {
    display: none !important;
  }

  .v65-tel-btn {
    grid-area: phone !important;
    width: min(100%, 330px) !important;
    height: 38px !important;
    padding: 0 14px !important;
    border-radius: 999px !important;
    font-size: 15px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    text-align: center !important;
    margin: 2px auto 0 !important;
  }

  .v65-header .language-switch {
    grid-area: lang !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    gap: 4px !important;
    width: 100% !important;
    max-width: 100% !important;
    font-size: 11px !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
    overflow: visible !important;
    margin: 0 !important;
  }

  .v65-header nav.nav.site-nav {
    top: calc(100% + 4px) !important;
    left: 12px !important;
    right: 12px !important;
    grid-template-columns: 1fr 1fr !important;
  }

  .footer-language-block {
    grid-column: 1 / -1 !important;
    margin-top: 12px !important;
    padding-top: 12px !important;
    border-top: 1px solid rgba(255, 255, 255, .16) !important;
  }

  .footer-language-block h3 {
    display: inline !important;
    margin-right: 8px !important;
    font-size: 14px !important;
  }

  .footer-language-block .language-switch {
    display: inline-flex !important;
    flex-wrap: nowrap !important;
    justify-content: flex-start !important;
    align-items: center !important;
    gap: 4px !important;
    font-size: 12px !important;
    line-height: 1.4 !important;
    white-space: nowrap !important;
  }

  .footer-language-block .language-switch a,
  .footer-language-block .language-switch span {
    display: inline !important;
  }

  .seo-intent-grid,
  .partner-slot-grid {
    grid-template-columns: 1fr !important;
  }

  .seo-keyword-block,
  .seo-intent-block,
  .partner-slot-card,
  .partner-coop-card {
    padding: 22px !important;
  }
}

@media (max-width: 380px) {
  .v65-header .brand-title {
    font-size: 16px !important;
  }

  .v65-header .brand-sub {
    font-size: 11px !important;
  }

  .v65-header .language-switch {
    font-size: 10.5px !important;
    gap: 3px !important;
  }

  .footer-language-block .language-switch {
    flex-wrap: wrap !important;
  }
}


/* ===== assets/css/v67-mobile-header-footer-scenarios-partner-fix.css ===== */

/* v67: targeted mobile header/footer cleanup and readable scenario/partner blocks */

.scenario-card,
.scenario-check-card,
.partner-slot-card,
.partner-coop-card {
  overflow-wrap: anywhere;
}

.scenario-grid,
.scenario-city-grid,
.scenario-check-grid {
  display: grid;
  gap: 18px;
}

.scenario-city-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.scenario-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.scenario-check-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.scenario-card,
.scenario-check-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: 0 12px 30px rgba(11, 63, 120, .07);
  padding: 24px;
}

.scenario-card h3,
.scenario-check-card h3 {
  color: var(--blue);
}

.scenario-card a {
  display: inline-flex;
  margin-top: 10px;
  color: var(--blue);
  font-weight: 900;
}

.footer-language-block {
  display: none !important;
}

@media (max-width: 1100px) {
  .v65-header .container,
  .topbar .container {
    width: min(1000px, calc(100% - 32px)) !important;
  }

  .v65-header .site-nav {
    gap: 8px !important;
  }

  .v65-header .site-nav a {
    font-size: 14px !important;
    padding: 8px 7px !important;
  }
}

@media (max-width: 640px) {
  html,
  body {
    max-width: 100vw !important;
    overflow-x: hidden !important;
  }

  .topbar {
    display: none !important;
  }

  .v65-header {
    position: sticky !important;
    top: 0 !important;
    overflow: visible !important;
    background: #fff !important;
  }

  .v65-header .container {
    width: 100% !important;
  }

  .v65-header .header-row {
    display: grid !important;
    grid-template-columns: 54px minmax(0, 1fr) 48px !important;
    grid-template-areas:
      "logo brand menu"
      "logo sub menu" !important;
    grid-template-rows: auto auto !important;
    align-items: center !important;
    row-gap: 3px !important;
    column-gap: 8px !important;
    min-height: auto !important;
    padding: 9px 14px 3px !important;
  }

  .v65-header .brand {
    display: contents !important;
    min-width: 0 !important;
  }

  .v65-header .brand > img {
    grid-area: logo !important;
    width: 46px !important;
    height: 46px !important;
    max-width: 46px !important;
    object-fit: contain !important;
    align-self: center !important;
    justify-self: start !important;
  }

  .v65-header .brand > span {
    display: contents !important;
  }

  .v65-header .brand-title {
    grid-area: brand !important;
    display: block !important;
    font-size: 18px !important;
    line-height: 1.2 !important;
    font-weight: 900 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    color: #0b4778 !important;
    min-width: 0 !important;
  }

  .v65-header .brand-sub {
    grid-area: sub !important;
    display: block !important;
    font-size: 12px !important;
    line-height: 1.32 !important;
    color: #66788c !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    min-width: 0 !important;
  }

  .v65-header .brand-sub-line {
    display: block !important;
  }

  .v65-header .brand-sub-sep {
    display: none !important;
  }

  .v65-header .mobile-menu-toggle {
    grid-area: menu !important;
    display: flex !important;
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    justify-self: end !important;
    align-self: center !important;
  }

  .v65-header-tools {
    border-top: 0 !important;
    background: #fff !important;
  }

  .v65-header-tools-inner {
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-template-areas:
      "phone"
      "lang" !important;
    justify-items: center !important;
    gap: 4px !important;
    width: 100% !important;
    padding: 2px 14px 8px !important;
  }

  .v65-header-tools .v65-wechat-btn {
    display: none !important;
  }

  .v65-header-tools .v65-tel-btn {
    grid-area: phone !important;
    width: auto !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 4px 12px !important;
    border-radius: 999px !important;
    background: rgba(11, 71, 120, .04) !important;
    border: 1px solid rgba(11, 71, 120, .18) !important;
    color: #0b4778 !important;
    font-size: 15px !important;
    line-height: 1.2 !important;
    font-weight: 900 !important;
    box-shadow: none !important;
    display: inline-flex !important;
    justify-content: center !important;
    align-items: center !important;
    margin: 0 !important;
    text-align: center !important;
  }

  .v65-header-tools .language-switch {
    grid-area: lang !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    gap: 4px !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 11px !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
    overflow: visible !important;
  }

  .v65-header nav.nav.site-nav {
    top: calc(100% + 4px) !important;
    left: 12px !important;
    right: 12px !important;
    grid-template-columns: 1fr 1fr !important;
  }

  .scenario-city-grid,
  .scenario-grid,
  .scenario-check-grid,
  .partner-slot-grid {
    grid-template-columns: 1fr !important;
  }

  .scenario-card,
  .scenario-check-card,
  .partner-slot-card,
  .partner-coop-card {
    padding: 22px !important;
  }
}

@media (max-width: 380px) {
  .v65-header .brand-title {
    font-size: 17px !important;
  }

  .v65-header .brand-sub {
    font-size: 11px !important;
  }

  .v65-header-tools .language-switch {
    font-size: 10.5px !important;
    gap: 3px !important;
  }
}


/* ===== assets/css/mobile-header-final-v68.css ===== */

/* v68: final compact mobile header override */

@media (max-width: 640px) {
  html,
  body {
    max-width: 100vw !important;
    overflow-x: hidden !important;
  }

  .header,
  .site-header,
  .v65-header {
    min-height: 0 !important;
    height: auto !important;
    padding: 0 !important;
    background: #fff !important;
    overflow: visible !important;
  }

  .topbar {
    display: none !important;
  }

  .v65-header .container {
    width: 100% !important;
  }

  .header-row,
  .v65-header .header-row,
  .site-header .container {
    min-height: 0 !important;
    height: auto !important;
    padding: 9px 14px 2px !important;
    margin: 0 auto !important;
    display: grid !important;
    grid-template-columns: 52px minmax(0, 1fr) 46px !important;
    grid-template-areas:
      "logo brand menu"
      "logo sub menu" !important;
    grid-template-rows: auto auto !important;
    column-gap: 8px !important;
    row-gap: 2px !important;
    align-items: center !important;
  }

  .brand {
    display: contents !important;
    min-width: 0 !important;
  }

  .brand img,
  .brand-logo {
    grid-area: logo !important;
    width: 46px !important;
    height: 46px !important;
    max-width: 46px !important;
    object-fit: contain !important;
    align-self: center !important;
    justify-self: start !important;
    margin: 0 !important;
  }

  .brand > span {
    display: contents !important;
  }

  .brand-title {
    grid-area: brand !important;
    display: block !important;
    font-size: 18px !important;
    line-height: 1.18 !important;
    font-weight: 900 !important;
    color: #0b4778 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .brand-sub {
    grid-area: sub !important;
    display: block !important;
    font-size: 12px !important;
    line-height: 1.28 !important;
    color: #66788c !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .brand-sub-line {
    display: block !important;
  }

  .brand-sub-sep {
    display: none !important;
  }

  .mobile-menu-toggle {
    grid-area: menu !important;
    display: flex !important;
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    justify-self: end !important;
    align-self: center !important;
    margin: 0 !important;
  }

  .v65-header-tools,
  .header-contact,
  .header-tools-line {
    min-height: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: #fff !important;
  }

  .v65-header-tools-inner {
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-template-areas:
      "phone"
      "lang" !important;
    justify-items: center !important;
    align-items: center !important;
    width: 100% !important;
    min-height: 0 !important;
    height: auto !important;
    gap: 3px !important;
    margin: 0 !important;
    padding: 4px 14px 9px !important;
  }

  .v65-header-tools .v65-wechat-btn,
  .header-contact .wechat-top-btn,
  .header-tools-line .wechat-top-btn,
  .wechat-top-btn {
    display: none !important;
  }

  .v65-header-tools .v65-tel-btn,
  .header-contact .tel-btn,
  .header-tools-line .tel-btn,
  .tel-btn {
    grid-area: phone !important;
    display: inline !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    color: #0b4778 !important;
    font-size: 15px !important;
    line-height: 1.2 !important;
    font-weight: 900 !important;
    text-align: center !important;
    text-decoration: none !important;
  }

  .v65-header-tools .language-switch,
  .header-language-row,
  .header-language-row .language-switch {
    grid-area: lang !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    gap: 4px !important;
    width: auto !important;
    max-width: 100% !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 11px !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
    overflow: visible !important;
  }

  .v65-header-tools .language-switch a,
  .header-language-row .language-switch a {
    font-weight: 800 !important;
    text-decoration: none !important;
  }

  .v65-header-tools .language-switch span,
  .header-language-row .language-switch span {
    opacity: .55 !important;
  }

  .v65-header nav.nav.site-nav {
    top: calc(100% + 4px) !important;
    left: 12px !important;
    right: 12px !important;
    grid-template-columns: 1fr 1fr !important;
  }
}

@media (max-width: 380px) {
  .brand-title {
    font-size: 17px !important;
  }

  .brand-sub {
    font-size: 11px !important;
  }

  .v65-header-tools .language-switch,
  .header-language-row .language-switch {
    font-size: 10.5px !important;
    gap: 3px !important;
  }
}


/* ===== assets/css/hb-header-final-v78.css ===== */


/* v78 independent header rebuild
   Only hb-* classes are used. This avoids all old v65/header/brand CSS conflicts.
*/

html body .hb-header,
html body .hb-header * {
  box-sizing: border-box !important;
}

html body .hb-header {
  position: relative !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  z-index: 10 !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #fff !important;
  border-bottom: 4px solid #004a93 !important;
  box-shadow: none !important;
  overflow: visible !important;
  font-family: inherit !important;
}

html body .hb-header a {
  text-decoration: none !important;
}

html body .hb-logo-link,
html body .hb-copy-link,
html body .hb-nav,
html body .hb-tools,
html body .hb-lang {
  margin: 0 !important;
  padding: 0 !important;
}

html body .hb-logo-img {
  display: block !important;
  object-fit: contain !important;
  margin: 0 !important;
  padding: 0 !important;
}

html body .hb-copy-link {
  min-width: 0 !important;
  overflow: hidden !important;
  color: inherit !important;
}

html body .hb-title {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #0b4778 !important;
  font-weight: 900 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

html body .hb-sub {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #243244 !important;
  font-weight: 500 !important;
  overflow: hidden !important;
}

html body .hb-tel {
  display: block !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: #0b4778 !important;
  font-weight: 900 !important;
  text-align: center !important;
  white-space: nowrap !important;
}

html body .hb-lang {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-wrap: nowrap !important;
  white-space: nowrap !important;
  color: #0b4778 !important;
  font-weight: 900 !important;
}

html body .hb-lang a,
html body .hb-lang span {
  display: inline-block !important;
  color: #0b4778 !important;
  margin: 0 !important;
  padding: 0 !important;
}

@media (min-width: 641px) {
  html body {
    padding-top: 0 !important;
  }

  html body .hb-main {
    width: 100% !important;
    max-width: 1360px !important;
    height: 88px !important;
    min-height: 88px !important;
    max-height: 88px !important;
    margin: 0 auto !important;
    padding: 0 34px !important;
    display: grid !important;
    grid-template-columns: 64px minmax(420px, 1fr) auto !important;
    align-items: center !important;
    column-gap: 14px !important;
    border-bottom: 1px solid #e6eef6 !important;
    overflow: hidden !important;
  }

  html body .hb-logo-link {
    display: flex !important;
    width: 64px !important;
    height: 64px !important;
    align-items: center !important;
    justify-content: flex-start !important;
  }

  html body .hb-logo-img {
    width: 56px !important;
    height: 56px !important;
  }

  html body .hb-copy-link {
    display: flex !important;
    height: 64px !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: flex-start !important;
  }

  html body .hb-title {
    font-size: 25px !important;
    line-height: 1.12 !important;
    margin-bottom: 6px !important;
  }

  html body .hb-sub {
    font-size: 14px !important;
    line-height: 1.25 !important;
    white-space: nowrap !important;
  }

  html body .hb-nav {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: clamp(28px, 4vw, 64px) !important;
  }

  html body .hb-nav-link {
    display: block !important;
    color: #073b68 !important;
    font-size: 18px !important;
    line-height: 1.2 !important;
    font-weight: 900 !important;
    white-space: nowrap !important;
  }

  html body .hb-menu {
    display: none !important;
  }

  html body .hb-tools {
    width: 100% !important;
    margin: 0 !important;
    padding: 8px 24px 8px !important;
    background: #f7fbff !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 4px !important;
  }

  html body .hb-tel {
    font-size: 18px !important;
    line-height: 1.15 !important;
  }

  html body .hb-lang {
    gap: 10px !important;
    font-size: 14px !important;
    line-height: 1.15 !important;
  }
}

@media (max-width: 640px) {
  html body {
    padding-top: 0 !important;
  }

  html body .hb-main {
    width: 100% !important;
    height: 72px !important;
    min-height: 72px !important;
    max-height: 72px !important;
    margin: 0 auto !important;
    padding: 9px 14px 7px !important;
    display: grid !important;
    grid-template-columns: 54px minmax(0, 1fr) 46px !important;
    align-items: center !important;
    column-gap: 8px !important;
    overflow: hidden !important;
  }

  html body .hb-logo-link {
    display: flex !important;
    width: 54px !important;
    height: 56px !important;
    align-items: center !important;
    justify-content: flex-start !important;
  }

  html body .hb-logo-img {
    width: 46px !important;
    height: 46px !important;
  }

  html body .hb-copy-link {
    display: flex !important;
    min-width: 0 !important;
    height: 56px !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: flex-start !important;
  }

  html body .hb-title {
    font-size: 18px !important;
    line-height: 1.12 !important;
    margin-bottom: 2px !important;
  }

  html body .hb-sub {
    font-size: 12px !important;
    line-height: 1.18 !important;
  }

  html body .hb-sub span {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  html body .hb-sub .hb-sub-sep {
    display: none !important;
  }

  html body .hb-nav {
    display: none !important;
  }

  html body .hb-menu {
    display: inline-flex !important;
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    min-height: 42px !important;
    max-width: 42px !important;
    max-height: 42px !important;
    margin: 0 !important;
    padding: 0 !important;
    justify-self: end !important;
    align-self: center !important;
    border: 1px solid #d5e5f4 !important;
    border-radius: 14px !important;
    background: #fff !important;
    box-shadow: none !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 5px !important;
  }

  html body .hb-menu span {
    display: block !important;
    width: 22px !important;
    height: 3px !important;
    border-radius: 99px !important;
    background: #073b68 !important;
  }

  html body .hb-tools {
    width: 100% !important;
    height: 42px !important;
    min-height: 42px !important;
    max-height: 42px !important;
    margin: 0 !important;
    padding: 0 14px 8px !important;
    background: #fff !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 2px !important;
    overflow: hidden !important;
  }

  html body .hb-tel {
    height: 17px !important;
    max-height: 17px !important;
    font-size: 15px !important;
    line-height: 17px !important;
  }

  html body .hb-lang {
    height: 15px !important;
    max-height: 15px !important;
    gap: 4px !important;
    font-size: 11px !important;
    line-height: 15px !important;
  }

  html body .hb-lang a,
  html body .hb-lang span {
    line-height: 15px !important;
  }

  html body .hb-header + * {
    margin-top: 0 !important;
  }
}

@media (max-width: 375px) {
  html body .hb-title {
    font-size: 17px !important;
  }

  html body .hb-lang {
    gap: 3px !important;
    font-size: 10.5px !important;
  }
}


/* ===== assets/css/partnership-services-layout-v79.css ===== */


/* v79 partnership + services layout fix */
@media (min-width: 1024px) {
  .price-decision-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 18px !important;
  }
}

.partnership-page .hero,
.partnership-page section.hero {
  background: #ffffff !important;
  background-image: none !important;
  color: #073b68 !important;
  padding: 54px 0 44px !important;
  min-height: 0 !important;
  overflow: visible !important;
}
.partnership-page .hero::before,
.partnership-page .hero::after,
.partnership-page section.hero::before,
.partnership-page section.hero::after {
  display: none !important;
  content: none !important;
}
.partnership-page .hero-inner { display: block !important; min-height: 0 !important; }
.partnership-page .hero-copy {
  max-width: 980px !important;
  margin: 0 auto !important;
  padding: 0 !important;
  color: #27384a !important;
}
.partnership-page .hero .eyebrow,
.partnership-page section.hero .eyebrow { color: #008f7a !important; }
.partnership-page .hero h1,
.partnership-page section.hero h1 {
  color: #073b68 !important;
  text-shadow: none !important;
  opacity: 1 !important;
}
.partnership-page .hero p,
.partnership-page section.hero p {
  color: #27384a !important;
  text-shadow: none !important;
  opacity: 1 !important;
  line-height: 1.85 !important;
}
.partnership-page .hero .btn,
.partnership-page section.hero .btn { color: #ffffff !important; opacity: 1 !important; }

@media (min-width: 1024px) {
  .partnership-page .service-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 20px !important;
    align-items: stretch !important;
  }
}
@media (min-width: 641px) and (max-width: 1023px) {
  .partnership-page .service-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 18px !important;
  }
}
@media (max-width: 640px) {
  .partnership-page .hero,
  .partnership-page section.hero { padding: 34px 0 28px !important; }
  .partnership-page .service-grid { display: grid !important; grid-template-columns: 1fr !important; gap: 14px !important; }
}


/* ===== assets/css/seo-service-area-v80.css ===== */


/* v80 /seo/ scenario first-screen and area range */

.scenario-page-v69 .service-grid-v69 {
  display: grid !important;
}

@media (min-width: 1024px) {
  .scenario-page-v69 .service-grid-v69 {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
}

@media (min-width: 641px) and (max-width: 1023px) {
  .scenario-page-v69 .service-grid-v69 {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 640px) {
  .scenario-page-v69 .service-grid-v69 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

.service-area-range-v80 {
  border-top: 1px solid #e6eef6 !important;
}

.service-area-range-v80 .area-range-grid {
  display: grid !important;
  gap: 18px !important;
}

.service-area-range-v80 .area-range-card {
  background: #fff !important;
  border: 1px solid #dce6f0 !important;
  border-radius: 18px !important;
  padding: 18px 18px 20px !important;
  box-shadow: 0 10px 28px rgba(14, 54, 97, .05) !important;
}

.service-area-range-v80 .area-range-card h3 {
  margin: 0 0 10px !important;
  color: #073b68 !important;
  font-size: 18px !important;
  line-height: 1.35 !important;
  font-weight: 900 !important;
}

.service-area-range-v80 .area-range-card p {
  margin: 0 !important;
  color: #4e5f70 !important;
  font-size: 14px !important;
  line-height: 1.75 !important;
}

@media (min-width: 1024px) {
  .service-area-range-v80 .area-range-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
}

@media (min-width: 641px) and (max-width: 1023px) {
  .service-area-range-v80 .area-range-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 640px) {
  .service-area-range-v80 .area-range-grid {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  .service-area-range-v80 .area-range-card {
    padding: 14px !important;
    border-radius: 14px !important;
  }

  .service-area-range-v80 .area-range-card h3 {
    font-size: 16px !important;
  }

  .service-area-range-v80 .area-range-card p {
    font-size: 13px !important;
    line-height: 1.65 !important;
  }
}


/* ===== assets/css/multilang-banner-header-spacing-v81.css ===== */


/* v81 multilingual home banner + mobile header spacing */

.localized-home-hero {
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
  overflow: hidden !important;
}

.localized-home-hero .hero-slide {
  display: none;
}

.localized-home-hero .hero-slide.active {
  display: block;
}

.localized-home-hero picture,
.localized-home-hero img {
  display: block !important;
  width: 100% !important;
}

.localized-home-hero img {
  height: auto !important;
  object-fit: cover !important;
}

/* Give phone line slightly more breathing room and allow long English title to show fully. */
@media (max-width: 640px) {
  html body .hb-main {
    height: 94px !important;
    min-height: 94px !important;
    max-height: 94px !important;
    padding: 10px 14px 8px !important;
    grid-template-columns: 54px minmax(0, 1fr) 46px !important;
  }

  html body .hb-logo-link {
    height: 74px !important;
  }

  html body .hb-copy-link {
    height: 74px !important;
    justify-content: center !important;
  }

  html body .hb-title {
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    display: block !important;
    font-size: 17px !important;
    line-height: 1.12 !important;
    max-height: 40px !important;
    margin-bottom: 3px !important;
  }

  html body .hb-sub {
    font-size: 11.5px !important;
    line-height: 1.16 !important;
    max-height: 28px !important;
    overflow: hidden !important;
  }

  html body .hb-tools {
    height: 54px !important;
    min-height: 54px !important;
    max-height: 54px !important;
    padding: 8px 14px 10px !important;
  }

  html body .hb-tools .hb-tel,
  html body .hb-tel {
    height: 18px !important;
    max-height: 18px !important;
    line-height: 18px !important;
  }

  html body .hb-tools .hb-lang,
  html body .hb-lang {
    height: 16px !important;
    max-height: 16px !important;
    line-height: 16px !important;
  }
}

@media (max-width: 375px) {
  html body .hb-title {
    font-size: 16px !important;
  }

  html body .hb-sub {
    font-size: 11px !important;
  }
}


/* ===== assets/css/recruit-news-v84.css ===== */


/* v84 recruit/news pages and 7-item nav fit */

@media (min-width: 641px) {
  html body .hb-main {
    grid-template-columns: 64px minmax(360px, 1fr) auto !important;
    column-gap: 12px !important;
  }

  html body .hb-nav {
    gap: clamp(18px, 2.2vw, 34px) !important;
  }

  html body .hb-nav-link {
    font-size: 17px !important;
  }
}

@media (max-width: 640px) {
  html body .hb-nav-open .hb-nav {
    display: grid !important;
    position: absolute !important;
    left: 14px !important;
    right: 14px !important;
    top: 72px !important;
    z-index: 100 !important;
    background: #fff !important;
    border: 1px solid #dce6f0 !important;
    border-radius: 14px !important;
    box-shadow: 0 18px 44px rgba(14,54,97,.16) !important;
    padding: 10px !important;
    gap: 0 !important;
  }

  html body .hb-nav-open .hb-nav-link {
    display: block !important;
    padding: 11px 10px !important;
    border-bottom: 1px solid #edf3f8 !important;
    color: #073b68 !important;
    font-size: 15px !important;
    font-weight: 900 !important;
  }

  html body .hb-nav-open .hb-nav-link:last-child {
    border-bottom: 0 !important;
  }
}

.recruit-news-page .page-hero-clean {
  background: linear-gradient(135deg, #f7fbff 0%, #ffffff 74%) !important;
  border-bottom: 1px solid #e6eef6 !important;
  padding: 52px 0 42px !important;
}

.recruit-news-page .page-hero-clean .hero-copy {
  max-width: 920px !important;
}

.recruit-news-page .page-hero-clean h1 {
  color: #073b68 !important;
  margin: 0 0 14px !important;
}

.recruit-news-page .page-hero-clean p {
  color: #3f5266 !important;
  line-height: 1.85 !important;
}

.recruit-news-page .quick-points {
  display: grid !important;
  gap: 14px !important;
}

.recruit-news-page .quick-point,
.recruit-news-page .content-card-v84 {
  background: #fff !important;
  border: 1px solid #dce6f0 !important;
  border-radius: 18px !important;
  padding: 18px !important;
  box-shadow: 0 10px 28px rgba(14,54,97,.05) !important;
}

.recruit-news-page .quick-point h3,
.recruit-news-page .content-card-v84 h3 {
  margin: 0 0 8px !important;
  color: #073b68 !important;
  font-size: 18px !important;
  line-height: 1.35 !important;
}

.recruit-news-page .quick-point p,
.recruit-news-page .content-card-v84 p,
.recruit-news-page .content-card-v84 li {
  color: #526375 !important;
  font-size: 14px !important;
  line-height: 1.7 !important;
}

.recruit-news-page .card-grid-4 {
  display: grid !important;
  gap: 18px !important;
}

.recruit-news-page .article-list-v84 {
  display: grid !important;
  gap: 16px !important;
}

.recruit-news-page .article-card-v84 {
  display: block !important;
  background: #fff !important;
  border: 1px solid #dce6f0 !important;
  border-radius: 18px !important;
  padding: 18px !important;
  box-shadow: 0 10px 28px rgba(14,54,97,.05) !important;
}

.recruit-news-page .article-card-v84 .meta {
  color: #789 !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  margin-bottom: 8px !important;
}

.recruit-news-page .article-card-v84 h2 {
  color: #073b68 !important;
  font-size: 19px !important;
  line-height: 1.45 !important;
  margin: 0 0 8px !important;
}

.recruit-news-page .article-card-v84 p {
  color: #526375 !important;
  font-size: 14px !important;
  line-height: 1.7 !important;
  margin: 0 !important;
}

.recruit-news-page .mini-tag-row {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
}

.recruit-news-page .mini-tag-row span {
  display: inline-flex !important;
  padding: 7px 10px !important;
  border-radius: 999px !important;
  background: #eef7ff !important;
  color: #073b68 !important;
  font-size: 13px !important;
  font-weight: 800 !important;
}

@media (min-width: 1024px) {
  .recruit-news-page .quick-points {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  .recruit-news-page .card-grid-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }

  .recruit-news-page .article-list-v84 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (min-width: 641px) and (max-width: 1023px) {
  .recruit-news-page .quick-points,
  .recruit-news-page .card-grid-4,
  .recruit-news-page .article-list-v84 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 640px) {
  .recruit-news-page .page-hero-clean {
    padding: 34px 0 28px !important;
  }

  .recruit-news-page .quick-points,
  .recruit-news-page .card-grid-4,
  .recruit-news-page .article-list-v84 {
    grid-template-columns: 1fr !important;
  }
}


/* ===== assets/css/hb-mobile-menu-v85.css ===== */

/* v85 mobile menu click fix */
@media (max-width: 640px) {
  html body .hb-header {
    position: relative !important;
    z-index: 100 !important;
    overflow: visible !important;
  }

  html body .hb-header .hb-nav {
    display: none !important;
  }

  html body.hb-nav-open .hb-header .hb-nav {
    display: grid !important;
    position: absolute !important;
    left: 14px !important;
    right: 14px !important;
    top: 72px !important;
    z-index: 999 !important;
    background: #fff !important;
    border: 1px solid #dce6f0 !important;
    border-radius: 14px !important;
    box-shadow: 0 18px 44px rgba(14,54,97,.18) !important;
    padding: 10px !important;
    gap: 0 !important;
  }

  html body.hb-nav-open .hb-header .hb-nav-link {
    display: block !important;
    padding: 11px 10px !important;
    border-bottom: 1px solid #edf3f8 !important;
    color: #073b68 !important;
    font-size: 15px !important;
    line-height: 1.25 !important;
    font-weight: 900 !important;
    text-decoration: none !important;
  }

  html body.hb-nav-open .hb-header .hb-nav-link:last-child {
    border-bottom: 0 !important;
  }

  html body.hb-nav-open .hb-menu {
    border-color: #9fc4e8 !important;
    background: #f7fbff !important;
  }
}


/* ===== assets/css/news-system-v87.css ===== */


/* v87 news list + article detail system */

.news-system-v87 .page-hero-clean,
.news-system-v87 .article-hero-v87 {
  background: linear-gradient(135deg, #f7fbff 0%, #ffffff 76%) !important;
  border-bottom: 1px solid #e6eef6 !important;
  padding: 48px 0 38px !important;
}

.news-system-v87 .page-hero-clean h1,
.news-system-v87 .article-hero-v87 h1 {
  color: #073b68 !important;
  margin: 0 0 12px !important;
  line-height: 1.25 !important;
}

.news-system-v87 .page-hero-clean p,
.news-system-v87 .article-hero-v87 p {
  color: #42566a !important;
  line-height: 1.8 !important;
}

.news-layout-v87,
.article-layout-v87 {
  display: grid !important;
  gap: 28px !important;
  align-items: start !important;
}

.news-toolbar-v87 {
  margin-bottom: 18px !important;
}

.news-toolbar-v87 h2 {
  color: #073b68 !important;
  margin: 0 0 8px !important;
}

.news-toolbar-v87 p {
  color: #5b6b7c !important;
  margin: 0 !important;
}

.news-list-v87 {
  display: grid !important;
  gap: 16px !important;
}

.news-list-card-v87,
.side-box-v87,
.article-content-v87 {
  background: #fff !important;
  border: 1px solid #dce6f0 !important;
  border-radius: 18px !important;
  box-shadow: 0 10px 28px rgba(14,54,97,.05) !important;
}

.news-list-card-v87 {
  padding: 20px !important;
}

.news-meta {
  display: flex !important;
  gap: 10px !important;
  flex-wrap: wrap !important;
  color: #7a8da0 !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  margin-bottom: 8px !important;
}

.news-list-card-v87 h2 {
  font-size: 20px !important;
  line-height: 1.45 !important;
  margin: 0 0 8px !important;
}

.news-list-card-v87 h2 a {
  color: #073b68 !important;
  text-decoration: none !important;
}

.news-list-card-v87 p,
.side-box-v87 p,
.article-content-v87 p,
.article-content-v87 li {
  color: #526375 !important;
  font-size: 14px !important;
  line-height: 1.75 !important;
}

.read-more {
  display: inline-flex !important;
  margin-top: 6px !important;
  color: #0b74bd !important;
  font-weight: 900 !important;
}

.news-sidebar-v87 {
  display: grid !important;
  gap: 16px !important;
}

.side-box-v87 {
  padding: 18px !important;
}

.side-box-v87 h3 {
  color: #073b68 !important;
  font-size: 17px !important;
  margin: 0 0 12px !important;
}

.side-tags-v87,
.side-links-v87 {
  display: grid !important;
  gap: 8px !important;
}

.side-tags-v87 a,
.side-links-v87 a {
  color: #0b4778 !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  text-decoration: none !important;
  border-bottom: 1px solid #edf3f8 !important;
  padding-bottom: 8px !important;
}

.article-content-v87 {
  padding: 26px !important;
}

.breadcrumb-v87 {
  font-size: 13px !important;
  margin: 0 0 10px !important;
}

.breadcrumb-v87 a {
  color: #0b74bd !important;
}

.lead-v87 {
  font-size: 16px !important;
  color: #33485d !important;
  font-weight: 700 !important;
}

.article-section-v87 {
  margin-top: 26px !important;
}

.article-section-v87 h2 {
  color: #073b68 !important;
  font-size: 21px !important;
  line-height: 1.4 !important;
  margin: 0 0 12px !important;
}

.article-section-v87 ul {
  margin: 0 !important;
  padding-left: 1.2em !important;
}

.note-v87 {
  background: #f7fbff !important;
  border-radius: 16px !important;
  padding: 18px !important;
}

@media (min-width: 1024px) {
  .news-layout-v87,
  .article-layout-v87 {
    grid-template-columns: minmax(0, 1fr) 320px !important;
  }

  .news-list-v87 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 1023px) {
  .news-layout-v87,
  .article-layout-v87 {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 640px) {
  .news-system-v87 .page-hero-clean,
  .news-system-v87 .article-hero-v87 {
    padding: 32px 0 26px !important;
  }

  .news-list-v87 {
    grid-template-columns: 1fr !important;
  }

  .news-list-card-v87,
  .side-box-v87,
  .article-content-v87 {
    border-radius: 14px !important;
  }

  .news-list-card-v87,
  .article-content-v87 {
    padding: 16px !important;
  }
}


/* ===== assets/css/news-visa-fee-v88.css ===== */


/* v88 visa fee article table */
.fee-table-v88 {
  width: 100% !important;
  overflow-x: auto !important;
  margin: 14px 0 16px !important;
}

.fee-table-v88 table {
  width: 100% !important;
  min-width: 520px !important;
  border-collapse: collapse !important;
  background: #fff !important;
  border: 1px solid #dce6f0 !important;
  border-radius: 14px !important;
  overflow: hidden !important;
}

.fee-table-v88 th,
.fee-table-v88 td {
  border-bottom: 1px solid #e8f0f7 !important;
  padding: 12px 14px !important;
  text-align: left !important;
  color: #33485d !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
}

.fee-table-v88 th {
  background: #f3f8fd !important;
  color: #073b68 !important;
  font-weight: 900 !important;
}

.fee-table-v88 tr:last-child td {
  border-bottom: 0 !important;
}


/* ===== assets/css/news-pagination-matrix-v89.css ===== */


/* v89 news pagination + HI BAGS matrix */

.news-pagination-v89 {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  margin: 24px 0 0 !important;
}

.news-pagination-v89 a,
.news-pagination-v89 span {
  min-width: 38px !important;
  height: 38px !important;
  padding: 0 12px !important;
  border-radius: 999px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: 1px solid #dce6f0 !important;
  background: #fff !important;
  color: #073b68 !important;
  font-size: 14px !important;
  font-weight: 900 !important;
  text-decoration: none !important;
}

.news-pagination-v89 .current {
  background: #073b68 !important;
  color: #fff !important;
  border-color: #073b68 !important;
}

.news-pagination-v89 .disabled {
  color: #9aa9b8 !important;
  background: #f6f8fb !important;
}



@media (min-width: 641px) and (max-width: 1023px) {
  }


/* ===== assets/css/contact-whatsapp-qr-v91.css ===== */


/* v91 contact QR row with WhatsApp reserved slot */

.contact-qr-section-v91 {
  border-top: 1px solid #e6eef6 !important;
}

.contact-qr-grid-v91 {
  display: grid !important;
  gap: 18px !important;
  align-items: stretch !important;
}

.contact-qr-card-v91 {
  background: #fff !important;
  border: 1px solid #dce6f0 !important;
  border-radius: 18px !important;
  padding: 18px !important;
  text-align: center !important;
  box-shadow: 0 10px 28px rgba(14,54,97,.05) !important;
}

.contact-qr-card-v91 h3 {
  margin: 0 0 12px !important;
  color: #073b68 !important;
  font-size: 18px !important;
  line-height: 1.35 !important;
  font-weight: 900 !important;
}

.qr-placeholder-v91 {
  width: 148px !important;
  height: 148px !important;
  margin: 0 auto 12px !important;
  border: 1px solid #dce6f0 !important;
  border-radius: 14px !important;
  background: #f8fbff !important;
  color: #0b4778 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  font-size: 14px !important;
  font-weight: 900 !important;
  line-height: 1.4 !important;
}

.qr-reserved-v91 {
  border-style: dashed !important;
  background: repeating-linear-gradient(135deg, #f8fbff 0, #f8fbff 8px, #eef6ff 8px, #eef6ff 16px) !important;
}

.qr-reserved-v91 span {
  display: block !important;
  color: #789 !important;
  font-size: 12px !important;
  font-weight: 700 !important;
}

.contact-qr-card-v91 p {
  margin: 0 !important;
  color: #526375 !important;
  font-size: 14px !important;
  line-height: 1.65 !important;
}

@media (min-width: 900px) {
  .contact-qr-grid-v91 {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (min-width: 641px) and (max-width: 899px) {
  .contact-qr-grid-v91 {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 14px !important;
  }

  .qr-placeholder-v91 {
    width: 124px !important;
    height: 124px !important;
  }
}

@media (max-width: 640px) {
  .contact-qr-grid-v91 {
    grid-template-columns: 1fr !important;
  }

  .qr-placeholder-v91 {
    width: 138px !important;
    height: 138px !important;
  }
}


/* ===== assets/css/contact-qr-visible-v92.css ===== */


/* v92 visible WeChat / LINE / WhatsApp QR row */
.contact-qr-section-v92 {
  border-top: 1px solid #e6eef6 !important;
}

.contact-qr-grid-v92 {
  display: grid !important;
  gap: 16px !important;
  align-items: stretch !important;
}

.contact-qr-card-v92 {
  background: #fff !important;
  border: 1px solid #dce6f0 !important;
  border-radius: 18px !important;
  padding: 16px !important;
  text-align: center !important;
  box-shadow: 0 10px 28px rgba(14,54,97,.05) !important;
}

.contact-qr-card-v92 h3 {
  margin: 0 0 10px !important;
  color: #073b68 !important;
  font-size: 17px !important;
  line-height: 1.35 !important;
  font-weight: 900 !important;
}

.qr-image-box-v92 {
  width: 136px !important;
  height: 136px !important;
  margin: 0 auto 10px !important;
  border: 1px solid #dce6f0 !important;
  border-radius: 14px !important;
  background: #fff !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
}

.qr-image-box-v92 img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  padding: 8px !important;
}

.qr-reserved-v92 {
  background: repeating-linear-gradient(135deg, #f8fbff 0, #f8fbff 8px, #eef6ff 8px, #eef6ff 16px) !important;
  border-style: dashed !important;
  color: #0b4778 !important;
  font-size: 14px !important;
  line-height: 1.45 !important;
  font-weight: 900 !important;
}

.qr-reserved-v92 span {
  color: #789 !important;
  font-size: 12px !important;
  font-weight: 700 !important;
}

.contact-qr-card-v92 p {
  margin: 0 !important;
  color: #526375 !important;
  font-size: 13.5px !important;
  line-height: 1.65 !important;
}

@media (min-width: 900px) {
  .contact-qr-grid-v92 {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (min-width: 641px) and (max-width: 899px) {
  .contact-qr-grid-v92 {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 12px !important;
  }

  .qr-image-box-v92 {
    width: 116px !important;
    height: 116px !important;
  }
}

@media (max-width: 640px) {
  .contact-qr-grid-v92 {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  .contact-qr-card-v92 {
    padding: 14px !important;
  }

  .qr-image-box-v92 {
    width: 132px !important;
    height: 132px !important;
  }
}


/* ===== assets/css/contact-form-restore-v93.css ===== */

/* v93 restore contact forms under QR contact block */
.contact-form-section-v93 {
  border-top: 1px solid #e6eef6 !important;
}

.contact-form-panel-v93 {
  background: #fff !important;
  border: 1px solid #dce6f0 !important;
  border-radius: 20px !important;
  padding: 24px !important;
  box-shadow: 0 14px 36px rgba(14,54,97,.06) !important;
}

.contact-form-section-v93 .contact-form {
  margin: 0 !important;
}

.contact-form-section-v93 .form-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 16px !important;
}

.contact-form-section-v93 .form-grid .full,
.contact-form-section-v93 .hp-field {
  grid-column: 1 / -1 !important;
}

.contact-form-section-v93 .hp-field {
  position: absolute !important;
  left: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

.contact-form-section-v93 label {
  color: #243244 !important;
  font-weight: 800 !important;
  font-size: 14px !important;
}

.contact-form-section-v93 input,
.contact-form-section-v93 select,
.contact-form-section-v93 textarea {
  margin-top: 7px !important;
}

.contact-form-section-v93 textarea {
  min-height: 150px !important;
}

.contact-form-section-v93 .consent-row {
  display: flex !important;
  align-items: flex-start !important;
  gap: 8px !important;
  font-weight: 500 !important;
  color: #526375 !important;
  line-height: 1.6 !important;
}

.contact-form-section-v93 .consent-row input {
  width: auto !important;
  margin-top: 4px !important;
}

.contact-form-section-v93 .required-badge {
  display: inline-flex !important;
  margin-left: 6px !important;
  padding: 2px 6px !important;
  border-radius: 999px !important;
  background: #fff0e6 !important;
  color: #c45a00 !important;
  font-size: 11px !important;
  font-weight: 900 !important;
}

@media (max-width: 640px) {
  .contact-form-panel-v93 {
    padding: 16px !important;
    border-radius: 16px !important;
  }

  .contact-form-section-v93 .form-grid {
    grid-template-columns: 1fr !important;
    gap: 13px !important;
  }
}


/* v109: mobile consent checkbox and policy-links alignment fix */
.contact-form-section-v93 .consent-row {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
  gap: 10px !important;
  width: 100% !important;
  max-width: 100% !important;
  padding: 2px 0 0 !important;
  font-weight: 500 !important;
  color: #526375 !important;
  line-height: 1.65 !important;
  letter-spacing: 0 !important;
  text-align: left !important;
  white-space: normal !important;
}

.contact-form-section-v93 .consent-row input[type="checkbox"] {
  flex: 0 0 20px !important;
  width: 20px !important;
  height: 20px !important;
  min-width: 20px !important;
  min-height: 20px !important;
  margin: 2px 0 0 !important;
  padding: 0 !important;
}

.contact-form-section-v93 .consent-row .consent-text {
  display: block !important;
  flex: 1 1 auto !important;
  min-width: 0 !important;
  max-width: 100% !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
  white-space: normal !important;
  text-align: left !important;
}

.contact-form-section-v93 .consent-row .consent-text a {
  display: inline !important;
  color: #0e5aa7 !important;
  font-weight: 800 !important;
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
  white-space: nowrap !important;
}

@media (max-width: 640px) {
  .contact-form-section-v93 .consent-row {
    gap: 9px !important;
    font-size: 13px !important;
    line-height: 1.7 !important;
  }

  .contact-form-section-v93 .consent-row input[type="checkbox"] {
    flex-basis: 18px !important;
    width: 18px !important;
    height: 18px !important;
    min-width: 18px !important;
    min-height: 18px !important;
    margin-top: 3px !important;
  }

  .contact-form-section-v93 .consent-row .consent-text {
    font-size: 13px !important;
  }
}


/* v113: submit button spacing after removing fallback notice */
.contact-form-section-v93 .contact-form > .btn.primary[type="submit"],
.contact-form-section-v93 .contact-form > button[type="submit"] {
  margin-top: 18px !important;
  min-width: 168px !important;
}

@media (max-width: 640px) {
  .contact-form-section-v93 .contact-form > .btn.primary[type="submit"],
  .contact-form-section-v93 .contact-form > button[type="submit"] {
    margin-top: 16px !important;
    min-width: 160px !important;
  }
}

/* v113: hide empty form status placeholders so the submit area is compact */
.contact-form-section-v93 .form-error:empty,
.contact-form-section-v93 .form-success:empty {
  display: none !important;
  margin: 0 !important;
}


/* ===== assets/css/whatsapp-qr-v95.css ===== */


/* v95 real WhatsApp QR */
.qr-image-v95 {
  background: #ffffff !important;
  border-style: solid !important;
  overflow: hidden !important;
  padding: 8px !important;
}

.qr-image-v95 img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  margin: 0 !important;
  padding: 0 !important;
}


/* ===== assets/css/v105-seo-structure-stability.css ===== */


/* v105 SEO / structure / stability helpers */
.topic-hub-v105 .hub-intro-v105{max-width:920px;margin:0 auto 28px;line-height:1.9;color:#334155}.topic-hub-grid-v105{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.topic-card-v105{border:1px solid rgba(15,23,42,.10);border-radius:18px;background:#fff;padding:20px;box-shadow:0 10px 24px rgba(15,23,42,.06)}.topic-card-v105 h3{margin:0 0 8px;font-size:1.08rem}.topic-card-v105 p{margin:0 0 12px;line-height:1.75;color:#475569}.topic-card-v105 ul{margin:0;padding-left:1.1em;line-height:1.9}.topic-card-v105 a{font-weight:700}.hub-service-box-v105{margin-top:26px;padding:22px;border-radius:18px;background:#f7fbff;border:1px solid rgba(11,63,120,.12)}.hub-service-links-v105{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.hub-service-links-v105 a{display:inline-flex;align-items:center;border-radius:999px;padding:8px 12px;background:#fff;border:1px solid rgba(11,63,120,.16);text-decoration:none}.news-topic-strip-v105{margin:0 0 24px;padding:18px;border-radius:18px;background:#f7fbff;border:1px solid rgba(11,63,120,.12)}.news-topic-strip-v105 h2{margin:0 0 10px;font-size:1.2rem}.news-topic-links-v105{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.news-topic-links-v105 a{display:block;padding:12px 14px;border-radius:14px;background:#fff;border:1px solid rgba(15,23,42,.08);text-decoration:none;font-weight:700}.page-404-v105{text-align:center;max-width:760px;margin:0 auto}.page-404-v105 .quick-links{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:18px}.stability-note-v105{font-size:.94rem;color:#64748b}.content-core-v105 .content-card-v105{border:1px solid rgba(15,23,42,.10);border-radius:18px;padding:20px;background:#fff;box-shadow:0 10px 24px rgba(15,23,42,.04)}.content-core-v105 .card-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.content-core-v105 .card-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.content-core-v105 p,.content-core-v105 li{line-height:1.85}.content-core-v105 ul{padding-left:1.2em}.core-cta-v105{background:#f7fbff;border:1px solid rgba(11,63,120,.12);border-radius:20px;padding:24px}.core-cta-v105 .btn{margin-top:8px}@media(max-width:760px){.topic-hub-grid-v105,.news-topic-links-v105,.content-core-v105 .card-grid-3,.content-core-v105 .card-grid-2{grid-template-columns:1fr}.topic-card-v105{padding:16px}.hub-service-links-v105 a{width:100%;justify-content:center}.page-404-v105 .quick-links{display:grid;grid-template-columns:1fr}}


/* ===== assets/css/v106-multilingual-complete.css ===== */

/* v106 multilingual completion and local-preview fixes */
.content-fill-v106 .seo-content-card { max-width: 980px; }
.content-fill-v106 h1 { line-height: 1.22; }
.content-fill-v106 h2 { margin-top: 1.8rem; }
.content-fill-v106 ul { padding-left: 1.25rem; }
.news-article-v106 p, .content-fill-v106 p { line-height: 1.85; }
.news-article-v106 ul { padding-left: 1.25rem; line-height: 1.8; }
.cta-box { margin-top: 2rem; padding: 1.5rem; border-radius: 18px; background: #f5f8fb; border: 1px solid rgba(11,63,120,.12); }


/* ===== assets/css/hero-slider-v112.css ===== */

/* v112 hero carousel restore.
   Loaded after older mobile/banner patch files so it can safely override legacy first-child rules. */
.hero[data-hero-slider] {
  position: relative !important;
  overflow: hidden !important;
  background: #062f5c !important;
}
.hero[data-hero-slider] .hero-slide {
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transition: opacity .65s ease-in-out, visibility .65s ease-in-out !important;
}
.hero[data-hero-slider] .hero-slide.active,
.hero[data-hero-slider] .hero-slide.is-active,
.hero[data-hero-slider] .hero-slide[aria-hidden="false"] {
  position: relative !important;
  z-index: 1 !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}
.hero[data-hero-slider] .hero-slide:first-child:not(.active):not(.is-active):not([aria-hidden="false"]) {
  position: absolute !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  z-index: 0 !important;
}
.hero[data-hero-slider] .hero-picture,
.hero[data-hero-slider] picture,
.hero[data-hero-slider] img {
  display: block !important;
}
.hero[data-hero-slider] .hero-dots {
  z-index: 5 !important;
}
.hero[data-hero-slider] .hero-dots button {
  transition: transform .2s ease, background-color .2s ease !important;
}
.hero[data-hero-slider] .hero-dots button.active,
.hero[data-hero-slider] .hero-dots button[aria-current="true"] {
  transform: scale(1.18) !important;
}
@media (prefers-reduced-motion: reduce) {
  .hero[data-hero-slider] .hero-slide {
    transition: none !important;
  }
}
@media (max-width: 640px) {
  .hero[data-hero-slider] .hero-slide {
    height: inherit !important;
    min-height: inherit !important;
    max-height: inherit !important;
  }
  .hero[data-hero-slider] .hero-slide.active,
  .hero[data-hero-slider] .hero-slide.is-active,
  .hero[data-hero-slider] .hero-slide[aria-hidden="false"] {
    display: block !important;
  }
  .hero[data-hero-slider] .hero-slide:first-child:not(.active):not(.is-active):not([aria-hidden="false"]) {
    display: block !important;
  }
}


/* ===== assets/css/content-fill-v104.css ===== */


.content-fill-v104 .cf-eyebrow{font-size:.85rem;letter-spacing:.08em;color:#0b3f78;font-weight:700}.content-fill-v104 .cf-lead{font-size:1.08rem;line-height:1.9;max-width:920px}.content-fill-v104 .cf-cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}.content-fill-v104 .cf-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.content-fill-v104 .cf-card,.content-fill-v104 .cf-content,.content-fill-v104 .cf-faq,.content-fill-v104 .cf-related{background:#fff;border:1px solid rgba(11,63,120,.12);border-radius:18px;padding:24px;box-shadow:0 10px 30px rgba(11,63,120,.06)}.content-fill-v104 .cf-card li{margin:.45em 0;line-height:1.75}.content-fill-v104 .cf-section{margin-bottom:22px}.content-fill-v104 .cf-section p{line-height:1.95}.content-fill-v104 details{border-top:1px solid rgba(11,63,120,.12);padding:14px 0}.content-fill-v104 details:first-of-type{border-top:0}.content-fill-v104 summary{cursor:pointer;font-weight:700}.content-fill-v104 .cf-related-links{display:flex;flex-wrap:wrap;gap:10px}.content-fill-v104 .cf-related-links a{display:inline-block;padding:9px 12px;border-radius:999px;background:#eef5fb;color:#0b3f78;text-decoration:none}.article-source-list-v104{font-size:.92rem;line-height:1.8}.article-source-list-v104 a{word-break:break-all}.article-updated-v104{color:#667;font-size:.92rem}@media(max-width:760px){.content-fill-v104 .cf-grid-2{grid-template-columns:1fr}.content-fill-v104 .cf-card,.content-fill-v104 .cf-content,.content-fill-v104 .cf-faq,.content-fill-v104 .cf-related{padding:18px}}


/* ===== assets/css/content-fill-v102.css ===== */

/* v102 content fill styles */
.content-fill-v102 .seo-content-card > h1 {
  margin: 0 0 18px;
  color: #0b3f78;
  line-height: 1.35;
}
.content-fill-v102 .seo-content-card > p,
.content-fill-v102 .seo-content-card .cta-box p,
.faq-section .seo-content-card p,
.contact-cta .seo-content-card p {
  margin: 0 0 16px;
  line-height: 1.9;
}
.content-fill-v102 .seo-content-card > h2,
.faq-section .seo-content-card > h2,
.related-services .seo-content-card > h2,
.contact-cta .seo-content-card > h2 {
  margin: 28px 0 12px;
}
.content-fill-v102 .cta-box {
  margin-top: 28px;
  background: #f6fbff;
  border: 1px solid #d8e7f3;
  border-radius: 22px;
  padding: 26px;
}
.content-fill-v102 .cta-box h2 {
  margin-top: 0;
}
.faq-section details {
  border: 1px solid #d8e7f3;
  border-radius: 16px;
  padding: 16px 18px;
  margin: 12px 0;
  background: #fff;
}
.faq-section summary {
  cursor: pointer;
  color: #0b3f78;
  font-weight: 700;
}
.faq-section details p {
  margin: 12px 0 0;
}
.related-services ul,
.contact-cta ul {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px 18px;
  padding-left: 20px;
  margin: 12px 0 20px;
}
.related-services li,
.contact-cta li {
  line-height: 1.75;
}
.related-services a {
  color: #0b3f78;
  font-weight: 700;
}
.contact-cta .seo-content-card {
  background: #f6fbff;
}
@media(max-width:640px){
  .content-fill-v102 .cta-box,
  .faq-section details {
    padding: 18px;
  }
  .related-services ul,
  .contact-cta ul {
    grid-template-columns: 1fr;
  }
}


/* ===== assets/css/en-full-v97.css ===== */


/* v97 full English mirror helpers */
html[lang="en"] .hb-nav-link { font-size: 16px !important; }
html[lang="en"] .hb-title { letter-spacing: -0.01em !important; }
html[lang="en"] .content-card-v84 a { color: #0b74bd !important; font-weight: 900 !important; text-decoration: none !important; }
@media (max-width: 640px) {
  html[lang="en"] .hb-title { font-size: 16px !important; }
  html[lang="en"] .hb-sub { font-size: 11px !important; }
}


/* ===== assets/css/en-content-price-qr-v98.css ===== */


/* v98 English content, QR and price completion */
html[lang="en"] .en-card-grid-v98,
html[lang="en"] .card-grid-4 {
  display: grid !important;
  gap: 18px !important;
}
html[lang="en"] .content-card-v84 {
  background: #fff !important;
  border: 1px solid #dce6f0 !important;
  border-radius: 18px !important;
  padding: 18px !important;
  box-shadow: 0 10px 28px rgba(14,54,97,.05) !important;
}
html[lang="en"] .content-card-v84 h3 {
  margin: 0 0 8px !important;
  color: #073b68 !important;
  font-size: 18px !important;
  line-height: 1.35 !important;
}
html[lang="en"] .content-card-v84 p,
html[lang="en"] .content-card-v84 li {
  color: #526375 !important;
  font-size: 14px !important;
  line-height: 1.7 !important;
}
html[lang="en"] .content-card-v84 a {
  color: #0b74bd !important;
  font-weight: 900 !important;
  text-decoration: none !important;
}
html[lang="en"] .en-price-grid-v98,
html[lang="en"] .service-price-grid {
  display: grid !important;
  gap: 18px !important;
}
html[lang="en"] .service-price-card-cn {
  background: #fff !important;
  border: 1px solid #dce6f0 !important;
  border-radius: 18px !important;
  padding: 18px !important;
  box-shadow: 0 10px 28px rgba(14,54,97,.05) !important;
}
html[lang="en"] .service-card-tag {
  display: inline-flex !important;
  padding: 5px 9px !important;
  border-radius: 999px !important;
  background: #eef7ff !important;
  color: #073b68 !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  margin-bottom: 8px !important;
}
html[lang="en"] .service-price-card-cn h3 {
  margin: 0 0 10px !important;
  color: #073b68 !important;
  font-size: 19px !important;
  line-height: 1.35 !important;
}
html[lang="en"] .service-fit {
  color: #526375 !important;
  font-size: 14px !important;
  line-height: 1.7 !important;
}
html[lang="en"] .fit-label {
  font-weight: 900 !important;
  color: #073b68 !important;
  margin-right: 4px !important;
}
html[lang="en"] .cn-price {
  display: grid !important;
  gap: 8px !important;
  margin: 14px 0 10px !important;
}
html[lang="en"] .cn-price strong {
  color: #073b68 !important;
  font-size: 16px !important;
  line-height: 1.45 !important;
}
html[lang="en"] .service-extra {
  display: block !important;
  color: #66788c !important;
  font-size: 13px !important;
  margin: 8px 0 12px !important;
}
html[lang="en"] .service-price-card-cn a {
  color: #0b74bd !important;
  font-weight: 900 !important;
  text-decoration: none !important;
}
html[lang="en"] .qr-image-box-v92 img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
}
html[lang="en"] .price-note,
html[lang="en"] .payment-note-card,
html[lang="en"] .price-decision-card {
  background: #fff !important;
  border: 1px solid #dce6f0 !important;
  border-radius: 18px !important;
  padding: 20px !important;
}
@media (min-width: 1024px) {
  html[lang="en"] .en-card-grid-v98,
  html[lang="en"] .card-grid-4,
  html[lang="en"] .en-price-grid-v98,
  html[lang="en"] .service-price-grid,
  html[lang="en"] .price-decision-grid,
  html[lang="en"] .payment-note-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
}
@media (min-width: 641px) and (max-width: 1023px) {
  html[lang="en"] .en-card-grid-v98,
  html[lang="en"] .card-grid-4,
  html[lang="en"] .en-price-grid-v98,
  html[lang="en"] .service-price-grid,
  html[lang="en"] .price-decision-grid,
  html[lang="en"] .payment-note-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 640px) {
  html[lang="en"] .en-card-grid-v98,
  html[lang="en"] .card-grid-4,
  html[lang="en"] .en-price-grid-v98,
  html[lang="en"] .service-price-grid,
  html[lang="en"] .price-decision-grid,
  html[lang="en"] .payment-note-grid {
    grid-template-columns: 1fr !important;
  }
}


/* ===== assets/css/v107-multilingual-parity-pricing.css ===== */


/* v107 multilingual parity and visible pricing */
.content-fill-v107 .pricing-grid,
.v107-price-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  margin: 26px 0;
}
.content-fill-v107 .price-card,
.v107-price-card {
  border: 1px solid rgba(11,63,120,.14);
  border-radius: 18px;
  padding: 20px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(15,23,42,.06);
}
.content-fill-v107 .price-card h3,
.v107-price-card h3 { margin-top: 0; }
.content-fill-v107 .price-row,
.v107-price-row {
  display:flex;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 0;
  border-bottom: 1px solid rgba(15,23,42,.08);
}
.content-fill-v107 .price-row:last-child,
.v107-price-row:last-child { border-bottom: 0; }
.content-fill-v107 .price-amount,
.v107-price-amount { font-weight: 700; white-space: nowrap; }
.content-fill-v107 .notice-box,
.v107-notice-box {
  border-left: 4px solid #0b3f78;
  background: rgba(11,63,120,.06);
  padding: 16px 18px;
  border-radius: 12px;
  margin: 18px 0;
}
.content-fill-v107 .flow-grid,
.v107-flow-grid,
.content-fill-v107 .feature-grid,
.v107-feature-grid {
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin: 22px 0;
}
.content-fill-v107 .feature-card,
.v107-feature-card,
.content-fill-v107 .flow-card,
.v107-flow-card {
  border:1px solid rgba(15,23,42,.10);
  border-radius:16px;
  padding:18px;
  background:#fff;
}
.content-fill-v107 .mini-tag,
.v107-mini-tag {
  display:inline-block;
  font-size:.78rem;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:#0b3f78;
  font-weight:700;
  margin-bottom:8px;
}
@media (max-width: 980px) {
  .content-fill-v107 .pricing-grid,
  .v107-price-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .content-fill-v107 .flow-grid,
  .v107-flow-grid,
  .content-fill-v107 .feature-grid,
  .v107-feature-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 640px) {
  .content-fill-v107 .pricing-grid,
  .v107-price-grid,
  .content-fill-v107 .flow-grid,
  .v107-flow-grid,
  .content-fill-v107 .feature-grid,
  .v107-feature-grid { grid-template-columns: 1fr; }
  .content-fill-v107 .price-row,
  .v107-price-row { display:block; }
  .content-fill-v107 .price-amount,
  .v107-price-amount { display:block; margin-top:4px; }
}


/* ===== assets/css/content-fill-v108.css ===== */

/* v108 multilingual home parity patch */
.content-fill-v108 .cards-grid article{min-height:100%;}


/* ===== assets/css/legal-v110.css ===== */

/* v110 legal-page parity: desktop and mobile aligned across zh-CN, zh-Hant, en and ja */
.legal-v110-main{background:#fff;}
.legal-v110-hero{padding:64px 0 28px;background:linear-gradient(180deg,#fff7ed 0%,#ffffff 100%);}
.legal-v110-head{max-width:980px;}
.legal-v110-head h1{font-size:clamp(34px,5vw,58px);line-height:1.08;margin:.22em 0 .36em;letter-spacing:-.03em;}
.legal-v110-head p{max-width:820px;font-size:clamp(16px,2.2vw,20px);line-height:1.8;color:#526173;}
.legal-v110-section{padding:28px 0 48px;}
.legal-v110-doc{max-width:980px;background:#fff;border:1px solid rgba(15,23,42,.08);box-shadow:0 18px 50px rgba(15,23,42,.08);border-radius:28px;padding:42px;}
.legal-v110-doc h2{font-size:clamp(26px,3.6vw,38px);margin:0 0 18px;color:#111827;}
.legal-v110-intro{font-size:17px;line-height:1.9;color:#334155;border-left:4px solid #ff8a00;padding-left:18px;margin:0 0 28px;}
.legal-v110-item{padding:22px 0;border-top:1px solid rgba(15,23,42,.08);}
.legal-v110-item h3{font-size:clamp(19px,2.8vw,24px);line-height:1.35;margin:0 0 10px;color:#111827;}
.legal-v110-item p,.legal-v110-item li{font-size:16px;line-height:1.9;color:#475569;}
.legal-v110-item p{margin:0 0 8px;}
.legal-v110-item ul{margin:10px 0 0 1.2em;padding:0;display:grid;gap:6px;}
.legal-v110-contact{background:#f8fafc;border:1px solid rgba(15,23,42,.08);border-radius:18px;padding:18px;word-break:break-word;}
.legal-v110-date,.legal-v110-cross{font-size:15px;color:#64748b;line-height:1.8;margin-top:16px;}
.legal-v110-cross a{font-weight:800;color:#e67a00;text-decoration:underline;text-underline-offset:3px;}
.legal-v110-cta{padding:0 0 64px;}
.legal-v110-cta-card{max-width:980px;background:#111827;color:#fff;border-radius:28px;padding:34px 38px;display:flex;gap:26px;align-items:center;justify-content:space-between;box-shadow:0 18px 50px rgba(15,23,42,.18);}
.legal-v110-cta-card h2{margin:.1em 0 .35em;font-size:clamp(24px,3.2vw,34px);}
.legal-v110-cta-card p{margin:0;color:rgba(255,255,255,.78);line-height:1.8;}
.legal-v110-cta-card .eyebrow{color:#ffb15c;}
.legal-v110-cta-card .btn{white-space:nowrap;min-width:max-content;}
@media (max-width:720px){
  .legal-v110-hero{padding:42px 0 20px;}
  .legal-v110-section{padding:18px 0 34px;}
  .legal-v110-doc{border-radius:22px;padding:24px 18px;box-shadow:0 12px 34px rgba(15,23,42,.08);}
  .legal-v110-intro{font-size:15.5px;line-height:1.85;padding-left:14px;}
  .legal-v110-item{padding:18px 0;}
  .legal-v110-item p,.legal-v110-item li{font-size:15px;line-height:1.85;}
  .legal-v110-item ul{margin-left:1.05em;}
  .legal-v110-contact{padding:14px;border-radius:16px;}
  .legal-v110-cta{padding:0 0 44px;}
  .legal-v110-cta-card{border-radius:22px;padding:24px 18px;display:block;}
  .legal-v110-cta-card .btn{display:block;width:100%;text-align:center;margin-top:18px;}
}


/* ===== assets/css/ja-full-v99.css ===== */


/* v99 full Japanese mirror helpers */
html[lang="ja"] .hb-nav-link {
  font-size: 16px !important;
}
html[lang="ja"] .hb-title {
  letter-spacing: -0.01em !important;
}
@media (max-width: 640px) {
  html[lang="ja"] .hb-title {
    font-size: 16px !important;
  }
  html[lang="ja"] .hb-sub {
    font-size: 11px !important;
  }
}
html[lang="ja"] .content-card-v84 a,
html[lang="ja"] .price-card-v98 a {
  color: #0b74bd !important;
  font-weight: 900 !important;
  text-decoration: none !important;
}


/* ===== assets/css/ja-mobile-header-v100.css ===== */


/* v100 Japanese mobile header normalization */
@media (max-width: 640px) {
  html[lang="ja"] .hb-header,
  html[lang="ja"] .site-header,
  html[lang="ja"] .header {
    min-height: 0 !important;
    height: auto !important;
    padding: 0 !important;
  }

  html[lang="ja"] .hb-header .hb-main {
    min-height: 0 !important;
    height: auto !important;
    padding: 10px 14px 8px !important;
    margin: 0 auto !important;

    display: grid !important;
    grid-template-columns: 52px minmax(0, 1fr) 46px !important;
    grid-template-areas:
      "logo brand menu" !important;
    column-gap: 8px !important;
    row-gap: 0 !important;
    align-items: center !important;
  }

  html[lang="ja"] .hb-logo-link {
    grid-area: logo !important;
    width: 48px !important;
    height: 48px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  html[lang="ja"] .hb-logo-img {
    width: 46px !important;
    height: 46px !important;
    object-fit: contain !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  html[lang="ja"] .hb-copy-link {
    grid-area: brand !important;
    display: block !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    text-decoration: none !important;
  }

  html[lang="ja"] .hb-title {
    display: block !important;
    font-size: 16px !important;
    line-height: 1.18 !important;
    font-weight: 900 !important;
    color: #0b4778 !important;
    letter-spacing: -0.02em !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    margin: 0 !important;
    padding: 0 !important;
    max-width: 100% !important;
  }

  html[lang="ja"] .hb-sub {
    display: block !important;
    font-size: 11.5px !important;
    line-height: 1.25 !important;
    color: #66788c !important;
    margin: 2px 0 0 !important;
    padding: 0 !important;
    max-width: 100% !important;
  }

  html[lang="ja"] .hb-sub span {
    display: inline !important;
  }

  html[lang="ja"] .hb-menu {
    grid-area: menu !important;
    width: 42px !important;
    height: 42px !important;
    justify-self: end !important;
    align-self: center !important;
    margin: 0 !important;
  }

  html[lang="ja"] .hb-tools {
    min-height: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 7px 14px 8px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 4px !important;
  }

  html[lang="ja"] .hb-tel {
    display: inline !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    color: #0b4778 !important;
    font-size: 15px !important;
    line-height: 1.2 !important;
    font-weight: 900 !important;
    text-align: center !important;
    text-decoration: none !important;
  }

  html[lang="ja"] .hb-lang {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    gap: 4px !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 11px !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
  }

  html[lang="ja"] .hb-lang a,
  html[lang="ja"] .hb-lang span {
    font-size: 11px !important;
    line-height: 1.2 !important;
  }
}

@media (max-width: 390px) {
  html[lang="ja"] .hb-title {
    font-size: 15px !important;
    line-height: 1.16 !important;
  }

  html[lang="ja"] .hb-sub {
    font-size: 11px !important;
  }

  html[lang="ja"] .hb-tel {
    font-size: 14.5px !important;
  }
}


/* ===== assets/css/demand-scenarios-v69.css ===== */


/* v69 demand scenarios page */
.scenario-page-v69 .scenario-compact-hero{padding:34px 0 24px;background:linear-gradient(180deg,#f7fbff 0%,#fff 100%)}
.scenario-page-v69 .scenario-compact-hero .section-head{max-width:820px}.scenario-page-v69 .scenario-compact-hero h1{margin-bottom:10px;font-size:clamp(28px,4vw,42px);line-height:1.18}
.scenario-page-v69 .scenario-grid{display:grid;gap:18px}.scenario-page-v69 .city-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.scenario-page-v69 .service-grid-v69{grid-template-columns:repeat(4,minmax(0,1fr))}.scenario-page-v69 .judge-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.scenario-page-v69 .prep-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.scenario-page-v69 .scenario-card{background:#fff;border:1px solid #dce6f0;border-radius:18px;padding:20px;box-shadow:0 10px 28px rgba(14,54,97,.06);min-height:100%}.scenario-page-v69 .scenario-card h3{margin:0 0 10px;color:#073b68;font-size:19px;line-height:1.35}.scenario-page-v69 .scenario-card p{margin:0;color:#4e5f70;line-height:1.75}.scenario-page-v69 .scenario-card .text-link{display:inline-flex;margin-top:14px;font-weight:900;color:#0b5e9d;text-decoration:none}.scenario-page-v69 .prep-item{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #dce6f0;border-radius:999px;padding:12px 16px;font-weight:800;color:#073b68}.scenario-page-v69 .prep-item::before{content:'✓';display:inline-grid;place-items:center;width:20px;height:20px;border-radius:999px;background:#eaf5ff;color:#0b5e9d;font-size:13px;flex:0 0 20px}.scenario-page-v69 .faq-list details{background:#fff;border:1px solid #dce6f0;border-radius:16px;padding:16px 18px;margin-bottom:12px;box-shadow:0 8px 22px rgba(14,54,97,.05)}.scenario-page-v69 .faq-list summary{cursor:pointer;font-weight:900;color:#073b68}.scenario-page-v69 .faq-list p{margin:10px 0 0;color:#4e5f70;line-height:1.75}
@media(max-width:1100px){.scenario-page-v69 .city-grid,.scenario-page-v69 .service-grid-v69{grid-template-columns:repeat(3,minmax(0,1fr))}.scenario-page-v69 .judge-grid,.scenario-page-v69 .prep-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.scenario-page-v69 .scenario-compact-hero{padding:20px 0 14px}.scenario-page-v69 .scenario-compact-hero h1{font-size:24px}.scenario-page-v69 .city-grid,.scenario-page-v69 .service-grid-v69{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.scenario-page-v69 .judge-grid,.scenario-page-v69 .prep-grid{grid-template-columns:1fr}.scenario-page-v69 .scenario-card{padding:14px;border-radius:14px}.scenario-page-v69 .scenario-card h3{font-size:16px;margin-bottom:7px}.scenario-page-v69 .scenario-card p{font-size:13px;line-height:1.62}.scenario-page-v69 .scenario-card .text-link{margin-top:10px;font-size:13px}.scenario-page-v69 .prep-item{border-radius:14px;padding:11px 13px;font-size:14px}}

/* ===== v114 service uniqueness and SEO content blocks ===== */
.v114-service-unique{margin:clamp(28px,5vw,56px) auto;padding:clamp(20px,4vw,34px);border:1px solid rgba(11,63,120,.14);border-radius:22px;background:linear-gradient(180deg,#ffffff 0%,#f7fbff 100%);box-shadow:0 12px 32px rgba(11,63,120,.07);max-width:1100px}
.v114-service-unique .v114-kicker{margin:0 0 8px;color:#0b6aa8;font-weight:700;font-size:.95rem;letter-spacing:.02em}
.v114-service-unique h2{margin:0 0 12px;color:#0b2647;font-size:clamp(1.35rem,3vw,2rem);line-height:1.25}
.v114-service-unique p{margin:0 0 14px;color:#30445c;line-height:1.85}
.v114-service-unique ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;margin:18px 0;padding-left:1.2em;color:#34495e;line-height:1.75}
.v114-service-unique .v114-note{margin-top:18px;padding:14px 16px;border-radius:14px;background:#fff7e8;color:#5b3b09}
@media(max-width:720px){.v114-service-unique{border-radius:18px;margin:24px 0;padding:18px}.v114-service-unique ul{grid-template-columns:1fr;gap:8px}.v114-service-unique p{line-height:1.78}}


/* ===== v115: translator recruitment form alignment and shared submit UI ===== */
.recruit-form-section-v115 {
  background: #f3f8fc !important;
}
.recruit-form-section-v115 .section-head {
  margin-bottom: 18px !important;
}
.recruit-form-section-v115 .recruit-form-panel-v115 {
  max-width: 980px !important;
  margin: 0 auto !important;
  background: #ffffff !important;
  border: 1px solid #dce8f3 !important;
  border-radius: 22px !important;
  padding: 28px !important;
  box-shadow: 0 18px 42px rgba(14,54,97,.07) !important;
}
.recruit-form-section-v115 .contact-form {
  margin: 0 !important;
}
.recruit-form-section-v115 .form-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 16px !important;
}
.recruit-form-section-v115 .form-grid .full,
.recruit-form-section-v115 .hp-field {
  grid-column: 1 / -1 !important;
}
.recruit-form-section-v115 .hp-field {
  position: absolute !important;
  left: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}
.recruit-form-section-v115 label {
  color: #17243a !important;
  font-weight: 800 !important;
  font-size: 14px !important;
}
.recruit-form-section-v115 input,
.recruit-form-section-v115 select,
.recruit-form-section-v115 textarea {
  margin-top: 7px !important;
}
.recruit-form-section-v115 textarea {
  min-height: 160px !important;
}
/* Apply the checkbox fix globally to all HI BAGS forms, not only the contact page. */
.contact-form .consent-row {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
  gap: 10px !important;
  grid-column: 1 / -1 !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  margin: 2px 0 0 !important;
  padding: 12px 14px !important;
  border: 1px solid #dce8f3 !important;
  border-radius: 14px !important;
  background: #f8fbff !important;
  color: #526375 !important;
  font-weight: 500 !important;
  font-size: 14px !important;
  line-height: 1.65 !important;
  letter-spacing: 0 !important;
  text-align: left !important;
  white-space: normal !important;
}
.contact-form .consent-row input[type="checkbox"] {
  appearance: auto !important;
  -webkit-appearance: checkbox !important;
  flex: 0 0 20px !important;
  width: 20px !important;
  height: 20px !important;
  min-width: 20px !important;
  min-height: 20px !important;
  max-width: 20px !important;
  margin: 3px 0 0 !important;
  padding: 0 !important;
  border-radius: 4px !important;
}
.contact-form .consent-row .consent-text {
  display: block !important;
  flex: 1 1 auto !important;
  min-width: 0 !important;
  max-width: 100% !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
  white-space: normal !important;
  text-align: left !important;
}
.contact-form .consent-row .consent-text a {
  display: inline !important;
  color: #0e5aa7 !important;
  font-weight: 900 !important;
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
  white-space: nowrap !important;
}
.contact-form .form-error:empty,
.contact-form .form-success:empty {
  display: none !important;
  margin: 0 !important;
}
.contact-form .form-error:not(:empty),
.contact-form .form-success:not(:empty) {
  margin: 14px 0 0 !important;
  padding: 12px 14px !important;
  border-radius: 12px !important;
  line-height: 1.65 !important;
}
.contact-form .form-success:not(:empty) {
  color: #11633a !important;
  background: #eefaf3 !important;
  border: 1px solid #b9e8c9 !important;
}
.contact-form .form-error:not(:empty) {
  color: #9f1d1d !important;
  background: #fff1f1 !important;
  border: 1px solid #f3c4c4 !important;
}
.recruit-form-section-v115 .contact-form > .btn.primary[type="submit"],
.recruit-form-section-v115 .contact-form > button[type="submit"] {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin-top: 18px !important;
  margin-left: 0 !important;
  margin-right: auto !important;
  min-width: 190px !important;
  min-height: 52px !important;
  padding: 14px 28px !important;
  font-size: 16px !important;
  line-height: 1.2 !important;
}
@media (max-width: 640px) {
  .recruit-form-section-v115 .recruit-form-panel-v115 {
    width: min(100%, 100%) !important;
    padding: 16px !important;
    border-radius: 18px !important;
  }
  .recruit-form-section-v115 .form-grid {
    grid-template-columns: 1fr !important;
    gap: 13px !important;
  }
  .contact-form .consent-row {
    gap: 9px !important;
    padding: 11px 12px !important;
    font-size: 13px !important;
    line-height: 1.7 !important;
  }
  .contact-form .consent-row input[type="checkbox"] {
    flex-basis: 18px !important;
    width: 18px !important;
    height: 18px !important;
    min-width: 18px !important;
    min-height: 18px !important;
    max-width: 18px !important;
    margin-top: 3px !important;
  }
  .contact-form .consent-row .consent-text {
    font-size: 13px !important;
  }
  .recruit-form-section-v115 .contact-form > .btn.primary[type="submit"],
  .recruit-form-section-v115 .contact-form > button[type="submit"] {
    width: auto !important;
    min-width: 178px !important;
    min-height: 50px !important;
    margin-top: 16px !important;
    padding: 13px 24px !important;
    font-size: 15px !important;
  }
}


/* v116 priority SEO service blocks: natural city/service entry points */
.v116-priority-service{background:linear-gradient(180deg,#f7fbff 0%,#ffffff 100%);border:1px solid rgba(11,63,120,.10);border-radius:24px;margin:32px auto;padding:36px 0}
.v116-priority-service .wrap{max-width:1120px;margin:0 auto;padding:0 24px}
.v116-priority-service h2{font-size:clamp(24px,3vw,36px);line-height:1.28;margin:8px 0 14px;color:#10233d;letter-spacing:-.02em}
.v116-priority-service p{font-size:17px;line-height:1.9;color:#33475f;margin:0 0 18px}
.priority-service-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:20px}
.priority-service-grid a{display:block;text-decoration:none;background:#fff;border:1px solid rgba(11,63,120,.14);border-radius:18px;padding:18px;box-shadow:0 12px 30px rgba(16,35,61,.06);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.priority-service-grid a:hover{transform:translateY(-2px);box-shadow:0 18px 36px rgba(16,35,61,.10);border-color:rgba(11,63,120,.28)}
.priority-service-grid strong{display:block;color:#0b3f78;font-size:18px;margin-bottom:8px}
.priority-service-grid span{display:block;color:#52647a;font-size:14px;line-height:1.7}
.priority-service-inline{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.priority-service-inline a{display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border-radius:999px;background:#fff;border:1px solid rgba(11,63,120,.14);color:#0b3f78;text-decoration:none;font-weight:700;font-size:14px}
.priority-service-inline a:hover{border-color:rgba(11,63,120,.32);box-shadow:0 8px 20px rgba(16,35,61,.08)}
@media(max-width:900px){.v116-priority-service{border-radius:18px;margin:24px 12px;padding:28px 0}.v116-priority-service .wrap{padding:0 18px}.v116-priority-service p{font-size:16px}.priority-service-grid{grid-template-columns:1fr}.priority-service-inline a{width:100%}}
