@charset "utf-8";
/* お問い合わせ系の共通部品 SP（767px 以下・基準 430）。Figma に SP 版なし：PC の構成から推論 */
.fm-top { padding-top: .10rem; }
.fm-top::before { width: 1.60rem; height: 1.30rem; }
.fm-h2 { width: 3.70rem; gap: .12rem; }
.fm-h2::before { width: .07rem; }
.fm-h2 > span { font-size: .24rem; line-height: .36rem; letter-spacing: .0168rem; white-space: normal; }

/* 2 段組 → 縦積み（入力欄を先に出し、説明箱は後ろへ） */
.fm-wrap { flex-direction: column; align-items: stretch; gap: .30rem; width: 3.90rem; padding: .40rem 0 .50rem; }
.fm-panel { width: 100%; padding: .26rem .18rem .30rem; }
.fm-wrap > .fm-panel { order: -1; }
.fm-aside { width: 100%; gap: .20rem; }
.fm-side { width: 100%; gap: .20rem; padding-bottom: .22rem; }
.fm-side__h { padding: .12rem .10rem; font-size: .21rem; line-height: .32rem; }
.fm-side__h small { font-size: .15rem; }
.fm-side__h b { font-size: .23rem; }
.fm-side ol { padding: 0 .20rem; gap: .14rem; }
.fm-side li + li { padding-top: .14rem; }
.fm-side li { gap: .12rem; }
.fm-side li b { font-size: .17rem; line-height: .24rem; white-space: normal; }
.fm-side li p { width: auto; min-height: 0; font-size: .13rem; line-height: .21rem; letter-spacing: .013rem; }
.fm-side li p:empty { display: none; }
.fm-staff { width: 100%; gap: .16rem; padding: .18rem .18rem; }
.fm-staff img { width: .90rem; height: .90rem; }
.fm-staff div { width: auto; flex: 1; gap: .08rem; }
.fm-staff b { font-size: .16rem; line-height: .24rem; }
.fm-staff p { font-size: .13rem; line-height: .21rem; letter-spacing: .013rem; }

/* フォーム：ラベルの下に入力欄 */
.fm-groups { gap: .30rem; }
.fm-gh > span { height: auto; font-size: .19rem; line-height: .28rem; }
.fm-group > .fm-gh { margin-bottom: .18rem; }
.fm-group > .fm-rows + hr, .fm-group > .fm-agree { margin-top: .18rem; }
.fm-rows { gap: .16rem; }
.fm-row, .fm-row--survey { flex-direction: column; gap: .10rem; }
.fm-lbl, .fm-row--survey .fm-lbl { width: auto; flex-direction: row; flex-wrap: wrap; align-items: center; gap: .08rem .10rem; }
.fm-lbl__t, .fm-row--survey .fm-lbl__t { flex-direction: row; align-items: center; gap: .10rem; }
.fm-lbl__t > :first-child, .fm-row--survey .fm-lbl__t > :first-child { height: auto; font-size: .15rem; line-height: .24rem; white-space: normal; }
.fm-row--survey .fm-lbl__t br { display: none; }
.fm-req, .fm-opt { height: .22rem; padding: 0 .06rem; font-size: .12rem; }
.fm-note { height: .22rem; font-size: .13rem; }
.fm-field { width: 100%; }
.fm-input { width: 100%; height: .48rem; padding: .08rem .12rem; font-size: .16rem; line-height: .32rem; } /* iOS の自動ズームを避けるため 16px */
.fm-textarea { width: 100%; height: 1.40rem; padding: .08rem .12rem; font-size: .16rem; line-height: .26rem; }
.fm-select { width: 100%; height: .44rem; line-height: .44rem; font-size: .16rem; }
.fm-checks, .fm-checks--survey { flex-direction: column; gap: .14rem; }
.fm-checks__col, .fm-checks__col--224, .fm-checks__col--197 { width: auto; gap: .14rem; }
.fm-checks--row { flex-direction: row; flex-wrap: wrap; gap: .14rem .26rem; }
.fm-check span, .fm-check span.l2 { font-size: .15rem; line-height: .22rem; letter-spacing: .015rem; white-space: normal; }
.fm-check i { margin-top: .015rem; }
.fm-check input { top: .015rem; }
.fm-err { font-size: .13rem; }
.fm-agree { display: block; height: auto; font-size: .13rem; line-height: .24rem; white-space: normal; }
.fm-submit { margin-top: .30rem; gap: .14rem; }
.fm-submit .btn--wide { padding-left: .30rem; padding-right: .30rem; }
.fm-submit .btn--wide > span { white-space: nowrap; }
.fm-submit__note { font-size: .15rem; }
.fm-alert { font-size: .13rem; line-height: .22rem; }

