@charset "UTF-8";
/* =========================================================
   Civi-Mana LP
   - PC(1025px〜): デザインカンプ(1440px幅)の座標どおりに配置。
     1025〜1439px は --cm-zoom で等比縮小して比率を保つ
   - SP/タブレット(〜1024px): 縦積みレイアウト
   ========================================================= */

:root {
	--ink: #0b1028;
	--text: #1b2138;
	--blue: #0b6cf6;
	--blue-d: #194eb1;
	--sky: #0898f5;
	--navy: #0e264c;
	--navy2: #012152;
	--lime: #e1fb49;
	--pale: #eaf4fd;
	--bg: #f7faf8;
	--ff: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
	--ff-num: "Barlow Semi Condensed", "Arial Narrow", sans-serif;
	--ff-cond: "Barlow Condensed", "Arial Narrow", sans-serif;
	--ff-hand: "Yomogi", "Klee One", cursive;
}

/* ---------- reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 92px; }
body { margin: 0; font-family: var(--ff); font-weight: 500; color: var(--text); background: #fff; line-height: 1.7; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; font-feature-settings: "palt" 0; }
h1, h2, h3, h4, p, ul, ol, dl, dd, figure { margin: 0; padding: 0; }
ul, ol { list-style: none; }
img, svg { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; color: inherit; }
table { border-collapse: collapse; border-spacing: 0; }
strong, b { font-weight: 700; }
.site { overflow-x: clip; }
.u-sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

/* ---------- 共通パーツ ---------- */
.c-blue { color: var(--blue); }
.c-navyblue { color: var(--blue-d); }
.c-lime { color: var(--lime); }
.num { font-family: var(--ff-num); font-weight: 800; }

