/* ============================================================
   間 (Ma) for Teams — Bright edition
   Direction: bright / friendly / trustworthy B2B SaaS
   (general SaaS design language — original, not a clone)
   ============================================================ */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
::selection{background:var(--accent);color:#fff}

:root{
  --bg:#FFFFFF;
  --bg-soft:#EAF3FD;          /* tinted band */
  --bg-soft2:#F4F8F6;
  --ink:#15293E;
  --ink-soft:#566576;
  --ink-faint:#8A98A6;
  --line:#E4EBF1;
  --line-soft:#EFF3F7;

  --accent:#0E7CF0;           /* friendly blue (original) */
  --accent-d:#0A63C4;
  --accent-ink:#fff;
  --accent-soft:#E2F0FE;
  --mint:#16B8A6;
  --amber:#FFB02E;
  --coral:#FF6B5A;
  --grape:#7B6CF0;

  --maru:"Zen Maru Gothic","Hiragino Maru Gothic ProN",sans-serif;
  --sans:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN",system-ui,sans-serif;

  --maxw:1180px;
  --gut:clamp(20px,5vw,64px);
  --r:22px;
  --r-lg:30px;
  --ease:cubic-bezier(.22,.61,.36,1);
  --shadow:0 18px 50px -24px rgba(20,50,90,.28);
  --shadow-sm:0 8px 24px -14px rgba(20,50,90,.25);
}
/* accent-driven helpers recompute when --accent changes */
:root{
  --accent-soft:color-mix(in oklab,var(--accent) 12%,#fff);
  --accent-d:color-mix(in oklab,var(--accent) 80%,#000);
}

body{
  background:var(--bg);color:var(--ink);font-family:var(--sans);
  line-height:1.75;font-feature-settings:"palt" 1;letter-spacing:.01em;overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gut)}
.maru{font-family:var(--maru)}

/* pill eyebrow */
.eyebrow{
  display:inline-flex;align-items:center;gap:.5em;font-size:13px;font-weight:700;
  color:var(--accent);background:var(--accent-soft);padding:7px 15px;border-radius:999px;letter-spacing:.04em;
}
.eyebrow.mint{color:var(--mint);background:color-mix(in oklab,var(--mint) 13%,#fff)}
.eyebrow.amber{color:#B5760A;background:color-mix(in oklab,var(--amber) 22%,#fff)}

/* buttons */
.btn{
  font-family:var(--maru);font-size:15px;font-weight:700;letter-spacing:.02em;
  padding:15px 28px;border-radius:14px;cursor:pointer;border:2px solid transparent;
  display:inline-flex;align-items:center;gap:.5em;transition:transform .18s var(--ease),background .2s,color .2s,border-color .2s,box-shadow .2s;
  white-space:nowrap;line-height:1.2;
}
.btn:active{transform:translateY(1px)}
.btn--solid{background:var(--accent);color:var(--accent-ink);box-shadow:0 10px 22px -10px color-mix(in oklab,var(--accent) 70%,transparent)}
.btn--solid:hover{background:var(--accent-d);box-shadow:0 14px 26px -10px color-mix(in oklab,var(--accent) 60%,transparent)}
.btn--amber{background:var(--amber);color:#5A3B00;box-shadow:0 10px 22px -10px color-mix(in oklab,var(--amber) 70%,transparent)}
.btn--amber:hover{filter:brightness(.97)}
.btn--ghost{border-color:var(--line);color:var(--ink);background:#fff}
.btn--ghost:hover{border-color:var(--accent);color:var(--accent)}
.btn--lg{font-size:16px;padding:17px 32px}
.btn .ic{width:18px;height:18px}
.btn .arr{transition:transform .22s var(--ease)}
.btn:hover .arr{transform:translateX(3px)}
.btn--block{width:100%;justify-content:center}
.arrbadge{display:inline-grid;place-items:center;width:27px;height:27px;border-radius:50%;
  background:#fff;flex:none;margin-left:6px;transition:transform .22s var(--ease)}
.arrbadge svg{width:15px;height:15px;display:block}
.btn:hover .arrbadge{transform:translateX(3px)}

/* banana image banner over a CTA */
.banana-wrap{position:relative;display:inline-block}
.banana{position:absolute;left:50%;top:-100px;z-index:5;
  width:280px;height:158px;transform:translateX(-50%) rotate(-3deg);
  display:grid;place-items:center;
  animation:banana-bob 3s var(--ease) infinite}
.banana__img{position:absolute;inset:0;width:100%;height:100%;z-index:1;
  --fit:contain;object-fit:contain;
  filter:drop-shadow(0 7px 9px rgba(150,110,0,.4))}
.banana__img::part(empty){background:#FFD23F;border-radius:999px;color:#7A5A00;
  font-family:var(--maru);font-weight:700;font-size:11px}
.banana__img::part(frame){background:transparent}
.banana__t{position:relative;z-index:2;font-family:var(--maru);font-weight:700;
  font-size:17px;color:#2A2300;white-space:nowrap;pointer-events:none;
  transform:translateY(-6px)}
@keyframes banana-bob{0%,100%{transform:translateX(-50%) rotate(-3deg) translateY(0)}50%{transform:translateX(-50%) rotate(-3deg) translateY(-4px)}}
@media (prefers-reduced-motion:reduce){.banana{animation:none}}

/* ---------- TOP UTILITY BAR ---------- */
.topbar{background:#F1F4F7;border-bottom:1px solid var(--line);font-size:12.5px}
.topbar__in{display:flex;align-items:center;justify-content:space-between;height:40px;gap:20px}
.topbar__tag{color:var(--ink-soft);letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topbar__links{display:flex;align-items:center;gap:24px;margin-left:auto}
.topbar__links a{color:var(--ink-soft);transition:color .2s}
.topbar__links a:not(.topbar__login):hover{color:var(--accent)}
.topbar__login{display:inline-flex;align-items:center;gap:6px;font-weight:700;color:var(--ink);
  padding:4px 2px;transition:color .2s,transform .2s var(--ease)}
.topbar__login svg{width:15px;height:15px;transition:transform .22s var(--ease)}
.topbar__login:hover{color:var(--accent)}
.topbar__login:hover svg{transform:translateX(3px)}
@media (max-width:760px){
  .topbar{display:none}
  .foot__login{display:none !important}
}

/* ---------- NAV ---------- */
.nav{position:sticky;top:0;z-index:50;background:color-mix(in oklab,#fff 84%,transparent);
  backdrop-filter:saturate(150%) blur(14px);border-bottom:1px solid transparent;transition:.3s}
.nav.scrolled{border-bottom-color:var(--line);box-shadow:0 6px 20px -16px rgba(20,50,90,.4)}
.nav__in{display:flex;align-items:center;justify-content:space-between;height:58px;gap:24px}
.brand{display:flex;align-items:center;gap:.5em;font-family:var(--maru);font-weight:700}
.brand .mark{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;
  background:var(--accent);color:#fff;font-size:22px}
.brand .name{font-size:20px;letter-spacing:.02em;white-space:nowrap}
.brand .name small{font-size:12px;color:var(--ink-faint);margin-left:4px;font-weight:500}
.brand__logo{display:block;width:156px;height:44px}
.brand__logo::part(empty){background:var(--accent-soft);border:1.5px dashed color-mix(in oklab,var(--accent) 45%,#fff);border-radius:10px;color:var(--accent);font-family:var(--maru);font-weight:700;font-size:12px}
.brand__logo::part(frame){border-radius:10px;background:transparent;border:0;box-shadow:none}
.nav__links{display:flex;align-items:center;gap:30px;margin-left:auto}
.nav__links a{font-size:14.5px;font-weight:500;color:var(--ink-soft);transition:color .2s}
.nav__links a:hover{color:var(--accent)}
.nav__ext{display:inline-flex;align-items:center;gap:5px}
.nav__ext svg{width:15px;height:15px;flex:none}
.nav__cta{display:flex;align-items:center;gap:12px}
.nav__cta .btn{padding:11px 20px;font-size:14px;border-radius:12px}

/* ---------- HERO ---------- */
.hero{position:relative;padding-top:clamp(40px,6vw,72px);padding-bottom:clamp(40px,6vw,80px);overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(40vw 40vw at 88% 0%,var(--accent-soft),transparent 70%),
    radial-gradient(34vw 34vw at 4% 96%,color-mix(in oklab,var(--mint) 16%,#fff),transparent 70%)}
.hero__grid{position:relative;z-index:2;display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(28px,4vw,56px);align-items:center}
.hero h1{font-family:var(--maru);font-weight:700;font-size:clamp(34px,5vw,60px);line-height:1.28;letter-spacing:.01em;margin:20px 0 0;text-wrap:balance}
.hero h1 .hl{position:relative;color:var(--accent);white-space:nowrap}
.hero h1 .hl::after{content:"";position:absolute;left:-2px;right:-2px;bottom:.06em;height:.42em;
  background:color-mix(in oklab,var(--amber) 55%,transparent);z-index:-1;border-radius:4px}
.hero__sub{margin-top:22px;font-size:clamp(15px,1.4vw,18px);color:var(--ink-soft);line-height:1.95;max-width:32em}
.hero__cards{margin-top:30px;display:flex;flex-wrap:wrap;gap:14px}
.hcta{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:var(--r);
  padding:14px 16px 14px 14px;box-shadow:var(--shadow-sm);transition:transform .2s var(--ease),box-shadow .2s}
.hcta:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.hcta__ic{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;flex:none;color:#fff}
.hcta__ic.b{background:var(--accent)}.hcta__ic.a{background:var(--amber);color:#5A3B00}
.hcta__t{display:flex;flex-direction:column;line-height:1.4}
.hcta__t small{font-size:12px;color:var(--ink-faint)}
.hcta__t strong{font-family:var(--maru);font-size:15px}
.hero__note{margin-top:18px;font-size:13px;color:var(--ink-faint);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.hero__note b{color:var(--accent);font-weight:700;white-space:nowrap}

/* hero visual : product collage */
.collage{position:relative;min-height:440px}
.float{position:absolute;border-radius:50%;filter:blur(.3px)}
.float.d1{width:70px;height:70px;background:var(--amber);opacity:.85;top:-6px;right:18%;animation:bob 6s var(--ease) infinite}
.float.d2{width:40px;height:40px;background:var(--mint);top:30%;left:-12px;animation:bob 7s var(--ease) infinite .6s}
.float.d3{width:22px;height:22px;background:var(--coral);bottom:8%;right:6%;animation:bob 5.5s var(--ease) infinite .3s}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}

/* value section image (3 cards統合) */
.vals-media{margin-top:clamp(34px,4vw,52px)}
.value-img{display:block;width:100%;height:clamp(280px,38vw,460px);
  filter:drop-shadow(0 24px 44px rgba(20,50,90,.16))}
.value-img::part(empty){background:#fff;border:1.5px dashed var(--line-strong);border-radius:20px;color:var(--ink-faint);
  font-family:var(--maru);font-weight:700;font-size:14px}

/* hero : full-bleed background image variant */
.hero--full{padding:0;height:600px;min-height:0;display:flex;align-items:center;overflow:hidden}

/* ---------- clients (実績ロゴ marquee) ---------- */
.clients{background:#fff;border-bottom:1px solid var(--line);padding:40px 0 46px;overflow:hidden}
.clients__head{text-align:center;margin-bottom:30px;padding-inline:var(--gut)}
.clients__k{font-family:var(--maru);font-weight:700;font-size:clamp(24px,3.2vw,38px);line-height:1.32;color:var(--ink-faint)}
.clients__k em{color:var(--accent);font-style:normal;font-size:1.22em}
.clients__s{font-size:13px;color:var(--ink-faint);margin-top:6px}
.clients__track{position:relative;-webkit-mask:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.clients__mq{display:flex;width:max-content;will-change:transform}
.clients__group{display:flex;flex:none;gap:54px;padding-right:54px}
@keyframes clients-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:no-preference){.clients__mq{animation:clients-scroll 42s linear infinite}}
.clients__track:hover .clients__mq{animation-play-state:paused}
.clogo{display:inline-flex;align-items:center;gap:9px;font-family:var(--maru);font-weight:700;font-size:22px;white-space:nowrap;color:var(--ink)}
.clogo .mk{width:26px;height:26px;border-radius:50%;flex:none;display:grid;place-items:center;color:#fff;font-size:14px}
.hero--full::before{display:none}
.hero__bg{position:absolute;inset:0;z-index:0}
.hero__bg image-slot{display:block;width:100%;height:100%}
.hero__bgscrim{display:none}
.hero--full .wrap{position:relative;z-index:2;width:100%;pointer-events:none}
.hero--full .hero__copy{max-width:640px;pointer-events:auto}
.hero--full h1{text-shadow:none}
.hero--full .hero__sub{text-shadow:none}
.hero--full .hero__note{text-shadow:none}
.hero--full h1,.hero--full .hero__sub{color:#fff}
.hero--full .hero__sub{color:rgba(255,255,255,.86)}
.hero--full .hero__note{color:rgba(255,255,255,.72)}
.hero--full .hero__note b{color:#fff}
.hero--full .hero__actions{margin-top:30px;display:flex;flex-wrap:wrap;gap:14px}
.hero--full .hero__actions .btn{box-shadow:0 14px 30px -14px rgba(0,0,0,.55)}

/* hero media : user image + overlaid CTA */
.hero__media{position:relative;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow);background:var(--bg-soft)}
.hero__img{display:block;width:100%;height:clamp(360px,42vw,500px)}
.hero__scrim{position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(to top,rgba(8,24,40,.62) 0%,rgba(8,24,40,.18) 34%,transparent 60%)}
.hero__overlay{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:clamp(18px,2.4vw,28px);
  display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.hero__overlay .btn{box-shadow:0 12px 28px -12px rgba(0,0,0,.5)}
.btn--onimg{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.55);color:#fff;backdrop-filter:blur(6px)}
.btn--onimg:hover{background:rgba(255,255,255,.28);border-color:#fff;color:#fff}
.hero__tagline{position:absolute;left:clamp(18px,2.4vw,28px);top:clamp(18px,2.4vw,28px);z-index:2;
  font-family:var(--maru);font-weight:700;color:#fff;font-size:clamp(15px,1.5vw,19px);
  text-shadow:0 2px 12px rgba(0,0,0,.45);max-width:16em;line-height:1.5}

/* ---------- App mock cards (browser + phone) ---------- */
.win{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);overflow:hidden}
.win__bar{display:flex;align-items:center;gap:7px;padding:13px 16px;border-bottom:1px solid var(--line-soft);background:var(--bg-soft2)}
.win__bar i{width:11px;height:11px;border-radius:50%;background:#D6DEE6;display:block}
.win__bar i:nth-child(1){background:#FF6B5A}.win__bar i:nth-child(2){background:#FFB02E}.win__bar i:nth-child(3){background:#16B8A6}
.win__body{padding:20px}
.collage .win{position:absolute;top:14px;left:0;right:36px;z-index:2}
.collage .phonecard{position:absolute;right:-6px;bottom:-6px;z-index:3;width:172px;
  background:#fff;border:1px solid var(--line);border-radius:26px;box-shadow:var(--shadow);padding:9px}
.collage .badge-no1{position:absolute;left:-10px;top:38%;z-index:4}

/* dashboard innards */
.dash{display:flex;flex-direction:column;gap:14px}
.dash__row{display:flex;justify-content:space-between;align-items:center}
.dash__title{font-family:var(--maru);font-weight:700;font-size:15px}
.dash__pill{font-size:11px;font-weight:700;color:var(--mint);background:color-mix(in oklab,var(--mint) 14%,#fff);padding:4px 9px;border-radius:999px}
.dash__stat{display:flex;align-items:flex-end;gap:8px}
.dash__big{font-family:var(--maru);font-weight:700;font-size:34px;line-height:1;color:var(--ink)}
.dash__up{font-size:12px;font-weight:700;color:var(--mint);margin-bottom:4px}
.bars{display:flex;align-items:flex-end;gap:10px;height:92px;padding-top:6px}
.bars span{flex:1;border-radius:7px 7px 3px 3px;background:var(--accent-soft);position:relative}
.bars span::after{content:"";position:absolute;left:0;right:0;bottom:0;border-radius:7px 7px 3px 3px;
  background:var(--accent);height:var(--h,40%)}
.legend{display:flex;gap:14px;font-size:11px;color:var(--ink-faint)}
.legend i{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:5px;vertical-align:-1px}

/* phone innards */
.pscr{border-radius:19px;background:linear-gradient(180deg,var(--accent-soft),#fff 60%);padding:16px 13px;min-height:240px;display:flex;flex-direction:column;gap:10px}
.pscr__lab{font-size:10px;font-weight:700;letter-spacing:.16em;color:var(--accent);text-align:center}
.pscr__ring{width:108px;height:108px;margin:6px auto 4px;position:relative}
.pscr__ring b{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--maru);font-weight:700;font-size:24px}
.pscr__task{text-align:center;font-family:var(--maru);font-weight:700;font-size:13px}
.pscr__btn{margin-top:auto;text-align:center;background:var(--accent);color:#fff;font-family:var(--maru);font-weight:700;font-size:12px;padding:10px;border-radius:11px}

/* No.1 round badge */
.badge-no1{width:96px;height:96px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-content:center;text-align:center;
  box-shadow:var(--shadow);border:3px solid #fff;line-height:1.25;transform:rotate(-8deg)}
.badge-no1 small{font-size:9px;font-weight:700;letter-spacing:.08em;opacity:.9}
.badge-no1 b{font-family:var(--maru);font-size:26px;display:block;margin:1px 0}
.badge-no1 em{font-size:9px;font-style:normal;opacity:.9}

/* ---------- stats (実績数値) ---------- */
.stats{background:#fff;padding-block:clamp(48px,6vw,80px)}
.stats__in{display:grid;grid-template-columns:repeat(3,1fr);align-items:center}
.stat{text-align:center;padding-inline:clamp(12px,2vw,30px)}
.stat+.stat{border-left:1px solid var(--line)}
.stat__label{font-family:var(--maru);font-weight:700;font-size:clamp(18px,2vw,24px);color:var(--accent)}
.stat__num{display:flex;align-items:baseline;justify-content:center;gap:8px;margin:14px 0 16px;line-height:1}
.stat__big{font-family:var(--maru);font-weight:700;font-size:clamp(56px,8vw,104px);padding-right:.1em;
  background:linear-gradient(135deg,#16b9a8,var(--accent));-webkit-background-clip:text;background-clip:text;color:transparent}
.stat__unit{font-family:var(--maru);font-weight:700;font-size:clamp(26px,3.4vw,44px);
  background:linear-gradient(135deg,#16b9a8,var(--accent));-webkit-background-clip:text;background-clip:text;color:transparent}
.stat__note{font-size:clamp(12px,1.2vw,15px);color:#9aa7b3;line-height:1.7}
.stats__disc{font-size:13px;color:#9aa7b3;line-height:1.7;text-align:right;margin-top:clamp(20px,3vw,36px)}

/* ---------- solve (all-in-one) ---------- */
.solve{border-block:1px solid var(--line);background:#f3f8f9;padding-block:clamp(22px,3vw,36px)}
.solve__in{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(28px,5vw,64px);align-items:center;text-align:left}
.solve__body{order:1}
.solve__cols{order:2}
.solve__img{display:block;width:100%;height:clamp(160px,18vw,210px);
  filter:drop-shadow(0 24px 40px rgba(20,50,90,.18))}
.solve__img::part(empty){background:#fff;border:1.5px dashed var(--line-strong);border-radius:18px;color:var(--ink-faint);
  font-family:var(--maru);font-weight:700;font-size:13px}

/* video player (solve media) */
.vid{position:relative;width:100%;border-radius:18px;overflow:hidden;background:#0E2233;
  filter:drop-shadow(0 24px 40px rgba(20,50,90,.18))}
.vid__poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.vid__scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,24,40,.12),rgba(8,24,40,.42))}
.vid__frame{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.vid__el{display:block;width:100%;height:100%;object-fit:cover;background:#000}
.vid__ph{position:absolute;inset:0;border:0;cursor:pointer;color:#fff;text-align:center;padding:18px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;
  background:transparent;font-family:var(--sans)}
.vid__play{position:relative;width:64px;height:64px;border-radius:50%;background:rgba(255,255,255,.92);color:var(--accent);
  display:grid;place-items:center;box-shadow:0 10px 26px -10px rgba(0,0,0,.5);transition:transform .2s var(--ease)}
.vid__play svg{width:26px;height:26px;margin-left:3px}
.vid__ph:hover .vid__play{transform:scale(1.08)}
.vid__cap{position:relative;font-family:var(--maru);font-weight:700;font-size:16px;text-shadow:0 1px 8px rgba(0,0,0,.5)}
.vid__hint{font-size:12px;opacity:.85}
.vid.is-playing .vid__ph{display:none}
.vid__yt{position:absolute;right:12px;bottom:12px;z-index:3;font-family:var(--maru);font-weight:700;font-size:12px;
  color:#fff;background:rgba(8,24,40,.55);border:1px solid rgba(255,255,255,.4);border-radius:999px;
  padding:7px 14px;backdrop-filter:blur(6px);transition:background .2s}
.vid__yt:hover{background:rgba(8,24,40,.78)}
.solve__title{font-family:var(--maru);font-weight:700;font-size:clamp(22px,3vw,34px);line-height:1.26;letter-spacing:.01em}
.solve__title b{color:var(--mint)}
.solve__rows{margin-top:0;display:flex;flex-direction:column;gap:18px;text-align:left}
.solve__row{display:flex;align-items:center;gap:20px}
.solve__pill{position:relative;flex:none;display:inline-flex;align-items:center;justify-content:center;text-align:center;
  min-width:9.5em;background:#15293e;color:#fff;font-family:var(--maru);font-weight:700;
  font-size:clamp(15px,1.5vw,18px);padding:11px 22px;border-radius:12px;line-height:1.2;white-space:nowrap;
  box-shadow:0 10px 22px -12px rgba(20,50,90,.55)}
.solve__pilltxt{color:#fff}
.solve__pill::after{content:none}
.solve__benefits{flex:1;min-width:0;white-space:nowrap;font-family:var(--maru);font-weight:700;font-size:clamp(15px,1.5vw,18px);color:var(--ink);line-height:1.55}
.solve__benefits i{font-style:normal;color:var(--ink-faint);font-weight:500;margin:0 5px}

/* solve --geo : flat tinted "solution" section, clipped to a downward point */
.solve--geo{position:relative;
  padding-block:clamp(54px,7vw,100px) calc(clamp(40px,5vw,70px) + 60px);
  background:#d8efee;
  clip-path:polygon(0 0,100% 0,100% calc(100% - 60px),50% 100%,0 calc(100% - 60px))}
.solve--geo .wrap{position:relative;z-index:1}
.solve__chev{display:none}
.solve__intro{text-align:center;max-width:780px;margin:0 auto clamp(28px,4vw,44px)}
.solve__intro .eyebrow{margin-bottom:16px}
.solve--geo .solve__title{font-family:var(--maru);font-weight:700;font-size:clamp(24px,3.3vw,40px);line-height:1.4;letter-spacing:.04em;white-space:nowrap}
.solve__lead{margin-top:14px;color:var(--ink-soft);font-size:clamp(14px,1.3vw,17px);line-height:1.95}
.solve--geo .solve__rows{max-width:680px;margin:0 auto;gap:14px}
.solve--geo .solve__row{justify-content:flex-start;gap:18px;background:rgba(255,255,255,.88);
  border:1px solid rgba(255,255,255,.7);border-radius:14px;padding:14px 20px;box-shadow:0 10px 26px -20px rgba(20,50,90,.4)}

/* ---------- section scaffold ---------- */
section{padding-block:clamp(64px,9vw,116px)}
.shead{text-align:center;max-width:720px;margin-inline:auto}
.shead.left{text-align:left;margin-inline:0}
.shead h2{font-family:var(--maru);font-weight:700;font-size:clamp(26px,3.6vw,42px);line-height:1.35;margin-top:16px;text-wrap:balance}
.shead p{margin-top:16px;color:var(--ink-soft);font-size:clamp(15px,1.3vw,17px)}

/* value props 3-col */
.vals{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:54px}
.vcard{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:34px 28px;box-shadow:var(--shadow-sm);
  transition:transform .2s var(--ease),box-shadow .2s}
.vcard:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.vcard__ic{width:62px;height:62px;border-radius:18px;display:grid;place-items:center;color:#fff;margin-bottom:20px}
.vcard:nth-child(1) .vcard__ic{background:var(--accent)}
.vcard:nth-child(2) .vcard__ic{background:var(--mint)}
.vcard:nth-child(3) .vcard__ic{background:var(--grape)}
.vcard__ic svg{width:30px;height:30px}
.vcard h3{font-family:var(--maru);font-weight:700;font-size:21px;margin-bottom:10px}
.vcard p{color:var(--ink-soft);font-size:14.5px;line-height:1.85}
.vcard ul{list-style:none;margin-top:16px;display:flex;flex-direction:column;gap:8px}
.vcard li{font-size:13.5px;color:var(--ink-soft);padding-left:24px;position:relative}
.vcard li::before{content:"";position:absolute;left:0;top:6px;width:15px;height:15px;border-radius:50%;
  background:var(--accent-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 13l4 4L19 7' fill='none' stroke='%230E7CF0' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/10px no-repeat}

/* showcase (alternating) */
.showcase{background:var(--bg-soft)}
.show{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,72px);align-items:center}
.show+.show{margin-top:clamp(48px,7vw,96px)}
.show--rev .show__media{order:2}
.show__body h3{font-family:var(--maru);font-weight:700;font-size:clamp(22px,2.6vw,32px);line-height:1.4;margin:14px 0 14px}
.show__body p{color:var(--ink-soft);font-size:15.5px;line-height:1.9}
.show__stat{margin-top:22px;display:inline-flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);
  border-radius:18px;padding:16px 22px;box-shadow:var(--shadow-sm)}
.show__stat b{font-family:var(--maru);font-weight:700;font-size:34px;color:var(--accent);line-height:1}
.show__stat span{font-size:13px;color:var(--ink-soft);line-height:1.5}
.show__tags{margin-top:22px;display:flex;flex-wrap:wrap;gap:9px}
.tag{font-size:13px;font-weight:500;color:var(--ink-soft);background:#fff;border:1px solid var(--line);padding:8px 14px;border-radius:999px;transition:.2s}
.tag:hover{border-color:var(--accent);color:var(--accent)}

/* ===== flow (AI商談の仕組み / S-curve story) ===== */
.flow{padding-block:clamp(72px,9vw,128px)}
.flow__head{text-align:left;max-width:680px;margin:0 0 clamp(40px,5vw,70px)}
.flow__head h2{font-family:var(--maru);font-weight:700;font-size:clamp(28px,4vw,46px);line-height:1.4;margin-top:16px;color:#15293e;letter-spacing:.01em}
.flow__head p{margin-top:18px;color:var(--ink-soft);font-size:clamp(15px,1.4vw,18px);line-height:1.9}
.flow__head p b{color:#0f7bf2}

/* ---- snaking gray road + alternating steps ---- */
.road{position:relative}
/* font override : flow section uses Noto Sans */
#road,#road h2,#road h3,#road p,#road span,#road b,#road small,#road div,
#road .fstep__kicker,#road .fmini__t,#road .persona__name,#road .engine,
#road .fchat p,#road .fsum__v,#road .fsum__k,#road .tline,
#road .rnode__badge b,#road .rnode__badge small,
#reasons,#reasons *{
  font-family:"Noto Sans","Hiragino Kaku Gothic ProN",system-ui,sans-serif}
.road__svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;z-index:0;pointer-events:none}
.road__band{fill:none;stroke:#e9ecf5;stroke-width:104;stroke-linecap:round;stroke-linejoin:round}
.rstep{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;
  column-gap:clamp(36px,5vw,96px);align-items:center;min-height:clamp(300px,34vw,400px)}
.rstep+.rstep{margin-top:clamp(36px,5vw,72px)}
/* drop-in photo slot for a step's media */
.rstep-img{display:block;width:100%;height:clamp(220px,24vw,288px);border-radius:18px;
  box-shadow:var(--shadow-sm)}
.rstep-img::part(empty){background:#0f1c30;border:1.5px dashed rgba(255,255,255,.32);
  border-radius:18px;color:#9fb3c8;font-family:var(--maru);font-weight:700;font-size:13px}
.rstep-img::part(frame){border-radius:18px}
#flow-persona{height:auto;aspect-ratio:16/9}
.rstep__media--img{display:block!important;width:100%!important}
.rstep__media--img .rstep-img{width:100%}
.rstep__media--imgv .rstep-img{height:auto;aspect-ratio:3/4;max-width:340px;margin-inline:auto}
.rstep__media--imgsq .rstep-img{height:auto;aspect-ratio:1/1;max-width:420px;margin-inline:auto}
#flow-step2{margin-top:clamp(24px,5vw,60px)}
/* two overlapping landing photos — each same size as STEP1, 2nd overlaps 1st by ~1/3 (diagonal) */
.rstep__media--stack{display:block}
.imgstack{position:relative;width:100%;margin-top:calc(clamp(220px,24vw,288px) * 0.5);min-height:calc(clamp(220px,24vw,288px) * 1.66)}
.imgstack .rstep-img{position:absolute;width:88%;height:clamp(220px,24vw,288px)}
.imgstack__a{top:0;left:0;box-shadow:0 22px 44px -22px rgba(20,50,90,.4)}
.imgstack__b{top:calc(clamp(220px,24vw,288px) * 0.66);right:0;z-index:2;
  box-shadow:0 26px 52px -20px rgba(20,50,90,.5);outline:6px solid #fff}
/* lead row : section heading (left) + STEP 01 (right) */
.rstep--lead{align-items:start}
.rstep--lead .flow__head{grid-column:1;margin:0;max-width:none;align-self:start;padding-top:0}
.rstep--lead .rstep__col{grid-column:2;padding-left:96px;display:flex;flex-direction:column;gap:18px}
.rstep--lead .rstep__col .rstep__media{align-items:flex-start}
.rstep--lead .rstep__badge{top:46px;transform:translate(-50%,-50%)}
.rstep__text{min-width:0}
.rstep__media{min-width:0;display:flex;flex-direction:column;gap:14px}
/* badge sits to the LEFT of the text on right-anchored steps; media goes far side */
.rstep--cr .rstep__text{grid-column:2;padding-left:54px}
.rstep--cr .rstep__media{grid-column:1;grid-row:1;align-items:flex-start}
/* reversed (badge center): text LEFT (aligned with lead heading), media right */
.rstep--cl .rstep__text{grid-column:1;padding-left:0}
.rstep--cl .rstep__media{grid-column:2;padding-left:54px;align-items:flex-start}
.rstep__badge{position:absolute;top:50%;transform:translate(-50%,-50%);z-index:3;
  display:flex;flex-direction:column;align-items:center;gap:10px}
.rstep__dot{order:2;width:11px;height:11px;border-radius:50%;background:#f5c61f;
  box-shadow:0 0 0 4px #fff,0 4px 10px -3px rgba(245,198,31,.8)}
.rstep__badge .rnode__badge{position:static;transform:none;order:1;
  width:66px;height:66px;border-radius:50%;background:#15293e;border:none;
  display:grid;place-content:center;text-align:center;line-height:1;color:#fff;
  box-shadow:0 16px 32px -12px rgba(15,28,48,.55)}
.rstep__badge .rnode__badge small{font-size:9px;font-weight:700;letter-spacing:.14em;color:#f5c61f}
.rstep__badge .rnode__badge b{font-family:var(--maru);font-weight:700;font-size:22px;margin-top:3px;color:#fff}
.fstep__kicker{display:inline-block;font-family:var(--maru);font-weight:700;font-size:13px;letter-spacing:.14em;
  color:#0f7bf2;background:#eef4fd;padding:6px 14px;border-radius:999px}
.fstep__h{font-family:var(--maru);font-weight:700;font-size:clamp(21px,2.5vw,30px);line-height:1.45;color:#15293e;margin:16px 0 12px;text-wrap:balance}
.fstep__desc{color:var(--ink-soft);font-size:15.5px;line-height:1.95;max-width:34em}
.fflow{margin-top:26px;display:flex;flex-direction:column;align-items:center;gap:10px}
.flow__down{color:#c3d2e2;display:grid;place-items:center}
.flow__down svg{width:22px;height:22px}
.persona{display:flex;flex-direction:column;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);
  border-radius:18px;padding:22px 26px;box-shadow:var(--shadow-sm);width:100%;max-width:340px}
.persona__img{width:96px;height:96px;border-radius:50%}
.persona__img::part(empty){background:#0f1c30;color:#9fb3c8;font-family:var(--maru);font-weight:700;font-size:11px}
.persona__img::part(frame){background:#0f1c30}
.persona__name{font-family:var(--maru);font-weight:700;font-size:15px;color:#15293e}
.engine{display:inline-flex;align-items:center;gap:10px;background:linear-gradient(135deg,#15293e,#0f1c30);color:#fff;
  font-family:var(--maru);font-weight:700;font-size:15px;padding:14px 26px;border-radius:14px;
  box-shadow:0 16px 30px -16px rgba(15,28,48,.7)}
.engine__ic{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:rgba(255,255,255,.12);color:#6fd0ff}
.engine__ic svg{width:19px;height:19px}
.fmini{width:100%;max-width:340px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px 20px;box-shadow:var(--shadow-sm)}
.fmini--wide{max-width:380px}
.fmini__t{font-family:var(--maru);font-weight:700;font-size:14px;color:#15293e;margin-bottom:12px}
.ffield{font-size:12.5px;color:var(--ink-faint);background:var(--bg-soft2);border:1px solid var(--line-soft);
  border-radius:8px;padding:9px 12px;margin-bottom:8px}
.fmini__btn{margin-top:4px;text-align:center;font-family:var(--maru);font-weight:700;font-size:13px;color:#fff;
  background:#0f7bf2;border-radius:9px;padding:10px}
.fchat{display:flex;align-items:flex-start;gap:9px;margin-bottom:9px}
.fchat__av{flex:none;width:26px;height:26px;border-radius:50%;background:#15293e;color:#f5c61f;
  font-family:var(--maru);font-weight:700;font-size:12px;display:grid;place-items:center}
.fchat p{font-size:13px;line-height:1.6;color:#15293e;background:#f1f5fa;border-radius:4px 12px 12px 12px;padding:9px 12px}
.fchat--me{justify-content:flex-end}
.fchat--me p{background:#0f7bf2;color:#fff;border-radius:12px 4px 12px 12px}
.fslots{display:flex;gap:8px;margin-top:4px}
.fslots span{flex:1;text-align:center;font-size:12.5px;font-weight:700;color:var(--ink-soft);background:var(--bg-soft2);
  border:1px solid var(--line);border-radius:8px;padding:8px}
.fslots .is-pick{background:#0f7bf2;color:#fff;border-color:#0f7bf2}
.fsum{display:flex;gap:14px;margin-bottom:12px}
.fsum>div{flex:1;background:var(--bg-soft2);border:1px solid var(--line-soft);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:4px}
.fsum__k{font-size:11px;color:var(--ink-faint);font-weight:500}
.fsum__v{font-family:var(--maru);font-weight:700;font-size:22px;color:#15293e;line-height:1}
.fsum__v small{font-size:12px;margin-left:2px}
.tag.def::after{content:"定番";font-size:10px;font-weight:700;color:#fff;background:var(--amber);padding:2px 6px;border-radius:6px;margin-left:7px}

/* checklist mock for showcase media */
.tasklist{display:flex;flex-direction:column;gap:11px}
.tline{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line-soft);border-radius:14px;background:var(--bg-soft2)}
.tline .tk{width:22px;height:22px;border-radius:7px;flex:none;display:grid;place-items:center;background:var(--mint);color:#fff;font-size:12px}
.tline.todo .tk{background:#fff;border:2px solid var(--line)}
.tline .tt{font-size:14px;font-weight:500}
.tline .tm{margin-left:auto;font-size:11px;color:var(--ink-faint)}

/* reasons */
.reasons{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:54px}
.rcard{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:32px 28px;position:relative;box-shadow:var(--shadow-sm)}
.rcard__no{position:absolute;top:-18px;left:28px;width:46px;height:46px;border-radius:14px;display:grid;place-items:center;
  font-family:var(--maru);font-weight:700;font-size:20px;color:#fff;background:var(--accent);box-shadow:var(--shadow-sm)}
.rcard h3{font-family:var(--maru);font-weight:700;font-size:19px;margin:14px 0 10px}
.rcard p{color:var(--ink-soft);font-size:14.5px;line-height:1.85}
.rcard a{display:inline-flex;align-items:center;gap:5px;margin-top:16px;font-size:13.5px;font-weight:700;color:var(--accent)}
.rcard a .arr{transition:transform .2s}.rcard:hover a .arr{transform:translateX(3px)}

/* reasons-a (Option A : 3-col icon cards) */
/* soft-glow background (option ①) */
.reasons-a{background:#f6f9fe}
.reasons-a:not(.reasons-depth)::before,.reasons-a:not(.reasons-depth)::after{content:"";position:absolute;border-radius:50%;
  filter:blur(70px);z-index:0;opacity:.55;pointer-events:none}
.reasons-a:not(.reasons-depth)::before{width:clamp(360px,38vw,560px);aspect-ratio:1;left:-9%;top:-32%;
  background:radial-gradient(circle,rgba(14,124,240,.42),transparent 70%)}
.reasons-a:not(.reasons-depth)::after{width:clamp(380px,40vw,600px);aspect-ratio:1;right:-10%;bottom:-36%;
  background:radial-gradient(circle,rgba(22,184,166,.32),transparent 70%)}
.reasons-a .wrap{position:relative;z-index:1}
.reasons-a .reasons2__title{font-family:"Noto Sans","Hiragino Kaku Gothic ProN",system-ui,sans-serif;font-weight:900}
/* one-point-perspective depth background (ref: outward-expanding rays + goal) */
.reasons-depth{background:#f7faff}
.reasons-depth .depth{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.reasons-depth .reasons2__title{padding-top:8px}
.ra__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;max-width:1000px;margin:0 auto}
.ra-c{background:#fff;border-radius:20px;padding:46px 30px 32px;text-align:center;
  box-shadow:0 20px 44px -28px rgba(20,50,90,.4);display:flex;flex-direction:column;align-items:center}
.ra-c__ic{width:84px;height:84px;border-radius:50%;background:var(--accent-soft);
  display:grid;place-items:center;margin-bottom:22px;position:relative;color:var(--accent)}
.ra-c__ic svg{width:40px;height:40px}
.ra-c__no{position:absolute;top:-6px;right:-6px;width:30px;height:30px;border-radius:50%;
  background:var(--accent);color:#fff;font-family:"Noto Sans",sans-serif;font-weight:900;font-size:15px;
  display:grid;place-items:center;box-shadow:0 6px 14px -5px rgba(14,124,240,.7)}
.ra-c__t{font-family:"Noto Sans","Hiragino Kaku Gothic ProN",system-ui,sans-serif;font-weight:700;
  color:var(--ink);font-size:20px;line-height:1.55;margin-bottom:20px}
.ra-c__t b{color:var(--accent)}
/* each character is its own box so it can be clicked & recolored individually */
.ra-c__t .ch{display:inline-block}
.ra-c__lnk{margin-top:auto;display:inline-flex;align-items:center;gap:11px;white-space:nowrap;
  border:1px solid var(--line);border-radius:999px;padding:9px 11px 9px 20px;
  font-family:"Noto Sans",sans-serif;font-weight:700;font-size:14px;color:var(--ink);background:#fff;
  text-decoration:none;transition:border-color .2s,box-shadow .2s}
.ra-c__lnk:hover{border-color:var(--accent);box-shadow:0 8px 18px -10px rgba(14,124,240,.5)}
.ra-c__lnk .arrbadge{width:26px;height:26px}
.ra-c__lnk .arrbadge svg{width:13px;height:13px}
@media(max-width:780px){.ra__grid{grid-template-columns:1fr;max-width:440px}}

/* reasons2 (stacked numbered cards) */
.reasons2{position:relative;overflow:hidden;background:#eef5f8;padding-block:clamp(56px,7vw,96px)}
.reasons2__ill{position:absolute;top:50%;transform:translateY(-50%);z-index:0;
  width:clamp(180px,18vw,300px);height:62%}
.reasons2__ill--l{left:0}
.reasons2__ill--r{right:0}
.reasons2__ill::part(empty){background:rgba(22,184,166,.06);border:1.5px dashed rgba(22,184,166,.3);color:var(--ink-faint);font-family:var(--maru);font-weight:700;font-size:12px}
.reasons2 .wrap{position:relative;z-index:1}
.reasons2__title{font-family:var(--maru);font-weight:700;text-align:center;color:#15293e;
  font-size:clamp(26px,3.6vw,42px);line-height:1.4;margin-bottom:clamp(34px,4vw,52px)}
.reasons2__stack{max-width:720px;margin-inline:auto;display:flex;flex-direction:column;gap:22px}
.rz{position:relative;background:#fff;border-radius:16px;padding:34px 36px 30px;text-align:center;
  box-shadow:0 18px 40px -26px rgba(20,50,90,.4)}
.rz__no{position:absolute;left:-20px;top:50%;transform:translateY(-50%);
  width:54px;height:54px;border-radius:50%;background:var(--mint);color:#fff;
  display:grid;place-items:center;font-family:var(--maru);font-weight:700;font-size:22px;
  box-shadow:0 10px 20px -8px rgba(22,184,166,.6)}
.rz__t{font-family:var(--maru);font-weight:700;color:#15293e;font-size:clamp(18px,2vw,23px);line-height:1.6}
.rz__t b{color:var(--mint)}
.rz__btn{margin-top:20px;display:inline-flex;align-items:center;gap:12px;white-space:nowrap;
  border:1px solid var(--line);border-radius:999px;padding:10px 12px 10px 22px;
  font-family:var(--maru);font-weight:700;font-size:14px;color:#15293e;background:#fff;
  transition:border-color .2s,box-shadow .2s}
.rz__btn:hover{border-color:var(--mint);box-shadow:0 8px 18px -10px rgba(22,184,166,.5)}
.rz__btn .arrbadge{width:26px;height:26px;background:var(--mint);margin-left:0}
.rz__btn .arrbadge svg{width:14px;height:14px}
.rz__btn:hover .arrbadge{transform:translateX(2px)}
.reasons2__arrow{position:absolute;top:50%;right:clamp(150px,16vw,270px);transform:translateY(-50%);z-index:1;
  width:104px;height:62px;
  background:linear-gradient(90deg,#bcdcff,#7cb8f3);
  clip-path:polygon(0 32%,56% 32%,56% 6%,100% 50%,56% 94%,56% 68%,0 68%)}
.reasons2__arrow::after{content:"";position:absolute;left:-46px;top:50%;transform:translateY(-50%);
  width:46px;border-top:3px dashed #9cc8f5}

/* cases */
.cases{background:var(--bg-soft2);border-block:1px solid var(--line)}
.cgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin-top:50px}
.ccard{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm);
  display:flex;flex-direction:column;transition:transform .2s var(--ease),box-shadow .2s}
.ccard:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.ccard__top{height:150px;display:grid;place-items:center;position:relative;color:#fff}
.ccard:nth-child(1) .ccard__top{background:linear-gradient(135deg,var(--accent),var(--grape))}
.ccard:nth-child(2) .ccard__top{background:linear-gradient(135deg,var(--mint),var(--accent))}
.ccard__logo{font-family:var(--maru);font-weight:700;font-size:22px;letter-spacing:.04em;opacity:.96}
.ccard__q{font-family:var(--maru);font-weight:700;font-size:17px;line-height:1.55;padding:24px 26px 0;text-wrap:pretty}
.ccard__meta{display:flex;gap:16px;padding:16px 26px 24px;margin-top:auto;font-size:12.5px;color:var(--ink-faint)}
.ccard__meta b{color:var(--ink-soft);font-weight:700}

/* pricing */
#pricing, #pricing *{font-family:"Noto Sans","Noto Sans JP",system-ui,sans-serif !important}
/* pricing 2-card comparison */
.plans2{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:50px;align-items:stretch}
.pcard{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;
  box-shadow:0 20px 46px -28px rgba(20,50,90,.4)}
.pcard--pop{box-shadow:0 26px 56px -26px rgba(15,35,62,.55)}
.pcard__head{padding:24px 28px;text-align:center;color:#fff}
.pcard__head h3{font-family:var(--maru);font-weight:700;font-size:clamp(20px,2.2vw,26px);line-height:1.3}
.pcard__head p{font-size:13.5px;margin-top:6px;opacity:.92}
.pcard__head--blue{background:linear-gradient(135deg,var(--accent),var(--mint))}
.pcard__head--navy{background:linear-gradient(135deg,var(--accent),var(--mint))}
.pcard__head--navy p{color:rgba(255,255,255,.95);opacity:1;font-weight:700}
.pcard__inner{padding:24px 26px 28px;display:flex;flex-direction:column;flex:1}
.pcard__price{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:20px}
.pcard__tag{flex:none;font-family:var(--maru);font-weight:700;font-size:12px;color:var(--ink-soft);
  background:var(--bg-soft2);border:1px solid var(--line);border-radius:8px;padding:6px 12px}
.pcard__amt{font-family:var(--maru);font-weight:700;font-size:clamp(28px,3.6vw,40px);color:#15293e;line-height:1}
.pcard__amt small{font-size:15px;margin-left:3px}
.pcard__amt--ask{font-size:clamp(24px,3vw,32px)}
.ptable{border:1px solid var(--line);border-radius:12px;overflow:hidden}
.ptrow{display:grid;grid-template-columns:1fr 1fr;align-items:center;border-bottom:1px solid var(--line-soft)}
.ptrow:last-child{border-bottom:0}
.ptrow:nth-child(even){background:var(--bg-soft2)}
.ptk{display:flex;align-items:center;gap:9px;padding:11px 14px;font-size:13.5px;font-weight:500;color:var(--ink);
  border-right:1px solid var(--line-soft)}
.ptk svg{width:18px;height:18px;flex:none;color:var(--accent);opacity:.85}
.ptv{padding:11px 14px;text-align:center;font-size:13.5px;font-weight:600;color:var(--ink-soft)}
.ptv--ok{color:#1f6fe0;font-size:17px;font-weight:700}
.ptv--no{color:var(--ink-faint)}
.prec{margin-top:18px;margin-bottom:22px;border-radius:12px;padding:16px 18px}
.prec--blue{background:var(--accent-soft)}
.prec--gold{background:var(--accent-soft)}
.prec__t{font-family:var(--maru);font-weight:700;font-size:13px;text-align:center;margin-bottom:12px}
.prec--blue .prec__t{color:var(--accent-d)}
.prec--gold .prec__t{color:var(--accent-d)}
.prec__list{list-style:none;display:flex;flex-direction:column;gap:8px}
.prec__list--2col{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px}
.prec__list--2col li:last-child:nth-child(odd){grid-column:1 / -1}
.prec__list li{position:relative;padding-left:22px;font-size:13px;color:var(--ink);font-weight:500}
.prec__list li::before{content:"";position:absolute;left:0;top:3px;width:14px;height:14px;border-radius:50%;
  background:center/9px no-repeat;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 13l4 4L19 7' fill='none' stroke='%231f6fe0' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.prec--gold .prec__list li::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 13l4 4L19 7' fill='none' stroke='%231f6fe0' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.pcta{margin-top:auto;display:flex;align-items:center;justify-content:center;gap:10px;
  font-family:var(--maru);font-weight:700;font-size:16px;color:#fff;padding:16px;border-radius:12px;
  transition:transform .18s var(--ease),box-shadow .2s,filter .2s}
.pcta:active{transform:translateY(1px)}
.pcta--blue{background:linear-gradient(135deg,var(--accent),var(--mint));box-shadow:0 12px 24px -12px color-mix(in oklab,var(--accent) 70%,transparent)}
.pcta--gold{background:linear-gradient(135deg,var(--accent),var(--mint));color:#fff;box-shadow:0 12px 24px -12px color-mix(in oklab,var(--accent) 70%,transparent)}
.pcta:hover{filter:brightness(1.05);box-shadow:0 16px 30px -12px rgba(20,50,90,.5)}
.pcta__arr{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#fff}
.pcta--blue .pcta__arr svg{stroke:var(--accent)}
.pcta--gold .pcta__arr svg{stroke:var(--accent)}
.pcta--blue .pcta__arr{background:#fff}
.pcta__arr svg{width:14px;height:14px}
.pcta:hover .pcta__arr{transform:translateX(2px);transition:transform .2s}
.pribbon{position:absolute;top:14px;left:14px;z-index:3;width:64px;height:64px;border-radius:50%;
  background:radial-gradient(circle at 50% 40%,#ffd86b,#e8a200);color:#5a3b00;
  display:grid;place-items:center;text-align:center;line-height:1;
  box-shadow:0 6px 14px -4px rgba(180,130,0,.7);border:2px solid #fff3cf}
.pribbon b{font-family:var(--maru);font-weight:700;font-size:18px}
.pribbon i{font-style:normal;font-size:10px;font-weight:700;display:block;margin-top:1px;order:-1}
.pnote{margin-top:30px;display:flex;align-items:center;gap:18px;justify-content:center;
  background:var(--bg-soft2);border:1px solid var(--line);border-radius:16px;padding:20px 28px}
.pnote__ic{flex:none;width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--mint));display:grid;place-items:center}
.pnote__ic svg{width:24px;height:24px}
.pnote p{font-family:var(--maru);font-weight:700;font-size:clamp(15px,1.6vw,19px);color:#15293e}
.pnote b{color:var(--accent);font-size:1.2em}
.pfeatures{margin-top:26px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px 28px;box-shadow:0 16px 40px -30px rgba(20,50,90,.4)}
.pfeatures__t{font-family:var(--maru);font-weight:700;font-size:14px;color:var(--ink-soft);text-align:center;letter-spacing:.04em;margin-bottom:16px}
.pfeatures__list{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px}
.pfeatures__list li{display:flex;align-items:center;gap:9px;font-family:var(--maru);font-weight:700;font-size:clamp(14px,1.4vw,16px);color:#15293e}
.pfeatures__list svg{flex:none;width:20px;height:20px;color:var(--mint)}
@media(max-width:560px){.pfeatures__list{flex-direction:column;align-items:flex-start;gap:12px}}

.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:54px;align-items:start}
.plan{background:#fff;border:1.5px solid var(--line);border-radius:var(--r-lg);padding:34px 30px;display:flex;flex-direction:column;box-shadow:var(--shadow-sm)}
.plan--pop{border-color:var(--accent);box-shadow:0 24px 50px -22px color-mix(in oklab,var(--accent) 55%,transparent);position:relative}
.plan--pop::before{content:"いちばん人気";position:absolute;top:-13px;left:50%;transform:translateX(-50%);
  background:var(--accent);color:#fff;font-family:var(--maru);font-weight:700;font-size:12px;padding:5px 16px;border-radius:999px;white-space:nowrap}
.plan__name{font-family:var(--maru);font-weight:700;font-size:20px}
.plan__desc{font-size:13px;color:var(--ink-soft);margin-top:6px;min-height:2.6em}
.plan__price{margin-top:18px;font-family:var(--maru);font-weight:700;font-size:clamp(34px,4vw,46px);line-height:1}
.plan__price small{font-family:var(--sans);font-size:14px;font-weight:500;color:var(--ink-faint);margin-left:5px}
.plan ul{list-style:none;margin:24px 0 26px;display:flex;flex-direction:column;gap:12px}
.plan li{display:flex;gap:11px;font-size:14px;color:var(--ink-soft);align-items:flex-start}
.plan li::before{content:"";width:18px;height:18px;flex:none;margin-top:3px;border-radius:50%;
  background:var(--accent-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 13l4 4L19 7' fill='none' stroke='%230E7CF0' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/11px no-repeat}
.plan .btn{margin-top:auto}

/* faq */
.faqwrap{max-width:800px;margin-inline:auto}
.qa{background:#fff;border:1px solid var(--line);border-radius:16px;margin-top:14px;overflow:hidden;transition:box-shadow .2s}
.qa[open]{box-shadow:var(--shadow-sm)}
.qa summary{list-style:none;cursor:pointer;padding:22px 24px;display:flex;justify-content:space-between;gap:18px;align-items:center;
  font-family:var(--maru);font-weight:700;font-size:16.5px}
.qa summary::-webkit-details-marker{display:none}
.qa__plus{flex:none;width:26px;height:26px;border-radius:8px;background:var(--accent-soft);position:relative;transition:transform .3s var(--ease),background .25s var(--ease)}
.qa__plus::before,.qa__plus::after{content:"";position:absolute;inset:0;margin:auto;background:var(--accent);transition:background .25s var(--ease)}
.qa__plus::before{width:12px;height:2px}.qa__plus::after{width:2px;height:12px}
.qa[open] .qa__plus{transform:rotate(135deg);background:linear-gradient(135deg,var(--accent),var(--mint))}
.qa[open] .qa__plus::before,.qa[open] .qa__plus::after{background:#fff}
.qa__a{padding:0 24px 22px;color:var(--ink-soft);font-size:14.5px;line-height:1.9}

/* CTA band */
.cta{background:linear-gradient(135deg,var(--accent),var(--mint));color:#fff;text-align:center;position:relative;overflow:hidden}
.cta__imgcta{display:block;flex:0 0 auto;width:clamp(280px,30vw,360px);max-width:100%;line-height:0;
  border-radius:16px;overflow:hidden;transition:transform .2s var(--ease),box-shadow .2s var(--ease);
  box-shadow:0 16px 34px -16px rgba(0,0,0,.5)}
.cta__imgcta:hover{transform:translateY(-2px);box-shadow:0 22px 42px -16px rgba(0,0,0,.55)}
.cta__imgcta-slot{display:block;width:100%;aspect-ratio:16/9}
.cta__imgcta-slot::part(empty){background:rgba(255,255,255,.16);border:1.5px dashed rgba(255,255,255,.6);
  border-radius:16px;color:#fff;font-family:var(--maru);font-weight:700;font-size:12.5px}
.cta::before{content:none}
.cta::after{content:none}
.cta__in{position:relative;z-index:2;display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(28px,5vw,64px);align-items:center;text-align:left}
.cta__media{position:relative}
.cta__img{display:block;width:100%;height:clamp(220px,26vw,320px);filter:drop-shadow(0 24px 44px rgba(0,0,0,.22))}
.cta__img::part(empty){background:rgba(255,255,255,.12);border:1.5px dashed rgba(255,255,255,.5);border-radius:18px;color:#fff;font-family:var(--maru);font-weight:700;font-size:13px}
.cta__img::part(frame){background:transparent;border:0;box-shadow:none}
.cta h2{font-family:var(--maru);font-weight:700;font-size:clamp(26px,4vw,46px);line-height:1.4;text-wrap:balance}
.cta__logo{display:block;width:clamp(280px,34vw,420px);height:clamp(58px,6vw,82px);margin-bottom:6px;background:#fff;border-radius:12px;padding:8px 22px;box-shadow:0 12px 30px -16px rgba(0,0,0,.35)}
.cta__logo::part(frame){background:transparent;border:0;box-shadow:none}
.cta__logo::part(empty){background:#fff;border:1.5px dashed var(--line);border-radius:12px;color:var(--ink-faint);font-family:var(--maru);font-weight:700;font-size:13px}
.cta p{margin-top:16px;font-size:clamp(15px,1.4vw,18px);opacity:.95}
.cta__actions{margin-top:32px;display:flex;justify-content:flex-start;gap:14px;flex-wrap:wrap}
.cta .btn--ghost{background:#fff;border-color:#fff;color:var(--accent)}
.cta .btn--ghost:hover{color:var(--accent-d)}
.cta .btn--glass{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.5);color:#fff}
.cta .btn--glass:hover{background:rgba(255,255,255,.26)}

/* footer */
.foot{background:#F1F4F7;color:#566576;padding-block:60px 36px;border-top:1px solid var(--line)}
.foot a{color:#566576;transition:color .2s}.foot a:hover{color:var(--accent)}
.foot__in{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:34px}
.foot .brand{margin-bottom:14px;color:#15293e}
.foot .brand .mark{background:var(--accent);color:#fff}
.foot__logo{display:block;width:168px;height:46px;margin-bottom:14px}
.foot__logo::part(empty){background:rgba(15,40,70,.05);border:1.5px dashed rgba(20,50,90,.28);border-radius:10px;color:#566576;font-family:var(--maru);font-weight:700;font-size:12px}
.foot__logo::part(frame){border-radius:10px;background:transparent;border:0;box-shadow:none}
.foot__brand p{font-size:13.5px;line-height:1.8;max-width:24em;color:#6B7B8A}
.foot__social{display:flex;gap:12px;margin-top:20px}
.foot__social .sns{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;
  background:#fff;border:1px solid var(--line);transition:transform .2s,box-shadow .2s}
.foot__social .sns:hover{transform:translateY(-2px);box-shadow:0 8px 18px -8px rgba(0,0,0,.5)}
.foot__social .sns svg{width:22px;height:22px}
.foot__social .sns--fb{color:#1877F2}
.foot__social .sns--x{color:#000}
.fcol h4{font-family:var(--maru);font-size:13px;color:#15293e;margin-bottom:14px;font-weight:700}
.fcol a{display:block;font-size:13.5px;padding:5px 0}
.foot__ext{display:inline-flex;align-items:center;gap:5px}
.foot__ext svg{width:14px;height:14px;flex:none}
.foot__bar{margin-top:46px;padding-top:24px;border-top:1px solid var(--line);
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:12.5px;color:#8595A3}

/* reveal */
@media (prefers-reduced-motion:no-preference){
  .reveal{opacity:0;transform:translateY(24px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
  .reveal.is-in{opacity:1;transform:none}
  .reveal[data-d="1"]{transition-delay:.08s}.reveal[data-d="2"]{transition-delay:.16s}
  .reveal[data-d="3"]{transition-delay:.24s}.reveal[data-d="4"]{transition-delay:.32s}
}

/* responsive */
@media (max-width:920px){
  .nav__links{display:none}
  .hero__grid{grid-template-columns:1fr}
  .collage{min-height:400px;margin-top:18px}
  .solve__in{grid-template-columns:1fr;gap:32px}
  .solve__row{flex-wrap:wrap;gap:12px}
  .solve--geo .solve__title{white-space:normal}
  .solve__benefits{flex:1 1 100%}
  .vals,.reasons,.plans{grid-template-columns:1fr}
  .plans2{grid-template-columns:1fr}
  .pricing-lead{white-space:normal !important}
  .pnote{flex-direction:column;text-align:center;gap:12px}
  .reasons2__ill{display:none}
  .reasons2__arrow{display:none}
  .rz{padding:30px 24px 26px}
  .rz__no{left:50%;top:-20px;transform:translateX(-50%);width:46px;height:46px;font-size:19px}
  .stats__in{grid-template-columns:1fr;gap:34px}
  .stat+.stat{border-left:none;border-top:1px solid var(--line);padding-top:30px}
  .cta__in{grid-template-columns:1fr;gap:28px;text-align:center}
  .cta__actions{justify-content:center}
  .show,.show--rev .show__media{grid-template-columns:1fr;order:0}
  .show--rev .show__body{order:2}
  .flow__grid{grid-template-columns:1fr}
  .flow__rail{display:none}
  .fflow{align-items:flex-start}
  .cgrid{grid-template-columns:1fr}
  .foot__in{grid-template-columns:1fr 1fr}
}
@media (max-width:560px){
  .nav__cta .ghost-hide{display:none}
  .foot__in{grid-template-columns:1fr}
}

/* ===== mobile refinements (≤760px) ===== */
.hero-br{display:none}
.hv-br{display:none}
.ptabs{display:none}
.mbar{display:none}
.sp-sub-hide{}
.sp-label{display:none}
.pc-label{display:inline}
/* hamburger nav (shown when nav links hide, ≤920px) */
.nav__burger{display:none}
.navmenu{display:none}
@media (max-width:920px){
  .nav__cta{margin-left:auto}
  .nav__burger{display:flex;flex-direction:column;justify-content:center;gap:5px;
    width:44px;height:44px;border:0;background:transparent;cursor:pointer;padding:10px;margin-left:6px}
  .nav__burger span{display:block;height:2.5px;width:100%;background:var(--ink);border-radius:2px;
    transition:transform .25s var(--ease),opacity .2s}
  .nav__burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
  .nav__burger[aria-expanded="true"] span:nth-child(2){opacity:0}
  .nav__burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
  .navmenu{display:flex;flex-direction:column;position:absolute;top:100%;left:0;right:0;
    background:#fff;border-bottom:1px solid var(--line);box-shadow:0 20px 32px -18px rgba(20,50,90,.42);
    padding:6px 22px 18px;gap:0;transform:translateY(-14px);opacity:0;visibility:hidden;
    transition:opacity .22s var(--ease),transform .22s var(--ease),visibility .22s}
  .navmenu.is-open{opacity:1!important;visibility:visible!important;transform:none!important}
  .navmenu a{font-family:"Noto Sans","Noto Sans JP","Hiragino Kaku Gothic ProN",system-ui,sans-serif;
    font-weight:700;font-size:16px;color:var(--ink);padding:15px 4px;
    border-bottom:1px solid var(--line-soft);text-decoration:none}
  .navmenu__cta{margin-top:12px;background:var(--accent);color:#fff!important;text-align:center;
    border-radius:999px;padding:15px!important;border-bottom:0!important}
  .navmenu__cta--ghost{margin-top:14px;background:transparent;color:var(--accent)!important;
    border:1.5px solid var(--line)!important;padding:13px!important}
}
@media (max-width:760px){
  .hv-br{display:inline}
  .hv-comma{display:none}
  .sp-sub-hide{display:none!important}
  .sp-label{display:inline!important}
  .pc-label{display:none!important}
  /* フロー内CTA「無料で試す」を固定バーと同じバナナ色に（モバイルのみ） */
  .flow__head-cta .btn--ghost{background:#f9e891!important;border-color:#f9e891!important;color:#15293e!important}
  .flow__head-cta .btn--ghost .arrbadge{background:#15293e!important;color:#f9e891!important}
  /* モバイルはナビ右のCTAを隠し、ロゴ＋ハンバーガーのみに */
  .nav__cta{display:none!important}
  .nav__burger{margin-left:auto!important}
  /* 料金プラン : タブ切替（片方ずつ表示） */
  .ptabs{display:flex;gap:8px;max-width:420px;margin:6px auto 22px;
    background:#eef2f7;border-radius:999px;padding:5px}
  .ptab{flex:1;border:0;background:transparent;font-family:var(--maru);font-weight:700;
    font-size:15px;color:var(--ink-soft);padding:11px 8px;border-radius:999px;cursor:pointer;
    transition:background .18s,color .18s,box-shadow .18s;white-space:nowrap}
  .ptab.is-active{background:#fff;color:var(--accent-d);box-shadow:0 4px 12px -6px rgba(20,50,90,.35)}
  .plans2{display:block!important}
  .plans2 > .pcard{display:none!important}
  .plans2[data-active="0"] > .pcard:nth-of-type(1){display:block!important}
  .plans2[data-active="1"] > .pcard:nth-of-type(2){display:block!important}
  .hero-br{display:inline}
  /* hero headline : allow wrap + scale down from 100px */
  .hero h1{white-space:normal!important}
  .hero h1>span:not(#hero-caret){font-size:clamp(38px,11.5vw,56px)!important}
  /* primary CTA : drop the fixed 640px, go full-width */
  #hero-actions{width:100%!important;max-width:380px!important}
  #hero-actions .btn{width:100%!important}
  /* hero : text on clean white up top, large gorilla in the lower band, CTA over its body */
  .hero--full{height:auto!important;min-height:0!important;display:block!important;
    padding:0!important;position:relative!important;overflow:hidden!important}
  .hero__bg{top:280px!important;bottom:0!important;left:0!important;right:0!important;height:auto!important}
  .hero__bg img{object-fit:cover!important;object-position:73% 50%!important}
  .hero--full .wrap{position:relative!important;z-index:3!important;display:block!important;
    min-height:826px;padding:14px 20px 40px!important}
  .hero--full h1{margin-top:6px!important}
  .hero--full .hero__copy{position:relative!important;z-index:3!important}
  #hero-actions{margin-top:clamp(196px,52vw,232px)!important}

  /* flow / rstep : badge inline-left of heading, media full-width below */
  .road__svg{display:none!important}
  .rstep{grid-template-columns:auto 1fr!important;column-gap:13px!important;min-height:0!important;row-gap:14px}
  .rstep+.rstep{margin-top:48px}
  .rstep__badge{position:static!important;transform:none!important;
    grid-column:1!important;grid-row:1!important;align-self:start!important;
    flex-direction:column!important;gap:0!important;margin:0!important}
  .rstep__text,.rstep__col,
  .rstep--cr .rstep__text,.rstep--cl .rstep__text{
    grid-column:2!important;grid-row:1!important;padding-left:0!important}
  .rstep__media,
  .rstep--cr .rstep__media,.rstep--cl .rstep__media{
    grid-column:1 / -1!important;grid-row:2!important;padding-left:0!important}
  .rstep--lead .flow__head{grid-column:1 / -1!important;grid-row:1!important;padding-left:0!important}
  .rstep--lead .rstep__badge{grid-row:2!important}
  .rstep--lead .rstep__col{grid-column:2!important;grid-row:2!important;padding-left:0!important}
  /* STEP01の画像はcol2内なので全幅に引き戻す（badge幅48+gap13=61px） */
  .rstep--lead .rstep__col .rstep__media{margin-left:-61px!important;width:calc(100% + 61px)!important}
  /* shrink badge + remove heading top-margin so they baseline-align */
  .rstep__badge .rnode__badge{width:48px!important;height:48px!important}
  .rstep__badge .rnode__badge small{font-size:7.5px!important}
  .rstep__badge .rnode__badge b{font-size:16px!important;margin-top:1px!important}
  .fstep__h{margin-top:0!important;font-size:16px!important;line-height:1.5!important}
  .rstep__dot{display:none!important}
  #flow-step2{margin-top:0!important}
  .rstep__media--imgv .rstep-img,.rstep__media--imgsq .rstep-img{margin-inline:0}
  .imgstack{margin-top:0!important}
  /* フロー画像 : 中央寄せ＆幅を抑えて縦の長さを圧縮 */
  #showcase .rstep__media{align-items:center!important}
  #showcase .rstep-img{margin-inline:auto!important}
  #showcase #flow-persona{max-width:300px!important;margin-inline:auto!important}
  #showcase .rstep__media--img .rstep-img{max-width:290px!important;margin-inline:auto!important}
  #showcase .rstep__media--img.rstep__media--imgsq .rstep-img{max-width:250px!important}
  #showcase .rstep__media--imgv .rstep-img{max-width:210px!important;width:100%!important;height:auto!important;aspect-ratio:3/4!important;margin-inline:auto!important}
  /* 料金比較表 : モバイルで文字・余白を縮小し改行の間延びを防ぐ */
  .ptk{font-size:11.5px!important;padding:8px 9px!important;gap:6px!important;line-height:1.3!important}
  .ptk svg{width:15px!important;height:15px!important}
  .ptv{font-size:11.5px!important;padding:8px 9px!important;line-height:1.3!important}
  .ptv--ok{font-size:14px!important}
  /* solve band : let benefit text wrap instead of forcing one line */
  .solve__benefits{white-space:normal!important;flex:1 1 100%!important;font-size:14px!important;line-height:1.5!important}
  /* solve--geo カードをモバイルでコンパクトに */
  .solve--geo .solve__rows{gap:10px!important}
  .solve--geo .solve__row{padding:11px 16px!important;gap:8px!important;border-radius:12px!important}
  .solve--geo .solve__pill{min-width:0!important;font-size:13px!important;padding:7px 14px!important;border-radius:9px!important}
  /* お悩みカード : モバイルでコンパクト化 */
  .prob__band .prob__t{font-size:15px!important;line-height:1.6!important}
  .prob__band .prob__list{gap:10px!important}
  .prob__band .prob__item{padding:13px 18px!important;min-height:0!important;border-radius:13px!important}
  /* モバイル下部固定CTAバー（スリム）。フローティングCTAはモバイルでは隠す */
  .floatcta{display:none!important}
  /* 最終CTA : ロゴ画像とパソコン画像をモバイルで非表示 */
  .cta__media{display:none!important}
  .cta__logo{display:none!important}
  /* 最終CTAの2ボタンはモバイルでは不要（常時表示バーに集約） */
  .cta__actions{display:none!important}
  /* 最終CTA : 高さを内容に合わせて圧縮 */
  .cta{height:auto!important;min-height:0!important;padding-block:32px!important}
  /* セクション間の余白をモバイルで圧縮 */
  section{padding-block:38px!important}
  .flow{padding-block:40px!important}
  .stats{padding-block:34px!important}
  /* 実績数値 : モバイルは各項目を横並び行（ラベル左・数値右）に */
  .stats__in{display:flex!important;flex-direction:column!important;gap:0!important}
  .stats__in .stat{display:grid!important;grid-template-columns:1fr auto!important;
    align-items:center!important;column-gap:14px!important;text-align:left!important;
    padding:15px 4px!important;border-bottom:1px solid var(--line-soft)!important}
  .stats__in .stat:last-child{border-bottom:0!important}
  .stats__in .stat__label{grid-column:1!important;grid-row:1!important;font-size:16px!important;margin:0!important}
  .stats__in .stat__note{grid-column:1!important;grid-row:2!important;font-size:11px!important;margin:2px 0 0!important;text-align:left!important}
  .stats__in .stat__num{grid-column:2!important;grid-row:1 / span 2!important;align-self:center!important}
  .stats__in .stat__big{font-size:54px!important;line-height:1!important}
  .stats__in .stat__unit{font-size:24px!important}
  .reasons2{padding-block:40px!important}
  .prob__band{padding-block:44px 40px!important}
  .clients{padding-top:30px!important;padding-bottom:30px!important}
  .foot{padding-block:40px 28px!important}
  /* 固定CTAバーが常時表示なのでフッター下に余白を確保 */
  body{padding-bottom:72px!important}
  .flow__head{margin-bottom:26px!important}
  /* お悩み見出しを少し下げる */
  #problem{padding-top:60px!important;padding-bottom:6px!important}
  /* 青背景を上まで伸ばす（見出しとの白い空白を詰める） */
  .gradwrap{margin-top:-18px!important}
  /* FAQの質問テキストをモバイルで小さく */
  .qa summary{font-size:14px!important;padding:18px 18px!important;gap:12px!important}
  /* solve(クリップ付き)の下部余白を復活させ、最後のカードが切れないように */
  .solve--geo{padding-block:34px 98px!important}
  .mbar{display:flex;align-items:center;gap:10px;position:fixed;left:0;right:0;bottom:0;z-index:80;
    background:rgba(255,255,255,.96);backdrop-filter:saturate(150%) blur(8px);
    border-top:1px solid var(--line);box-shadow:0 -8px 24px -16px rgba(20,50,90,.45);
    padding:6px 12px calc(6px + env(safe-area-inset-bottom));
    transform:translateY(120%);transition:transform .3s var(--ease)}
  .mbar.is-show{transform:none}
  .mbar__cta{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;
    background:#f9e891;color:#15293e;
    font-family:"Noto Sans","Noto Sans JP",sans-serif;
    font-weight:700;font-size:14.5px;padding:11px;border-radius:999px;text-decoration:none;white-space:nowrap;
    box-shadow:0 8px 20px -10px rgba(180,150,20,.55)}
  .mbar__cta svg{width:15px;height:15px;flex:none}
  /* flow lead : CTA 2 ボタンを横並びに */
  .flow__head-cta{flex-wrap:nowrap!important;gap:10px!important}
  .flow__head-cta .btn{flex:1 1 0!important;min-width:0!important;justify-content:center!important;
    padding-left:12px!important;padding-right:12px!important;white-space:nowrap!important}
  /* 機能カード : モバイルは2列・コンパクトに(1画面に約4枚) */
  .feat .featgrid{grid-template-columns:repeat(2,1fr)!important;gap:12px!important}
  .feat .featcard{padding:20px 12px 18px!important;gap:10px!important;border-radius:16px!important}
  .feat .featcard__ic{height:auto!important}
  .feat .featcard__ic svg{width:46px!important;height:46px!important}
  .feat .featcard__h{font-size:14px!important;line-height:1.4!important}
  .feat .featcard__d{font-size:11.5px!important;line-height:1.65!important}
  .feat .featcard__brands{height:auto!important;gap:5px!important}
  .feat .featcard__soon{font-size:9px!important;padding:3px 7px!important}
}

/* floating pricing CTA */
.floatcta{position:fixed;right:22px;bottom:22px;z-index:60;width:268px;
  background:#16b1ad;border-radius:14px;padding:10px 10px 12px;
  box-shadow:0 22px 50px -16px rgba(8,60,60,.5);
  opacity:0;visibility:hidden;transform:translateY(24px) scale(.96);
  transition:opacity .4s var(--ease),transform .4s var(--ease),visibility .4s}
.floatcta.is-show{opacity:1;visibility:visible;transform:none}
.floatcta__close{position:absolute;top:-12px;right:-12px;width:30px;height:30px;border-radius:50%;
  background:#fff;border:1px solid var(--line);color:#15293e;display:grid;place-items:center;cursor:pointer;
  box-shadow:0 6px 14px -6px rgba(0,0,0,.4);transition:transform .2s}
.floatcta__close:hover{transform:scale(1.08)}
.floatcta__close svg{width:15px;height:15px}
.floatcta__card{background:#fff;border-radius:10px;padding:16px 16px 12px;text-align:center}
.floatcta__eyebrow{display:block;font-family:var(--maru);font-weight:700;font-size:13px;color:#16b1ad;letter-spacing:.02em}
.floatcta__main{display:flex;align-items:center;gap:6px;margin-top:6px}
.floatcta__txt{display:flex;flex-direction:column;align-items:flex-start;line-height:1.1;flex:1;min-width:0}
.floatcta__big{font-family:var(--maru);font-weight:700;font-size:30px;color:#0f8a86;letter-spacing:.01em;
  border-bottom:2px dotted #9ddbd8;padding-bottom:4px}
.floatcta__sub{font-family:var(--maru);font-weight:700;font-size:13px;color:#0f8a86;margin-top:6px}
.floatcta__ill{flex:none;width:88px;height:88px}
.floatcta__ill::part(empty){background:rgba(22,177,173,.08);border:1.5px dashed rgba(22,177,173,.4);border-radius:8px;color:#0f8a86;font-family:var(--maru);font-weight:700;font-size:11px}
.floatcta__ill::part(frame){background:transparent;border:0;box-shadow:none}
.floatcta__btn{margin-top:11px;display:flex;align-items:center;justify-content:center;gap:8px;
  font-family:var(--maru);font-weight:700;font-size:15px;color:#fff;padding:12px;border-radius:9px;
  background:transparent;transition:opacity .2s}
.floatcta__btn:hover{opacity:.85}
.floatcta__arr{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#f0c538}
.floatcta__arr svg{width:12px;height:12px}
.floatcta__btn:hover .floatcta__arr{transform:translateX(2px);transition:transform .2s}
@media (max-width:560px){
  .floatcta{right:12px;bottom:12px;width:230px}
}

