/* ============================================================
   まるっとAI トップページ  home.css v2
   設計の正: docs/DESIGN-GUIDELINE.html
   FV=Figma 17-1139忠実 / 下層=Yoomのカバーパネル構成
   ============================================================ */

:root{
  --ink:#1d1d1d; --ink2:#3c4250; --mute:#5d6779; --faint:#c8ccd3; --line:#e3e8ef;
  --bg:#f4f6f9; --white:#ffffff;
  --green:#02a790; --blue:#1355cd; --blue2:#5491ff; --pink:#d52850; --orange:#f9612f;
  --green-deep:#027a63; --orange-deep:#c9490f;
  --grad:linear-gradient(90deg,#f9612f 0%,#d52850 32%,#5491ff 66%,#02a790 100%);
  --r-panel:44px; --r-card:20px; --r-cardL:40px; --r-input:14px; --r-pill:999px;
  /* 影はYoomと同じ2層。1層目が枠線の代わりのヘアライン、2層目がやわらかい落ち影 */
  --shadow-card:0 0 0 1px rgba(24,24,27,.055), 0 8px 18px rgba(24,24,27,.08);
  --shadow-pop:0 0 0 1px rgba(24,24,27,.05), 0 20px 48px rgba(24,24,27,.11);
  --head-h:76px;
}

*{margin:0;padding:0;box-sizing:border-box}
html{overflow-x:clip;scroll-padding-top:calc(var(--head-h) + 8px)}
body{
  font-family:'Poppins','Noto Sans JP',sans-serif;
  color:var(--ink); background:var(--bg);
  line-height:1.7; font-size:16px; letter-spacing:-.01em;
  word-break:auto-phrase; line-break:strict; overflow-wrap:anywhere;
  overflow-x:clip;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none}
button{font-family:inherit;border:none;background:none;cursor:pointer;color:inherit}
.nw{white-space:nowrap}
.wrap{max-width:1240px;margin:0 auto;padding:0 32px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.sp-only{display:none}
.pc-only{display:inline}

/* ---------- リビール ---------- */
.rv{opacity:0;translate:0 30px;transition:opacity .8s cubic-bezier(.2,.6,.2,1),translate .8s cubic-bezier(.2,.6,.2,1);transition-delay:var(--d,0s)}
.rv.on{opacity:1;translate:0 0}
html.no-js .rv,html.static-mode .rv{opacity:1;translate:0 0}

/* ---------- FV入場 ---------- */
.fvi{opacity:0;translate:0 24px;animation:fvIn .85s cubic-bezier(.2,.6,.2,1) forwards;animation-delay:var(--fd,0s)}
@keyframes fvIn{to{opacity:1;translate:0 0}}
html.loading .fvi,html.loading .fv-road path,html.loading .chara-pop{animation-play-state:paused}
html.no-js .fvi,html.static-mode .fvi{opacity:1;translate:0 0;animation:none}

/* ============================================================
   LOADER
   ============================================================ */
#loader{
  position:fixed;inset:0;z-index:1000;background:var(--bg);
  display:flex;align-items:center;justify-content:center;
  transition:opacity .5s ease,visibility .5s ease;
  animation:loaderKill .6s ease 3.2s forwards;
}
#loader.done{opacity:0;visibility:hidden;animation:none}
html.loader-skip #loader{display:none}
@keyframes loaderKill{to{opacity:0;visibility:hidden}}
.loader-inner{display:flex;flex-direction:column;align-items:center;gap:26px}
.loader-logo{height:38px;width:auto;max-width:none;opacity:0;animation:loaderLogo .7s ease .15s forwards}
@keyframes loaderLogo{from{opacity:0;translate:0 14px}to{opacity:1;translate:0 0}}
.loader-dots{display:flex;gap:10px}
.loader-dots i{width:11px;height:11px;border-radius:50%;animation:dotHop 1s ease-in-out infinite}
.loader-dots i:nth-child(1){background:var(--green)}
.loader-dots i:nth-child(2){background:var(--blue);animation-delay:.12s}
.loader-dots i:nth-child(3){background:var(--pink);animation-delay:.24s}
.loader-dots i:nth-child(4){background:var(--orange);animation-delay:.36s}
@keyframes dotHop{0%,60%,100%{translate:0 0;scale:1}30%{translate:0 -12px;scale:1.15}}
.loader-bar{width:180px;height:3px;border-radius:2px;background:#e6eaf1;overflow:hidden}
.loader-bar i{display:block;height:100%;width:100%;background:var(--grad);translate:-100% 0;animation:barFill 1.6s cubic-bezier(.3,.6,.3,1) .2s forwards}
@keyframes barFill{to{translate:0 0}}

/* ============================================================
   HEADER
   ============================================================ */
.site-head{
  position:fixed;top:0;left:0;right:0;z-index:900;height:var(--head-h);
  display:flex;align-items:center;
  transition:background .35s ease,box-shadow .35s ease;
}
.site-head.scrolled{background:rgba(255,255,255,.62);backdrop-filter:blur(16px) saturate(1.08);-webkit-backdrop-filter:blur(16px) saturate(1.08);box-shadow:0 1px 0 rgba(227,232,239,.55)}
@media(max-width:734px){
  .site-head{transition:translate .35s cubic-bezier(.33,0,.15,1),opacity .28s ease}
  .site-head.hide{translate:0 -100%;opacity:0;pointer-events:none}
}
.head-inner{width:100%;max-width:1440px;margin:0 auto;padding:0 30px;display:flex;align-items:center;gap:26px}
.head-logo img{height:34px;width:auto;max-width:none}
.head-nav{display:flex;align-items:center;gap:clamp(14px,1.7vw,25px);margin-left:auto;flex-wrap:nowrap}
.head-nav a{font-size:14.5px;font-weight:700;color:var(--ink);white-space:nowrap}
/* 項目が増えたぶん、狭い画面では文字と間隔を詰めて1行に収める */
@media(max-width:1080px){
  .head-nav a{font-size:13.5px}
  .head-nav .btn-pill{padding:12px 20px;font-size:13.5px}
}
/* 1行に収まらなくなる幅から、SPと同じ「CTAだけ」の並びに切り替える */
@media(max-width:820px){
  .site-head .head-nav{display:none}
  .site-head .head-cta-sp{display:block;margin-left:auto}
}
.head-nav a:hover{opacity:.6}
.head-nav .btn-pill{color:#fff}
.head-nav .btn-pill:hover{opacity:1}
.head-cta-sp{display:none}
.btn-pill{
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--ink);color:#fff;border-radius:var(--r-pill);
  padding:14px 28px;font-size:14.5px;font-weight:700;letter-spacing:.02em;
  transition:transform .25s ease,box-shadow .25s ease;
}
.btn-pill:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(0,0,0,.22)}
.btn-ghost{
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--white);color:var(--ink);border:1px solid var(--line);
  border-radius:var(--r-pill);padding:14px 28px;font-size:14.5px;font-weight:700;
  transition:transform .25s ease,box-shadow .25s ease;
}
.btn-ghost:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(0,0,0,.1)}

/* ============================================================
   FV（Figma 17-1139 忠実レイアウト）
   ============================================================ */
/* FVは「次のセクションが覆い終わるまで」だけ貼り付く（以降は裏に残さない） */
.fv-wrap{position:relative;z-index:1;height:200svh;min-height:1560px}
.fv{
  position:sticky;top:0;background:var(--bg);overflow:clip;
  height:100svh;min-height:780px;max-height:1120px;
}
.worry{margin-top:-100svh !important}
@media(max-height:790px){
  .fv-wrap{height:auto;min-height:0}
  .fv{position:relative;top:auto}
  .worry{margin-top:-44px !important}
}

/* --- 道（Figma: left -6.9% / 比率1442:580） --- */

.fv-road{
  position:absolute;left:-11%;width:100.2%;bottom:-1.9%;aspect-ratio:1442/580;
  pointer-events:none;z-index:1;
}
.fv-road svg{width:100%;height:100%;overflow:visible;display:block}
.fv-road path{
  stroke-dasharray:1;stroke-dashoffset:1;
  animation:roadDraw 1.7s cubic-bezier(.55,.05,.3,1) forwards;
  animation-delay:.5s;
}
@keyframes roadDraw{to{stroke-dashoffset:0}}

/* --- 星（浮遊し続ける） --- */
.fv-sparkles{position:absolute;inset:0;pointer-events:none;z-index:2}
.spk{position:absolute;animation:spkFloat var(--sd,5s) ease-in-out var(--sy,0s) infinite alternate}
.spk svg{width:100%;height:100%;display:block;animation:spkTwinkle calc(var(--sd,5s)*1.3) ease-in-out var(--sy,0s) infinite}
.spk.dot{animation:spkFloat var(--sd,5s) ease-in-out var(--sy,0s) infinite alternate,spkTwinkle calc(var(--sd,5s)*1.3) ease-in-out var(--sy,0s) infinite;border-radius:50%}
@keyframes spkFloat{from{translate:0 -7px;rotate:-4deg}to{translate:0 9px;rotate:5deg}}
@keyframes spkTwinkle{0%,100%{opacity:1}50%{opacity:.45}}

/* --- 中央コンテンツ --- */
.fv-main{
  position:absolute;left:50%;translate:-50% 0;top:var(--head-h);
  width:min(760px,92vw);text-align:center;z-index:7;
  padding-top:clamp(2px,0.8svh,8px);
}
.fv-h1{margin-top:0;font-weight:700;line-height:1.3;letter-spacing:-.04em}
.fv-h1 .l1{display:block;font-size:clamp(26px,2.6vw,37px);letter-spacing:-.04em}
.fv-h1 .l2{display:block;font-size:clamp(54px,5.8vw,83px);letter-spacing:-.04em}
.fv-h1 .l2 span{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}

