  :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;}
  .len{display:none;}
  body.lang-vi .lja{display:none;}
  body.lang-vi .lvi{display:inline;}
  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{color:var(--teal2);}
  .gtext{background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent;}
  .section{padding:98px 0;}
  #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;}
  .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;}

  /* ---------- 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:14px; 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:6px; border:1.5px solid var(--line2); border-radius:999px; padding:5px 10px; background:#fff; cursor:pointer; line-height:0;}
  .langdrop-btn:hover{border-color:var(--teal3);}
  .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;}
  .langdrop.open .ld-chev{transform:rotate(180deg);}
  .langdrop-menu{position:absolute; top:calc(100% + 6px); right: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%,#EFF7FB 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; max-width:480px; margin-left:auto; width:100%;}
  .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,#20A096 0%,#2C85A9 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:22px 26px 22px; overflow:hidden;}
  .device::after{content:""; position:absolute; left:0; right:0; top:0; height:54px;
    background:linear-gradient(180deg, rgba(31,162,148,.13), rgba(31,162,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; margin-right:auto;}
  .device-top .tt small{display:block; font-weight:600; font-size:11px; color:var(--soft); font-family:var(--fb);}
  .device-top .ftbtn{display:inline-flex; align-items:center; flex-shrink:0; border:1.5px solid var(--line2); border-radius:999px; padding:3px 12px; background:#fff; line-height:0; transition:border-color .15s;}
  .device-top .ftbtn:hover{border-color:var(--teal3);}
  .device-top .ftbtn img{display:block; height:24px; width:auto;}
  .device-top .pulse{margin-top:5px; width:74px; height:20px; flex-shrink:0;}
  .ftcol{display:flex; flex-direction:column; align-items:flex-end; gap:8px;}
  .device-top .pulse path{stroke-width:2; vector-effect:non-scaling-stroke;}
  .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:9px; flex:1 1 auto;}
  .dimpair{margin-top:auto; display:flex; flex-direction:column; gap:14px;}
  .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 .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;}
  .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:block; width:fit-content; box-sizing:border-box; text-align:center; min-width:44px; font-family:var(--fh); font-weight:800; font-size:9.5px; padding:2px 8px; border-radius:5px; margin-bottom:0;}
  .device .rsum-txt .rlbl-row{display:flex; align-items:center; gap:7px; margin-bottom:6px;}
  .device .rsum-txt .rlbl-row .minibtn{margin-left:0;}
  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;}
  .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;}
  .globe-cv{position:absolute; inset:0; width:100%; height:100%; z-index:1; pointer-events:none;}
  @media (max-width:861px){.globe-cv{opacity:.62;}}

  /* ---------- 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;}
  .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:22px 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);}}
  @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:7px 16px; 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(21,137,126,.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,#16847A,#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(21,137,126,.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(21,137,126,.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,#16847A,#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);}
  .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);}
  .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;}
  .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:56px; align-items:center; margin:42px 0 0; max-width:none;}
  .aboutus-logo{display:block; width:318px; max-width:40%; height:auto; flex-shrink:0; margin:0 0 0 4px; 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%; align-self:center; margin-left:0; margin-right:0;} }
  .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(40,60,60,.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,#EFF7FB 0%,#F4FBF9 55%,#F6FCFB 100%); position:relative; overflow:hidden;}
  .cta-left{display:flex; flex-direction:column; align-items:center; width:100%; margin:0 auto;}
  .cta-left > .eyebrow{align-self:flex-start;}
  .cta-logo{display:block; width:310px; max-width:88%; height:auto; margin:8px 0 24px; order:2;}
  /* 連絡先ブロック（カード化・中央配置） */
  .cta-info{flex:1; min-width:0; margin:0; display:flex; gap:30px; align-items:stretch; background:none; border:0; border-radius:0; padding:0; box-shadow:none;}
  .cta-body{display:flex; gap:22px; align-items:stretch; 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(31,90,110,.06);}
  .cta-qr img{display:block; width:150px; max-width:86%; height:auto; border-radius:12px; flex-shrink:0;}
  .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;}
  .ci-buttons{display:flex; flex-direction:column; gap:6px; flex:0 0 36%; min-width:0;}
  .ci-buttons .msg-btn{display:flex; align-items:center; gap:11px; width:100%; flex:1 0 auto; text-decoration:none; padding:6px 12px; border-radius:11px; border:1px solid var(--line); background:#fff; transition:transform .15s, box-shadow .15s;}
  .ci-buttons .msg-btn:hover{transform:translateY(-1px); box-shadow:0 6px 16px rgba(31,90,110,.12);}
  .ci-buttons .msg-btn .msg-ic{flex-shrink:0; width:34px; height:34px;}
  .ci-buttons .msg-btn .msg-ic svg{width:34px; height:34px; display:block;}
  .ci-buttons .msg-btn .msg-ic img{width:34px; height:34px; object-fit:contain; display:block;}
  .ci-buttons .msg-btn .msg-ic.ic-soft{background:rgba(45,156,144,.10); border-radius:10px; color:var(--teal); display:flex; align-items:center; justify-content:center;}
  .ci-buttons .msg-btn .msg-ic.ic-soft svg{width:20px; height:20px;}
  .ci-orgs{flex:1; min-width:0; display:flex; flex-direction:column; gap:6px;}
  .org-card{flex:1; background:#fff; border:1px solid var(--line); border-radius:13px; padding:6px 16px; display:flex; flex-direction:column; justify-content:center; gap:3px;}
  .org-card .org-name{font-family:var(--fh); font-weight:800; font-size:12.5px; letter-spacing:.05em; color:var(--ink);}
  .org-card .ci-office{align-items:flex-start;}
  .org-card .org-web{display:flex; align-items:center; gap:12px; text-decoration:none; min-width:0;}
  .org-card .org-web .org-web-url{font-size:13px; font-weight:600; color:var(--teal2); word-break:break-all; line-height:1.3;}
  .org-card .org-web:hover .org-web-url{text-decoration:underline;}
  .org-card .org-web:hover .ci-ic{background:rgba(45,156,144,.18); color:var(--teal2);}
  .ci-buttons .msg-btn .msg-tx{display:flex; flex-direction:column; line-height:1.2; min-width:0;}
  .ci-buttons .msg-btn .msg-tx b{font-family:var(--fh); font-weight:800; font-size:13.5px; color:var(--ink);}
  .ci-buttons .msg-btn .msg-tx small{font-size:11.5px; color:var(--ink2); overflow-wrap:anywhere;}
  .cta-info .ci-top{display:flex; flex-wrap:wrap; align-items:center; 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(45,156,144,.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(45,156,144,.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:14px; flex:1; min-width:0;}
  .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.3;}
  .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:0; flex-direction:column; align-items:stretch; gap:12px;}
    .cta-info .ci-top{gap:10px 16px;}
    .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,#A7E0D5,transparent 68%); top:-150px; left:-100px;}
  .cta .blob.c2{width:380px; height:380px; background:radial-gradient(circle,#A6D6EC,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,162,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-note{display:block; width:100%; margin-top:4px; font-size:11.5px; color:var(--soft); line-height:1.6;}
  .duo-note{position:relative;}
  .duo-note .dn-sum{font-size:13px; color:var(--ink2); line-height:1.7; margin:0;}
  .duo-note .dn-body{display:none; margin-top:12px;}
  .duo-note.open .dn-body{display:block; animation:dnfade .32s ease both;}
  .duo-note.open .dn-sum{display:none;}
  @keyframes dnfade{from{opacity:0; transform:translateY(-4px);} to{opacity:1; transform:none;}}
  .dn-toggle{margin-top:12px; display:inline-flex; align-items:center; gap:6px; background:#fff; border:1px solid var(--line);
    border-radius:999px; padding:7px 15px; font-family:var(--fb); font-size:12.5px; font-weight:700; color:var(--teal2);
    cursor:pointer; transition:background .2s,border-color .2s,color .2s;}
  .dn-toggle:hover{background:var(--teal); border-color:var(--teal); color:#fff;}
  .dn-toggle svg{width:12px; height:12px; transition:transform .25s;}
  .duo-note.open .dn-toggle svg{transform:rotate(180deg);}
  .dn-less{display:none;}
  .duo-note.open .dn-more{display:none;}
  .duo-note.open .dn-less{display:inline;}
  .foot-bot{border-top:1px solid var(--line2); padding:6px 0; display:flex; justify-content:center; text-align:center; flex-wrap:wrap; gap:2px; font-size:12px; 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;}
    #problem{padding-top:33px;}
    #approach{padding-top:33px;}
    #packages{padding-bottom:33px;}
    .hero-grid{grid-template-columns:1fr; gap:36px; padding:48px 0 30px;}
    /* narrow: center hero text (Fit Track風) */
    .hero-grid > .reveal:not(.hr){text-align:center;}
    .hero-grid > .reveal:not(.hr) .lead{margin-left:auto; margin-right:auto;}
    .hero-cta{justify-content:center;}
    .hr{max-width:480px; margin:0 auto;}
    .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(21,137,126,.16); transition:transform .15s, box-shadow .15s, background .15s;}
  .logic-btn:hover{transform:translateY(-1px); box-shadow:0 7px 16px rgba(21,137,126,.24); background:#F4FBF9;}
  .logic-btn svg{width:13px; height:13px; flex-shrink:0;}
  .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;}
  /* ===== 相談予約(booking) modal ===== */
  .demo-card{max-width:620px; margin:0 auto; background:#fff; border:1px solid var(--line2); border-radius:22px; padding:34px 38px; box-shadow:var(--shadow-soft);}
  .demo-lead{text-align:center; max-width:560px; margin:14px auto 30px; color:var(--ink2); font-size:14.5px; line-height:1.7;}
  .pref-row{display:grid; grid-template-columns:74px 1fr 1fr; gap:9px; align-items:center; margin-bottom:9px;}
  .pref-row .pref-lab{font-family:var(--fh); font-weight:800; font-size:12.5px; color:var(--teal2); white-space:nowrap;}
  .pref-row input, .pref-row select{width:100%; margin:0;}
  .book-note{font-size:12px; color:var(--soft); margin:6px 0 0; line-height:1.6;}
  .demo-card .field select{width:100%; font-family:inherit; font-size:14.5px; color:var(--ink); padding:12px 40px 12px 15px; border:1.6px solid var(--line2); border-radius:12px; background-color:#FBFEFD; box-sizing:border-box; cursor:pointer; -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; transition:border-color .2s, box-shadow .2s;}
  .demo-card .field select:focus{outline:0; border-color:var(--teal3); box-shadow:0 0 0 3px rgba(31,162,148,.14);}
  @media (min-width:861px){ .demo-card .field select{font-size:12px; padding:8px 40px 8px 11px; border-radius:9px; background-position:right 12px center;} }
  @media (max-width:980px){ .demo-card{padding:24px 22px; border-radius:18px;} .demo-lead{font-size:13px; margin:10px auto 22px;} .pref-row{grid-template-columns:58px 1fr 1fr; gap:6px;} }
  @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-body{flex:1; overflow-y:auto; -webkit-overflow-scrolling:touch; padding:46px 0 72px;}
  @media (max-width:980px){ .lo-bar{padding:11px 18px;} .lo-title{font-size:13.5px;} .lo-body{padding:30px 0 56px;} }

  /* ===== CFC feedback revisions ===== */
  .brand .brand-sub{display:block; font-family:var(--fb); font-weight:700; font-size:11.5px; color:var(--ink2); letter-spacing:.02em; margin-top:2px; white-space:nowrap;}
  .brand .brandtext{line-height:1.15;}
  .chips{flex-direction:column; gap:13px; align-items:stretch;}
  .chip-group{width:100%;}
  .chip-group-label{display:inline-flex; align-items:center; gap:8px; font-family:var(--fh); font-weight:800; font-size:12.5px; letter-spacing:.08em; color:var(--teal2); margin:0 0 6px;}
  .chip-group-label::before{content:""; width:6px; height:6px; border-radius:50%; background:var(--teal3);}
  .chip-row{display:flex; flex-wrap:wrap; gap:8px;}
  .duo-connect{margin:22px auto 0; max-width:840px; text-align:center; font-family:var(--fh); font-weight:700; font-size:14.5px; line-height:1.72; color:var(--ink2);}
  .cta-form{width:100%; max-width:640px; margin-top:18px; background:rgba(255,255,255,.72); border:1px solid var(--line); border-radius:18px; padding:28px 34px 30px; box-shadow:0 10px 30px rgba(31,90,110,.06);}
  .cta-form .cf-title{font-family:var(--fh); font-weight:800; font-size:17px; color:var(--ink); margin:0 0 16px;}
  .cf-grid{display:grid; grid-template-columns:1fr 1fr; gap:14px 18px;}
  .cf-field{display:flex; flex-direction:column; gap:6px; min-width:0;}
  .cf-field.cf-wide{grid-column:1 / -1;}
  .cf-lb{font-family:var(--fh); font-weight:700; font-size:12.5px; color:var(--ink2);}
  .cf-field input,.cf-field textarea{font-family:var(--fb); font-size:14px; color:var(--ink); background:#fff; border:1.5px solid var(--line2); border-radius:10px; padding:10px 13px; width:100%; transition:border-color .2s, box-shadow .2s;}
  .cf-field input:focus,.cf-field textarea:focus{outline:none; border-color:var(--teal3); box-shadow:0 0 0 3px rgba(31,162,148,.14);}
  .cf-field textarea{resize:vertical; min-height:92px; line-height:1.6;}
  .cf-submit{margin-top:18px; width:100%;}
  /* contact form — field style (matches Fit Track form) */
  .cta-form .cf-fields{display:flex; flex-direction:column; gap:0;}
  .cta-form .field{margin-bottom:14px;}
  .cta-form .field:last-child{margin-bottom:0;}
  .cta-form .field label{display:block; font-family:var(--fh); font-size:12.5px; font-weight:800; color:var(--ink2); margin-bottom:6px;}
  .cta-form .field input, .cta-form .field select, .cta-form .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; box-sizing:border-box;}
  .cta-form .field input:focus, .cta-form .field select:focus, .cta-form .field textarea:focus{outline:0; border-color:var(--teal3); box-shadow:0 0 0 3px rgba(31,162,148,.14);}
  .cta-form .field textarea{resize:vertical; min-height:92px; line-height:1.6;}
  .cta-form .field select{-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;}
  .cta-form .chkgrid{display:grid; grid-template-columns:1fr 1fr; gap:9px;}
  .cta-form .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;}
  .cta-form .chk:hover{border-color:var(--teal3);}
  .cta-form .chk input{width:17px; height:17px; accent-color:var(--teal); cursor:pointer; flex-shrink:0;}
  .cta-form .chk.on{border-color:var(--teal3); background:#F4FBF9;}
  .req{color:#DC2626;}
  @media (max-width:560px){ .cta-form .chkgrid{grid-template-columns:1fr;} }
  .cf-note{display:flex; align-items:flex-start; gap:8px; margin:13px 0 0; font-size:12.5px; color:var(--ink2); line-height:1.55;}
  .cf-note svg{flex-shrink:0; margin-top:2px; color:var(--teal2);}
  .foot-bot{flex-direction:column;}
  .foot-links{display:flex; gap:24px; flex-wrap:wrap; justify-content:center; margin:0;}
  .foot-links a{font-weight:400; font-size:12px; color:var(--soft); transition:color .2s;}
  .foot-links a:hover{color:var(--teal2);}
  @media (max-width:560px){ .cf-grid{grid-template-columns:1fr;} .cta-form{padding:20px 18px;} }