/* カード */
.fm-tcard { width: 100%; padding: .20rem .20rem .22rem; gap: .14rem; }
.fm-tcard__h { gap: .10rem; font-size: .18rem; line-height: .28rem; }
.fm-tcard__h::before { width: .26rem; height: .26rem; }
.fm-tcard p { font-size: .14rem; line-height: .24rem; }
.fm-lcard { width: 100%; padding: .20rem .22rem .16rem; }
.fm-lcard__in { gap: .14rem; margin-bottom: -.12rem; }
.fm-lcard__t { height: auto; font-size: .21rem; line-height: .32rem; }
.fm-lcard__d { width: auto; font-size: .14rem; line-height: .24rem; }
.fm-lcard__arw { width: .32rem; height: .32rem; }

/* 相談フォーム付き CTA：縦積み */
.ccta { padding: .50rem 0; }
.ccta__card { width: 3.90rem; height: auto; border-radius: .18rem; }
.ccta__card::before { left: 0; top: 0; width: 100%; height: 100%; transform: none; }
.ccta__in { width: 100%; flex-direction: column; align-items: stretch; gap: .30rem; padding: .32rem .20rem .30rem; }
.ccta__l { gap: .22rem; }
.ccta__head { gap: .12rem; }
.ccta__ttl { font-size: .28rem; line-height: .42rem; letter-spacing: .0196rem; }
.ccta__sp { letter-spacing: -.08rem; }
.ccta__lead { font-size: .13rem; line-height: .23rem; letter-spacing: .013rem; white-space: normal; }
.ccta__lead br { display: none; }
.ccta__tags { flex-wrap: wrap; gap: .08rem; }
.ccta__tags li { padding: .04rem .12rem; font-size: .14rem; line-height: .22rem; letter-spacing: .014rem; }
.ccta__badge { gap: .14rem; }
.ccta__circle { width: .84rem; height: .84rem; font-size: .13rem; line-height: .20rem; letter-spacing: .013rem; }
.ccta__min b { height: .46rem; font-size: .58rem; line-height: 1rem; }
.ccta__min span { width: auto; height: .34rem; font-size: .26rem; line-height: .38rem; }
.ccta__r { width: 100%; align-items: center; gap: .24rem; }
.ccta__top { width: 100%; gap: .20rem; }
.ccta__box { width: 100%; gap: .12rem; }
.ccta__sub { width: 100%; }
.ccta__sub > span, .ccta__sub > label { font-size: .16rem; line-height: .24rem; white-space: normal; }
.ccta__sub::after { width: 100%; }
.ccta__ta { height: 1.30rem; font-size: .16rem; line-height: .24rem; }
.ccta__chips { width: 100%; grid-template-columns: 1fr; grid-auto-flow: row; grid-template-rows: none; }
.ccta__chip { justify-content: space-between; padding: .06rem .14rem; font-size: .13rem; line-height: .24rem; }
.ccta__chip span { width: auto; line-height: .24rem; }
.ccta__chip i { width: .12rem; height: .12rem; }
.ccta__btn { padding: .15rem .30rem; font-size: .15rem; line-height: .20rem; }
.ccta__ttl > span:first-child { margin-left: -.16rem; }