/* --- チャット（ラベルはカードの外・左上 / Figma準拠） --- */
.fv-chat{width:min(680px,100%);margin:clamp(8px,1.4svh,14px) auto 0;text-align:left}
.chat-q{font-size:17px;font-weight:700}
.chat-card{
  background:var(--white);border-radius:28px;
  box-shadow:var(--shadow-card);padding:20px 24px 16px;
  position:relative;z-index:5;transition:box-shadow .3s ease;
  min-height:188px;display:flex;flex-direction:column;
}
.chat-card:focus-within{box-shadow:0 4px 34px rgba(19,85,205,.16)}
.chat-input{
  width:100%;border:none;outline:none;resize:none;
  font-family:inherit;font-size:16px;line-height:1.8;color:var(--ink);
  height:96px;flex:1;background:transparent;display:block;
}
.chat-input::placeholder{color:var(--faint)}
.chat-foot{display:flex;align-items:flex-end;gap:10px;margin-top:10px}
.chat-chips{display:flex;gap:8px;flex-wrap:wrap;flex:1;min-width:0}
.chip{
  border:1px solid var(--faint);color:var(--mute);border-radius:var(--r-pill);
  padding:5px 14px;font-size:13px;font-weight:500;transition:all .2s ease;background:var(--white);
}
.chip:hover{border-color:var(--blue);color:var(--blue)}
.chat-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}
.mic-btn{
  width:38px;height:38px;border-radius:50%;border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;transition:all .25s ease;
}
.mic-btn img{width:19px;height:19px}
.mic-btn:hover{border-color:var(--mute)}
.mic-btn.rec{border-color:var(--pink);background:#fdf0f3;animation:micPulse 1.4s ease infinite}
@keyframes micPulse{0%{box-shadow:0 0 0 0 rgba(213,40,80,.35)}70%{box-shadow:0 0 0 12px rgba(213,40,80,0)}100%{box-shadow:0 0 0 0 rgba(213,40,80,0)}}
.mic-btn[hidden]{display:none}
.send-btn{
  width:42px;height:42px;border-radius:50%;background:var(--ink);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  transition:transform .25s ease,box-shadow .25s ease;
}
.send-btn svg{width:17px;height:17px}
.send-btn:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(0,0,0,.28)}
.chat-card.shake{animation:cardShake .45s ease}
@keyframes cardShake{0%,100%{translate:0 0}20%{translate:-7px 0}40%{translate:6px 0}60%{translate:-4px 0}80%{translate:3px 0}}
.chat-q{margin:0 0 6px 4px}

/* --- キャラ（Figma座標準拠。ボックスの下辺に頭が少し重なる） --- */
.fv-charas{position:absolute;inset:0;pointer-events:none;z-index:6}
.fv{--u:min(0.06944vw, 0.10776svh)} /* Figmaキャンバス1440x928のフィットスケール（1designPx分） */
.chara{position:absolute;bottom:calc(167*var(--u));translate:-50% 0}
/* Figma実測: 中心x=-361/-142/+130/+321, 高さ=280/290/205/259（design px） */
.chara-1{left:calc(50% - 392*var(--u));height:calc(280*var(--u));bottom:calc(131*var(--u))}
.chara-2{left:calc(50% - 109*var(--u));height:calc(290*var(--u));bottom:calc(128*var(--u))}
.chara-3{left:calc(50% + 135*var(--u));height:calc(205*var(--u))}
.chara-4{left:calc(50% + 367*var(--u));height:calc(259*var(--u));bottom:calc(145*var(--u))}
.chara img{height:100%;width:auto;max-width:none}
.chara-pop{
  height:100%;
  opacity:0;transform:translateY(60%) scale(.6);transform-origin:50% 100%;
  animation:charaPop .75s cubic-bezier(.26,1.45,.42,1) forwards;
}
.chara-1 .chara-pop{animation-delay:1.0s}
.chara-2 .chara-pop{animation-delay:1.14s}
.chara-3 .chara-pop{animation-delay:1.28s}
.chara-4 .chara-pop{animation-delay:1.42s}
@keyframes charaPop{
  0%{opacity:0;transform:translateY(60%) scale(.6)}
  60%{opacity:1;transform:translateY(-3%) scale(1.03)}
  100%{opacity:1;transform:translateY(0) scale(1)}
}

