:root{
  --container:1080px;   
  --navy-900:#0f1e3a;   
  --navy-800:#1B2A4A;   
  --navy-700:#2563EB;   
  --navy-500:#3b82f6;   
  --navy-100:#dbeafe;   
  --navy-50:#f5f7fa;    

  
  --gold-600:#92400e;   
  --gold-500:#B8860B;   
  --gold-300:#fcd34d;   
  --gold-50:#fffbeb;    

  --border:#e2e8f0;     
  --surface:#fff;

  --shadow-sm:0 1px 2px rgba(27,42,74,.06);
  --shadow:0 4px 14px rgba(27,42,74,.08);
  --shadow-lg:0 14px 34px rgba(27,42,74,.14);
  --shadow-gold:0 4px 14px rgba(184,134,11,.24);

  
  --ph-tint:#eaf0f8;
}


.btn-gold{ color:#fff; }
.btn-gold:hover{ background:#92400e; color:#fff; }


.img-ph{
  background:
    linear-gradient(135deg, rgba(255,255,255,.16), rgba(255,255,255,0) 58%),
    repeating-linear-gradient(45deg, rgba(37,99,235,.12) 0 9px, rgba(37,99,235,0) 9px 18px),
    #eaf0f8;
  border: 1px solid #dbeafe;
  border-radius: 12px;
}



.m-hero{ background:linear-gradient(135deg,#0f1e3a,#1B2A4A 60%,#2563EB); }
.m-hero::after{ background:radial-gradient(circle,rgba(37,99,235,.22),transparent 68%); }
.m-hero .lead{ color:#dbeafe; }


.m-hdr[data-v="b"]{
  background:linear-gradient(180deg,rgba(15,30,58,.97),rgba(27,42,74,.94));
}


.m-stats .l{ color:#dbeafe; }


.m-demo .play span{ background:rgba(15,30,58,.82); }
.m-modal{ background:rgba(15,30,58,.6); }


.m-sop .swatch.c{ background:linear-gradient(135deg,#f5f7fa 50%,#1B2A4A 50%); }


.m-cert .ic, .m-quote .q-mark{ color:var(--gold-300); }


.m16-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}
.m16-metric{border:1px solid var(--border,#e2e8f0);border-top:3px solid #2563EB;background:#fff;padding:20px;text-align:center}
.m16-metric .n{font-size:30px;font-weight:800;color:#1B2A4A;line-height:1.1}
.m16-metric .l{font-size:13px;color:#64748b;margin-top:6px}
.m16-lc{position:fixed;left:22px;bottom:26px;z-index:900;display:flex;flex-direction:column;gap:10px}
.m16-lc-btn{width:54px;height:54px;border-radius:50%;border:0;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;font-size:22px;box-shadow:0 4px 14px rgba(0,0,0,.18)}
.m16-wa{background:#25d366}
.m16-chat{background:linear-gradient(135deg,#1B2A4A,#2563EB)}
.m16-pop{position:fixed;left:22px;bottom:92px;z-index:950;width:300px;background:#fff;border:1px solid var(--border,#e2e8f0);border-top:4px solid #2563EB;border-radius:12px;padding:20px;display:none;box-shadow:0 12px 30px rgba(27,42,74,.2)}
.m16-pop.open{display:block}
.m16-pop h4{margin:0 0 6px;color:#1B2A4A}
.m16-pop p{margin:0 0 12px;font-size:13px;color:#64748b}
.m16-pop input,.m16-pop textarea{width:100%;box-sizing:border-box;padding:11px;border:1px solid var(--border,#e2e8f0);border-radius:8px;margin-bottom:10px;font-size:14px}
.m16-pop .btn{width:100%}
.m16-top{position:fixed;right:22px;bottom:26px;width:46px;height:46px;border-radius:50%;background:#1B2A4A;color:#fff;border:1px solid #2563EB;cursor:pointer;font-size:20px;z-index:900;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:.3s;box-shadow:0 4px 14px rgba(27,42,74,.35)}
.m16-top.show{opacity:1;pointer-events:auto}

/* hero real photo */
.m-hero .m-hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:0;display:block;}
.m-hero .m-hero-shade{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(15,25,45,.86) 0%,rgba(15,25,45,.52) 55%,rgba(15,25,45,.14) 100%);}
.m-hero .wrap,.m-hero .hero-in{position:relative;z-index:2;}


@media (min-width: 656px) and (max-width: 871px) {
  .m16-metrics:not(:has(> :nth-child(5))) > :nth-child(4):last-child { grid-column: 1 / -1; }
}

body{
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,'Noto Sans',sans-serif,'Apple Color Emoji','Segoe UI Emoji';
  color:#1F2937;
  background:#fff;
  line-height:1.7;
  font-size:1rem;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
h1{font-size:2rem;font-weight:800;line-height:1.2;color:#1B2A4A}
h2{font-size:1.5rem;font-weight:700;line-height:1.25;color:#1B2A4A}
h3{font-size:1.125rem;font-weight:700;color:#1B2A4A}

.content-block h2, .extra-screen h2, .section-block h2, .extra-fix h2, .mod-head h2{
  color:#1B2A4A;
  font-size:1.5rem;
  line-height:1.25;
}

.m-hero h1, .m-hero[data-v="c"] h1{
  font-size:2rem;
  line-height:1.2;
}

.m-hero .trust{
  margin-top:28px;
  padding-top:18px;
  line-height:2.0;
  gap:6px 16px;
}
.m-hero .trust span{
  display:inline-block;
  margin-right:4px;
}
.m-hero .hero-note{
  margin-top:24px;
  font-size:14px;
  line-height:1.75;
  color:rgba(255,255,255,.85);
  border-top:1px solid rgba(255,255,255,.12);
  padding-top:16px;
}
a{color:#2563EB}
.wrap{width:min(1080px,92%);margin:0 auto}
.m-hero .wrap{width:min(1080px,92%)}
.m-hero h1{color:#fff;font-size:2rem;letter-spacing:-.01em}
.m-hero .lead{color:rgba(255,255,255,.9);font-size:1.06rem;max-width:62ch}
.kicker{color:#fcd34d;letter-spacing:.14em;font-size:.78rem;font-weight:700;text-transform:uppercase}
section.alt, .mod.alt{ background:#f5f7fa; }


.m-hero .wrap,.m-rel .wrap,.m-stats .wrap{width:min(1080px,92%)}

/* === lingomere logo rollout 2026-09-28 === */
a.brand, header .brand, .main-header .brand, .site-header .brand, .m-hdr .brand {
  max-width: none !important;
  overflow: visible !important;
  white-space: nowrap !important;
}
.brand-logo, .brand .mark, .brand .lg, .brand .brand-mark {
  width: auto !important;
  height: auto !important;
  overflow: visible !important;
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  flex: 0 0 auto !important;
  display: inline-flex !important;
  align-items: center;
  padding: 0 !important;
  max-width: none !important;
}
.brand-logo-img, .brand .mark img, .brand .lg img, .brand .brand-mark img {
  height: 36px !important;
  width: auto !important;
  max-width: none !important;
  border-radius: 0 !important;
  display: inline-block !important;
}
.brand-text, .brand .mark + span, .brand .lg + span, .brand .brand-mark + span {
  display: none !important;
}
.brand-logo::after, .brand .mark::after, .brand .lg::after, .brand .brand-mark::after {
  display: none !important;
}




.crumbs{font-size:.875rem;color:#64748b;margin-bottom:1rem}
.crumbs a{color:#2563EB;text-decoration:none}
.crumbs a:hover{text-decoration:underline}
.crumbs .sep{margin:0 .5em;color:#94a3b8}
.crumbs [aria-current]{color:#1F2937;font-weight:600}


.hp{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}
.hp:focus{position:static !important;width:auto !important;height:auto !important;padding:.5rem !important;margin:0 !important;overflow:visible !important;clip:auto !important;white-space:normal !important}


/* ===== 移动端兼容性补丁 ===== */
@media (max-width: 767px) {
  /* P4 字号：强制最小 16px */
  body, p, span, a, li, td, th, label, div, h1, h2, h3, h4, h5, h6,
  nav a, header a, footer a, .nav-links a, .nav a, .menu a,
  .site-header a, .m-hdr a, .main-header a {
    font-size: 16px !important;
  }
  h1 { font-size: 24px !important; }
  h2 { font-size: 20px !important; }
  h3 { font-size: 18px !important; }
  input, select, textarea, button {
    font-size: 16px !important;
  }
  /* P3 触控目标 */
  a, button, input, select, textarea, [role="button"], .btn,
  .nav-toggle, .menu-toggle, .mobile-menu-toggle, .float,
  .chat, .cookie-bar, .back-to-top, .whatsapp-float, .lx-chat,
  .m-chat, .live-chat, .skip-link {
    min-width: 44px !important;
    min-height: 44px !important;
    padding: 10px 16px !important;
  }
  /* P9 浮层：降低 z-index */
  #cookieBanner, .cookie-bar, .m-cookie, #s28CookieBanner,
  .cookie-consent, .cookie-banner {
    z-index: 999 !important;
    max-height: 40vh !important;
    overflow-y: auto !important;
  }
  #lingoFloatLeft, .float-r, .whatsapp-float, .wa-float,
  .back-to-top, .float-chat, .chat-widget {
    z-index: 998 !important;
    width: 48px !important;
    height: 48px !important;
  }
  /* P12 hero 窄列修复 */
  .m-hero, .hero, .hero-premium, .subhero-premium, .page-head {
    display: block !important;
  }
  .m-hero .wrap, .hero .wrap {
    width: 100% !important;
    max-width: 100% !important;
  }
  /* P2 横向溢出 */
  body { overflow-x: hidden !important; }
  img, table, .table-scroll {
    max-width: 100% !important;
  }
}


/* ===== 移动端兼容性补丁（最终版） ===== */
@media (max-width: 767px) {
  html { -webkit-text-size-adjust: 100%; }
  body, p, span, a, li, td, th, label, div, h1, h2, h3, h4, h5, h6,
  nav a, header a, footer a, .nav-links a, .nav a, .menu a,
  .site-header a, .m-hdr a, .main-header a, .skip-link {
    font-size: 16px !important;
  }
  h1 { font-size: 24px !important; }
  h2 { font-size: 20px !important; }
  h3 { font-size: 18px !important; }
  input, select, textarea, button { font-size: 16px !important; }
  a, button, input, select, textarea, [role="button"], .btn,
  .nav-toggle, .menu-toggle, .mobile-menu-toggle, .float,
  .chat, .cookie-bar, .back-to-top, .whatsapp-float, .lx-chat,
  .m-chat, .live-chat, .skip-link {
    min-width: 44px !important;
    min-height: 44px !important;
    padding: 10px 16px !important;
  }
  #cookieBanner, .cookie-bar, .m-cookie, #s28CookieBanner,
  .cookie-consent, .cookie-banner {
    z-index: 999 !important;
    max-height: 40vh !important;
    overflow-y: auto !important;
  }
  #lingoFloatLeft, .float-r, .whatsapp-float, .wa-float,
  .back-to-top, .float-chat, .chat-widget {
    z-index: 998 !important;
    width: 48px !important;
    height: 48px !important;
  }
  .m-hero, .hero, .hero-premium, .subhero-premium, .page-head {
    display: block !important;
  }
  .m-hero .wrap, .hero .wrap { width: 100% !important; max-width: 100% !important; }
  body { overflow-x: hidden !important; }
  img, table, .table-scroll { max-width: 100% !important; }
}


/* ===== 移动端兼容性补丁（高权重版） ===== */
@media (max-width: 767px) {
  html body, html body p, html body span, html body a, html body li,
  html body td, html body th, html body label, html body div,
  html body h1, html body h2, html body h3, html body h4, html body h5, html body h6,
  html body nav a, html body header a, html body footer a,
  html body .nav-links a, html body .nav a, html body .menu a,
  html body .site-header a, html body .m-hdr a, html body .main-header a,
  html body .skip-link, html body a.skip-link {
    font-size: 16px !important;
  }
  html body h1 { font-size: 24px !important; }
  html body h2 { font-size: 20px !important; }
  html body h3 { font-size: 18px !important; }
  html body input, html body select, html body textarea, html body button {
    font-size: 16px !important;
  }
  html body a, html body button, html body input, html body select,
  html body textarea, html body [role="button"], html body .btn,
  html body .nav-toggle, html body .menu-toggle, html body .mobile-menu-toggle,
  html body .float, html body .chat, html body .cookie-bar,
  html body .back-to-top, html body .whatsapp-float, html body .lx-chat,
  html body .m-chat, html body .live-chat, html body .skip-link {
    min-width: 44px !important;
    min-height: 44px !important;
    padding: 10px 16px !important;
  }
  html body #cookieBanner, html body .cookie-bar, html body .m-cookie,
  html body #s28CookieBanner, html body .cookie-consent, html body .cookie-banner {
    z-index: 999 !important;
    max-height: 40vh !important;
    overflow-y: auto !important;
  }
  html body #lingoFloatLeft, html body .float-r, html body .whatsapp-float,
  html body .wa-float, html body .back-to-top, html body .float-chat,
  html body .chat-widget {
    z-index: 998 !important;
    width: 48px !important;
    height: 48px !important;
  }
  html body .m-hero, html body .hero, html body .hero-premium,
  html body .subhero-premium, html body .page-head {
    display: block !important;
  }
  html body .m-hero .wrap, html body .hero .wrap {
    width: 100% !important;
    max-width: 100% !important;
  }
  html body { overflow-x: hidden !important; }
  html body img, html body table, html body .table-scroll {
    max-width: 100% !important;
  }
}


/* ===== 移动端字号修复（覆盖 polish） ===== */
@media (max-width: 767px) {
  body, body * {
    font-size: 16px !important;
  }
  h1, h2, h3, h4, h5, h6 {
    font-size: 16px !important;
  }
  h1 { font-size: 24px !important; }
  h2 { font-size: 20px !important; }
  h3 { font-size: 18px !important; }
}

/* ===== 移动端字号精确覆盖 ===== */
@media (max-width: 767px) {
  .m-trust .badge { font-size: 16px !important; }
  .m-cert .v { font-size: 16px !important; }
  .m-case .ind { font-size: 16px !important; }
  .m-search .it .u { font-size: 16px !important; }
  .m-rel p { font-size: 16px !important; }
  .m-cust legend { font-size: 16px !important; }
  .m-gate p { font-size: 16px !important; }
  .m-form .note { font-size: 16px !important; }
  .m-case p { font-size: 16px !important; }
  .m-pcmp thead th .pr { font-size: 16px !important; }
  .m-sop .cat p { font-size: 16px !important; }
  .m-404 .links a { font-size: 16px !important; }
  .m-hero .hero-note { font-size: 16px !important; }
  .btn { font-size: 16px !important; }
  .m-svc .tag { font-size: 16px !important; }
  .check { font-size: 16px !important; }
  .m-sop .steps p { font-size: 16px !important; }
  .m-tag { font-size: 16px !important; }
  .content-block h3 { font-size: 16px !important; }
  .m-pager a,.m-pager span { font-size: 16px !important; }
  .m-pcmp thead th b { font-size: 16px !important; }
  .m-secnum { font-size: 16px !important; }
  .pillrow span { font-size: 16px !important; }
  .m-stats .l { font-size: 16px !important; }
  thead th, tbody td { font-size: 16px !important; }
  .m-cmp thead th { font-size: 16px !important; }
  .m-kpi p { font-size: 16px !important; }
  .m-cert h3 { font-size: 16px !important; }
  .m-feat .card p { font-size: 16px !important; }
  .util { font-size: 16px !important; }
  .m16-pop input,.m16-pop textarea { font-size: 16px !important; }
  .content-block p { font-size: 16px !important; }
  .m-hero .trust { font-size: 16px !important; }
  .m-price .tag { font-size: 16px !important; }
  .m-count .note { font-size: 16px !important; }
  .m-toc .side ul { font-size: 16px !important; }
  .m-pcmp table { font-size: 16px !important; }
  .m-gate .inline input { font-size: 16px !important; }
  .m-tl .yr { font-size: 16px !important; }
  .m-rev blockquote { font-size: 16px !important; }
  .m-tabs .navrow a { font-size: 16px !important; }
  .m-sop .steps .n { font-size: 16px !important; }
  .m-dl p { font-size: 16px !important; }
  .m16-metric .l { font-size: 16px !important; }
  .m-feat p { font-size: 16px !important; }
  .m-sop .vcard b { font-size: 16px !important; }
  .kicker { font-size: 16px !important; }
  .m-cmp table { font-size: 16px !important; }
  .m-base dd { font-size: 16px !important; }
  .m-sop .cat .k { font-size: 16px !important; }
}

/* ===== 移动端 footer 字号强制 ===== */
@media (max-width: 767px) {
  footer, footer *, .site-footer, .site-footer *, .footer, .footer *,
  .footer-col, .footer-col *, .footer-links, .footer-links *,
  .footer-bottom, .footer-bottom *, .copyright, .copyright *,
  .brand-tagline, .brand-tagline *, .footer-logo + p, .footer-logo ~ p,
  .footer h4, .footer h5, .footer h6, .footer a, .footer p, .footer span,
  .footer li, .footer td, .footer th, .footer label, .footer div {
    font-size: 16px !important;
  }
}


/* ===== 移动端全局字号强制 ===== */
@media (max-width: 767px) {
  html body * {
    font-size: 16px !important;
  }
  html body h1 { font-size: 24px !important; }
  html body h2 { font-size: 20px !important; }
  html body h3 { font-size: 18px !important; }
  html body h4 { font-size: 16px !important; }
  html body h5 { font-size: 16px !important; }
  html body h6 { font-size: 16px !important; }
}

/* ===== 移动端覆盖自身规则 ===== */
@media (max-width: 767px) {
  .kicker { font-size: 16px !important; }
  .m16-pop p { font-size: 16px !important; }
  .m16-pop input,.m16-pop textarea { font-size: 16px !important; }
  .m16-metric .l { font-size: 16px !important; }
  .m-hero .hero-note { font-size: 16px !important; }
  .crumbs { font-size: 16px !important; }
}

/* ===== 移动端触控目标扩大 ===== */
@media (max-width: 767px) {
  .mobile-toggle, .nav-toggle, .menu-toggle, .mobile-menu-toggle,
  .hamburger, .menu-btn, .nav-btn, .toggle-menu, .open-menu,
  [class*="toggle"], [class*="menu-toggle"], [class*="nav-toggle"],
  header a, .site-header a, .main-header a, .m-hdr a,
  nav a, .nav a, .nav-links a, .menu a, .main-nav a,
  .utility-bar a, .breadcrumb a, .footer a, .site-footer a,
  .btn, .button, [class*="btn"], [class*="button"] {
    min-width: 44px !important;
    min-height: 44px !important;
    padding: 10px 16px !important;
  }
  header nav a, .site-header nav a, .main-header nav a, .m-hdr nav a {
    min-height: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
  }
}
/* UI-PATCH-20261111-A2A3A6 reduced-motion */
@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
/* UI-PATCH-20261111-A2A3A6 focus-visible */
:focus-visible{outline:2px solid #1d4ed8;outline-offset:2px}
:focus{outline:2px solid #1d4ed8;outline-offset:2px}


/* ===== S16 UI 修复 2026-11-11（33 组补丁，逐组编号） ===== */

/* 01 顶部工具条：语言左停、链接右聚，恢复呼吸间距 */
.util .wrap { justify-content: flex-start !important; gap: 8px 24px !important; min-height: 36px; }
.util .lang { margin-right: auto; font-size: 12.5px; letter-spacing: .04em; }
.util a { font-size: 12.5px; opacity: .92; }
.util a:hover { opacity: 1; }

/* 02 页头高度与字标（深底白影，去掉 PNG 透明留白后按 38px 渲染） */
.m-hdr .bar { min-height: 68px; gap: 22px; }
.m-hdr .brand { flex: 0 0 auto; padding: 0; }
.m-hdr .brand img.brand-logo-img,
.m-hdr .brand img {
  height: 38px !important;
  width: auto !important;
  max-width: none !important;
  filter: brightness(0) invert(1) drop-shadow(0 1px 2px rgba(0,0,0,.25));
}
.m-hdr[data-v="c"] .brand img { filter: none; }

/* 03 主导航：ul 直挂 a（无 li），必须显式给 flex 与间距 */
.nav { display: flex; justify-content: flex-end; align-items: center; }
.nav > ul {
  display: flex !important; flex-wrap: wrap !important; align-items: center;
  justify-content: flex-end !important; gap: 4px 6px !important;
  list-style: none !important; margin: 0 !important; padding: 0 !important;
}
.nav > ul > a {
  display: block; padding: 9px 13px; font-size: 14.5px; font-weight: 600;
  line-height: 1.3; text-decoration: none; white-space: nowrap; border-radius: 8px;
}
.m-hdr[data-v="b"] .nav > ul > a { color: #fff; }
.m-hdr[data-v="b"] .nav > ul > a:hover { background: rgba(255,255,255,.10); color: var(--gold-300, #E8CC7A); }
.m-hdr[data-v="c"] .nav > ul > a { color: var(--navy-700, #0F3460); }
.nav > ul > a:hover { background: rgba(201,162,39,.14); }

/* 04 Hero：从「86vh 空渐变」改成真图遮罩 + 固定高度节奏 */
section.m-hero, .m-hero {
  min-height: auto !important;
  padding: 76px 0 68px !important;
  display: block !important;
  background-color: #061a33 !important;
  background-image:
    linear-gradient(94deg, rgba(6,26,51,.95) 0%, rgba(8,32,62,.88) 44%, rgba(10,37,71,.46) 100%),
    url("images/legal.jpg") !important;
  background-size: cover, cover !important;
  background-position: center, center 40% !important;
  background-repeat: no-repeat, no-repeat !important;
  border-bottom: 3px solid #C9A227;
}
section.m-hero::after { display: none !important; }
section.m-hero .wrap { max-width: 1140px; }
section.m-hero .hero-in { max-width: 720px; }
section.m-hero h1 {
  font-size: clamp(30px, 3.2vw, 44px) !important;
  line-height: 1.28 !important;
  margin: 16px 0 18px !important;
  color: #fff !important;
  text-shadow: 0 2px 18px rgba(0,0,0,.28);
}
section.m-hero .lead { font-size: 16px !important; line-height: 1.95 !important; color: #e4edfa !important; margin-bottom: 28px; }
section.m-hero .kicker { color: #E8CC7A !important; font-weight: 700; letter-spacing: .04em; }
section.m-hero .acts { display: flex; flex-wrap: wrap; gap: 14px 22px; align-items: center; }
section.m-hero .hero-note { margin-top: 20px; font-size: 13.5px; color: #b9cbe4 !important; }
section.m-hero .btn-outline { background: transparent; border: 1px solid rgba(255,255,255,.42); color: #fff; }
section.m-hero .btn-outline:hover { background: rgba(255,255,255,.12); }

/* 05 正文版心与区块节奏 */
.wrap { max-width: 1140px; margin-left: auto; margin-right: auto; }
main > .layout-a, main > .layout-b, main > .mod:not(.m-hero), main > section:not(.m-hero) { padding: 60px 0; }
main > .layout-a:nth-of-type(even) { background: #F6F8FC; }
.layout-a-grid, .layout-b-grid { gap: 48px !important; align-items: center !important; }
.layout-a-text, .layout-b-text { min-width: 0; }
.layout-a h2, .layout-b h2, .layout-a-text h2, .layout-b-text h2 {
  font-size: 26px !important; line-height: 1.42 !important; margin: 0 0 14px !important;
  padding-left: 14px; border-left: 4px solid #C9A227;
}
.layout-lead { font-size: 15.5px; font-weight: 700; color: #15233F; margin: 0 0 12px; }
.layout-body { font-size: 15px; line-height: 2.00; color: #3A4658; margin: 0; }
.layout-a-image img, .layout-b-image img {
  width: 100% !important; height: auto !important; display: block;
  border-radius: 14px !important;
  box-shadow: 0 12px 30px rgba(15,37,71,.14) !important;
}
.layout-cta { margin-top: 22px; }

/* 06 按钮统一 */
.btn { border-radius: 999px !important; font-weight: 700 !important; }
.btn-gold { background: #C9A227 !important; color: #12233F !important; border: 1px solid #C9A227 !important; }
.btn-gold:hover { background: #E8CC7A !important; border-color: #E8CC7A !important; }

/* 07 卡片/网格统一（m16-* 指标卡） */
.m16-metric { border-radius: 12px !important; border-top-width: 3px !important; }

/* 08 页脚深底 */
.m-ftr { background: #061a33 !important; }
.m-ftr a { color: #C9D6E8 !important; }
.m-ftr a:hover { color: #E8CC7A !important; }

@media (max-width: 900px) {
  section.m-hero, .m-hero { padding: 56px 0 48px !important; background-position: center, 62% center !important; }
  section.m-hero h1 { font-size: clamp(26px, 7vw, 34px) !important; }
  .m-hdr .bar { min-height: 60px; }
  .m-hdr .brand img { height: 30px !important; }
  main > .layout-a, main > .layout-b, main > section:not(.m-hero) { padding: 44px 0; }
  .layout-a h2, .layout-b h2 { font-size: 22px !important; }
}


/* 09 hero 底图换成东京城市实照，并把正文收到 1140 版心 */
section.m-hero, .m-hero {
  background-image:
    linear-gradient(94deg, rgba(6,26,51,.96) 0%, rgba(8,32,62,.90) 42%, rgba(10,37,71,.50) 100%),
    url("jp_city2.jpg") !important;
  background-position: center, center 42% !important;
}
section.m-hero .wrap { padding: 0 !important; }

/* 10 正文配图统一 4:3 裁切，避免竖图把一屏撑成两屏 */
.layout-a-image, .layout-b-image { overflow: hidden; border-radius: 14px; }
.layout-a-image img, .layout-b-image img {
  aspect-ratio: 4 / 3 !important;
  object-fit: cover !important;
  object-position: center !important;
  max-height: 400px;
}

/* 11 区块底色交替 */
main > .layout-a { background: #FFFFFF; }
main > .layout-b { background: #F6F8FC; }

/* 12 地域汇总卡 */
.region-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 18px; }
.region-card {
  display: block; background: #fff; border: 1px solid #E3E9F2; border-radius: 14px;
  padding: 22px 24px; text-decoration: none;
  box-shadow: 0 6px 18px rgba(15,37,71,.06);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.region-card:hover { transform: translateY(-3px); box-shadow: 0 14px 32px rgba(15,37,71,.14); border-color: #C9A227; }
.region-card h3 { margin: 0 0 8px; font-size: 17px; line-height: 1.5; color: #15233F; }
.region-card p { margin: 0; font-size: 13.5px; line-height: 1.8; color: #5B687C; }
.region-card .go { display: inline-block; margin-top: 12px; font-size: 13px; font-weight: 700; color: #C9A227; }
.region-pref { margin: 46px 0 18px; font-size: 20px; font-weight: 800; color: #15233F;
  padding-left: 14px; border-left: 4px solid #C9A227; }
.region-pref small { display: block; margin-top: 4px; font-size: 13px; font-weight: 500; color: #6B7889; }

/* 13 404 页 */
.err-wrap { padding: 96px 0 104px; text-align: center; }
.err-code { font-size: 132px; font-weight: 800; line-height: 1; letter-spacing: -.04em; color: #E7ECF5; }
.err-title { margin: -46px 0 12px; font-size: clamp(24px, 3vw, 32px); font-weight: 800; color: #15233F; }
.err-lead { max-width: 620px; margin: 0 auto 26px; font-size: 15px; line-height: 1.95; color: #4A5768; }
.err-acts { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; }
.err-routes { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; margin-top: 52px; }
.err-routes a { display: block; padding: 18px 20px; border: 1px solid #E3E9F2; border-radius: 12px;
  text-decoration: none; background: #fff; font-weight: 700; color: #15233F; }
.err-routes a small { display: block; margin-top: 4px; font-weight: 500; font-size: 12.5px; color: #6B7889; }
.err-routes a:hover { border-color: #C9A227; }

@media (max-width: 900px) {
  .err-code { font-size: 92px; }
  .err-wrap { padding: 64px 0 72px; }
}


/* 14 四列页脚 */
.m-ftr { padding: 56px 0 26px; color: #C9D6E8; }
.m-ftr .wrap { max-width: 1140px; }
.m-ftr-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 40px; }
.m-ftr .brandblk p { margin: 12px 0 0; font-size: 13px; line-height: 1.85; color: #A9BBD3; }
.m-ftr .m-ftr-mail { color: #C9D6E8; }
.m-ftr-col h4 { margin: 0 0 14px; font-size: 13px; letter-spacing: .08em; color: #E8CC7A; font-weight: 800; }
.m-ftr-col ul { list-style: none; margin: 0; padding: 0; }
.m-ftr-col li { margin: 0 0 9px; }
.m-ftr-col a { font-size: 13.5px; color: #C9D6E8; text-decoration: none; }
.m-ftr-col a:hover { color: #E8CC7A; }
.m-ftr-bottom { display: flex; flex-wrap: wrap; gap: 10px 18px; justify-content: space-between;
  align-items: center; margin-top: 34px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.14); }
.m-ftr-bottom p { margin: 0; font-size: 12.5px; color: #8FA3BF; }
.m-ftr-bottom a { color: #A9BBD3; text-decoration: none; }
.m-ftr-bottom span { margin: 0 8px; color: #55698A; }
@media (max-width: 900px) {
  .m-ftr { padding: 40px 0 20px; }
  .m-ftr-grid { grid-template-columns: 1fr 1fr; gap: 26px; }
  .m-ftr .brandblk { grid-column: 1 / -1; }
}

/* 15 统一 1140 版心，消除 hero 与正文 20px 错位 */
.wrap { width: min(1140px, 92%) !important; max-width: 1140px !important; padding-left: 0 !important; padding-right: 0 !important; }
section.m-hero .hero-in { padding-left: 0 !important; padding-right: 0 !important; margin-left: 0 !important; }
.layout-a-text, .layout-b-text { padding-left: 0 !important; padding-right: 0 !important; }
@media (max-width: 900px) { .wrap { width: 92% !important; } }
/* 16 移动端：收起导航进汉堡、工具条收紧、hero 标题不再溢出 */
@media (max-width: 900px) {
  .m-hdr .bar { position: relative; min-height: 62px; }
  .m-hdr .brand { position: absolute; left: 0; top: 50%; transform: translateY(-50%); }
  .m-hdr .nav { position: absolute; left: -4vw; right: -4vw; top: 100%; display: none !important; }
  .m-hdr .nav.open { display: block !important; background: #0A2547; padding: 8px 4vw 16px; z-index: 30;
    box-shadow: 0 18px 30px rgba(0,0,0,.28); }
  .m-hdr .nav.open > ul { display: flex !important; flex-direction: column !important; align-items: stretch !important;
    gap: 0 !important; }
  .m-hdr .nav.open > ul > a { padding: 13px 6px !important; font-size: 15px !important;
    border-bottom: 1px solid rgba(255,255,255,.10); border-radius: 0 !important; }
  .m-hdr .hdr-cta { margin-left: auto; }
  .m-hdr .burger { display: inline-flex !important; width: 42px; height: 42px; align-items: center;
    justify-content: center; background: rgba(255,255,255,.12); border: 0; border-radius: 10px;
    color: #fff; font-size: 20px; cursor: pointer; }
  .util .wrap { flex-wrap: wrap !important; gap: 4px 14px !important; font-size: 12.5px; }
  section.m-hero h1 { font-size: clamp(22px, 7vw, 30px) !important; line-height: 1.35 !important;
    white-space: normal !important; word-break: normal !important; overflow-wrap: anywhere; }
  section.m-hero .lead { font-size: 14.5px !important; line-height: 1.9 !important; }
  main > .layout-a, main > .layout-b, main > section { padding: 40px 0 !important; }
  .layout-a .m-media, .layout-b .m-media { margin-top: 18px !important; }
}

/* 17 按钮统一：主 CTA 金色，次按钮描边；404 内的次按钮改为深色描边 */
a.btn, button.btn { border-radius: 999px !important; font-weight: 800 !important; }
.btn:not(.btn-outline) { background: #C9A227 !important; color: #16233F !important; border: 0 !important; }
.btn:not(.btn-outline):hover { background: #B08E1E !important; }
.btn.btn-primary, .btn.btn-blue, .btn-blue, .btn-primary { background: #C9A227 !important; color: #16233F !important; }
.err-acts .btn-outline { color: #15233F !important; border-color: #C3D0E2 !important; }
.err-acts .btn-outline:hover { border-color: #C9A227 !important; color: #8A6A12 !important; }

/* 18 404 数字不再压住标题；页脚字标在深底上转白 */
.err-code { font-size: 104px !important; line-height: .9 !important; color: #EEF2F8 !important; }
.err-title { margin: 8px 0 14px !important; }
.m-ftr .brand img { filter: brightness(0) invert(1) opacity(.92); }
/* 19 移动端版心与工具条纠正 + 正文可读性 */
@media (max-width: 900px) {
  html body .wrap, section.m-hero .wrap, .m-hero .wrap,
  main .wrap, .m-ftr .wrap {
    width: 92% !important; max-width: 92% !important;
    margin-left: auto !important; margin-right: auto !important;
  }
  section.m-hero .hero-in { max-width: 100% !important; width: 100% !important; }
  .util .wrap { justify-content: flex-start !important; }
  .util .lang { margin-right: 0 !important; }
  .util a { font-size: 12.5px !important; }
}
.layout-a-text p, .layout-b-text p, .layout-a .mod p, .layout-b .mod p {
  font-size: 15px; line-height: 1.95; color: #33415A;
}
.layout-a-text p + p, .layout-b-text p + p { margin-top: 14px; }
p, li { overflow-wrap: anywhere; }
/* 20 移动端 hero 版心（覆盖 html body 前缀的 100% 规则） */
@media (max-width: 900px) {
  html body section.m-hero .wrap, html body .m-hero .wrap, html body .hero .wrap {
    width: 92% !important; max-width: 92% !important; margin-left: auto !important; margin-right: auto !important;
  }
  section.m-hero { padding-left: 0 !important; padding-right: 0 !important; }
  section.m-hero .acts .btn { padding: 12px 22px !important; font-size: 14.5px !important; }
}
/* 21 卡片区块（.layout-d）立体化 + 料金页版式 */
.layout-d { padding: 64px 0 !important; background: #F6F8FC; }
.layout-d-grid { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)) !important; gap: 20px !important; }
.layout-d-card { background: #fff; border: 1px solid #E3E9F2; border-radius: 16px;
  padding: 26px 24px; box-shadow: 0 8px 24px rgba(15,37,71,.06); }
.layout-d-card h3 { margin: 0 0 10px; font-size: 17px; line-height: 1.5; color: #15233F; }
.layout-d-card p { margin: 0; font-size: 14px; line-height: 1.9; color: #4A5768; }
.layout-d h2 { font-size: clamp(22px, 2.4vw, 27px); color: #15233F; font-weight: 800; }
@media (max-width: 900px) {
  .layout-d { padding: 44px 0 !important; }
  .layout-d-grid { grid-template-columns: 1fr !important; gap: 14px !important; }
  .layout-d-card { padding: 20px; }
}
/* 22 地域汇总卡对齐（标题/正文/链接三段底对齐）+ hero 取景微调 */
.region-card { display: flex; flex-direction: column; min-height: 190px; padding: 22px 22px 18px; }
.region-card h3 { font-size: 16px; line-height: 1.62; margin: 0 0 8px; min-height: 52px; }
.region-card p { font-size: 13.5px; line-height: 1.85; color: #4A5768; margin: 0 0 12px; }
.region-card a { margin-top: auto; display: inline-flex; align-items: center; gap: 6px;
  font-size: 13px; font-weight: 700; color: #8A6A12; letter-spacing: .02em; }
.region-card a:hover { color: #C9A227; }
.region-pref h2 { margin-bottom: 6px; }
.region-pref p { font-size: 13px; color: #6B7A90; }
section.m-hero { background-position: center, center 20% !important; }

/* 23 正文图说明位与段落留白（图片自带圆角阴影，统一上限） */
.layout-a-image img, .layout-b-image img, .layout-a .mod img, .layout-b .mod img {
  width: 100% !important; height: auto !important; aspect-ratio: 4 / 3 !important;
  object-fit: cover !important; border-radius: 14px !important;
  box-shadow: 0 10px 30px rgba(15,37,71,.10) !important;
}
@media (max-width: 900px) {
  .region-card { min-height: 0; padding: 18px; }
  .region-card h3 { min-height: 0; }
}