@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; }
/* 開くときに項目を少しずつ下から */
@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--auto / btn--wide）は固定幅を外す。収まらない長さは折り返し、箱からはみ出さない */
.btn--auto > span, .btn--wide > span { width: auto; min-width: 0; text-align: center; }
.btn--auto, .btn--wide { max-width: 100%; }
.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; }
.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: flex-start; height: auto; gap: .43rem; } /* 高さ固定だと iPhone で文字の折り返しが増えたとき下の見出しに重なる */
.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 .sum__sub { white-space: nowrap; } /* 「合計リードタイム」を1行に（SP の折り返し調整で2行になり数字と重なっていた） */
.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); }

/* フッター（2026-10 改訂：4列 → SP は2列） */
.ft__nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .30rem .10rem; width: 100%; }
.ft__col ul { padding-left: .06rem; font-size: .14rem; }
.ft__col li { height: .34rem; }
.ft__col > p { font-size: .17rem; }
.ft__col a { gap: .10rem; }
.ft__bottom { white-space: normal; text-align: center; font-size: .12rem; line-height: .22rem; }
.vs__hl::before { top: .03rem; } /* 文字が塗りの上下中央 */

/* SP の改行：文節で折り返し（Chrome）、見出しは行の長さをそろえ、本文は最終行が1〜2文字にならないように */
main :is(h1, h2, h3, h4, dt), main [class*="__ttl"], main [class*="__lead"], main [class*="-ttl"], main [class*="__t"]:not([class*="__txt"]) { word-break: auto-phrase; text-wrap-style: balance; }
main :is(p, li, dd, td, th) { text-wrap-style: pretty; }
.nb { text-wrap-style: balance; }
/* メディア紹介の本文：PC 用の改行を外して自然に流す */
.mblk__intro > p:not(.mblk__num) br { display: none; }
.mblk__q { display: inline-block; margin-left: -.5em; } /* 行頭の「の空きを詰める */