/* --- ツール帯（Figma: 1340×120 r10） --- */
.fv-tools{position:absolute;left:0;right:0;bottom:2%;z-index:7;padding:0 24px}
.tools-band{
  max-width:1340px;margin:0 auto;background:rgba(255,255,255,.72);
  border-radius:12px;box-shadow:var(--shadow-card);
  display:flex;align-items:center;gap:30px;padding:24px 34px;backdrop-filter:blur(6px);
  min-height:104px;
}
.tools-label{font-size:16.5px;font-weight:700;line-height:1.7;flex-shrink:0}
.tools-logos{overflow:hidden;flex:1;min-width:0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.tools-row{display:flex;width:max-content;animation:toolScroll 32s linear infinite}
.tools-set{display:flex;align-items:center;gap:30px;padding-right:30px}
.tools-set.dup{display:flex}
.tool{display:flex;align-items:center;gap:30px;flex-shrink:0;font-size:17px;font-weight:700;color:var(--ink2);letter-spacing:-.01em;white-space:nowrap}
.tool::before{content:"";flex-shrink:0;width:5px;height:5px;border-radius:50%;background:var(--faint)}

/* ============================================================
   セクション共通
   ============================================================ */
.sec{position:relative}
.sec-head{text-align:center;margin-bottom:48px}
.sec-eyebrow{
  display:inline-flex;align-items:center;gap:8px;font-family:'Poppins',sans-serif;
  font-size:13px;font-weight:700;letter-spacing:.16em;color:var(--mute);
  margin-bottom:16px;text-transform:uppercase;
}
/* 見出しの前の印は、ロゴのマークを小さく使う */
.sec-eyebrow::before,.cover-eyebrow::before{
  content:"";width:19px;height:17px;flex-shrink:0;
  background:url("../images/top/logo-mark.png") center/contain no-repeat;
  /* マークは下側（ロボ本体）が重いぶん、そのままだと沈んで見える */
  translate:0 -1.5px;
}
.sec-h2{font-size:clamp(38px,4.45vw,64px);font-weight:700;line-height:1.3;letter-spacing:-.04em}
.sec-lead{margin-top:16px;font-size:17px;line-height:1.7;color:var(--ink2)}

/* ============================================================
   WORRY（lp5コピー）
   ============================================================ */
.worry{background:var(--white);border-radius:var(--r-panel) var(--r-panel) 0 0;margin-top:-44px;position:relative;z-index:10;padding:110px 0 120px}
.worry-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;max-width:1120px;margin:0 auto;position:relative}
.worry-card{
  background:var(--white);border-radius:var(--r-cardL);box-shadow:var(--shadow-card);
  padding:0 30px 26px;position:relative;z-index:1;overflow:hidden;
  transition:transform .3s ease,box-shadow .3s ease;
}
.worry-illo{
  height:206px;display:flex;align-items:flex-end;justify-content:center;
  margin:0 -28px 0;
}
/* FVと同じオーロラの地。カードごとにキャラの色で振る */
.worry-card:nth-child(1) .worry-illo{
  background:
    radial-gradient(120% 96% at 22% 6%, rgba(19,85,205,.20), transparent 60%),
    radial-gradient(96% 80% at 92% 84%, rgba(84,145,255,.20), transparent 62%),
    linear-gradient(160deg,#f2f6fd 0%,#e7eefb 100%);
}
.worry-card:nth-child(2) .worry-illo{
  background:
    radial-gradient(120% 96% at 18% 8%, rgba(2,167,144,.20), transparent 60%),
    radial-gradient(96% 80% at 90% 86%, rgba(84,145,255,.16), transparent 62%),
    linear-gradient(160deg,#eff8f6 0%,#e5f1f3 100%);
}
.worry-card:nth-child(3) .worry-illo{
  background:
    radial-gradient(120% 96% at 20% 6%, rgba(249,97,47,.20), transparent 60%),
    radial-gradient(96% 80% at 92% 86%, rgba(213,40,80,.14), transparent 62%),
    linear-gradient(160deg,#fdf4ef 0%,#f9ece6 100%);
}
.worry-illo img{height:184px;width:auto}
.worry-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-card)}
.worry-num{
  width:46px;height:46px;border-radius:14px;color:#fff;display:flex;align-items:center;justify-content:center;
  font-family:'Poppins',sans-serif;font-size:17px;font-weight:700;
  position:relative;z-index:2;margin-top:-23px;box-shadow:0 6px 14px rgba(20,30,60,.16);
}
.worry-card:nth-child(1) .worry-num{background:var(--blue)}
.worry-card:nth-child(2) .worry-num{background:var(--green-deep)}
.worry-card:nth-child(3) .worry-num{background:var(--orange-deep)}
.worry-t{margin-top:14px;font-size:21px;font-weight:700;line-height:1.5;letter-spacing:-.01em}
.worry-d{margin-top:10px;font-size:14px;color:var(--ink2);line-height:1.65}
.worry-note{margin-top:22px;text-align:center;font-size:12.5px;color:var(--mute)}

/* ============================================================
   BA（lp5コピー）
   ============================================================ */
.ba{background:var(--white);padding:90px 0 130px;position:relative;z-index:10}
.ba-grid{display:grid;grid-template-columns:1fr 64px 1fr;align-items:stretch;max-width:1140px;margin:0 auto}
.ba-card{border-radius:var(--r-cardL);padding:30px 38px 28px}
.ba-card.before{background:var(--bg)}
.ba-card.after{background:var(--blue);color:#fff;box-shadow:var(--shadow-pop)}
.ba-label{
  display:inline-flex;border-radius:var(--r-pill);font-family:'Poppins',sans-serif;
  font-size:13px;font-weight:700;letter-spacing:.08em;padding:6px 20px;
}
.ba-card.before .ba-label{background:#fff;color:var(--mute);border:1px solid var(--line)}
.ba-card.after .ba-label{background:#fff;color:var(--blue)}
.ba-list{margin-top:16px;display:flex;flex-direction:column}
.ba-item{display:flex;gap:12px;align-items:flex-start;padding:13px 0;border-bottom:1px dashed rgba(93,103,121,.35)}
.ba-card.after .ba-item{border-bottom-color:rgba(255,255,255,.4)}
.ba-item:last-child{border-bottom:none}
.ba-item .m{flex-shrink:0;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11.5px;font-weight:700;margin-top:5px;font-style:normal}
.ba-card.before .ba-item .m{background:#e7ebf2;color:var(--mute)}
.ba-card.after .ba-item .m{background:#fff;color:var(--blue)}
.ba-item p{font-size:15.5px;line-height:1.65;font-weight:500}
.ba-card.after .ba-item p{font-weight:700}
.ba-item b{font-family:'Poppins','Noto Sans JP',sans-serif;font-weight:700}
.ba-card.before .ba-item b{color:var(--pink)}
.ba-arrow{display:flex;align-items:center;justify-content:center}
.ba-arrow i{
  width:44px;height:44px;border-radius:50%;background:var(--ink);color:#fff;
  display:flex;align-items:center;justify-content:center;font-style:normal;font-weight:700;
}

/* ============================================================
   カバーパネル（Yoom型）
   ============================================================ */
.covers{position:relative;z-index:11;background:var(--white);padding-bottom:18px}
/* stickyの拘束はcontent端まで＝最後のカードがピン位置に届くぶんの実コンテンツを足す */
.covers::after{content:"";display:block;height:18px}
.cover:last-child{margin-bottom:0}
/* 最後のカバーはsticky滑走域が余白ぶんしか無く、前のカードを覆い切る前に
   スタックごと流れて帯が残る。通常フローで上に被せる（前カードは覆われ切るまでピン留め） */
.covers .cover:last-child{position:relative;top:auto}
.cover{
  position:sticky;top:calc(var(--head-h) + 14px);
  min-height:calc(100svh - var(--head-h) - 30px);
  width:min(1400px,calc(100% - clamp(32px,5vw,88px)));
  margin:0 auto 18px;
  display:flex;flex-direction:column;justify-content:center;
  border-radius:clamp(26px,2.8vw,40px);overflow:clip;
  padding:42px 0 42px;
}
.cover .wrap{width:100%}
.cover-inner{will-change:transform}
.cover-eyebrow{
  display:inline-flex;align-items:center;gap:8px;background:#fff;color:var(--ink);
  border-radius:var(--r-pill);padding:7px 18px;
  font-family:'Poppins',sans-serif;font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
}

.cover-h2{margin-top:12px;font-size:clamp(36px,3.9vw,56px);font-weight:700;line-height:1.3;letter-spacing:-.04em;color:#fff}
.cover-lead{margin-top:10px;font-size:19px;font-weight:700;color:#fff;line-height:1.7;letter-spacing:-.01em}
.cover-head{text-align:center;margin-bottom:38px}
.peek{position:absolute;pointer-events:none;z-index:3}
.peek img{width:100%;height:auto;filter:drop-shadow(0 14px 24px rgba(0,0,0,.2))}
.scribble{position:absolute;pointer-events:none;fill:none;stroke:rgba(255,255,255,.09);stroke-width:48;stroke-linecap:round;stroke-linejoin:round;z-index:1}
.scr-svc{right:-8%;top:-16%;width:58%;transform:rotate(9deg)}
.scr-r1{left:-9%;bottom:-18%;width:62%;transform:rotate(-6deg)}
.scr-r2{right:-10%;top:-14%;width:58%;transform:rotate(174deg)}
.scr-r3{left:-8%;top:-16%;width:56%;transform:rotate(196deg)}
.svc-accent-jp{position:absolute;top:8%;right:5%;font-size:16px;font-weight:700;color:rgba(255,255,255,.95);transform:rotate(4deg);z-index:2}
.svc-accent-en{position:absolute;left:6%;bottom:9%;font-family:'Caveat',cursive;font-size:36px;font-weight:600;color:rgba(255,255,255,.8);transform:rotate(-7deg);z-index:2}
.flip-x img{transform:scaleX(-1)}

/* --- SERVICES（青） --- */
.services{
  background:
    radial-gradient(920px 540px at 88% -12%, rgba(255,255,255,.16), transparent 62%),
    radial-gradient(760px 480px at -8% 112%, rgba(255,255,255,.13), transparent 60%),
    radial-gradient(520px 340px at 70% 108%, rgba(13,45,140,.5), transparent 70%),
    linear-gradient(152deg,#4a7df2 0%,#1e56dd 46%,#0d3fa6 100%);
}
.svc-grid2{display:grid;grid-template-columns:.92fr 1.08fr;gap:52px;align-items:center;max-width:1180px;margin:0 auto}
.svc-head{text-align:left}
.svc-head .cover-h2{font-size:clamp(32px,3.4vw,50px)}
.svc-head .cover-lead{font-size:17px}
.svc-head .svc-note{margin-top:26px;text-align:left;display:flex;align-items:center;gap:12px}
.svc-head .svc-note::before{content:"";width:34px;height:2px;background:rgba(255,255,255,.6)}
.svc-pills{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:640px;position:relative;z-index:2}

.svc-pill{
  display:flex;align-items:center;gap:10px;background:var(--white);border-radius:var(--r-pill);
  padding:17px 22px;min-height:66px;box-shadow:0 2px 8px rgba(0,0,0,.08);
  transition:transform .3s ease;
}
.svc-pill:hover{transform:translateY(-3px)}
.svc-pill .pi{width:24px;height:24px;display:flex;align-items:center;justify-content:center;flex-shrink:0}


.svc-pill .pi img{width:24px;height:24px}
.svc-pill>span:last-child{font-size:15px;font-weight:700;letter-spacing:-.01em;line-height:1.4;text-align:left}
.svc-note{color:#fff;font-size:14px;font-weight:700}
.peek-chara{right:3%;bottom:7%;width:250px}
.peek-chara.flip-x img{transform:scaleX(-1)}

/* --- REASON 共通 --- */
.reason-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:48px;align-items:center;max-width:1180px;margin:0 auto}
.reason-copy .cover-eyebrow{margin-bottom:0}
.reason-copy .cover-h2{font-size:clamp(36px,3.9vw,56px)}
.reason-1::before,.reason-2::before,.reason-3::before{content:"";position:absolute;border-radius:50%;background:rgba(255,255,255,.05);width:520px;height:520px;right:-160px;top:-180px;pointer-events:none}
.reason-1::after,.reason-2::after,.reason-3::after{content:"";position:absolute;border-radius:50%;background:rgba(255,255,255,.05);width:380px;height:380px;left:-120px;bottom:-150px;pointer-events:none}
.reason-1{background:#028a76}
.reason-2{background:#c22349}
.reason-3{background:#e6511d}
.bar{display:block;height:8px;border-radius:99px;background:#e2e6ec}

/* R1 料金カード */
.spark{pointer-events:none}
.spark path{fill:none;stroke-width:5;stroke-linecap:round}
.spark-y path{stroke:#f2c22e}
.spark-w path{stroke:#fff}
.w40{width:40%}.w50{width:50%}.w60{width:60%}.w70{width:70%}.w85{width:85%}
.bar-o{background:var(--orange)}
.r1-head{margin-bottom:36px}
.r1-stage{position:relative;max-width:920px;margin:0 auto;padding-left:236px}
.r1-chara{position:absolute;left:-10px;bottom:-14px;width:300px;z-index:0}
.r1-chara img{filter:drop-shadow(0 16px 28px rgba(0,0,0,.22))}
.r1-chara .spark{position:absolute;top:-36px;left:4px;width:58px}
.r1-cards{position:relative;z-index:1;display:flex;gap:16px}
.r1-col{display:flex;flex-direction:column;gap:16px}
.r1-col:first-child{flex:1.25}
.r1-col:last-child{flex:1}
.r1-card{background:var(--white);border-radius:22px;box-shadow:var(--shadow-pop);display:flex;align-items:center;padding:20px 24px}
.r1-main{flex:1.5;padding:26px 28px}
.r1-sub{flex:1}
.ric{width:58px;align-self:stretch;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-right:16px}
.ric img{width:36px;height:36px}
.r1-main .ric img{width:48px;height:48px}
.r1-price{display:flex;align-items:baseline;font-weight:700;color:#0b584a;line-height:1}
.r1-price .u{font-size:26px}
.r1-price strong{font-family:'Poppins','Noto Sans JP',sans-serif;font-size:64px;letter-spacing:-.03em;margin:0 2px}
.r1-note{margin-top:10px;font-size:13px;font-weight:700;color:var(--mute);line-height:1.6}
.r1-sub p{font-size:18px;font-weight:700;line-height:1.5}

/* R2 伴走フロー図 */
.r2-grid{grid-template-columns:1.02fr .98fr;gap:40px}
.r2-grid .cover-h2{font-size:clamp(34px,3.5vw,50px)}
.r2-diagram{position:relative;max-width:540px;width:100%;justify-self:center;padding-bottom:24px}
.r2-card{position:relative;background:var(--white);border-radius:18px;box-shadow:var(--shadow-pop);padding:18px 20px}
.r2-c1{width:54%}
.r2-c2{width:62%;margin-left:38%;margin-top:-56px;z-index:1}
.r2-c3{width:58%;margin-left:41%;margin-top:34px}
.r2-head{display:flex;align-items:center;gap:10px}
.r2-head p{font-size:17px;font-weight:700}
.r2-head .dots{margin-left:auto;display:flex;gap:4px}
.r2-head .dots i{width:6px;height:6px;border-radius:50%;background:#f3c7d3}
.icb{display:flex;align-items:center;justify-content:center;flex-shrink:0}
.r2-head .icb{width:38px;height:38px;border-radius:12px}
.r2-head .icb img{width:22px;height:22px}
.icb-pk{background:#fbe4ec}
.icb-bl{background:#e4edfb}
.icb-gr{background:#dff3ef}
.icb-or{background:#fde8dd}
.r2-list{margin-top:12px;display:flex;flex-direction:column;gap:9px}
.r2-list li{display:flex;align-items:center;gap:10px;justify-content:space-between;font-size:13.5px;font-weight:700;color:var(--ink2)}
.r2-list .bar{width:32%;flex-shrink:0;height:7px}
.r2-rows{margin-top:12px;display:flex;flex-direction:column;gap:8px}
.r2-row{display:flex;align-items:center;gap:10px;background:var(--bg);border-radius:12px;padding:8px 12px;font-size:13.5px;font-weight:700;color:var(--ink2)}
.r2-row .icb{width:30px;height:30px;border-radius:9px}
.r2-row .icb img{width:18px;height:18px}
.r2-row .bar{margin-left:auto;width:24%;height:7px}
.r2-foot{margin-top:12px;text-align:center;font-size:12.5px;font-weight:700;color:var(--mute)}
.r2-c1::after{content:"";position:absolute;top:56%;right:-7px;width:12px;height:12px;border-radius:4px;background:#fff}
.r2-c2::before{content:"";position:absolute;bottom:calc(100% - 2px);left:24%;width:32%;height:30px;border-top:4px solid #fff;border-right:4px solid #fff;border-top-right-radius:16px}
.r2-c3::before{content:"";position:absolute;bottom:100%;left:52%;width:4px;height:34px;background:#fff}
.r2-c3::after{content:"";position:absolute;top:-40px;left:calc(52% - 4px);width:12px;height:12px;border-radius:4px;background:#fff}
.r2-diagram>.spark{position:absolute;width:34px}
.r2-diagram .s1{top:2%;right:30%}
.r2-diagram .s2{left:0;bottom:38%}
.r2-chara{position:absolute;left:-6%;bottom:-2px;width:40%;z-index:2}
.r2-chara img{filter:drop-shadow(0 16px 28px rgba(0,0,0,.22))}
.r2-more{margin-top:30px}
.r2-more a{display:inline-flex;align-items:center;gap:10px;color:#fff;font-size:16px;font-weight:700;padding-bottom:7px;border-bottom:2px solid rgba(255,255,255,.75);transition:opacity .25s}
.r2-more a:hover{opacity:.8}

/* R3 並走オーケストレーション図 */
.r3-grid{grid-template-columns:.72fr 1.28fr;gap:36px}
.r3-grid .cover-h2{font-size:clamp(32px,3.2vw,46px)}
.r3-note{margin-top:24px;color:#fff;font-size:15px;font-weight:700;line-height:1.8}
.r3-note::before{content:"";display:block;width:34px;height:3px;border-radius:2px;background:rgba(255,255,255,.5);margin-bottom:14px}
.r3-note strong{font-size:18px}
.r3-diagram{display:grid;grid-template-columns:184px 46px 1fr 46px 146px;align-items:stretch}
.r3-hub{position:relative;align-self:center;padding-top:86px}
.r3-chara{position:absolute;top:-4px;left:50%;translate:-50% 0;width:150px;z-index:0}
.r3-chara img{filter:drop-shadow(0 10px 18px rgba(0,0,0,.2))}
.r3-chara .spark{position:absolute;top:0;right:-16px;width:30px}
.r3-hubcard{position:relative;z-index:1;background:var(--white);border-radius:16px;box-shadow:var(--shadow-pop);padding:16px 18px}
.r3-hubcard p{font-size:15.5px;font-weight:700;line-height:1.55}
.r3-hubcard .bar{margin-top:8px;height:6px}
.r3-branch,.r3-conv{width:100%;height:100%;min-height:340px}
.r3-branch path,.r3-conv path{fill:none;stroke:#fff;stroke-width:3.5;stroke-linejoin:round}
.r3-branch path{marker-end:url(#r3arrow)}
.r3-cards{display:flex;flex-direction:column;gap:16px;align-self:center;min-width:0}
.r3-card{background:var(--white);border-radius:16px;box-shadow:var(--shadow-pop);padding:14px 16px}
.r3-ct{font-size:15px;font-weight:700;margin-bottom:10px}
.r3-cbody{display:flex;gap:12px;align-items:flex-start}
.r3-bars{flex:1;display:flex;flex-direction:column;gap:8px;min-width:0;padding-top:2px}
.r3-bars .bar{height:7px}
.r3-thumb{background:var(--white);border:1px solid var(--line);border-radius:10px;padding:8px 10px;width:96px;flex-shrink:0;display:flex;flex-direction:column;gap:5px;box-shadow:0 4px 10px rgba(24,24,27,.06)}
.r3-thumb .bar{height:5px}
.r3-flowmini{display:flex;align-items:center;gap:6px}
.fm{height:26px;border-radius:7px;flex:1}
.fm-bl{background:#a9c3f5}
.fm-gr{background:#9fd8cc}
.fm-or{background:#f9c1a6}
.fa{width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:7px solid var(--faint);flex-shrink:0}
.r3-flowbars{display:flex;gap:6px;margin-top:8px}
.r3-flowbars .bar{flex:1;height:5px}
.r3-listthumb{width:86px}
.r3-listthumb .li{display:flex;align-items:center;gap:5px}
.r3-listthumb .li i{width:7px;height:7px;border-radius:50%;background:#c8ccd3;flex-shrink:0}
.r3-listthumb .li .bar{flex:1;height:5px}
.r3-listthumb .li-hl{background:#e2f4ee;border-radius:5px;padding:3px 5px;margin:0 -5px}
.r3-listthumb .li-hl i{background:var(--green)}
.r3-panelthumb{width:96px}
.tglrow{display:flex;align-items:center;justify-content:space-between;gap:6px}
.tglrow .bar{flex:none}
.tgl{width:26px;height:14px;border-radius:99px;background:var(--green);position:relative;flex-shrink:0}
.tgl::after{content:"";position:absolute;right:2px;top:2px;width:10px;height:10px;border-radius:50%;background:#fff}
.r3-qc{align-self:center;background:var(--white);border-radius:18px;box-shadow:var(--shadow-pop);padding:22px 16px;text-align:center}
.qc-av{width:64px;height:64px;border-radius:50%;background:#ffe9d2;display:inline-flex;align-items:center;justify-content:center}
.qc-av img{width:34px;height:34px}
.r3-qc p{margin:10px 0 8px;font-size:15.5px;font-weight:700;line-height:1.5}
.r3-qc .bar{margin:6px auto 0;width:72%;height:6px}
.r3-qc .bar.w60{width:52%}


/* 画面が低いときはSTRENGTH図解を詰めてスタック枠内に収める */
@media(min-width:735px) and (max-height:840px){
  .cover{padding:28px 0}
  .r2-card{padding:13px 16px}
  .r2-head p{font-size:15.5px}
  .r2-head .icb{width:34px;height:34px;border-radius:10px}
  .r2-head .icb img{width:20px;height:20px}
  .r2-list{margin-top:9px;gap:6px}
  .r2-list li{font-size:12.5px}
  .r2-list .bar{height:6px}
  .r2-rows{margin-top:9px;gap:6px}
  .r2-row{padding:6px 10px;font-size:12.5px}
  .r2-row .icb{width:26px;height:26px;border-radius:8px}
  .r2-row .icb img{width:16px;height:16px}
  .r2-row .bar{height:6px}
  .r2-foot{margin-top:9px;font-size:11.5px}
  .r2-c2{margin-top:-64px}
  .r2-c3{margin-top:26px}
  .r2-c2::before{height:26px}
  .r2-c3::before{height:26px}
  .r2-c3::after{top:-32px}
  .r2-chara{width:36%}
  .r2-diagram{padding-bottom:14px}
  .r1-head{margin-bottom:24px}
  .r3-cards{gap:12px}
  .r3-card{padding:12px 14px}
}

/* ============================================================
   COMPARISON（lp5比較表・料金行なし）
   ============================================================ */
.compare{background:var(--bg);position:relative;z-index:12;padding:110px 0 110px}
.compare-scroll{overflow-x:auto;padding:34px 2px 34px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.compare-scroll::-webkit-scrollbar{display:none}
.compare-wrap{position:relative}
.compare-wrap::after{
  content:"";position:absolute;top:34px;bottom:34px;right:0;width:56px;pointer-events:none;
  background:linear-gradient(90deg,rgba(244,246,249,0),rgba(244,246,249,.96));
}
.compare-hint{display:none;margin:6px 0 0;text-align:center;font-size:12px;color:var(--mute)}
.compare-table{
  display:grid;grid-template-columns:180px repeat(4,1fr);min-width:880px;max-width:1080px;margin:0 auto;
  background:var(--white);border-radius:36px;box-shadow:var(--shadow-card);
}
.ct{padding:19px 16px;text-align:center;font-size:14px;color:var(--ink2);border-bottom:1px solid var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;line-height:1.55}
.ct small{font-size:11px;color:var(--mute)}
.ct-label{align-items:flex-start;text-align:left;font-weight:700;color:var(--ink);font-size:14px;padding-left:26px}
.ct-head{font-weight:700;color:var(--ink);font-size:14.5px;padding:20px 10px}
.ct-end{border-bottom:none}
.ct-main{background:var(--blue);color:#fff;font-weight:700;border-bottom:1px solid rgba(255,255,255,.22)}
.ct-main small{color:rgba(255,255,255,.85)}
.ct-main.ct-head{border-radius:18px 18px 0 0;margin-top:-24px;padding-top:24px}
.ct-main.ct-end{border-radius:0 0 18px 18px;margin-bottom:-24px;padding-bottom:24px;border-bottom:none}
.ct-main.ct-head img{height:24px;width:auto;max-width:none;background:#fff;border-radius:12px;padding:9px 16px;box-sizing:content-box}
.mark{display:block;font-size:19px;font-weight:700;line-height:1;font-style:normal;margin-bottom:2px}
.ct .mark{color:var(--mute)}
.ct-main .mark{color:#fff;font-size:21px}
.cmain-strong{font-size:19px;font-weight:700;color:#fff}
.compare-note{margin-top:16px;text-align:center;font-size:12.5px;color:var(--mute)}

/* ============================================================
   CASES（lp5実績・横スライダー）
   ============================================================ */
.cases{background:var(--bg);padding:0 0 100px;position:relative;z-index:12}
.cases-outer{position:relative;max-width:1400px;margin:0 auto}
.cases-track{
  overflow:hidden;padding:10px 0 26px;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);
}
.cases-row{display:flex;width:max-content;will-change:transform}
.cases-set{display:flex;gap:22px;padding-right:22px}
.cases-set .case-card{width:352px;flex-shrink:0}
.case-card{
background:var(--white);border-radius:var(--r-cardL);overflow:hidden;
  display:flex;flex-direction:column;box-shadow:var(--shadow-card);
  transition:transform .3s ease,box-shadow .3s ease;
}
.case-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-pop)}
.case-shot{
  position:relative;aspect-ratio:16/10;overflow:hidden;padding:24px;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(180deg,transparent 0%,transparent 55%,#fff 55%,#fff 100%),linear-gradient(135deg,var(--blue) 0%,var(--blue2) 100%);
}
.case-shot img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:8px;box-shadow:0 12px 32px rgba(15,10,31,.2);position:relative;z-index:2;transition:transform .7s cubic-bezier(.2,.8,.2,1)}
.case-card:hover .case-shot img{transform:scale(1.03)}
.case-period{
  position:absolute;right:12px;bottom:12px;z-index:3;background:var(--ink);color:#fff;
  border-radius:var(--r-pill);font-size:11.5px;font-weight:700;padding:5px 14px;
}
.case-period b{font-family:'Poppins',sans-serif;font-size:14px}
.case-body{padding:22px 24px 24px;display:flex;flex-direction:column;flex:1}
.case-t{font-size:20px;font-weight:700;line-height:1.45;letter-spacing:-.01em}
.case-ba{margin-top:14px;border-top:1px dashed var(--line);padding-top:14px;display:flex;flex-direction:column;gap:10px}
.case-row{display:flex;gap:10px;align-items:flex-start}
.case-row .lb{
  flex-shrink:0;width:52px;text-align:center;border-radius:6px;
  font-size:11px;font-weight:700;padding:3px 0;margin-top:4px;
}
.case-row.before .lb{background:var(--bg);color:var(--mute)}
.case-row.after .lb{background:var(--ink);color:#fff}
.case-row p{font-size:14px;line-height:1.65;color:var(--ink2)}
.case-row p strong{color:var(--ink)}
.case-result{margin-top:auto;padding-top:16px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.case-result .cap{font-size:12px;color:var(--mute)}
.case-result .num{font-family:'Poppins','Noto Sans JP',sans-serif;font-size:15px;font-weight:700;color:var(--mute)}
.case-result .num b{font-size:27px;color:var(--ink)}
.case-result .num .ar{margin:0 6px;color:var(--mute)}
.cases-more{text-align:center;margin-top:26px}

/* ============================================================
   VOICES（lp5企業様の声）
   ============================================================ */
.voices{background:var(--bg);padding:110px 0 120px;position:relative;z-index:12}
.voice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;max-width:1180px;margin:0 auto;padding-top:34px}
.voice-card{background:var(--white);border-radius:var(--r-cardL);padding:0 30px 26px;box-shadow:var(--shadow-card);display:flex;flex-direction:column;overflow:visible}
.voice-who{display:flex;align-items:flex-end;gap:14px}
.voice-avatar{flex-shrink:0;width:68px;height:68px;margin-top:-34px;border-radius:50%;overflow:hidden;box-shadow:0 0 0 4px #fff,0 8px 20px rgba(20,30,60,.18)}
.voice-avatar img{width:100%;height:100%;object-fit:cover}
.voice-role{font-size:15px;font-weight:700;line-height:1.4;padding:14px 0 0}
.voice-role small{display:block;font-size:11.5px;font-weight:600;color:var(--mute);margin-top:2px}
.voice-t{margin:14px 0 12px;font-size:19px;font-weight:700;line-height:1.5;letter-spacing:-.01em}
.voice-t em{font-style:normal;color:var(--vc-deep,var(--vc,var(--blue)))}
.voice-ba-k{display:table;margin:0 0 8px;padding:4px 12px;background:var(--ink);color:#fff;font-size:11px;font-weight:700;letter-spacing:.06em;border-radius:6px}
.voice-ba-grid{display:grid;grid-template-columns:1fr 22px 1fr;align-items:stretch}
.voice-ba-cell{border-radius:10px;padding:12px 8px 13px;text-align:center;display:flex;flex-direction:column;justify-content:center;gap:4px}
.voice-ba-cell.is-before{background:#eef0f5}
.voice-ba-cell.is-after{background:var(--vc-deep,var(--vc,var(--blue)))}
.voice-ba-label{font-size:10.5px;font-weight:700;letter-spacing:.05em}
.voice-ba-cell.is-before .voice-ba-label{color:var(--mute)}
.voice-ba-cell.is-after .voice-ba-label{color:#fff}
.voice-ba-val{font-weight:700;line-height:1.3;word-break:auto-phrase}
.voice-ba-cell.is-before .voice-ba-val{position:relative;display:inline-block;margin:0 auto;font-size:15.5px;color:var(--ink2)}
.voice-ba-cell.is-before .voice-ba-val::after{content:'';position:absolute;left:-6%;right:-6%;top:46%;height:.3em;background:url('../lp/images/brush/brush-red.png') center/100% 100% no-repeat;transform:rotate(-5deg)}
.voice-ba-cell.is-after .voice-ba-val{font-size:19px;color:#fff}
.voice-ba-cell.is-after .voice-ba-val em{font-style:normal;font-size:1.65em;line-height:1}
.voice-ba-arrow{align-self:center;justify-self:center;width:0;height:0;border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:10px solid var(--vc-deep,var(--vc,var(--blue)))}
.voice-quote{margin-top:14px;font-size:14px;font-weight:500;line-height:1.75;color:var(--ink)}
.voice-quote b{background:linear-gradient(transparent 58%,rgba(254,217,66,.75) 58%);font-weight:700;padding:0 .06em}
.voice-work{display:flex;align-items:center;gap:12px;margin-top:auto;padding-top:16px;margin-top:16px}
.voice-work dt{flex-shrink:0;font-size:12px;font-weight:700;color:var(--vc-deep,var(--vc,var(--blue)))}
.voice-work dd{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.voice-work dd span{display:inline-block;padding:4px 10px;background:#eceef4;color:var(--ink2);font-size:11px;font-weight:600;border-radius:6px}
.voices-note{margin-top:20px;text-align:center;font-size:12px;color:var(--mute)}

/* ============================================================
   MEMBER
   ============================================================ */
.member{background:var(--white);padding:92px 0 50px;position:relative;z-index:13}
.member-slider{
  overflow:hidden;margin-top:44px;padding:8px 0 16px;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);
}
.member-track{display:flex;width:max-content;will-change:transform}
.member-set{display:flex;gap:22px;padding-right:22px}
.flip-card{width:272px;height:368px;perspective:1300px;flex-shrink:0;text-align:left;-webkit-tap-highlight-color:transparent}
.flip-inner{position:relative;display:block;width:100%;height:100%;transition:transform .75s cubic-bezier(.2,.7,.2,1);transform-style:preserve-3d}
@media(hover:hover){
  .flip-card:hover .flip-inner{transform:rotateY(180deg)}
}
.flip-card:focus-visible .flip-inner,.flip-card.flipped .flip-inner{transform:rotateY(180deg)}
.flip-front,.flip-back{
  position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;
  border-radius:var(--r-cardL);display:flex;flex-direction:column;padding:28px;
}
.flip-front{background:var(--mc);color:#fff;align-items:center;justify-content:center;gap:10px;overflow:hidden}
.flip-front::before{
  content:attr(data-wm);position:absolute;right:-8px;top:-14px;
  font-family:'Poppins',sans-serif;font-size:96px;font-weight:700;letter-spacing:-.02em;
  color:rgba(255,255,255,.1);line-height:1;pointer-events:none;
}
.flip-front::after{
  content:"";position:absolute;left:18px;bottom:16px;width:22px;height:22px;
  background:rgba(255,255,255,.35);
  clip-path:polygon(50% 0%,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0% 50%,38% 38%);
  pointer-events:none;
}
.flip-ava{
  width:112px;height:112px;border-radius:50%;object-fit:cover;
  margin-bottom:10px;box-shadow:0 0 0 4px rgba(255,255,255,.9),0 10px 24px rgba(10,20,50,.22);
}
.flip-role{font-size:13px;font-weight:700;background:#fff;color:var(--ink);border-radius:var(--r-pill);padding:5px 15px}
.flip-name{font-family:'Poppins',sans-serif;font-size:31px;font-weight:700;letter-spacing:.04em}
.flip-back{background:var(--ink);color:#fff;transform:rotateY(180deg);justify-content:center;gap:12px}
.flip-role-b{font-size:12.5px;font-weight:700;color:#c9cedb}
.flip-bio{font-size:13px;line-height:1.9;font-weight:400}

/* ============================================================
   ABOUT（写真×コピー）
   ============================================================ */
.about{background:var(--white);padding:110px 0 120px;position:relative;z-index:13}
.about-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;max-width:1140px;margin:0 auto}
.about-copy .sec-eyebrow{margin-bottom:12px}
.about-h{font-size:clamp(28px,2.85vw,40px);font-weight:700;line-height:1.4;letter-spacing:-.03em;white-space:nowrap}
.about-beats{margin-top:20px;display:flex;flex-direction:column;gap:12px}
.about-beats p{font-size:15.5px;color:var(--ink2);line-height:1.75}
.about-beats p b{color:var(--ink)}
.about-h em{font-style:normal;color:var(--blue)}
.about-stats{display:flex;margin-top:30px;flex-wrap:wrap;row-gap:22px}
.about-stat{position:relative;display:flex;flex-direction:column;gap:5px;padding:0 clamp(18px,2vw,30px)}
.about-stat:first-child{padding-left:0}
.about-stat .k{font-size:12.5px;font-weight:700;color:var(--mute);letter-spacing:.02em}
.about-stat .v{font-size:clamp(19px,1.75vw,25px);font-weight:700;letter-spacing:-.025em;line-height:1.2;white-space:nowrap}
.about-stat::after{content:"";display:block;height:5px;border-radius:999px;margin-top:9px}
.about-stat.s-blue::after{background:rgba(19,85,205,.26)}
.about-stat.s-green::after{background:rgba(2,167,144,.28)}
.about-stat.s-orange::after{background:rgba(249,97,47,.28)}
.about-stat b{font-family:'Poppins','Noto Sans JP',sans-serif}
.about-visual{position:relative}
.about-photo{position:relative;z-index:1;box-shadow:var(--shadow-pop)}
/* 写真の後ろに敷く、やわらかい色面 */
.visual-blob{
  position:absolute;z-index:0;top:-11%;left:-13%;right:-3%;bottom:-4%;pointer-events:none;
  background:linear-gradient(150deg,rgba(19,85,205,.16) 0%,rgba(2,167,144,.12) 56%,rgba(249,97,47,.09) 100%);
  border-radius:56% 44% 50% 50% / 42% 58% 42% 58%;
}
.about-photo img{display:block;width:100%;height:100%;object-fit:cover;aspect-ratio:4/3;vertical-align:bottom}

/* ============================================================
   FLOW
   ============================================================ */
.flow{background:var(--bg);padding:110px 0;position:relative;z-index:14;overflow:clip}
.flow-grid{display:flex;max-width:1160px;margin:0 auto;gap:0;align-items:stretch;position:relative;z-index:2}
.flow-step{flex:1;position:relative;text-align:center;padding:0 10px}
.flow-step::before{
  content:"";position:absolute;top:29px;left:calc(50% + 34px);right:calc(-50% + 34px);
  border-top:2px dotted var(--faint);
}
.flow-step:last-child::before{display:none}
.flow-num{
  width:58px;height:58px;border-radius:50%;margin:0 auto;color:#fff;
  display:flex;align-items:center;justify-content:center;font-family:'Poppins',sans-serif;
  font-size:19px;font-weight:700;position:relative;z-index:2;
}
.flow-step:nth-child(1) .flow-num{background:var(--green)}
.flow-step:nth-child(2) .flow-num{background:var(--blue)}
.flow-step:nth-child(3) .flow-num{background:var(--pink)}
.flow-step:nth-child(4) .flow-num{background:var(--orange)}
.flow-step:nth-child(5) .flow-num{background:var(--ink)}
.flow-t{margin-top:16px;font-size:17px;font-weight:700}
.flow-d{margin-top:6px;font-size:12.5px;color:var(--mute);line-height:1.7}

/* ============================================================
   FAQ / COMPANY
   ============================================================ */
.faq{background:var(--white);padding:120px 0;position:relative;z-index:15}
.faq-grid{display:grid;grid-template-columns:.85fr 1.5fr;gap:70px;max-width:1180px;margin:0 auto;align-items:start}
.faq-left{position:sticky;top:calc(var(--head-h) + 40px)}
.faq-left .sec-h2{font-size:clamp(34px,3.4vw,48px)}
.faq-photo{margin-top:36px;box-shadow:var(--shadow-card)}
.faq-photo img{width:100%;height:auto;display:block}
.faq-list{min-width:0}
.faq-item{border-bottom:1px solid var(--line)}
.faq-q{
  width:100%;display:flex;align-items:center;gap:16px;text-align:left;
  padding:22px 6px;font-size:16.5px;font-weight:700;line-height:1.7;
}
.faq-q .qm{font-family:'Poppins',sans-serif;color:var(--blue);font-weight:700;flex-shrink:0}
.faq-x{margin-left:auto;flex-shrink:0;width:26px;height:26px;position:relative;transition:rotate .35s ease}
.faq-x::before,.faq-x::after{content:"";position:absolute;background:var(--ink);border-radius:2px;top:50%;left:50%}
.faq-x::before{width:15px;height:2px;translate:-50% -50%}
.faq-x::after{width:2px;height:15px;translate:-50% -50%}
.faq-item.open .faq-x{rotate:135deg}
.faq-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s cubic-bezier(.3,.7,.3,1)}
.faq-item.open .faq-a{grid-template-rows:1fr}
.faq-a-in{overflow:hidden}
.faq-a p{padding:0 40px 22px 34px;font-size:14.5px;color:var(--ink2)}

.company{background:var(--white);padding:0 0 120px;position:relative;z-index:15}
.company-h{text-align:center;font-size:clamp(26px,2.4vw,34px);font-weight:700;letter-spacing:-.03em;margin-bottom:30px}
.company-table{max-width:820px;margin:0 auto;background:var(--white);border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden}
.company-table dl{display:grid;grid-template-columns:200px 1fr}
.company-table dt{padding:18px 26px;font-size:14px;font-weight:700;background:var(--bg);border-bottom:1px solid var(--line)}
.company-table dd{padding:18px 26px;font-size:14.5px;color:var(--ink2);border-bottom:1px solid var(--line)}
.company-table dt:last-of-type,.company-table dd:last-of-type{border-bottom:none}

/* ============================================================
   PRECTA
   ============================================================ */
.precta{background:var(--bg);position:relative;z-index:16;padding:120px 0 0;overflow:clip}
.precta-road{position:absolute;left:-6%;width:112%;top:18%;aspect-ratio:1442/580;pointer-events:none;opacity:.55}
.precta-road svg{width:100%;height:100%;overflow:visible}
.precta-inner{position:relative;z-index:2;text-align:center;padding:0 24px}
.precta-h{font-size:clamp(38px,4vw,58px);font-weight:700;line-height:1.35;letter-spacing:-.04em}
.precta-lead{margin-top:16px;font-size:15.5px;color:var(--ink2)}
.precta-btns{margin-top:30px;display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.precta-btns .btn-pill,.precta-btns .btn-ghost{padding:23px 42px;font-size:19px;letter-spacing:-.02em}
.precta-badges{margin-top:24px;display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.precta-badges span{background:var(--white);border-radius:var(--r-pill);box-shadow:var(--shadow-card);font-size:13.5px;font-weight:700;padding:9px 20px}
.precta-photo{
  position:relative;z-index:2;max-width:1160px;margin:64px auto 0;
  border-radius:26px 26px 0 0;overflow:hidden;box-shadow:0 -14px 44px rgba(20,30,60,.14);
}
.precta-photo img{width:100%;height:auto;display:block}

/* ============================================================
   FOOTER / FLOAT CTA
   ============================================================ */
.site-foot{background:var(--white);border-top:1px solid var(--line);padding:64px 0 36px;position:relative;z-index:20}
.foot-grid{display:flex;gap:60px;max-width:1240px;margin:0 auto;padding:0 32px;flex-wrap:wrap}
.foot-brand img{height:26px;width:auto;max-width:none}
.foot-brand p{margin-top:14px;font-size:13px;color:var(--mute);max-width:300px}
.foot-cols{display:flex;gap:60px;margin-left:auto;flex-wrap:wrap}
.foot-col-h{font-size:13px;font-weight:700;color:var(--mute);margin-bottom:12px}
.foot-col a{display:block;font-size:14px;font-weight:500;color:var(--ink);margin:9px 0}
.foot-col a:hover{opacity:.6}
.foot-legal{max-width:1240px;margin:44px auto 0;padding:22px 32px 0;border-top:1px solid var(--line);display:flex;gap:24px;align-items:center;flex-wrap:wrap}
.foot-copy{margin-left:auto;font-size:12px;color:var(--mute)}

.float-cta{
  position:fixed;left:0;right:0;bottom:0;z-index:800;
  display:none;padding:10px 16px calc(10px + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.94);backdrop-filter:blur(12px);
  border-top:1px solid var(--line);
  translate:0 100%;transition:translate .35s cubic-bezier(.33,0,.15,1);
}
.float-cta.show{translate:0 0}
.float-cta .btn-pill{display:flex;width:100%;padding:15px 24px;font-size:15.5px}

/* ============================================================
   レスポンシブ
   ============================================================ */
@media(max-width:1080px){
  .sec-h2{font-size:34px}
  .cover-h2,.reason-copy .cover-h2{font-size:36px}
  .reason-grid{grid-template-columns:1fr;gap:30px;max-width:640px}
  .r1-stage{padding-left:0;max-width:640px}
  .r1-chara{display:none}
  .r2-grid .r2-diagram{order:2}
  .r3-grid .r3-diagram{order:2}
  .r3-diagram{grid-template-columns:150px 36px 1fr 36px 128px}
  .about-grid{grid-template-columns:1fr;gap:36px;max-width:640px}
  .faq-grid{grid-template-columns:1fr;gap:30px}
  .faq-left{position:static}
  .faq-photo{margin-top:16px}
  .voice-grid{grid-template-columns:1fr;max-width:620px}
  .precta-h{font-size:36px}
  .fv{min-height:700px}
}
@media(max-width:920px){
  .worry-grid{grid-template-columns:1fr;max-width:560px}
  .ba-grid{grid-template-columns:1fr;max-width:560px;gap:0}
  .ba-arrow{padding:16px 0}
  .ba-arrow i{rotate:90deg}
  .flow-grid{flex-direction:column;max-width:420px;gap:0}
  .flow-step{display:flex;align-items:flex-start;text-align:left;gap:18px;padding:0 0 30px}
  .flow-step::before{left:28px;right:auto;top:64px;bottom:-6px;border-top:none;border-left:2px dotted var(--faint)}
  .flow-num{margin:0;flex-shrink:0}
  .flow-body{padding-top:6px}
  .flow-t{margin-top:0}
}
@media(max-width:734px){
  :root{--head-h:62px;--r-panel:28px}
  .wrap{padding:0 20px}
  .sp-only{display:inline}
  .pc-only{display:none}
  .head-inner{padding:0 16px;gap:12px}
  .head-logo img{height:27px}
  .head-nav{display:none}
  .head-cta-sp{display:block;margin-left:auto}
  .btn-pill{padding:11px 20px;font-size:13.5px}

  /* FV: SPは通常フロー */
  .fv-wrap{height:auto;min-height:0}
  .fv{position:relative;top:auto;height:auto;min-height:100svh;max-height:none;padding-bottom:16px}
  .worry{margin-top:0 !important}
  .fv-main{position:relative;left:auto;translate:0 0;top:auto;width:auto;padding:calc(var(--head-h) + 16px) 20px 0;margin:0 auto;text-align:center}
  .fv-h1 .l1{font-size:24px}
  .fv-h1 .l2{font-size:40px}
  .fv-chat{margin-top:16px}
  .chat-q{font-size:14.5px}
  .chat-card{min-height:0}
  .chat-input{height:58px;flex:none;font-size:16px}
  .chat-foot{flex-direction:column;align-items:stretch;gap:10px}
  .chat-chips{gap:6px}
  .chip{font-size:11.5px;padding:4px 11px}
  .chat-actions{justify-content:flex-end}
  .fv-road{position:absolute;left:-14%;width:124%;bottom:24vw;aspect-ratio:1442/580}
  .spk:nth-child(2),.spk:nth-child(3),.spk:nth-child(9),.spk:nth-child(10){display:none}
  .fv-charas{position:relative;inset:auto;display:flex;align-items:flex-end;justify-content:center;gap:2%;margin-top:18px;padding:0 10px;z-index:4}
  .chara{position:relative;left:auto;bottom:auto;translate:0 0}
  .chara-1{height:27vw}
  .chara-2{height:28vw}
  .chara-3{height:24vw}
  .chara-4{height:27vw}
  .fv-tools{position:relative;bottom:auto;padding:4px 14px 0}
  .tools-band{flex-direction:column;gap:12px;padding:16px 18px;align-items:flex-start;min-height:0}
  .tools-logos{align-self:stretch;width:100%;flex:none;-webkit-mask-image:linear-gradient(90deg,transparent,#000 14px,#000 calc(100% - 14px),transparent);mask-image:linear-gradient(90deg,transparent,#000 14px,#000 calc(100% - 14px),transparent)}
  .tools-label{font-size:13.5px}
  .tools-label br{display:none}
  .tools-set{gap:20px;padding-right:20px}
  .tool{gap:20px;font-size:13.5px}
  .tool::before{width:4px;height:4px}

  .worry{padding:64px 0 56px;margin-top:0}
  .sec-head{margin-bottom:34px}
  .sec-h2{font-size:28px}
  .sec-lead{font-size:14px}
  .worry-card{padding:0 20px 18px}
  .worry-illo{margin:0 -20px 0;height:170px}
  .worry-illo img{height:150px}
  .worry-t{font-size:18px}
  .ba{padding:56px 0 64px}
  .ba-card{padding:24px 20px 20px}
  .ba-item p{font-size:14px}

  /* SPは中身が1画面を超えるので、貼り付けをやめて内容の高さに合わせる（切れ防止） */
  .cover{position:relative;top:auto;min-height:0;padding:44px 0 40px;width:calc(100% - 24px);margin:0 auto 14px;border-radius:22px}
  .covers{padding-bottom:14px}
  .covers::after{display:none}
  .member{padding-top:64px}
  .svc-accent-jp{display:none}
  .svc-accent-en{display:none}
  .cover-h2,.reason-copy .cover-h2{font-size:29px}
  .cover-lead{font-size:15px}
  .cover-head{margin-bottom:22px}
  .svc-grid2{grid-template-columns:1fr;gap:22px}
  .svc-head{text-align:center}
  .svc-head .svc-note{justify-content:center}
  .svc-accent-en{font-size:24px;bottom:4%}
  .svc-accent-jp{font-size:13px;top:5%}
  .svc-pills{gap:8px;max-width:none}

  .svc-pill{padding:12px 12px;min-height:56px;gap:8px}
  .svc-pill .pi{width:20px;height:20px}
  .svc-pill .pi img{width:20px;height:20px}
  .svc-pill>span:last-child{font-size:12px}
  .svc-note{margin-top:18px;font-size:12px}
  .peek-chara{display:none}
  .r1-head{margin-bottom:24px}
  .r1-cards{flex-direction:column;gap:12px}
  .r1-col{gap:12px}
  .r1-card{border-radius:18px;padding:16px 18px}
  .r1-main{padding:20px 18px}
  .r1-price .u{font-size:20px}
  .r1-price strong{font-size:48px}
  .r1-note{font-size:12px;margin-top:8px}
  .r1-sub p{font-size:15px}
  .r1-sub p br{display:none}
  .ric{width:46px;margin-right:12px}
  .ric img{width:28px;height:28px}
  .r1-main .ric img{width:36px;height:36px}
  .r2-diagram{padding-bottom:34px}
  .r2-c1{width:80%}
  .r2-c2{width:86%;margin-left:14%;margin-top:-18px}
  .r2-c3{width:82%;margin-left:18%;margin-top:30px}
  .r2-card{padding:14px 16px;border-radius:15px}
  .r2-head p{font-size:15px}
  .r2-head .icb{width:32px;height:32px;border-radius:10px}
  .r2-head .icb img{width:19px;height:19px}
  .r2-list li{font-size:12.5px}
  .r2-row{font-size:12.5px;padding:7px 10px}
  .r2-foot{font-size:11.5px}
  .r2-c2::before{height:26px;border-width:3px}
  .r2-c3::before{height:26px}
  .r2-c3::after{top:-32px}
  .r2-chara{width:32%;left:-4%}
  .r2-diagram>.spark{width:26px}
  .r2-more{margin-top:22px}
  .r2-more a{font-size:14.5px}
  .r3-note{font-size:13.5px;margin-top:18px}
  .r3-note strong{font-size:16px}
  .r3-diagram{display:flex;flex-direction:column;gap:14px}
  .r3-branch,.r3-conv{display:none}
  .r3-hub{padding-top:74px;max-width:320px;align-self:flex-start}
  .r3-chara{width:124px;left:56px;translate:0 0}
  .r3-cards{gap:12px;align-self:stretch}
  .r3-qc{display:flex;align-items:center;gap:14px;text-align:left;padding:14px 18px;align-self:stretch}
  .qc-av{width:46px;height:46px;flex-shrink:0}
  .qc-av img{width:24px;height:24px}
  .r3-qc p{margin:0;font-size:14.5px}
  .r3-qc p br{display:none}
  .r3-qc .bar{display:none}
  .compare{padding:70px 0 80px}
  .compare-hint{display:block}
  .compare-table{grid-template-columns:104px repeat(4,138px);width:max-content;min-width:100%;max-width:none;margin:0}
  .ct{padding:13px 8px;font-size:12px}
  .ct-label{font-size:11.5px;padding-left:14px}
  .ct-main.ct-head{margin-top:-16px;padding-top:16px}
  .ct-main.ct-end{margin-bottom:-16px;padding-bottom:16px}
  .ct-main.ct-head img{height:20px;padding:7px 10px}
  .compare-scroll{padding:22px 2px 22px}
  .cases{padding:0 0 64px}
  .cases-set{gap:14px;padding-right:14px}
  .cases-set .case-card{width:84vw}
  .case-t{font-size:17px}
  .voices{padding:64px 0 64px}
  .voice-card{padding:24px 20px 20px}

  .member{padding:64px 0 24px}
  .member-slider{margin-top:28px}
  .member-set{gap:14px;padding-right:14px}
  .flip-card{width:236px;height:330px}
  .flip-front,.flip-back{padding:20px}
  .flip-ava{width:92px;height:92px}
  .flip-name{font-size:26px}
  .flip-bio{font-size:12.5px;line-height:1.8}

  .about{padding:64px 0 64px}
  .about-h{font-size:24px;white-space:normal}
  .about-beats p{font-size:14px}
  .flow{padding:70px 0}
  .faq{padding:72px 0}
  .faq-grid{grid-template-columns:1fr;gap:26px}
  .faq-left{position:static}
  .faq-photo{margin-top:14px}
  .faq-q{font-size:14.5px;padding:18px 2px}
  .faq-a p{padding:0 16px 18px 30px;font-size:13.5px}
  .company{padding-bottom:72px}
  .company-table dl{grid-template-columns:1fr}
  .company-table dt{padding:12px 20px 4px;background:transparent;border-bottom:none;color:var(--mute);font-size:12.5px}
  .company-table dd{padding:0 20px 14px;border-bottom:1px solid var(--line)}
  .company-table dd:last-of-type{border-bottom:none}
  .precta{padding-top:70px}
  .precta-h{font-size:27px}
  .precta-lead{font-size:13.5px}
  .precta-btns{margin-top:22px;gap:10px}
  .precta-btns .btn-pill,.precta-btns .btn-ghost{padding:16px 30px;font-size:15px}
  .precta-badges span{font-size:12px;padding:7px 14px}
  .precta-photo{margin-top:40px;border-radius:18px 18px 0 0}
  .foot-grid{gap:34px}
  .foot-cols{display:grid;grid-template-columns:1fr 1fr;gap:22px 18px;margin-left:0;width:100%}
  .foot-col a{font-size:13.5px;margin:7px 0}
  .float-cta{display:block}
  body{padding-bottom:76px}
}
@keyframes toolScroll{to{transform:translateX(-50%)}}

/* 低いビューポートではカバー固定をやめる */
@media(max-height:600px){
  .cover{position:relative;min-height:auto}
}

/* ============================================================
   アクセシビリティ・フォールバック
   ============================================================ */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01s !important;animation-delay:0s !important;transition-duration:.01s !important}
  #loader{display:none}
  .rv,.fvi{opacity:1;translate:0 0}
  .fv-road path{stroke-dashoffset:0}
  .chara-pop{opacity:1;transform:none;animation:none}
  /* 自動スライドを止める設定でも、手では横に送れるようにしておく */
  .cases-track,.member-slider{overflow-x:auto;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
  .case-card,.flip-card{scroll-snap-align:center}
}
html.static-mode .svc-pill.rv{scale:1}
html.static-mode #loader{display:none}
html.static-mode .fv-road path{animation:none;stroke-dashoffset:0}
html.static-mode .chara-pop{animation:none;opacity:1;transform:none}

/* ?pc=1: スマホからPCレイアウトを確認するモード（1440固定・高さは900相当） */
html.force-pc .fv{height:900px;min-height:900px;max-height:900px}
html.force-pc .cover{min-height:830px}

/* ============================================================
   リッチ化: ポップ登場・せり上がり・ドラッグ
   ============================================================ */
.svc-pill.rv{scale:.72;transition:opacity .55s cubic-bezier(.34,1.56,.64,1),translate .55s cubic-bezier(.34,1.56,.64,1),scale .55s cubic-bezier(.34,1.56,.64,1),transform .3s ease;transition-delay:var(--d,0s)}
.svc-pill.rv.on{scale:1}
.rv-peek{translate:0 46%;opacity:0;transition:translate .8s cubic-bezier(.26,1.35,.42,1),opacity .5s ease;transition-delay:.15s}
.rv-peek.on{translate:0 0;opacity:1}
html.no-js .rv-peek,html.static-mode .rv-peek{translate:0 0;opacity:1}
.chara img{pointer-events:auto;cursor:pointer}
@media(prefers-reduced-motion:reduce){
  .rv-peek{translate:0 0;opacity:1}
  .svc-pill.rv{scale:1}
}

/* ============================================================
   日本語組版: みなしご行の系統対処
   ============================================================ */
p,li,.worry-d,.case-row p,.voice-quote,.flip-bio,.about-beats p,
.cover-lead,.sec-lead,.precta-lead,.faq-a p,.rail-d,.flow-d,
.r3-note,.ct,.company-table dd,
.output-d,.foot-brand p,.compare-note,.worry-note,.voices-note{
  text-wrap:pretty;
}
h1,h2,h3,.sec-h2,.cover-h2,.worry-t,.case-t,.voice-t,.about-h,
.precta-h,.faq-q,.svc-head .cover-h2,.company-h,.output-h{
  text-wrap:balance;
}
/* 数値・単位は絶対に割らない */
.case-result .num,.case-result .cap,.voice-ba-val,.r1-price,
.stat-v,.plan-price,.about-stat,.precta-badges span{white-space:nowrap}

/* ============================================================
   後半セクションの背景模様（読みやすさを壊さない濃度）
   ============================================================ */
.tex{position:relative;overflow:clip}
.tex > *{position:relative;z-index:2}
/* オーロラの面 */
.tex.tex-b::before{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background:
    radial-gradient(620px 400px at 6% 8%, rgba(2,167,144,.10), transparent 62%),
    radial-gradient(660px 420px at 96% 72%, rgba(249,97,47,.09), transparent 64%);
}
/* ドットの地（FLOW） */
.tex-dots::after{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background-image:radial-gradient(rgba(29,29,29,.10) 1.4px, transparent 1.4px);
  background-size:26px 26px;
  -webkit-mask-image:radial-gradient(900px 520px at 50% 42%, #000 20%, transparent 74%);
  mask-image:radial-gradient(900px 520px at 50% 42%, #000 20%, transparent 74%);
}
/* 道の透かし */
.road-wm{position:absolute;pointer-events:none;z-index:0;opacity:.5}
.road-wm svg{width:100%;height:100%;overflow:visible}
@media(max-width:734px){
  .tex::before{opacity:.75}
}

/* 企業様の声: カード内と同じ模様（大円＋一筆書き）でメリハリ */
.has-pattern{position:relative;overflow:clip}
.has-pattern > *{position:relative;z-index:2}
.has-pattern::before,.has-pattern::after{
  content:"";position:absolute;border-radius:50%;pointer-events:none;z-index:0;
  background:rgba(19,85,205,.055);
}
.has-pattern::before{width:620px;height:620px;right:-190px;top:-230px}
.has-pattern::after{width:460px;height:460px;left:-150px;bottom:-190px;background:rgba(213,40,80,.05)}
@media(max-width:734px){
  .has-pattern::before{width:360px;height:360px;right:-140px;top:-140px}
  .has-pattern::after{width:280px;height:280px;left:-110px;bottom:-120px}
  }

/* ============ 中間CTA: その場で相談できるチャット ============ */
.midchat{padding-top:0;padding-bottom:clamp(66px,7vw,112px)}
.midchat-panel{
  position:relative;overflow:hidden;
  border-radius:clamp(26px,2.8vw,40px);
  background-color:#1e56dd; /* グラデが乗らない環境でも白文字が読めるように地の色を持たせる */
  padding:clamp(44px,5vw,68px) clamp(24px,4vw,64px);
  background:
    radial-gradient(920px 540px at 88% -12%, rgba(255,255,255,.16), transparent 62%),
    radial-gradient(760px 480px at -8% 112%, rgba(255,255,255,.13), transparent 60%),
    radial-gradient(520px 340px at 70% 108%, rgba(13,45,140,.5), transparent 70%),
    linear-gradient(152deg,#4a7df2 0%,#1e56dd 46%,#0d3fa6 100%);
  /* shorthandの後に置く。先に書くとbackgroundで消える。地の色があるとコントラスト監査も実効色で通る */
  background-color:#1e56dd;
}
.midchat-head{text-align:center;color:#fff;position:relative;z-index:2}
.midchat-h2{
  margin:0;color:#fff;font-weight:700;line-height:1.3;letter-spacing:-.04em;
  font-size:clamp(30px,3.4vw,50px);
}
.midchat-lead{margin:12px 0 0;color:rgba(255,255,255,.9);font-size:16.5px}
.midchat .fv-chat{margin:clamp(22px,2.6vw,32px) auto 0;position:relative;z-index:3}
.midchat .chat-card{min-height:0}
.midchat-chara{
  position:absolute;right:clamp(10px,1.6vw,30px);bottom:clamp(26px,3.8vw,58px);
  width:clamp(140px,13.5vw,206px);pointer-events:none;z-index:1;
}
.midchat-chara img{width:100%;height:auto}
@media(max-width:1080px){ .midchat-chara{display:none} }
@media(max-width:734px){
  .midchat{padding-bottom:52px}
  .midchat-panel{padding:38px 16px 34px;border-radius:22px}
  .midchat-lead{font-size:14.5px}
}
/* ============ 写真は矩形で置かない（切り抜きの共通ルール） ============
   角ごとに半径を変えて、四角の写真をそのまま貼った印象を消す。
   組み合わせは3種類だけ。増やすとページ全体がうるさくなる。 */
.organic{
  overflow:visible;border-radius:0;box-shadow:none !important;
  filter:drop-shadow(0 18px 40px rgba(20,30,60,.16));
}
.organic > img,.organic picture > img{
  -webkit-mask-image:url("../images/top/blob-frame.svg");
  mask-image:url("../images/top/blob-frame.svg");
  -webkit-mask-size:100% 100%;mask-size:100% 100%;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
}
/* 写真は反転させない（人物や文字が鏡像になる）。形だけ別のマスクで変える */
.organic.organic-alt > img{
  -webkit-mask-image:url("../images/top/blob-frame-b.svg");
  mask-image:url("../images/top/blob-frame-b.svg");
}

@media(max-width:734px){
  .about-stat{padding:0 14px}
  .about-stat .v{font-size:18px}
  .visual-blob{inset:-4% -5% -6% -5%}
}

/* 写真に添える手書きのひとこと（ABOUT） */
.hand-note{
  position:absolute;z-index:2;margin:0;
  right:clamp(0px,0.4vw,8px);bottom:clamp(-86px,-5.8vw,-58px);
  font-family:"Yomogi","Noto Sans JP",sans-serif;font-weight:400;
  font-size:clamp(14px,1.3vw,19px);line-height:1.55;color:var(--blue);
  rotate:-4deg;text-align:left;pointer-events:none;
}
.hand-note svg{display:block;width:clamp(108px,10vw,152px);height:auto;margin-top:1px}
@media(max-width:734px){
  .hand-note{font-size:12px;right:0;bottom:4px}
  .about-photo{width:100%}
  .hand-note{position:static;margin-top:10px;text-align:right;rotate:-2deg}
  .hand-note svg{margin-left:auto}
  .hand-note svg{width:96px}
}

/* スライダーの画像は、ブラウザ標準の画像ドラッグを止める。
   これが効いていないと、掴んだ瞬間に画像のドラッグが始まって横スライドが奪われる */
.member-slider img,.cases-track img,.member-slider,.cases-track{
  -webkit-user-drag:none;user-drag:none;
}
.member-slider img,.cases-track img{-webkit-touch-callout:none}

/* ============ スライダーの左右ボタン ============ */
.cases-outer.has-arrows,.member-outer.has-arrows{position:relative}
.slide-btn{
  position:absolute;top:50%;translate:0 -50%;z-index:6;
  width:52px;height:52px;border-radius:var(--r-pill);
  background:var(--white);color:var(--ink);border:1px solid var(--line);
  box-shadow:0 6px 20px rgba(11,24,56,.12);
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  transition:background .22s ease,color .22s ease,box-shadow .22s ease;
}
.slide-btn svg{width:22px;height:22px}
.slide-btn:hover{background:var(--ink);color:#fff;box-shadow:0 10px 26px rgba(11,24,56,.22)}
.slide-btn:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.slide-btn.prev{left:clamp(6px,1.8vw,26px)}
.slide-btn.next{right:clamp(6px,1.8vw,26px)}
@media(max-width:734px){
  .slide-btn{width:40px;height:40px;box-shadow:0 4px 14px rgba(11,24,56,.16)}
  .slide-btn svg{width:17px;height:17px}
  .slide-btn.prev{left:4px}
  .slide-btn.next{right:4px}
}

@media(max-width:734px){
  /* 最終CTAの道は、スマホだと文字の後ろで無限マークのように見えて主張しすぎる */
  .precta-road{opacity:.22;top:24%}
  /* 写真の後ろの色面も、写真とだいたい同じ大きさに収める */
  .visual-blob{top:-8%;left:-9%;right:-2%;bottom:auto;height:auto;aspect-ratio:1.18}
}

/* ---------- ヘッダー ドロップダウン（業界・職種別） ---------- */
.head-drop{position:relative;display:flex;align-items:center}
.head-drop>a{display:inline-flex;align-items:center;gap:7px}
.head-caret{
  width:7px;height:7px;flex:0 0 auto;margin-top:-4px;
  border-right:2.5px solid currentColor;border-bottom:2.5px solid currentColor;border-radius:1px;
  transform:rotate(45deg);transition:transform .25s ease;
}
.head-drop:hover .head-caret,.head-drop:focus-within .head-caret{transform:rotate(225deg) translate(-2px,-2px)}
.head-menu{
  position:absolute;top:100%;left:50%;transform:translate(-50%,10px);
  padding-top:14px;z-index:930;
  visibility:hidden;opacity:0;
  transition:opacity .22s ease,transform .22s ease,visibility 0s linear .22s;
}
.head-drop:hover .head-menu,.head-drop:focus-within .head-menu{
  visibility:visible;opacity:1;transform:translate(-50%,0);
  transition:opacity .22s ease,transform .22s ease;
}
.head-menu-box{
  display:block;background:#fff;border-radius:18px;
  padding:18px 18px 14px;
  box-shadow:0 24px 64px rgba(20,33,61,.16),0 3px 14px rgba(20,33,61,.08);
}
.head-menu-cols{display:flex;gap:8px}
.head-menu-col{display:flex;flex-direction:column;min-width:182px}
.head-menu-h{
  display:block;padding:4px 12px 8px;font-size:11.5px;font-weight:800;
  letter-spacing:.08em;color:var(--blue);
}
.head-nav .head-menu-col a{
  display:block;padding:9px 12px;border-radius:10px;
  font-size:14px;font-weight:700;color:var(--ink);
}
.head-nav .head-menu-col a:hover{opacity:1;background:#f2f6fd;color:var(--blue)}
.head-nav a.head-menu-all{
  display:block;margin:8px 2px 2px;padding:10px 12px;border-radius:12px;
  background:#f2f6fd;color:var(--blue);font-size:13px;font-weight:700;text-align:center;
}
.head-nav a.head-menu-all:hover{opacity:1;background:#e4edfb}
@media(max-width:820px){.head-menu{display:none}}
