  :root{
    --teal:#15897E; --teal2:#1FA294; --teal3:#49B8AB; --teal4:#8FD2C8;
    --blue:#2E78AE; --blue2:#5BB8D4; --blue3:#8FCDE0;
    --ink:#26403D; --ink2:#5C726F; --soft:#90A6A2;
    --paper:#fff; --mint:#F2FAF8; --sky:#EEF7FB; --mint2:#E7F5F1;
    --line:#E6F0ED; --line2:#D6E8E3;
    --rA1:#18A38F; --rA:#49B6A4; --rB:#E6B23E; --rC:#E58A3E; --rD:#E2705A;
    --grad:linear-gradient(118deg,#1FA294 0%,#2E78AE 100%);
    --grad-r:linear-gradient(118deg,#22A597 0%,#3A86BA 100%);
    --shadow:0 1px 2px rgba(20,90,82,.04),0 10px 30px rgba(20,90,82,.06);
    --shadow-lg:0 2px 8px rgba(20,90,82,.05),0 26px 60px rgba(20,90,82,.11);
    --shadow-soft:0 14px 40px rgba(20,90,82,.10);
    --maxw:1180px; --r:18px;
    --fh:"Plus Jakarta Sans","Zen Kaku Gothic New",sans-serif;
    --fb:"Inter","Noto Sans JP",sans-serif;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0; color:var(--ink); background:#F4FBF9;
    font-family:var(--fb); font-size:16.5px; line-height:1.78; letter-spacing:.004em;
    -webkit-font-smoothing:antialiased; overflow-x:hidden;
  }
  .lvi{display:none;}
  body.lang-vi .lja{display:none;}
  body.lang-vi .lvi{display:inline;}
  .len{display:none;}
  body.lang-en .lja{display:none;}
  body.lang-en .len{display:inline;}
  body.lang-en{line-height:1.6;}
  body.lang-vi{line-height:1.68;}

  h1,h2,h3,h4{margin:0; font-family:var(--fh); line-height:1.2; font-weight:800; letter-spacing:-.01em;}
  p{margin:0;}
  a{color:inherit; text-decoration:none;}
  img{max-width:100%; display:block;}
  .wrap{max-width:var(--maxw); margin:0 auto; padding:0 26px;}
  .accent{background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent;}
  .gtext{background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent;}
  .section{padding:98px 0;}
  /* #how と #symptoms の間の余白のみ約1/3に圧縮（他セクションの余白は据え置き） */
  #how{padding-top:60px; padding-bottom:30px;} #symptoms{padding:30px 0;} #evidence{padding:30px 0;} #services{padding:30px 0;} #contact{padding-top:22px;}
  #problem{padding-top:49px;}
  #approach{padding-top:33px;}
  #packages{padding-bottom:33px;}
  .center{text-align:center;}
  .eyebrow{
    display:inline-flex; align-items:center; gap:9px; font-family:var(--fh); font-weight:800; font-size:12.5px;
    letter-spacing:.15em; text-transform:uppercase; color:var(--teal2);
  }
  .eyebrow::before{content:""; width:24px; height:3px; background:var(--teal3); border-radius:3px;}
  .center .eyebrow{justify-content:center;}
  .center .eyebrow::before{display:none;}
  #symptoms .center .eyebrow, #how .center .eyebrow, #services .center .eyebrow, #contact .cta-left .eyebrow, #evidence .center .eyebrow, #diagnosis .center .eyebrow{display:inline-flex; align-items:center; justify-content:center; min-width:122px; gap:7px; background:linear-gradient(118deg,#15897E 0%,#49B8AB 100%); border:0; border-radius:999px; padding:9px 22px; color:#fff; font-size:12px; letter-spacing:.08em; box-shadow:0 7px 18px rgba(21,137,126,.26);}
  #contact .cta-left .eyebrow::before{display:none;}
  #symptoms .center .eyebrow svg{width:15px; height:15px; flex-shrink:0;}
  .h2{font-size:clamp(27px,3.4vw,41px); letter-spacing:-.018em;}
  #problem .h2{font-size:clamp(27px,3.1vw,38px);}
  /* 経営トップの見出しを「2社の知見を…」タイトルと同じサイズ・色に */
  #about .h2{font-size:clamp(16px,1.45vw,18px); color:var(--ink2); font-weight:700; letter-spacing:0; line-height:1.6;}
  .lead{font-size:clamp(16px,1.45vw,18px); color:var(--ink2); line-height:1.66; font-weight:400;}

  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    font-family:var(--fh); font-weight:800; font-size:14.5px; cursor:pointer; border:0;
    border-radius:999px; padding:13px 24px; transition:transform .2s, box-shadow .25s, background .2s; white-space:nowrap;
  }
  .btn-primary{background:var(--grad); color:#fff; box-shadow:0 8px 22px rgba(31,140,148,.30);}
  .btn-primary:hover{transform:translateY(-2px); box-shadow:0 14px 30px rgba(31,140,148,.38);}
  .btn-ghost{background:#fff; color:var(--teal); border:1.7px solid var(--line2);}
  .btn-ghost:hover{border-color:var(--teal3); color:var(--teal2); transform:translateY(-2px);}
  .btn-lg{padding:16px 32px; font-size:15.5px;}
  @keyframes demoPulse{0%,100%{box-shadow:0 8px 22px rgba(31,140,148,.32);}50%{box-shadow:0 12px 32px rgba(31,140,148,.52), 0 0 0 5px rgba(31,140,148,.10);}}
  .hero-cta .btn-primary{animation:demoPulse 2.2s ease-in-out infinite; font-weight:800; letter-spacing:.01em;}
  .hero-cta .btn-primary:hover{animation-play-state:paused; transform:translateY(-2px);}
  @media(prefers-reduced-motion:reduce){.hero-cta .btn-primary{animation:none;}}

  /* ---------- header ---------- */
  header{position:sticky; top:0; z-index:60; background:rgba(255,255,255,.82);
    backdrop-filter:saturate(160%) blur(14px); border-bottom:1px solid var(--line);}
  .nav{display:flex; align-items:center; gap:26px; height:72px;}
  .brand{display:flex; align-items:center; gap:12px; flex-shrink:0;}
  @media (min-width:561px){ .brand{margin-left:-26px;} }
  .brand .brandmark{height:36px; width:auto; flex-shrink:0;}
  .brand .brandtext{font-family:var(--fh); font-weight:800; font-size:18.5px; line-height:1.1; color:var(--ink2); white-space:nowrap; letter-spacing:.2px;}
  .brand .brandtext .amp{font-weight:700;}
  .brand .bt{font-family:var(--fh); font-weight:900; font-size:15px; line-height:1.05; letter-spacing:.01em;}
  .brand .bt small{display:block; font-family:var(--fb); font-weight:700; font-size:10px; color:var(--teal2); letter-spacing:.02em; margin-top:1px;}
  .nav-links{display:flex; gap:24px; margin-left:auto; font-family:var(--fh); font-size:14.5px; font-weight:700; color:var(--ink2);}
  .nav-links a{transition:color .2s;} .nav-links a:hover{color:var(--teal2);}
  .nav-cta{display:flex; align-items:center; gap:12px;}
  @media (min-width:981px){ .nav-cta{margin-right:-26px;} }
  .langtog{display:flex; align-items:center; gap:4px; border:1.5px solid var(--line2); border-radius:999px; padding:3px;}
  .langtog button{border:0; background:transparent; padding:3px 7px; cursor:pointer; line-height:0; border-radius:999px; opacity:.42; transition:background .15s, opacity .15s;}
  .langtog button:hover{opacity:.8;}
  .langtog button svg{display:block; border-radius:2px; box-shadow:0 0 0 1px rgba(0,0,0,.05);}
  .langtog button.on{opacity:1; background:rgba(31,140,148,.13);}
  .langdrop{position:relative; font-family:var(--fh);}
  .langdrop-btn{display:inline-flex; align-items:center; gap:7px; border:1.5px solid var(--line2); border-radius:999px; padding:5px 9px 5px 8px; background:#fff; cursor:pointer; font-size:12.5px; font-weight:700; color:var(--ink); line-height:1;}
  .langdrop-btn:hover{border-color:var(--teal4);}
  .langdrop .ld-flag{line-height:0;}
  .langdrop .ld-flag svg, .langdrop-menu svg{display:block; border-radius:2px; box-shadow:0 0 0 1px rgba(0,0,0,.06);}
  .langdrop .ld-chev{width:12px; height:12px; color:var(--ink2); transition:transform .2s; margin-left:1px;}
  .langdrop.open .ld-chev{transform:rotate(180deg);}
  .langdrop-menu{position:absolute; top:calc(100% + 6px); right:0; min-width:0; background:#fff; border:1px solid var(--line); border-radius:12px; box-shadow:0 12px 34px rgba(20,90,82,.16); padding:5px; display:none; z-index:120;}
  .langdrop.open .langdrop-menu{display:block;}
  .langdrop-menu button{display:flex; align-items:center; justify-content:center; width:100%; border:0; background:transparent; padding:8px 12px; border-radius:8px; cursor:pointer; line-height:0;}
  .langdrop-menu button:hover{background:var(--mint2);}
  .langdrop-menu button.on{background:rgba(31,140,148,.13); color:var(--teal);}
  .nav-btn{display:inline-flex; align-items:center; background:var(--grad); color:#fff; border-radius:999px; padding:6px 14px; font-family:var(--fh); font-size:12.5px; font-weight:800; text-decoration:none; white-space:nowrap; box-shadow:0 4px 12px rgba(31,140,148,.25); transition:transform .15s, box-shadow .15s;}
  .nav-btn:hover{transform:translateY(-1px); box-shadow:0 8px 18px rgba(31,140,148,.32);}

  /* ---------- hero ---------- */
  .hero{position:relative; overflow:hidden;
    background:linear-gradient(170deg,#F4FBF9 0%,#EEF7FB 52%,#F6FCFB 100%);}
  .hero .blob{position:absolute; border-radius:50%; filter:blur(48px); opacity:.5; pointer-events:none; z-index:0;}
  /* hero下端をbody背景色(#F4FBF9)へフェードさせ、装飾blobのにじみ・グラデ差による境目の色差をなくす */
  .hero::after{content:""; position:absolute; left:0; right:0; bottom:0; height:180px; background:linear-gradient(180deg,rgba(244,251,249,0) 0%,#F4FBF9 100%); z-index:0; pointer-events:none;}
  .blob.b1{width:540px; height:540px; background:radial-gradient(circle,#9FE0D4,transparent 68%); top:-160px; right:-120px; animation:float1 16s ease-in-out infinite;}
  .blob.b2{width:460px; height:460px; background:radial-gradient(circle,#A9D8EC,transparent 68%); bottom:-180px; left:-120px; animation:float2 19s ease-in-out infinite;}
  .blob.b3{width:300px; height:300px; background:radial-gradient(circle,#C7EFE7,transparent 70%); top:38%; left:46%; animation:float1 22s ease-in-out infinite reverse;}
  @keyframes float1{0%,100%{transform:translate(0,0)}50%{transform:translate(-26px,34px)}}
  @keyframes float2{0%,100%{transform:translate(0,0)}50%{transform:translate(30px,-30px)}}
  .swirlbg{position:absolute; width:40%; aspect-ratio:1/1; left:2%; top:50%; transform:translateY(-50%); opacity:.07; z-index:0; pointer-events:none;}
  .swirlbg img{width:100%; height:100%; display:block; animation:spin 70s linear infinite;}
  @keyframes spin{to{transform:rotate(360deg)}}
  .hero-grid{position:relative; z-index:2; display:grid; grid-template-columns:1.06fr .94fr; gap:50px; align-items:stretch; padding:70px 0 42px;}
  .hero-grid > .reveal{position:relative; z-index:1;}
  .hr{display:flex; flex-direction:column;}
  .hero-eyebrow{display:inline-flex; align-items:center; gap:9px; padding:7px 15px; border-radius:999px;
    background:rgba(255,255,255,.8); border:1px solid var(--line2); box-shadow:var(--shadow); font-family:var(--fh);
    font-size:12.5px; font-weight:800; color:var(--ink); letter-spacing:.01em; margin-bottom:22px;}
  .hero-eyebrow b{color:var(--teal2);}
  .servicename{font-family:var(--fh); font-weight:900; font-size:clamp(33px,4.3vw,54px); line-height:1.05;
    letter-spacing:-.02em; margin:0 0 6px; background:linear-gradient(110deg,#1FA294 0%,#2E78AE 100%); -webkit-background-clip:text; background-clip:text; color:transparent;}
  .servicename .nb{white-space:nowrap;}
  .servicename .amp{font-weight:700;}
  .hero-tag{font-family:var(--fh); font-weight:800; font-size:clamp(21px,2.5vw,31px); line-height:1.3; color:var(--ink); margin-top:16px; letter-spacing:-.01em;}
  .hero-tag .lvi{font-size:clamp(16px,2.1vw,26px);}
  .hero .lead{margin-top:16px; max-width:540px;}
  body.lang-vi .hero .lead{max-width:573px;}
  .hero-cta{display:flex; gap:14px; margin-top:30px; flex-wrap:wrap;}
  .hero-note{margin-top:18px; font-size:13.5px; color:var(--ink2); display:flex; align-items:center; gap:8px; font-weight:600;}
  .hero-under{margin-top:8px; display:flex; align-items:center; gap:16px; flex-wrap:wrap;}
  .hero-under .hero-note{margin-top:0; align-items:center;}
  .hero-under .pulse{margin-top:10px; display:block; margin-bottom:0;}
  .pulse{margin-top:24px; width:200px; height:22px; opacity:.9;}
  .pulse path{stroke:var(--teal3); stroke-width:2.4; fill:none; stroke-linecap:round; stroke-linejoin:round;
    stroke-dasharray:340; stroke-dashoffset:340; animation:draw 2.6s ease-in-out infinite;}
  @keyframes draw{0%{stroke-dashoffset:340}45%{stroke-dashoffset:0}55%{stroke-dashoffset:0}100%{stroke-dashoffset:-340}}

  /* signature device */
  .device{position:relative; background:#fff; border:1px solid var(--line); border-radius:24px;
    flex:1 1 auto; min-height:0; display:flex; flex-direction:column;
    box-shadow:var(--shadow-lg); padding:18px 26px 18px; overflow:hidden;}
  .device::after{content:""; position:absolute; left:0; right:0; top:0; height:54px;
    background:linear-gradient(180deg, rgba(31,140,148,.13), rgba(31,140,148,0)); pointer-events:none; animation:scan 4.8s ease-in-out infinite;}
  @keyframes scan{0%{transform:translateY(-54px)}55%{transform:translateY(460px)}100%{transform:translateY(460px)}}
  .device-top{display:flex; align-items:flex-start; gap:12px; margin-bottom:12px;}
  .device-top .tt{font-family:var(--fh); font-weight:800; font-size:14.5px; flex-shrink:0; line-height:1.35;}
  .device-top .tt small{display:block; font-weight:600; font-size:11px; color:var(--soft); font-family:var(--fb);}
  .device-top .pulse{margin-top:3px; flex:1 1 auto; width:auto; min-width:0; height:15px;}
  .ftcol{display:flex; flex-direction:column; align-items:flex-end; gap:8px;}
  .device-top .pulse path{stroke:url(#pulseGrad); stroke-width:2; vector-effect:non-scaling-stroke;}
  .device .minibtn{display:inline-flex; align-items:center; gap:3px; font-family:var(--fh); font-weight:700; font-size:9px; color:var(--teal); background:var(--mint); border:1px solid var(--line2); border-radius:999px; padding:2px 8px 2px 9px; margin-left:6px; white-space:nowrap; vertical-align:middle; pointer-events:none; box-shadow:0 1px 2px rgba(21,137,126,.08);}
  .device .minibtn .ar{font-size:11px; line-height:1; margin-top:-1px;}
  .device .minibtn.solid{background:var(--grad); color:#fff; border-color:transparent;}
  .pill{display:inline-flex; align-items:center; background:var(--grad); border-radius:999px; padding:6px 13px;} .pill .pilllogo{height:13px; width:auto; display:block;}
  .score-row{display:grid; grid-template-columns:auto 1fr; gap:20px; align-items:center; padding:6px 0 12px; border-bottom:1px dashed var(--line2);}
  .gauge{position:relative; width:84px; height:84px;}
  .gauge svg{transform:rotate(0deg);}
  .gprog{transition:stroke-dashoffset 1.5s cubic-bezier(.3,.7,.3,1);}
  .gauge .gc{position:absolute; inset:0; display:grid; place-items:center; text-align:center; line-height:1;}
  .gauge .gc .rk{font-family:var(--fh); font-weight:900; font-size:26px; color:var(--teal); display:block;}
  .gauge .gc .rl{font-family:var(--fh); font-weight:800; font-size:13px; color:var(--ink2);}
  .cause{font-size:13px; color:var(--ink2); line-height:1.6;}
  .cause .big{font-family:var(--fh); font-weight:900; font-size:30px; color:var(--teal); letter-spacing:-.02em;}
  .cause b{color:var(--ink);}
  .dims{padding-top:10px; display:flex; flex-direction:column; gap:8px; flex:1 1 auto; justify-content:space-between;}
  .dim{display:grid; grid-template-columns:96px 1fr 30px; gap:11px; align-items:center; font-size:12px;}
  .dim .nm{color:var(--ink2); font-weight:600;}
  .dim .bar{height:9px; background:var(--mint2); border-radius:999px; overflow:hidden;}
  .dim .bar span{display:block; height:100%; border-radius:999px; width:0; transition:width 1.3s cubic-bezier(.3,.7,.3,1);}
  .bA{background:linear-gradient(90deg,#49B6A4,#18A38F);} .bB{background:linear-gradient(90deg,#F0C766,#E6B23E);}
  .bC{background:linear-gradient(90deg,#EBA45F,#E58A3E);} .bD{background:linear-gradient(90deg,#EC8E7C,#E2705A);}
  .chip{font-family:var(--fh); font-weight:900; font-size:11px; color:#fff; border-radius:7px; text-align:center; padding:2px 0;}
  .cA{background:var(--rA);} .cB{background:var(--rB);} .cC{background:var(--rC);} .cD{background:var(--rD);}
  .device .rsum-txt{font-size:11px; line-height:1.55; color:var(--ink2); margin:0 0 6px;}
  .device .rsum-txt b{color:var(--ink); font-weight:800;}
  .device .rlbl{display:inline-block; box-sizing:border-box; text-align:center; min-width:44px; font-family:var(--fh); font-weight:800; font-size:9.5px; padding:1px 6px; border-radius:5px; margin-right:5px;}
  body.lang-vi .device .rlbl{min-width:69px;}
  .rlbl-a{background:var(--mint2); color:var(--teal);}
  .rlbl-b{background:rgba(226,112,90,.13); color:#C9543B;}
  .device .rsum-head{display:flex; align-items:center; margin-bottom:4px;}
  .device .rsum-head .minibtn{margin-left:1px;}
  .device .rsum-body{display:block;}
  .dim.dhi{grid-template-columns:140px 1fr 30px;}
  .dim.dhi .nm{display:flex; flex-direction:column; line-height:1.25;}
  .dim .dtag{font-family:var(--fh); font-size:9px; font-weight:800;}
  .dim .dtag.weak{color:#C9543B;} .dim .dtag.strong{color:var(--teal);}
  .dim.dhi .dnm{color:var(--ink2); font-weight:700; font-size:12px; margin-top:1px; white-space:nowrap;}

  /* ---------- stat strip ---------- */
  .stripwrap{position:relative; margin-top:28px; z-index:5;}
  .strip-head{margin:0 0 6px; text-align:center; color:var(--teal2); font-family:var(--fh); font-weight:800; font-size:15.5px; letter-spacing:.03em;}
  .strip-head .date{font-weight:600; font-size:13px; margin-left:8px; color:var(--soft);}
  #packages{padding-top:33px; padding-bottom:33px;}
  @media (min-width:981px){ .stripwrap > .wrap{padding-left:0; padding-right:0;} }
  .strip{background:#fff; border:1px solid var(--line); border-radius:22px; box-shadow:var(--shadow-soft);
    display:grid; grid-template-columns:repeat(5,1fr); padding:16px 20px; text-align:center;}
  .st{position:relative; padding:6px 14px;}
  .st + .st::before{content:""; position:absolute; left:0; top:14%; height:72%; width:1px; background:var(--line2);}
  .st .sv{font-family:var(--fh); font-weight:900; font-size:clamp(28px,3vw,38px); letter-spacing:-.02em; line-height:1;}
  .st .sv em{font-style:normal; color:var(--teal3);}
  .st .sv .unit{font-size:.5em; font-weight:800; color:var(--ink2); margin-left:.04em; letter-spacing:0;}
  .st .sv .cunit{font-family:var(--fb); font-size:12.5px; font-weight:600; color:var(--ink2); letter-spacing:0; margin-left:.25em;}
  .st .sl{font-size:12.5px; color:var(--ink2); margin-top:8px; font-weight:600; line-height:1.45;}
  .st .sl b{display:block;margin-bottom:2px;}
  .st .sl b{color:var(--teal2); font-weight:800;}
  .strip-cap{text-align:center; color:var(--soft); font-size:13.5px; margin:0 0 18px; font-weight:600;}

  /* ---------- soft band helpers ---------- */
  .band-mint{background:#F4FBF9;}
  #approach{padding-bottom:27px;}
  #values{padding-top:33px; padding-bottom:33px;}
  #problem{padding-top:18px; padding-bottom:33px;}
  #evidence{padding-top:33px; padding-bottom:33px;}
  #who{padding-top:33px; padding-bottom:33px; background:#F4FBF9;}
  #about{padding-top:33px; padding-bottom:33px;}
  .band-soft{background:#F4FBF9;}

  /* principle / chips / cost */
  .principle{max-width:640px; margin:34px 0 0; background:#fff; border:1px solid var(--line); border-left:5px solid var(--teal3);
    border-radius:16px; padding:24px 28px; box-shadow:var(--shadow); text-align:center;}
  .principle .q{font-family:var(--fh); font-weight:800; font-size:clamp(18px,2vw,22px); color:var(--ink); letter-spacing:-.01em;}
  .principle .src{font-size:12.5px; color:var(--soft); margin-top:8px; font-weight:600;}
  .chips{display:flex; flex-wrap:wrap; gap:11px; justify-content:flex-start; margin:32px 0 0;}
  .chips-intro{margin:16px 0 16px; font-family:var(--fh); font-weight:800; font-size:16px; color:var(--ink); line-height:1.6;}
  .chips.reveal{opacity:1; transform:none; transition:none;}
  .chips .symp{opacity:0; transform:scale(.82) translateY(8px);}
  .chips.in .symp{animation:sympPop .5s cubic-bezier(.2,.8,.3,1.15) both;}
  .chips.in .symp:nth-child(1),.chips.in .symp:nth-child(2){animation-delay:.05s;}
  .chips.in .symp:nth-child(3),.chips.in .symp:nth-child(4){animation-delay:.3s;}
  .chips.in .symp:nth-child(5),.chips.in .symp:nth-child(6){animation-delay:.55s;}
  .chips.in .symp:nth-child(7),.chips.in .symp:nth-child(8){animation-delay:.8s;}
  .chips.in .symp:nth-child(9),.chips.in .symp:nth-child(10){animation-delay:1.05s;}
  .chips.in .symp:nth-child(11),.chips.in .symp:nth-child(12),.chips.in .symp:nth-child(13){animation-delay:1.3s;}
  @keyframes sympPop{0%{opacity:0;transform:scale(.82) translateY(8px);}60%{opacity:1;transform:scale(1.05) translateY(0);}100%{opacity:1;transform:scale(1) translateY(0);}}
  .symp-grid.reveal{opacity:1;transform:none;transition:none;}
  /* 「4つのギャップ×QCD」の枠は入場アニメーション不要（即時表示） */
  .gqcard.reveal{opacity:1;transform:none;transition:none;}
  .symp-grid .sympc{opacity:0;transform:scale(.92) translateY(7px);}
  @keyframes sympCardPop{0%{opacity:0;transform:scale(.92) translateY(7px);}58%{opacity:1;transform:scale(1.015) translateY(0);}100%{opacity:1;transform:scale(1) translateY(0);}}
  .symp-grid.in .sympc{animation:sympCardPop .5s cubic-bezier(.2,.8,.3,1.05) both;}
  .symp-grid.in .sympc:nth-child(1),.symp-grid.in .sympc:nth-child(2),.symp-grid.in .sympc:nth-child(3),.symp-grid.in .sympc:nth-child(4){animation-delay:.05s;}
  .symp-grid.in .sympc:nth-child(5),.symp-grid.in .sympc:nth-child(6),.symp-grid.in .sympc:nth-child(7),.symp-grid.in .sympc:nth-child(8){animation-delay:.3s;}
  .symp-grid.in .sympc:nth-child(9),.symp-grid.in .sympc:nth-child(10),.symp-grid.in .sympc:nth-child(11),.symp-grid.in .sympc:nth-child(12){animation-delay:.55s;}
  @media (prefers-reduced-motion:reduce){.symp-grid .sympc{opacity:1;transform:none;animation:none;}}
  @media (prefers-reduced-motion:reduce){.chips .symp{opacity:1;transform:none;animation:none;}}
  .symp{background:#fff; border:1px solid var(--line2); border-radius:999px; padding:9px 17px; font-size:13.5px; font-weight:600; color:var(--ink); box-shadow:var(--shadow); position:relative;}
  .symp::before{content:"“"; color:var(--teal3); font-weight:900; margin-right:5px;}
  .chips-cap{text-align:left; margin-top:22px; color:var(--ink2); font-size:14.5px;}
  .cost{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; max-width:880px; margin:44px auto 0;}
  .cost .c{background:#fff; border:1px solid var(--line); border-radius:18px; padding:26px 22px; text-align:center; box-shadow:var(--shadow); transition:transform .25s, box-shadow .25s;}
  .cost .c:hover{transform:translateY(-4px); box-shadow:var(--shadow-lg);}
  .cost .v{font-family:var(--fh); font-weight:900; font-size:clamp(30px,3.6vw,42px); letter-spacing:-.02em; color:var(--teal);}
  .cost .l{font-size:13px; color:var(--ink2); margin-top:8px; line-height:1.55;}

  /* approach */
  .duo{display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-top:40px; position:relative;}
  .duo .xjoin{position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); z-index:4; width:46px; height:46px; border-radius:50%; background:#fff; border:1px solid var(--teal4); box-shadow:0 6px 18px rgba(31,140,148,.20); display:flex; align-items:center; justify-content:center; color:var(--teal); font-family:var(--fh); font-weight:800; font-size:24px; line-height:1; pointer-events:none;}
  .duo .c{background:#fff; border:1px solid var(--line); border-radius:20px; padding:30px; box-shadow:var(--shadow); transition:transform .25s, box-shadow .25s; position:relative; overflow:hidden;}
  .duo .c::before{content:""; position:absolute; top:0; left:0; right:0; height:4px; background:var(--grad);}
  .duo .c:hover{transform:translateY(-5px); box-shadow:var(--shadow-lg);}
  .duo .role{font-family:var(--fh); font-weight:800; font-size:12px; letter-spacing:.13em; text-transform:uppercase; color:var(--teal2);}
  .duo h3{font-size:23px; margin:8px 0 6px; display:flex; align-items:center; gap:10px; flex-wrap:wrap;}
  .duo .ftbadge{height:24px; width:auto; border-radius:6px;}
  .duo .meta{font-size:12.5px; color:var(--soft); font-weight:700; margin-bottom:14px;}
  .duo p{font-size:14.5px; color:var(--ink2); line-height:1.75;}
  /* カード下の「とは」解説枠（カードと同じ2カラム・同じ幅） */
  .duo-notes{display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-top:16px;}
  .duo-note{background:#fff; border:1px solid var(--line); border-radius:18px; padding:20px 24px; box-shadow:var(--shadow-soft);}
  .duo-note h4{font-family:var(--fh); font-weight:800; font-size:15px; color:var(--teal); margin:0 0 9px; display:flex; align-items:center; gap:8px;}
  .duo-note h4 .qb{flex-shrink:0; width:20px; height:20px; border-radius:50%; background:var(--teal); color:#fff; font-size:12px; display:inline-flex; align-items:center; justify-content:center; font-weight:800;}
  .duo-note p{font-size:13.5px; color:var(--ink2); line-height:1.78; margin:0;}
  .duo-note .b5-list{list-style:none; margin:0 0 13px; padding:0; display:flex; flex-direction:column; gap:8px;}
  .duo-note .b5-list li{font-size:13px; color:var(--ink2); line-height:1.7; padding-left:15px; position:relative;}
  .duo-note .b5-list li::before{content:""; position:absolute; left:1px; top:7px; width:6px; height:6px; border-radius:50%; background:var(--teal3);}
  .duo-note .b5-list li b{color:var(--ink); font-weight:800;}
  /* ノート下の解説イラスト */
  .note-illu{margin-top:15px; padding-top:14px; border-top:1px dashed var(--line2);}
  .note-illu .illu-cap{font-size:10.5px; color:var(--soft); text-align:center; margin:11px 0 0; font-family:var(--fh); font-weight:700; letter-spacing:.01em;}
  .illu-flow .flw{display:flex; align-items:flex-start; justify-content:center; gap:3px;}
  .illu-flow .flw-step{display:flex; flex-direction:column; align-items:center; gap:6px; flex:1 1 0; min-width:0;}
  .illu-flow .flw-ic{width:36px; height:36px; border-radius:50%; background:var(--mint2); border:1.5px solid var(--teal4); display:flex; align-items:center; justify-content:center; color:var(--teal2); flex-shrink:0;}
  .illu-flow .flw-ic svg{width:19px; height:19px;}
  .illu-flow .flw-step b{font-family:var(--fh); font-weight:800; font-size:9.5px; color:var(--ink2); text-align:center; line-height:1.25;}
  .illu-flow .flw-arrow{align-self:flex-start; margin-top:11px; color:var(--teal4); flex-shrink:0;}
  .illu-flow .flw-arrow svg{width:12px; height:12px; display:block; animation:flwArrow 1.5s ease-in-out infinite;}
  .illu-flow .flw-arrow:nth-of-type(1) svg{animation-delay:0s;}
  .illu-flow .flw-arrow:nth-of-type(2) svg{animation-delay:.18s;}
  .illu-flow .flw-arrow:nth-of-type(3) svg{animation-delay:.36s;}
  .illu-flow .flw-arrow:nth-of-type(4) svg{animation-delay:.54s;}
  @keyframes flwArrow{0%,100%{transform:translateX(-2px); opacity:.4;} 50%{transform:translateX(4px); opacity:1;}}
  .illu-matrix .mtx{display:grid; grid-template-columns:52px repeat(3,1fr); gap:6px; align-items:center;}
  .illu-matrix .mtx .mh{font-family:var(--fh); font-weight:800; font-size:11px; color:var(--teal); text-align:center; line-height:1.1;}
  .illu-matrix .mtx .mh small{display:block; font-weight:700; font-size:7.5px; color:var(--soft); letter-spacing:.01em;}
  .illu-matrix .mtx .mrh{font-family:var(--fh); font-weight:800; font-size:10px; color:var(--ink2); text-align:right; white-space:nowrap;}
  .illu-matrix .mtx .mcell{height:24px; border-radius:7px; background:var(--mint2); border:1px solid var(--line2); display:flex; align-items:center; justify-content:center;}
  .illu-matrix .mtx .mcell i{width:6px; height:6px; border-radius:50%; background:var(--teal3); display:block; animation:mtxPulse 2.6s ease-in-out infinite;}
  @keyframes mtxPulse{0%,100%{transform:scale(1); background:var(--teal4); box-shadow:0 0 0 0 rgba(73,184,171,0);} 45%{transform:scale(1.7); background:var(--teal2); box-shadow:0 0 0 4px rgba(73,184,171,.16);}}
  .illu-cross{margin-top:14px; display:flex; flex-direction:column; align-items:center; gap:8px;}
  .illu-cross .crs-row{display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:7px;}
  .illu-cross .crs-5b{font-family:var(--fh); font-weight:900; font-size:13px; color:#fff; background:var(--teal); border-radius:8px; padding:5px 12px; letter-spacing:.02em;}
  .illu-cross .crs-x{font-family:var(--fh); font-weight:800; font-size:14px; color:var(--teal2);}
  .illu-cross .crs-ax{font-family:var(--fh); font-weight:800; font-size:10.5px; color:var(--teal); background:var(--mint2); border:1px solid var(--teal4); border-radius:999px; padding:4px 12px;}
  .illu-cross .crs-down{color:var(--teal4); display:flex;}
  .illu-cross .crs-down svg{width:14px; height:14px;}
  .illu-cross .crs-res{font-family:var(--fh); font-weight:800; font-size:11.5px; color:var(--teal); background:#fff; border:1.4px solid var(--teal3); border-radius:999px; padding:6px 16px; text-align:center;}
  @media (max-width:980px){ .duo-notes{grid-template-columns:1fr;} }
  .merge{margin-top:22px; background:linear-gradient(118deg,#15897E,#2E78AE); border-radius:20px; padding:16px 30px;
    display:flex; align-items:center; justify-content:center; text-align:center; gap:24px; flex-wrap:wrap; box-shadow:var(--shadow-soft);}
  .merge .mt{color:#fff; font-family:var(--fh); font-weight:700; font-size:15px; max-width:none; line-height:1.6;}
  @media (min-width:981px){ .merge .mt{white-space:nowrap;} }
  .appx-head{display:flex; align-items:center; justify-content:space-between; gap:32px; flex-wrap:wrap;}
  .cycle{position:relative; width:224px; height:224px; flex-shrink:0; margin:0 auto;}
  .cycle .cyc-svg{position:absolute; inset:0; width:100%; height:100%; overflow:visible;}
  .cycle .cnode{position:absolute; transform:translate(-50%,-50%); background:#fff; border:1px solid var(--teal4); color:var(--ink); font-family:var(--fh); font-weight:800; font-size:12px; padding:6px 12px; border-radius:999px; white-space:nowrap; box-shadow:0 6px 16px rgba(31,140,148,.16);}
  .cycle .n1{left:50%; top:15.625%;}
  .cycle .n2{left:84.375%; top:50%;}
  .cycle .n3{left:50%; top:84.375%;}
  .cycle .n4{left:15.625%; top:50%;}
  body.lang-vi .cycle .n4{white-space:normal; text-align:center; line-height:1.25; padding:5px 11px;}
  .cycle .ccap{position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); text-align:center; color:var(--teal); font-family:var(--fh); font-weight:800; font-size:11.5px; line-height:1.35; width:96px;}
  .cycle .ccap small{display:block; font-weight:600; font-size:9.5px; color:var(--ink2); margin-top:2px; letter-spacing:.01em;}
  /* サイクルの矢印が常に時計回りに流れて見えるアニメーション（各弧を矢印先端へ向かって流す） */
  .cycle .cyc-svg .cyc-arc{stroke-dasharray:10 6; animation:cycFlow 1s linear infinite;}
  @keyframes cycFlow{to{stroke-dashoffset:-16;}}
  @media (prefers-reduced-motion:reduce){ .cycle .cyc-svg .cyc-arc{animation:none; stroke-dasharray:none;} }
  .iceberg{position:relative; width:220px; height:275px; flex-shrink:0; margin:0 auto;}
  .iceberg .ice-svg{position:absolute; inset:0; width:100%; height:100%; overflow:visible;}
  .iceberg .ice-cap{position:absolute; left:50%; top:32%; transform:translate(-50%,-50%); white-space:nowrap; font-family:var(--fh); font-weight:800; font-size:11.5px; color:var(--ink); background:#fff; border:1px solid var(--teal4); padding:4px 12px; border-radius:999px; box-shadow:0 6px 16px rgba(31,140,148,.20);}
  .iceberg .ice-water{position:absolute; right:-4px; top:39.5%; font-family:var(--fh); font-weight:700; font-size:9.5px; color:var(--soft); letter-spacing:.05em;}
  .iceberg .ice-cause{position:absolute; transform:translate(-50%,-50%); white-space:nowrap; font-family:var(--fh); font-weight:800; font-size:11px; color:#fff; background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.6); padding:5px 12px; border-radius:999px;}
  .iceberg .ic1{left:52%; top:55%;}
  .iceberg .ic2{left:48%; top:73%;}
  .iceberg .ice-deep{position:absolute; left:50%; top:96.5%; transform:translate(-50%,0); white-space:nowrap; font-family:var(--fh); font-weight:700; font-size:10px; color:var(--ink2);}
  /* 水面の波打ちアニメーション：波形は40px周期なので-40〜0pxの移動で継ぎ目なくループ */
  .iceberg .ice-wave{will-change:transform;}
  .iceberg .ice-wave1{animation:iceWaveA 3.6s ease-in-out infinite;}
  .iceberg .ice-wave2{animation:iceWaveB 5.2s ease-in-out infinite;}
  .iceberg .ice-berg{transform-box:fill-box; transform-origin:center; will-change:transform; animation:iceBob 3.6s ease-in-out infinite;}
  @keyframes iceBob{0%{transform:translateY(0)}50%{transform:translateY(4.5px)}100%{transform:translateY(0)}}
  @keyframes iceWaveA{0%{transform:translateX(0)}50%{transform:translateX(-40px)}100%{transform:translateX(0)}}
  @keyframes iceWaveB{0%{transform:translateX(0)}50%{transform:translateX(48px)}100%{transform:translateX(0)}}
  @media (prefers-reduced-motion:reduce){ .iceberg .ice-wave1, .iceberg .ice-wave2, .iceberg .ice-berg{animation:none;} }
  @media (prefers-reduced-motion:reduce){ .illu-flow .flw-arrow svg, .illu-matrix .mtx .mcell i{animation:none;} }
  /* 広い画面では、アイスバーグ図の下端を「以下のような症状…」の行と同じラインに合わせる */
  @media (min-width:981px){ .appx-head .iceberg{top:16px;} }
  /* 広い画面では、アイスバーグ図とサイクル図を同じ右端に揃え、縦のラインを一致させる */
  @media (min-width:981px){ #problem .appx-head{justify-content:flex-start;} #problem .iceberg{margin-left:auto; margin-right:auto;} }
  /* 広い画面では、サイクル図をテキスト右側の余白内で左右バランス良く中央配置する */
  @media (min-width:981px){ #approach .appx-head{justify-content:flex-start;} #approach .cycle{margin-left:auto; margin-right:auto; margin-top:36px; transform:translateX(34px);} }

  /* gaps + qcd + matrix */
  .gaps{display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:42px;}
  .gap{background:#fff; border:1px solid var(--line); border-radius:18px; padding:24px; box-shadow:var(--shadow); transition:transform .25s, box-shadow .25s;}
  .gap:hover{transform:translateY(-4px); box-shadow:var(--shadow-lg);}
  .gap .n{width:34px; height:34px; border-radius:10px; background:var(--mint2); color:var(--teal); font-family:var(--fh); font-weight:900; display:grid; place-items:center; margin-bottom:12px;}
  .gap h4{font-size:16px; margin-bottom:6px;} .gap p{font-size:13px; color:var(--ink2); line-height:1.6;}
  .qcd{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:18px;}
  .qcd .c{background:linear-gradient(160deg,#fff,#F5FBFA); border:1px solid var(--line); border-radius:16px; padding:18px 20px; display:flex; gap:14px; align-items:center; box-shadow:var(--shadow);}
  .qcd .k{width:44px; height:44px; border-radius:12px; background:var(--grad); color:#fff; font-family:var(--fh); font-weight:900; font-size:20px; display:grid; place-items:center; flex-shrink:0;}
  .qcd .k.q2{background:linear-gradient(135deg,#E6B23E,#E58A3E);} .qcd .k.q3{background:linear-gradient(135deg,#5BB8D4,#2E78AE);}
  .qcd b{font-size:15px;} .qcd small{display:block; font-size:11.5px; color:var(--ink2);}
  .matrix{margin-top:34px; background:#fff; border:1px solid var(--line); border-radius:22px; overflow:hidden; box-shadow:var(--shadow-soft);}
  .matrix .mh{background:linear-gradient(118deg,#15897E,#2E78AE); color:#fff; padding:18px 24px; display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;}
  .matrix .mh b{font-family:var(--fh); font-weight:800; font-size:15px;}
  .matrix .mh span{font-size:11.5px; color:rgba(255,255,255,.82);}
  .dimgrid{display:grid; grid-template-columns:1fr 1fr;}
  .dimrow{display:flex; align-items:center; gap:14px; padding:15px 24px; border-bottom:1px solid var(--line); border-right:1px solid var(--line);}
  .dimrow .ix{font-family:var(--fh); font-weight:900; font-size:12px; color:var(--teal3); width:20px;}
  .dimrow .dn{flex:1;} .dimrow .dn b{font-size:14px;} .dimrow .dn small{display:block; font-size:11.5px; color:var(--ink2);}
  .gqcard .dimgrid{grid-template-columns:1fr;}
  .gqcard .dimgrid .dimrow{border-right:0;}
  .gqcard .dimgrid .dimrow:last-child{border-bottom:0;}
  .rankchip{font-family:var(--fh); font-weight:900; font-size:12px; color:#fff; border-radius:8px; padding:4px 10px; min-width:34px; text-align:center;}
  .cA1{background:var(--rA1);} .rankchip.cA{background:var(--rA);} .rankchip.cB{background:var(--rB);} .rankchip.cC{background:var(--rC);} .rankchip.cD{background:var(--rD);}
  .axis-panel{display:grid;grid-template-columns:1fr;gap:26px;align-items:start;margin-top:38px;}
  .ax-side{display:flex;flex-direction:column;}
  .ax-lbl{font-family:var(--fh);font-weight:900;font-size:11.5px;letter-spacing:.06em;color:var(--teal2);margin:0 0 9px;}
  .ax-list{display:flex;flex-direction:column;gap:8px;}
  .axrow{display:flex;align-items:flex-start;gap:11px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:11px 13px;box-shadow:var(--shadow);}
  .axrow .mk{width:27px;height:27px;border-radius:8px;display:grid;place-items:center;font-family:var(--fh);font-weight:900;font-size:13px;flex-shrink:0;}
  .axrow .gmk{background:var(--mint2);color:var(--teal);}
  .axrow .qmk{color:#fff;font-size:14px;}
  .axrow .qmk.q1{background:var(--grad);} .axrow .qmk.q2{background:linear-gradient(135deg,#E6B23E,#E58A3E);} .axrow .qmk.q3{background:linear-gradient(135deg,#5BB8D4,#2E78AE);}
  .axrow .tx b{font-family:var(--fh);font-weight:800;font-size:13px;color:var(--ink);display:block;line-height:1.3;}
  .axrow .tx small{display:block;font-size:10.5px;color:var(--ink2);line-height:1.45;margin-top:2px;}
  .step-c .step-head{font-family:var(--fh);font-weight:800;font-size:12.5px;color:var(--ink);line-height:1.5;margin:4px 0 9px;}
  .step-c .step-bullets{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:7px;}
  .step-c .step-bullets li{position:relative;padding-left:15px;font-size:11.5px;line-height:1.55;color:var(--ink2);}
  .step-c .step-bullets li::before{content:"";position:absolute;left:2px;top:7px;width:5px;height:5px;border-radius:50%;background:var(--teal3);}
  .step-c .step-bullets li b{color:var(--teal);font-weight:800;}
  .gapfig .gap-card .gd{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin-top:9px;font-size:11px;line-height:1.55;}
  .gapfig .gap-card .gd:first-of-type{margin-top:10px;}
  .gapfig .axrow .gd-lbl{flex-shrink:0;font-family:var(--fh);font-weight:800;font-size:8.5px;letter-spacing:.02em;padding:2.5px 7px;border-radius:5px;margin-top:1px;white-space:nowrap;}
  .gapfig .axrow .gd-genjo .gd-lbl{background:#ECEFF1;color:#78868A;}
  .gapfig .axrow .gd-setsu .gd-lbl{background:#E6EFF8;color:#3E72AC;}
  .gapfig .axrow .gd-serif .gd-lbl{background:#FBEDDE;color:#C4792F;}
  .gapfig .axrow .gd-cause .gd-lbl{background:#FBE8E3;color:#C0543E;}
  .gapfig .axrow .gd-issue .gd-lbl{background:#FBE8E3;color:#C0543E;}
  .gapfig .axrow .gd-goal .gd-lbl{background:var(--teal);color:#fff;}
  .gapfig .axrow .gd-tx{color:var(--ink2);}
  .gapfig .axrow .gd-serif .gd-tx{font-style:italic;color:var(--ink);}
  .gapfig .axrow .gd-goal{background:var(--mint2);border:1px solid #CDE9E1;border-radius:9px;padding:9px 11px;margin-top:10px;}
  .gapfig .axrow .gd-goal .gd-tx{font-weight:700;color:var(--teal);}
  .ax-cross{text-align:center;font-family:var(--fh);font-weight:900;font-size:19px;color:var(--teal3);margin:12px 0;}
  .gapfig{display:block;margin:20px 0 4px;position:relative;}
  .gapfig .gf-cols{display:grid;grid-template-columns:1fr 1fr;column-gap:24px;row-gap:14px;align-items:stretch;margin-top:6px;}
  .gapfig .gap-grid{display:grid;grid-template-columns:1fr;gap:14px;}
  .gapfig .qcd-col .ax-lbl{margin:0 0 6px;}
  .gapfig .qcd-row{display:grid;grid-template-columns:1fr;gap:14px;margin-top:8px;}
  .gapfig .gap-card{display:block;}
  .gapfig .gap-card .ax-head{display:flex;align-items:center;gap:11px;}
  .gapfig .gap-card .ax-head b{font-family:var(--fh);font-weight:800;font-size:13px;color:var(--ink);line-height:1.3;}
  .gapfig .gf-side{display:flex;flex-direction:column;}
  .gapfig .gf-side:last-of-type .ax-list{flex:1 1 auto;justify-content:flex-start;}
  .gapfig-links{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:3;}
  .gapfig-links path{fill:none;stroke:url(#gapLinkGrad);stroke-width:2.2;stroke-dasharray:2.5 9;stroke-linecap:round;animation:gflow 2.6s linear infinite, gbreath 3.4s ease-in-out infinite;}
  @keyframes gflow{to{stroke-dashoffset:-11.5;}}
  @keyframes gbreath{0%,100%{opacity:.5;}50%{opacity:.95;}}
  @media(prefers-reduced-motion:reduce){.gapfig-links path{animation:none;opacity:.75;}}
  .hflow .fa{color:var(--teal3); font-weight:600; margin:0 6px;}
  .hflow-wrap{display:flex; align-items:center; justify-content:center; gap:36px; flex-wrap:wrap; margin-top:16px;}
  .hflow-wrap .hflow{margin:0;}
  .cycle3{position:relative; width:200px; height:200px; flex:0 0 auto;}
  .cyc-ring{position:absolute; inset:0; width:100%; height:100%; overflow:visible;}
  .cyc-dash{fill:none; stroke:var(--teal3); stroke-width:2; stroke-dasharray:4 7; stroke-linecap:round; animation:cycflow 5.5s linear infinite;}
  @keyframes cycflow{to{stroke-dashoffset:-88;}}
  .cyc-dot{fill:var(--teal2);}
  .cyc-node{position:absolute; transform:translate(-50%,-50%); background:#fff; border:1.5px solid var(--line2); border-radius:11px; padding:6px 13px; font-family:var(--fh); font-weight:800; font-size:13.5px; color:var(--ink); box-shadow:0 4px 12px rgba(31,140,148,.13); white-space:nowrap;}
  .cyc-node.n1{top:16%; left:50%;}
  .cyc-node.n2{top:67%; left:79%;}
  .cyc-node.n3{top:67%; left:21%;}
  .cyc-center{position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); text-align:center; font-family:var(--fh); font-weight:900; font-size:12.5px; color:var(--teal2); line-height:1.4;}
  @media(prefers-reduced-motion:reduce){.cyc-dash{animation:none;} .cyc-dot{display:none;}}
  @media(max-width:560px){.cycle3{width:178px; height:178px;}}
  .hflow-loop-wrap{max-width:520px; margin:9px auto 2px;}
  .hflow-loop{width:100%; height:auto; display:block; overflow:visible;}
  .hflow-loop .loop-line{fill:none; stroke:var(--teal3); stroke-width:1.8; stroke-dasharray:3 7; stroke-linecap:round; animation:flowdash2 1s linear infinite;}
  .hflow-loop .loop-head{fill:var(--teal3);}
  .hflow-loop .loop-dot{fill:var(--teal2);}
  @keyframes flowdash2{to{stroke-dashoffset:-10;}}
  @media(prefers-reduced-motion:reduce){.hflow-loop .loop-line{animation:none;} .hflow-loop .loop-dot{display:none;}}
  @media(prefers-reduced-motion:reduce){.gapfig-links path{animation:none;}}
  @media(max-width:720px){.gapfig-links{display:none;}}
  .gapfig .ax-cross{align-self:center;margin:0;}
  .ax-list.g2{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
  .ax-list.g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;}
  @media(max-width:720px){.gapfig .gf-cols{grid-template-columns:1fr;gap:18px;}}
  @media(max-width:640px){.ax-list.g2,.ax-list.g3{grid-template-columns:1fr;}}
  .ax-main .matrix{margin-top:0;}
  @media(max-width:860px){ .axis-panel{grid-template-columns:1fr;gap:20px;} }
  .ranklegend{display:flex; flex-wrap:wrap; gap:18px; padding:16px 24px; background:#FAFDFC;}
  .ranklegend .r{display:flex; align-items:center; gap:8px; font-size:12px; color:var(--ink2); font-weight:600;}
  .out{display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin-top:26px;}
  .out .o{background:#fff; border:1px solid var(--line2); border-radius:999px; padding:9px 18px; font-size:13px; font-weight:700; color:var(--ink); box-shadow:var(--shadow);}
  .out .o::before{content:"✓ "; color:var(--teal2); font-weight:900;}

  /* steps + insights */
  .steps{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:42px;}
  .step-c{position:relative; background:#fff; border:1px solid var(--line); border-radius:18px; padding:28px 26px; box-shadow:var(--shadow); transition:transform .25s, box-shadow .25s;}
  .step-c:hover{transform:translateY(-4px); box-shadow:var(--shadow-lg);}
  .step-c .sn{width:44px; height:44px; border-radius:13px; background:var(--grad); color:#fff; font-family:var(--fh); font-weight:900; font-size:19px; display:grid; place-items:center; margin-bottom:14px; box-shadow:0 6px 16px rgba(31,140,148,.3);}
  .step-c h4{font-size:19px; margin-bottom:8px;} .step-c p{font-size:14px; color:var(--ink2); line-height:1.7;}
  .step-c .ar{position:absolute; right:-22px; top:50%; transform:translateY(-50%); color:var(--teal4); font-weight:900; font-size:22px; z-index:3; animation:arFlow 1.3s ease-in-out infinite;}
  @keyframes arFlow{0%,100%{transform:translate(0,-50%);opacity:.8;}50%{transform:translate(6px,-50%);opacity:1;}}
  @media(prefers-reduced-motion:reduce){.step-c .ar{animation:none;}}
  .insights{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:18px;}
  .insight{display:flex; gap:14px; background:linear-gradient(160deg,#F5FBFA,#fff); border:1px solid var(--line); border-radius:16px; padding:20px; box-shadow:var(--shadow);}
  .insight .num{font-family:var(--fh); font-weight:900; font-size:22px; color:var(--teal3);}
  .insight b{font-size:14.5px;} .insight small{display:block; font-size:12.5px; color:var(--ink2); margin-top:3px; line-height:1.6;}

  /* evidence */
  .ev{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:40px;}
  .ev .c{background:#fff; border:1px solid var(--line); border-radius:20px; padding:28px; box-shadow:var(--shadow); transition:transform .25s, box-shadow .25s;}
  .ev .c:hover{transform:translateY(-5px); box-shadow:var(--shadow-lg);}
  .ev .ind{font-family:var(--fh); font-weight:800; font-size:12.5px; letter-spacing:.05em; color:var(--teal2); margin-bottom:14px;}
  .ev .big{display:flex; align-items:center; gap:12px; font-family:var(--fh); font-weight:900; font-size:42px; color:var(--teal); letter-spacing:-.02em; line-height:1;}
  .ev .big em{font-style:normal; font-size:.5em; color:var(--ink2);}
  .ev .dnt{width:48px; height:48px; flex-shrink:0;}
  .ev .dsc{font-size:13.5px; color:var(--ink2); line-height:1.7; margin-top:14px;}
  .ev-take{text-align:center; margin-top:36px; font-family:var(--fh); font-weight:800; font-size:clamp(17px,2vw,21px); color:var(--ink);}

  /* packages */
  .pkgs{display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:42px;}
  .pkg{background:#fff; border:1px solid var(--line); border-radius:20px; padding:24px; box-shadow:var(--shadow); transition:transform .25s, box-shadow .25s;}
  .pkg:hover{transform:translateY(-5px); box-shadow:var(--shadow-lg);}
  .ph{display:flex; gap:16px; align-items:flex-start; margin-bottom:14px; padding-bottom:14px; border-bottom:1px solid var(--line);}
  .pn{font-family:var(--fh); font-weight:900; font-size:15px; color:#fff; background:var(--grad); border-radius:12px; width:46px; height:46px; display:grid; place-items:center; flex-shrink:0;}
  .ph h3{font-size:18px; line-height:1.3;} .tgt{font-size:12.5px; color:var(--teal2); font-weight:700; margin-top:4px;}
  .pkg .row{display:grid; grid-template-columns:78px 1fr; gap:12px; font-size:13px; color:var(--ink2); margin-bottom:8px; line-height:1.55;}
  .pkg .row b{font-family:var(--fh); font-weight:800; font-size:12px; color:var(--teal); background:var(--mint2); border-radius:8px; padding:3px 0; text-align:center; height:fit-content;}
  .pkg-note{text-align:center; color:var(--soft); font-size:12.5px; margin-top:26px; font-weight:600;}

  /* who */
  .who{display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-top:22px;}
  .who .c{background:#fff; border:1px solid var(--line); border-radius:20px; padding:30px; box-shadow:var(--shadow);}
  .who h3{font-size:19px; display:flex; align-items:center; gap:12px; margin-bottom:18px;}
  .who .ic{width:42px; height:42px; border-radius:12px; background:var(--mint2); display:grid; place-items:center; flex-shrink:0;}
  .who ul{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:9px;}
  .who li{display:flex; gap:11px; font-size:14px; color:var(--ink); align-items:flex-start; line-height:1.45;}
  .who li svg{flex-shrink:0; margin-top:3px;}

  /* leadership / founders */
  /* 経営トップ(#about)も他の章と同じ背景色に統一し、章間の境目を出さない */
  #about.band-soft{background:#F4FBF9;}
  /* 私たちについて（About us）ブロック：左寄せ・背景色になじむ構成 */
  .aboutus{margin:0 0 58px;}
  .eyebrow-c{display:flex; justify-content:flex-start;}
  .aboutus-card{margin:18px 0 0; max-width:none; background:none; border:none; border-radius:0; padding:0; box-shadow:none; text-align:left;}
  .aboutus-logo{display:block; width:296px; max-width:74%; height:auto; margin:0 0 16px;}
  .aboutus-brand{font-family:var(--fh); font-weight:800; font-size:clamp(27px,3.1vw,38px); color:var(--ink); line-height:1.25; letter-spacing:-.018em;}
  .aboutus-lead-row{display:flex; gap:40px; align-items:center; margin:42px 0 0; max-width:none;}
  .aboutus-logo{display:block; width:340px; max-width:44%; height:auto; flex-shrink:0; margin:0 0 0 -14px; background:transparent; border:0; border-radius:0; padding:0; box-sizing:border-box; object-fit:contain; box-shadow:none;}
  .aboutus-desc{flex:1; min-width:0; margin:0;}
  .aboutus-desc .ad-h{font-family:var(--fh); font-weight:800; font-size:clamp(16px,1.5vw,20px); color:var(--ink); line-height:1.35; letter-spacing:-.01em; margin:0 0 11px;}
  .aboutus-desc p{font-size:clamp(12.5px,1vw,14px); color:var(--ink2); line-height:1.7; margin:0 0 8px;}
  .aboutus-desc p:last-child{margin-bottom:0;}
  .aboutus-offices{display:grid; grid-template-columns:1fr 1fr; gap:18px; margin:28px 0 0; max-width:880px; text-align:left;}
  .aboutus-offices .ao{display:flex; gap:11px; align-items:flex-start; background:#F7FBFA; border:1px solid var(--line); border-radius:14px; padding:15px 17px;}
  .aboutus-offices .ao > svg{flex-shrink:0; color:var(--teal); margin-top:2px;}
  .aboutus-offices .ao b{display:block; font-family:var(--fh); font-weight:800; font-size:13.5px; color:var(--ink); margin-bottom:3px;}
  .aboutus-offices .ao > div{font-size:12.5px; color:var(--ink2); line-height:1.6;}
  @media (max-width:680px){ .aboutus-offices{grid-template-columns:1fr;} .aboutus-lead-row{flex-direction:column; align-items:flex-start; gap:16px;} .aboutus-logo{max-width:70%;} }
  .lead-grid{display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-top:42px;}
  .founder{background:#fff; border:1px solid #E3E6E9; border-radius:22px; padding:30px; box-shadow:0 10px 30px rgba(20,90,82,.07); transition:transform .25s, box-shadow .25s; display:flex; flex-direction:column; gap:18px; align-items:stretch;}
  .ftop{display:flex; gap:22px; align-items:flex-start;}
  .fbio{font-size:13.5px; color:var(--ink2); line-height:1.74; margin:0;}
  .founder:hover{transform:translateY(-5px); box-shadow:var(--shadow-lg);}
  .pf{position:relative; flex-shrink:0; width:128px;}
  .pf .ring{position:absolute; inset:-5px; border-radius:50%; background:var(--grad); opacity:.9;}
  .pf img{position:relative; width:128px; height:128px; border-radius:50%; border:4px solid #fff; box-shadow:0 8px 20px rgba(20,90,82,.18);}
  .pf .co{position:absolute; bottom:-6px; left:50%; transform:translateX(-50%); white-space:nowrap; font-family:var(--fh); font-weight:800; font-size:10.5px; letter-spacing:.05em; color:#fff; background:var(--grad); padding:4px 12px; border-radius:999px; box-shadow:var(--shadow);}
  .fbody{flex:1; min-width:0;}
  .fbody .fn{font-family:var(--fh); font-weight:900; font-size:21px; letter-spacing:-.01em;}
  .fbody .ft{font-size:12.5px; color:var(--teal2); font-weight:800; margin-top:2px;}
  .fbody .floc{font-size:12px; color:var(--soft); font-weight:600; margin:6px 0 12px; display:flex; align-items:center; gap:6px;}
  .fbody p{font-size:13.5px; color:var(--ink2); line-height:1.72;}

  /* values */
  .vgrid{display:grid; grid-template-columns:repeat(5,1fr); gap:8px; margin-top:38px;}
  .val{background:transparent; border:0; border-radius:14px; padding:14px 12px 10px; text-align:center; box-shadow:none; transition:transform .25s;}
  .val:hover{transform:translateY(-3px);}
  .val .vi{width:52px; height:52px; border-radius:16px; background:#fff; box-shadow:var(--shadow); display:grid; place-items:center; margin:0 auto 12px;}
  .val b{font-size:13.5px; font-family:var(--fh); font-weight:800;}
  .trust-row{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:30px; padding-top:30px; border-top:1px solid var(--line2);}
  .trust{display:flex; gap:14px; background:transparent; border:0; border-radius:16px; padding:4px 6px; box-shadow:none;}
  .trust svg{flex-shrink:0;} .trust b{font-size:14.5px;} .trust small{display:block; font-size:12.5px; color:var(--ink2); margin-top:4px; line-height:1.6;}

  /* cta / contact */
  .cta{background:linear-gradient(150deg,#EEF7FB 0%,#F4FBF9 55%,#F6FCFB 100%); position:relative; overflow:hidden;}
  .cta::before{content:""; position:absolute; left:0; right:0; top:0; height:170px; background:linear-gradient(180deg,#ECF7F2 0%,rgba(236,247,242,0) 100%); z-index:1; pointer-events:none;}
  .cta-left{display:flex; flex-direction:column; align-items:center; width:100%; margin:0 auto;}
  .cta-left > .eyebrow{align-self:center;}
  .cta-logo{display:block; width:310px; max-width:88%; height:auto; margin:8px 0 24px; order:2;}
  /* 連絡先ブロック（カード化・中央配置） */
  .cta-info{flex:1; min-width:0; max-width:553px; margin:0; background:rgba(255,255,255,.62); border:1px solid var(--line); border-radius:18px; padding:16px 32px; box-shadow:0 10px 30px rgba(20,90,82,.06);}
  .cta-body{display:flex; gap:22px; align-items:stretch; justify-content:center; width:100%; margin-top:18px;}
  .cta-qr{flex:none; width:calc((100% - 22px)/4); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:11px; background:rgba(255,255,255,.62); border:1px solid var(--line); border-radius:18px; padding:16px 18px; box-shadow:0 10px 30px rgba(20,90,82,.06);}
  .cta-qr img{display:block; width:150px; max-width:86%; height:auto; border-radius:12px; flex-shrink:0;}
  .cta-qr .qr-img{width:200px; max-width:90%; border-radius:12px;}
  .cta-qr .qr-cap{display:flex; align-items:center; gap:8px; font-family:var(--fh); font-weight:800; font-size:13px; letter-spacing:.02em; color:var(--teal2);}
  .cta-qr .qr-cap svg{color:var(--teal); flex-shrink:0;}
  .cta-qr .btn-primary{background:#1FA294;}
  .cta-dev{width:100%;margin-top:14px;padding-top:14px;border-top:1px dashed var(--line2);display:flex;flex-direction:column;align-items:center;gap:9px;text-align:center;}
  .cta-dev .dev-label{font-family:var(--fh);font-weight:800;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--soft);}
  .cta-dev .dev-logo{width:auto;height:38px;max-width:92%;display:block;}
  .cta-dev .dev-row{display:flex;align-items:flex-start;gap:7px;font-size:11.5px;color:var(--ink2);line-height:1.5;text-align:left;width:100%;}
  .cta-dev .dev-row svg{width:13px;height:13px;color:var(--teal2);flex-shrink:0;margin-top:2px;}
  .cta-dev .dev-name{font-family:var(--fh);font-weight:800;font-size:13px;color:var(--ink);margin-top:1px;}
  .cta-info .ci-top{display:grid; grid-template-columns:repeat(2,1fr); gap:10px 28px; padding-bottom:11px; margin-bottom:11px; border-bottom:1px solid var(--line);}
  .cta-info .ci-row{display:flex; align-items:center; gap:12px; text-decoration:none; min-width:0;}
  .cta-info .ci-ic{width:30px; height:30px; display:flex; align-items:center; justify-content:center; color:var(--teal); flex-shrink:0; background:rgba(31,140,148,.10); border-radius:9px; transition:transform .2s, background .2s;}
  .cta-info .ci-ic svg{width:18px; height:18px;}
  .cta-info a.ci-row:hover .ci-ic{transform:translateY(-1px); background:rgba(31,140,148,.18); color:var(--teal2);}
  .cta-info .ci-val{font-size:13.5px; color:var(--ink2); font-weight:600; line-height:1.4; word-break:break-word;}
  .cta-info a.ci-row:hover .ci-val{color:var(--teal2);}
  /* オフィス住所：2カラム横並びカード */
  .cta-info .ci-offices{display:grid; grid-template-columns:1fr; gap:10px;}
  .cta-info .ci-office{display:flex; gap:12px; align-items:flex-start;}
  .cta-info .ci-office .ci-ic{margin-top:1px;}
  .cta-info .ci-addr-text{font-size:12.5px; color:var(--ink2); line-height:1.45;}
  .cta-info .ci-addr-text b{display:block; font-family:var(--fh); font-weight:400; font-size:13px; color:var(--ink); margin-bottom:3px;}
  @media (max-width:680px){
    .cta-info{padding:24px 22px;}
    .cta-info .ci-top{grid-template-columns:1fr; gap:13px;}
    .cta-info .ci-offices{grid-template-columns:1fr; gap:16px;}
  }
  .cta .blob{position:absolute; border-radius:50%; filter:blur(50px); opacity:.5; pointer-events:none;}
  .cta .blob.c1{width:420px; height:420px; background:radial-gradient(circle,#9FE0D4,transparent 68%); top:-150px; left:-100px;}
  .cta .blob.c2{width:380px; height:380px; background:radial-gradient(circle,#A9D8EC,transparent 68%); bottom:-160px; right:-80px;}
  .cta-grid{position:relative; z-index:2; display:grid; grid-template-columns:1fr; gap:44px; align-items:start;}
  .one-line{white-space:nowrap;}
  .contact-list{margin-top:26px; display:flex; flex-direction:column; gap:14px;}
  .ci{display:flex; align-items:center; gap:13px; font-size:14.5px; color:var(--ink); font-weight:600;}
  .ci .ic{width:40px; height:40px; border-radius:12px; background:#fff; border:1px solid var(--line2); display:grid; place-items:center; flex-shrink:0; box-shadow:var(--shadow);}
  .ci small{display:block; font-size:11.5px; color:var(--soft);}
  .ci a:hover{color:var(--teal2);}
  .form{background:#fff; border-radius:22px; padding:32px; box-shadow:var(--shadow-soft); border:1px solid var(--line);}
  .form h3{font-size:20px; margin-bottom:4px;}
  .form .fsub{font-size:13px; color:var(--ink2); margin-bottom:20px;}
  .field{margin-bottom:14px;}
  .field label{display:block; font-family:var(--fh); font-size:12.5px; font-weight:800; color:var(--ink2); margin-bottom:6px;}
  .field input, .field textarea{width:100%; font-family:inherit; font-size:14.5px; color:var(--ink); padding:12px 15px; border:1.6px solid var(--line2); border-radius:12px; background:#FBFEFD; transition:border-color .2s, box-shadow .2s;}
  .field input:focus, .field textarea:focus{outline:0; border-color:var(--teal3); box-shadow:0 0 0 3px rgba(31,140,148,.13);}
  .field textarea{resize:vertical; min-height:84px;}
  .form .btn{width:100%; margin-top:6px;}
  .form .fnote{font-size:11.5px; color:var(--soft); text-align:center; margin-top:12px; line-height:1.5;}
  /* お問い合わせフォーム：ワイド画面では右カラム幅に合わせて配置（内部はコンパクト表示） */
  @media (min-width:861px){
    .form{padding:24px 26px; border-radius:18px;}
    .form h3{font-size:15px; margin-bottom:3px;}
    .form .fsub{font-size:11px; margin-bottom:14px;}
    .field{margin-bottom:10px;}
    .field label{font-size:10.5px; margin-bottom:4px;}
    .field input, .field textarea{font-size:12px; padding:8px 11px; border-radius:9px;}
    .field textarea{min-height:58px;}
    .form .btn{font-size:12px; padding:10px 18px; margin-top:4px;}
    .form .fnote{font-size:10px; margin-top:9px;}
  }

  /* footer */
  footer{background:linear-gradient(180deg,#FFFFFF,#EFF7F4); border-top:1px solid var(--line);}
  .foot{display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:36px; padding:54px 0 30px;}
  .foot img{width:300px; max-width:100%; margin-bottom:14px; mix-blend-mode:multiply;}
  .foot .fd{line-height:1.7; max-width:320px; font-size:13.5px; color:var(--ink2);}
  .foot h5{color:var(--teal); font-family:var(--fh); font-size:12px; letter-spacing:.1em; text-transform:uppercase; margin:0 0 14px; font-weight:900;}
  .foot ul{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px; font-size:13.5px; color:var(--ink2);}
  .foot a:hover{color:var(--teal2);}
  .foot-bot{border-top:1px solid var(--line2); padding:18px 0; display:flex; justify-content:center; text-align:center; flex-wrap:wrap; gap:10px; font-size:12.5px; color:var(--soft); font-weight:400;}

  .reveal{opacity:0; transform:translateY(24px); transition:opacity .8s ease, transform .8s cubic-bezier(.2,.7,.3,1);}
  .reveal.in{opacity:1; transform:none;}

  @media (max-width:980px){
    .section{padding:74px 0;}
    #how{padding-top:50px; padding-bottom:25px;} #symptoms{padding:25px 0;} #evidence{padding:25px 0;} #services{padding:25px 0;} #contact{padding-top:18px;}
    #problem{padding-top:33px;}
    #approach{padding-top:33px;}
    #packages{padding-bottom:33px;}
    .hero-grid{grid-template-columns:1fr; gap:36px; padding:48px 0 30px;}
    .device{max-width:480px;}
    .nav-links{display:none;}
    .duo, .cta-grid, .who, .pkgs, .lead-grid{grid-template-columns:1fr;}
    .cta-info{width:100%;}
    .cta-qr{width:100%; padding:24px;}
    .cta-body{flex-direction:column; align-items:stretch;}
    .cta-qr{padding:24px;}
    .one-line{white-space:normal;}
    .nbr{display:none;}
    .chips .symp{opacity:1; transform:none; animation:none;}
    .duo .xjoin{display:none;}
    .strip{grid-template-columns:repeat(2,1fr); gap:18px 0;}
    .st:nth-child(3)::before{display:none;}
    .st:nth-child(5)::before{display:none;}
    .st:nth-child(5){grid-column:1 / -1;}
    .gaps{grid-template-columns:repeat(2,1fr);} .qcd{grid-template-columns:1fr;}
    .dimgrid{grid-template-columns:1fr;} .steps{grid-template-columns:1fr;} .step-c .ar{display:none;}
    .insights, .cost, .trust-row, .ev{grid-template-columns:1fr;}
    .vgrid{grid-template-columns:repeat(2,1fr);}
    .foot{grid-template-columns:1fr; gap:26px;}
    .merge{flex-direction:column; align-items:flex-start;}
    .cycle{width:270px; height:270px; margin:8px auto 0;}
    .cycle .cnode{font-size:12px; padding:7px 13px;}
    .iceberg{width:260px; height:300px; margin:10px auto 0;}
  }
  @media (max-width:560px){
    body{font-size:16px;}
    .brand .brandmark{height:32px;}
    .brand .brandtext{display:none;}
    .gaps{grid-template-columns:1fr;} .vgrid{grid-template-columns:1fr;}
    .nav-cta .btn{display:none;}
    .founder{flex-direction:column; align-items:center; text-align:center;}
    .ftop{flex-direction:column; align-items:center;}
    .pf{width:120px;}
  }
  @media (prefers-reduced-motion:reduce){
    *{animation:none !important;}
    .reveal{opacity:1; transform:none; transition:none;}
    .gprog{transition:none;} .dim .bar span{transition:none;}
    html{scroll-behavior:auto;}
  }
  /* analysis-logic button + overlay */
  .logic-btn{display:inline-flex; align-items:center; gap:5px; background:#fff; border:1.5px solid var(--teal3); color:var(--teal); font-family:var(--fh); font-weight:800; font-size:11px; padding:5px 11px; border-radius:999px; cursor:pointer; white-space:nowrap; box-shadow:0 3px 10px rgba(31,140,148,.16); transition:transform .15s, box-shadow .15s, background .15s;}
  .logic-btn:hover{transform:translateY(-1px); box-shadow:0 7px 16px rgba(31,140,148,.24); background:#F4FBF9;}
  .logic-btn svg{width:13px; height:13px; flex-shrink:0;}
  /* ===== demo booking modal form ===== */
  .demo-card{max-width:620px; margin:0 auto; background:#fff; border:1px solid var(--line); border-radius:22px; padding:34px 38px; box-shadow:var(--shadow-soft);}
  .demo-card .field select{width:100%; font-family:inherit; font-size:14.5px; color:var(--ink); padding:12px 15px; border:1.6px solid var(--line2); border-radius:12px; background:#FBFEFD; transition:border-color .2s, box-shadow .2s; -webkit-appearance:none; appearance:none; background-image:url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 9l6 6 6-6' stroke='%2394A9A5' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; padding-right:40px; cursor:pointer;}
  .demo-card .field select:focus{outline:0; border-color:var(--teal3); box-shadow:0 0 0 3px rgba(31,140,148,.13);}
  .demo-card .chkgrid{display:grid; grid-template-columns:1fr 1fr; gap:9px;}
  .demo-card .chk{display:flex; align-items:center; gap:9px; font-size:13.5px; color:var(--ink); padding:11px 13px; border:1.6px solid var(--line2); border-radius:11px; background:#FBFEFD; cursor:pointer; transition:border-color .18s, background .18s;}
  .demo-card .chk:hover{border-color:var(--teal3);}
  .demo-card .chk input{width:17px; height:17px; accent-color:var(--teal); cursor:pointer; flex-shrink:0;}
  .demo-card .chk.on{border-color:var(--teal3); background:#F4FBF9;}
  .demo-lead{text-align:center; max-width:560px; margin:14px auto 30px; color:var(--ink2); font-size:14.5px; line-height:1.7;}
  .req{color:var(--rC);}
  @media (max-width:980px){
    .demo-card{padding:24px 22px; border-radius:18px;}
    .demo-card .chkgrid{grid-template-columns:1fr;}
    .demo-lead{font-size:13px; margin:10px auto 22px;}
  }
  .logic-overlay{position:fixed; inset:0; z-index:200; background:linear-gradient(180deg,#F4FBF9,#EDF6F4); display:none; flex-direction:column;}
  .logic-overlay.open{display:flex; animation:loFade .25s ease;}
  @keyframes loFade{from{opacity:0;}to{opacity:1;}}
  .lo-bar{flex-shrink:0; display:flex; align-items:center; justify-content:space-between; padding:13px 26px; background:rgba(255,255,255,.92); backdrop-filter:blur(8px); border-bottom:1px solid var(--line);}
  .lo-title{font-family:var(--fh); font-weight:800; font-size:15px; color:var(--ink); letter-spacing:.01em;}
  .lo-close{border:1px solid var(--line2); background:#fff; width:38px; height:38px; border-radius:50%; cursor:pointer; color:var(--ink2); display:flex; align-items:center; justify-content:center; transition:background .15s, color .15s;}
  .lo-close:hover{background:var(--paper); color:var(--ink);}
  .lo-actions{display:flex; align-items:center; gap:12px;}
  .lo-body{flex:1; overflow-y:auto; -webkit-overflow-scrolling:touch; padding:46px 0 72px;}
  /* ===== MVV modal content ===== */
  .mvv-wrap{max-width:780px; margin:0 auto; padding:0 24px;}
  .mvv-top{text-align:center; margin-bottom:34px;}
  .mvv-eyebrow{display:inline-block; font-family:var(--fh); font-weight:800; font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--teal2); margin-bottom:12px;}
  .mvv-h{font-family:var(--fh); font-weight:900; font-size:clamp(22px,3.4vw,30px); color:var(--ink); letter-spacing:-.01em; margin:0;}
  .mvv-h .accent{color:var(--teal2);}
  .mvv-card{position:relative; background:#fff; border:1px solid var(--line); border-radius:20px; padding:28px 30px; box-shadow:var(--shadow-soft); margin-bottom:20px; overflow:hidden;}
  .mvv-card::before{content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--grad);}
  .mvv-lab{display:inline-flex; align-items:baseline; gap:9px; margin-bottom:14px;}
  .mvv-lab .en{font-family:var(--fh); font-weight:900; font-size:15px; letter-spacing:.08em; color:var(--teal2); text-transform:uppercase;}
  .mvv-lab .jp{font-family:var(--fh); font-weight:800; font-size:13px; color:var(--soft);}
  .mvv-state{font-size:clamp(15px,1.9vw,17px); line-height:1.85; color:var(--ink); font-weight:600;}
  .mvv-state b, .mvv-state .q{color:var(--teal2); font-weight:800;}
  .mvv-vals{display:flex; flex-direction:column; gap:18px; margin-top:4px;}
  .mvv-val{display:flex; flex-direction:column;}
  .mvv-val .vhead{display:flex; align-items:center; gap:14px;}
  .mvv-val .no{flex-shrink:0; width:32px; height:32px; border-radius:10px; background:var(--mint2); color:var(--teal); font-family:var(--fh); font-weight:900; font-size:15px; display:flex; align-items:center; justify-content:center;}
  .mvv-val .vt{font-family:var(--fh); font-weight:800; font-size:14.5px; color:var(--teal2); display:block; margin:0; border:0; border-radius:0; box-shadow:none; background:none; overflow:visible;}
  .mvv-val .vd{font-size:14px; line-height:1.7; color:var(--ink2); font-weight:500; margin:5px 0 0 46px;}
  .mvv-val .vd b{color:var(--ink); font-weight:800;}
  @media (max-width:560px){ .mvv-card{padding:22px 20px;} .mvv-val .vd{margin-left:0;} }
  @media (max-width:980px){ .lo-bar{padding:11px 18px;} .lo-title{font-size:13.5px;} .lo-body{padding:30px 0 56px;} }

  /* ===== Fit Track 固有の追加スタイル ===== */
  /* brand mark (inline svg, 自己完結) */
  .swirlbg svg{width:100%;height:100%;display:block;animation:spin 70s linear infinite;}
  @media (prefers-reduced-motion:reduce){.swirlbg svg{animation:none;}}
  .brand .ftmark{height:34px;width:34px;flex-shrink:0;}
  .brand .brandtext{font-weight:900;}
  .brand .brandtext .ft2{color:var(--teal2);}

  /* hero badge tweaks */
  .hero-cta .logic-open{background:#fff;color:var(--teal);border:1.7px solid var(--line2);}
  .hero-cta .logic-open:hover{border-color:var(--teal3);color:var(--teal2);transform:translateY(-2px);}
  .hero-cta .logic-open svg{width:20px;height:20px;}

  /* section padding for new ids */
  #features{padding-top:33px;padding-bottom:33px;}
  #data{padding-top:33px;padding-bottom:33px;background:#F4FBF9;}
  .h2.h2-sm{font-size:clamp(24px,3vw,34px);}

  /* problem cards (4-up) */
  .probs{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:40px;}
  .prob{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px;box-shadow:var(--shadow);transition:transform .25s,box-shadow .25s;}
  .prob:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);}
  .prob .pi{width:42px;height:42px;border-radius:12px;background:var(--mint2);display:grid;place-items:center;color:var(--teal);margin-bottom:13px;}
  .prob .pi svg{width:22px;height:22px;}
  .prob h4{font-size:15.5px;margin-bottom:7px;line-height:1.4;}
  .prob p{font-size:13px;color:var(--ink2);line-height:1.65;}
  @media (max-width:980px){.probs{grid-template-columns:repeat(2,1fr);}}
  @media (max-width:560px){.probs{grid-template-columns:1fr;}}

  /* feature grid (tool, 5-up auto) */
  .feats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px;margin-top:40px;}
  .feat{background:linear-gradient(160deg,#F5FBFA,#fff);border:1px solid var(--line);border-radius:18px;padding:24px;box-shadow:var(--shadow);transition:transform .25s,box-shadow .25s;}
  .feat:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);}
  .feat .fic{width:46px;height:46px;border-radius:13px;background:var(--grad);display:grid;place-items:center;color:#fff;margin-bottom:14px;box-shadow:0 6px 16px rgba(31,140,148,.28);}
  .feat .fic svg{width:23px;height:23px;}
  .feat h4{font-size:16px;margin-bottom:6px;}
  .feat p{font-size:13px;color:var(--ink2);line-height:1.66;}

  /* value table (value -> concrete effect) */
  .vt{margin-top:40px;border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:var(--shadow-soft);background:#fff;}
  .vt .vr{display:grid;grid-template-columns:minmax(190px,.85fr) 1.4fr;gap:0;border-bottom:1px solid var(--line);}
  .vt .vr:last-child{border-bottom:0;}
  .vt .vk{display:flex;align-items:center;gap:12px;padding:18px 24px;background:#F7FBFA;font-family:var(--fh);font-weight:800;font-size:14.5px;color:var(--teal);border-right:1px solid var(--line);}
  .vt .vk svg{width:20px;height:20px;flex-shrink:0;color:var(--teal2);}
  .vt .vv{padding:18px 24px;font-size:14px;color:var(--ink2);line-height:1.66;display:flex;align-items:center;}
  @media (max-width:680px){.vt .vr{grid-template-columns:1fr;}.vt .vk{border-right:0;border-bottom:1px dashed var(--line2);}}

  /* gap -> QCD impact (overlay) */
  .impact{margin-top:22px;display:grid;grid-template-columns:1fr;gap:0;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#fff;box-shadow:var(--shadow);}
  .impact .ir{display:grid;grid-template-columns:minmax(150px,.7fr) 1.3fr;border-bottom:1px solid var(--line);}
  .impact .ir:last-child{border-bottom:0;}
  .impact .ik{display:flex;align-items:center;gap:10px;padding:14px 20px;font-family:var(--fh);font-weight:800;font-size:13.5px;color:var(--ink);background:#F7FBFA;border-right:1px solid var(--line);}
  .impact .ik .dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;}
  .impact .iv{padding:14px 20px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;}
  .impact .tag{font-family:var(--fh);font-weight:800;font-size:11.5px;border-radius:999px;padding:4px 12px;white-space:nowrap;}
  .impact .tq{background:rgba(226,112,90,.13);color:#C9543B;}
  .impact .tc{background:rgba(230,178,62,.15);color:#B07F10;}
  .impact .td{background:rgba(46,120,174,.12);color:#2E78AE;}
  .impact-cap{text-align:center;color:var(--soft);font-size:12.5px;margin:14px 0 0;font-weight:600;}
  .corr-wrap{margin-top:26px;}
  .corr-h{text-align:center;font-family:var(--fh);font-weight:900;font-size:clamp(15px,2vw,19px);color:var(--ink);letter-spacing:-.01em;margin:0 0 15px;}
  .corr{max-width:800px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:var(--shadow);}
  .corr-grid{display:grid;grid-template-columns:minmax(132px,1.15fr) 1fr 1fr 1fr;}
  .corr-grid>div{padding:13px 12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center;border-bottom:1px solid var(--line);}
  .corr-grid>div:nth-child(4n+1),.corr-grid>div:nth-child(4n+2),.corr-grid>div:nth-child(4n+3){border-right:1px solid var(--line);}
  .corr-grid>div:nth-last-child(-n+4){border-bottom:0;}
  .corr-grid .ch{background:#F7FBFA;font-family:var(--fh);font-weight:800;font-size:12.5px;color:var(--ink);line-height:1.3;}
  .corr-grid .ch small{display:block;font-weight:700;font-size:10px;color:var(--soft);margin-top:2px;}
  .corr-grid .corner{background:#EEF6F4;font-family:var(--fh);font-weight:900;font-size:13px;color:var(--teal2);}
  .corr-grid .rk{flex-direction:row;align-items:center;justify-content:flex-start;gap:9px;text-align:left;background:#F7FBFA;font-family:var(--fh);font-weight:800;font-size:13px;color:var(--ink);}
  .corr-grid .rk .dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;}
  .corr-dots{display:inline-flex;align-items:center;justify-content:center;gap:7px;line-height:1;}
  .corr-dots i{width:6px;height:6px;border-radius:50%;background:var(--teal3);display:block;animation:corrPulse 2.6s ease-in-out infinite;}
  @keyframes corrPulse{0%,100%{transform:scale(1);}45%{transform:scale(1.55);}}
  .corr-grid .lg .corr-dots i{background:#E08977;}
  .corr-grid .md .corr-dots i{background:#E5C15C;}
  .corr-grid .sm .corr-dots i{background:#83B4DB;}
  .corr-leg b.lg{color:#E08977;} .corr-leg b.md{color:#E5C15C;} .corr-leg b.sm{color:#83B4DB;}
  .corr-lv{font-size:10px;font-weight:800;color:var(--soft);}
  .corr-grid .cq .corr-dots{color:#C9543B;} .corr-grid .cc .corr-dots{color:#B07F10;} .corr-grid .cd .corr-dots{color:#2E78AE;}
  .corr-dots .o{opacity:.2;}
  @media(prefers-reduced-motion:reduce){.corr-dots i{animation:none;}}
  .corr-leg{display:flex;justify-content:center;flex-wrap:wrap;gap:18px;margin:13px 0 0;font-size:11.5px;color:var(--soft);font-weight:600;}
  .corr-leg b{color:var(--teal3);letter-spacing:1px;}
  @media (max-width:560px){ .corr-grid{grid-template-columns:minmax(92px,1fr) 1fr 1fr 1fr;} .corr-grid>div{padding:10px 5px;} .corr-grid .ch{font-size:10.5px;} .corr-grid .rk{font-size:11px;gap:6px;} .corr-dots{font-size:12px;} }
  @media (max-width:560px){.impact .ir{grid-template-columns:1fr;}.impact .ik{border-right:0;border-bottom:1px dashed var(--line2);}}

  /* survey timeline mini (overlay intro) */
  .svy{display:flex;align-items:center;justify-content:center;gap:0;flex-wrap:wrap;margin:30px auto 0;max-width:620px;}
  .svy .sd{flex:1;min-width:150px;background:#fff;border:1px solid var(--line2);border-radius:14px;padding:14px 18px;text-align:center;box-shadow:var(--shadow);}
  .svy .sd b{font-family:var(--fh);font-weight:900;font-size:18px;color:var(--teal);display:block;}
  .svy .sd small{font-size:12px;color:var(--ink2);display:block;margin-top:2px;}
  .svy .sarw{color:var(--teal4);padding:0 14px;font-weight:900;font-size:20px;}
  @media (max-width:560px){.svy{flex-direction:column;}.svy .sarw{transform:rotate(90deg);padding:8px 0;}}

  /* contact: founder mini */
  .person{display:flex;flex-direction:column;align-items:center;text-align:center;gap:9px;margin-top:14px;padding-top:14px;border-top:1px dashed var(--line2);width:100%;}
  .person .pav{width:54px;height:54px;border-radius:50%;background:var(--grad);color:#fff;display:grid;place-items:center;font-family:var(--fh);font-weight:900;font-size:18px;flex-shrink:0;box-shadow:0 6px 16px rgba(20,90,82,.2);}
  .person .p-name{font-family:var(--fh);font-weight:900;font-size:15px;color:var(--ink);line-height:1.2;}
  .person .p-role{font-size:12px;color:var(--teal2);font-weight:700;margin-top:3px;}

  /* ===== Services portfolio ===== */
  .svc-feat{margin-top:40px;border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:var(--shadow-soft);background:linear-gradient(135deg,#fff 0%,#F5FBFA 100%);display:grid;grid-template-columns:1.15fr 1fr;}
  .svc-feat .sf-l{padding:34px 34px 34px 38px;border-left:5px solid transparent;border-image:var(--grad) 1;}
  .svc-feat .sf-r{padding:34px;background:rgba(31,140,148,.04);border-left:1px solid var(--line);display:flex;flex-direction:column;justify-content:center;}
  .svc-feat .badge{display:inline-flex;align-items:center;gap:7px;font-family:var(--fh);font-weight:800;font-size:11.5px;letter-spacing:.03em;color:#fff;background:var(--grad);border-radius:999px;padding:5px 13px;box-shadow:0 6px 14px rgba(31,140,148,.26);}
  .svc-feat h3{font-size:22px;margin:15px 0 10px;letter-spacing:-.01em;}
  .svc-feat p{font-size:14px;color:var(--ink2);line-height:1.7;}
  .svc-feat .sf-r .vlbl{font-family:var(--fh);font-weight:800;font-size:11.5px;letter-spacing:.04em;color:var(--teal2);text-transform:uppercase;margin-bottom:8px;}
  .svc-feat .sf-r p{font-size:13.5px;color:var(--ink);line-height:1.72;}
  @media (max-width:860px){.svc-feat{grid-template-columns:1fr;}.svc-feat .sf-r{border-left:0;border-top:1px solid var(--line);}}

  .svcs{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:18px;}
  .svc{background:#fff;border:1px solid var(--line);border-radius:18px;padding:26px 24px;box-shadow:var(--shadow);transition:transform .25s,box-shadow .25s;display:flex;flex-direction:column;}
  .svc:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);}
  .svc .sbadge{align-self:flex-start;font-family:var(--fh);font-weight:800;font-size:10.5px;letter-spacing:.04em;color:var(--teal2);background:var(--mint2);border-radius:999px;padding:4px 11px;text-transform:uppercase;}
  .svc .sic{width:46px;height:46px;border-radius:13px;background:var(--mint2);display:grid;place-items:center;color:var(--teal);margin:16px 0 13px;}
  .svc .sic svg{width:24px;height:24px;}
  .svc h4{font-size:16.5px;line-height:1.4;margin-bottom:9px;}
  .svc p{font-size:13px;color:var(--ink2);line-height:1.68;}
  .svc .sval{margin-top:14px;padding-top:14px;border-top:1px dashed var(--line2);display:flex;gap:9px;font-size:12.5px;color:var(--ink);line-height:1.6;}
  .svc .sval svg{width:17px;height:17px;flex-shrink:0;margin-top:1px;color:var(--teal2);}
  @media (max-width:860px){.svcs{grid-template-columns:1fr;}}

  /* ===== Mission / Vision / Value ===== */
  #mvv .mvv-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:0;}
  .mvbox{position:relative;background:#fff;border:1px solid var(--line);border-radius:20px;padding:30px 30px 30px 34px;box-shadow:var(--shadow);overflow:hidden;}
  .mvbox::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--grad);}
  .mvbox .lbl{font-family:var(--fh);font-weight:900;font-size:13px;letter-spacing:.06em;color:var(--teal2);text-transform:uppercase;}
  .mvbox .stmt{font-family:var(--fh);font-weight:800;font-size:18px;line-height:1.62;color:var(--ink);margin-top:12px;letter-spacing:-.01em;}
  .mvbox .stmt .lvi{font-weight:600;}
  .mvbox .sub{font-size:13px;color:var(--ink2);line-height:1.66;margin-top:10px;}
  @media (max-width:760px){#mvv .mvv-row{grid-template-columns:1fr;}}
  .cvgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:18px;}
  .cv{background:linear-gradient(160deg,#F5FBFA,#fff);border:1px solid var(--line);border-radius:18px;padding:24px;box-shadow:var(--shadow);}
  .cv .cvn{width:38px;height:38px;border-radius:11px;background:var(--grad);color:#fff;font-family:var(--fh);font-weight:900;font-size:17px;display:grid;place-items:center;box-shadow:0 6px 14px rgba(31,140,148,.26);}
  .cv h4{font-size:15px;margin:14px 0 7px;}
  .cv p{font-size:12.5px;color:var(--ink2);line-height:1.66;}
  @media (max-width:760px){.cvgrid{grid-template-columns:1fr;}}

  /* ===== Service journey: stepper + tier cards ===== */
  .srail{display:flex;align-items:flex-start;gap:10px;margin:46px auto 8px;max-width:920px;position:relative;}
  .srail::before{content:"";position:absolute;top:27px;left:11%;right:11%;height:3px;background:var(--grad);opacity:.4;border-radius:2px;}
  .snode{flex:1;min-width:120px;display:flex;flex-direction:column;align-items:center;gap:11px;position:relative;z-index:1;}
  .snode .sdot{width:54px;height:54px;border-radius:50%;background:var(--grad);color:#fff;font-family:var(--fh);font-weight:900;font-size:18px;display:grid;place-items:center;box-shadow:0 8px 18px rgba(31,140,148,.30);border:4px solid #F4FBF9;}
  .snode .sn-t{font-family:var(--fh);font-weight:800;font-size:13.5px;color:var(--ink);text-align:center;line-height:1.3;}
  .snode .sn-g{font-size:11px;color:var(--soft);text-align:center;line-height:1.45;}
  @media (max-width:680px){.srail{flex-wrap:wrap;gap:22px 10px;}.srail::before{display:none;}.snode{flex:0 0 calc(50% - 10px);}}

  .tiers{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:30px;}
  .tier{position:relative;background:#fff;border:1px solid var(--line);border-radius:22px;padding:34px 34px 30px;box-shadow:var(--shadow-soft);overflow:hidden;transition:transform .25s,box-shadow .25s;display:flex;flex-direction:column;}
  .tier::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--grad);}
  .tier:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg);}
  .tier .thead{display:flex;gap:17px;align-items:flex-start;}
  .tier .tnum{width:50px;height:50px;border-radius:14px;background:var(--grad);color:#fff;font-family:var(--fh);font-weight:900;font-size:18px;display:grid;place-items:center;flex-shrink:0;box-shadow:0 8px 18px rgba(31,140,148,.28);}
  .tier .tt{flex:1;min-width:0;}
  .tier .tt h4{font-size:18.5px;line-height:1.32;letter-spacing:-.01em;}
  .tier .ttag{display:inline-flex;align-items:flex-start;gap:7px;margin-top:11px;font-family:var(--fh);font-weight:700;font-size:11.5px;color:var(--teal2);background:var(--mint2);border-radius:12px;padding:6px 13px;line-height:1.4;}
  .tier .ttag svg{width:13px;height:13px;flex-shrink:0;margin-top:1px;}
  .tier .tdiv{height:1px;background:var(--line);margin:22px 0 19px;}
  .tier .tblock + .tblock{margin-top:17px;}
  .tier .tblabel{display:inline-flex;align-items:center;gap:8px;font-family:var(--fh);font-weight:800;font-size:11.5px;letter-spacing:.04em;color:var(--teal);text-transform:uppercase;margin-bottom:8px;}
  .tier .tblabel .dotc{width:8px;height:8px;border-radius:2px;background:var(--grad);}
  .tier .tblock p{font-size:13.5px;color:var(--ink2);line-height:1.75;}
  @media (max-width:860px){.tiers{grid-template-columns:1fr;}.tier{padding:30px 26px 26px;}}
  /* ===== services: standard tool + option supports ===== */
  .svc-standard{position:relative;background:linear-gradient(180deg,#F3FBF9 0%,#ffffff 62%);border:1.5px solid var(--teal4);border-radius:24px;box-shadow:var(--shadow-soft);margin-top:36px;overflow:hidden;}
  .svc-standard::before{content:"";position:absolute;top:0;left:0;right:0;height:5px;background:linear-gradient(90deg,#15897E 0%,#49B8AB 100%);z-index:2;}
  .svc-standard-inner{display:grid;grid-template-columns:minmax(238px,286px) 1fr;}
  .svc-id{display:flex;flex-direction:column;align-items:flex-start;gap:14px;justify-content:center;padding:32px 30px 32px 34px;border-right:1px solid var(--line2);}
  .svc-id .svc-logo{height:30px;width:auto;display:block;}
  .svc-badge-row{display:flex;align-items:center;gap:11px;flex-wrap:wrap;}
  .svc-badge-row .svc-logo{height:21px;width:auto;display:block;}
  .svc-badge{display:inline-flex;align-items:center;gap:7px;font-family:var(--fh);font-weight:800;font-size:11px;letter-spacing:.05em;border-radius:999px;padding:6px 14px;white-space:nowrap;width:fit-content;}
  .svc-badge.std{background:linear-gradient(118deg,#15897E 0%,#49B8AB 100%);color:#fff;box-shadow:0 6px 14px rgba(21,137,126,.22);}
  .svc-badge.opt{background:var(--mint2);color:var(--teal);}
  .svc-name{font-family:var(--fh);font-weight:900;color:var(--ink);line-height:1.3;}
  .svc-id .svc-name{font-size:19px;}
  body.lang-en .svc-id .svc-name{font-size:18px;}
  .svc-col{display:flex;flex-direction:column;}
  .svc-col .svc-plan{margin-top:auto;padding-top:18px;border-top:1px solid var(--line);display:flex;flex-direction:column;align-items:flex-start;gap:9px;}
  .svc-plan .plan-label{font-family:var(--fh);font-weight:800;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--teal2);}
  .plan-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;}
  .plan-note{font-size:11px;font-weight:600;color:var(--soft);line-height:1.4;}
  .svc-plan .plan-opts{display:flex;gap:8px;flex-wrap:wrap;}
  .svc-plan .plan-chip{font-family:var(--fh);font-weight:800;font-size:12px;color:#fff;background:linear-gradient(118deg,#15897E,#49B8AB);border-radius:999px;padding:7px 15px;white-space:nowrap;box-shadow:0 4px 10px rgba(21,137,126,.20);}
  .svc-content{display:grid;grid-template-columns:1fr 1fr;gap:30px;padding:30px 34px;align-items:start;}
  .svc-lbl{font-family:var(--fh);font-weight:800;font-size:10.5px;letter-spacing:.06em;color:var(--teal2);text-transform:uppercase;margin-bottom:10px;}
  .svc-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px;}
  .svc-list li{position:relative;padding-left:18px;font-size:12.8px;color:var(--ink2);line-height:1.62;}
  .svc-list.dot li::before{content:"";position:absolute;left:2px;top:7px;width:6px;height:6px;border-radius:50%;background:var(--rC);}
  .svc-list.check li{padding-left:24px;}
  .svc-list.check li::before{content:"";position:absolute;left:0;top:1px;width:16px;height:16px;border-radius:50%;background:var(--mint2);}
  .svc-list.check li::after{content:"";position:absolute;left:5.5px;top:4px;width:4px;height:8px;border:solid var(--teal);border-width:0 2px 2px 0;transform:rotate(45deg);}
  .svc-opts{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:18px;}
  .svc-opt{position:relative;overflow:hidden;display:flex;flex-direction:column;background:linear-gradient(180deg,#F5FBF9 0%,#ffffff 60%);border:1.5px solid var(--teal4);border-radius:22px;padding:28px 24px 26px;box-shadow:var(--shadow);transition:transform .25s,box-shadow .25s;}
  .svc-opt::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#15897E 0%,#49B8AB 100%);}
  .svc-opt:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg);}
  .svc-opt-head{display:flex;justify-content:center;margin-bottom:16px;}
  .svc-opt-ico{flex:none;width:44px;height:44px;border-radius:13px;background:var(--mint2);color:var(--teal);display:flex;align-items:center;justify-content:center;}
  .svc-opt-ico svg{width:23px;height:23px;stroke:currentColor;fill:none;}
  .svc-opt-head-tx{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;}
  .svc-opt .svc-name{font-size:15.5px;font-weight:800;line-height:1.32;}
  .svc-divider{height:1px;background:var(--line);margin:0 0 16px;}
  .svc-cost{margin-top:auto;padding-top:18px;border-top:1px solid var(--line);}
  .svc-cost .svc-lbl{margin-bottom:6px;}
  .svc-cost-val{font-size:13px;font-weight:600;color:var(--ink2);line-height:1.5;}
  .svc-opt .svc-blk + .svc-blk{margin-top:16px;}
  @media(max-width:960px){.svc-content{grid-template-columns:1fr;gap:20px;}}
  @media(max-width:900px){.svc-opts{grid-template-columns:1fr;}}
  @media(max-width:860px){.svc-standard-inner{grid-template-columns:1fr;}.svc-id{border-right:none;border-bottom:1px solid var(--line2);}}
    section[id]{scroll-margin-top:82px;}
  
  /* ===== Symptom self-check ===== */
  .symp-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:18px;margin-top:42px;}
  .sympc{flex:0 1 calc((100% - 54px)/4);background:#fff;border:1px solid var(--line);border-radius:18px;padding:15px 18px;box-shadow:var(--shadow);transition:transform .25s,box-shadow .25s;display:flex;flex-direction:column;}
  .sympc .dlabel{display:flex;align-items:center;gap:5px;font-family:var(--fh);font-weight:800;font-size:10px;color:var(--teal2);letter-spacing:.03em;margin:0 0 6px;}
  .sympc .dlabel svg{width:13px;height:13px;flex-shrink:0;}
  .sympc:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);}
  .sympc .qm{font-family:var(--fh);font-weight:800;font-size:13.5px;color:var(--ink);line-height:1.55;position:relative;
    background:linear-gradient(120deg,#D6EFE8 0%,#DDEAF5 100%);border:1px solid #CBE1DF;border-radius:13px;padding:10px 15px 10px 33px;margin-bottom:9px;}
  .sympc .qm::before{content:"\201C";position:absolute;left:12px;top:10px;color:#E58A3E;font-size:26px;font-weight:900;line-height:1;font-family:Georgia,'Times New Roman',serif;}
  .sympc .qm::after{content:"";position:absolute;left:30px;bottom:-7px;width:14px;height:14px;background:#D6EFE8;border-right:1px solid #CBE1DF;border-bottom:1px solid #CBE1DF;transform:rotate(45deg);}
  @keyframes qmFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-5px);}}
  @keyframes qmBeat{0%,32%,100%{transform:scale(1);}16%{transform:scale(1.3);}}
  .sympc .qm{animation:qmFloat 3.8s ease-in-out infinite;will-change:transform;}
  .sympc .qm::before{animation:qmBeat 1.7s ease-in-out infinite;transform-origin:center;}
  .symp-grid .sympc:nth-child(4n+1) .qm{animation-delay:0s;} .symp-grid .sympc:nth-child(4n+2) .qm{animation-delay:-.95s;} .symp-grid .sympc:nth-child(4n+3) .qm{animation-delay:-1.9s;} .symp-grid .sympc:nth-child(4n) .qm{animation-delay:-2.85s;}
  .symp-grid .sympc:nth-child(4n+1) .qm::before{animation-delay:0s;} .symp-grid .sympc:nth-child(4n+2) .qm::before{animation-delay:-.4s;} .symp-grid .sympc:nth-child(4n+3) .qm::before{animation-delay:-.85s;} .symp-grid .sympc:nth-child(4n) .qm::before{animation-delay:-1.25s;}
  @media(prefers-reduced-motion:reduce){.sympc .qm,.sympc .qm::before{animation:none;}}
  .sympc .dims{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;align-items:center;align-content:center;gap:6px;margin:0;padding:0;height:60px;box-sizing:border-box;flex:0 0 auto;}
  .sympc .dchip{flex:0 0 auto;font-family:var(--fh);font-weight:700;font-size:10.5px;color:var(--teal2);background:var(--mint2);border-radius:999px;padding:4px 11px;white-space:nowrap;}
  .sympc .cause{margin-top:10px;padding-top:9px;border-top:1px dashed var(--line2);font-size:12.5px;color:var(--ink2);line-height:1.66;}
  .sympc .cause b{color:var(--teal);font-weight:800;font-family:var(--fh);font-size:10.5px;letter-spacing:.04em;display:block;margin-bottom:5px;text-transform:uppercase;}
  .sympc .dchip.qc{background:transparent;border:1px solid var(--line2);color:var(--soft);}
  .sympc .dx{font-family:var(--fh);font-weight:800;font-size:12px;color:#E58A3E;line-height:1;}
  .sympc .cause .fix{color:var(--teal);font-weight:800;font-family:var(--fh);font-size:13px;display:inline-flex;align-items:center;gap:5px;line-height:1.5;}
  .sympc .cause .fix .ar{color:var(--teal3);font-size:14px;}
  @media(max-width:1080px){.symp-grid .sympc{flex-basis:calc((100% - 36px)/3);}}
  @media(max-width:820px){.symp-grid .sympc{flex-basis:calc((100% - 18px)/2);}}
  @media(max-width:560px){.symp-grid .sympc{flex-basis:100%;}}

  /* ===== Rank guide table (overlay) ===== */
  .rankguide{margin-top:18px;border:1px solid var(--line2);border-radius:14px;overflow:hidden;background:#fff;}
  .rankguide .rg{display:grid;grid-template-columns:70px 124px 1fr;align-items:center;border-bottom:1px solid var(--line);}
  .rankguide .rg:last-child{border-bottom:0;}
  .rankguide .rg > *{padding:11px 14px;font-size:12.5px;}
  .rankguide .rg .rgc{display:flex;justify-content:center;}
  .rankguide .rg .rgs{color:var(--ink);font-family:var(--fh);font-weight:700;border-left:1px solid var(--line);border-right:1px solid var(--line);}
  .rankguide .rg .rgl{color:var(--ink2);}
  @media(max-width:560px){.rankguide .rg{grid-template-columns:48px 80px 1fr;}.rankguide .rg > *{padding:9px 9px;font-size:11px;}}

  /* ===== Report insights (overlay outputs) ===== */
  .outs{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:30px;}
  .outc{background:linear-gradient(160deg,#F5FBFA,#fff);border:1px solid var(--line);border-radius:16px;padding:22px;}
  .outc .on{width:34px;height:34px;border-radius:10px;background:var(--grad);color:#fff;font-family:var(--fh);font-weight:900;font-size:15px;display:grid;place-items:center;box-shadow:0 6px 14px rgba(31,140,148,.26);}
  .outc h5{font-family:var(--fh);font-weight:800;font-size:14px;margin:12px 0 6px;color:var(--ink);line-height:1.4;}
  .outc p{font-size:12.5px;color:var(--ink2);line-height:1.66;}
  @media(max-width:760px){.outs{grid-template-columns:1fr;}}

  /* ===== background gradient (teal base) ===== */
  body{background:linear-gradient(180deg,#F4FBF9 0%,#E9F6F0 100%);background-attachment:fixed;}
  .band-mint{background:linear-gradient(180deg,#EFF9F5 0%,#F6FCFA 100%);}

  /* ===== precision panel + gap×QCD (image-2 style) ===== */
  .panelcard{margin-top:40px;background:#fff;border:1px solid var(--line);border-radius:22px;padding:30px 34px;box-shadow:var(--shadow-soft);position:relative;overflow:hidden;}
  .panelcard::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--grad);}
  .panelcard .pc-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
  .panelcard .pc-head h3{font-size:22px;letter-spacing:-.01em;}
  .pc-badge{font-family:var(--fh);font-weight:900;font-size:12px;color:#fff;background:var(--grad);border-radius:999px;padding:5px 14px;letter-spacing:.02em;box-shadow:0 6px 14px rgba(31,140,148,.26);}
  .panelcard .pc-sub{font-family:var(--fh);font-weight:700;font-size:13px;color:var(--soft);margin-top:9px;}
  .panelcard .pc-desc{font-size:14px;color:var(--ink2);line-height:1.74;margin-top:14px;max-width:780px;}

  .gqcard{margin-top:22px;background:#fff;border:1px solid var(--line);border-radius:22px;padding:32px 34px;box-shadow:var(--shadow-soft);position:relative;overflow:hidden;}
  .gqcard::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#16847A 0%,#2E78AE 100%);}
  .gqcard .gq-title{display:flex;align-items:center;gap:12px;font-family:var(--fh);font-weight:900;font-size:19px;color:var(--ink);}
  .gqcard .gq-lead{font-size:13.5px;line-height:1.75;color:var(--ink2);margin:11px 0 2px;max-width:940px;}
  .gqcard .qicon{width:30px;height:30px;border-radius:50%;background:var(--grad);color:#fff;display:grid;place-items:center;font-weight:900;font-size:15px;flex-shrink:0;box-shadow:0 6px 14px rgba(31,140,148,.26);}
  .gqlist{margin:22px 0 0;padding:0;display:flex;flex-direction:column;gap:12px;}
  .gqlist li{list-style:none;font-size:14px;color:var(--ink2);line-height:1.62;padding-left:22px;position:relative;}
  .gqlist li::before{content:"";position:absolute;left:3px;top:8px;width:8px;height:8px;border-radius:50%;background:var(--teal2);}
  .gqlist li b{color:var(--ink);font-family:var(--fh);font-weight:800;}
  .gq-note{font-size:13.5px;color:var(--ink2);line-height:1.7;margin-top:18px;}
  .gqmatrix{margin-top:24px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px 22px;}
  .gqm-head,.gqm-row{display:grid;grid-template-columns:92px 1fr 1fr 1fr;gap:12px;align-items:center;}
  .gqm-head span{text-align:center;font-family:var(--fh);font-weight:800;font-size:14px;color:var(--teal);}
  .gqm-head span small{display:block;font-size:9.5px;color:var(--soft);font-weight:600;letter-spacing:.04em;}
  .gqm-row{margin-top:10px;}
  .gqm-row .rl{font-family:var(--fh);font-weight:800;font-size:13px;color:var(--ink);text-align:left;}
  .gqm-row .cell{height:34px;border-radius:9px;background:var(--mint);display:grid;place-items:center;border:1px solid var(--line);}
  .gqm-row .cell i{width:12px;height:12px;border-radius:50%;background:var(--grad);display:block;box-shadow:0 2px 6px rgba(31,140,148,.25);}
  .gqm-row .cell.lo i{width:8px;height:8px;opacity:.55;box-shadow:none;}
  .gqm-row .cell.hi i{width:16px;height:16px;}
  .gqbtn-wrap{text-align:center;margin-top:24px;}
  @media(max-width:640px){.gqm-head,.gqm-row{grid-template-columns:54px 1fr 1fr 1fr;gap:8px;}.gqcard,.panelcard{padding:26px 22px;}}
  .gqcard .illu-matrix{max-width:560px;margin-left:auto;margin-right:auto;}
  .gqcard .illu-matrix .mtx{grid-template-columns:64px repeat(3,1fr);gap:8px;}
  .gqcard .illu-matrix .mtx .mh{font-size:12px;}
  .gqcard .illu-matrix .mtx .mh small{font-size:8px;}
  .gqcard .illu-matrix .mtx .mrh{font-size:12px;}
  .gqcard .illu-matrix .mtx .mcell{height:32px;}
  .gqcard .illu-matrix .mtx .mcell i{width:8px;height:8px;}
  .gqcard .gqbtn-wrap{display:flex;justify-content:center;margin-top:18px;}

  /* ===== rotating dot-globe (hero bg) ===== */
  .globe-cv{position:absolute; inset:0; width:100%; height:100%; z-index:1; pointer-events:none;}
  @media (max-width:861px){.globe-cv{opacity:.62;}}

  /* ===== unify background: remove section color seams ===== */
  body{background:linear-gradient(180deg,#F4FBF9 0%,#EAF6F0 100%);background-attachment:scroll;}
  .hero{background:transparent;}
  .hero::after{display:none;}
  .band-mint{background:transparent;}
  .cta{background:transparent;}

  /* ===== header blends into hero (no color line) ===== */
  header{background:rgba(244,251,249,.72);border-bottom:none;box-shadow:none;}
  /* ===== balance hero columns: device vertically centered ===== */
  .hero-grid{align-items:center;}

  /* ===== hero now single-column (device moved out) ===== */
  .hero-grid{grid-template-columns:minmax(0,660px);}
  /* ===== relocated device showcase (under 'Fit Track の分析ロジック') ===== */
  .device-showcase{max-width:544px;margin:6px auto 2px;}
  .device-showcase .device{max-width:100%;margin:0 auto;}
  .device-showcase .hero-under{display:flex;justify-content:center;}
  .device-showcase .hero-note{justify-content:center;margin-top:15px;}

  /* ===== hero lead quote (standalone line) ===== */
  .lead .lead-q{display:block;margin-bottom:9px;font-family:var(--fh);font-weight:700;color:var(--ink);font-size:1.04em;}

  /* ===== hero logo removed: headline enlarged to single line ===== */
  .hero-grid{grid-template-columns:1fr;}
  .hero-tag{font-size:clamp(27px,3.7vw,48px);line-height:1.24;margin:6px 0 0;}
  .hero-tag .lvi{font-size:clamp(21px,3vw,38px);}
  .hero .lead{max-width:600px;}
  @media (max-width:680px){.hero-tag{font-size:clamp(24px,7vw,34px);}}

  /* ===== natural JP line-breaking in hero lead ===== */
  .lead .nb{white-space:nowrap;}

  /* ===== widen hero lead to honor explicit line breaks ===== */
  .hero .lead{max-width:880px;}

  /* ===== VI hero headline = same size as JA; keep accent phrase intact ===== */
  .hero-tag .lvi{font-size:1em;}
  .hero-tag .accent{white-space:nowrap;}

  /* ===== hero lead body: a bit more gray ===== */
  .hero .lead{color:#6A7470;}

  /* ===== remove hero blobs (caused a faint tone seam at hero bottom) ===== */
  .hero .blob{display:none;}

  /* ===== restore 2-col hero: text left, report right, globe left ===== */
  .hero-grid{grid-template-columns:1.12fr .88fr;align-items:center;}
  .hero-tag{font-size:clamp(26px,3.4vw,46px);}
  .herodev{max-width:480px;margin-left:auto;}
  .herodev .device{max-width:100%;}
  .herodev .hero-under{display:flex;justify-content:flex-start;}
  .herodev .hero-note{justify-content:flex-start;margin-top:14px;}
  @media (max-width:900px){.hero-grid{grid-template-columns:1fr;}.herodev{margin:18px auto 0;}.hero-grid > .reveal:not(.herodev){text-align:center;}.hero-grid > .reveal:not(.herodev) .lead{margin-left:auto;margin-right:auto;}.hero-cta{justify-content:center;}}

  :root{ --logo:url("/wp-content/uploads/2026/07/fittrack-logo.png"); }
  /* official Fit Track wordmark (single embed, reused) */
  .ftlogo{background:var(--logo) left center/contain no-repeat; aspect-ratio:646 / 137; display:block;}
  .brand .ftlogo.brand-logo{height:30px;}
  .servicename .ftlogo.hero-logo{width:clamp(150px,20vw,212px);background-position:left center;margin:0 0 4px;}
  footer .brand .ftlogo.foot-logo{height:34px;}
  .pill.pill-logo{background:#fff;padding:5px 12px;box-shadow:0 2px 8px rgba(20,90,82,.14);}
  .pill.pill-logo .ftlogo.pill-logo-img{height:13px;background-position:center;}
  @media (max-width:560px){ .brand .ftlogo.brand-logo{height:26px;} }
  .step-c .sn-row{display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:14px;}
  .step-c .sn-row .sn{margin-bottom:0;}
  .opt-badge{display:inline-flex; align-items:center; font-family:var(--fh); font-weight:800; font-size:10.5px; color:#DD8836; background:#FCF3EA; border:1.4px solid #ECBB88; border-radius:999px; padding:4px 12px; letter-spacing:.03em; box-shadow:0 2px 6px rgba(221,136,54,.12);}
  /* ===== executive-symptoms clean list ===== */
  .symlist{max-width:940px; margin:32px auto 0; display:flex; flex-direction:column; gap:12px;}
  .syrow{display:grid; grid-template-columns:34px 1fr; gap:14px; align-items:start; background:#fff; border:1px solid var(--line); border-radius:16px; padding:15px 18px; box-shadow:var(--shadow-soft);}
  .syno{width:30px; height:30px; border-radius:9px; background:var(--grad); color:#fff; font-family:var(--fh); font-weight:900; font-size:14px; display:flex; align-items:center; justify-content:center; margin-top:2px;}
  .sytext{font-family:var(--fb); font-weight:700; font-size:15px; color:var(--ink); line-height:1.55;}
  .symeta{display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:9px;}
  .sygap{font-family:var(--fh); font-weight:700; font-size:11px; color:var(--teal2); background:var(--mint2); border-radius:6px; padding:2px 9px; white-space:nowrap;}
  .syqcd{font-family:var(--fh); font-weight:800; font-size:11px; color:var(--soft); border:1px solid var(--line2); border-radius:6px; padding:2px 9px; white-space:nowrap;}
  .sysvc{margin-left:auto; font-family:var(--fh); font-weight:800; font-size:12px; color:var(--teal); display:inline-flex; align-items:center; gap:6px; white-space:nowrap;}
  .sysvc .ar{color:var(--teal3); font-size:13px;}
  @media (max-width:560px){ .sysvc{margin-left:0;} .syrow{padding:14px 15px;} .sytext{font-size:14px;} }
