@charset "utf-8";
/* =========================================================
   SP（767px 以下）。1rem = 100 design-px（SP基準 430）
   PC と同じ DOM をこのファイルで組み替える
   ========================================================= */
html { font-size: calc(100vw / 4.3); }
.pc { display: none !important; }

/* Header (325:4866) */
.hdr { height: .82rem; gap: .37rem; justify-content: flex-end; padding: 0 .11rem; }
.hdr__logo img { width: 1.39rem; height: .44886rem; }
.hdr__right { height: auto; gap: .17rem; padding: 0 .13rem 0 0; }
.hdr__nav { display: none; }
.hdr__cta { background: linear-gradient(to bottom, #fd6a05, #fd8d05 80.288%); color: #fff; gap: .08039rem; padding: .08039rem .13rem; border-radius: .0402rem; font-size: .12rem; letter-spacing: .0108rem; }
.hdr__cta .arw { width: .22rem; height: .04rem; }
.hdr__burger { display: flex; flex-direction: column; justify-content: center; gap: .06rem; width: .35rem; height: .35rem; padding: 0 .004rem; }
.hdr__burger span { display: block; height: .033rem; border-radius: .02rem; background: #fff; }
/* 開いた状態：三本線 → ×（325:4925 の × は 28×27.6 / 線幅2.625） */
.hdr__burger span { transition: transform .4s ease, opacity .3s; }
.hdr__burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(.093rem) rotate(44.5deg) scaleX(1.15); }
.hdr__burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.hdr__burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-.093rem) rotate(-44.5deg) scaleX(1.15); }
.is-menu-open .hdr { transform: none; }
.is-menu-open { overflow: hidden; }

