
:root{--p:#5e17eb;--p2:#7a3cf5;--pd:#4310b0;--ink:#2a2140;--sub:#5b5470;--mut:#8a8499;--line:#e8e2f5;--tint:#f4f1fb;--tint2:#faf8ff;--card:#fff;
--r:20px;--sh:0 10px 30px rgba(94,23,235,.08);--f:"Noto Sans JP","Hiragino Sans","Hiragino Kaku Gothic ProN",sans-serif;--fe:"Nunito","Noto Sans JP",sans-serif}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--f);color:var(--ink);background:#fff;line-height:1.85;font-size:16px;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%;height:auto}
.w{max-width:1120px;margin:0 auto;padding:0 16px}
@media(min-width:768px){.w{padding:0 32px}}
/* ヘッダー */
.hd{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line)}
.hd .w{display:flex;align-items:center;justify-content:space-between;height:64px}
.logo{display:flex;align-items:center;gap:10px}
.logo svg{width:34px;height:34px}
.logo b{font-family:var(--fe);font-weight:900;font-size:20px;letter-spacing:.02em;color:var(--p);line-height:1}
.logo small{display:block;font-size:10px;font-weight:700;color:var(--sub);letter-spacing:.2em;margin-top:3px}
.nav{display:none;gap:4px;align-items:center}
.nav a{font-size:14px;font-weight:700;color:var(--sub);padding:8px 12px;border-radius:999px}
.nav a:hover,.nav a.on{color:var(--p);background:var(--tint)}
.nav a.cta{background:var(--p);color:#fff;margin-left:6px}
.nav a.cta:hover{background:var(--pd)}
.mbtn{width:44px;height:44px;border:0;background:var(--tint);border-radius:12px;display:flex;align-items:center;justify-content:center;cursor:pointer}
.mbtn svg{width:22px;height:22px;stroke:var(--p)}
.mnav{display:none;border-top:1px solid var(--line);background:#fff}
.mnav.on{display:block}
.mnav a{display:block;padding:14px 16px;font-weight:700;border-bottom:1px solid var(--line);color:var(--ink)}
@media(min-width:900px){.nav{display:flex}.mbtn{display:none}.mnav{display:none!important}}
/* 共通 */
.sec{padding:72px 0}
@media(min-width:768px){.sec{padding:110px 0}}
/* ページ末尾：お問い合わせ帯は前の区画と余白を重ねない。フッターまでの余白をそろえる */
main>.sec:last-child{padding-bottom:72px}
.sec.ctas{padding-top:0}
.mission+.sec.ctas{padding-top:72px}
@media(min-width:768px){main>.sec:last-child{padding-bottom:96px}.mission+.sec.ctas{padding-top:96px}}
.sec.t{background:var(--tint2)}
.eb{font-family:var(--fe);font-weight:800;font-size:13px;letter-spacing:.2em;color:var(--p)}
.h2{font-size:clamp(26px,4.6vw,40px);font-weight:900;line-height:1.45;letter-spacing:.01em;margin-top:10px}
.lead{font-size:16px;color:var(--sub);margin-top:16px;max-width:680px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--p);color:#fff;font-weight:800;font-size:16px;border-radius:999px;padding:15px 28px;box-shadow:0 6px 18px rgba(94,23,235,.25);transition:transform .15s,background .15s}
.btn:hover{background:var(--pd);transform:translateY(-1px)}
.btn svg{width:18px;height:18px}
.btn.ghost{background:#fff;color:var(--p);box-shadow:none;border:1.5px solid var(--line)}
.btn.ghost:hover{border-color:var(--p);background:#fff}
.btn.line{background:#06c755;box-shadow:0 6px 18px rgba(6,199,85,.25)}
.btn.line:hover{background:#05b04b}
.more{display:inline-flex;align-items:center;gap:6px;font-weight:800;color:var(--p);font-size:15px;margin-top:18px}
.more svg{width:16px;height:16px;transition:transform .15s}
.more:hover svg{transform:translateX(3px)}
/* ヒーロー */
.hero{position:relative;overflow:hidden;background:radial-gradient(1200px 500px at 85% -10%,#ece3ff 0%,rgba(236,227,255,0) 60%),radial-gradient(800px 400px at -10% 110%,#f3edfe 0%,rgba(243,237,254,0) 60%),#fff}
.hero .w{display:grid;gap:40px;padding-top:48px;padding-bottom:64px}
@media(min-width:960px){.hero .w{grid-template-columns:1.05fr .95fr;align-items:center;padding-top:80px;padding-bottom:110px}}
.hero h1 span{display:inline-block}
.hero h1{font-size:clamp(29px,4.6vw,54px);font-weight:900;line-height:1.3;letter-spacing:.01em;margin-top:14px}
.hero h1 em{font-style:normal;color:var(--p)}
.hero p.lead{font-size:17px}
.hero .acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.pill3{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.pill3 span{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1.5px solid var(--line);border-radius:999px;padding:6px 14px;font-size:13.5px;font-weight:800;color:var(--ink)}
.pill3 span svg{width:16px;height:16px;color:var(--p)}
/* ヒーローの絵：製品のアイコンが集まる */
.board{position:relative;aspect-ratio:1/1;max-width:520px;width:100%;margin:0 auto}
.board .core{position:absolute;inset:22%;border-radius:36px;background:linear-gradient(150deg,var(--p2),var(--p));box-shadow:0 30px 60px rgba(94,23,235,.28);display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;text-align:center}
.board .core svg{width:42%;height:auto}
.board .core b{font-family:var(--fe);font-weight:900;font-size:clamp(18px,3.4vw,26px);margin-top:8px;letter-spacing:.03em}
.board .core small{font-size:12px;font-weight:700;opacity:.9;letter-spacing:.12em}
.tile{position:absolute;width:19%;aspect-ratio:1/1;border-radius:22%;background:#fff;box-shadow:0 14px 30px rgba(42,33,64,.14);overflow:hidden;animation:fl 6s ease-in-out infinite}
.tile img{width:100%;height:100%;object-fit:cover}
.tile.sx{display:flex;align-items:center;justify-content:center;color:var(--p)}
.tile.sx svg{width:52%;height:52%}
@keyframes fl{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@media(prefers-reduced-motion:reduce){.tile{animation:none}}
/* 3本柱 */
.pillars{display:grid;gap:18px;margin-top:40px}
@media(min-width:900px){.pillars{grid-template-columns:repeat(3,1fr);gap:24px}}
.pl{position:relative;background:#fff;border:1.5px solid var(--line);border-radius:var(--r);padding:28px 24px 26px;box-shadow:var(--sh);display:flex;flex-direction:column;transition:transform .2s,border-color .2s}
.pl:hover{transform:translateY(-3px);border-color:#cdbcf7}
.pl .no{font-family:var(--fe);font-weight:900;font-size:13px;letter-spacing:.2em;color:var(--mut)}
.pl .ic{width:56px;height:56px;border-radius:16px;background:var(--tint);color:var(--p);display:flex;align-items:center;justify-content:center;margin-top:14px}
.pl .ic svg{width:28px;height:28px}
.pl h3{font-size:23px;font-weight:900;margin-top:16px;line-height:1.4}
.pl h3 small{display:block;font-family:var(--fe);font-size:12px;letter-spacing:.18em;color:var(--p);font-weight:800}
.pl p{color:var(--sub);font-size:15px;margin-top:10px;flex:1}
.pl ul{list-style:none;margin-top:14px;border-top:1px dashed var(--line);padding-top:12px}
.pl li{font-size:14px;font-weight:700;padding:3px 0 3px 18px;position:relative}
.pl li:before{content:"";position:absolute;left:2px;top:12px;width:7px;height:7px;border-radius:50%;background:var(--p)}
/* 製品カード */
.grid{display:grid;gap:16px;margin-top:36px}
@media(min-width:640px){.grid.c2{grid-template-columns:repeat(2,1fr)}.grid.c4{grid-template-columns:repeat(2,1fr)}}
@media(min-width:960px){.grid.c3{grid-template-columns:repeat(3,1fr)}.grid.c4{grid-template-columns:repeat(4,1fr)}}
.pc{display:flex;gap:16px;align-items:flex-start;background:#fff;border:1.5px solid var(--line);border-radius:18px;padding:18px;transition:border-color .2s,transform .2s}
a.pc:hover{border-color:#cdbcf7;transform:translateY(-2px)}
.pc img,.pc .ph{flex:none;width:64px;height:64px;border-radius:16px;box-shadow:0 4px 12px rgba(42,33,64,.10)}
.pc .ph{background:var(--tint);display:flex;align-items:center;justify-content:center;color:var(--p);box-shadow:none;border:1.5px dashed #cdbcf7}
.pc .ph svg{width:30px;height:30px}
.pc b{display:block;font-size:17px;font-weight:900;line-height:1.45}
.pc .s{display:block;font-size:12.5px;color:var(--p);font-weight:800;margin-top:2px}
.pc p{font-size:14px;color:var(--sub);margin-top:6px;line-height:1.75}
.pc .tg{display:inline-block;font-size:11px;font-weight:800;color:var(--sub);background:var(--tint);border-radius:999px;padding:1px 10px;margin-top:8px}
.ec{display:flex;flex-direction:column;align-items:flex-start;background:#fff;border:1.5px solid var(--line);border-radius:18px;padding:18px;transition:border-color .2s,transform .2s}
.ec:hover{border-color:#cdbcf7;transform:translateY(-2px)}
.ec img{width:52px;height:52px;border-radius:14px}
.ec b{font-size:16px;font-weight:900;margin-top:12px;line-height:1.45}
.ec p{font-size:13.5px;color:var(--sub);margin-top:4px;line-height:1.7}
.ec .tg{font-size:11px;font-weight:800;color:var(--p);margin-top:auto;padding-top:10px}
/* 3D（ぞろ屋式・モチーフ型）：階段を上る人。JS が .h3d に is-live、描画先に is-3d を付ける */
.h3d{position:relative;background:radial-gradient(1100px 600px at 80% 10%,#ece3ff 0%,rgba(236,227,255,0) 60%),radial-gradient(900px 500px at 0% 100%,#f3edfe 0%,rgba(243,237,254,0) 60%),#fbf9ff}
.h3d .stick{position:relative}
.h3d .canvas{position:relative;height:56vh;min-height:320px;max-height:560px;overflow:hidden}
.h3d .canvas canvas{position:absolute;inset:0;width:100%!important;height:100%!important;display:block}
.h3d .canvas.is-3d .board{display:none}
.h3d .canvas .board{position:absolute;inset:6% 0 0;max-width:420px}
.h3d .copy{max-width:1160px;margin:0 auto;padding:8px 20px 56px;display:grid;gap:28px}
.h3d .st .eb{display:inline-block}
.h3d h1{font-size:clamp(32px,5vw,58px);font-weight:900;line-height:1.28;letter-spacing:.01em;margin-top:12px}
.h3d h1 span{display:inline-block}.h3d em{font-style:normal;color:var(--p)}
.h3d h2{font-size:clamp(28px,4.2vw,46px);font-weight:900;line-height:1.3;margin-top:8px}
.h3d .st p{font-size:17px;line-height:1.9;color:var(--sub);margin-top:14px;max-width:560px}
.h3d .st .lead{font-size:18px}
.h3d .acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.h3d .no{font-family:var(--fe);font-weight:900;font-size:14px;letter-spacing:.18em;color:var(--p)}
.h3d .hint{display:none}
.h3d .more{font-size:17px}
/* 動く版：5段ぶんスクロールする固定ステージ */
.h3d.is-live{height:300vh}
.h3d.is-live .stick{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.h3d.is-live .canvas{position:absolute;inset:0;height:auto;max-height:none}
.h3d.is-live .copy{position:absolute;inset:0;padding:0;display:block;pointer-events:none}
.h3d.is-live .st{position:absolute;left:max(20px,calc((100vw - 1160px)/2 + 20px));top:50%;width:min(520px,44vw);transform:translateY(-44%);opacity:0;visibility:hidden;transition:opacity .25s,transform .3s cubic-bezier(.2,.8,.2,1),visibility .25s;pointer-events:auto;
  background:rgba(255,255,255,.93);border:1.5px solid rgba(226,214,251,.9);border-radius:28px;padding:32px 32px 30px;box-shadow:0 24px 60px rgba(94,23,235,.10);will-change:opacity,transform}
.h3d.is-live .st[data-step="0"]{background:none;border:0;box-shadow:none;padding:0;width:min(600px,48vw)}
.h3d.is-live .st.on{opacity:1;visibility:visible;transform:translateY(-50%)}
.h3d.is-live .st:not([data-step="0"]) h2{font-size:clamp(28px,2.8vw,40px)}
.h3d.is-live .hint{display:inline-flex;align-items:center;gap:8px;margin-top:26px;font-size:16px;font-weight:700;color:var(--p)}
.h3d.is-live .hint:after{content:"";width:2px;height:28px;background:linear-gradient(var(--p),transparent);animation:hint 1.6s ease-in-out infinite}
@keyframes hint{0%,100%{transform:translateY(-4px);opacity:.4}50%{transform:translateY(4px);opacity:1}}
@media(max-width:759px){
  .h3d.is-live .st,.h3d.is-live .st[data-step="0"]{left:16px;right:16px;width:auto;top:auto;bottom:22px;transform:translateY(12px);padding:22px 20px;background:rgba(255,255,255,.94);border:1.5px solid rgba(226,214,251,.9);box-shadow:0 18px 40px rgba(94,23,235,.10)}
  .h3d.is-live .st.on{transform:none}
  .h3d.is-live .st p{font-size:16px;margin-top:10px}
  .h3d.is-live .st[data-step="0"] .lead{display:none}
  .h3d.is-live .acts{margin-top:16px}
  .h3d.is-live .hint{margin-top:14px}
  .h3d h1{font-size:30px}.h3d h2{font-size:28px}
}
.h3d a.st{display:block;color:inherit;text-decoration:none;cursor:pointer}
.h3d a.st .more{display:inline-flex;margin-top:18px}
.h3d a.st .btn{margin-top:20px}
.h3d.is-live a.st:hover{border-color:#cdbcf7;box-shadow:0 28px 70px rgba(94,23,235,.18)}
.h3d a.st:hover .more svg{transform:translateX(4px)}
.h3d a.st:focus-visible{outline:3px solid var(--p);outline-offset:4px}
/* お問い合わせ帯（3D） */
.c3d{position:relative;display:grid;align-items:center;overflow:hidden;border-radius:32px;border:1.5px solid #e2d6fb;
  background:radial-gradient(700px 420px at 85% 30%,#fff7da 0%,rgba(255,247,218,0) 55%),radial-gradient(900px 520px at 70% 100%,#e6dbff 0%,rgba(230,219,255,0) 60%),linear-gradient(135deg,#f6f1ff 0%,#fdfcff 100%)}
.c3d .cv{position:relative;height:300px}
.c3d .cv canvas{position:absolute;inset:0;width:100%!important;height:100%!important;display:block}
.c3d .ph3d{position:absolute;right:12%;bottom:18%;width:110px;height:170px;border-radius:14px 14px 4px 4px;background:linear-gradient(180deg,#fff3c4,#ffe9a3);box-shadow:0 0 0 10px #fff,0 30px 60px rgba(94,23,235,.18)}
.c3d .cv.is-3d .ph3d{display:none}
.c3d .ctx{position:relative;padding:4px 24px 36px}
.c3d h2{font-size:clamp(28px,3.4vw,42px);font-weight:900;line-height:1.35;margin-top:10px}
.c3d p{color:var(--sub);font-size:17px;line-height:1.9;margin:14px 0 26px;max-width:520px}
.c3d .acts{display:flex;flex-wrap:wrap;gap:12px}
@media(min-width:900px){
  .c3d{grid-template-columns:1fr 1fr;min-height:460px}
  .c3d .cv{grid-column:2;grid-row:1;height:100%;min-height:460px}
  .c3d .ctx{grid-column:1;grid-row:1;padding:56px 0 56px 56px}
}
/* 開発事例 */
.cases{display:grid;gap:24px;margin-top:16px}
@media(min-width:960px){.cases{grid-template-columns:1fr 1fr;gap:28px}}
.case{background:#fff;border:1.5px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh);display:flex;flex-direction:column}
.case .shot{background:var(--tint2);padding:18px 18px 0;border-bottom:1.5px solid var(--line)}
.case .win{background:#fff;border:1.5px solid var(--line);border-bottom:0;border-radius:12px 12px 0 0;overflow:hidden}
.case .win .bar{display:flex;align-items:center;gap:6px;padding:8px 12px;border-bottom:1px solid var(--line);background:#fbfaff}
.case .win .bar i{width:9px;height:9px;border-radius:50%;background:var(--line)}
.case .win .bar span{margin-left:8px;font-size:11.5px;color:var(--mut);font-family:var(--fe)}
.case .win img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;object-position:top}
.case .body{padding:22px 22px 24px;display:flex;flex-direction:column;flex:1}
.case .tg{display:inline-block;align-self:flex-start;font-size:11.5px;font-weight:800;color:var(--p);background:var(--tint);border-radius:999px;padding:2px 12px}
.case h3{font-size:21px;font-weight:900;line-height:1.45;margin-top:10px}
.case p{color:var(--sub);font-size:15px;line-height:1.85;margin-top:8px}
.case ul{list-style:none;margin-top:14px;border-top:1px dashed var(--line);padding-top:12px}
.case li{font-size:14px;font-weight:700;padding:3px 0 3px 18px;position:relative;line-height:1.6}
.case li:before{content:"";position:absolute;left:2px;top:11px;width:7px;height:7px;border-radius:50%;background:var(--p)}
.case .more{margin-top:auto;padding-top:16px}
/* SaaS */
.saas{display:grid;gap:20px;margin-top:16px}
@media(min-width:960px){.saas{grid-template-columns:1fr 1fr;gap:28px;align-items:stretch}.saas .mock{height:100%}}
.saas .mock{display:flex;flex-direction:column}
.saas .mock .rows{flex:1;display:flex;flex-direction:column;justify-content:space-between;gap:8px}
.saas .mock .row{margin-top:0;padding:14px 14px}
.saas .mock .note{font-size:12px;color:var(--mut);margin-top:10px}
.feat{display:grid;gap:12px}
.feat div{background:#fff;border:1.5px solid var(--line);border-radius:16px;padding:16px 18px}
.feat b{display:block;font-size:16.5px;font-weight:900}
.feat span{display:block;font-size:14px;color:var(--sub);margin-top:4px;line-height:1.75}
.flow{list-style:none;counter-reset:f;display:grid;gap:10px}
.flow li{counter-increment:f;display:flex;gap:14px;align-items:flex-start;background:#fff;border-radius:16px;padding:14px 16px;border:1.5px solid var(--line)}
.flow li:before{content:counter(f);flex:none;width:30px;height:30px;border-radius:50%;background:var(--p);color:#fff;font-family:var(--fe);font-weight:900;display:flex;align-items:center;justify-content:center;font-size:14px}
.flow b{display:block;font-size:15.5px;font-weight:900;line-height:1.5}
.flow span{display:block;font-size:13.5px;color:var(--sub);line-height:1.7}
.mock{background:#fff;border:1.5px solid var(--line);border-radius:20px;padding:16px;box-shadow:var(--sh)}
.mock .bar{display:flex;gap:6px;margin-bottom:12px}.mock .bar i{width:10px;height:10px;border-radius:50%;background:var(--line)}
.mock .row{display:flex;gap:10px;align-items:center;padding:10px 12px;border-radius:12px;background:var(--tint2);margin-top:8px;font-size:13.5px;font-weight:700}
.mock .row em{font-style:normal;margin-left:auto;font-size:12px;color:#fff;background:var(--p);border-radius:999px;padding:1px 10px}
.mock .row em.g{background:#2f9e6b}
/* ミッション */
.mission{background:linear-gradient(160deg,var(--tint) 0%,#fff 70%)}
.mission .big{font-size:clamp(30px,6vw,52px);font-weight:900;line-height:1.35;margin-top:12px}
.mission .big em{font-style:normal;color:var(--p)}
.mission p{color:var(--sub);margin-top:18px;max-width:720px;font-size:16px}
/* 会社 */
.tbl{width:100%;border-collapse:collapse;margin-top:28px;background:#fff;border-radius:16px;overflow:hidden}
.tbl th,.tbl td{text-align:left;vertical-align:top;padding:16px 14px;border-top:1px solid var(--line);font-size:15px;line-height:1.8}
.tbl tr:first-child th,.tbl tr:first-child td{border-top:0}
.tbl th{width:30%;font-weight:800;color:var(--sub);font-size:14px;white-space:nowrap}
@media(min-width:768px){.tbl th{width:22%;padding-left:24px}}
.movie video{display:block;width:100%;height:auto;border-radius:18px;border:1.5px solid var(--line);background:#f4f1fb;box-shadow:var(--sh)}
.movie{margin-bottom:40px}
.vwrap{position:relative}
.vline{position:absolute;top:14px;right:14px;display:none;align-items:center;gap:8px;background:#06c755;color:#fff;font-weight:800;font-size:16px;border-radius:999px;padding:10px 18px;box-shadow:0 8px 22px rgba(6,199,85,.35);animation:vin .35s ease-out}
.vwrap.near-end .vline{display:inline-flex}
@keyframes vin{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.vend{position:absolute;inset:0;display:none;flex-direction:column;align-items:center;justify-content:center;gap:18px;text-align:center;padding:20px;border-radius:18px;background:rgba(251,249,255,.94)}
.vwrap.is-ended .vend{display:flex}
.vwrap.is-ended .vplay,.vwrap.is-ended .vline{display:none}
.vend .t{font-size:clamp(20px,3vw,30px);font-weight:900;line-height:1.5;color:var(--ink)}
.vend .a{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.vend .vre{cursor:pointer;font:inherit;font-weight:800}
@media(max-width:599px){.vline{top:8px;right:8px;font-size:16px;padding:7px 14px}.vend{gap:10px}.vend .t{font-size:18px}.vend .btn{padding:11px 18px;font-size:16px}}
.vwrap.is-playing .vplay,.vplay[hidden]{display:none}
.vplay{position:absolute;inset:0;width:100%;border:0;border-radius:18px;background:linear-gradient(180deg,rgba(42,33,64,0) 40%,rgba(42,33,64,.18));cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;font:inherit}
.vplay .ring{width:clamp(84px,14vw,128px);height:clamp(84px,14vw,128px);border-radius:50%;background:var(--p);display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 10px rgba(255,255,255,.75),0 18px 44px rgba(94,23,235,.45);transition:transform .2s,background .2s}
.vplay .ring svg{width:46%;height:46%;fill:#fff;margin-left:8%}
.vplay b{background:#fff;color:var(--p);font-size:17px;font-weight:900;border-radius:999px;padding:8px 20px;box-shadow:0 6px 18px rgba(42,33,64,.15)}
.vplay:hover .ring,.vplay:focus-visible .ring{transform:scale(1.07);background:var(--pd)}
.vplay:focus-visible{outline:3px solid var(--p);outline-offset:4px}
@media(max-width:599px){.vplay{gap:10px}.vplay .ring{width:72px;height:72px;box-shadow:0 0 0 7px rgba(255,255,255,.75),0 12px 30px rgba(94,23,235,.4)}.vplay b{display:none}}
.rep{display:flex;gap:16px;align-items:center;margin-top:28px;background:var(--tint2);border:1.5px solid var(--line);border-radius:18px;padding:18px}
.rep .av{flex:none;width:56px;height:56px;border-radius:50%;background:var(--tint);display:flex;align-items:center;justify-content:center}
.rep .av svg{width:34px;height:34px}
.rep b{display:block;font-size:16px;font-weight:900}
.rep span{display:block;font-size:13.5px;color:var(--sub);line-height:1.7}
/* お問い合わせ帯 */
.cta{background:var(--p);background:linear-gradient(135deg,#efe7ff 0%,#f7f3ff 100%);border-radius:28px;padding:40px 24px;text-align:center;border:1.5px solid #e2d6fb}
.cta h2{font-size:clamp(24px,4.2vw,34px);font-weight:900;line-height:1.45}
.cta p{color:var(--sub);margin:12px auto 24px;max-width:560px}
.cta .acts{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
/* お問い合わせフォーム */
.cform{display:grid;gap:24px;align-items:start}
@media(min-width:960px){.cform{grid-template-columns:1.4fr 1fr;gap:32px}}
.fm{background:#fff;border:1.5px solid var(--line);border-radius:var(--r);padding:24px 20px;box-shadow:var(--sh)}
@media(min-width:768px){.fm{padding:32px}}
.fm .f{display:block;margin-bottom:18px}
.fm .l{display:flex;align-items:center;gap:8px;font-size:14.5px;font-weight:800;margin-bottom:6px}
.fm .l i,.fm .l em{font-style:normal;font-size:11px;font-weight:800;border-radius:999px;padding:1px 9px}
.fm .l i{background:var(--p);color:#fff}.fm .l em{background:var(--tint);color:var(--sub)}
.fm input,.fm select,.fm textarea{display:block;width:100%;font:inherit;font-size:16px;color:var(--ink);background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;transition:border-color .15s,box-shadow .15s}
.fm textarea{resize:vertical;min-height:180px;line-height:1.8}
.fm select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--sub) 50%),linear-gradient(135deg,var(--sub) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px;background-repeat:no-repeat;padding-right:40px}
.fm input:focus,.fm select:focus,.fm textarea:focus{outline:0;border-color:var(--p);box-shadow:0 0 0 4px rgba(94,23,235,.12)}
.fm .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.fm .pp{font-size:13px;color:var(--sub);margin:4px 0 18px}.fm .pp a{color:var(--p);text-decoration:underline}
.fm .btn{width:100%;border:0;cursor:pointer;font:inherit;font-weight:800;font-size:16px}@media(min-width:768px){.fm .btn{width:auto;min-width:240px}}
.fm .msg{color:#c0392b;font-weight:700;font-size:14px;margin-top:12px;min-height:1em}
.fm.done h2{font-size:26px;font-weight:900;margin:8px 0 10px}.fm.done p{color:var(--sub);margin-bottom:22px}
.side .pc{margin:0}
/* ページ見出し */
.ph{padding:48px 0 8px;background:linear-gradient(180deg,var(--tint2),#fff)}
@media(min-width:768px){.ph{padding:72px 0 16px}}
.ph h1{font-size:clamp(30px,5.6vw,46px);font-weight:900;line-height:1.4;margin-top:8px}
.crumb{font-size:12.5px;color:var(--mut);margin-bottom:10px}.crumb a{color:var(--p);font-weight:700}
.soon{display:inline-block;font-size:11px;font-weight:800;color:#fff;background:var(--mut);border-radius:999px;padding:1px 10px;margin-left:6px;vertical-align:middle}
/* 規約 */
.doc{max-width:820px;margin:0 auto;padding:24px 16px 80px}
.doc .page-intro .eyebrow{display:none}.doc .page-intro h1{display:none}
.doc .page-intro p{color:var(--sub)}
.doc section{padding:24px 0;border-top:1px solid var(--line)}
.doc h2{font-size:19px;font-weight:900;margin-bottom:10px}
.doc p+p,.doc p+ul,.doc ul+p{margin-top:12px}
.doc ul{padding-left:1.4em}
.doc a{color:var(--p);text-decoration:underline;text-underline-offset:3px}
.doc table{width:100%;border-collapse:collapse;table-layout:fixed;margin-top:16px}
.doc th,.doc td{border-top:1px solid var(--line);vertical-align:top;padding:16px 0;text-align:left;font-size:14.5px;line-height:1.85}
.doc th{width:32%;padding-right:14px;font-weight:800;color:var(--sub);font-size:13.5px}
.doc tr:last-child>*{border-bottom:1px solid var(--line)}
.doc .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.doc .legal-updated{font-size:12.5px;color:var(--mut);margin-top:20px}
/* フッター */
.ft{background:var(--tint2);border-top:1px solid var(--line);padding:48px 0 28px;margin-top:0}
.ft .w{display:grid;gap:28px}
@media(min-width:900px){.ft .w{grid-template-columns:1.3fr 1fr 1fr}}
.ft p{font-size:13.5px;color:var(--sub);line-height:1.9;margin-top:12px}
.ft h4{font-size:12px;font-family:var(--fe);letter-spacing:.2em;color:var(--p);font-weight:900;margin-bottom:8px}
.ft ul{list-style:none}.ft li a{display:inline-block;font-size:14px;font-weight:700;padding:5px 0;color:var(--ink)}
.ft li a:hover{color:var(--p)}
.ft .cp{grid-column:1/-1;border-top:1px solid var(--line);padding-top:18px;font-size:12px;color:var(--mut);display:flex;flex-wrap:wrap;gap:8px 18px;justify-content:space-between}
.ft .cp a{color:var(--sub)}
