:root{
  --tq:#1FB1CC;      /* イラストのターコイズ */
  --tq-d:#0C7F97;
  --tq-l:#E3F5F9;
  --tq-m:#BDE8F1;
  --ink:#17313B;
  --gray:#5B6E76;
  --base:#FFFFFF;
  --soft:#F6F8F8;
  --coral:#E8553A;   /* イラストのジャケットの赤 */
  --yellow:#F6B829;  /* イラストの黄色 */
  --shadow:0 18px 40px rgba(23,49,59,.10);
  --f:"M PLUS Rounded 1c",sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--base);color:var(--ink);font-family:var(--f);font-weight:500;font-size:16px;line-height:1.9;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{width:min(1160px,100% - 32px);margin-inline:auto}
.nb{display:inline-block}
.h{font-weight:900;line-height:1.45;letter-spacing:.02em;word-break:keep-all;overflow-wrap:anywhere}
section{padding:110px 0;position:relative}

/* 見出しの手書き風アンダーライン */
.ul{position:relative;white-space:nowrap;z-index:0}
.ul svg{position:absolute;left:-4%;bottom:-.18em;width:108%;height:.5em;z-index:-1;overflow:visible}
.ul path{fill:none;stroke:var(--tq);stroke-width:9;stroke-linecap:round;stroke-dasharray:420;stroke-dashoffset:420;transition:stroke-dashoffset 1s cubic-bezier(.6,0,.2,1) .3s}
.in .ul path,.ul.in path{stroke-dashoffset:0}