/* SP メニュー (325:5008) */
.spmenu {
  position: fixed; z-index: 99; left: 0; right: 0; top: .82rem;
  height: calc(100dvh - .82rem); overflow-y: auto; overscroll-behavior: contain;
  background: var(--black); color: #fff;
  opacity: 0; visibility: hidden; transition: opacity .4s ease, visibility 0s .4s;
}
.spmenu.is-open { opacity: 1; visibility: visible; transition: opacity .4s ease; }
.spmenu[hidden] { display: none; }
.spmenu:not([hidden]) {
  display: flex; flex-direction: column; align-items: center; justify-content: safe center; gap: .40rem;
  padding: .78rem .36rem .52rem;
}
.spmenu__nav { display: flex; flex-direction: column; gap: .24rem; width: 3.565rem; }
.spmenu__nav a {
  display: block; padding-bottom: .24rem; border-bottom: .01rem solid #9f9f9f;
  font-weight: 500; font-size: .14rem; letter-spacing: .0112rem; line-height: .20rem; white-space: nowrap;
}
.spmenu__cta {
  display: flex; align-items: center; gap: .13965rem;
  padding: .13965rem .22582rem; border-radius: .06982rem;
  background: linear-gradient(to bottom, #fd6a05, #fd8d05 80.288%);
  font-weight: 600; font-size: .20845rem; letter-spacing: .01876rem; line-height: normal; white-space: nowrap;
}
.spmenu__cta .arw { width: .38216rem; height: .06948rem; }
.spmenu__sns { display: flex; align-items: center; gap: .15rem; }
.spmenu__sns img { width: .32298rem; height: .32298rem; }
.spmenu__sns li:nth-child(2) img { width: .35234rem; height: .35234rem; }
/* 開くときに項目を少しずつ下から */
@media (prefers-reduced-motion: no-preference) {
  .spmenu__nav a, .spmenu__cta, .spmenu__sns { transform: translateY(.12rem); opacity: 0; transition: transform .5s ease, opacity .5s ease; }
  .spmenu.is-open :is(.spmenu__nav a, .spmenu__cta, .spmenu__sns) { transform: none; opacity: 1; }
  .spmenu.is-open .spmenu__nav a { transition-delay: calc(var(--i, 0) * .04s + .05s); }
  .spmenu.is-open .spmenu__cta { transition-delay: .33s; }
  .spmenu.is-open .spmenu__sns { transition-delay: .37s; }
}

/* FV (325:4643) */
.fv { height: 8.44rem; }
.fv__bg img { left: .09%; top: 8.15%; width: 99.92%; height: 93.99%; }
.fv__veil { top: 1.81rem; width: 4.3rem; height: 6.72rem; }
.fv__catch { left: -.22rem; top: 1.80rem; width: 4.73855rem; height: 3.09161rem; display: flex; align-items: center; justify-content: center; }
.fv__catch img { flex: none; width: 4.75665rem; height: 2.67704rem; transform: rotate(-5deg) skewX(-5deg); }
.fv__lead { left: .51rem; top: 4.49rem; width: 2.92801rem; height: 2.03762rem; }
.fv__lead-in { font-size: .28963rem; letter-spacing: .014481rem; }
.fv__lead-in > span { margin-bottom: -.02095rem; }
.fv__l1 { width: 2.95rem; }
.fv__scroll { left: calc(50% - .005rem); top: 7.06rem; transform: translateX(-50%); color: #fff; }
.fv__scroll i { background: #fff; }
.sp { display: revert; }
br.sp { display: inline; }

/* 共通：SP のボタン（Frame 316 SP版） */
.btn { gap: .15rem; padding: .23rem .38333rem; border-radius: .73792rem; font-size: .1725rem; line-height: .25749rem; letter-spacing: .025875rem;
  filter: drop-shadow(0 .115rem .15333rem rgba(0,0,0,.08)); }
.btn > span { width: 2.07rem; white-space: nowrap; }
.btn__arw { width: .53622rem; height: .07129rem; margin: -.00472rem -.01622rem -.00658rem 0; }

/* 横スクロール（SPの比較図・料金表） */
.hscroll { display: block; width: 100%; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.hscroll::-webkit-scrollbar { display: none; }
.hscroll__in { width: max-content; }
.hscroll__bar { display: block; position: relative; width: 1.84rem; height: .03rem; margin: -.015rem 0; background: #e7e7e7; }
.hscroll__bar > i { position: absolute; left: 0; top: 0; width: .53rem; height: 100%; background: #00c8b3; transform: translateX(calc(var(--sp, 0) * 1.31rem)); }

/* ---------------------------------------------------------
   ABOUT (325:5035)
   --------------------------------------------------------- */
.about { height: 36.087rem; } /* Figma 4243.47 ＋24.8（動画本文）− 動画カード 583.9＋上余白75（非表示） */
.about__band { clip-path: polygon(-5.9341rem 0, -2.4758rem 0, 9.35rem 7.176rem, 9.35rem 19.772rem); }
.about__inner { width: 4.3rem; gap: .63rem; }
.ghost--about { left: 3.25rem; top: -.59rem; width: .69735rem; height: 3.54rem; }
.ghost--about p { width: .69735rem; height: 3.54rem; }
.ghost--about span { height: .69735rem; font-size: .90074rem; line-height: 2.15015rem; letter-spacing: .03603rem; }
@keyframes ghost-up { to { transform: translateY(-3.54rem); } }
.ghost__track { animation-duration: 6s; }
.about__intro { width: 3.70rem; gap: .18rem; }
.sec-label { font-size: .20rem; line-height: .26rem; letter-spacing: .026rem; }
.about__body { padding-left: 0; gap: .37rem; }
.about__ttl { gap: 0; font-size: .42rem; line-height: .64rem; letter-spacing: .0294rem; }
.about__txt { gap: .39rem; font-size: .16rem; line-height: .39rem; letter-spacing: .024rem; }
.vs { flex-direction: column; justify-content: space-between; height: 12.626rem; gap: .43rem; }
.vs__card { zoom: .81543; }
/* Figma 更新（325:5052）：カード幅 345.83 / 353.09。中身はそのままで左右の余白だけ詰める */
.vs__card { padding-left: .27035rem; padding-right: .27035rem; }
.vs__card--or { padding-left: .3149rem; padding-right: .3149rem; }
.vs__arw { transform: rotate(90deg); }

.shift { width: 3.70rem; margin-top: 1.00rem; align-items: flex-start; gap: .57rem; }
.shift__head { width: 3.70rem; align-items: flex-start; gap: .27rem; text-align: left; }
.shift__ttl { font-size: .24rem; line-height: .41rem; letter-spacing: .0168rem; }
.shift__lead { width: 3.70rem; height: auto; font-size: .16rem; line-height: .39rem; letter-spacing: .024rem; }
.shift__cases { gap: .59rem; margin-bottom: 0; }
.case { width: 3.70rem; align-items: center; gap: .26rem; }
.case__ttl { width: 100%; height: auto; align-items: stretch; gap: .14649rem; font-size: .21973rem; line-height: .33839rem; letter-spacing: .015381rem; }
.case__ttl::before { width: .07324rem; height: auto; }
.case .hscroll__in { zoom: .46087; }
.case__a { gap: .2688rem; }
.formula { align-self: center; margin-top: .02rem; gap: .41749rem; }
.formula__down { width: .08789rem; height: .80569rem; }
.formula__row { gap: .0148rem; }
.formula__c { width: 1.08579rem; height: 1.08579rem; font-size: .12rem; line-height: .17rem; letter-spacing: .0084rem; }
.formula__op { width: auto; font-size: .23758rem; line-height: .35015rem; letter-spacing: .016631rem; }

/* 動画カード（325:5217 Figma 更新） */
.movie { width: 3.53rem; margin-top: .75rem; flex-direction: column; gap: .21107rem; padding: .36707rem .15601rem; border-radius: .18354rem; }
.movie__thumb { width: 2.75303rem; height: 1.55325rem; border-radius: .04117rem; }
.movie__body { width: 3.21799rem; align-items: center; gap: .2386rem; }
.movie__ttl { align-self: auto; width: 2.75303rem; font-size: .26501rem; line-height: .42213rem; letter-spacing: .018551rem; }
.movie__txt { width: 2.75303rem; margin-top: calc(.09177rem - .2386rem); font-size: .14683rem; line-height: .24777rem; letter-spacing: .022024rem; white-space: normal; }
.movie__btn { --k: .879444; width: 3.21799rem; padding: .21107rem .35178rem; gap: .13765rem; filter: drop-shadow(0 .10553rem .14071rem rgba(0,0,0,.08)); }
.movie__btn > span { width: 1.89959rem; }
.movie__btn .btn__arw { width: .47719rem; height: .05506rem; margin: 0; }
.about__dome { height: .318174rem; width: 4.3rem; }

/* 見出しブロック（SP：Frame 252 系） */
.shead { width: 3.70rem !important; gap: .18rem; }
.shead__label { height: auto; font-size: .20rem; line-height: .26rem; letter-spacing: .026rem; }
.shead__ttl { font-size: .28rem; line-height: .44rem; letter-spacing: .0196rem; }
.shead__txt { width: 3.70rem !important; height: auto !important; margin-top: .19rem; font-size: .16rem; line-height: .39rem; letter-spacing: .024rem; }
.ghost-h { height: .69735rem !important; }
.ghost-h span { height: auto; font-size: .90074rem; line-height: 2.15015rem; letter-spacing: .03603rem; width: auto !important; }

/* ---------------------------------------------------------
   PROCESS (330:5603)
   --------------------------------------------------------- */
.process { height: 18.75397rem; gap: .63rem; padding: 1.00rem 0 0; }
/* Figma 更新：メッセージ→ボタンの間隔 39→17（メッセージ枠はカンプ 173.09 に対し 170.4 のため +.027） */
.process__main > .btn { margin-top: calc(.17rem - .39rem + .027rem); }
.process > .ghost-h { left: .93rem !important; top: .73rem !important; }
.process__main { gap: .39rem; }
/* 4枚のタイルは PC の ×0.6608 を縦積み（幅374で右端を切る） */
.proc { zoom: .66078; width: 5.65995rem; height: 11.94788rem; }
.proc__item { left: 0 !important; }
.proc__item:nth-child(1) { top: 0 !important; }
.proc__item:nth-child(2) { top: 2.98697rem !important; }
.proc__item:nth-child(3) { top: 5.97394rem !important; }
.proc__item:nth-child(4) { top: 8.96091rem !important; }
.process__msg { width: auto; height: auto; flex-direction: column; align-items: center; gap: .16866rem; margin-top: calc(.43rem - .39rem); }
.process__msg img { display: none; }
.process__msg::before { content: ""; width: .306rem; height: .66176rem; margin-left: .0005rem; background: url(../img/sp/process-arrow.svg) no-repeat center / .66176rem .307186rem; transform: rotate(90deg); }
.process__msg::before { width: .66176rem; height: .307186rem; margin: .1776rem 0; }
.process__msg p { margin: 0; padding: 0 .14327rem; background: none; text-align: center; font-size: .29626rem; line-height: .43664rem; letter-spacing: .020738rem; }
/* タイル内の文字は ×0.6608 ではない。MCP値(15.86/10.57px)も実描画と合わないため、カンプ実測
   （見出し17.5px・本文12px・行送り25px）を ÷0.6608 で zoom 前の値に換算 */
.proc__head h3 { height: auto; font-size: .26483rem; line-height: .37833rem; letter-spacing: .018538rem; }
.proc__txt { font-size: .1816rem; line-height: .37833rem; letter-spacing: .012712rem; }

/* ---------------------------------------------------------
   PARTNERSHIP (330:6501)：カードは PC の ×0.6829
   --------------------------------------------------------- */
.partner { gap: .82rem; padding: calc(.31817rem + .82rem) 0 1.30rem; }
.partner__dome { width: 4.3rem; height: .31817rem; }
.partner > .shead { margin-bottom: calc(.63rem - .82rem); }
.apcs { width: 3.70rem; display: flex; flex-direction: column; gap: .24583rem; margin-bottom: calc(.63rem - .82rem); }
.apc { zoom: .68286; width: 5.41834rem; height: 5.64296rem; padding-left: .29288rem; }
.apc.is-active { outline-color: #fd6a05; }
/* 箇条書きは MCP値(8.19px)ではなくカンプ実測 12px・行送り20px（÷0.6829 で zoom 前に換算） */
.apc__list li { font-size: .17573rem; line-height: .29288rem; letter-spacing: .0123rem; }
.apc__in, .apc--05 .apc__in { justify-content: space-between; gap: 0; } /* SP は番号が上端・本文が下端（カンプ実測） */
.partner__msg { margin-bottom: calc(.63rem - .82rem); padding: 0 .10252rem; font-size: .24956rem; line-height: .51149rem; letter-spacing: .017469rem; }
.partner__msg .l2 { top: -.02rem; height: .461rem; }
.partner__msg .l2 span { font-size: .38747rem; }
.apc.is-active .apc__more { background-image: url(../img/sp/tri-or.svg); }

/* ---------------------------------------------------------
   REASON (330:7649)
   --------------------------------------------------------- */
.reason { height: 37.51764rem; gap: 1.00rem; padding: 1.30rem 0 0; }
.reason__corner { width: 1.51rem; height: 3.07rem; top: -.002rem; }
.reason > .ghost-h { left: .93rem !important; top: .42792rem !important; }
.reason__main { gap: 1.00rem; }
.walls { gap: 1.14rem; }
.walls__row { display: contents; }
.walls__cross { display: none; }
.wall { width: 3.70rem; display: flex; flex-direction: column; align-items: flex-start; gap: .31rem; }
.wall + .wall::before, .walls__row + .walls__row .wall:first-child::before { content: ""; position: absolute; left: 0; top: -.58rem; width: 3.70rem; height: .02rem; background: #e7e7e7; }
.wall__no { position: static; width: .76rem; height: .58941rem; opacity: 1; }
.wall__no span, .wall:first-child .wall__no span { font-size: .76132rem; line-height: 1.81735rem; letter-spacing: .083745rem; color: #b04800; }
.wall__in { padding: 0; gap: .22rem; }
.wall__ttl { font-size: .28rem; line-height: .44rem; letter-spacing: .0196rem; }
.wall__txt { width: 3.70rem; font-size: .16rem; line-height: .39rem; letter-spacing: .0112rem; }

.together__band { width: 4.3rem; height: 13.26rem; gap: .97rem; }
.together__ttl .s { font-size: .21904rem; line-height: .40114rem; letter-spacing: .015333rem; }
.together__ttl .l { left: 0; font-size: .35232rem; line-height: .52052rem; letter-spacing: .024662rem; }
.together__steps { flex-direction: column; align-items: center; gap: 1.22rem; }
.together__steps::before { top: calc(50% + .3453rem); left: calc(50% + .005rem); width: .08rem; height: 6.52rem; background: #e7e7e7; }
.together__steps li { width: auto; gap: .14rem; padding: .46rem .20rem .21rem; margin: .21rem 0;
  background: #4b4344; box-shadow: inset 0 0 0 .03rem #e7e7e7, 0 0 0 .21rem #5c5151; border-radius: .20rem; }
.together__steps b { position: absolute; left: calc(50% - .515rem); top: -.75rem; }
.together__steps p { margin-top: 0; }
.together__steps li:nth-child(3) p { width: 100%; margin: 0; }

/* ---------------------------------------------------------
   APPROACH (330:8011)
   --------------------------------------------------------- */
.approach { gap: .82rem; padding: 1.00rem 0 0; }
.approach__bg img { left: -194.97%; top: 0; width: 536.87%; height: 156.47%; }
.approach__main { gap: .87rem; }
.approach__reasons { gap: .53rem; }
.arsn { width: 3.70rem; gap: .63rem; }
.arsn__head { gap: .59rem; }
.arsn__no { zoom: .80133; }
.arsn__txt { padding-left: 0; gap: .23rem; white-space: normal; }
.arsn__txt h3 { font-size: .28rem; line-height: .44rem; letter-spacing: .0196rem; white-space: nowrap; }
.arsn__txt p { width: 3.70rem; height: auto !important; font-size: .16rem; line-height: .39rem; letter-spacing: .024rem; }
.arsn__fig { padding-left: 0; gap: .63rem; align-items: flex-start; }
.aflow-wrap { width: 3.70rem; display: block; }
.aflow { filter: none; display: block; }
.aflow__band { display: none; }
.aflow__cards { flex-direction: column; align-items: flex-start; gap: .38rem; }
.afc:not(:last-child)::after { display: none; }
.afc__card { width: 3.70rem; border-radius: 0; overflow: visible; }
.afc__head { width: auto; align-items: flex-start; justify-content: flex-start; gap: .19097rem; padding: .16369rem .23189rem; }
.afc__head b { width: .38194rem; height: .28792rem; font-size: .40315rem; line-height: .44343rem; letter-spacing: .016126rem; }
.afc__head h4 { height: .34163rem; font-size: .16369rem; line-height: .23189rem; letter-spacing: .011458rem; }
.afc__body { width: 3.70rem; flex-direction: row; justify-content: center; gap: .08rem; padding: .22rem .22158rem; }
.afc__top { width: 1.21rem; gap: .06rem; padding-top: .03292rem; }
.afc__pic--1 { flex: none; width: 1.25743rem; height: .96117rem; }
.afc__body p { font-size: .10rem; line-height: .16rem; letter-spacing: .007rem; }
.afc__top p { width: 1.25rem; white-space: normal; }
.afc:nth-child(3) .afc__top p { width: 1.21rem; }
.afc__down { width: .12777rem; height: .2173rem; margin: 0 .04145rem; background-size: 100% 100%; transform: rotate(-90deg); }
.afc__get { flex: none; width: 1.68rem; height: 1.62rem; gap: .08558rem; }
.afc__pic--2 { width: 1.09943rem; height: .79659rem; }
.afc__body .afc__get-ttl { font-size: .12301rem; line-height: .17749rem; letter-spacing: .008611rem; }
.afc__get-ttl + p { margin-top: calc(.04608rem - .08558rem); }
.aflow__msg { zoom: .58048; width: 7.30416rem; margin-left: -.267rem; } /* カンプ実測：黄色マーカーの x=206 に合わせる */
.cmp { width: auto; }
.hscroll--cmp { width: 3.70rem; }
/* 比較表（396:8231 Figma 更新）：文字・アイコン・行高は PC ×0.5227、列幅だけ SP 用（93/124/126/181）。値は zoom 前に換算 */
.hscroll--cmp .hscroll__in { zoom: .5227; width: 10.02488rem; }
.hscroll--cmp .cmp { width: 10.02488rem; }
.hscroll--cmp .cmp thead tr { margin-left: 1.76009rem; height: .95657rem; }
.hscroll--cmp .cmp thead th { width: 2.37230rem; height: .95657rem; }
.hscroll--cmp .cmp thead th:nth-of-type(2) { width: 2.41056rem; }
.hscroll--cmp .cmp thead th.is-our { width: 3.48192rem; height: .95657rem; }
.hscroll--cmp .cmp thead .h { font-size: .25043rem; letter-spacing: .01753rem; }
.hscroll--cmp .cmp thead .h--sm { font-size: .24871rem; letter-spacing: .01741rem; }
.hscroll--cmp .cmp thead .is-our .h { font-size: .32707rem; }
.hscroll--cmp .cmp tbody::before { width: 6.56208rem; }
/* 行高は Figma（56/56/70/71/71・行間なし）に。表の下端をオレンジ枠（374）とそろえる */
.hscroll--cmp .cmp tbody { gap: 0; }
.hscroll--cmp .cmp tbody tr:nth-child(1) { height: 1.07136rem !important; }
.hscroll--cmp .cmp tbody tr:nth-child(2) { height: 1.07136rem !important; }
.hscroll--cmp .cmp tbody tr:nth-child(3) { height: 1.33920rem !important; }
.hscroll--cmp .cmp tbody tr:nth-child(4) { height: 1.35833rem !important; }
.hscroll--cmp .cmp tbody tr:nth-child(5) { height: 1.35833rem !important; }
.hscroll--cmp .cmp tbody th { width: 1.77922rem; }
.hscroll--cmp .cmp tbody td { width: 2.37230rem; }
.hscroll--cmp .cmp tbody td:nth-of-type(2) { width: 2.41056rem; }
.hscroll--cmp .cmp tbody td.is-our { width: 3.46279rem; }
.hscroll--cmp .cmp tbody td span { width: auto; }
.hscroll--cmp .cmp tbody td.is-our small { width: auto; margin: 0 -.2rem; }
.hscroll--cmp .cmp__frame { left: 6.54295rem; width: 3.48192rem; height: 7.15516rem; }
.hscroll__bar.hscroll__bar--cmp { margin: -.352rem 0 .02rem; } /* 表の上端から 402px（Group 52 y=405 中心） */
.approach__dome { width: 4.3rem; height: .31817rem; }

/* ---------------------------------------------------------
   POINT (330:8591)
   --------------------------------------------------------- */
.point { gap: .82rem; padding: 1.00rem 0 1.00rem; }
.point > .ghost-h { left: .93rem !important; top: .72958rem !important; }
.point__main { width: 4.3rem; gap: .65rem; }
.point .shead { width: 3.70rem; }
.point .shead__ttl { height: 1.40rem; font-size: .43424rem; line-height: .76rem; letter-spacing: .0196rem; }
.point .shead__ttl em.n { font-size: .7442rem; }
.point__body { flex-direction: column; gap: .42231rem; }
.pfig { zoom: .65986; }
.pts { gap: .42231rem; }
.pt, .pt:nth-child(1), .pt:nth-child(2), .pt:nth-child(3) { width: 3.70rem; height: auto; gap: .31rem; }
.pt__head { gap: .2511rem; }
.pt:nth-child(1) .pt__head { gap: .31rem; }
.pt__no { zoom: 1.46633; }
.pt__tag { padding: .0421rem .08066rem; font-size: .14143rem; line-height: .22001rem; letter-spacing: .0099rem; }
.pt:nth-child(1) .pt__tag { padding: .05197rem .09958rem; font-size: .17461rem; line-height: .27161rem; letter-spacing: .012223rem; }
.pt__txt { gap: .13rem; }
.pt__txt h3 { font-size: .28rem; line-height: .44rem; letter-spacing: .0196rem; }
.pt__txt p { width: 3.70rem; font-size: .16rem; line-height: .39rem; letter-spacing: .024rem; }
.point .shead__ttl .t2 { display: block; position: relative; top: -.12rem; height: .64rem; } /* 大小混在行の字面位置（カンプ実測） */

/* ---------------------------------------------------------
   SERVICE (330:9272)
   --------------------------------------------------------- */
.svc { width: 3.70rem; margin-top: 0; }
.svc > .ghost-h { left: .63rem !important; top: -.2704rem !important; }
.svc__intro { gap: .18rem; }
.svc__label { height: auto; font-family: Montserrat, sans-serif; font-size: .20rem; line-height: .26rem; letter-spacing: .026rem; }
.svc__h2 { height: auto; font-size: .19rem; line-height: .41rem; letter-spacing: .0168rem; }
.svc__h2 span { display: block; font-size: .49rem; line-height: .69rem; }
.svc__list { margin-top: .65rem; gap: .42231rem; }
.svc__item { align-items: stretch; gap: .31rem; }
.svc__head { gap: .31rem; }
.svc__head .arsn__no { zoom: .649; }
.svc__txt { padding-left: 0; gap: .13rem; }
.svc__ttl { gap: .31rem; }
.svc__tag { height: auto; padding: .06478rem .12413rem; font-size: .21766rem; line-height: .33858rem; letter-spacing: .015236rem; }
.svc__ttl h3 { font-size: .38rem; line-height: .44rem; letter-spacing: .0266rem; }
.svc__item:nth-child(3) .svc__ttl h3 { line-height: .52rem; }
.svc__para { width: 3.70rem; min-height: 0; font-size: .16rem; line-height: .39rem; letter-spacing: .024rem; white-space: normal; }
.svc__note { padding: .13rem 0; font-size: .126rem; line-height: .28rem; letter-spacing: .024rem; } /* 1行目だけ行高54px（Figma） */
.hscroll--ptbl .hscroll__in { zoom: .66521; }
.hscroll--ptbl3 .hscroll__in { zoom: .76553; }
.hscroll__bar--b { align-self: center; height: .06rem; margin: -.03rem 0; }
.svc > .btn { margin-top: .65rem; }
.svc > .btn > span { white-space: normal; }

/* ---------------------------------------------------------
   DATA (330:10901)：図版と数字は PC の ×0.8813
   --------------------------------------------------------- */
.data { gap: 0; padding: 0 0 1.00rem; }
.data__dome { width: 4.3rem; height: .31817rem; margin-bottom: calc(1.00rem - .31817rem); }
.data__main { width: 3.70rem; gap: .52rem; }
.data .shead { gap: .25rem; }
.data .shead__ttl { font-size: .42rem; line-height: .64rem; letter-spacing: .0294rem; }
.dgrid { width: auto; height: auto; display: flex; flex-direction: column; align-items: flex-start; gap: .31rem; }
.dcard, .dcard--a, .dcard--b, .dcard--c, .dcard--d { position: relative; left: auto; top: auto; width: auto; height: auto; align-items: center; justify-content: flex-start; gap: .07932rem; padding: .27733rem .21995rem; box-shadow: inset 0 0 0 .00956rem #fff; padding: calc(.27733rem + .00956rem) calc(.21995rem + .00956rem); }
.dcard__txt, .dcard--a .dcard__txt { width: 3.26098rem; margin: 0; gap: .11457rem; }
.dcard__txt h3 { font-size: .33491rem; line-height: .4583rem; letter-spacing: .023444rem; }
.dcard__txt p { width: 3.26098rem; font-weight: 700; font-size: .14102rem; line-height: .34372rem; letter-spacing: .021152rem; }
.dnum, .donut, .dcard__bld, .dcard__docs, .dcard__award { zoom: .88134; }
.dcard--a { gap: .28203rem; }
.dcard__top { gap: .07932rem; }
.dcard__row, .dcard--b .dcard__row, .dcard--c .dcard__row { flex-direction: column; align-items: center; gap: .07932rem; }
.dcard--b .dnum { display: none; }
.dcard__col { display: contents; }
.dcard--c .dcard__row { gap: .30847rem; }
.dcard--c .dcard__txt { order: 1; margin-bottom: calc(.07932rem - .30847rem); }
.dcard--c .dcard__docs { order: 2; }
.dcard--c .dnum { order: 3; }
.data > .btn { margin-top: .65rem; }
.dgrid { margin-left: -.01rem; }

/* ---------------------------------------------------------
   CASE STUDIES (330:12284)
   --------------------------------------------------------- */
.case-s { gap: .30rem; padding: 1.00rem 0; overflow: hidden; }
.case-s__bg { left: -194.97%; top: 0; width: 536.87%; height: 156.47%; object-fit: fill; }
.case-s .shead__ttl { font-size: .42rem; line-height: .64rem; letter-spacing: .0294rem; }
.case-s__list { gap: .21rem; }
.case-s__row { display: contents; }
.case-s > .btn { margin-top: calc(.87rem - .30rem); }

/* ---------------------------------------------------------
   MEDIA (330:11859)
   --------------------------------------------------------- */
.media { padding: 1.00rem 0; }
.media > .ghost-h { left: .93rem !important; top: .73rem !important; }
.media__main { width: 3.70rem; gap: .30rem; }
.shead__ttl--media { font-size: .42rem; line-height: .64rem; letter-spacing: .0294rem; }
.media__list { align-items: flex-start; gap: .61rem; }
.mblk { width: 3.70rem; align-items: stretch; gap: .30rem; }
.mblk__main { display: contents; }
.mblk__intro { order: 1; width: 3.70rem; align-items: flex-end; gap: .13rem; }
.mblk__intro h3 { align-self: stretch; font-size: .27814rem; line-height: .42rem; letter-spacing: .01947rem; }
.mblk__intro > p:not(.mblk__num) { align-self: stretch; width: 3.70rem; white-space: normal; }
.mblk__num, .mblk__num--l { position: static; order: -1; zoom: .69107; margin-bottom: calc(.15rem / .69107 - .13rem / .69107); }
.mblk:nth-child(1) .mblk__num { margin-bottom: calc(-.15rem / .69107 - .13rem / .69107); }
.mblk:nth-child(3) .mblk__num { margin-bottom: calc(-.28rem / .69107 - .13rem / .69107); }
.mblk__more { order: 2; justify-content: flex-end; }
.mblk__cards { order: 3; flex-direction: column; gap: .21rem; }
.media .acard { --py: .37083rem; --px: .23516rem; --bw: .00812rem; --gap: .2442rem; --iw: 3.14864rem; --ih: 1.76908rem;
  --bgap: .08115rem; --tgap: .11361rem; --fs: .1623rem; --lh: .30837rem; --ls: .011361rem;
  --tfs: .1948rem; --tlh: .30837rem; --tls: .013636rem; --tagpx: .14607rem; --tagpy: .02435rem; --taglh: .26093rem;
  --tagH: .31869rem; --ttlH: .93rem; --tagsH: .31rem; --dr: .0325rem; --dt: .0243rem; --sh-y: .09738rem; --sh-b: .12984rem; }
.mblk__sep { width: 3.70rem; border-top: .02rem solid #e7e7e7; }
.mblk__cards { align-self: center; align-items: flex-start; }

/* ---------------------------------------------------------
   CTA (330:16851) / Footer (330:17542)
   --------------------------------------------------------- */
/* SP は Figma 更新で CTA セクション廃止（追従バナーに置き換え） */
.cta { display: none; }
.ft { padding: .60rem 0 1.00rem; }
.ft__in { width: 3.60rem; align-items: flex-start; gap: .65rem; }
.ft__top { flex-direction: column; gap: .44rem; }
.ft__nav { flex-wrap: wrap; padding-top: 0; }
.ft__line { width: 3.60rem; }
.ft__bottom { width: 100%; flex-direction: column-reverse; align-items: center; gap: .15rem; }
/* REASON の番号：中央揃え＋行末字間ぶんの padding（Chrome は行末字間まで含めて中央に置く）。字間はカンプの字幅に合わせる */
.wall__no > span { padding-left: .043745rem; letter-spacing: .043745rem; }
.walls__row .wall:first-child .wall__no > span { padding-left: .043745rem; letter-spacing: .043745rem; }
.walls__row:first-child .wall:first-child .wall__no > span { padding-left: .083745rem; letter-spacing: .083745rem; } /* 01 */

/* ---------------------------------------------------------
   SP 追従バナー（396:8206 / kintone×AI 版 403:9589）
   FV を過ぎたら下から出し、フッターが見えたら隠す（出し入れのタイミングは推論）
   --------------------------------------------------------- */
.float {
  display: block; position: fixed; z-index: 90; left: .09rem; bottom: 0; width: 3.92rem; height: 1.89741rem;
  transform: translateY(110%); transition: transform .5s cubic-bezier(.22,1,.36,1); pointer-events: none;
}
.float.is-show { transform: none; pointer-events: auto; }
.is-menu-open .float { transform: translateY(110%); pointer-events: none; }
.float__person { position: absolute; left: 0; top: 0; width: 1.26849rem; height: 1.89741rem; pointer-events: none; }
.float__box {
  position: absolute; left: .2239rem; top: .7355rem; width: 3.69615rem; height: 1.02059rem;
  display: flex; align-items: center; justify-content: center; gap: .12792rem;
  padding: .1066rem .26649rem .12792rem 1.03398rem;
  background: linear-gradient(78.77deg, #f2ff00 35.408%, #c9f536 89.306%);
  box-shadow: inset 0 0 0 .04127rem #fff; border-radius: .20253rem;
}
.float__txt { display: flex; flex-direction: column; align-items: center; font-weight: 700; font-size: .20812rem; line-height: .36243rem; letter-spacing: .014069rem; color: #352e2e; white-space: nowrap; }
.float__txt em { font-size: .28138rem; color: #fd6a05; }
.float__arw { flex: none; width: .35177rem; height: .35177rem; transition: transform .3s; }
.float__bubble {
  position: absolute; left: .8634rem; top: -.3304rem; padding: .06465rem .14224rem; border-radius: .06465rem; background: #fff;
  filter: drop-shadow(0 .02586rem .03653rem rgba(0,0,0,.25));
  font-weight: 700; font-size: .14612rem; line-height: .27154rem; letter-spacing: .010228rem; color: #352e2e; white-space: nowrap;
}
.float__bubble::after { content: ""; position: absolute; left: 50%; top: calc(100% - .02586rem); width: .11198rem; height: .12122rem; margin-left: -.05599rem; background: #fff; clip-path: polygon(0 0, 100% 0, 50% 100%); }
.float--kai { left: 0; }
.float--kai .float__box { left: .3226rem; filter: drop-shadow(0 .12rem .16rem rgba(0,0,0,.08)); }
.float--kai .float__txt { letter-spacing: .010406rem; }
.float--kai .float__txt em { font-size: .2781rem; }
.float--kai .float__bubble { left: .86rem; top: -.3041rem; padding: .06127rem .1348rem; border-radius: .06127rem; filter: drop-shadow(0 .02451rem .03462rem rgba(0,0,0,.25)); font-size: .13847rem; line-height: .25734rem; letter-spacing: .009693rem; }
.float--kai .float__bubble::after { width: .10612rem; height: .11488rem; margin-left: -.05306rem; top: calc(100% - .02451rem); }
.float:active .float__arw { transform: translateX(.04rem); }