/* フッター（SP）：1列のアコーディオン。見出しを押すとリンクが開く */
.ft__nav { display: flex; flex-direction: column; gap: 0; }
.ft__col { width: 100%; gap: 0; box-shadow: inset 0 .01rem 0 rgba(255,255,255,.18); }
.ft__col:last-child { box-shadow: inset 0 .01rem 0 rgba(255,255,255,.18), inset 0 -.01rem 0 rgba(255,255,255,.18); }
.ft__col > p { display: flex; align-items: center; justify-content: space-between; width: 100%; height: .56rem; margin: 0; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.ft__col > p::after { content: ""; flex: none; width: .14rem; height: .14rem; margin-right: .04rem; background: linear-gradient(currentColor, currentColor) center / 100% .015rem no-repeat, linear-gradient(currentColor, currentColor) center / .015rem 100% no-repeat; transition: transform .3s; }
.ft__col.is-open > p::after { transform: rotate(45deg); }
.ft__col > ul { display: none; padding: 0 0 .14rem .06rem; }
.ft__col.is-open > ul { display: flex; flex-direction: column; }
.ft__col > p:focus-visible { outline: .02rem solid #fff; outline-offset: .02rem; }
.ft__top, .ft__nav { width: 100%; align-self: stretch; }
.ft__bottom p { text-wrap-style: balance; }
/* 目次ボタン（SP）：追従バナーが出ているときはその上へ */
.toc-btn { right: .14rem; bottom: .16rem; width: .54rem; height: .54rem; font-size: .11rem; }
.is-float .toc-btn { bottom: 1.58rem; } /* 追従バナーの吹き出し（下から 1.49rem）のすぐ上 */
.toc-panel { right: .14rem; bottom: .80rem; width: calc(100vw - .28rem); max-width: 3.40rem; max-height: 60vh; }
.is-float .toc-panel { bottom: 2.22rem; max-height: calc(100vh - 3.00rem); }
.is-menu-open .toc-btn { opacity: 0; pointer-events: none; }
.vs__ttl { height: auto; } /* SP は3行。改行位置は <br class="sp"> で決め、折り返さない（PC と同じ nowrap。Safari は文節で折り返せず「任 / せた」になる） */
.toc-btn { display: flex; }
.toc-panel:not([hidden]) { display: block; }

/* SP カード一覧のカルーセル（main.js が .is-car を付ける）：画面端まで広げ、1枚ずつ吸着・次のカードを少し見せる */
.ncards.is-car.is-car { display: flex; flex-direction: row; flex-wrap: nowrap; align-items: stretch; gap: .16rem; width: 100vw; max-width: none; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); padding: 0 calc(50vw - 1.85rem) .04rem; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scroll-padding: 0 calc(50vw - 1.85rem); scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.ncards.is-car::-webkit-scrollbar { display: none; }
.ncards.is-car > .ncards__row { display: contents; }
.ncards.is-car .ncard { flex: none; width: 3.00rem; scroll-snap-align: start; }
.ncards.is-car .ncard__img { width: 100%; height: auto; aspect-ratio: 16 / 9; }
.ncards.is-car .ncard__img img { width: 100%; height: 100%; object-fit: cover; }
.car-bar { align-self: center; margin-top: .06rem; }

/* 相談フォーム（SP）：畳んだ状態。上だけ見せてボタンを重ねる */
.is-fold { position: relative; max-height: 1.70rem; overflow: hidden; }
.is-fold::after { content: ""; position: absolute; z-index: 1; left: 0; right: 0; bottom: 0; height: 1.20rem; background: linear-gradient(rgba(247, 110, 18, 0), #f46c12 72%); pointer-events: none; }
.fold-btn:not([hidden]) { position: absolute; z-index: 2; left: 50%; bottom: .18rem; translate: -50% 0; display: flex; align-items: center; gap: .12rem; padding: .15rem .34rem; border: 0; border-radius: .50rem; background: #352e2e; box-shadow: 0 .06rem .14rem rgba(0,0,0,.2); color: #fff; font: 700 .15rem/.22rem "Noto Sans JP", sans-serif; letter-spacing: .02rem; white-space: nowrap; cursor: pointer; }
.fold-btn i { width: .09rem; height: .09rem; margin-top: -.04rem; border-right: .02rem solid #fff; border-bottom: .02rem solid #fff; rotate: 45deg; }
.fold-btn:focus-visible { outline: .02rem solid #fff; outline-offset: .03rem; }
.car-bar { display: block; margin: .10rem auto 0; align-self: center; }

/* 業種別に読む（SP）：タブ */
.ind-tabs { display: flex; gap: .08rem; width: 100vw; margin: 0 calc(50% - 50vw); padding: 0 calc(50vw - 1.85rem) .02rem; overflow-x: auto; scrollbar-width: none; }
.ind-tabs::-webkit-scrollbar { display: none; }
.ind-tabs > button { flex: none; height: .40rem; padding: 0 .20rem; border: 0; border-radius: .40rem; background: #fff; box-shadow: inset 0 0 0 .015rem #fd6a05; color: #fd6a05; font: 700 .15rem/1 "Noto Sans JP", sans-serif; letter-spacing: .015rem; white-space: nowrap; cursor: pointer; }
.ind-tabs > button[aria-selected="true"] { background: #fd6a05; color: #fff; }
.ind-tabs > button:focus-visible { outline: .02rem solid #fff; outline-offset: .02rem; }
.cs-ind__row > .cs-ibox:not(.is-active) { display: none; }
.cs-ind__row > .cs-ibox .cs-ibox__tag { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); } /* タブと重複する見出しは見た目だけ隠す（読み上げは残す） */
/* 「〇〇のサービスページへ（支援内容・進め方・事例）」：SP は2段（補足は小さく） */
.btn--wide:has(small) { gap: .14rem; padding-left: .30rem; padding-right: .26rem; }
.btn--wide > span:has(small) { text-align: left; font-size: .155rem; line-height: .22rem; letter-spacing: .01rem; word-break: auto-phrase; text-wrap-style: balance; }
.btn--wide:has(small) .btn__arw { width: .40rem; }
.btn--wide small { display: block; margin-top: .02rem; font-size: .115rem; font-weight: 500; line-height: .18rem; letter-spacing: .01rem; opacity: .9; }
.btn > span { word-break: auto-phrase; text-wrap-style: balance; } /* ボタン文字も文節で折り返し */

/* 長い文章（SP）：半分ほど見せて下をぼかし、「もっと読む」で開く */
.rm { max-height: var(--rm-h); overflow: hidden; -webkit-mask-image: linear-gradient(#000 55%, transparent); mask-image: linear-gradient(#000 55%, transparent); }
.rm.rm--open { max-height: none; -webkit-mask-image: none; mask-image: none; }
.rm-btn { display: inline-flex; align-self: center; align-items: center; gap: .08rem; margin: .06rem auto 0; padding: .08rem .20rem; border: 0; border-radius: .40rem; background: transparent; box-shadow: inset 0 0 0 .015rem currentColor; color: inherit; font: 700 .13rem/.20rem "Noto Sans JP", sans-serif; letter-spacing: .02rem; cursor: pointer; }
.rm-btn i { width: .07rem; height: .07rem; margin-top: -.03rem; border-right: .015rem solid currentColor; border-bottom: .015rem solid currentColor; rotate: 45deg; transition: rotate .3s; }
.rm-btn[aria-expanded="true"] i { rotate: 225deg; margin-top: .03rem; }

/* iPhone（html.minfs）：zoom で縮めた図の文字は 9px まで大きくなる。枠からはみ出さないよう、行間を文字に合わせ、枠の中で折り返す（トップの主導権の比較図は main.js で transform に切り替え） */
.minfs .pcol__body li.is-sm { white-space: normal; line-height: 1.3; letter-spacing: 0; }