/* 見出しラベル（丸い吹き出し） */
.label{display:inline-flex;align-items:center;gap:8px;font-weight:800;font-size:14px;color:var(--tq-d);background:var(--tq-l);border-radius:999px;padding:4px 16px 4px 6px;margin-bottom:16px}
.label i{width:24px;height:24px;border-radius:50%;background:var(--tq);display:grid;place-items:center}
.label i svg{width:14px;height:14px}
.s-head{margin-bottom:54px}
.s-head.c{text-align:center}
.s-head .h{font-size:clamp(28px,4vw,44px)}
.s-head p{margin-top:12px;color:var(--gray)}
.on-tq .label{background:rgba(255,255,255,.2);color:#fff}
.on-tq .label i{background:#fff}
.on-tq .label i svg path{fill:var(--tq)}
.on-tq .s-head p{color:#E6F7FB}

/* ボタン */
.btn{display:inline-flex;align-items:center;gap:10px;font-weight:800;font-size:16px;padding:15px 30px;border-radius:999px;transition:transform .2s, box-shadow .2s, background .2s;white-space:nowrap}
.btn-tq{background:var(--tq);color:#fff;box-shadow:0 10px 24px rgba(31,177,204,.35)}
.btn-tq:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(31,177,204,.45)}
.btn-line{border:2px solid var(--ink)}
.btn-line:hover{background:var(--ink);color:#fff}
.btn-white{background:#fff;color:var(--tq-d);box-shadow:0 10px 24px rgba(0,0,0,.12)}
.btn-white:hover{transform:translateY(-3px)}
.btn .ar{transition:transform .2s}.btn:hover .ar{transform:translateX(4px)}

/* ヘッダー */
header{position:fixed;top:0;left:0;right:0;z-index:50;transition:background .3s, box-shadow .3s, transform .3s}
header.scrolled{background:rgba(255,255,255,.94);backdrop-filter:blur(10px);box-shadow:0 4px 20px rgba(23,49,59,.06)}
header.hide{transform:translateY(-100%)}
.hd{display:flex;align-items:center;justify-content:space-between;height:74px}
.logo{font-weight:900;font-size:21px;letter-spacing:.06em;white-space:nowrap;display:flex;align-items:baseline;gap:8px}
.logo span{color:var(--tq)}
.logo small{font-size:10px;font-weight:700;color:var(--gray);letter-spacing:.12em}
nav ul{display:flex;gap:6px;list-style:none;font-weight:700;font-size:15px}
nav a{padding:8px 14px;border-radius:999px;transition:background .2s,color .2s}
nav a:hover{background:var(--tq-l);color:var(--tq-d)}
header .btn{padding:11px 22px;font-size:15px}
@media(max-width:980px){nav{display:none}}
@media(max-width:560px){header .btn{display:none}.logo small{display:none}}

/* ヒーロー */
.hero{padding:120px 0 40px;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:20px;align-items:center}
.hero .tag{display:inline-block;font-weight:800;font-size:14px;color:#fff;background:var(--tq);padding:4px 16px;border-radius:999px;transform:rotate(-2deg)}
.hero h1{font-size:clamp(32px,3.9vw,50px);margin:22px 0 22px}
.hero .sub{color:var(--gray);font-size:16.5px;max-width:500px}
.hero .ctas{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
.hero .note{font-size:13px;color:var(--gray);margin-top:12px}
.hero-illust{position:relative}
.hero-illust img{width:112%;max-width:none;margin-left:-4%;animation:drift 7s ease-in-out infinite}
@keyframes drift{50%{transform:translateY(-10px) rotate(.4deg)}}
.stat-row{display:flex;gap:12px;margin-top:34px;flex-wrap:wrap}
.stat{background:var(--soft);border-radius:18px;padding:10px 18px;font-size:13px;color:var(--gray);line-height:1.5}
.stat b{display:block;color:var(--ink);font-weight:900;font-size:22px}
.word{display:inline-block;opacity:0;transform:translateY(24px);animation:up .7s cubic-bezier(.2,1.4,.4,1) forwards}
@keyframes up{to{opacity:1;transform:none}}
@media(max-width:900px){.hero-grid{grid-template-columns:1fr}.hero-illust img{width:100%;margin:0}.hero{padding-top:100px}}

/* ティッカー */
.ticker{background:var(--tq);color:#fff;overflow:hidden;padding:14px 0}
.ticker-track{display:flex;width:max-content;animation:slide 36s linear infinite}
.ticker span{font-weight:900;font-size:20px;padding:0 22px;white-space:nowrap;display:flex;align-items:center;gap:22px}
.ticker span::after{content:"";width:9px;height:9px;border-radius:50%;background:#fff;opacity:.7}
@keyframes slide{to{transform:translateX(-50%)}}

/* お悩み：チャット */
.chat-wrap{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.chat{display:flex;flex-direction:column;gap:14px}
.msg{display:flex;align-items:flex-end;gap:12px}
.msg .av{flex:none;width:56px;height:56px;border-radius:50%;background:var(--tq-l);display:grid;place-items:center}
.msg .av svg{width:44px;height:44px}
.msg .b{background:var(--soft);border-radius:22px 22px 22px 6px;padding:12px 18px;font-weight:700;font-size:15.5px;line-height:1.6}
.msg .b small{display:block;font-size:11px;color:var(--gray);font-weight:700}
.msg.reply{flex-direction:row-reverse;margin-top:10px}
.msg.reply .b{background:var(--tq);color:#fff;border-radius:22px 22px 6px 22px;font-size:17px}
.msg.reply .av{background:var(--tq)}
.chat-side .h{font-size:clamp(28px,3.8vw,42px);margin-bottom:18px}
.chat-side p{color:var(--gray)}
@media(max-width:900px){.chat-wrap{grid-template-columns:1fr;gap:40px}}

/* マッチング（考え方） */
.match{background:var(--tq);color:#fff;overflow:hidden}
.match::before{content:"";position:absolute;right:-200px;top:-200px;width:560px;height:560px;border-radius:50%;border:2px dashed rgba(255,255,255,.35)}
.match-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:56px;align-items:center;position:relative}
.match .h.big{font-size:clamp(30px,4.2vw,48px);margin-bottom:20px}
.match p{color:#EAF8FB}
.match p+p{margin-top:14px}
.board{background:#fff;color:var(--ink);border-radius:32px;padding:30px 30px 34px;box-shadow:0 30px 60px rgba(8,70,84,.25);position:relative}
.board .q{display:flex;gap:12px;align-items:center;background:var(--soft);border-radius:18px;padding:12px 16px;margin-bottom:22px;min-height:70px}
.board .q svg{flex:none;width:44px;height:44px}
.board .q small{display:block;font-size:11px;color:var(--gray);font-weight:700}
.board .q b{font-size:16px;transition:opacity .3s;display:block;line-height:1.5}
.board .grp{margin-bottom:14px}
.board .grp span{display:block;font-size:12px;font-weight:800;color:var(--gray);letter-spacing:.1em;margin-bottom:6px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{font-style:normal;font-size:14px;font-weight:700;padding:5px 14px;border-radius:999px;background:var(--soft);border:1.5px solid transparent;transition:all .4s cubic-bezier(.2,1.4,.4,1)}
.chip.fit{background:var(--tq);color:#fff;transform:scale(1.08)}
.chip.dim{opacity:.45}
.board .ans{margin-top:16px;padding-top:16px;border-top:1.5px dashed var(--tq-m);font-weight:800;font-size:15px;color:var(--tq-d);min-height:30px}
.stamp{position:absolute;right:-18px;top:-22px;width:96px;height:96px;border-radius:50%;background:var(--yellow);color:var(--ink);display:grid;place-items:center;text-align:center;font-weight:900;font-size:13px;line-height:1.3;transform:rotate(12deg);box-shadow:0 8px 18px rgba(0,0,0,.15)}
@media(max-width:900px){.match-grid{grid-template-columns:1fr}.stamp{right:6px}}

/* サービス */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.svc{background:#fff;border-radius:32px;box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column;transition:transform .3s}
.svc:hover{transform:translateY(-6px)}
.svc .top{background:var(--tq-l);padding:30px 28px 22px;position:relative}
.svc .top .no{font-weight:900;font-size:56px;line-height:1;color:#fff;-webkit-text-stroke:2px var(--tq)}
.svc .top svg{position:absolute;right:22px;top:22px;width:92px;height:92px}
.svc h3{font-weight:900;font-size:22px;line-height:1.45;margin-top:10px}
.svc .body{padding:22px 28px 28px;display:flex;flex-direction:column;flex:1}
.svc .body p{color:var(--gray);font-size:15px;flex:1}
.svc ul{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:16px 0}
.svc li{font-size:13px;font-weight:700;background:var(--soft);border-radius:999px;padding:2px 12px}
.svc .pr{display:flex;justify-content:space-between;align-items:flex-end;border-top:1.5px dashed var(--tq-m);padding-top:14px}
.svc .pr small{font-size:12px;color:var(--gray);display:block}
.svc .pr b{font-weight:900;font-size:24px}
.svc .pr a{font-weight:800;color:var(--tq-d);font-size:14px}
.more-svc{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:36px}
.more-svc a{border:1.5px solid var(--tq-m);border-radius:999px;padding:9px 20px;font-weight:700;font-size:15px;transition:all .2s}
.more-svc a:hover{background:var(--tq);border-color:var(--tq);color:#fff}
@media(max-width:960px){.svc-grid{grid-template-columns:1fr}}

/* 理由 */
.reasons{background:var(--tq-l)}
.rs{display:grid;grid-template-columns:repeat(6,1fr);gap:22px}
.r{background:#fff;border-radius:28px;padding:28px 26px;grid-column:span 2;position:relative;overflow:hidden}
.r:nth-child(4),.r:nth-child(5){grid-column:span 3}
.r .ic{width:64px;height:64px;margin-bottom:12px}
.r h3{font-weight:900;font-size:19px;line-height:1.5;margin-bottom:6px}
.r p{font-size:14.5px;color:var(--gray)}
.r.feature{background:var(--ink);color:#fff}
.r.feature p{color:#C9D6DB}
@media(max-width:900px){.rs{grid-template-columns:1fr}.r,.r:nth-child(4),.r:nth-child(5){grid-column:auto}}

/* チーム */
.team-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.person{display:flex;gap:26px;align-items:center;background:var(--soft);border-radius:32px;padding:28px}
.person .pic{flex:none;width:150px;height:150px;border-radius:50%;overflow:hidden;background:#fff;box-shadow:0 0 0 6px #fff, 0 0 0 8px var(--tq-m)}
.person .pic img{width:100%;height:100%;object-fit:cover}
.person .role{font-size:13px;font-weight:800;color:var(--tq-d)}
.person h3{font-weight:900;font-size:22px}
.person p{font-size:14.5px;color:var(--gray);margin-top:6px}
.writers{margin-top:28px;background:var(--tq);color:#fff;border-radius:32px;padding:30px 34px;display:grid;grid-template-columns:auto 1fr;gap:28px;align-items:center}
.writers .num{font-weight:900;font-size:64px;line-height:1}
.writers .num small{font-size:18px}
.writers p{color:#EAF8FB}
.writers .quals{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.writers .quals span{background:rgba(255,255,255,.18);border-radius:999px;padding:1px 12px;font-size:13px;font-weight:700}
@media(max-width:900px){.team-grid{grid-template-columns:1fr}.person{flex-direction:column;text-align:center}.writers{grid-template-columns:1fr;text-align:center}.writers .quals{justify-content:center}}

/* 事例 */
.case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.case{border-radius:30px;background:#fff;box-shadow:var(--shadow);padding:28px;display:flex;flex-direction:column;gap:12px}
.case .meta{display:flex;gap:6px;flex-wrap:wrap}
.case .meta span{font-size:12px;font-weight:800;background:var(--soft);border-radius:999px;padding:1px 10px}
.case .meta span:first-child{background:var(--tq);color:#fff}
.case h3{font-weight:900;font-size:19px;line-height:1.5}
.ba{display:grid;gap:8px;font-size:14.5px;line-height:1.65}
.ba .be{background:var(--soft);border-radius:16px;padding:12px 14px;color:var(--gray)}
.ba .do{font-size:13.5px;padding:0 6px;display:flex;gap:8px}
.ba .do::before{content:"↓";color:var(--tq);font-weight:900}
.ba .af{background:var(--tq-l);border-radius:16px;padding:12px 14px;font-weight:800}
.ba small{display:block;font-size:11px;font-weight:800;letter-spacing:.12em;color:var(--tq-d)}
.clients{margin-top:44px;text-align:center}
.clients p{font-weight:800;margin-bottom:12px}
.clients .row{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.clients .row span{border:1.5px dashed var(--tq-m);border-radius:14px;padding:10px 20px;font-weight:700;color:var(--gray)}
.draft{display:inline-block;background:var(--yellow);color:var(--ink);font-size:12px;font-weight:800;border-radius:999px;padding:0 10px;margin-left:8px;vertical-align:middle}
@media(max-width:960px){.case-grid{grid-template-columns:1fr}}

/* 料金 */
.price{background:var(--soft)}
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:stretch}
.plan{background:#fff;border-radius:30px;padding:32px 28px;position:relative;border:2px solid transparent}
.plan.rec{border-color:var(--tq);box-shadow:0 20px 44px rgba(31,177,204,.18)}
.plan .badge{position:absolute;top:-16px;left:50%;translate:-50% 0;background:var(--tq);color:#fff;font-weight:800;font-size:13px;border-radius:999px;padding:3px 16px;white-space:nowrap}
.plan h3{font-weight:800;font-size:17px}
.plan .yen{font-weight:900;font-size:48px;line-height:1.25;color:var(--tq-d)}
.plan .yen small{font-size:16px;color:var(--ink)}
.plan .for{font-size:13.5px;color:var(--gray);margin-bottom:14px}
.plan ul{list-style:none;display:grid;gap:8px;font-size:14.5px}
.plan li{display:flex;gap:10px}
.plan li::before{content:"";flex:none;width:18px;height:18px;margin-top:4px;border-radius:50%;background:var(--tq-l) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3 3 7-7' fill='none' stroke='%230C7F97' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/80% no-repeat}
.units{margin-top:28px;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.units div{background:#fff;border-radius:20px;padding:14px;font-size:13px;font-weight:700;text-align:center;color:var(--gray)}
.units b{display:block;font-weight:900;font-size:21px;color:var(--ink)}
@media(max-width:960px){.plans{grid-template-columns:1fr}.units{grid-template-columns:1fr 1fr}}

/* 全国 */
.area-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}
.area .h{font-size:clamp(28px,3.8vw,42px);margin-bottom:18px}
.area p{color:var(--gray)}
.route{position:relative;aspect-ratio:1/1;max-width:460px;width:100%;margin-inline:auto;background:var(--tq-l);border-radius:50%}
.route svg.path{position:absolute;inset:0;width:100%;height:100%}
.route svg.path path{stroke-dasharray:6 12;animation:dash 20s linear infinite}
@keyframes dash{to{stroke-dashoffset:-360}}
.pin{position:absolute;text-align:center;translate:-50% -50%}
.pin b{display:inline-block;background:#fff;border-radius:999px;padding:6px 18px;font-weight:900;font-size:17px;box-shadow:0 8px 18px rgba(23,49,59,.12)}
.pin b::before{content:"";display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--coral);margin-right:8px;vertical-align:middle;box-shadow:0 0 0 0 rgba(232,85,58,.5);animation:ping 2s infinite}
@keyframes ping{70%{box-shadow:0 0 0 10px rgba(232,85,58,0)}100%{box-shadow:0 0 0 0 rgba(232,85,58,0)}}
.pin small{display:block;font-size:12px;color:var(--gray);font-weight:700;margin-top:4px}
.pin.other b{background:transparent;box-shadow:none;border:1.5px dashed var(--tq)}
.pin.other b::before{display:none}
@media(max-width:900px){.area-grid{grid-template-columns:1fr}}

/* 流れ */
.flow{background:var(--ink);color:#fff}
.flow .label{background:rgba(255,255,255,.12);color:#fff}
.flow .label i{background:var(--tq)}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;counter-reset:s}
.step{border-radius:28px;padding:28px 24px;background:rgba(255,255,255,.06);position:relative}
.step .n{font-weight:900;font-size:13px;letter-spacing:.14em;color:var(--tq)}
.step h3{font-weight:900;font-size:20px;margin:6px 0 8px}
.step p{font-size:14.5px;color:#C9D6DB;line-height:1.75}
.step:first-child{background:var(--tq)}
.step:first-child .n{color:#fff}.step:first-child p{color:#EAF8FB}
@media(max-width:960px){.steps{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.steps{grid-template-columns:1fr}}

/* FAQ */
.faq{max-width:840px;margin:0 auto;display:grid;gap:12px}
.faq details{background:var(--soft);border-radius:22px;overflow:hidden;transition:background .2s}
.faq details[open]{background:var(--tq-l)}
.faq summary{list-style:none;cursor:pointer;padding:18px 60px 18px 24px;font-weight:800;position:relative;display:flex;gap:12px;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary .q{flex:none;width:32px;height:32px;border-radius:50%;background:var(--tq);color:#fff;display:grid;place-items:center;font-weight:900;font-size:14px}
.faq summary::after{content:"";position:absolute;right:24px;width:14px;height:14px;border-right:3px solid var(--tq-d);border-bottom:3px solid var(--tq-d);transform:rotate(45deg);transition:transform .3s;top:20px}
.faq details[open] summary::after{transform:rotate(225deg);top:26px}
.faq details p{padding:0 24px 22px 68px;color:var(--gray);font-size:15px}

/* CTA */
.cta{background:var(--tq);color:#fff;overflow:hidden;text-align:center}
.cta::before,.cta::after{content:"";position:absolute;border-radius:50%;border:2px dashed rgba(255,255,255,.35)}
.cta::before{width:420px;height:420px;left:-140px;bottom:-200px}
.cta::after{width:300px;height:300px;right:-80px;top:-120px}
.cta .h{font-size:clamp(30px,4.6vw,52px)}
.cta p{color:#EAF8FB;margin-top:12px;font-size:17px}
.cta .people{width:220px;margin:0 auto 18px}
.cta .btn{margin-top:30px;font-size:18px;padding:19px 40px}
.cta .alt{margin-top:18px;font-size:15px}
.cta .alt a{text-decoration:underline;text-underline-offset:4px;font-weight:800}

footer{background:var(--ink);color:#C9D6DB;padding:60px 0 30px;font-size:14px}
.ft{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:30px}
.ft .logo{color:#fff;margin-bottom:10px}
.ft h4{color:var(--tq);font-size:14px;margin-bottom:8px}
.ft ul{list-style:none;line-height:2.2}
.copy{margin-top:40px;padding-top:18px;border-top:1px solid #2C4852;font-size:12px}
@media(max-width:800px){.ft{grid-template-columns:1fr 1fr}}

/* スクロール表示 */
.rv{opacity:0;transform:translateY(34px);transition:opacity .7s, transform .8s cubic-bezier(.2,1.2,.4,1)}
.rv.in{opacity:1;transform:none}

.float{display:none}
@media(max-width:700px){
  section{padding:80px 0}
  .float{display:flex;position:fixed;left:16px;right:16px;bottom:12px;z-index:60;justify-content:center;font-size:15px;padding:12px}
  footer{padding-bottom:96px}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.rv,.word{opacity:1;transform:none}.ul path{stroke-dashoffset:0}}