.btn { display: inline-flex; align-items: center; justify-content: center; font-weight: 700; line-height: 1; transition: transform .2s, box-shadow .2s, background-color .2s, color .2s; }
.btn:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(10, 40, 90, .14); }
.btn--lime { background: var(--lime); color: var(--ink); }
.btn--outline { background: #fff; color: #1560d9; border: 2px solid #1766e8; }
.btn .i-mail { width: 25px; height: 18px; flex: none; }
.btn .i-doc { width: 19px; height: 25px; flex: none; }
.btn .i-chev { width: 8px; height: 13px; flex: none; }

.sec-label { display: flex; align-items: center; font-family: var(--ff-num); font-weight: 700; color: #1a6ff0; letter-spacing: .05em; line-height: 1; }
.sec-label { position: relative; }
.sec-label::after { content: ""; position: absolute; top: 50%; left: var(--ll, 120px); width: var(--lw, 180px); height: 7px; margin-top: -3.5px; background: linear-gradient(currentColor, currentColor) left center / calc(100% - 5px) 1.5px no-repeat, radial-gradient(circle, currentColor 0 2.8px, transparent 3.3px) right center / 7px 7px no-repeat; opacity: .9; }
.sec-label--short::after { background: linear-gradient(90deg, currentColor, rgba(26, 111, 240, .08)) left center / 100% 1.5px no-repeat; }
.sec-label--white { color: #fff; }

/* 見出し後ろの黄緑の斜め帯 */
.hl-box { position: relative; z-index: 0; display: inline-block; }
.hl-box::before { content: ""; position: absolute; z-index: -1; left: -.1em; right: -.28em; bottom: -.04em; height: .6em; background: var(--lime); transform: skewX(-12deg) rotate(-2.5deg); }
/* 文字下半分の黄緑マーカー */
.hl-under { position: relative; z-index: 0; }
.hl-under::before { content: ""; position: absolute; z-index: -1; left: -.25em; right: -.1em; bottom: -.18em; height: .72em; background: var(--lime); transform: rotate(-1deg); }

.brand-italic { display: inline-block; transform: skewX(-9deg); }

/* ---------- ヘッダー ---------- */
.site-header { position: sticky; top: 0; z-index: 100; background: #fff; }
.site-header__inner { display: flex; align-items: center; max-width: 1440px; margin: 0 auto; }
.site-logo img { width: 214px; }
.gnav__list a { font-weight: 700; color: #151a33; transition: color .2s; }
.gnav__list a:hover { color: var(--blue); }

/* ---------- お問い合わせフォーム(共通) ---------- */
.cform { background: #fff; }
.cform__hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.cform__label { display: flex; align-items: center; font-weight: 700; color: var(--ink); }
.cform__req { font-style: normal; background: var(--lime); color: var(--ink); font-weight: 700; border-radius: 5px; display: inline-flex; align-items: center; justify-content: center; }
/* 「任意」は必須と区別が付くよう、目立たないグレーにする(大きさは必須バッジと共通) */
.cform__req--any { background: #e3ebf4; color: #5d7593; }
.cform input, .cform textarea { width: 100%; background: #fff; border: 2px solid #d9e0ec; border-radius: 6px; padding: 8px 14px; font-size: 18px; outline: none; transition: border-color .2s, box-shadow .2s; }
.cform input:focus, .cform textarea:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(11, 108, 246, .15); }
.cform textarea { resize: vertical; display: block; }
.cform__row.has-error input, .cform__row.has-error textarea { border-color: #e0364c; }
.cform__err { display: block; color: #e0364c; font-size: 14px; font-weight: 700; margin-top: 4px; line-height: 1.4; }
.cform__notice { border-radius: 8px; padding: 12px 16px; font-weight: 700; line-height: 1.6; }
.cform__notice--ok { background: #e9f8d8; color: #2b5a0e; }
.cform__notice--err { background: #fde8eb; color: #b3182e; }
.cform__submit { display: flex; align-items: center; justify-content: center; width: 100%; background: #ff0000; color: #fff; border: 0; border-radius: 12px; font-weight: 900; cursor: pointer; transition: transform .2s, box-shadow .2s; }
.cform__submit .i-mail path { stroke: #ff0000; }
.cform__submit:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(0, 0, 0, .25); }
.cform__submit:disabled { opacity: .6; cursor: wait; }

/* ---------- 比較表(共通) ---------- */
.compare__table { width: 100%; table-layout: fixed; }
.compare__table th, .compare__table td { text-align: center; vertical-align: middle; }
.mk { display: inline-block; line-height: 1; font-weight: 400; }
/* button はブラウザ標準で letter-spacing が normal に戻されるため、まわりの文字と同じ字間に揃える */
.compare__more { letter-spacing: inherit; word-spacing: inherit; }

/* ---------- モーダル(比較表の「詳しく見る」) ----------
   .site の外(footer.php の末尾)に置いています。
   PC幅では .site に zoom をかけているため、中に入れると
   画面いっぱいに広がらなくなります。 */
.cmodal { position: fixed; inset: 0; z-index: 200; display: flex; align-items: center; justify-content: center; padding: 30px 24px; }
.cmodal[hidden] { display: none; }
.cmodal__overlay { position: absolute; inset: 0; background: rgba(6, 20, 48, .62); opacity: 0; transition: opacity .28s ease; }
.cmodal__box { position: relative; width: min(900px, 100%); opacity: 0; translate: 0 14px; scale: .98; transition: opacity .3s ease, translate .3s cubic-bezier(.22,.61,.36,1), scale .3s cubic-bezier(.22,.61,.36,1); }
.cmodal.is-open .cmodal__overlay { opacity: 1; }
.cmodal.is-open .cmodal__box { opacity: 1; translate: none; scale: none; }
.cmodal__img { width: 100%; height: auto; max-height: calc(100vh - 60px); object-fit: contain; border-radius: 10px; background: #fff; box-shadow: 0 24px 60px rgba(4, 16, 40, .42); }
.cmodal__close { position: absolute; top: -18px; right: -18px; display: flex; align-items: center; justify-content: center; width: 46px; height: 46px; padding: 0; border: 0; border-radius: 50%; background: #fff; color: var(--navy); cursor: pointer; box-shadow: 0 6px 18px rgba(4, 16, 40, .35); transition: background-color .2s, transform .2s; }
.cmodal__close svg { width: 18px; height: 18px; }
.cmodal__close:hover { background: var(--lime); transform: scale(1.06); }
.cmodal__close:focus-visible { outline: 3px solid var(--lime); outline-offset: 2px; }
@media (max-width: 699px) {
	.cmodal { padding: 20px 16px; }
	.cmodal__close { top: -16px; right: -8px; width: 38px; height: 38px; }
	.cmodal__close svg { width: 15px; height: 15px; }
	.cmodal__img { max-height: calc(100vh - 40px); }
}

/* ---------- Contact Form 7 対応(共通) ----------
   CF7が自動で足すタグを、テーマ側のフォームと同じ見た目に合わせています。
   自動の <p>/<br> は inc/cf7.php の wpcf7_autop_or_not で止めています。 */

/* CF7のフォームを包む div。レイアウトに影響しないように余白を消す */
.wpcf7 { margin: 0; padding: 0; }
.wpcf7 .screen-reader-response { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); white-space: nowrap; }

/* CF7は各入力欄を span で包む。幅の指定が効くように block にする */
.cform .wpcf7-form-control-wrap { display: block; }

/* CF7が付ける size/cols 属性より、テーマのCSSを優先させる */
.cform .wpcf7-form-control { width: 100%; }
.cform .wpcf7-form-control.wpcf7-submit { width: auto; }
.cform .wpcf7-form-control.wpcf7-submit.cform__submit { width: 100%; }

/* エラー文言(CF7)をテーマの .cform__err と同じ見た目に */
.cform .wpcf7-not-valid-tip { display: block; color: #e0364c; font-size: 14px; font-weight: 700; margin-top: 4px; line-height: 1.4; }
.cform .wpcf7-form-control.wpcf7-not-valid { border-color: #e0364c; }

/* 送信結果の表示(CF7)をテーマの .cform__notice と同じ見た目に。
   CF7本体は `.wpcf7 form .wpcf7-response-output` という詳細度の高いセレクタで
   border/margin/padding を指定してくるため、こちらも同じ形まで詳細度を上げないと勝てない。 */
.wpcf7 form.cform .wpcf7-response-output { margin: 16px 0 0; padding: 12px 16px; border: 0; border-radius: 8px; font-weight: 700; line-height: 1.6; background: #fde8eb; color: #b3182e; }
.wpcf7 form.cform.sent .wpcf7-response-output { background: #e9f8d8; color: #2b5a0e; }
/* 送信前・送信中は結果の枠を出さない(CF7本体のCSSに頼らず、ここで確実に消す) */
.wpcf7 form.cform.init .wpcf7-response-output,
.wpcf7 form.cform.resetting .wpcf7-response-output,
.wpcf7 form.cform.submitting .wpcf7-response-output { display: none; }
.cform .wpcf7-spinner { margin: 0 auto; display: block; }

/* Turnstile(スパム対策)。通常は何も表示されず、必要なときだけ出ます。
   Turnstileは中に iframe を作るので、実際に表示されたときだけ余白を取る
   (常に余白を入れると、見えていないのに送信ボタンが下がってしまう) */
.cform__turnstile .cf-turnstile { display: flex; justify-content: center; }
.cform__turnstile:has(iframe) { margin-top: 16px; }

/* 個人情報の取り扱いへの同意 */
.cform__consent { margin-top: 22px; }
.cform__consent-field { display: flex; justify-content: center; }
.cform__consent .wpcf7-form-control-wrap,
.cform__consent .wpcf7-acceptance,
.cform__consent .wpcf7-list-item { display: block; margin: 0; }
.cform__consent-label { display: flex; align-items: flex-start; gap: 11px; cursor: pointer; font-size: 15px; font-weight: 700; line-height: 1.65; color: var(--ink); }
.cform .cform__consent input[type="checkbox"] { -webkit-appearance: checkbox; appearance: auto; flex: 0 0 auto; width: 22px; height: 22px; margin: 1px 0 0; padding: 0; border: 1px solid #aab8cc; border-radius: 3px; box-shadow: none; accent-color: var(--blue); cursor: pointer; }
.cform__consent-copy a { color: var(--blue); text-decoration: underline; text-underline-offset: 3px; }
.cform__consent-copy a:hover { text-decoration-thickness: 2px; }
.cform__consent .cform__err,
.cform__consent .wpcf7-not-valid-tip { margin: 6px 0 0 33px; }
.cform__submit:disabled { opacity: .55; cursor: not-allowed; transform: none; box-shadow: none; }

/* ---------- 送信前の確認画面(共通パーツ) ----------
   assets/js/cform-confirm.js が body 直下に作ります。
   モーダルと同じく .site の外に出るため zoom の影響を受けません。 */
.cconfirm { position: fixed; inset: 0; z-index: 210; display: flex; align-items: center; justify-content: center; padding: 30px 24px; }
.cconfirm[hidden] { display: none; }
.cconfirm__overlay { position: absolute; inset: 0; background: rgba(6, 20, 48, .62); opacity: 0; transition: opacity .26s ease; }
.cconfirm.is-open .cconfirm__overlay { opacity: 1; }
.cconfirm__box { position: relative; width: min(720px, 100%); max-height: calc(100vh - 60px); overflow-y: auto; background: #fff; border-radius: 14px; padding: 32px 34px 30px; box-shadow: 0 24px 60px rgba(4, 16, 40, .42); opacity: 0; translate: 0 14px; scale: .98; transition: opacity .28s ease, translate .28s cubic-bezier(.22,.61,.36,1), scale .28s cubic-bezier(.22,.61,.36,1); }
.cconfirm.is-open .cconfirm__box { opacity: 1; translate: none; scale: none; }
.cconfirm__title { font-size: 26px; font-weight: 900; color: var(--ink); line-height: 1.3; }
.cconfirm__lead { margin-top: 8px; font-size: 15px; line-height: 1.7; color: var(--ink); }
.cconfirm__list { margin-top: 22px; border-top: 1px solid #e3e8f1; }
.cconfirm__list dt { padding: 14px 0 4px; font-size: 14px; font-weight: 900; color: var(--blue); }
.cconfirm__list dd { padding: 0 0 14px; font-size: 16px; line-height: 1.7; color: var(--ink); border-bottom: 1px solid #e3e8f1; white-space: pre-wrap; overflow-wrap: anywhere; }
.cconfirm__list dd.is-empty { color: #8a94a6; }
.cconfirm__btns { display: flex; gap: 14px; margin-top: 26px; }
.cconfirm__back, .cconfirm__send { flex: 1; height: 60px; border: 0; border-radius: 12px; font-size: 18px; font-weight: 900; cursor: pointer; transition: transform .2s, box-shadow .2s, background-color .2s; }
.cconfirm__back { background: #e8edf5; color: var(--ink); }
.cconfirm__back:hover { background: #dce4f0; }
.cconfirm__send { background: var(--lime); color: var(--ink); }
.cconfirm__send:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(0, 0, 0, .22); }
.cconfirm__send:disabled { opacity: .6; cursor: wait; transform: none; box-shadow: none; }
.cconfirm__back:focus-visible, .cconfirm__send:focus-visible { outline: 3px solid var(--blue); outline-offset: 2px; }
@media (max-width: 699px) {
	.cconfirm { padding: 20px 14px; }
	.cconfirm__box { padding: 24px 20px 22px; max-height: calc(100vh - 40px); }
	.cconfirm__title { font-size: 21px; }
	.cconfirm__lead { font-size: 14px; }
	.cconfirm__btns { flex-direction: column-reverse; gap: 10px; }
	.cconfirm__back, .cconfirm__send { height: 54px; font-size: 16px; }
}

/* ---------- 下層ページ(汎用) ---------- */
.page-default { background: var(--bg); padding: 80px 20px 100px; }
.page-default__inner { max-width: 900px; margin: 0 auto; }
.page-default__title { font-size: 34px; font-weight: 900; color: var(--ink); line-height: 1.4; margin-bottom: 30px; }
.page-default__content { font-size: 16px; line-height: 1.9; }
.page-default__content > * + * { margin-top: 1.2em; }
.page-default__content a { color: var(--blue); text-decoration: underline; }
.page-default__btn { padding: 18px 28px; border-radius: 10px; margin-top: 24px; }

/* ---------- フッター ---------- */
.site-footer { background: #fdfdfd; text-align: center; }
.site-footer__nav { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 10px 34px; }
.site-footer__nav a { position: relative; color: #1b2350; font-weight: 700; transition: color .2s; }
.site-footer__nav a + a::before { content: ""; position: absolute; left: -17px; top: 50%; width: 1px; height: 1em; background: #b7c2d3; transform: translateY(-50%); }
.site-footer__nav a:hover { color: var(--blue); }
.site-footer__copy { color: #1b2350; }

/* ---------- 運営会社 / プライバシーポリシー ---------- */
.company-entry { max-width: 1060px; }
.company-section + .company-section { margin-top: 64px; }
.entry__content .company-table { margin-bottom: 0; }
.company-table th { width: 190px; vertical-align: top; color: var(--ink); }
.company-table td { vertical-align: top; }
.company-business + .company-business { margin-top: 22px; }
.company-business strong { display: block; margin-bottom: 7px; color: var(--ink); }
.entry__content .company-business ol { margin: 0; padding-left: 1.35em; }
.entry__content .company-business li { margin-top: 2px; }
.company-access__address { color: var(--ink); font-weight: 700; }
.company-access__map { position: relative; width: 100%; margin-top: 22px; padding-top: 56.25%; overflow: hidden; border-radius: 12px; background: #eaf4fd; }
.company-access__map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.entry__content .company-access__route { margin-top: 20px; }
.privacy-policy > p:first-child { margin-top: 0; }
.privacy-policy ol ol { margin: 10px 0 4px; }
.privacy-policy__end { text-align: right; }


/* =========================================================
   PC(1025px以上)
   ========================================================= */
@media (min-width: 1025px) {

	.site { zoom: var(--cm-zoom, 1); }
	.pc-none { display: none !important; }
	.header-sp { display: none; }

	/* header */
	.site-header__inner { height: 92px; padding: 0 54px 0 57px; }
	.site-logo { margin-top: 2px; }
	.gnav { display: flex; align-items: center; flex: 1; }
	.gnav__list { display: flex; gap: 18px; margin-left: 34px; }
	.gnav__list a { font-size: 15px; font-weight: 900; letter-spacing: .005em; white-space: nowrap; }
	.gnav__cta { display: flex; gap: 12px; margin-left: auto; }
	.btn--head { height: 55px; font-size: 15px; font-weight: 900; gap: 14px; }
	.btn--head.btn--lime { width: 198px; border-radius: 8px; }
	.btn--head.btn--outline { width: 206px; border-radius: 10px; color: #1560d9; }
	.btn--head .i-chev { display: none; }

	/* ---------------- MV ---------------- */
	/* MV は絶対配置の組み版。実際の絵柄は右のビジュアル終端(1563px)まで広がるため、
	   キャンバス幅を 1563px として持ち、サイト共通幅の 1440px に縮めて中央に置く。
	   こうしないと右のイラストが画面外で切れて、全体が右寄りに見える。 */
	.mv { height: auto; padding-right: 80px; background: linear-gradient(90deg, #fbfdfd 0%, #f9fcfd 45%, #fbfdfd 100%); overflow: hidden; }
	.mv__inner { position: relative; width: 1563px; max-width: none; height: 813px; margin: 0 auto; zoom: .9213; }
	.mv__dots { position: absolute; left: 28px; top: 26px; width: 48px; opacity: .55; }
	.mv__visual { position: absolute; left: 680px; top: 0; width: 883px; }
	.mv__visual::before { content: ""; position: absolute; left: 60px; top: -40px; width: 800px; height: 800px; border-radius: 50%; background: radial-gradient(circle at 40% 40%, #1576fb 0%, #0a6af7 50%, #0663ef 100%); -webkit-mask-image: linear-gradient(180deg, #000 52%, transparent 60%); mask-image: linear-gradient(180deg, #000 52%, transparent 60%); }
	.mv__img { position: relative; }
	.mv__img { width: 100%; }
	.mv__hand { position: absolute; left: 540px; top: 70px; font-family: var(--ff-hand); font-size: 37px; line-height: 1.38; color: #fff; letter-spacing: .06em; transform: rotate(-10deg); transform-origin: left top; white-space: nowrap; }
	.mv__hand-line { position: absolute; left: 568px; top: 270px; width: 126px; height: 2px; background: #fff; transform: rotate(-21deg); transform-origin: left center; }
	.mv__record { position: absolute; isolation: isolate; left: 50%; bottom: 27px; translate: -50% 0; display: flex; flex-direction: column; align-items: center; color: var(--ink); font-weight: 900; line-height: 1; white-space: nowrap; text-align: center; text-shadow: 0 2px 0 rgba(255, 255, 255, .75); }
	.mv__record::before { content: ""; position: absolute; z-index: -1; inset: -12px -30px -14px; border: 1px solid rgba(255, 255, 255, .38); border-radius: 30px; background: rgba(255, 255, 255, .32); box-shadow: 0 0 28px 14px rgba(255, 255, 255, .25); -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); }
	.mv__record-main { display: flex; align-items: flex-end; gap: 24px; font-size: 55px; }
	.mv__record-label { display: flex; flex-direction: column; align-items: center; }
	.mv__record-kicker { margin-bottom: 4px; font-size: 30px; letter-spacing: .08em; }
	.mv__record-main strong { display: flex; align-items: baseline; color: var(--blue); font-size: 68px; font-weight: 900; }
	.mv__record-num { font-family: var(--ff-num); font-size: 110px; letter-spacing: -.02em; }
	.mv__record-note { margin-top: 5px; font-size: 13px; font-weight: 700; line-height: 1.5; letter-spacing: .01em; }
	.mv__title { font-weight: 900; color: var(--ink); line-height: 1; }
	.mv__title > span { position: absolute; display: block; white-space: nowrap; }
	.mv__kensetsu { left: 40px; top: 28px; width: 391px; height: 180px; }
	.mv__kensetsu-bg { position: absolute; inset: 0; width: 100%; height: 100%; }
	.mv__kensetsu-txt { position: absolute; left: 30px; top: 60px; font-size: 88px; transform: rotate(-11deg); transform-origin: left bottom; letter-spacing: 0; }
	.mv__sub { left: 437px; top: 91px; font-size: 32.5px; font-feature-settings: "palt" 1; letter-spacing: .02em; }
	.mv__brand { left: 80px; top: 166px; font-size: 180px; color: #0165f4; letter-spacing: -.14em; transform: rotate(-4deg) skewX(-9deg) scaleY(1.08); transform-origin: left bottom; }
	.mv__omakase { left: 372px; top: 338px; font-size: 54px; transform: rotate(-6deg); transform-origin: left bottom; letter-spacing: .01em; }
	.mv__price { color: var(--ink); line-height: 1; }
	.mv__price-label { position: absolute; left: 72px; top: 408px; font-size: 56px; font-weight: 900; white-space: nowrap; transform: rotate(-3deg); transform-origin: left bottom; }
	.mv__price-num { position: absolute; left: 68px; top: 466px; width: 592px; height: 245px; }
	.mv__price-hl { position: absolute; left: 0; top: 74px; width: 592px; height: 77px; }
	.mv__price-txt { position: absolute; left: 32px; top: -24px; font-family: var(--ff-num); font-weight: 800; font-size: 172px; letter-spacing: .01em; white-space: nowrap; transform: rotate(-4deg) scaleX(.94); transform-origin: left bottom; }
	.mv__btns { position: absolute; left: 67px; top: 646px; display: flex; gap: 24px; }
	.btn--mv { width: 306px; height: 77px; border-radius: 12px; font-size: 20px; }
	.btn--mv.btn--lime { gap: 20px; }
	.btn--mv.btn--lime .i-mail { width: 34px; height: 25px; }
	.btn--mv.btn--outline { gap: 18px; border-width: 2.5px; }
	.btn--mv.btn--outline .i-doc { width: 26px; height: 34px; }
	.btn--mv .i-chev { margin-left: 8px; width: 9px; height: 14px; }
	.mv__tagline { position: absolute; left: 30px; top: 731px; font-family: var(--ff-num); font-weight: 500; font-size: 13px; line-height: 20px; letter-spacing: .38em; color: #6d7d9c; }
	.mv__arrow { position: absolute; left: 160px; top: 772px; width: 130px; }

	/* ---------------- 実績 ---------------- */
	.stats { position: relative; height: 188px; background: var(--navy); color: #fff; }
	/* 3カラムの実際の幅はフォントの太さや読み込み状況で変わる。座標で置くと
	   その差がそのまま右の余白から引かれて左右が不揃いに見えるので、
	   中央寄せの横並びにして、どの画面幅でも左右が必ず同じ余白になるようにする。 */
	.stats__list { position: relative; display: flex; justify-content: center; align-items: center; gap: 120px; max-width: 1440px; height: 100%; margin: 0 auto; }
	.stat { position: relative; display: flex; flex-direction: column; }
	/* 区切り線は隙間のちょうど中央に置く(画像は元の divider.webp をそのまま使う) */
	.stat + .stat::before { content: ""; position: absolute; left: -61px; top: 50%; margin-top: -65px; width: 3px; height: 130px; background: url(../img/divider.webp) center / 100% 100% no-repeat; }
	.stat__head, .stat__big { display: flex; white-space: nowrap; font-weight: 900; line-height: 1; }
	.stat__head { align-items: center; height: 54px; font-size: 31px; }
	.stat__head b { font-size: 46px; font-weight: 900; margin: 0 1px 0 2px; position: relative; top: -2px; }
	.stat__icon { width: 48px; margin-right: 22px; }
	.stat__big { align-items: baseline; }
	.stat__big .num { font-family: var(--ff); font-weight: 900; font-size: 96px; letter-spacing: -.035em; }
	.stat__big .pct { font-family: var(--ff); font-weight: 900; font-size: 64px; margin: 0 3px 0 1px; }
	.stat--1 .stat__head { margin-left: 5px; }
	.stat--1 .stat__big { font-size: 52px; letter-spacing: -.02em; }
	.stat--2 .stat__head { font-size: 37px; }
	.stat--2 .stat__icon { width: 44px; margin-right: 24px; }
	.stat--2 .stat__big { margin-left: 35px; }
	.stat--3 .stat__head { font-size: 37px; }
	.stat--3 .stat__icon { width: 53px; margin-right: 24px; }
	.stat--3 .stat__big { margin-left: 57px; }
	.stats__div { display: none; }

	/* ---------------- お悩み ---------------- */
	.worry { height: 630px; padding: 60px 0; background: var(--bg); }
	.worry__inner { position: relative; max-width: 1440px; height: 100%; margin: 0 auto; }
	.worry__title { position: absolute; left: 0; right: 0; top: 35px; text-align: center; font-feature-settings: "palt" 1; letter-spacing: .04em; font-size: 47px; font-weight: 900; line-height: 1; color: var(--ink); }
	.worry__title::after { content: ""; display: block; width: 76px; height: 5px; margin: 21px auto 0; background: var(--lime); }
	.worry__body { position: absolute; inset: 0; }
	.worry__box { position: absolute; }
	.worry__box--biz { left: 107px; top: 120px; width: 495px; height: 325px; }
	.worry__box--iso { left: 830px; top: 120px; width: 520px; height: 315px; }
	.worry__bubble { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; }
	.worry__head, .worry__list { z-index: 2; }
	.worry__head { position: absolute; top: 33px; font-size: 32px; font-weight: 900; line-height: 1; color: var(--ink); white-space: nowrap; }
	.worry__box--biz .worry__head { left: 68px; }
	.worry__box--iso .worry__head { left: 63px; }
	.worry__list { position: absolute; top: 101px; }
	.worry__box--biz .worry__list { left: 68px; }
	.worry__box--iso .worry__list { left: 58px; }
	.worry__list li { display: flex; align-items: center; height: 47.5px; font-size: 21.5px; font-weight: 500; color: #121831; white-space: nowrap; }
	.worry__list li::before { content: ""; width: 28px; height: 28px; margin-right: 19px; flex: none; background: url(../img/check-blue.webp) center / contain no-repeat; }
	.worry__worker { position: absolute; left: 578px; top: 232px; width: 244px; height: 228px; overflow: hidden; }
	.worry__worker img { width: 100%; }
	.worry__deco { position: absolute; z-index: 1; }
	.worry__deco--scribble-s { left: 35px; top: 157px; width: 70px; }
	.worry__deco--scribble { left: 615px; top: 147px; width: 115px; }
	.worry__deco--building { left: 22px; top: 217px; width: 128px; }
	.worry__deco--question { left: 1338px; top: 135px; width: 48px; }
	.worry__deco--papers { left: 1250px; top: 207px; width: 160px; }
	.worry__lead { position: absolute; left: 0; right: 0; top: 472px; text-align: center; font-size: 29.5px; font-weight: 900; line-height: 1; color: var(--ink); font-feature-settings: "palt" 1; letter-spacing: .02em; }

	/* ---------------- 解決バナー ---------------- */
	/* 街並みが上のセクションにはみ出す分を隠さないよう、前のセクションより手前に置く */
	.solve { position: relative; z-index: 2; height: 240px; background: var(--bg); }
	.solve__band { position: absolute; left: 0; top: 0; width: 100%; height: 236px; }
	.solve__inner { position: relative; max-width: 1440px; height: 100%; margin: 0 auto; color: #fff; font-weight: 900; line-height: 1; }
	/* 街並みは切り取らず全体を見せる。重なり順は文字より後ろ(z-index を付けず、DOM順で .solve__lead / .solve__main が上) */
	.solve__city { position: absolute; right: 0; bottom: 33px; width: 800px; }
	.solve__skyline { position: relative; width: 100%; max-width: none; opacity: .8; }
	.solve__cloud { position: absolute; width: 60px; opacity: .8; }
	.solve__cloud--1 { right: 170px; top: 26px; }
	.solve__cloud--2 { right: 20px; top: 70px; width: 48px; }
	.solve__lead { position: absolute; left: 55px; top: 46px; font-size: 43px; white-space: nowrap; font-feature-settings: "palt" 1; letter-spacing: .03em; }
	.solve__main { position: absolute; left: 50px; top: 106px; font-size: 80px; white-space: nowrap; font-feature-settings: "palt" 1; letter-spacing: .02em; }
	.solve__kakko { display: inline-block; }

	/* ---------------- 選ばれる理由 ---------------- */
	.reason { position: relative; height: 993px; padding: 60px 0; background: var(--bg); }
	.reason__grid { position: relative; max-width: 1440px; margin: 0 auto; padding: 22px 0 0 47px; display: grid; grid-template-columns: 438px 435px 433px; grid-template-rows: 377px 403px; column-gap: 20px; row-gap: 23px; }
	.rcard { position: relative; border-radius: 16px; background: #fdfdfd; box-shadow: 0 4px 18px rgba(30, 70, 130, .06); }
	.rcard.is-pale { background: #eaf4fd; }
	.rcard__no { position: absolute; left: 28px; top: 27px; font-family: var(--ff-cond); font-weight: 700; font-size: 68px; line-height: 1; color: var(--blue); }
	.rcard__no span { display: block; font-family: var(--ff-num); font-size: 21px; margin-bottom: 1px; letter-spacing: .01em; color: #1266e0; }
	.rcard__img, .rcard__deco { position: absolute; }
	.rcard__title { position: absolute; left: 38px; font-size: 32px; font-weight: 900; line-height: 43px; color: var(--ink); white-space: nowrap; letter-spacing: 0; font-feature-settings: "palt" 1; }
	.rcard__text { position: absolute; left: 38px; font-size: 19.5px; line-height: 33px; color: var(--text); white-space: nowrap; letter-spacing: -.01em; }
	.rcard--2 .rcard__text { font-size: 16.6px; }
	.rcard--3 .rcard__text { font-size: 18.5px; }
	.rcard--1 .rcard__img { left: 131px; top: 25px; width: 248px; }
	.rcard--1 .rcard__title { top: 163px; }
	.rcard__price { display: inline-block; background: var(--lime); padding: 0 6px 0 4px; line-height: 48px; margin-top: 4px; font-size: 30px; }
	.rcard__price .num { font-size: 50px; letter-spacing: .01em; }
	.rcard--1 .rcard__text { top: 288px; }
	.rcard--2 .rcard__img { left: 124px; top: 18px; width: 228px; }
	.rcard--2 .rcard__title { top: 193px; }
	.rcard--2 .rcard__text { top: 288px; }
	.rcard--3 .rcard__img { left: 116px; top: 22px; width: 232px; }
	.rcard__deco--rays { left: 328px; top: 26px; width: 52px; }
	.rcard--3 .rcard__title { top: 193px; }
	.rcard--3 .rcard__text { top: 288px; }
	.rcard--4 .rcard__img { left: 133px; top: 32px; width: 182px; }
	.rcard__deco--chat { left: 310px; top: 93px; width: 58px; }
	.rcard--4 .rcard__title { top: 243px; }
	.rcard--4 .rcard__text { top: 312px; }
	.rcard--5 .rcard__img { left: 112px; top: 68px; width: 268px; }
	.rcard__deco--check { left: 212px; top: 28px; width: 70px; }
	.rcard--5 .rcard__title { top: 214px; line-height: 43px; }
	.rcard__rate { font-family: var(--ff); font-weight: 900; font-size: 41px; letter-spacing: -.01em; margin: 0 2px; }
	.rcard--5 .rcard__text { top: 312px; }
	.rcard--6 .rcard__img { left: 172px; top: 40px; width: 244px; }
	.rcard__zenkoku { position: absolute; left: 130px; top: 33px; width: 80px; }
	.rcard__zenkoku img { width: 100%; }
	.rcard__zenkoku > span { position: absolute; left: 0; right: 0; top: 13px; text-align: center; font-size: 20px; font-weight: 900; line-height: 1; color: var(--ink); }
	.rcard__zenkoku small { display: block; font-size: 11px; margin-top: 3px; }
	.rcard__deco--wifi { left: 345px; top: 35px; width: 55px; }
	.rcard--6 .rcard__title { top: 216px; }
	.rcard__big { font-size: 37px; }
	.rcard--6 .rcard__text { top: 312px; }

	/* ---------------- 強み ---------------- */
	.strength { position: relative; z-index: 2; height: 1695px; padding: 60px 0; background: radial-gradient(ellipse 640px 380px at 0 60px, #edf7fe 0%, rgba(237, 247, 254, 0) 100%), #fff; }
	.strength__band { position: absolute; left: 0; top: 635px; width: 100%; height: 610px; fill: #ebf5fd; }
	.strength__cap { position: absolute; left: 0; top: 1695px; width: 100%; height: 70px; fill: #fff; }
	.strength__inner { position: relative; max-width: 1440px; height: 100%; margin: 0 auto; }
	.strength__img { position: absolute; max-width: none; }
	.strength__img--1 { left: 760px; top: 0; width: 680px; }
	.strength .sec-label { position: absolute; left: 60px; top: 32px; font-size: 20px; --ll: 125px; --lw: 186px; letter-spacing: .07em; }
	.strength__title { position: absolute; left: 56px; top: 52px; display: flex; align-items: baseline; font-weight: 900; line-height: 1; color: var(--ink); white-space: nowrap; }
	.strength__title .brand-italic { font-size: 101px; color: var(--blue); letter-spacing: -.02em; }
	.strength__no-kana { font-size: 64px; margin: 0 8px 0 6px; }
	.strength__title .hl-box { font-size: 92px; }
	.sitem__label { position: absolute; font-family: var(--ff-num); font-weight: 700; font-size: 20px; line-height: 1; color: #1a6ff0; letter-spacing: .05em; }
	.sitem__no { position: absolute; font-family: var(--ff-num); font-weight: 700; font-size: 114px; line-height: 1; color: var(--blue); letter-spacing: -.01em; }
	.sitem__title { position: absolute; font-weight: 900; line-height: 1; color: var(--ink); white-space: nowrap; font-feature-settings: "palt" 1; letter-spacing: .03em; }
	.sitem__text { position: absolute; font-size: 20px; line-height: 37.5px; letter-spacing: .045em; color: var(--text); white-space: nowrap; }
	.sitem__text p + p { margin-top: 4px; }
	.sitem__text strong { font-weight: 900; }
	.sitem--1 .sitem__label { left: 60px; top: 218px; }
	.sitem--1 .sitem__no { left: 56px; top: 227px; }
	.sitem--1 .sitem__title { left: 230px; top: 245px; font-size: 45px; }
	.sitem--1 .sitem__text { left: 230px; top: 318px; line-height: 35.5px; }
	.sitem--1 .sitem__text p + p { margin-top: 10px; }
	.strength__img--2 { left: 20px; top: 648px; width: 555px; }
	.sitem--2 .sitem__label { left: 580px; top: 668px; }
	.sitem--2 .sitem__no { left: 578px; top: 677px; }
	.sitem--2 .sitem__title { left: 740px; top: 694px; font-size: 47px; letter-spacing: 0; }
	.hl-under--full::before { left: -.12em; right: -.12em; bottom: -.28em; height: .72em; }
	.sitem--2 .sitem__text { left: 743px; top: 786px; line-height: 33.5px; letter-spacing: .008em; }
	.sitem__catch { font-size: 22px; font-weight: 900; color: var(--blue-d); margin-bottom: 12px; letter-spacing: -.005em; }
	.sitem--2 .sitem__text p + p:not(.sitem__catch):not(.sitem__em) { margin-top: 5px; }
	.sitem__em { font-size: 25.5px; font-weight: 900; color: var(--ink); margin-top: 10px !important; }
	.strength__img--3 { left: 830px; top: 1200px; width: 610px; }
	.sitem--3 .sitem__label { left: 60px; top: 1226px; }
	.sitem--3 .sitem__no { left: 56px; top: 1238px; }
	.sitem--3 .sitem__title { left: 230px; top: 1238px; font-size: 48px; line-height: 64px; letter-spacing: .005em; }
	.hl-under--price { font-size: 47px; }
	.hl-under--price .num { font-size: 78px; letter-spacing: .01em; margin-left: 6px; }
	.hl-under--price::before { left: -.2em; right: -.45em; bottom: -.22em; height: .9em; transform: rotate(-1.5deg); }
	.sitem--3 .sitem__text { left: 230px; top: 1379px; line-height: 33px; letter-spacing: .02em; }

	/* ---------------- 料金 ---------------- */
	.price { position: relative; z-index: 1; height: 811px; padding: 60px 0; background: linear-gradient(180deg, #012356 0%, #011f50 60%, #011c4b 100%); color: #fff; }
	.price::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(90deg, rgba(255, 255, 255, 0) 0 22px, rgba(120, 170, 255, .035) 22px 24px); pointer-events: none; }
	.price__cap { position: absolute; left: 0; top: 810px; width: 100%; height: 70px; fill: #011c4b; }
	.price__city { position: absolute; right: -60px; bottom: -58px; width: 760px; max-width: none; z-index: 1; clip-path: polygon(0 0, 760px 0, 760px 249px, 700px 249px, 560px 236px, 360px 221px, 160px 208px, 0 200px); -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 40%); mask-image: linear-gradient(90deg, transparent 0, #000 40%); }
	.price::after { content: ""; position: absolute; right: -120px; bottom: -80px; width: 820px; height: 360px; background: radial-gradient(ellipse at 60% 70%, rgba(20, 110, 255, .55) 0%, rgba(20, 110, 255, 0) 65%); pointer-events: none; }
	.price__inner { position: relative; z-index: 2; max-width: 1440px; height: 100%; margin: 0 auto; }
	.price .sec-label { position: absolute; left: 57px; top: 46px; font-size: 20px; --ll: 76px; --lw: 186px; letter-spacing: .06em; }
	.price__title { position: absolute; left: 53px; top: 81px; font-size: 69px; font-weight: 900; line-height: 1; white-space: nowrap; font-feature-settings: "palt" 1; letter-spacing: .035em; }
	.price__title-ul { position: relative; }
	.price__title-ul::after { content: ""; position: absolute; left: 72px; width: 430px; bottom: -18px; height: 6px; background: var(--lime); border-radius: 50%; transform: rotate(-1deg); clip-path: polygon(0 45%, 100% 0, 100% 100%, 0 100%); }
	.price__std { position: absolute; left: 50px; top: 205px; display: flex; gap: 19px; }
	.price__std li { position: relative; width: 196px; height: 253px; border: 2px solid #0e6cb3; border-radius: 10px; background: linear-gradient(180deg, #02377b 0%, #013172 100%); text-align: center; }
	.price__std img { position: absolute; left: 50%; top: 33px; height: 90px; width: auto; transform: translateX(-50%); }
	.price__std-name { position: absolute; left: 0; right: 0; top: 146px; font-size: 33px; font-weight: 700; line-height: 1; }
	.price__std-no { position: absolute; left: 0; right: 0; top: 193px; font-size: 26px; font-weight: 700; line-height: 1; letter-spacing: .03em; }
	.price__notes { position: absolute; left: 55px; top: 480px; width: 841px; padding-top: 43px; }
	.price__notes::before { content: ""; position: absolute; left: -3px; right: 0; top: 23px; height: 1px; background: rgba(255, 255, 255, .7); }
	.price__notes::after { content: ""; position: absolute; left: -5px; top: 20.5px; width: 6px; height: 6px; border-radius: 50%; background: #fff; box-shadow: 841px 0 0 #fff; }
	.price__notes li { font-size: 23px; font-weight: 700; line-height: 45px; white-space: nowrap; letter-spacing: -.01em; font-feature-settings: "palt" 1; }
	.price__notes b { font-size: 27px; font-weight: 900; letter-spacing: 0; }
	.price__card { position: absolute; left: 911px; top: 175px; width: 481px; height: 365px; border-radius: 12px; overflow: hidden; background: #fff; color: var(--ink); text-align: center; }
	.price__card-head { height: 67px; background: var(--lime); font-size: 27px; font-weight: 900; line-height: 67px; font-feature-settings: "palt" 1; letter-spacing: .04em; }
	.price__card-main { position: relative; height: 112px; line-height: 1; white-space: nowrap; }
	.price__card-hl { position: absolute; left: 49px; top: 63px; width: 390px; height: 42px; }
	.price__card-main .num { position: relative; font-size: 100px; font-weight: 900; letter-spacing: .005em; top: 6px; }
	.price__card-main .unit { position: relative; font-size: 40px; font-weight: 900; margin-left: 4px; top: 6px; }
	.price__card-note { font-size: 19px; font-weight: 700; line-height: 1; margin-top: 8px; }
	.price__card-sub { position: absolute; left: 0; right: 0; bottom: 0; height: 140px; background: #e5f4fd; }
	.price__card-sub-head { font-size: 26px; font-weight: 900; line-height: 1; margin-top: 23px; font-feature-settings: "palt" 1; letter-spacing: .03em; }
	.price__card-sub-price { font-size: 40px; font-weight: 900; line-height: 1; margin-top: 28px; letter-spacing: .01em; }

	/* ---------------- 比較 ---------------- */
	.compare { position: relative; height: 864px; padding: 60px 0; background: #fefefe; }
	.compare__inner { position: relative; max-width: 1440px; height: 100%; margin: 0 auto; }
	.compare .sec-label { position: absolute; left: 57px; top: 45px; font-size: 20px; --ll: 150px; --lw: 90px; letter-spacing: .06em; }
	.compare__title { position: absolute; left: 52px; top: 72px; font-size: 75px; font-weight: 900; line-height: 1; color: var(--ink); white-space: nowrap; letter-spacing: -.03em; }
	.compare__title .hl-box::before { left: -.05em; right: -.2em; }
	.compare__scroll { position: absolute; left: 43px; top: 119px; width: 1350px; }
	.compare__table { width: 1350px; }
	.compare__table col { width: auto; }
	.compare__table thead th { height: 130px; vertical-align: bottom; padding: 0; }
	.compare__table thead th:not(.is-cm):not(.compare__corner) { background: linear-gradient(var(--sky), var(--sky)) bottom / 100% 77px no-repeat; color: #fff; font-size: 30px; font-weight: 700; line-height: 77px; }
	.compare__table thead th:nth-child(2) { width: 312px; border-right: 2px solid #fff; }
	.compare__table thead th:nth-child(3) { width: 306px; }
	.compare__corner { width: 360px; background: linear-gradient(var(--sky), var(--sky)) bottom / 100% 77px no-repeat; border-radius: 0; position: relative; }
	.compare__corner::before { content: ""; position: absolute; left: 0; bottom: 64px; width: 14px; height: 14px; background: #fefefe; }
	.compare__corner::after { content: ""; position: absolute; left: 0; bottom: 64px; width: 14px; height: 14px; background: var(--sky); border-top-left-radius: 14px; }
	.compare__table th.is-cm, .compare__table td.is-cm { width: 372px; }
	.compare__table thead th.is-cm { position: relative; background: var(--lime); border-radius: 16px 16px 0 0; vertical-align: middle; }
	.compare__logo { display: block; width: 232px; margin: 0 auto; }
	.compare__logo img { width: 232px; }
	.compare__table tbody th { background: var(--sky); color: #fff; font-size: 24px; font-weight: 700; text-align: left; padding: 0 15px 0 39px; line-height: 1.25; border-top: 1px solid rgba(255, 255, 255, .45); white-space: nowrap; font-feature-settings: "palt" 1; letter-spacing: .03em; }
	.compare__table tbody tr:last-child th { border-bottom-left-radius: 12px; }
	.compare__table tbody tr:nth-child(1) { height: 81px; }
	.compare__table tbody tr:nth-child(2) { height: 73px; }
	.compare__table tbody tr:nth-child(3) { height: 78px; }
	.compare__table tbody tr:nth-child(4) { height: 74px; }
	.compare__table tbody tr:nth-child(5) { height: 90px; }
	.compare__table tbody tr:nth-child(6) { height: 72px; }
	.compare__table td { font-size: 26px; font-weight: 700; color: var(--ink); border-left: 1px solid rgba(255, 255, 255, .9); font-feature-settings: "palt" 1; letter-spacing: .02em; }
	.compare__table tbody tr:nth-child(odd) td { background: #f5fafe; }
	.compare__table tbody tr:nth-child(even) td { background: #eaf4fd; }
	.compare__table tbody tr:nth-child(odd) td.is-cm { background: #fafcf2; }
	.compare__table tbody tr:nth-child(even) td.is-cm { background: #f3f8e6; }
	.compare__table td.is-cm { border-left: 4px solid var(--lime); border-right: 4px solid var(--lime); }
	.compare__table tbody tr:last-child td.is-cm { border-bottom: 4px solid var(--lime); border-radius: 0 0 16px 16px; }
	.compare__table thead th.is-cm { box-shadow: inset 4px 0 0 var(--lime), inset -4px 0 0 var(--lime); }
	.compare__th { display: flex; align-items: center; justify-content: space-between; gap: 4px; }
	.compare__more { display: inline-flex; align-items: center; justify-content: center; gap: 11px; flex: none; width: 140px; height: 46px; padding: 0; border: 0; border-radius: 8px; background: #fff; color: #1266e0; font-size: 16px; font-weight: 700; cursor: pointer; transition: background-color .2s; }
	.compare__more:hover { background: #fffde0; }
	.compare__more .i-chev { width: 7px; height: 11px; }
	.mk--o { font-size: 33px; }
	.mk--x { font-size: 30px; font-weight: 500; }

	/* ---------------- 流れ ---------------- */
	.flow { position: relative; z-index: 3; height: 740px; padding: 60px 0; background: linear-gradient(180deg, #fefefe 0%, #f4f9fe 38%, #edf6fd 100%); }
	.flow__inner { position: relative; max-width: 1440px; height: 100%; margin: 0 auto; }
	.flow .sec-label { position: absolute; left: 57px; top: 36px; font-size: 20px; --ll: 73px; --lw: 190px; letter-spacing: .06em; }
	.flow__title { position: absolute; left: 53px; top: 62px; display: flex; align-items: baseline; font-size: 78px; font-weight: 900; line-height: 1; color: var(--ink); white-space: nowrap; letter-spacing: -.02em; }
	.flow__no-kana { font-size: 56px; margin: 0 4px; }
	.flow__list { position: absolute; left: 0; top: 210px; width: 100%; height: 430px; }
	.fstep { position: absolute; top: 0; height: 409px; background: #fff; border-radius: 14px; box-shadow: 0 6px 24px rgba(40, 90, 160, .07); text-align: center; }
	.fstep:not(:last-child)::after { content: ""; position: absolute; top: 158px; width: 17px; height: 17px; border-top: 5px solid #1a6ff0; border-right: 5px solid #1a6ff0; transform: rotate(45deg); }
	/* 各カードの幅は「中の文字が必要とする幅 + 左右15px」。01 は本文を削ったぶん幅を詰めた。
	   すき間はすべて 34px、左右の余白は 47px で揃える(47+幅合計1210+34×4+47 = 1440)。
	   矢印は必ずすき間の中央に来るよう、left = カード幅 + 8.5px(17pxの半分 - 矢印の半幅)。 */
	.fstep--1 { left: 47px; width: 285px; height: 409px; }
	.fstep--1::after { left: 294px; }
	.fstep--2 { left: 366px; width: 231px; }
	.fstep--2::after { left: 240px; }
	.fstep--3 { left: 631px; width: 200px; }
	.fstep--3::after { left: 209px; }
	.fstep--4 { left: 865px; width: 259px; }
	.fstep--4::after { left: 268px; }
	.fstep--5 { left: 1158px; width: 235px; }
	.fstep__no { position: absolute; top: -18px; width: 70px; height: 70px; border-radius: 50%; background: #0b6cf6; color: #fff; font-family: var(--ff-cond); font-weight: 700; font-size: 34px; line-height: 70px; text-align: center; }
	.fstep--1 .fstep__no { left: -1px; }
	.fstep--2 .fstep__no { left: -31px; }
	.fstep--3 .fstep__no { left: -17px; }
	.fstep--4 .fstep__no { left: -8px; }
	.fstep--5 .fstep__no { left: -10px; }
	.fstep__img { position: absolute; }
	/* 本文がなくなって絵が小さく浮いて見えたので、他のカードと同じくらいの高さ(約183px)に合わせる */
	.fstep--1 .fstep__img { left: 48px; top: 25px; width: 190px; }
	.fstep--2 .fstep__img { left: -7px; top: 28px; width: 226px; }
	.fstep__hand { position: absolute; left: 11px; top: 68px; width: 185px; height: 125px; }
	.fstep--3 .fstep__img { left: 0; bottom: 0; width: 185px; }
	.fstep__rays { position: absolute; width: 40px; }
	.fstep__rays--l { left: 60px; top: 0; transform: scaleX(-1) rotate(8deg); }
	.fstep__rays--r { left: 92px; top: 0; }
	.fstep--4 .fstep__img { left: 34px; top: 35px; width: 200px; }
	.fstep--5 .fstep__img { left: 30px; top: 35px; width: 194px; }
	.fstep__title { position: absolute; left: 0; right: 0; top: 228px; font-size: 26px; font-weight: 900; line-height: 38px; color: var(--ink); white-space: nowrap; letter-spacing: -.02em; }
	/* 見出しの高さは 02・03 とそろえる */
	.fstep--1 .fstep__title { top: 228px; }
	.fstep--1 .fstep__title::after { content: ""; display: block; width: 138px; height: 2px; margin: 3px auto 0; background: linear-gradient(90deg, #1a6ff0, rgba(26, 111, 240, .15)); }
	.fstep--3 .fstep__title { top: 228px; }
	.fstep--4 .fstep__title, .fstep--5 .fstep__title { top: 233px; }
	.fstep--5 .fstep__title span { display: inline-block; border-bottom: 2px solid #5a9cf2; }
	.fstep__text { position: absolute; left: 18px; top: 227px; text-align: left; font-size: 18px; line-height: 32px; color: var(--text); white-space: nowrap; letter-spacing: .01em; }

	/* ---------------- 最短3ヶ月バナー ---------------- */
	.quick { position: relative; height: 390px; background: #eff8fe; }
	.quick__bg { position: absolute; left: 0; top: 0; width: 100%; height: 100%; }
	.quick__inner { position: relative; max-width: 1440px; height: 100%; margin: 0 auto; color: #fff; }
	.quick__city { position: absolute; max-width: none; }
	.quick__city--l { left: 0; top: 190px; width: 620px; }
	.quick__city--r { left: 1195px; top: 28px; width: 245px; }
	.quick__label { position: absolute; left: 42px; top: 50px; width: 360px; height: 160px; }
	.quick__label-bg { position: absolute; inset: 0; background: var(--lime); clip-path: polygon(0 34%, 98% 3%, 99% 60%, 11% 88%, 5% 100%, 5% 91%, 1% 92%); }
	.quick__label-txt { position: absolute; left: 26px; top: 58px; font-size: 64px; font-weight: 900; color: var(--ink); line-height: 1; transform: rotate(-12deg); transform-origin: left bottom; white-space: nowrap; letter-spacing: -.03em; }
	.quick__label-txt small { font-size: 34px; margin-left: 2px; }
	.quick__iso { position: absolute; left: 417px; top: 116px; font-size: 40px; font-weight: 700; line-height: 1; white-space: nowrap; font-feature-settings: "palt" 1; letter-spacing: .005em; }
	.quick__main { position: absolute; left: 247px; top: 132px; font-feature-settings: "palt" 1; display: flex; align-items: baseline; font-size: 63px; font-weight: 900; line-height: 1; white-space: nowrap; }
	.quick__num { color: var(--lime); font-size: 74px; margin: 0 4px 0 14px; }
	.quick__num .num { font-size: 174px; font-weight: 800; margin-right: 4px; }
	.quick__swoosh { position: absolute; left: 596px; top: 290px; width: 620px; }

	/* ---------------- お客様の声 ---------------- */
	.voice { position: relative; height: 2070px; padding: 60px 0; background: linear-gradient(180deg, #fefefe 0, #f9fcfe 540px, #fbfdfe 100%); }
	.voice__inner { position: relative; max-width: 1440px; height: 100%; margin: 0 auto; }
	.voice__head-img { position: absolute; left: 700px; top: 0; width: 740px; max-width: none; }
	.voice .sec-label { position: absolute; left: 57px; top: 29px; font-size: 20px; --ll: 90px; --lw: 142px; letter-spacing: .06em; }
	.voice__title { position: absolute; left: 56px; top: 52px; display: flex; align-items: baseline; font-size: 98px; font-weight: 900; line-height: 1; color: var(--ink); white-space: nowrap; letter-spacing: -.03em; }
	.voice__no-kana { font-size: 64px; margin: 0 6px 0 4px; }
	.voice__lead { position: absolute; left: 50px; top: 138px; font-feature-settings: "palt" 1; font-weight: 900; color: var(--ink); line-height: 1; white-space: nowrap; }
	.voice__rate { color: var(--blue); }
	.voice__rate .num { font-size: 214px; letter-spacing: -.02em; }
	.voice__rate .pct { font-family: var(--ff-num); font-weight: 800; font-size: 146px; margin-left: 2px; }
	.voice__lead-1 { font-size: 52px; margin-left: 10px; letter-spacing: .01em; }
	.voice__lead-ijo { font-size: 56px; }
	.voice__lead br + * { }
	.voice__lead .hl-under--voice { display: inline-block; font-size: 68px; margin: -4px 0 0 8px; letter-spacing: -.01em; }
	.hl-under--voice::before { left: -.1em; right: -.05em; bottom: -.14em; height: .55em; }
	.voice__lead-2 { font-size: 48px; margin-left: 14px; letter-spacing: .01em; }
	.vcard { position: absolute; left: 41px; width: 1358px; border-radius: 20px; background: linear-gradient(180deg, #f1f8fe 0%, #f4fafe 100%); }
	.vcard--1 { top: 473px; height: 417px; }
	.vcard--2 { top: 919px; height: 453px; }
	.vcard--3 { top: 1401px; height: 539px; }
	.vcard__img { position: absolute; max-width: none; }
	.vcard--1 .vcard__img { left: 1116px; top: 34px; width: 245px; }
	.vcard--2 .vcard__img { left: 1057px; top: 29px; width: 304px; }
	.vcard--3 .vcard__img { left: 1059px; top: 27px; width: 318px; }
	.vcard__title { position: absolute; left: 26px; top: 12px; display: flex; align-items: center; white-space: nowrap; }
	.vcard__no { font-family: var(--ff-num); font-weight: 700; font-size: 100px; line-height: 1; color: var(--blue); letter-spacing: -.01em; }
	.vcard__quote { font-family: Georgia, "Times New Roman", serif; font-size: 96px; line-height: 1; color: #b7dbf6; margin: -26px 0 0 30px; height: 60px; font-weight: 700; }
	.vcard__title-txt { font-size: 45px; font-weight: 900; line-height: 1; color: var(--ink); margin-left: 40px; letter-spacing: -.01em; }
	.vcard__title .hl-under::before { left: -.12em; bottom: -.3em; height: .6em; }
	/* 右2割は人の画像の場所。文字はそこに入り込まないよう right で止め、
	   長い行は折り返して逃がす(白背景の帯に文字が重なるのを防ぐため) */
	.vcard__meta { position: absolute; left: 29px; right: 300px; display: flex; gap: 20px; }
	.vcard__cell { display: flex; min-width: 0; height: auto; min-height: 88px; border-radius: 8px; overflow: hidden; background: #fff; box-shadow: 0 2px 8px rgba(40, 100, 180, .04); }
	.vcard__cell dt { display: flex; align-items: center; justify-content: center; padding: 0 16px; background: #deedfb; color: #1a6ff0; font-size: 20px; font-weight: 900; white-space: nowrap; }
	.vcard__cell dd { display: flex; align-items: center; padding: 0 24px; font-size: 20px; font-weight: 500; line-height: 32px; color: var(--text); }
	.vcard__cell--type dt { width: 91px; }
	.vcard__cell--type dd { white-space: nowrap; }
	.vcard__cell--expect { flex-direction: column; justify-content: center; padding: 0 18px; }
	.vcard__cell--expect dt { background: none; padding: 0; justify-content: flex-start; line-height: 1.5; }
	.vcard__cell--expect dd { padding: 0; line-height: 1.55; }
	.vcard__rows { position: absolute; left: 29px; right: 300px; }
	.vcard__row { display: flex; align-items: center; }
	.vcard__row dt { flex: none; display: flex; align-items: center; justify-content: center; width: 235px; height: 71px; border-radius: 8px; background: #deedfb; color: #1a6ff0; font-size: 20px; font-weight: 900; }
	.vcard__row dd { padding-left: 18px; font-size: 19.5px; line-height: 32px; color: var(--text); letter-spacing: -.01em; }
	/* 幅を狭めたので手動改行はやめ、自然に折り返させる */
	.vcard__row dd br { display: none; }
	.vcard__row + .vcard__row { margin-top: 16px; position: relative; }
	.vcard__row + .vcard__row::before { content: ""; position: absolute; left: 255px; right: 0; top: -1px; height: 1px; background: #d8e8f6; }
	.vcard__row--voice { align-items: flex-start; }
	.vcard--1 .vcard__meta { top: 122px; }
	.vcard--1 .vcard__rows { top: 225px; }
	.vcard--2 .vcard__title { top: 22px; }
	.vcard--2 .vcard__meta { top: 129px; }
	.vcard--2 .vcard__rows { top: 231px; }
	.vcard--3 .vcard__title { top: 16px; }
	.vcard--3 .vcard__meta { top: 126px; }
	.vcard--3 .vcard__rows { top: 227px; }
	.vcard__row--voice dd { padding-top: 6px; }
	.vcard--3 .vcard__row--voice dd { line-height: 34px; }
	.vcard--2 .vcard__row--voice dd, .vcard--3 .vcard__row--voice dd { font-size: 20.3px; }

	/* ---------------- FAQ ---------------- */
	.faq { position: relative; height: 1046px; padding: 60px 0; background: #fdfefe; }
	.faq__inner { position: relative; max-width: 1440px; height: 100%; margin: 0 auto; }
	.faq__q-img { position: absolute; left: 1015px; top: 20px; width: 105px; }
	.faq__papers { position: absolute; left: 1140px; top: 10px; width: 275px; }
	.faq .sec-label { position: absolute; left: 57px; top: 19px; font-size: 20px; --ll: 65px; --lw: 168px; letter-spacing: .06em; }
	.faq__title { position: absolute; left: 58px; top: 48px; font-size: 84px; font-weight: 900; line-height: 1; color: var(--ink); white-space: nowrap; letter-spacing: -.02em; }
	.faq__list { position: absolute; left: 47px; top: 187px; width: 1347px; }
	.faq__item { position: relative; background: #fff; border-radius: 12px; box-shadow: 0 4px 20px rgba(40, 90, 160, .07); padding: 25px 40px 23px 148px; }
	.faq__item + .faq__item { margin-top: 15px; }
	.faq__item:nth-child(3) { margin-top: 17px; }
	.faq__item dt { position: relative; font-size: 30px; font-weight: 900; line-height: 38px; color: var(--ink); font-feature-settings: "palt" 1; letter-spacing: .03em; }
	.faq__item dd { position: relative; margin-top: 22px; font-size: 24px; line-height: 39px; color: #2a3050; }
	.faq__item:first-child dd { letter-spacing: .07em; }
	.faq__mark { position: absolute; left: -117px; display: flex; align-items: center; justify-content: center; font-family: var(--ff); font-weight: 900; line-height: 1; }
	.faq__mark--q { top: -14px; width: 68px; height: 68px; border-radius: 50%; background: var(--blue); color: #fff; font-size: 33px; }
	.faq__mark--a { top: -4px; width: 68px; height: 46px; border-radius: 23px; background: var(--lime); color: var(--ink); font-size: 30px; }

	/* ---------------- お知らせ ---------------- */
	.news { position: relative; padding: 60px 0; background: #fdfefe; }
	.news__inner { position: relative; max-width: 1440px; margin: 0 auto; padding: 0 47px; }
	.news .sec-label { margin-left: 11px; font-size: 20px; --ll: 68px; --lw: 168px; letter-spacing: .06em; }
	.news__title { margin: 8px 0 0 10px; font-size: 84px; font-weight: 900; line-height: 1; color: var(--ink); letter-spacing: -.02em; }
	.news__lead { margin: 28px 0 0 11px; font-size: 20px; font-weight: 500; line-height: 1; color: var(--text); }
	.news__list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; margin-top: 40px; list-style: none; }
	.news__more { margin-top: 44px; text-align: center; }
	.btn--news { width: 340px; height: 66px; border-radius: 10px; font-size: 18px; font-weight: 900; gap: 14px; }
	.news__empty { margin-top: 32px; font-size: 18px; }

	/* お知らせカード */
	.ncard { display: flex; }
	.ncard__link { display: flex; flex-direction: column; width: 100%; background: #fff; border-radius: 14px; box-shadow: 0 4px 20px rgba(40, 90, 160, .07); overflow: hidden; transition: transform .25s, box-shadow .25s; }
	.ncard__link:hover { transform: translateY(-5px); box-shadow: 0 14px 32px rgba(40, 90, 160, .15); }
	.ncard__thumb { position: relative; display: block; aspect-ratio: 16 / 9; background: linear-gradient(135deg, #eaf4fd 0%, #dbecfa 100%); overflow: hidden; }
	.ncard__thumb img { width: 100%; height: 100%; object-fit: cover; }
	.ncard__ph { position: absolute; inset: 0; display: flex; align-items: flex-end; background: linear-gradient(180deg, #f2f9fe 0%, #d8eafa 100%); }
	.ncard__ph img { width: 100%; height: auto; object-fit: contain; opacity: .9; }
	.ncard__body { display: flex; flex-direction: column; flex: 1; padding: 22px 26px 26px; }
	.ncard__meta { display: flex; align-items: center; gap: 13px; }
	.ncard__date { font-family: var(--ff-num); font-weight: 700; font-size: 19px; line-height: 1; color: #6d7d9c; letter-spacing: .045em; }
	.ncard__cat { display: inline-flex; align-items: center; height: 28px; padding: 0 14px; border-radius: 14px; background: var(--pale); color: #1a6ff0; font-size: 14px; font-weight: 900; line-height: 1; white-space: nowrap; }
	.ncard__title { display: block; margin-top: 14px; font-size: 23px; font-weight: 900; line-height: 34px; color: var(--ink); font-feature-settings: "palt" 1; }
	.ncard__link:hover .ncard__title { color: var(--blue); }
	.ncard__text { display: block; margin-top: 11px; font-size: 16px; line-height: 28px; color: #4a5472; }

	/* ---------------- 下層ページ(お知らせ一覧・記事・固定ページ) ---------------- */
	.page-head { position: relative; background: linear-gradient(180deg, #e9f3fd 0%, #f6fbfe 100%); }
	.page-head__inner { max-width: 1440px; margin: 0 auto; padding: 56px 58px 52px; }
	.page-head .sec-label { font-size: 19px; --ll: 62px; --lw: 150px; letter-spacing: .06em; }
	.page-head__title { margin-top: 12px; font-size: 56px; font-weight: 900; line-height: 1.22; color: var(--ink); letter-spacing: -.01em; font-feature-settings: "palt" 1; }
	.page-head__title--entry { font-size: 42px; line-height: 1.42; max-width: 1000px; }
	.page-head__meta { display: flex; align-items: center; gap: 13px; margin-top: 20px; }
	.breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; margin-top: 22px; font-size: 14px; font-weight: 500; color: #6d7d9c; }
	.breadcrumb a { color: #1a6ff0; }
	.breadcrumb a:hover { text-decoration: underline; }
	.breadcrumb__sep { color: #a9b8cf; }

	.page-body { background: #fdfefe; }
	.page-body__inner { max-width: 1440px; margin: 0 auto; padding: 60px 47px 80px; }
	.news__list--archive { margin-top: 0; }
	.page-empty { font-size: 18px; }

	/* 一覧のカテゴリータブ */
	.news-tabs { margin-bottom: 40px; }
	.news-tabs__list { display: flex; flex-wrap: wrap; gap: 12px; }
	.news-tabs__btn { display: inline-flex; align-items: center; justify-content: center; min-width: 140px; height: 52px; padding: 0 26px; border: 2px solid var(--pale); border-radius: 26px; background: #fff; font-size: 17px; font-weight: 900; line-height: 1; color: #45597d; letter-spacing: .02em; transition: background-color .2s, border-color .2s, color .2s; }
	.news-tabs__btn:hover { border-color: var(--blue); color: var(--blue); }
	.news-tabs__btn.is-current { border-color: var(--blue); background: var(--blue); color: #fff; }
	.news-tabs__btn.is-current:hover { color: #fff; }
	.news-tabs + .news__list--archive { margin-top: 0; }

	/* 記事本文 */
	.entry { max-width: 940px; margin: 0 auto; background: #fff; border-radius: 16px; box-shadow: 0 4px 20px rgba(40, 90, 160, .07); padding: 50px 60px 56px; }
	.entry__thumb { margin-bottom: 36px; }
	.entry__thumb img { width: 100%; border-radius: 10px; }
	.entry__content { font-size: 17px; line-height: 2.05; color: var(--text); }
	.entry__content > *:first-child { margin-top: 0; }
	.entry__content p { margin-top: 24px; }
	.entry__content h2 { margin: 48px 0 20px; padding: 3px 0 3px 20px; border-left: 6px solid var(--blue); font-size: 27px; font-weight: 900; line-height: 1.5; color: var(--ink); font-feature-settings: "palt" 1; }
	.entry__content h3 { margin: 36px 0 14px; font-size: 21px; font-weight: 900; line-height: 1.6; color: var(--ink); }
	.entry__content ul, .entry__content ol { margin: 24px 0; padding-left: 1.5em; }
	.entry__content li { margin-top: 10px; list-style: disc; }
	.entry__content ol li { list-style: decimal; }
	.entry__content a { color: #1a6ff0; text-decoration: underline; }
	.entry__content strong, .entry__content b { font-weight: 900; }
	.entry__content img { border-radius: 10px; margin: 26px 0; }
	.entry__content blockquote { margin: 28px 0; padding: 20px 26px; background: var(--pale); border-radius: 10px; }
	.entry__content table { width: 100%; border-collapse: collapse; margin: 26px 0; }
	.entry__content th, .entry__content td { border: 1px solid #dfe7f2; padding: 12px 16px; text-align: left; }
	.entry__content th { background: var(--pale); font-weight: 900; }

	.entry__nav { display: flex; gap: 20px; max-width: 940px; margin: 40px auto 0; }
	.entry__nav-side { flex: 1; min-width: 0; }
	.entry__nav-side--next { text-align: right; }
	.entry__nav-link { display: inline-block; max-width: 100%; padding: 18px 24px; border-radius: 12px; background: #fff; box-shadow: 0 2px 12px rgba(40, 90, 160, .07); transition: transform .2s, box-shadow .2s; }
	.entry__nav-link:hover { transform: translateY(-3px); box-shadow: 0 10px 24px rgba(40, 90, 160, .14); }
	.entry__nav-label { display: block; font-family: var(--ff-num); font-weight: 700; font-size: 14px; letter-spacing: .06em; color: #1a6ff0; }
	.entry__nav-title { display: block; margin-top: 6px; font-size: 16px; font-weight: 700; line-height: 1.6; color: var(--ink); }
	.entry__back { margin-top: 44px; text-align: center; }

	/* ページネーション */
	.pagination { margin-top: 52px; }
	.pagination .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
	.pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 50px; height: 50px; padding: 0 16px; border-radius: 8px; background: #fff; box-shadow: 0 2px 10px rgba(40, 90, 160, .08); font-family: var(--ff-num); font-weight: 700; font-size: 19px; color: var(--ink); transition: background-color .2s, color .2s; }
	.pagination .page-numbers:hover { background: var(--pale); }
	.pagination .page-numbers.current { background: var(--blue); color: #fff; }
	.pagination .page-numbers.dots { background: none; box-shadow: none; }
	.pagination .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }

	/* 下層ページのCTA */
	.page-cta { background: linear-gradient(180deg, #012356 0%, #011c4b 100%); color: #fff; text-align: center; padding: 62px 20px 66px; }
	.page-cta__lead { font-size: 21px; font-weight: 700; line-height: 1; }
	.page-cta__title { margin-top: 20px; font-size: 46px; font-weight: 900; line-height: 1.3; font-feature-settings: "palt" 1; }
	/* 紺色の背景なので、黄緑は文字の後ろではなく下線にする。
	   後ろに敷くと傾きで文字が帯からはみ出し、黒い文字が紺色に溶けて読めなくなるため。
	   左右の張り出しも 0 にして、続く「に」に重ならないようにする。 */
	.page-cta__title .hl-box { color: #fff; }
	.page-cta__title .hl-box::before { left: 0; right: 0; bottom: 0; height: .16em; border-radius: 2px; transform: none; }
	.page-cta__text { margin-top: 22px; font-size: 18px; font-weight: 500; line-height: 1.8; }
	.page-cta__btns { display: flex; justify-content: center; gap: 20px; margin-top: 34px; }
	.btn--pagecta { width: 306px; height: 72px; border-radius: 12px; font-size: 19px; font-weight: 900; gap: 14px; }
	.btn--pagecta .i-mail { width: 28px; height: 21px; }
	.btn--pagecta .i-doc { width: 21px; height: 28px; }

	/* ---------------- お問い合わせ ---------------- */
	.contact { position: relative; min-height: 716px; background: linear-gradient(180deg, #00224f 0%, #00214e 55%, #001a43 100%); color: #fff; overflow: hidden; }
	.contact__cap { position: absolute; left: 0; top: -1px; width: 100%; height: 30px; fill: #fdfefe; z-index: 1; }
	.contact__inner { position: relative; max-width: 1440px; min-height: 716px; margin: 0 auto; padding: 54px 0 43px; }
	.contact__city { position: absolute; max-width: none; }
	.contact__city--l { left: -150px; top: 236px; width: 760px; opacity: 1; filter: brightness(1.35) saturate(1.2); -webkit-mask-image: linear-gradient(180deg, #000 60%, transparent); mask-image: linear-gradient(180deg, #000 60%, transparent); }
	.contact__city--r { left: 1250px; top: 250px; width: 700px; opacity: .7; }
	.contact .sec-label { position: absolute; left: 57px; top: 50px; font-size: 20px; --ll: 113px; --lw: 120px; letter-spacing: .06em; }
	.contact__title { position: absolute; left: 55px; top: 85px; font-size: 72px; font-weight: 900; line-height: 1; white-space: nowrap; letter-spacing: -.01em; }
	.contact__swoosh { position: absolute; left: 268px; top: 128px; width: 240px; }
	.contact__visual { position: absolute; left: 40px; top: 244px; width: 490px; height: 420px; }
	.contact__operator { position: absolute; left: 12px; bottom: 6px; width: 432px; transform: scaleX(-1); }
	.contact__envelope { position: absolute; left: 278px; top: 65px; width: 144px; }
	.contact__rays { position: absolute; left: 342px; top: 12px; width: 60px; }
	.cform { position: relative; left: 537px; width: 855px; min-height: 619px; border-radius: 14px; padding: 31px 35px 30px 43px; color: var(--ink); }
	.cform__notice { margin-bottom: 16px; }
	.cform__row { display: flex; align-items: flex-start; }
	.cform__row + .cform__row { margin-top: 17px; }
	.cform__label { width: 200px; flex: none; height: 48px; font-size: 19px; font-weight: 900; letter-spacing: -.02em; }
	.cform__label span { width: 127px; white-space: nowrap; }
	.cform__row--email .cform__label span { font-size: 17.5px; letter-spacing: -.05em; }
	.cform__row--message .cform__label span { font-size: 16px; letter-spacing: -.04em; }
	.cform__req { width: 58px; height: 36px; font-size: 15px; font-weight: 900; }
	.cform__field { flex: 1; }
	.cform input { height: 48px; }
	.cform textarea { height: 150px; }
	.cform__row--message { margin-top: 20px !important; }
	.cform__submit { height: 107px; margin-top: 31px; gap: 30px; font-size: 40px; }
	.cform__submit .i-mail { width: 52px; height: 38px; }
	.cform__submit .i-chev { width: 13px; height: 22px; margin-left: 12px; }

	/* footer */
	.site-footer { min-height: 268px; padding: 48px 20px 36px; }
	.site-footer__logo { display: inline-block; }
	.site-footer__logo img { width: 306px; }
	.site-footer__nav { margin-top: 21px; font-size: 15px; }
	.site-footer__copy { margin-top: 24px; font-size: 15px; line-height: 1; }
	.pc { display: inline; }
}


/* =========================================================
   SP / タブレット(1024px以下)
   ========================================================= */
@media (max-width: 1024px) {

	br.pc { display: none; }
	body { font-size: 15px; }

	/* header */
	.site-header { box-shadow: 0 1px 0 rgba(0, 0, 0, .06); }
	.site-header__inner { height: 64px; padding: 0 12px 0 16px; justify-content: space-between; }
	html { scroll-padding-top: 64px; }
	.site-logo img { width: 140px; }
	.header-sp { display: flex; align-items: center; gap: 10px; }
	.header-mail { display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 10px; background: var(--lime); color: var(--ink); }
	.header-mail .i-mail { width: 24px; height: 17px; }
	.menu-toggle { position: relative; width: 48px; height: 48px; border: 0; border-radius: 10px; background: var(--lime); cursor: pointer; }
	.menu-toggle span { position: absolute; left: 13px; width: 22px; height: 2.5px; background: var(--ink); border-radius: 2px; transition: transform .25s, opacity .25s; }
	.menu-toggle span:nth-child(1) { top: 16px; }
	.menu-toggle span:nth-child(2) { top: 23px; }
	.menu-toggle span:nth-child(3) { top: 30px; }
	.menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
	.menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
	.menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
	.gnav { position: fixed; left: 0; right: 0; top: 64px; bottom: 0; background: #fff; padding: 12px 24px 40px; overflow-y: auto; transform: translateX(100%); visibility: hidden; transition: transform .3s, visibility .3s; }
	.gnav.is-open { transform: none; visibility: visible; }
	.gnav__list li { border-bottom: 1px solid #e6ecf3; }
	.gnav__list a { display: block; padding: 16px 4px; font-size: 16px; }
	.gnav__cta { display: grid; gap: 12px; margin-top: 24px; }
	.btn--head { height: 56px; border-radius: 10px; gap: 12px; font-size: 16px; }
	.btn--head .i-chev { display: none; }

	.sec-label { font-size: 15px; }
	.sec-label::after { position: relative; top: auto; left: auto; margin: 0 0 0 12px; width: 80px; }

	/* MV */
	.mv { position: relative; overflow: hidden; background: #fbfdfd; padding: 20px 20px 36px; }
	.mv__inner { position: relative; display: flex; flex-direction: column; }
	.mv__dots, .mv__arrow, .mv__tagline, .mv__hand-line { display: none; }
	.mv__visual { order: 2; position: relative; margin: 8px 0 0 0; }
	.mv__hand { position: absolute; right: 20%; top: 9%; font-family: var(--ff-hand); font-size: clamp(11px, 3vw, 24px); line-height: 1.35; color: #fff; transform: rotate(-10deg); }
	.mv__record { position: absolute; isolation: isolate; left: 50%; bottom: 2.5%; translate: -50% 0; display: flex; width: calc(100% - 16px); flex-direction: column; align-items: center; color: var(--ink); font-weight: 900; line-height: 1; text-align: center; text-shadow: 0 1px 0 rgba(255, 255, 255, .8); }
	.mv__record::before { content: ""; position: absolute; z-index: -1; inset: -6px -4px -7px; border: 1px solid rgba(255, 255, 255, .38); border-radius: 16px; background: rgba(255, 255, 255, .32); box-shadow: 0 0 17px 7px rgba(255, 255, 255, .25); -webkit-backdrop-filter: blur(1.5px); backdrop-filter: blur(1.5px); }
	.mv__record-main { display: flex; align-items: flex-end; gap: clamp(9px, 2.8vw, 20px); font-size: clamp(22px, 6.3vw, 44px); white-space: nowrap; }
	.mv__record-label { display: flex; flex-direction: column; align-items: center; }
	.mv__record-kicker { margin-bottom: 2px; font-size: clamp(11px, 3.2vw, 22px); letter-spacing: .08em; }
	.mv__record-main strong { display: flex; align-items: baseline; color: var(--blue); font-size: clamp(27px, 7.2vw, 50px); font-weight: 900; }
	.mv__record-num { font-family: var(--ff-num); font-size: clamp(46px, 12.4vw, 88px); letter-spacing: -.02em; }
	.mv__record-note { max-width: 100%; margin-top: 3px; font-size: clamp(7px, 1.65vw, 11px); font-weight: 700; line-height: 1.45; white-space: normal; }
	/* 「建設専門」と「のISO認証取得・運用は」を横並びにするため flex。
	   「シビマネ」「におまかせ！」は width:100% で必ず次の行へ送る */
	.mv__title { order: 1; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; column-gap: 6px; text-align: center; font-weight: 900; color: var(--ink); line-height: 1.15; }
	.mv__kensetsu { position: relative; flex: 0 0 auto; padding: 6px 14px 6px 10px; font-size: clamp(30px, 9.5vw, 60px); }
	.mv__kensetsu-bg { position: absolute; inset: 0; width: 100%; height: 100%; }
	.mv__kensetsu-txt { position: relative; display: inline-block; transform: rotate(-5deg); }
	.mv__sub { flex: 0 1 auto; min-width: 0; font-size: clamp(12px, 3.6vw, 26px); letter-spacing: -.01em; }
	.mv__brand { width: 100%; font-size: clamp(64px, 19vw, 130px); color: #0165f4; transform: skewX(-9deg); letter-spacing: -.03em; margin-top: 4px; line-height: 1.05; }
	.mv__omakase { width: 100%; text-align: center; font-size: clamp(24px, 6.4vw, 44px); margin-top: -4px; }
	.mv__price { order: 3; margin-top: 8px; color: var(--ink); line-height: 1; font-weight: 900; text-align: center; }
	.mv__price-label { display: block; font-size: clamp(24px, 6.4vw, 40px); }
	.mv__price-num { position: relative; display: inline-block; margin-top: 4px; padding: 0 16px 6px 10px; }
	.mv__price-hl { position: absolute; left: 0; right: 0; bottom: 0; width: 100%; height: 45%; }
	.mv__price-txt { position: relative; font-family: var(--ff-num); font-weight: 800; font-size: clamp(64px, 19vw, 130px); letter-spacing: -.03em; }
	.mv__btns { order: 4; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 22px; }
	.btn--mv { height: 58px; border-radius: 10px; font-size: clamp(13px, 3.6vw, 18px); gap: 8px; padding: 0 8px; }
	.btn--mv .i-mail { width: 22px; height: 16px; }
	.btn--mv .i-doc { width: 17px; height: 22px; }
	.btn--mv .i-chev { display: none; }

	/* 実績 */
	.stats { background: var(--navy); color: #fff; padding: 22px 16px; }
	.stats__list { display: grid; grid-template-columns: repeat(3, 1fr); }
	.stats__div { display: none; }
	.stat { text-align: center; padding: 0 4px; }
	.stat + .stat { border-left: 1px solid rgba(255, 255, 255, .55); }
	.stat__head { display: flex; flex-direction: column; align-items: center; gap: 6px; font-size: clamp(12px, 3.3vw, 20px); font-weight: 900; line-height: 1.2; }
	.stat__head b { font-size: 1.35em; }
	.stat__icon { width: clamp(24px, 6vw, 40px); }
	.stat__big { margin-top: 6px; font-weight: 900; line-height: 1.1; font-size: clamp(11px, 3vw, 22px); }
	.stat__big .num { display: inline-block; font-size: clamp(30px, 9vw, 64px); line-height: 1; }
	.stat__big .pct { font-family: var(--ff-num); font-weight: 800; font-size: clamp(18px, 5vw, 40px); }
	.stat--1 .stat__big { display: flex; flex-wrap: wrap; justify-content: center; align-items: baseline; }

	/* お悩み */
	.worry { background: var(--bg); padding: 44px 16px 28px; }
	.worry__title { text-align: center; font-size: clamp(22px, 6vw, 38px); font-weight: 900; color: var(--ink); line-height: 1.3; }
	.worry__title::after { content: ""; display: block; width: 60px; height: 4px; margin: 14px auto 0; background: var(--lime); }
	.worry__body { position: relative; display: grid; gap: 16px; margin-top: 26px; }
	.worry__box { position: relative; background: #e8f3fd; border-radius: 28px; padding: 22px 20px 22px; }
	.worry__bubble, .worry__deco { display: none; }
	.worry__head { font-size: clamp(19px, 5vw, 28px); font-weight: 900; color: var(--ink); line-height: 1.3; }
	.worry__list { margin-top: 12px; }
	.worry__list li { display: flex; align-items: flex-start; gap: 10px; font-size: clamp(14px, 3.9vw, 18px); font-weight: 500; line-height: 1.6; padding: 5px 0; }
	.worry__list li::before { content: ""; width: 22px; height: 22px; flex: none; margin-top: 2px; background: url(../img/check-blue.webp) center / contain no-repeat; }
	.worry__worker { width: 46%; max-width: 240px; margin: 0 auto; order: 3; }
	.worry__lead { margin-top: 18px; text-align: center; font-size: clamp(15px, 4.2vw, 24px); font-weight: 900; color: var(--ink); line-height: 1.5; }

	/* 解決バナー */
	.solve { position: relative; background: linear-gradient(90deg, #002b6c 0%, #01337e 60%, #0f74fc 100%); color: #fff; font-weight: 900; padding: 28px 18px 30px; overflow: hidden; }
	.solve__band, .solve__cloud { display: none; }
	/* 街並みは切り取らず全体を見せる。文字(.solve__lead / .solve__main は z-index:1)より後ろ。bottom は .solve の下パディング分 */
	.solve__city { position: absolute; right: 0; bottom: -30px; width: 52%; opacity: .45; pointer-events: none; }
	.solve__skyline { width: 100%; }
	.solve__inner { position: relative; }
	.solve__lead, .solve__main, .quick__iso, .quick__main, .contact__title, .contact .sec-label { position: relative; z-index: 1; }
	.solve__lead { font-size: clamp(14px, 3.9vw, 30px); line-height: 1.5; font-feature-settings: "palt" 1; }
	.solve__main { font-size: clamp(24px, 7vw, 56px); line-height: 1.25; margin-top: 4px; font-feature-settings: "palt" 1; }

	/* 選ばれる理由 */
	.reason { background: var(--bg); padding: 30px 16px 40px; }
	.reason__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; }
	.rcard { position: relative; border-radius: 16px; background: #fdfdfd; box-shadow: 0 4px 18px rgba(30, 70, 130, .06); padding: 22px 22px 26px; overflow: hidden; }
	.rcard.is-pale { background: #eaf4fd; }
	.rcard__no { font-family: var(--ff-cond); font-weight: 700; font-size: 52px; line-height: 1; color: var(--blue); }
	.rcard__no span { display: block; font-family: var(--ff-num); font-size: 16px; color: #1266e0; }
	.rcard__img { width: 62%; max-width: 250px; margin: -30px 0 10px auto; }
	.rcard--4 .rcard__img { width: 44%; }
	.rcard__deco, .rcard__zenkoku { display: none; }
	.rcard__title { font-size: clamp(20px, 5.4vw, 28px); font-weight: 900; line-height: 1.45; color: var(--ink); }
	.rcard__price { display: inline-block; background: var(--lime); padding: 0 6px; }
	.rcard__price .num { font-size: 1.45em; }
	.rcard__rate { font-family: var(--ff-num); font-weight: 800; font-size: 1.3em; }
	.rcard__big { font-size: 1.12em; }
	.rcard__text { margin-top: 10px; font-size: clamp(14px, 3.9vw, 17px); line-height: 1.75; }

	/* 強み */
	.strength { position: relative; background: #fff; padding: 36px 18px 20px; }
	.strength__band, .strength__cap { display: none; }
	.strength__inner { display: flex; flex-direction: column; }
	.strength__img--1 { order: 3; width: 100%; margin-top: 10px; }
	.strength .sec-label { order: 1; }
	.strength__title { order: 2; margin-top: 6px; font-weight: 900; line-height: 1.1; color: var(--ink); font-size: clamp(38px, 11vw, 80px); }
	.strength__title .brand-italic { color: var(--blue); }
	.strength__no-kana { font-size: .65em; margin: 0 2px; }
	.sitem { order: 4; margin-top: 26px; display: flex; flex-direction: column; }
	.sitem--1 { order: 4; }
	.sitem__label { font-family: var(--ff-num); font-weight: 700; font-size: 14px; color: #1a6ff0; letter-spacing: .05em; }
	.sitem__no { font-family: var(--ff-cond); font-weight: 700; font-size: clamp(48px, 13vw, 80px); line-height: 1; color: var(--blue); }
	.sitem__title { margin-top: 6px; font-size: clamp(20px, 5.6vw, 34px); font-weight: 900; line-height: 1.45; color: var(--ink); }
	.sitem__text { margin-top: 12px; font-size: clamp(14px, 3.9vw, 17px); line-height: 1.85; }
	.sitem__text p + p { margin-top: 8px; }
	.sitem__catch { font-weight: 900; color: var(--blue-d); }
	.sitem__em { font-size: 1.15em; font-weight: 900; color: var(--ink); }
	.sitem--2 { background: #ebf5fd; margin-left: -18px; margin-right: -18px; padding: 20px 18px 24px; }
	.strength__img--2, .strength__img--3 { order: 10; width: 100%; max-width: 520px; margin: 12px auto 0; }
	.hl-under--price .num { font-size: 1.3em; }

	/* 料金 */
	.price { position: relative; background: #012152; color: #fff; padding: 40px 16px 44px; overflow: hidden; }
	.price__cap { display: none; }
	.price__city { position: absolute; right: -40px; bottom: 0; width: 70%; opacity: .5; }
	.price__inner { position: relative; display: flex; flex-direction: column; }
	.price__title { margin-top: 8px; font-size: clamp(24px, 6.8vw, 48px); font-weight: 900; line-height: 1.3; }
	.price__title-ul { background: linear-gradient(transparent 88%, var(--lime) 88%, var(--lime) 96%, transparent 96%); }
	.price__std { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-top: 22px; }
	.price__std li { border: 2px solid #0e6cb3; border-radius: 10px; background: #013374; text-align: center; padding: 12px 2px 12px; }
	.price__std img { height: clamp(34px, 9vw, 60px); width: auto; margin: 0 auto 6px; }
	.price__std-name { display: block; font-size: clamp(14px, 3.9vw, 22px); font-weight: 700; line-height: 1.3; }
	.price__std-no { display: block; font-size: clamp(9px, 2.5vw, 16px); font-weight: 700; line-height: 1.3; letter-spacing: -.02em; }
	.price__card { order: 3; margin-top: 22px; border-radius: 12px; overflow: hidden; background: #fff; color: var(--ink); text-align: center; }
	.price__card-head { background: var(--lime); font-size: clamp(16px, 4.4vw, 24px); font-weight: 900; padding: 12px 0; line-height: 1.3; }
	.price__card-main { position: relative; display: inline-block; margin-top: 12px; padding: 0 8px; line-height: 1; white-space: nowrap; }
	.price__card-hl { position: absolute; left: 0; right: 0; bottom: 2px; width: 100%; height: 38%; }
	.price__card-main .num { position: relative; font-size: clamp(54px, 15vw, 90px); }
	.price__card-main .unit { position: relative; font-size: clamp(22px, 6vw, 36px); font-weight: 900; }
	.price__card-note { font-size: 14px; margin: 6px 0 14px; }
	.price__card-sub { background: #e5f4fd; padding: 14px 0 16px; }
	.price__card-sub-head { font-size: clamp(15px, 4.2vw, 22px); font-weight: 700; }
	.price__card-sub-price { font-size: clamp(24px, 6.6vw, 34px); font-weight: 900; line-height: 1.3; }
	.price__notes { order: 4; margin-top: 20px; padding-top: 16px; border-top: 1px solid rgba(255, 255, 255, .6); }
	.price__notes li { font-size: clamp(13px, 3.6vw, 18px); line-height: 1.7; padding-left: 1em; text-indent: -1em; }
	.price__notes li::before { content: "・"; }
	.price__notes b { font-size: 1.15em; }

	/* 比較 */
	.compare { background: #fefefe; padding: 40px 0 36px; }
	.compare__inner { display: flex; flex-direction: column; }
	.compare .sec-label { padding: 0 16px; }
	.compare__title { padding: 0 16px; margin-top: 6px; font-size: clamp(34px, 9.5vw, 64px); font-weight: 900; line-height: 1.2; color: var(--ink); }
	.compare__scroll { margin-top: 20px; overflow-x: auto; -webkit-overflow-scrolling: touch; padding: 0 16px 10px; }
	.compare__table { min-width: 600px; }
	.compare__table thead th { padding: 0; font-size: 18px; font-weight: 700; color: #fff; background: var(--sky); height: 56px; }
	.compare__corner { width: 27%; border-top-left-radius: 10px; }
	.compare__table thead th.is-cm { background: var(--lime); padding: 8px 6px; border-radius: 12px 12px 0 0; vertical-align: middle; }
	.compare__logo img { width: 130px; margin: 0 auto; }
	.compare__table tbody th { background: var(--sky); color: #fff; font-size: 15px; font-weight: 700; text-align: left; padding: 10px 10px 10px 14px; border-top: 1px solid rgba(255, 255, 255, .45); line-height: 1.35; }
	.compare__table tbody tr:last-child th { border-bottom-left-radius: 10px; }
	.compare__table td { font-size: 15px; font-weight: 700; color: var(--ink); padding: 12px 6px; }
	.compare__table tbody tr:nth-child(odd) td { background: #f5fafe; }
	.compare__table tbody tr:nth-child(even) td { background: #eaf4fd; }
	.compare__table td.is-cm { background: #fafcf2 !important; border-left: 3px solid var(--lime); border-right: 3px solid var(--lime); }
	.compare__table tbody tr:last-child td.is-cm { border-bottom: 3px solid var(--lime); }
	.compare__th { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
	.compare__more { display: inline-flex; align-items: center; gap: 6px; background: #fff; color: #1266e0; border: 0; border-radius: 6px; font-size: 12px; font-weight: 700; padding: 5px 10px; cursor: pointer; }
	.compare__more .i-chev { width: 6px; height: 9px; }
	.mk { font-size: 20px; }

	/* 流れ */
	.flow { background: linear-gradient(180deg, #fefefe 0%, #edf6fd 100%); padding: 40px 16px 44px; }
	.flow__title { margin-top: 6px; font-size: clamp(34px, 9.5vw, 64px); font-weight: 900; line-height: 1.2; color: var(--ink); }
	.flow__no-kana { font-size: .7em; }
	.flow__list { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 26px 14px; margin-top: 34px; }
	.fstep { position: relative; background: #fff; border-radius: 14px; box-shadow: 0 6px 24px rgba(40, 90, 160, .07); padding: 26px 12px 18px; text-align: center; }
	.fstep--1 { grid-column: 1 / -1; }
	.fstep__no { position: absolute; left: -6px; top: -16px; width: 48px; height: 48px; border-radius: 50%; background: #0b6cf6; color: #fff; font-family: var(--ff-cond); font-weight: 700; font-size: 24px; line-height: 48px; text-align: center; }
	.fstep__img { width: 70%; max-width: 180px; margin: 0 auto; }
	.fstep--1 .fstep__img { width: 110px; }
	.fstep__hand { position: relative; display: block; width: 70%; max-width: 180px; margin: 14px auto 0; }
	.fstep__hand .fstep__img { width: 100%; }
	.fstep__rays { display: none; }
	.fstep__title { margin-top: 10px; font-size: clamp(15px, 4.2vw, 22px); font-weight: 900; line-height: 1.45; color: var(--ink); }
	.fstep__text { margin-top: 8px; font-size: clamp(14px, 3.8vw, 17px); line-height: 1.75; }
	.fstep__text br { display: none; }

	/* 最短3ヶ月バナー */
	.quick { position: relative; background: linear-gradient(180deg, #0060ec 0%, #004cc0 60%, #003d9d 100%); color: #fff; padding: 30px 16px 40px; overflow: hidden; }
	.quick__bg, .quick__city--l, .quick__swoosh { display: none; }
	.quick__city--r { position: absolute; right: -10px; bottom: 0; width: 22%; opacity: .35; }
	.quick__inner { position: relative; }
	.quick__label { position: relative; display: inline-block; padding: 8px 22px 12px 14px; }
	.quick__label-bg { position: absolute; inset: 0; background: var(--lime); transform: rotate(-4deg) skewX(-8deg); }
	.quick__label-txt { position: relative; font-size: clamp(26px, 7vw, 44px); font-weight: 900; color: var(--ink); line-height: 1; }
	.quick__label-txt small { font-size: .55em; }
	.quick__iso { margin-top: 16px; font-size: clamp(15px, 4.2vw, 28px); font-weight: 700; }
	.quick__main { margin-top: 6px; font-size: clamp(19px, 5.3vw, 44px); font-weight: 900; line-height: 1.3; font-feature-settings: "palt" 1; }
	.quick__num { color: var(--lime); font-size: 1.15em; margin: 0 4px; }
	.quick__num .num { font-size: 2em; }

	/* お客様の声 */
	.voice { background: #fbfdfe; padding: 40px 16px 30px; }
	.voice__inner { display: flex; flex-direction: column; }
	.voice__head-img { order: 3; width: 100%; margin-top: 12px; }
	.voice .sec-label { order: 1; }
	.voice__title { order: 2; margin-top: 6px; font-size: clamp(38px, 10.5vw, 70px); font-weight: 900; line-height: 1.2; color: var(--ink); }
	.voice__no-kana { font-size: .68em; }
	.voice__lead { order: 4; margin-top: 12px; font-weight: 900; color: var(--ink); line-height: 1.3; font-size: clamp(18px, 5vw, 32px); }
	.voice__rate { color: var(--blue); }
	.voice__rate .num { font-size: 3.3em; line-height: 1; }
	.voice__rate .pct { font-family: var(--ff-num); font-weight: 800; font-size: 2em; }
	.voice__lead br { display: none; }
	.voice__lead-1 { display: inline; margin-left: 6px; }
	.hl-under--voice { display: inline-block; font-size: 1.25em; margin-top: 6px; }
	.vcard { order: 5; position: relative; margin-top: 18px; border-radius: 16px; background: #eff7fe; padding: 20px 16px 20px; overflow: hidden; }
	.vcard__img { position: absolute; right: -8px; top: 6px; width: 30%; max-width: 170px; opacity: .95; }
	.vcard__title { display: flex; align-items: center; flex-wrap: wrap; padding-right: 30%; }
	.vcard__no { font-family: var(--ff-cond); font-weight: 700; font-size: 50px; line-height: 1; color: var(--blue); }
	.vcard__quote { font-family: Georgia, serif; font-size: 50px; line-height: .6; color: #b7dbf6; margin: 0 10px; height: 26px; }
	.vcard__title-txt { width: 100%; margin-top: 8px; font-size: clamp(18px, 5vw, 28px); font-weight: 900; line-height: 1.45; color: var(--ink); }
	.vcard__meta { display: grid; gap: 8px; margin-top: 16px; position: relative; }
	.vcard__cell { display: flex; border-radius: 8px; overflow: hidden; background: #fff; }
	.vcard__cell dt { flex: none; display: flex; align-items: center; width: 8.5em; padding: 8px 10px; background: #deedfb; color: #1a6ff0; font-size: 13px; font-weight: 700; line-height: 1.4; }
	.vcard__cell dd { padding: 8px 12px; font-size: 14px; line-height: 1.55; }
	.vcard__cell dd br { display: none; }
	.vcard__rows { margin-top: 8px; display: grid; gap: 8px; position: relative; }
	.vcard__row dt { display: inline-block; border-radius: 6px; background: #deedfb; color: #1a6ff0; font-size: 13px; font-weight: 700; padding: 5px 12px; }
	.vcard__row dd { margin-top: 6px; font-size: 14px; line-height: 1.8; }

	/* FAQ */
	.faq { background: #fdfefe; padding: 40px 16px 40px; }
	.faq__inner { position: relative; }
	.faq__q-img { display: none; }
	.faq__papers { position: absolute; right: -6px; top: -16px; width: 76px; }
	.faq__title { margin-top: 6px; font-size: clamp(34px, 9.5vw, 64px); font-weight: 900; line-height: 1.2; color: var(--ink); position: relative; }
	.faq__list { margin-top: 20px; display: grid; gap: 12px; }
	.faq__item { background: #fff; border-radius: 12px; box-shadow: 0 4px 20px rgba(40, 90, 160, .07); padding: 18px 16px 18px 62px; }
	.faq__item dt { position: relative; font-size: clamp(15px, 4.2vw, 22px); font-weight: 900; line-height: 1.5; color: var(--ink); }
	.faq__item dd { position: relative; margin-top: 14px; font-size: clamp(14px, 3.8vw, 17px); line-height: 1.75; color: #2a3050; }
	.faq__mark { position: absolute; left: -48px; display: flex; align-items: center; justify-content: center; font-weight: 900; line-height: 1; }
	.faq__mark--q { top: -4px; width: 36px; height: 36px; border-radius: 50%; background: var(--blue); color: #fff; font-size: 18px; }
	.faq__mark--a { top: -2px; width: 38px; height: 28px; border-radius: 14px; background: var(--lime); color: var(--ink); font-size: 16px; }

	/* お知らせ */
	.news { background: #fdfefe; padding: 40px 16px 44px; }
	.news__inner { padding: 0; }
	.news__title { margin-top: 8px; font-size: clamp(34px, 9.5vw, 64px); font-weight: 900; line-height: 1.25; color: var(--ink); }
	.news__lead { margin-top: 14px; font-size: 15px; line-height: 1.8; color: var(--text); }
	.news__list { display: grid; grid-template-columns: 1fr; gap: 16px; margin-top: 24px; list-style: none; }
	.news__more { margin-top: 28px; text-align: center; }
	.btn--news { width: 100%; max-width: 340px; height: 58px; border-radius: 10px; font-size: 16px; font-weight: 900; gap: 12px; }
	.news__empty { margin-top: 20px; font-size: 15px; }

	.ncard { display: flex; }
	.ncard__link { display: flex; flex-direction: column; width: 100%; background: #fff; border-radius: 14px; box-shadow: 0 4px 18px rgba(40, 90, 160, .07); overflow: hidden; }
	.ncard__thumb { position: relative; display: block; aspect-ratio: 16 / 9; background: linear-gradient(135deg, #eaf4fd 0%, #dbecfa 100%); overflow: hidden; }
	.ncard__thumb img { width: 100%; height: 100%; object-fit: cover; }
	.ncard__ph { position: absolute; inset: 0; display: flex; align-items: flex-end; background: linear-gradient(180deg, #f2f9fe 0%, #d8eafa 100%); }
	.ncard__ph img { width: 100%; height: auto; object-fit: contain; opacity: .9; }
	.ncard__body { display: flex; flex-direction: column; flex: 1; padding: 16px 18px 20px; }
	.ncard__meta { display: flex; align-items: center; gap: 10px; }
	.ncard__date { font-family: var(--ff-num); font-weight: 700; font-size: 15px; line-height: 1; color: #6d7d9c; letter-spacing: .045em; }
	.ncard__cat { display: inline-flex; align-items: center; height: 24px; padding: 0 12px; border-radius: 12px; background: var(--pale); color: #1a6ff0; font-size: 12px; font-weight: 900; line-height: 1; white-space: nowrap; }
	.ncard__title { display: block; margin-top: 10px; font-size: 18px; font-weight: 900; line-height: 1.55; color: var(--ink); font-feature-settings: "palt" 1; }
	.ncard__text { display: block; margin-top: 8px; font-size: 14px; line-height: 1.8; color: #4a5472; }

	/* 下層ページ */
	.page-head { background: linear-gradient(180deg, #e9f3fd 0%, #f6fbfe 100%); }
	.page-head__inner { padding: 28px 16px 26px; }
	.page-head__title { margin-top: 10px; font-size: clamp(24px, 6.4vw, 40px); font-weight: 900; line-height: 1.4; color: var(--ink); font-feature-settings: "palt" 1; }
	.page-head__title--entry { font-size: clamp(21px, 5.4vw, 32px); }
	.page-head__meta { display: flex; align-items: center; gap: 10px; margin-top: 14px; }
	.breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin-top: 16px; font-size: 12px; color: #6d7d9c; }
	.breadcrumb a { color: #1a6ff0; }
	.breadcrumb__sep { color: #a9b8cf; }

	.page-body { background: #fdfefe; }
	.page-body__inner { padding: 30px 16px 44px; }
	.news__list--archive { margin-top: 0; }
	.page-empty { font-size: 15px; }

	/* 一覧のカテゴリータブ */
	.news-tabs { margin-bottom: 24px; }
	.news-tabs__list { display: flex; flex-wrap: wrap; gap: 8px; }
	.news-tabs__btn { display: inline-flex; align-items: center; justify-content: center; min-width: 96px; height: 44px; padding: 0 18px; border: 2px solid var(--pale); border-radius: 22px; background: #fff; font-size: 15px; font-weight: 900; line-height: 1; color: #45597d; }
	.news-tabs__btn.is-current { border-color: var(--blue); background: var(--blue); color: #fff; }

	.entry { background: #fff; border-radius: 14px; box-shadow: 0 4px 18px rgba(40, 90, 160, .07); padding: 24px 20px 30px; }
	.entry__thumb { margin-bottom: 22px; }
	.entry__thumb img { width: 100%; border-radius: 10px; }
	.entry__content { font-size: 15px; line-height: 1.95; color: var(--text); }
	.entry__content > *:first-child { margin-top: 0; }
	.entry__content p { margin-top: 18px; }
	.entry__content h2 { margin: 32px 0 14px; padding: 2px 0 2px 14px; border-left: 5px solid var(--blue); font-size: 19px; font-weight: 900; line-height: 1.55; color: var(--ink); }
	.entry__content h3 { margin: 24px 0 10px; font-size: 17px; font-weight: 900; line-height: 1.6; color: var(--ink); }
	.entry__content ul, .entry__content ol { margin: 18px 0; padding-left: 1.4em; }
	.entry__content li { margin-top: 8px; list-style: disc; }
	.entry__content ol li { list-style: decimal; }
	.entry__content a { color: #1a6ff0; text-decoration: underline; }
	.entry__content strong, .entry__content b { font-weight: 900; }
	.entry__content img { border-radius: 10px; margin: 20px 0; }
	.entry__content blockquote { margin: 20px 0; padding: 16px 18px; background: var(--pale); border-radius: 10px; }
	.entry__content table { width: 100%; border-collapse: collapse; margin: 20px 0; font-size: 14px; }
	.entry__content th, .entry__content td { border: 1px solid #dfe7f2; padding: 9px 12px; text-align: left; }
	.entry__content th { background: var(--pale); font-weight: 900; }

	.entry__nav { display: grid; gap: 12px; margin-top: 24px; }
	.entry__nav-link { display: block; padding: 14px 16px; border-radius: 12px; background: #fff; box-shadow: 0 2px 12px rgba(40, 90, 160, .07); }
	.entry__nav-label { display: block; font-family: var(--ff-num); font-weight: 700; font-size: 12px; letter-spacing: .06em; color: #1a6ff0; }
	.entry__nav-title { display: block; margin-top: 5px; font-size: 14px; font-weight: 700; line-height: 1.6; color: var(--ink); }
	.entry__back { margin-top: 28px; text-align: center; }

	.pagination { margin-top: 30px; }
	.pagination .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
	.pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 42px; height: 42px; padding: 0 12px; border-radius: 8px; background: #fff; box-shadow: 0 2px 10px rgba(40, 90, 160, .08); font-family: var(--ff-num); font-weight: 700; font-size: 16px; color: var(--ink); }
	.pagination .page-numbers.current { background: var(--blue); color: #fff; }
	.pagination .page-numbers.dots { background: none; box-shadow: none; }
	.pagination .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }

	.page-cta { background: linear-gradient(180deg, #012356 0%, #011c4b 100%); color: #fff; text-align: center; padding: 36px 16px 40px; }
	.page-cta__lead { font-size: 15px; font-weight: 700; }
	.page-cta__title { margin-top: 10px; font-size: clamp(22px, 6vw, 34px); font-weight: 900; line-height: 1.4; font-feature-settings: "palt" 1; }
	/* PC と同じ理由で下線にする(コメントは PC 側を参照) */
	.page-cta__title .hl-box { color: #fff; }
	.page-cta__title .hl-box::before { left: 0; right: 0; bottom: 0; height: .16em; border-radius: 2px; transform: none; }
	.page-cta__text { margin-top: 14px; font-size: 14px; line-height: 1.8; }
	.page-cta__btns { display: grid; gap: 12px; margin-top: 22px; justify-items: center; }
	.btn--pagecta { width: 100%; max-width: 320px; height: 58px; border-radius: 10px; font-size: 16px; font-weight: 900; gap: 12px; }

	/* お問い合わせ */
	.contact { position: relative; background: #00214f; color: #fff; padding: 40px 16px 44px; overflow: hidden; }
	.contact__cap, .contact__swoosh, .contact__city--r { display: none; }
	.contact__city--l { position: absolute; left: -40px; top: 40px; width: 110%; opacity: .45; }
	.contact__inner { position: relative; }
	.contact__title { margin-top: 6px; font-size: clamp(34px, 9.5vw, 64px); font-weight: 900; line-height: 1.2; background: linear-gradient(transparent 82%, var(--lime) 82%, var(--lime) 90%, transparent 90%); display: inline-block; }
	.contact__visual { position: absolute; right: -6px; top: 0; width: 120px; }
	.contact__operator { width: 100%; }
	.contact__envelope, .contact__rays { display: none; }
	.cform { position: relative; margin-top: 26px; border-radius: 14px; padding: 22px 18px 24px; color: var(--ink); }
	.cform__notice { margin-bottom: 16px; }
	.cform__row + .cform__row { margin-top: 16px; }
	.cform__label { gap: 10px; font-size: 15px; margin-bottom: 6px; }
	.cform__req { font-size: 12px; padding: 3px 8px; }
	.cform input { height: 48px; font-size: 16px; }
	.cform textarea { height: 150px; font-size: 16px; }
	.cform__submit { margin-top: 22px; height: 64px; gap: 14px; font-size: 22px; }
	.cform__submit .i-mail { width: 30px; height: 22px; }
	.cform__submit .i-chev { width: 9px; height: 15px; }

	/* footer */
	.site-footer { padding: 36px 16px 30px; }
	.site-footer__logo img { width: 190px; margin: 0 auto; }
	.site-footer__nav { margin-top: 19px; gap: 8px 25px; font-size: 13px; }
	.site-footer__nav a + a::before { left: -13px; }
	.site-footer__copy { margin-top: 18px; font-size: 12px; }

	.company-section + .company-section { margin-top: 42px; }
	.company-table { display: block; border: 0; }
	.company-table tbody, .company-table tr, .company-table th, .company-table td { display: block; width: 100%; }
	.entry__content .company-table th { padding: 10px 12px; border-bottom: 0; }
	.entry__content .company-table td { padding: 12px; }
	.company-business + .company-business { margin-top: 18px; }
	.company-access__map { margin-top: 16px; padding-top: 75%; border-radius: 10px; }
}

@media (max-width: 1024px) and (min-width: 700px) {
	/* タブレットは各セクションの上余白を60pxに統一(スマホは据え置き) */
	.worry, .reason, .strength, .price, .compare, .flow, .voice, .faq, .news { padding-top: 60px; padding-bottom: 60px; }
	.news__list { grid-template-columns: 1fr 1fr; gap: 20px; }
	.page-head__inner, .page-body__inner { padding-left: 32px; padding-right: 32px; }
	.entry { padding: 34px 34px 40px; }
	.page-cta__btns { grid-template-columns: repeat(2, minmax(0, 260px)); justify-content: center; }
	.worry__body { grid-template-columns: 1fr 1fr; }
	.worry__worker { grid-column: 1 / -1; }
	.cform__row { display: flex; }
	.cform__label { width: 200px; flex: none; margin: 12px 0 0; }
	.cform__field { flex: 1; }
}

/* =========================================================
   モーション
   html に .js-anim が付いているときだけ有効。
   JSが無効な場合・OSで「視差効果を減らす」を選んでいる場合は
   .js-anim が付かないため、すべて最初から表示された状態になります。
   ※ JS側(assets/js/main.js)の REVEAL と対になっています。
      対象を増やすときは両方に足してください。
   ========================================================= */
html.js-anim {
	--cm-ease: cubic-bezier(.22, .61, .36, 1);
	--cm-dur: .85s;
}

/* --- 下から出る ---
   ※ transform ではなく translate / scale(単独プロパティ)を使っています。
      元から傾き・反転が付いている要素の transform を壊さないためです。 */
html.js-anim .stat__head, html.js-anim .stat__big,
html.js-anim .worry__title, html.js-anim .worry__lead,
html.js-anim .solve__lead, html.js-anim .solve__main,
html.js-anim .rcard,
html.js-anim .strength__title, html.js-anim .sitem__label, html.js-anim .sitem__no,
html.js-anim .sitem__title, html.js-anim .sitem__text,
html.js-anim .price__title, html.js-anim .price__std li, html.js-anim .price__notes,
html.js-anim .compare__title, html.js-anim .compare__scroll,
html.js-anim .flow__title, html.js-anim .fstep,
html.js-anim .quick__label, html.js-anim .quick__iso, html.js-anim .quick__main,
html.js-anim .voice__title, html.js-anim .voice__lead, html.js-anim .vcard,
html.js-anim .faq__title, html.js-anim .faq__item,
html.js-anim .news__title, html.js-anim .news__lead, html.js-anim .ncard, html.js-anim .news__more,
html.js-anim .contact__title, html.js-anim .cform,
html.js-anim .page-head__title, html.js-anim .breadcrumb, html.js-anim .page-head__meta,
html.js-anim .entry, html.js-anim .entry__nav, html.js-anim .entry__back, html.js-anim .pagination,
html.js-anim .page-cta__lead, html.js-anim .page-cta__title, html.js-anim .page-cta__text, html.js-anim .page-cta__btns,
html.js-anim .mv__kensetsu, html.js-anim .mv__sub, html.js-anim .mv__brand, html.js-anim .mv__omakase,
html.js-anim .mv__price-label, html.js-anim .mv__price-num, html.js-anim .mv__btns, html.js-anim .mv__tagline {
	opacity: 0;
	translate: 0 30px;
	transition: opacity var(--cm-dur) var(--cm-ease), translate var(--cm-dur) var(--cm-ease), scale var(--cm-dur) var(--cm-ease);
}

/* --- 左右から出る --- */
html.js-anim .worry__box--biz, html.js-anim .strength__img--2, html.js-anim .contact__visual {
	opacity: 0;
	translate: -38px 0;
	transition: opacity var(--cm-dur) var(--cm-ease), translate var(--cm-dur) var(--cm-ease);
}
html.js-anim .worry__box--iso, html.js-anim .strength__img--1, html.js-anim .strength__img--3,
html.js-anim .voice__head-img, html.js-anim .faq__papers {
	opacity: 0;
	translate: 38px 0;
	transition: opacity var(--cm-dur) var(--cm-ease), translate var(--cm-dur) var(--cm-ease);
}

/* --- ふわっと拡大 --- */
html.js-anim .worry__worker, html.js-anim .faq__q-img, html.js-anim .mv__visual {
	opacity: 0;
	scale: .93;
	transition: opacity var(--cm-dur) var(--cm-ease), scale var(--cm-dur) var(--cm-ease);
}

/* --- 不透明度だけ --- */
html.js-anim .sec-label,
html.js-anim .mv__hand, html.js-anim .mv__arrow,
html.js-anim .price__card {
	opacity: 0;
	transition: opacity var(--cm-dur) var(--cm-ease);
}

html.js-anim .is-in { opacity: 1 !important; translate: none !important; scale: none !important; }

/* --- 黄緑のマーカーを左から引く --- */
html.js-anim .hl-box::before, html.js-anim .hl-under::before {
	clip-path: inset(-25% 100% -25% -25%);
	transition: clip-path .8s var(--cm-ease) .2s;
}
html.js-anim .hl-box.is-in::before, html.js-anim .hl-under.is-in::before { clip-path: inset(-25% -25% -25% -25%); }

/* --- 見出し横のラインを左から引く --- */
html.js-anim .sec-label::after { clip-path: inset(-100% 100% -100% 0); transition: clip-path .9s var(--cm-ease) .25s; }
html.js-anim .sec-label.is-in::after { clip-path: inset(-100% -10px -100% 0); }
html.js-anim .mv__hand-line { clip-path: inset(0 100% 0 0); transition: clip-path .7s var(--cm-ease) .5s; }
html.js-anim .mv__hand-line.is-in { clip-path: inset(0 0 0 0); }

/* --- 手書き線を描く --- */
html.js-anim .quick__swoosh path { stroke-dasharray: 900; stroke-dashoffset: 900; transition: stroke-dashoffset 1.2s var(--cm-ease) .25s; }
html.js-anim .contact__swoosh path { stroke-dasharray: 400; stroke-dashoffset: 400; transition: stroke-dashoffset 1s var(--cm-ease) .25s; }
html.js-anim .quick__swoosh.is-in path, html.js-anim .contact__swoosh.is-in path { stroke-dashoffset: 0; }

/* --- ISOの立体イラストをゆっくり上下させる --- */
@media (min-width: 1025px) {
	html.js-anim .mv__visual.is-in { animation: cm-float 7s ease-in-out 1.4s infinite; }
}
@keyframes cm-float {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-10px); }
}

/* --- カードのホバー --- */
.rcard, .fstep, .faq__item, .price__std li, .vcard {
	transition: transform .3s var(--cm-ease, ease), box-shadow .3s var(--cm-ease, ease), opacity var(--cm-dur, .85s) var(--cm-ease, ease);
}
@media (hover: hover) {
	.rcard:hover, .fstep:hover, .faq__item:hover { transform: translateY(-6px); box-shadow: 0 16px 34px rgba(30, 70, 130, .15); }
	.price__std li:hover { transform: translateY(-6px); box-shadow: 0 16px 30px rgba(0, 20, 60, .35); }
}

/* --- ヘッダー(スクロールしたら影) --- */
.site-header { transition: box-shadow .3s ease; }
.site-header.is-scrolled { box-shadow: 0 2px 16px rgba(10, 40, 90, .12); }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	* { transition: none !important; animation: none !important; }
}
