.numbanner-sec{ background:transparent; padding:56px 34px 60px; }
  .numbanner-wrap{ width:min(1180px,100%); margin:0 auto; }
  .top-feature-pair{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; align-items:stretch; }
  .numbanner{ position:relative; display:flex; align-items:center; gap:40px; text-decoration:none; color:inherit; overflow:hidden;
    border:1px solid var(--line); border-radius:20px; background:#fff; padding:48px 48px; min-height:250px;
    transition:transform .3s ease, box-shadow .3s ease; }
  .numbanner:hover{ transform:translateY(-3px); box-shadow:0 16px 40px rgba(35,24,21,.10); }
  .numbanner::after{ content:""; position:absolute; z-index:0; top:-30%; bottom:-30%; right:-8%; width:36%; pointer-events:none; background:
    linear-gradient(125deg,transparent 0 40%,rgba(76,88,101,.07) 40% 52%,transparent 52% 66%,rgba(76,88,101,.055) 66% 74%,transparent 74% 100%); transform:scaleX(-1); }
  .nb-floaters{ position:absolute; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
  .nb-fl{ position:absolute; font-weight:900; color:var(--orange); line-height:1; font-variant-numeric:tabular-nums; white-space:nowrap; letter-spacing:-.02em; }
  .nb-fl .u{ font-size:.42em; }
  .nb-fl1{ top:-6%; left:1%; font-size:120px; opacity:.09; animation:nbFlA 9s ease-in-out infinite; }
  .nb-fl2{ bottom:-10%; left:20%; font-size:104px; opacity:.07; animation:nbFlB 11s ease-in-out infinite; }
  .nb-fl3{ top:34%; left:40%; font-size:88px; opacity:.06; animation:nbFlC 10s ease-in-out infinite; }
  @keyframes nbFlA{ 0%,100%{ transform:translateY(0) } 50%{ transform:translateY(-13px) } }
  @keyframes nbFlB{ 0%,100%{ transform:translateY(0) } 50%{ transform:translateY(11px) } }
  @keyframes nbFlC{ 0%,100%{ transform:translateY(0) } 50%{ transform:translateY(-9px) } }
  .nb-left{ position:relative; z-index:2; flex:1 1 auto; }
  .numbanner .section-kicker{ display:inline-flex; }
  .numbanner h2{ font-size:clamp(28px,4vw,42px); font-weight:900; margin:12px 0 10px; letter-spacing:.02em; }
  .nb-lead{ color:#5a5a55; font-size:15px; margin:0; line-height:1.9; max-width:460px; }
  .nb-go{ display:inline-flex; align-items:center; gap:12px; margin-top:20px; font-size:15px; font-weight:900; color:var(--ink); }
  .nb-circle{ width:44px; height:44px; border-radius:50%; background:var(--orange); color:#fff; display:grid; place-items:center; font-size:22px; transition:transform .3s ease; }
  .numbanner:hover .nb-circle{ transform:translateX(4px); }
  .nb-right{ position:relative; z-index:2; flex:0 0 340px; display:flex; flex-direction:column; align-items:center; gap:12px; }
  .nb-plate{ width:300px; background:#fff; border:4px solid #1f6b3a; border-radius:12px; padding:14px 10px 10px; text-align:center; box-shadow:0 6px 18px rgba(35,24,21,.10); }
  .nb-plate-region{ font-size:13px; font-weight:700; color:#1f6b3a; letter-spacing:.3em; margin-bottom:2px; }
  .nb-plate-lower{ display:flex; align-items:center; justify-content:center; }
  .nb-expr{ font-size:52px; font-weight:900; color:#1f6b3a; line-height:1; font-variant-numeric:tabular-nums; letter-spacing:.06em; min-height:52px; display:flex; align-items:center; justify-content:center; gap:.12em; transition:opacity .35s ease; }
  .nb-expr .nb-kana{ font-size:.66em; font-weight:900; color:#1f6b3a; margin-right:.12em; }
  .nb-expr .nb-sep{ color:#1f6b3a; font-size:.62em; font-weight:700; vertical-align:.1em; }
  .nb-expr .op{ color:var(--orange); font-size:1.05em; }
  .nb-expr .eq{ color:var(--orange); }
  .nb-expr .dot{ color:#7fa890; }
  .nb-plate-cap{ font-size:13px; font-weight:700; color:var(--muted); letter-spacing:.04em; }
  .nb-plate-cap b{ color:var(--orange); }
  .top-feature-pair .numbanner{ min-height:340px; gap:20px; padding:38px 30px; }
  .top-feature-pair .numbanner h2{ font-size:clamp(27px,3vw,38px); }
  .top-feature-pair .nb-lead{ font-size:14px; }
  .top-feature-pair .nb-right{ flex-basis:235px; }
  .top-feature-pair .nb-plate{ width:225px; }
  .top-feature-pair .nb-expr{ font-size:39px; }
  .playful-top-banner{ position:relative; isolation:isolate; display:flex; min-height:340px; align-items:flex-end; overflow:hidden; padding:36px 32px; border-radius:20px; background:#0d1b2a; color:#fff; text-decoration:none; box-shadow:0 14px 34px rgba(13,27,42,.13); transition:transform .3s ease,box-shadow .3s ease; }
  .playful-top-banner::before{ content:""; position:absolute; inset:0; z-index:-2; background:url("playful-hero.webp") 62% center/cover no-repeat; transform:scale(1.03); transition:transform .45s ease; }
  .playful-top-banner::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(6,16,27,.12),rgba(6,16,27,.82)); }
  .playful-top-banner:hover{ transform:translateY(-3px); box-shadow:0 18px 42px rgba(13,27,42,.2); }
  .playful-top-banner:hover::before{ transform:scale(1.07); }
  .playful-top-copy{ position:relative; }
  .playful-top-kicker{ color:#ffb332; font-size:12px; font-weight:900; letter-spacing:.18em; }
  .playful-top-banner h2{ margin-top:8px; color:#fff; font-size:clamp(29px,3.1vw,42px); font-weight:900; line-height:1.3; }
  .playful-top-banner p:not(.playful-top-kicker){ max-width:360px; margin-top:12px; color:#f0f3f5; font-size:14px; font-weight:700; line-height:1.8; }
  .playful-top-go{ display:inline-flex; align-items:center; gap:10px; margin-top:20px; font-size:14px; font-weight:900; }
  .playful-top-go::after{ content:"›"; display:grid; width:38px; height:38px; place-items:center; border-radius:50%; background:var(--orange); color:#fff; font:700 24px/1 Arial,sans-serif; }
  @media(max-width:980px){
    .top-feature-pair{ grid-template-columns:1fr; }
    .top-feature-pair .numbanner{ min-height:280px; }
    .top-feature-pair .nb-right{ flex-basis:300px; }
    .top-feature-pair .nb-plate{ width:280px; }
    .top-feature-pair .nb-expr{ font-size:48px; }
    .playful-top-banner{ min-height:320px; }
  }
  @media(max-width:760px){
    .numbanner{ flex-direction:column; align-items:flex-start; gap:26px; padding:36px 26px; }
    .nb-right{ flex:none; width:100%; align-items:center; }
    .nb-fl3{ display:none; }
    .top-feature-pair .numbanner{ min-height:0; }
    .top-feature-pair .nb-right{ flex:none; }
    .top-feature-pair .nb-plate{ width:min(300px,100%); }
    .playful-top-banner{ min-height:300px; padding:30px 26px; }
  }
