@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

/* ==========================================================
   ヘッダー(Figma: node 12-54 / 1920x80)
   ========================================================== */
.fp-header {
	position: sticky;
	top: 0;
	z-index: 100; /* スクロール追従。#body_wrap(z-index:1)内で本文より前面に */
	background: #fff;
	box-shadow: 0 2px 8px rgba(0, 0, 0, .08);
	font-family: "Noto Sans JP", sans-serif;
}
.fp-header__inner {
	display: flex;
	align-items: center;
	height: 80px;
	padding: 0 40px 0 20px;
}

/* ロゴ(画面幅に連動して縮小、ただし最低320px) */
.fp-header__logo {
	flex-shrink: 0;
}
.fp-header__logo a {
	display: block;
	line-height: 0;
}
.fp-header__logo img {
	width: clamp(320px, 21.5vw, 413px);
	height: auto;
}

/* グローバルナビ
   余白が空きスペースを使い切って伸縮する(文字は折り返さない・潰れない)。
   gap:8px が項目間の最低余白、max-width がデザイン(項目間63px)相当の上限 */
.fp-header__gnav {
	flex: 1 1 auto;
	display: flex;
	min-width: max-content;
	max-width: 886px;
	margin-left: clamp(24px, calc(100vw * 0.22 - 322.4px), 100px);
	margin-right: auto;
}
.fp-gnav {
	display: flex;
	flex: 1;
	flex-wrap: nowrap;
	justify-content: space-between;
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.fp-gnav a {
	position: relative;
	display: block;
	line-height: 80px;
	font-size: 16px;
	font-weight: 500;
	color: #000;
	text-decoration: none;
	white-space: nowrap;
}
.fp-gnav a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 55px;
	height: 4px;
	border-radius: 2px;
	background: linear-gradient(90deg, #de8a60 0%, #f0a369 18.75%, #f8c776 33.17%, #c8cd7b 47.36%, #76b78b 62.24%, #56a5c7 84.62%, #3e96cb 100%);
	opacity: 0;
	transition: opacity .25s;
}
.fp-gnav li.current-menu-item > a::after,
.fp-gnav li.current_page_item > a::after,
.fp-gnav a:hover::after {
	opacity: 1;
}

/* 電話番号・営業時間(gnavとの間に最低24pxの余白を保証) */
.fp-header__tel {
	flex-shrink: 0;
	margin-left: 24px;
}
.fp-header__telLink {
	display: flex;
	align-items: center;
	gap: 8px;
	text-decoration: none;
}
.fp-header__telLink img {
	width: 22px;
	height: 22px;
}
.fp-header__telNum {
	font-size: 22px;
	font-weight: 700;
	color: #000;
	line-height: 1.2;
}
.fp-header__hours {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 2px 0 0;
}
.fp-header__hoursLabel {
	background: #2fb6ee;
	color: #fff;
	font-size: 14px;
	line-height: 1.5;
	padding: 1px 8px;
	border-radius: 4px;
}
.fp-header__hoursTime {
	color: #2fb6ee;
	font-size: 16px;
	font-weight: 700;
}

/* お問い合わせボタン(左隣の要素との間に最低16pxの余白を保証) */
.fp-header__contact {
	flex-shrink: 0;
	margin-left: 16px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 189px;
	height: 60px;
	border-radius: 50px;
	background: linear-gradient(90deg, #f97901 0%, #fba712 100%);
	box-shadow: 0 4px 4px rgba(0, 0, 0, .25);
	color: #fff;
	font-size: 16px;
	font-weight: 700;
	text-decoration: none;
	transition: opacity .25s;
}
.fp-header__contact:hover {
	opacity: .85;
	color: #fff;
}

/* レスポンシブ(SPデザイン未支給のため暫定。SWELLのSP境界は959px)
   段階: 1380以下=電話非表示 → 1170以下=ボタン小型化 → 1110以下=ボタン非表示 */
@media (max-width: 1380px) {
	.fp-header__tel {
		display: none;
	}
}
@media (max-width: 1170px) {
	.fp-header__contact {
		width: auto;
		height: 48px;
		padding: 0 22px;
		font-size: 15px;
	}
}
@media (max-width: 1110px) {
	.fp-header__contact {
		display: none;
	}
	.fp-header__inner {
		padding-right: 24px;
	}
}
/* ==========================================================
   トップページ MV(Figma: node 2-2 内 12-84〜12-121 / 1920px基準)
   位置・サイズは 1920px デザインの px ÷ 19.2 = vw で等比スケール
   ========================================================== */
/* トップページはMVをヘッダー直下に密着させる
   (SWELLのインラインCSS「.top #content { padding-top: 4em }」より強くするためIDを含める) */
.home #content.l-content {
	padding-top: 0;
	padding-bottom: 0;
	margin-bottom: 0; /* SWELLの.l-content下余白(96px)を消し、グラデ帯とフッターを密着させる */
}
.fp-mv {
	position: relative;
	aspect-ratio: 1920 / 779;
	font-family: "Noto Serif JP", serif;
}
.fp-mv figure.wp-block-image {
	margin: 0;
}
.fp-mv__bg,
.fp-mv__photo {
	position: absolute;
}
.fp-mv__bg img,
.fp-mv__photo img {
	width: 100%;
	height: auto;
	display: block;
}
/* 虹色アーク(ヘッダー裏まで伸びるデザインのため上に-4.167vwはみ出す) */
.fp-mv__bg {
	top: -4.167vw;
	right: 0;
	width: 34.844vw;
	z-index: 0;
}
/* メイン写真 */
.fp-mv__photo {
	top: 4.115vw;
	left: 0;
	width: 74.167vw;
	z-index: 1;
}
/* キャッチコピー(グラデ帯の上にテキスト。帯はCSS背景なので文言は自由に編集可) */
.fp-mv__catch1,
.fp-mv__catch2,
.fp-mv__label {
	position: absolute;
	z-index: 2;
	margin: 0;
	color: #fff;
	font-weight: 700;
	white-space: nowrap;
	text-shadow: 0 4px 4px rgba(0, 0, 0, .25);
}
.fp-mv__catch1 {
	top: 10.99vw;
	right: 0;
	width: 37.448vw;
	height: 4.688vw;
	line-height: 4.688vw;
	font-size: 3.125vw;
	text-align: right;
	padding-right: 2.448vw;
	background: url(image/ribbon-1.webp) 0 0 / 100% 100% no-repeat;
}
.fp-mv__catch2 {
	top: 16.719vw;
	right: 0;
	width: 40.469vw;
	height: 4.688vw;
	line-height: 4.688vw;
	font-size: 3.125vw;
	text-align: right;
	padding-right: 2.448vw;
	background: url(image/ribbon-2.webp) 0 0 / 100% 100% no-repeat;
}
/* オレンジ帯 */
.fp-mv__label {
	top: 24.635vw;
	right: 1.563vw;
	width: 42.083vw;
	height: 4.688vw;
	line-height: 4.688vw;
	font-size: 2.396vw;
	text-align: center;
	background: url(image/ribbon-orange.webp) 0 0 / 100% 100% no-repeat;
}
/* 施工メニュー(4ピル) */
.fp-mv__menu {
	position: absolute;
	z-index: 2;
	top: 30.729vw;
	left: 55.677vw;
	flex-wrap: nowrap;
	gap: 0.521vw !important;
}
.fp-mv__menu .wp-block-button {
	margin: 0;
}
.fp-mv__menu .wp-block-button__link {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 9.375vw;
	height: 2.917vw;
	padding: 0;
	border-radius: 30px;
	background: #248fc6;
	color: #fff;
	font-family: "Noto Serif JP", serif;
	font-weight: 700;
	font-size: 1.302vw;
	line-height: 1;
	text-shadow: 0 2px 3px rgba(0, 0, 0, .25);
}

/* ==========================================================
   セクション見出し(Figma: 12-122 / 12-123 / 14-129)
   構成: 見出し(h2) → 虹色ライン(画像150×5) → 筆記体英字(画像)
   余白: MV下端→見出し281px、見出し→ライン29px、ライン→英字15px(1920px基準)
   ========================================================== */
.fp-secTitle {
	margin-top: 14.635vw; /* 281px */
	text-align: center;
}
.fp-secTitle .fp-secTitle__ja {
	margin: 0;
	padding: 0;
	background: none;
	border: none;
	font-family: "Noto Serif JP", serif;
	font-size: 2.083vw; /* 40px */
	font-weight: 700;
	line-height: 1.425; /* 高さ57px */
	color: #333;
}
/* SWELLの見出し装飾(::before/::afterで枠線等を描く)を無効化。
   装飾は見出しデザイン設定でセレクタが変わるため !important で確実に消す */
.fp-secTitle .fp-secTitle__ja::before,
.fp-secTitle .fp-secTitle__ja::after {
	content: none !important;
}
.fp-secTitle figure.fp-secTitle__line {
	width: 7.813vw; /* 150px */
	margin: 1.51vw auto 0; /* 見出し→ライン 29px */
}
.fp-secTitle figure.fp-secTitle__en {
	width: 6.146vw; /* 118px */
	margin: 0.781vw auto 0; /* ライン→英字 15px */
}
.fp-secTitle .fp-secTitle__line img,
.fp-secTitle .fp-secTitle__en img {
	width: 100%;
	height: auto;
	display: block;
}
/* SP時のみ有効になる改行 */
.fp-brSp {
	display: none;
}

/* セクション見出し: SP(Figma node 36-992 / 375px基準) */
@media (max-width: 959px) {
	.fp-brSp {
		display: inline;
	}
	.fp-secTitle {
		margin-top: 15.2vw; /* 57px */
	}
	.fp-secTitle .fp-secTitle__ja {
		font-size: 6.4vw; /* 24px */
	}
	.fp-secTitle figure.fp-secTitle__line {
		width: 40vw; /* 150px */
		margin-top: 4.533vw; /* 17px */
	}
	.fp-secTitle figure.fp-secTitle__en {
		width: 20.533vw; /* 77px */
		margin-top: 2.667vw; /* 10px */
	}
}

/* ==========================================================
   選ばれる理由カード1(Figma: 14-137/131/145/143/141/146/147/148/33-574)
   01装飾+白カード(タイトル/イラスト/本文/下部グラデバー)+写真+ボタン
   1920px基準: 見出し英字→01画像 44px、カードは左560px・写真は右にずらし重ね
   ========================================================== */
.fp-reason {
	position: relative;
	aspect-ratio: 1920 / 740;
	margin-top: 2.292vw; /* 44px */
}
.fp-reason figure.wp-block-image {
	margin: 0;
}
.fp-reason img {
	width: 100%;
	height: auto;
	display: block;
}
/* 01の装飾画像 */
.fp-reason__num {
	position: absolute;
	left: 21.875vw; /* 420px */
	top: 0;
	width: 4.844vw; /* 93px */
	z-index: 2;
}
/* 白カード(下部20pxはグラデーションバー。背景2層で描画) */
.fp-reason__card {
	position: absolute;
	left: 21.875vw; /* 420px */
	top: 2.917vw; /* 56px */
	width: 29.167vw; /* 560px */
	height: 30.938vw; /* 594px */
	border-radius: 1.042vw; /* 20px */
	background:
		linear-gradient(90deg, #f9b20d 0%, #2c9ee7 54.33%, #2cb043 100%) bottom / 100% 1.042vw no-repeat,
		#fff;
	box-shadow: 0 4px 15px rgba(0, 0, 0, .25);
	z-index: 1;
}
.fp-reason__card .fp-reason__title {
	position: absolute;
	top: 2.083vw; /* カード上端から40px */
	left: 0;
	right: 0;
	margin: 0;
	padding: 0;
	background: none;
	border: none;
	font-family: "Noto Serif JP", serif;
	font-size: 1.719vw; /* 33px */
	font-weight: 700;
	line-height: 1.424; /* 2行で94px */
	color: #238fc6;
}
.fp-reason__card .fp-reason__title::before,
.fp-reason__card .fp-reason__title::after {
	content: none !important;
}
.fp-reason__card figure.fp-reason__icon {
	position: absolute;
	top: 8.021vw; /* カード上端から154px */
	left: 50%;
	transform: translateX(-50%);
	width: 11.979vw; /* 230px */
}
.fp-reason__card .fp-reason__text {
	position: absolute;
	top: 21.042vw; /* カード上端から404px */
	left: 0;
	right: 0;
	margin: 0;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1.042vw; /* 20px */
	font-weight: 500;
	line-height: 1.563vw; /* 30px */
	color: #333;
}
/* 写真(角丸・影は書き出し画像に焼き込み済み。4pxの影余白ぶん左へ補正) */
/* z-index:0 で写真を白カード(z-index:1)の背面に。重なり部分は文字カードが手前になる。番号(z-index:2)はカード上に残る */
.fp-reason__photo {
	position: absolute;
	left: 48.75vw; /* 940px - 影余白4px */
	top: 7.604vw; /* 146px */
	width: 29.583vw; /* 560px + 影余白8px */
	z-index: 0;
}
/* 青グラデボタン */
.fp-reason__btn {
	position: absolute;
	left: 24.635vw; /* 473px */
	top: 34.948vw; /* 671px */
	z-index: 2;
}
.fp-reason__btn .wp-block-button {
	margin: 0;
}
.fp-reason__btn .wp-block-button__link {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 20.833vw; /* 400px */
	height: 3.594vw; /* 69px */
	padding: 0;
	border-radius: 50px;
	background: linear-gradient(90deg, #248fc6 0%, #2fb6ee 100%);
	color: #fff;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 500;
	font-size: 0.833vw; /* 16px */
	line-height: 1;
	transition: opacity .25s;
}
.fp-reason__btn .wp-block-button__link:hover {
	opacity: .85;
	color: #fff;
}
/* カード2(左右反転: カード右940px・写真左420px。写真は未支給のためグレー正方形+CSS角丸/影) */
.fp-reason--2 {
	margin-top: 5.729vw; /* 110px */
}
.fp-reason--2 .fp-reason__num {
	left: 48.958vw; /* 940px */
	width: 5.052vw; /* 97px */
}
.fp-reason--2 .fp-reason__card {
	left: 48.958vw; /* 940px */
}
.fp-reason--2 figure.fp-reason__photo {
	left: 21.875vw; /* 420px */
	width: 29.167vw; /* 560px */
}
.fp-reason--2 .fp-reason__photo img {
	border-radius: 1.042vw; /* 20px */
	box-shadow: 0 4px 4px rgba(0, 0, 0, .25);
}
/* カード3(カード左・写真右。本文6行のためカード高624px) */
.fp-reason--3 {
	margin-top: 5.729vw; /* 110px */
	aspect-ratio: 1920 / 742;
}
.fp-reason--3 .fp-reason__num {
	width: 5.156vw; /* 99px */
}
.fp-reason--3 .fp-reason__card {
	height: 32.5vw; /* 624px */
}
.fp-reason--3 figure.fp-reason__photo {
	left: 48.542vw; /* 936px - 影余白4px */
	top: 7.5vw; /* 144px */
	width: 29.792vw; /* 564px + 影余白8px */
}

/* ==========================================================
   テクスチャボタン(Figma: 113-2557「施工事例はこちら」等の共通スタイル)
   単色#2FB6EEの前面、#238FC6を右下7pxにずらした背面
   ========================================================== */
.fp-btnTex {
	justify-content: center;
	margin-top: 4.167vw; /* カード3下端→ボタン 80px */
}
.fp-btnTex .wp-block-button {
	margin: 0;
}
.fp-btnTex .wp-block-button__link {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 22.917vw; /* 440px */
	height: 3.958vw; /* 76px */
	padding: 0 0 0 3.125vw; /* テキスト中心をアイコンぶん右へ(+30px) */
	border-radius: 5px;
	background:
		url(image/btn-icon-roller.webp) left 16.8% center / 2.057vw auto no-repeat,
		#2fb6ee;
	box-shadow: 0.365vw 0.365vw 0 #238fc6; /* 右下7pxのずらし背面 */
	color: #fff;
	font-family: "Noto Serif JP", serif;
	font-weight: 700;
	font-size: 1.667vw; /* 32px */
	line-height: 1;
	transition: opacity .25s;
}
.fp-btnTex .wp-block-button__link:hover {
	opacity: .85;
	color: #fff;
}

/* 選ばれる理由カード1: SP(Figma node 36-992 / 375px基準) */
@media (max-width: 959px) {
	.fp-reason {
		aspect-ratio: 375 / 941;
		margin-top: 5.333vw; /* 20px */
	}
	.fp-reason__num {
		left: 2.667vw; /* 10px */
		width: 17.6vw; /* 66px */
	}
	.fp-reason__card {
		left: 2.667vw; /* 10px */
		top: 10.667vw; /* 40px */
		width: 94.667vw; /* 355px */
		height: 125.6vw; /* 471px */
		border-radius: 5.333vw; /* 20px */
		background:
			linear-gradient(90deg, #f9b20d 0%, #2c9ee7 54.33%, #2cb043 100%) bottom / 100% 5.333vw no-repeat,
			#fff;
	}
	.fp-reason__card .fp-reason__title {
		top: 13.333vw; /* 50px */
		font-size: 5.333vw; /* 20px */
	}
	.fp-reason__card figure.fp-reason__icon {
		top: 34.133vw; /* 128px */
		width: 40vw; /* 150px */
	}
	.fp-reason__card .fp-reason__text {
		top: 79.467vw; /* 298px */
		font-size: 3.733vw; /* 14px */
		line-height: 5.973vw; /* 22.4px */
	}
	.fp-reason__photo {
		left: 15.371vw; /* 60px - 影余白補正 */
		top: 130.933vw; /* 491px */
		width: 89.256vw; /* 330px + 影余白 */
	}
	.fp-reason__btn {
		left: 50%;
		transform: translateX(-50%);
		top: 234.933vw; /* 881px */
	}
	.fp-reason__btn .wp-block-button__link {
		width: 88vw; /* 330px */
		height: 16vw; /* 60px */
		font-size: 4.267vw; /* 16px */
	}
	/* カード2: SP(写真は左に-15pxはみ出す配置のためはみ出しを切り抜く) */
	.fp-reason--2 {
		margin-top: 10.667vw; /* 40px */
		aspect-ratio: 375 / 840;
		overflow: hidden;
	}
	.fp-reason--2 .fp-reason__num {
		left: 2.667vw; /* 10px */
		width: 18.4vw; /* 69px */
	}
	.fp-reason--2 .fp-reason__card {
		left: 2.667vw; /* 10px */
	}
	.fp-reason--2 figure.fp-reason__photo {
		left: -4vw; /* -15px */
		top: 130.667vw; /* 490px */
		width: 88vw; /* 330px */
	}
	.fp-reason--2 .fp-reason__photo img {
		border-radius: 5.333vw; /* 20px */
	}
	/* カード3: SP(本文6行のためカード高493px) */
	.fp-reason--3 {
		margin-top: 10.667vw; /* 40px */
		aspect-ratio: 375 / 863;
	}
	.fp-reason--3 .fp-reason__num {
		width: 18.667vw; /* 70px */
	}
	.fp-reason--3 .fp-reason__card {
		height: 131.467vw; /* 493px */
	}
	.fp-reason--3 figure.fp-reason__photo {
		left: 15.376vw; /* 60px - 影余白補正 */
		top: 136.8vw; /* 513px */
		width: 89.25vw; /* 330px + 影余白 */
	}
	/* テクスチャボタン: SP */
	.fp-btnTex {
		margin-top: 13.333vw; /* 50px */
	}
	.fp-btnTex .wp-block-button__link {
		width: 86.622vw; /* 324.8px */
		height: 14.651vw; /* 54.9px */
		padding-left: 14.9vw; /* テキスト中心を+28px右へ */
		border-radius: 4px;
		background:
			url(image/btn-icon-roller.webp) left 18.5% center / 10.667vw auto no-repeat,
			#2fb6ee;
		box-shadow: 1.379vw 1.379vw 0 #238fc6; /* 5.2px */
		font-size: 5.333vw; /* 20px */
	}
}

/* ==========================================================
   サービス内容セクション(Figma: 14-210〜14-405 ほか)
   背景: #F0FCFF の帯。上端はアーチ形状の画像(1920×80)、下端はフラット
   ========================================================== */
/* SWELLがグループに注入する内側コンテナ(記事幅900px)を全幅セクション内では無効化 */
.fp-mv > .wp-block-group__inner-container,
.fp-reason > .wp-block-group__inner-container,
.fp-service > .wp-block-group__inner-container,
.fp-works > .wp-block-group__inner-container,
.fp-painters > .wp-block-group__inner-container,
.fp-news > .wp-block-group__inner-container,
.fp-faq > .wp-block-group__inner-container,
.fp-cta > .wp-block-group__inner-container,
.fp-area > .wp-block-group__inner-container,
.fp-areaBox > .wp-block-group__inner-container {
	max-width: none;
	padding: 0;
	margin: 0;
}
.fp-service {
	margin-top: 6.615vw; /* ボタン下端→セクション上端 127px */
	margin-bottom: 0; /* 直後の施工事例セクションと密着させる(SWELLのブロック間余白を打ち消す) */
	/* 上エッジ画像(高さ4.166vw)の下から下端までを #F0FCFF で塗る */
	background: linear-gradient(#f0fcff, #f0fcff) 0 4.166vw / 100% calc(100% - 4.166vw) no-repeat;
}
/* 帯下端の山形エッジ(Figma: 20-762。中央960pxを頂点に白が立ち上がる) */
.fp-service figure.fp-service__edgeBottom {
	margin: 6.25vw 0 0; /* CTAボタン→帯下端 120px */
}
.fp-service__edgeBottom img {
	width: 100%;
	height: auto;
	display: block;
}
.fp-service figure.fp-service__edge {
	margin: 0;
}
.fp-service__edge img {
	width: 100%;
	height: auto;
	display: block;
}
/* 見出し(共通fp-secTitleの差分: 余白と文字サイズ) */
.fp-secTitle--service {
	margin-top: 2.083vw; /* エッジ下→見出し 40px */
}
.fp-secTitle--service .fp-secTitle__ja {
	font-size: 1.875vw; /* 36px */
	line-height: 1.444; /* 高さ52px */
}
.fp-secTitle--service figure.fp-secTitle__line {
	margin-top: 1.771vw; /* 34px */
}
.fp-secTitle--service figure.fp-secTitle__en {
	width: 5.104vw; /* 98px */
}
/* カード4枚(250×475、間隔27px) */
.fp-service__cards {
	width: 56.302vw; /* 1081px */
	margin: 3.125vw auto 0; /* 英字→カード 60px */
	gap: 1.406vw !important; /* 27px */
}
.fp-service__cards .fp-serviceCard {
	background: #fff;
	border-radius: 1.042vw; /* 20px */
	box-shadow: 0 4px 15px rgba(0, 0, 0, .25);
	height: 24.74vw; /* 475px */
	padding-top: 3.125vw; /* カード上端→見出し 60px(SWELLのfirst-childリセットを避けpadding側で確保) */
	position: relative;
	box-sizing: border-box;
}
.fp-serviceCard .fp-serviceCard__title {
	margin: 0;
	padding: 0;
	background: none;
	border: none;
	font-family: "Noto Serif JP", serif;
	font-size: 1.354vw; /* 26px */
	font-weight: 700;
	line-height: 1.427; /* 37px */
	color: #333;
}
.fp-serviceCard .fp-serviceCard__title::before,
.fp-serviceCard .fp-serviceCard__title::after {
	content: none !important;
}
.fp-serviceCard figure.fp-serviceCard__img {
	width: 6.146vw; /* 118px */
	margin: 2.083vw auto 0; /* 見出し→画像 40px */
}
.fp-serviceCard__img img {
	width: 100%;
	height: auto;
	display: block;
}
.fp-serviceCard .fp-serviceCard__text {
	margin: 1.042vw 0 0; /* 画像→本文 20px */
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.833vw; /* 16px */
	font-weight: 500;
	line-height: 1.563vw; /* 30px */
	color: #333;
}
.fp-serviceCard .fp-serviceCard__link {
	margin: 0.781vw 0 0; /* 本文→リンク 15px */
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.729vw; /* 14px */
	font-weight: 500;
	color: #333;
	text-decoration: underline;
	text-underline-offset: 3px;
}
/* モーダルを開くリンク(見た目は素のテキストのまま) */
.fp-serviceCard .fp-serviceCard__link a {
	color: inherit;
	text-decoration: inherit;
	text-underline-offset: inherit;
	cursor: pointer;
}
/* CTAテキスト */
.fp-service .fp-service__cta {
	margin: 3.125vw 0 0; /* カード→テキスト 60px */
	font-family: "Noto Serif JP", serif;
	font-size: 1.354vw; /* 26px */
	font-weight: 700;
	line-height: 1.423; /* 74px/2行 */
	color: #333;
}
/* PC時のみ有効になる改行 */
.fp-brPc {
	display: inline;
}
/* CTAボタン3本(335×50) */
.fp-service__btns {
	justify-content: center;
	margin-top: 3.125vw; /* テキスト→ボタン 60px */
	gap: 1.953vw !important; /* 37.5px */
}
.fp-service__btns .wp-block-button {
	margin: 0;
}
.fp-service__btns .wp-block-button__link {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 17.448vw; /* 335px */
	height: 2.604vw; /* 50px */
	padding: 0;
	border-radius: 50px;
	box-shadow: 0 4px 4px rgba(0, 0, 0, .25);
	color: #fff;
	font-family: "Noto Serif JP", serif;
	font-weight: 700;
	font-size: 0.938vw; /* 18px */
	line-height: 1;
	transition: opacity .25s;
}
.fp-service__btns .wp-block-button__link:hover {
	opacity: .85;
	color: #fff;
}
.fp-ctaForm .wp-block-button__link {
	background: linear-gradient(90deg, #f97901 0%, #fba712 100%);
}
.fp-ctaTel .wp-block-button__link {
	background: #2fb6ee;
}
.fp-ctaLine .wp-block-button__link {
	background: #1bab3f;
}

/* ==========================================================
   施工事例セクション(Figma: 14-315〜14-381, 20-728/762)
   白背景。見出し→カード3枚(ダミー)→もっとみるボタン
   ========================================================== */
.fp-works {
	margin-top: 0; /* 帯下端エッジ直後から始まる */
}
.fp-secTitle--works {
	margin-top: 0;
}
.fp-secTitle--works .fp-secTitle__ja {
	font-size: 1.875vw; /* 36px */
	line-height: 1.444; /* 52px */
}
.fp-secTitle--works figure.fp-secTitle__line {
	margin-top: 1.771vw; /* 34px */
}
.fp-secTitle--works figure.fp-secTitle__en {
	width: 4.948vw; /* 95px */
}
/* 施工事例が未公開の間の「現在準備中です」表示(トップ・カード領域の代わり) */
.fp-works__preparing {
	margin: 5vw 0 2vw;
	padding: 3vw 0;
	text-align: center;
	font-family: "Noto Sans JP", sans-serif;
	font-size: clamp(18px, 1.25vw, 24px);
	line-height: 1.8;
	color: #555;
}
/* カード3枚(335×441、間隔38px)。[fp_works_list]が出力する動的カード(カード全体が投稿へのリンク) */
.fp-works__cards {
	display: flex;
	justify-content: center;
	width: 56.302vw; /* 1081px */
	margin: 3.125vw auto 0; /* 英字→カード 60px */
	gap: 1.979vw; /* 38px */
}
.fp-works__cards .fp-worksCard {
	display: block;
	width: 17.448vw; /* 335px */
	background: #fff;
	border-radius: 1.042vw; /* 20px */
	box-shadow: 0 4px 4px rgba(0, 0, 0, .25);
	height: 22.969vw; /* 441px */
	overflow: hidden;
	color: inherit;
	text-decoration: none;
	transition: transform .25s, box-shadow .25s;
}
.fp-works__cards .fp-worksCard:hover {
	transform: translateY(-0.156vw);
	box-shadow: 0 6px 8px rgba(0, 0, 0, .25);
}
.fp-worksCard figure.fp-worksCard__img {
	margin: 0;
	width: 100%;
	height: 10.417vw; /* 200px */
	border-radius: 1.042vw 1.042vw 0 0;
	overflow: hidden;
}
.fp-worksCard__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.fp-worksCard .fp-worksCard__date {
	margin: 0.521vw 0.521vw 0; /* 画像→日付 10px、左右10px */
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.833vw; /* 16px */
	font-weight: 500;
	line-height: 1.563vw; /* 30px */
	color: #333;
}
/* カテゴリピル(色は実際のworks_catに応じて .fp-cat--slug で着色) */
.fp-worksCard .fp-worksCard__cats {
	display: flex;
	flex-wrap: wrap;
	margin: 0.26vw 0.521vw 0; /* 日付→ピル 5px */
	gap: 0.26vw 0.521vw; /* 行間5px 列間10px */
	max-height: 1.354vw; /* ピル1行(26px)まで。溢れる分は隠してカード下部の余白を確保 */
	overflow: hidden;
}
.fp-worksCard__cat {
	display: flex;
	align-items: center;
	height: 1.354vw; /* 26px */
	padding: 0 0.521vw; /* 10px */
	border-radius: 30px;
	background: #2fb6ee;
	color: #fff;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 500;
	font-size: 0.729vw; /* 14px */
	line-height: 1;
}
.fp-worksCard .fp-worksCard__title {
	margin: 1.042vw 0.521vw 0; /* ピル→タイトル 20px */
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.938vw; /* 18px */
	font-weight: 700;
	line-height: 1.5vw; /* 28.8px */
	color: #238fc6;
	/* 長い場合は2行で省略(…)し、カード下部の余白を確保 */
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	overflow: hidden;
}
.fp-worksCard .fp-worksCard__text {
	margin: 0 0.521vw;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.833vw; /* 16px */
	font-weight: 500;
	line-height: 1.563vw; /* 30px */
	color: #333;
	/* 長い場合は2行で省略(…) */
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	overflow: hidden;
}
/* もっとみるボタン(テキストが長いためアイコン・文字位置を調整) */
.fp-btnTex--more .wp-block-button__link {
	background-position: left 9.55% center, center;
	padding-left: 2.813vw; /* 54px */
}

/* ==========================================================
   塗魂ペインターズセクション(Figma: 26-495, 14-394/398/400/402/403)
   クリーム色(#FFFAF1)の帯。テキスト→ロゴバナー→写真3枚
   ========================================================== */
.fp-painters {
	margin-top: 5.417vw; /* もっとみるボタン→帯上端 104px */
	margin-bottom: 0;
	background: #fffaf1;
	padding: 4.792vw 0 8.594vw; /* 上92px / 下165px(クリームの右半分下端=写真+165px。お知らせ帯が80px重なる) */
}
.fp-painters .fp-painters__text {
	margin: 0;
	font-family: "Noto Serif JP", serif;
	font-size: 1.354vw; /* 26px */
	font-weight: 700;
	line-height: 1.423; /* 37px */
	color: #333;
}
.fp-painters figure.fp-painters__banner {
	width: 24.531vw; /* 471px */
	margin: 2.083vw auto 0; /* テキスト→バナー 40px */
}
.fp-painters__banner img {
	width: 100%;
	height: auto;
	display: block;
}
.fp-painters__photos {
	width: 56.302vw; /* 1081px */
	margin: 2.604vw auto 0; /* バナー→写真 50px */
	gap: 1.979vw !important; /* 38px */
}
.fp-painters figure.fp-painters__photo {
	margin: 0;
}
.fp-painters__photo img {
	width: 100%;
	height: 10.417vw; /* 200px */
	object-fit: cover;
	border-radius: 1.042vw; /* 20px */
	display: block;
}

/* ==========================================================
   お知らせセクション(Figma: 14-410〜14-469, 20-764/765)
   背景#F0FCFF。上端は左右で80pxずれた段違いエッジ
   (左半分は水色が80px上から、右半分はクリームが80px下まで残る)
   ========================================================== */
.fp-news {
	margin-top: -4.167vw; /* クリーム帯に80px重ねて段違いを作る */
	margin-bottom: 0;
	background:
		linear-gradient(#f0fcff, #f0fcff) left top / 50.05% 100% no-repeat,
		linear-gradient(#f0fcff, #f0fcff) right top 4.167vw / 50% calc(100% - 4.167vw) no-repeat;
	padding: 8.333vw 0 6.25vw; /* 上160px(段上端→見出し) / 下120px */
}
.fp-secTitle--news {
	margin-top: 0;
}
.fp-secTitle--news .fp-secTitle__ja {
	font-size: 1.875vw; /* 36px */
	line-height: 1.444; /* 52px */
}
.fp-secTitle--news figure.fp-secTitle__line {
	margin-top: 1.771vw; /* 34px */
}
.fp-secTitle--news figure.fp-secTitle__en {
	width: 8.854vw; /* 170px */
}
/* お知らせ行(1080×80の白ボックス) */
.fp-news .fp-newsRow {
	width: 56.25vw; /* 1080px */
	height: 4.167vw; /* 80px */
	margin: 1.042vw auto 0; /* 行間20px */
	background: #fff;
	border-radius: 1.042vw; /* 20px */
	box-shadow: 0 4px 4px rgba(0, 0, 0, .25);
	box-sizing: border-box;
	padding: 0.521vw 1.615vw 0; /* 上10px 左右31px */
}
.fp-news .fp-secTitle--news + .fp-newsRow {
	margin-top: 3.125vw; /* 英字→1行目 60px */
}
.fp-newsRow > .wp-block-group__inner-container,
.fp-news a.fp-newsRow {
	display: grid;
	grid-template-columns: 6.406vw 1fr; /* 日付列123px(タイトルはx154に) */
	grid-template-rows: 1.5vw 1.563vw; /* タイトル28.8px / 本文30px */
	max-width: none;
}
.fp-newsRow > .wp-block-group__inner-container {
	height: 100%;
	padding: 0;
	margin: 0;
}
/* 動的なお知らせ行([fp_news_list]の出力。行全体が記事へのリンク) */
.fp-news a.fp-newsRow {
	color: inherit;
	text-decoration: none;
	transition: transform .25s, box-shadow .25s;
}
.fp-news a.fp-newsRow:hover {
	transform: translateY(-0.156vw);
	box-shadow: 0 6px 8px rgba(0, 0, 0, .25);
}
.fp-newsRow .fp-newsRow__date {
	grid-column: 1;
	grid-row: 1 / span 2;
	align-self: center;
	margin: 0;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.833vw; /* 16px */
	font-weight: 500;
	line-height: 1.563vw;
	color: #333;
}
.fp-newsRow .fp-newsRow__title {
	grid-column: 2;
	grid-row: 1;
	margin: 0;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.938vw; /* 18px */
	font-weight: 700;
	line-height: 1.5vw; /* 28.8px */
	color: #238fc6;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.fp-newsRow .fp-newsRow__text {
	grid-column: 2;
	grid-row: 2;
	margin: 0;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.833vw; /* 16px */
	font-weight: 500;
	line-height: 1.563vw; /* 30px */
	color: #333;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
/* お知らせ一覧ボタン(緑#1BAB3F・335×50) */
.fp-newsBtn {
	justify-content: center;
	margin-top: 3.125vw; /* 行→ボタン 60px */
}
.fp-newsBtn .wp-block-button {
	margin: 0;
}
.fp-newsBtn .wp-block-button__link {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 17.448vw; /* 335px */
	height: 2.604vw; /* 50px */
	padding: 0;
	border-radius: 50px;
	background: #1bab3f;
	box-shadow: 0 4px 4px rgba(0, 0, 0, .25);
	color: #fff;
	font-family: "Noto Serif JP", serif;
	font-weight: 700;
	font-size: 0.938vw; /* 18px */
	line-height: 1;
	transition: opacity .25s;
}
.fp-newsBtn .wp-block-button__link:hover {
	opacity: .85;
	color: #fff;
}

/* お知らせ: SP(行は縦積みカード) */
@media (max-width: 959px) {
	.fp-news {
		margin-top: -8vw; /* 30px */
		background:
			linear-gradient(#f0fcff, #f0fcff) left top / 50.05% 100% no-repeat,
			linear-gradient(#f0fcff, #f0fcff) right top 8vw / 50% calc(100% - 8vw) no-repeat;
		padding: 18vw 0 12vw;
	}
	.fp-secTitle--news .fp-secTitle__ja {
		font-size: 6.4vw; /* 24px */
	}
	.fp-secTitle--news figure.fp-secTitle__en {
		width: 29.6vw; /* 111px */
	}
	.fp-news .fp-newsRow {
		width: 88vw; /* 330px */
		height: auto;
		margin: 4vw auto 0; /* 行間15px */
		border-radius: 5.333vw; /* 20px */
		padding: 4vw 4.8vw; /* 15px 18px */
	}
	.fp-news .fp-secTitle--news + .fp-newsRow {
		margin-top: 8vw; /* 30px */
	}
	.fp-newsRow > .wp-block-group__inner-container,
	.fp-news a.fp-newsRow {
		display: block; /* 縦積み */
	}
	.fp-newsRow .fp-newsRow__date {
		font-size: 4.267vw; /* 16px */
		line-height: 8vw; /* 30px */
	}
	.fp-newsRow .fp-newsRow__title {
		font-size: 4.8vw; /* 18px */
		line-height: 7.68vw; /* 28.8px */
		white-space: normal;
	}
	.fp-newsRow .fp-newsRow__text {
		font-size: 4.267vw; /* 16px */
		line-height: 8vw; /* 30px */
		white-space: normal;
	}
	.fp-newsBtn {
		margin-top: 8.533vw; /* 32px */
	}
	.fp-newsBtn .wp-block-button__link {
		width: 88vw; /* 330px */
		height: 16vw; /* 60px */
		font-size: 5.333vw; /* 20px */
	}
}

/* ==========================================================
   よくある質問セクション(Figma: 14-472〜14-513)
   白背景。アコーディオンはコアの詳細ブロック(details/summary)。
   Q円・A円・開閉の±はデザイン上の要素なので疑似要素で描く
   ========================================================== */
.fp-faq {
	margin-top: 0;
	margin-bottom: 0;
	padding: 6.25vw 0; /* 上下120px(お知らせ帯下端→タイトル/ボタン→次セクション) */
}
.fp-faq .fp-faq__title {
	margin: 0;
	padding: 0;
	background: none;
	border: none;
	font-family: "Noto Serif JP", serif;
	font-size: 1.875vw; /* 36px */
	font-weight: 700;
	line-height: 1.444; /* 52px */
	color: #333;
}
.fp-faq .fp-faq__title::before,
.fp-faq .fp-faq__title::after {
	content: none !important;
}
.fp-faq .fp-faq__lead {
	margin: 3.854vw 0 0; /* タイトル→リード 74px */
	font-family: "Noto Serif JP", serif;
	font-size: 1.354vw; /* 26px */
	font-weight: 700;
	line-height: 1.423; /* 37px */
	color: #333;
}
/* 質問1件 = 詳細ブロック */
.fp-faq .fp-faqItem {
	width: 56.25vw; /* 1080px */
	margin: 1.042vw auto 0; /* 行間20px */
	padding: 0;
}
.fp-faq .fp-faq__lead + .fp-faqItem {
	margin-top: 3.125vw; /* リード→1行目 60px */
}
.fp-faqItem > summary {
	position: relative;
	display: flex;
	align-items: center;
	box-sizing: border-box;
	height: 4.167vw; /* 80px */
	padding: 0 4.167vw 0 4.427vw; /* 左85px(Q円ぶん) 右80px(±ぶん) */
	background: #fff;
	border-radius: 1.042vw; /* 20px */
	box-shadow: 0 4px 15px rgba(0, 0, 0, .25);
	cursor: pointer;
	list-style: none;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.938vw; /* 18px */
	font-weight: 700;
	line-height: 1.5vw; /* 28.8px */
	color: #238fc6;
}
.fp-faqItem > summary::-webkit-details-marker {
	display: none;
}
/* Q円(単色 #238FC6) */
.fp-faqItem > summary::before {
	content: "Q";
	position: absolute;
	left: 0.781vw; /* 15px */
	top: 0.625vw; /* 12px */
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.865vw; /* 55px */
	height: 2.865vw;
	border-radius: 50%;
	background: #238fc6;
	color: #fff;
	font-size: 1.302vw; /* 25px */
	line-height: 1;
}
/* 開閉インジケータ(閉=＋ / 開=−) */
.fp-faqItem > summary::after {
	content: "＋";
	position: absolute;
	right: 2.083vw; /* 右端から40px */
	top: 50%;
	transform: translateY(-50%);
	font-size: 1.458vw; /* 28px */
	line-height: 1;
	color: #238fc6;
}
.fp-faqItem[open] > summary::after {
	content: "−";
}
/* 回答(バーの外・セクション背景上に表示) */
.fp-faqItem .fp-faqItem__a {
	position: relative;
	margin: 1.667vw 0 0; /* バー下端→回答 32px */
	padding: 0 5.677vw 0 4.427vw; /* 左85px(A円ぶん) 右109px */
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.833vw; /* 16px */
	font-weight: 500;
	line-height: 1.563vw; /* 30px */
	color: #333;
}
/* A円(オレンジの横グラデ) */
.fp-faqItem .fp-faqItem__a::before {
	content: "A";
	position: absolute;
	left: 0.781vw; /* 15px */
	top: -0.625vw; /* 円上端は回答文より12px上 */
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.865vw; /* 55px */
	height: 2.865vw;
	border-radius: 50%;
	background: linear-gradient(90deg, #f97901, #fba712);
	color: #fff;
	font-size: 1.302vw; /* 25px */
	font-weight: 700;
	line-height: 1;
}
/* その他のご質問はこちらボタン(オレンジグラデ・335×50) */
.fp-faqBtn {
	justify-content: center;
	margin-top: 3.125vw; /* 行→ボタン 60px */
}
.fp-faqBtn .wp-block-button {
	margin: 0;
}
.fp-faqBtn .wp-block-button__link {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 17.448vw; /* 335px */
	height: 2.604vw; /* 50px */
	padding: 0;
	border-radius: 50px;
	background: linear-gradient(90deg, #f97901, #fba712);
	box-shadow: 0 4px 4px rgba(0, 0, 0, .25);
	color: #fff;
	font-family: "Noto Serif JP", serif;
	font-weight: 700;
	font-size: 0.938vw; /* 18px */
	line-height: 1;
	transition: opacity .25s;
}
.fp-faqBtn .wp-block-button__link:hover {
	opacity: .85;
	color: #fff;
}

/* よくある質問: SP(Q円はバー上中央にはみ出し、A円は回答文の上中央) */
@media (max-width: 959px) {
	.fp-faq {
		padding: 27.733vw 0 16vw; /* 上104px 下60px */
	}
	.fp-faq .fp-faq__title {
		font-size: 5.333vw; /* 20px */
	}
	.fp-faq .fp-faq__lead {
		margin-top: 8vw; /* 30px */
		font-size: 4.8vw; /* 18px */
		line-height: 6.933vw; /* 26px */
	}
	.fp-faq .fp-faqItem,
	.fp-faq .fp-faq__lead + .fp-faqItem {
		width: 88vw; /* 330px */
		margin: 16.8vw auto 0; /* 63px(うち33pxはQ円のはみ出しぶん) */
	}
	.fp-faqItem > summary {
		height: 20.8vw; /* 78px */
		padding: 3.2vw 9.6vw 0 5.333vw; /* 文字を中央より6px下げる(Q円が上に食い込むため) */
		border-radius: 5.333vw; /* 20px */
		font-size: 3.733vw; /* 14px */
		line-height: 6.827vw; /* 25.6px */
	}
	.fp-faqItem > summary::before {
		left: 50%;
		top: -8.8vw; /* 33px上にはみ出す */
		transform: translateX(-50%);
		width: 14.667vw; /* 55px */
		height: 14.667vw;
		font-size: 6.667vw; /* 25px */
	}
	.fp-faqItem > summary::after {
		right: 2.4vw; /* 9px */
		font-size: 7.467vw; /* 28px */
	}
	.fp-faqItem .fp-faqItem__a {
		margin-top: 4vw; /* バー下端→A円 15px */
		padding: 0 5.333vw; /* 20px */
		font-size: 3.733vw; /* 14px */
		line-height: 5.973vw; /* 22.4px */
	}
	.fp-faqItem .fp-faqItem__a::before {
		position: static;
		margin: 0 auto 2.667vw; /* A円→本文 10px */
		width: 14.667vw;
		height: 14.667vw;
		font-size: 6.667vw;
	}
	.fp-faqBtn {
		margin-top: 10.667vw; /* 40px */
	}
	.fp-faqBtn .wp-block-button__link {
		width: 88vw; /* 330px */
		height: 16vw; /* 60px */
		font-size: 5.333vw; /* 20px */
	}
}

/* ==========================================================
   フッター前ウィジェットエリア
   CTA+施工エリアはブログパーツ(管理画面>ブログパーツ)にあり、
   before_footer ウィジェットのショートコードで全ページに表示される。
   SWELLのラッパー(幅制限・余白)をここで無効化する
   ========================================================== */
#before_footer_widget {
	margin: 0;
	padding: 0;
}
#before_footer_widget > .l-container {
	max-width: none;
	padding: 0;
}
#before_footer_widget .c-widget,
#before_footer_widget .p-blogParts {
	margin: 0;
}

/* ==========================================================
   お見積り案内(お問い合わせCTA)セクション(Figma: 14-503〜14-543, 105-2291)
   背景は横3色グラデ帯(黄→青→緑)。白ボックス×3(Web/電話/LINE)
   ※グラデ帯は次の施工エリアセクションまで続く(横グラデなので
     同じ background を並べれば継ぎ目なくつながる)
   ========================================================== */
.fp-cta {
	margin-top: 0;
	margin-bottom: 0;
	background: linear-gradient(90deg, #f9b20d 0%, #2c9ee7 54.327%, #2cb043 100%);
	padding: 3.125vw 0 0; /* 上60px(FAQ下端→タイトル)。下の余白は施工エリア側で管理 */
}
.fp-cta .fp-cta__title {
	margin: 0;
	padding: 0;
	background: none;
	border: none;
	font-family: "Noto Serif JP", serif;
	font-size: 2.083vw; /* 40px */
	font-weight: 700;
	line-height: 1.425; /* 57px(2行で114px) */
	color: #fff;
}
.fp-cta .fp-cta__title::before,
.fp-cta .fp-cta__title::after {
	content: none !important;
}
/* ボックス3つ(各335×200・角丸20・枠5px) */
.fp-cta .wp-block-columns.fp-cta__boxes {
	width: 56.302vw; /* 1081px */
	margin: 4.063vw auto 0; /* タイトル→ボックス 78px */
	gap: 1.979vw !important; /* 38px */
}
.fp-cta__boxes .fp-ctaBox {
	flex: 0 0 17.448vw !important; /* 335px */
	box-sizing: border-box;
	height: 10.417vw; /* 200px */
	border-radius: 1.042vw; /* 20px */
	background: #fff;
	padding-top: 0.938vw; /* 枠込みで上から23px(先頭要素のmargin-topはSWELLがリセットするためpaddingで) */
}
.fp-cta__boxes .fp-ctaBox--web {
	/* 枠だけオレンジグラデにする(padding-box/border-boxの2層背景) */
	border: 0.26vw solid transparent; /* 5px */
	background:
		linear-gradient(#fff, #fff) padding-box,
		linear-gradient(90deg, #f97901, #fba712) border-box;
}
.fp-cta__boxes .fp-ctaBox--tel {
	border: 0.26vw solid #248fc6;
}
.fp-cta__boxes .fp-ctaBox--line {
	border: 0.26vw solid #1bab3f;
}
.fp-ctaBox .fp-ctaBox__title {
	margin: 0;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.938vw; /* 18px */
	font-weight: 700;
	line-height: 1.5vw; /* 28.8px */
}
.fp-ctaBox--web .fp-ctaBox__title { color: #f97a02; }
.fp-ctaBox--tel .fp-ctaBox__title { color: #238fc6; }
.fp-ctaBox--line .fp-ctaBox__title { color: #1bab3f; }
/* ボックス内ボタン(300×50) */
.fp-ctaBox .fp-ctaBox__btn {
	justify-content: center;
	margin: 1.042vw 0 0; /* 上20px(下はSWELLのブロック余白を打ち消す) */
}
.fp-ctaBox .fp-ctaBox__btn .wp-block-button {
	margin: 0;
}
.fp-ctaBox .fp-ctaBox__btn .wp-block-button__link {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 15.625vw; /* 300px */
	height: 2.604vw; /* 50px */
	padding: 0;
	border-radius: 50px;
	box-shadow: 0 4px 4px rgba(0, 0, 0, .25);
	color: #fff;
	font-family: "Noto Serif JP", serif;
	font-weight: 700;
	font-size: 0.833vw; /* 16px */
	line-height: 1;
	transition: opacity .25s;
}
.fp-ctaBox .fp-ctaBox__btn .wp-block-button__link:hover {
	opacity: .85;
	color: #fff;
}
.fp-ctaBox--web .fp-ctaBox__btn .wp-block-button__link {
	background: linear-gradient(90deg, #f97901, #fba712);
	gap: 0.521vw; /* アイコン→文字 10px */
}
.fp-ctaBox--web .fp-ctaBox__btn .wp-block-button__link::before {
	content: "";
	width: 1.302vw; /* 25px */
	height: 1.042vw; /* 20px */
	background: url(image/btn-icon-mail.webp) center / contain no-repeat;
}
.fp-ctaBox--tel .fp-ctaBox__btn .wp-block-button__link {
	background: linear-gradient(90deg, #248fc6, #2fb6ee);
	gap: 0.885vw; /* 17px */
}
.fp-ctaBox--tel .fp-ctaBox__btn .wp-block-button__link::before {
	content: "";
	width: 1.25vw; /* 24px */
	height: 1.25vw;
	background: url(image/btn-icon-tel.webp) center / contain no-repeat;
}
.fp-ctaBox--line .fp-ctaBox__btn .wp-block-button__link {
	background: #1bab3f;
}
/* ボタン下の注記 */
.fp-ctaBox .fp-ctaBox__note {
	margin: 1.042vw 0 0; /* 20px */
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.938vw; /* 18px */
	font-weight: 700;
	line-height: 1.5vw; /* 28.8px */
	color: #333;
}

/* お見積り案内: SP(ボックスは縦積み。Web/LINEの注記は非表示) */
@media (max-width: 959px) {
	.fp-cta {
		padding: 16.267vw 0 0; /* 上61px。下の余白は施工エリア側で管理 */
	}
	.fp-cta .fp-cta__title {
		/* SPデザインは18pxだがPC版の文言(「まずは、」入り)を1行に収めるため15px */
		font-size: 4vw; /* 15px */
		line-height: 1.45;
	}
	.fp-cta .wp-block-columns.fp-cta__boxes {
		width: 88vw; /* 330px */
		margin-top: 16vw; /* 60px */
		flex-wrap: wrap !important;
		gap: 5.333vw !important; /* 20px */
	}
	.fp-cta__boxes .fp-ctaBox {
		flex: 0 0 100% !important;
		height: auto;
		border-radius: 5.333vw; /* 20px */
		border-width: 1.333vw; /* 5px */
		padding-top: 4.8vw; /* 枠込みで上から23px */
		padding-bottom: 6.667vw; /* 25px */
	}
	.fp-cta__boxes .fp-ctaBox--line {
		margin-top: -1.333vw !important; /* 電話→LINE間はデザインでは15px(ギャップ20-5) */
	}
	.fp-ctaBox .fp-ctaBox__title {
		font-size: 4.8vw; /* 18px */
		line-height: 7.68vw; /* 28.8px */
	}
	.fp-ctaBox .fp-ctaBox__btn {
		margin-top: 5.333vw; /* 20px */
	}
	.fp-ctaBox .fp-ctaBox__btn .wp-block-button__link {
		width: 80vw; /* 300px */
		height: 16vw; /* 60px */
		font-size: 4.267vw; /* 16px */
	}
	.fp-ctaBox--web .fp-ctaBox__btn .wp-block-button__link {
		gap: 2.667vw; /* 10px */
	}
	.fp-ctaBox--web .fp-ctaBox__btn .wp-block-button__link::before {
		width: 6.667vw; /* 25px */
		height: 5.333vw; /* 20px */
	}
	.fp-ctaBox--tel .fp-ctaBox__btn .wp-block-button__link {
		gap: 4.533vw; /* 17px */
	}
	.fp-ctaBox--tel .fp-ctaBox__btn .wp-block-button__link::before {
		width: 6.4vw; /* 24px */
		height: 6.4vw;
	}
	.fp-ctaBox .fp-ctaBox__note {
		margin-top: 1.867vw; /* 7px */
		font-size: 4.8vw; /* 18px */
		line-height: 7.68vw;
	}
	/* SPデザインでは電話の営業時間のみ表示 */
	.fp-ctaBox--web .fp-ctaBox__note,
	.fp-ctaBox--line .fp-ctaBox__note {
		display: none;
	}
}

/* ==========================================================
   施工エリアセクション(Figma: 14-548/549/550/552, 64-5628)
   お見積り案内と同じ横グラデ帯の続き。白ボックス(オレンジ枠)+
   オレンジグラデの見出しタブ(PCではボックス上端から24pxはみ出す)
   ========================================================== */
.fp-area {
	margin-top: 0;
	margin-bottom: 0;
	background: linear-gradient(90deg, #f9b20d 0%, #2c9ee7 54.327%, #2cb043 100%);
	/* 上84px = CTAボックス→タブ60px + タブのはみ出し24px(先頭要素のmargin-topは
	   SWELLがリセットするためpadding側に含める) / 下63px(ボックス→帯下端) */
	padding: 4.375vw 0 3.281vw;
}
.fp-area .fp-areaBox {
	position: relative;
	box-sizing: border-box;
	width: 56.25vw; /* 1080px */
	height: 21.719vw; /* 417px */
	margin: 0 auto;
	background: #fff;
	border: 0.26vw solid #f97901; /* 5px */
	border-radius: 1.042vw; /* 20px */
}
/* 見出しタブ(1080×76・上角丸のみ。ボックス上端の枠を覆う) */
.fp-areaBox .fp-areaBox__title {
	position: absolute;
	top: -1.51vw; /* -29px(枠5px+はみ出し24px) */
	left: -0.26vw;
	right: -0.26vw;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 3.958vw; /* 76px */
	margin: 0;
	padding: 0;
	border: none;
	border-radius: 1.042vw 1.042vw 0 0;
	background: linear-gradient(90deg, #f97901, #fba712);
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1.354vw; /* 26px */
	font-weight: 700;
	line-height: 1;
	color: #fff;
}
.fp-areaBox .fp-areaBox__title::before,
.fp-areaBox .fp-areaBox__title::after {
	content: none !important;
}
.fp-areaBox .fp-areaBox__text {
	width: 24.635vw; /* 473px(この幅で折り返して5行になる) */
	margin: 5.052vw 0 0 2.344vw; /* タブ下50px(枠内上から97px) / 左45px */
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1.094vw; /* 21px */
	font-weight: 700;
	line-height: 1.833vw; /* 35.2px */
	color: #333;
}
/* 地図イラスト(右側に配置) */
.fp-areaBox figure.fp-areaBox__map {
	position: absolute;
	top: 3.012vw; /* 57.8px */
	left: 31.25vw; /* 600px */
	width: 20.885vw; /* 401px */
	margin: 0;
}
.fp-areaBox .fp-areaBox__map img {
	width: 100%;
	height: auto;
	display: block;
}

/* 施工エリア: SP(タブはボックス上端フラッシュ。文→地図の縦積み) */
@media (max-width: 959px) {
	.fp-area {
		padding: 16.8vw 0 15.733vw; /* 上63px / 下59px */
	}
	.fp-area .fp-areaBox {
		width: 88vw; /* 330px */
		height: auto;
		margin-top: 0;
		border-width: 1.333vw; /* 5px */
		border-radius: 5.333vw; /* 20px */
		padding-bottom: 13.067vw; /* 49px */
	}
	.fp-areaBox .fp-areaBox__title {
		top: -1.333vw; /* 枠ぶんだけ(はみ出しなし) */
		left: -1.333vw;
		right: -1.333vw;
		height: 20.267vw; /* 76px */
		border-radius: 5.333vw 5.333vw 0 0;
		font-size: 6.933vw; /* 26px */
	}
	.fp-areaBox .fp-areaBox__text {
		width: auto;
		margin: 24.267vw 5.333vw 0; /* タブ下20px(枠内上から91px) / 左右20px */
		font-size: 3.733vw; /* 14px */
		line-height: 6.827vw; /* 25.6px */
	}
	.fp-areaBox figure.fp-areaBox__map {
		position: static;
		width: 74.933vw; /* 281px */
		margin: 7.2vw auto 0; /* 文→地図 27px */
	}
}

/* ==========================================================
   フッター(Figma: Component 14 の 20-570〜20-644, 103-2171)
   親の parts/footer/footer_contents.php を子テーマで上書き。
   背景 #434343。左: 白ロゴ+住所表+ボタン / 右: 地図写真+アクセス
   ========================================================== */
.l-footer {
	background: #434343;
	color: #fff;
	margin-top: 0;
}
.fp-footer {
	padding: 2.656vw 0 0.781vw; /* 上51px / 下15px */
	font-family: "Noto Sans JP", sans-serif;
}
.fp-footer__inner {
	display: flex;
	justify-content: space-between;
	width: 56.25vw; /* 1080px */
	margin: 0 auto;
}
.fp-footer__left {
	width: 26.354vw; /* 506px */
}
.fp-footer .fp-footer__logo {
	width: 8.438vw; /* 162px */
	margin: 0;
}
.fp-footer .fp-footer__map {
	margin: 0;
	height: 21.25vw; /* 408px(Googleマップ埋め込みのため高さを明示) */
}
.fp-footer__logo img {
	width: 100%;
	height: auto;
	display: block;
}
.fp-footer__map iframe {
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
}
/* 住所表(ラベル列48px+縦罫線+本文) */
.fp-footer__info {
	position: relative;
	margin: 1.771vw 0 0; /* ロゴ→表 34px */
}
.fp-footer__info::before {
	content: "";
	position: absolute;
	left: 3.281vw; /* 63px */
	top: 0;
	bottom: 0;
	width: 1px;
	background: #fff;
}
.fp-footer__row {
	display: grid;
	grid-template-columns: 2.5vw 1fr; /* ラベル48px */
	column-gap: 1.406vw; /* 27px(罫線を挟む) */
	font-size: 0.833vw; /* 16px */
	font-weight: 400;
	line-height: 1.083vw; /* 20.8px */
	color: #fff;
}
.fp-footer__row + .fp-footer__row {
	margin-top: 0.646vw; /* 12.4px */
}
.fp-footer__row:nth-child(3) {
	margin-top: 0.854vw; /* 16.4px */
}
.fp-footer__row dt {
	text-align: right;
	font-weight: 400;
}
.fp-footer__row dd {
	margin: 0;
}
.fp-footer__note {
	font-size: 0.729vw; /* 14px */
}
/* お問い合わせフォームボタン(オレンジグラデ 335×50) */
.fp-footer .fp-footer__btn {
	margin: 1.563vw 0 0 3.646vw; /* 表→ボタン30px / 左70px */
}
.fp-footer__btn a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 17.448vw; /* 335px */
	height: 2.604vw; /* 50px */
	border-radius: 50px;
	background: linear-gradient(90deg, #f97901, #fba712);
	box-shadow: 0 4px 2px rgba(0, 0, 0, .25);
	color: #fff;
	font-family: "Noto Serif JP", serif;
	font-weight: 700;
	font-size: 0.938vw; /* 18px */
	line-height: 1;
	text-decoration: none;
	transition: opacity .25s;
}
.fp-footer__btn a:hover {
	opacity: .85;
	color: #fff;
}
.fp-footer__btn a::before { /* メールアイコン(SPのみ表示) */
	content: "";
	display: none;
	width: 6.667vw;
	height: 5.333vw;
	margin-right: 2.667vw;
	background: url(image/btn-icon-mail.webp) center / contain no-repeat;
}
/* 右カラム: 地図写真+アクセス */
.fp-footer__right {
	width: 26.563vw; /* 510px */
}
.fp-footer .fp-footer__access {
	margin: 0.781vw 0 0; /* 写真→テキスト 15px */
	font-size: 0.833vw; /* 16px */
	line-height: 0.99vw; /* 19px */
	color: #fff;
}
/* 下部中央 */
.fp-footer .fp-footer__privacy {
	margin: 4.583vw 0 0; /* 88px */
	text-align: center;
}
.fp-footer__privacy a {
	color: #fff;
	font-size: 0.833vw; /* 16px */
	text-decoration: none;
}
.fp-footer__privacy a:hover {
	color: #fff;
	text-decoration: underline;
}
.fp-footer .fp-footer__copyright {
	margin: 1.771vw 0 0; /* 34px */
	text-align: center;
	font-size: 0.625vw; /* 12px */
	color: #fff;
}

/* フッター: SP(縦積み。地図は縦長トリミング) */
@media (max-width: 959px) {
	.fp-footer {
		padding: 11.733vw 0 11.467vw; /* 上44px / 下43px */
	}
	.fp-footer__inner {
		display: block;
		width: auto;
		padding: 0 4.533vw; /* 17px */
	}
	.fp-footer__left,
	.fp-footer__right {
		width: auto;
	}
	.fp-footer .fp-footer__logo {
		width: 43.2vw; /* 162px */
	}
	.fp-footer__info {
		margin-top: 5.6vw; /* 21px */
	}
	.fp-footer__info::before {
		left: 16.8vw; /* 63px */
	}
	.fp-footer__row {
		grid-template-columns: 12.8vw 1fr; /* 48px */
		column-gap: 7.2vw; /* 27px */
		font-size: 3.733vw; /* 14px */
		line-height: 5.2vw; /* 19.5px */
	}
	.fp-footer__row + .fp-footer__row,
	.fp-footer__row:nth-child(3) {
		margin-top: 4vw; /* 15px */
	}
	.fp-footer__note {
		font-size: 3.2vw; /* 12px */
	}
	.fp-footer .fp-footer__btn {
		display: flex;
		justify-content: center;
		margin: 5.333vw 0 0; /* 20px */
	}
	.fp-footer__btn a {
		width: 80vw; /* 300px */
		height: 16vw; /* 60px */
		font-size: 4.267vw; /* 16px */
	}
	.fp-footer__btn a::before {
		display: block; /* SPはメールアイコン付き */
	}
	.fp-footer .fp-footer__map {
		width: 88.8vw; /* 333px */
		height: 109.333vw; /* 410px(SPデザインは縦長) */
		margin: 7.467vw auto 0; /* ボタン→地図 28px */
	}
	.fp-footer .fp-footer__access {
		width: 88.8vw;
		margin: 5.6vw auto 0; /* 21px */
		font-size: 3.733vw; /* 14px */
		line-height: 5.067vw; /* 19px */
	}
	.fp-footer .fp-footer__privacy {
		margin-top: 9.333vw; /* 35px */
	}
	.fp-footer__privacy a {
		font-size: 4.267vw; /* 16px */
	}
	.fp-footer .fp-footer__copyright {
		margin-top: 9.067vw; /* 34px */
		font-size: 3.2vw; /* 12px */
	}
}

/* 塗魂ペインターズ: SP(写真は大1枚+小2枚) */
@media (max-width: 959px) {
	.fp-painters {
		margin-top: 13.333vw; /* 50px */
		padding: 16vw 0 20vw; /* 上60px / 下75px */
	}
	.fp-painters .fp-painters__text {
		font-size: 5.333vw; /* 20px */
		line-height: 1.5;
	}
	.fp-painters figure.fp-painters__banner {
		width: 88vw; /* 330px */
		margin-top: 10.667vw; /* 40px */
	}
	.fp-painters .wp-block-columns.fp-painters__photos {
		width: 88vw;
		margin-top: 10.667vw; /* 40px */
		flex-wrap: wrap !important;
		gap: 4vw !important; /* 15px */
	}
	.fp-painters__photos .wp-block-column:nth-child(1) {
		flex: 0 0 100% !important;
	}
	.fp-painters__photos .wp-block-column:nth-child(2),
	.fp-painters__photos .wp-block-column:nth-child(3) {
		flex: 0 0 calc(50% - 2vw) !important;
	}
	.fp-painters__photos .wp-block-column:nth-child(1) .fp-painters__photo img {
		height: 52.8vw; /* 198px */
		border-radius: 5.333vw;
	}
	.fp-painters__photos .wp-block-column:nth-child(2) .fp-painters__photo img,
	.fp-painters__photos .wp-block-column:nth-child(3) .fp-painters__photo img {
		height: 26.667vw; /* 100px */
		border-radius: 5.333vw;
	}
}

/* 施工事例: SP(カードは横スクロール) */
@media (max-width: 959px) {
	.fp-secTitle--works {
		margin-top: 4vw; /* 15px */
	}
	.fp-secTitle--works .fp-secTitle__ja {
		font-size: 6.4vw; /* 24px */
	}
	.fp-secTitle--works figure.fp-secTitle__en {
		width: 16.533vw; /* 62px */
	}
	.fp-works .fp-works__cards {
		width: 100%;
		margin-top: 8vw; /* 30px */
		justify-content: flex-start;
		flex-wrap: nowrap !important;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		padding: 2vw 6vw 4vw;
		gap: 4.267vw !important; /* 16px */
		-webkit-overflow-scrolling: touch;
	}
	.fp-works__cards .fp-worksCard {
		flex: 0 0 88vw !important; /* 330px */
		scroll-snap-align: center;
		height: auto;
		border-radius: 5.333vw; /* 20px */
		padding-bottom: 5.333vw;
	}
	.fp-worksCard figure.fp-worksCard__img {
		height: 53.333vw; /* 200px */
		border-radius: 5.333vw 5.333vw 0 0;
	}
	.fp-worksCard .fp-worksCard__date {
		margin: 2.667vw 2.667vw 0;
		font-size: 4.19vw; /* 15.7px */
		line-height: 7.855vw;
	}
	.fp-worksCard .fp-worksCard__cats {
		margin: 1.333vw 2.667vw 0;
		gap: 1.333vw 2.667vw;
		max-height: 6.933vw; /* ピル1行(26px) */
	}
	.fp-worksCard__cat {
		height: 6.933vw; /* 26px */
		padding: 0 2.667vw;
		font-size: 3.667vw; /* 13.75px */
	}
	.fp-worksCard .fp-worksCard__title {
		margin: 5.333vw 2.667vw 0;
		font-size: 4.712vw; /* 17.7px */
		line-height: 7.54vw;
	}
	.fp-worksCard .fp-worksCard__text {
		margin: 0 2.667vw;
		font-size: 4.19vw; /* 15.7px */
		line-height: 7.855vw;
	}
	.fp-btnTex--more .wp-block-button__link {
		background-position: left 9.55% center, center;
		padding-left: 11vw;
	}
}

/* サービス内容: SP(Figma node 36-992 / 375px基準。カードは2×2) */
@media (max-width: 959px) {
	.fp-service {
		margin-top: 13.333vw; /* 50px */
		padding-bottom: 10.667vw; /* 40px */
	}
	.fp-secTitle--service {
		margin-top: 10.667vw; /* 40px */
	}
	.fp-secTitle--service .fp-secTitle__ja {
		font-size: 6.4vw; /* 24px */
	}
	.fp-secTitle--service figure.fp-secTitle__en {
		width: 17.067vw; /* 64px */
	}
	.fp-service .wp-block-columns.fp-service__cards {
		width: 91.467vw; /* 343px */
		margin-top: 9.333vw; /* 35px */
		flex-wrap: wrap !important; /* コアの is-not-stacked-on-mobile の nowrap(!important)より強く */
		gap: 6.133vw 6.133vw !important; /* 23px */
	}
	.fp-service__cards .fp-serviceCard {
		flex: 0 0 calc(50% - 3.067vw) !important;
		height: auto;
		border-radius: 5.333vw; /* 20px */
		padding-top: 10.133vw; /* 38px */
		padding-bottom: 5.333vw; /* 20px */
	}
	.fp-serviceCard .fp-serviceCard__title {
		font-size: 5.333vw; /* 20px */
	}
	.fp-serviceCard figure.fp-serviceCard__img {
		width: 18.133vw; /* 68px */
		margin-top: 2.133vw; /* 8px */
	}
	.fp-serviceCard .fp-serviceCard__text {
		margin-top: 4.533vw; /* 17px */
		font-size: 3.733vw; /* 14px */
		line-height: 5.973vw; /* 22.4px */
		padding: 0 2vw;
	}
	.fp-serviceCard .fp-serviceCard__link {
		margin-top: 3.2vw; /* 12px */
		font-size: 3.2vw; /* 12px */
	}
	.fp-service .fp-service__cta {
		margin-top: 10.667vw; /* 40px */
		font-size: 5.333vw; /* 20px */
		line-height: 1.5;
		padding: 0 3vw;
	}
	.fp-brPc {
		display: none;
	}
	.fp-service__btns {
		flex-direction: column;
		align-items: center;
		margin-top: 8.533vw; /* 32px */
		gap: 5.867vw !important; /* 22px */
	}
	.fp-service__btns .wp-block-button__link {
		width: 88vw; /* 330px */
		height: 13.333vw; /* 50px */
		font-size: 4.8vw; /* 18px */
	}
}

/* MV: SP(Figma node 36-992 のMV部分 / 375px基準。px ÷ 3.75 = vw で等比スケール) */
@media (max-width: 959px) {
	.fp-mv {
		aspect-ratio: 375 / 538;
		overflow: hidden; /* 写真とアークは画面外へはみ出すデザインのため切り抜く */
	}
	/* アーク: 右上に大きく、右へはみ出す */
	.fp-mv__bg {
		top: -16.533vw;
		right: -17.867vw;
		width: 94.133vw;
	}
	/* 写真: 左右にはみ出すフル幅配置(左を大きくトリミング) */
	.fp-mv__photo {
		top: 10.933vw;
		left: -51.467vw;
		width: 195.733vw;
	}
	.fp-mv__catch1,
	.fp-mv__catch2,
	.fp-mv__label {
		text-shadow: 0 0.44vw 0.44vw rgba(0, 0, 0, .25);
	}
	.fp-mv__catch1 {
		top: 90.4vw;
		right: 0;
		width: 78.935vw;
		height: 9.881vw;
		line-height: 9.881vw;
		font-size: 6.4vw;
		padding-right: 5.067vw;
	}
	.fp-mv__catch2 {
		top: 102.478vw;
		right: 0;
		width: 85.302vw;
		height: 9.881vw;
		line-height: 9.881vw;
		font-size: 6.4vw;
		padding-right: 7.126vw;
	}
	.fp-mv__label {
		top: 119.163vw;
		right: 0.533vw;
		width: 91.372vw;
		height: 9.881vw;
		line-height: 9.881vw;
		font-size: 5.051vw;
	}
	.fp-mv__menu {
		top: 132vw;
		left: 6.667vw;
		flex-wrap: nowrap;
		gap: 1.1vw !important;
	}
	.fp-mv__menu .wp-block-button__link {
		width: auto;
		min-width: 19.761vw;
		height: 6.148vw;
		padding: 0 2.2vw;
		font-size: 3.733vw;
		border-radius: 3.294vw;
		text-shadow: 0 1px 1px rgba(0, 0, 0, .25);
	}
}

/* ==========================================================
   施工事例アーカイブ(Figma: node 20-766)
   タイトル+虹ライン → カード3列×4行 → ページネーション。
   右上に薄いアーク装飾(works-fvbg.webp)。カードはトップページと同仕様
   ========================================================== */
.post-type-archive-works #content.l-content,
.tax-works_cat #content.l-content,
.blog #content.l-content,
.category #content.l-content {
	padding-top: 0;
	padding-bottom: 0;
	margin-bottom: 0; /* CTA帯と密着させる */
}
/* デザインにパンくずがないため非表示 */
.post-type-archive-works #breadcrumb,
.tax-works_cat #breadcrumb,
.blog #breadcrumb,
.category #breadcrumb {
	display: none;
}
.fp-warch {
	position: relative;
	/* コンテンツが短いページで装飾がmainの外(CTA帯の上)にはみ出さないようにクリップ */
	overflow: hidden;
}
/* SWELLの記事幅制限(900px)を解除し、mainをビューポート全幅に広げる
   (右上の装飾をコンテナ幅で切らず、画面右端まで見せてからoverflowでクリップするため)。
   SWELLの「.l-mainContent{position:static!important}」に勝つため!important必須 */
#content .fp-warch {
	position: relative !important;
	overflow: hidden;
	width: 100vw;
	max-width: none;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}
/* 右上のアーク装飾(ヘッダー裏のy=0から1080pxぶん) */
.fp-warch__deco {
	position: absolute;
	top: -4.167vw; /* -80px(ヘッダーの裏に上端がある) */
	right: calc(50% - 50vw);
	width: 39.635vw; /* 761px */
	height: 56.25vw; /* 1080px */
	background: url(image/works-fvbg.webp) 0 0 / 100% 100% no-repeat;
	pointer-events: none;
}
.fp-warch__inner {
	position: relative; /* 装飾より上に */
	/* タイトルのmargin-topだとmainまで相殺伝播して装飾ごと下がるためpaddingで確保 */
	padding-top: 5.26vw; /* ヘッダー下端→タイトル 101px */
	/* ページ送りの有無に関わらずCTA帯との間に必ず120px空ける */
	padding-bottom: 6.25vw;
}
.fp-warch .fp-warch__title {
	margin: 0;
	padding: 0;
	background: none;
	border: none;
	text-align: center;
	font-family: "Noto Serif JP", serif;
	font-size: 2.083vw; /* 40px */
	font-weight: 700;
	line-height: 1.425; /* 57px */
	color: #333;
}
.fp-warch .fp-warch__title::before,
.fp-warch .fp-warch__title::after {
	content: none !important;
}
.fp-warch figure.fp-warch__line {
	width: 7.813vw; /* 150px */
	margin: 0.521vw auto 0; /* タイトル→ライン 10px */
}
.fp-warch__line img {
	width: 100%;
	height: auto;
	display: block;
}
/* 空状態(施工事例が未公開のときの「現在準備中です」など) */
.fp-warch .fp-warch__none {
	margin: 6.25vw 0 0; /* ライン→本文 120px 相当 */
	text-align: center;
	font-family: "Noto Sans JP", sans-serif;
	font-size: clamp(18px, 1.25vw, 24px);
	line-height: 1.8;
	color: #555;
}
/* カードグリッド(335×441、列間38px・行間40px) */
.fp-warch ul.fp-warch__grid {
	display: grid;
	grid-template-columns: repeat(3, 17.448vw);
	gap: 2.083vw 1.979vw;
	justify-content: center;
	margin: 6.25vw 0 0; /* ライン→カード 120px */
	padding: 0;
	list-style: none;
}
.fp-warch .fp-warchCard {
	height: 22.969vw; /* 441px */
	margin: 0;
	background: #fff;
	border-radius: 1.042vw; /* 20px */
	box-shadow: 0 4px 4px rgba(0, 0, 0, .25);
	overflow: hidden;
	transition: transform .25s;
}
.fp-warch .fp-warchCard:hover {
	transform: translateY(-0.208vw);
}
.fp-warchCard > a {
	display: block;
	height: 100%;
	color: inherit;
	text-decoration: none;
}
.fp-warchCard figure.fp-warchCard__img {
	margin: 0;
	height: 10.417vw; /* 200px */
	background: #f5f5f5;
	overflow: hidden;
}
.fp-warchCard__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.fp-warchCard .fp-warchCard__date {
	margin: 0.521vw 0.521vw 0; /* 画像→日付 10px、左右10px */
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.833vw; /* 16px */
	font-weight: 500;
	line-height: 1.563vw; /* 30px */
	color: #333;
}
/* カテゴリピル(スラッグごとに色分け) */
.fp-warchCard .fp-warchCard__cats {
	display: flex;
	flex-wrap: wrap;
	gap: 0.26vw 0.521vw; /* 行間5px 列間10px */
	margin: 0.26vw 0.521vw 0;
	max-height: 2.969vw; /* ピル2行(26+5+26)まで */
	overflow: hidden;
}
.fp-warchCard__cat {
	display: flex;
	align-items: center;
	height: 1.354vw; /* 26px */
	padding: 0 0.521vw; /* 10px */
	border-radius: 30px;
	background: #2fb6ee;
	color: #fff;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 500;
	font-size: 0.729vw; /* 14px */
	line-height: 1;
}
.fp-cat--gaiheki { background: #f9873d; }
.fp-cat--yane { background: #2caf4e; }
.fp-cat--bousui { background: #2fb6ee; }
.fp-cat--yane-reform { background: #248fc6; }
.fp-cat--amamori { background: #f9b20d; }
.fp-warchCard .fp-warchCard__title {
	margin: 1.042vw 0.521vw 0; /* ピル→タイトル 20px */
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.938vw; /* 18px */
	font-weight: 700;
	line-height: 1.5vw; /* 28.8px */
	color: #238fc6;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.fp-warchCard .fp-warchCard__text {
	margin: 0 0.521vw;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.833vw; /* 16px */
	font-weight: 500;
	line-height: 1.563vw; /* 30px */
	color: #333;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
/* ページネーション(現在ページ=オレンジグラデの丸) */
.fp-warch .pagination {
	margin: 6.25vw 0 0; /* カード→ページ送り 120px(帯までの120pxはinnerのpadding) */
}
.fp-warch .pagination .nav-links {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.365vw; /* 中心間隔41px */
}
.fp-warch .page-numbers {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 1.771vw; /* 34px */
	height: 1.771vw;
	margin: 0;
	border: none;
	border-radius: 50%;
	background: none; /* SWELL既定のグレー丸を消す(丸背景は現在ページのみ) */
	box-shadow: none;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 700;
	font-size: 1.146vw; /* 22px */
	color: #000;
	text-decoration: none;
}
.fp-warch .page-numbers.current {
	background: linear-gradient(90deg, #f97901, #fba712);
}
.fp-warch .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
}

/* 施工事例アーカイブ: SP(1カラム。SP専用デザインはないためトップページのカードSP仕様を踏襲) */
@media (max-width: 959px) {
	.fp-warch__deco {
		display: none;
	}
	.fp-warch__inner {
		padding-bottom: 16vw; /* CTA帯との間 60px */
	}
	.fp-warch .fp-warch__title {
		margin-top: 10.667vw; /* 40px */
		font-size: 6.4vw; /* 24px */
	}
	.fp-warch figure.fp-warch__line {
		width: 40vw; /* 150px */
		margin-top: 2.667vw; /* 10px */
	}
	.fp-warch ul.fp-warch__grid {
		grid-template-columns: 88vw; /* 330px 1カラム */
		gap: 5.333vw; /* 20px */
		margin-top: 10.667vw; /* 40px */
	}
	.fp-warch .fp-warchCard {
		height: auto;
		border-radius: 5.333vw; /* 20px */
	}
	.fp-warchCard > a {
		padding-bottom: 5.333vw; /* 20px */
	}
	.fp-warchCard figure.fp-warchCard__img {
		height: 53.333vw; /* 200px */
		border-radius: 5.333vw 5.333vw 0 0;
	}
	.fp-warchCard .fp-warchCard__date {
		margin: 2.667vw 2.667vw 0;
		font-size: 4.19vw;
		line-height: 7.855vw;
	}
	.fp-warchCard .fp-warchCard__cats {
		gap: 1.333vw 2.667vw;
		margin: 1.333vw 2.667vw 0;
		max-height: none;
	}
	.fp-warchCard__cat {
		height: 6.933vw; /* 26px */
		padding: 0 2.667vw;
		font-size: 3.667vw;
	}
	.fp-warchCard .fp-warchCard__title {
		margin: 5.333vw 2.667vw 0;
		font-size: 4.712vw;
		line-height: 7.54vw;
	}
	.fp-warchCard .fp-warchCard__text {
		margin: 0 2.667vw;
		font-size: 4.19vw;
		line-height: 7.855vw;
	}
	.fp-warch .pagination {
		margin: 10.667vw 0 0; /* 40px(下はinnerのpadding) */
	}
	.fp-warch .pagination .nav-links {
		gap: 1.867vw;
	}
	.fp-warch .page-numbers {
		min-width: 9.067vw; /* 34px */
		height: 9.067vw;
		font-size: 5.867vw; /* 22px */
	}
}

/* ==========================================================
   投稿詳細ページ(お知らせ・施工事例共通。Figma: node 20-1287)
   ページ種別タイトル部はアーカイブ(.fp-warch)のスタイルを共用。
   タイトル・見出しは水色の縦バー(7×34)+Serif 30px #238FC6
   ========================================================== */
.single-works #content.l-content,
.single-post #content.l-content {
	padding-top: 0;
	padding-bottom: 0;
	margin-bottom: 0;
}
.single-works #breadcrumb,
.single-post #breadcrumb {
	display: none;
}
.fp-single .fp-single__article {
	width: 56.25vw; /* 1080px */
	margin: 0 auto;
}
.fp-single .fp-single__date {
	margin: 3.125vw 0 0; /* ライン→日付 60px */
	text-align: right;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.833vw; /* 16px */
	font-weight: 500;
	line-height: 1.563vw; /* 30px */
	color: #333;
}
.fp-single .fp-single__title {
	position: relative;
	margin: 0;
	padding: 0 0 0 1.042vw; /* バーぶん左20px */
	background: none;
	border: none;
	font-family: "Noto Serif JP", serif;
	font-size: 1.563vw; /* 30px */
	font-weight: 700;
	line-height: 1.433; /* 43px */
	color: #238fc6;
}
.fp-single .fp-single__title::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.365vw; /* 1行目の中央に(7px) */
	width: 0.365vw; /* 7px */
	height: 1.771vw; /* 34px */
	background: #2fb6ee;
}
.fp-single figure.fp-single__eyecatch {
	width: 100%;
	height: 22.969vw; /* 441px */
	margin: 3.125vw 0 0; /* タイトル→画像 60px */
	border-radius: 1.042vw; /* 20px */
	overflow: hidden;
	box-shadow: 0 4px 4px rgba(0, 0, 0, .25);
}
.fp-single__eyecatch img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
/* 本文(ブロックエディタのコンテンツ) */
.fp-single .fp-single__content {
	margin-top: 3.125vw; /* 60px */
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.833vw; /* 16px */
	font-weight: 500;
	line-height: 1.563vw; /* 30px */
	color: #333;
}
.fp-single__content p {
	margin: 1.042vw 0 0; /* 見出し→本文 20px */
}
.fp-single__content h2 {
	position: relative;
	margin: 3.125vw 0 0; /* 前ブロック→見出し 60px */
	padding: 0 0 0 1.042vw;
	background: none;
	border: none;
	font-family: "Noto Serif JP", serif;
	font-size: 1.563vw; /* 30px */
	font-weight: 700;
	line-height: 1.433; /* 43px */
	color: #238fc6;
}
/* SWELLの見出し装飾を打ち消しつつ縦バーを描く */
.fp-single__content h2::before {
	content: "" !important;
	position: absolute;
	left: 0;
	top: 0.365vw;
	width: 0.365vw; /* 7px */
	height: 1.771vw; /* 34px */
	margin: 0;
	border: none;
	background: #2fb6ee;
}
.fp-single__content h2::after {
	content: none !important;
}
/* 本文内の画像(角丸+影。2枚並びはカラムブロックで) */
.fp-single__content figure.wp-block-image,
.fp-single__content .wp-block-columns,
.fp-single__content .wp-block-gallery {
	margin: 1.823vw 0 0; /* 本文→画像 35px */
}
.fp-single__content .wp-block-columns {
	gap: 2.083vw !important; /* 40px(コア既定の24pxより優先) */
}
.fp-single__content .wp-block-image img {
	border-radius: 1.042vw; /* 20px */
	box-shadow: 0 4px 4px rgba(0, 0, 0, .25);
}
/* ← 一覧に戻る → */
.fp-single .fp-single__nav {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 3.125vw; /* 60px */
	margin: 6.25vw 0 0; /* 本文→ナビ 120px(帯までの120pxはinnerのpadding) */
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 700;
	font-size: 1.146vw; /* 22px */
	line-height: 1.2;
}
.fp-single__nav a {
	color: #000;
	text-decoration: none;
}
.fp-single__nav a:hover {
	color: #238fc6;
}
.fp-single__nav .fp-single__adjacent:empty {
	display: none; /* 前後の記事がないときは矢印を出さない */
}

/* 投稿詳細: SP(PC専用デザインのため他ページのSP比率を踏襲) */
@media (max-width: 959px) {
	.fp-single .fp-single__article {
		width: 88vw; /* 330px */
	}
	.fp-single .fp-single__date {
		margin-top: 8vw; /* 30px */
		font-size: 3.733vw; /* 14px */
		line-height: 6.4vw;
	}
	.fp-single .fp-single__title {
		padding-left: 4.267vw; /* 16px */
		font-size: 5.333vw; /* 20px */
		line-height: 1.45;
	}
	.fp-single .fp-single__title::before {
		top: 1.067vw;
		width: 1.333vw; /* 5px */
		height: 6.4vw; /* 24px */
	}
	.fp-single figure.fp-single__eyecatch {
		height: 53.333vw; /* 200px */
		margin-top: 5.333vw; /* 20px */
		border-radius: 5.333vw;
	}
	.fp-single .fp-single__content {
		margin-top: 8vw; /* 30px */
		font-size: 3.733vw; /* 14px */
		line-height: 6.827vw; /* 25.6px */
	}
	.fp-single__content p {
		margin-top: 2.667vw; /* 10px */
	}
	.fp-single__content h2 {
		margin-top: 10.667vw; /* 40px */
		padding-left: 4.267vw;
		font-size: 5.333vw; /* 20px */
		line-height: 1.45;
	}
	.fp-single__content h2::before {
		top: 1.067vw;
		width: 1.333vw;
		height: 6.4vw;
	}
	.fp-single__content figure.wp-block-image,
	.fp-single__content .wp-block-columns,
	.fp-single__content .wp-block-gallery {
		margin-top: 5.333vw; /* 20px */
	}
	.fp-single__content .wp-block-image img {
		border-radius: 5.333vw;
	}
	.fp-single .fp-single__nav {
		gap: 8vw; /* 30px */
		margin: 10.667vw 0 0; /* 40px(下はinnerのpadding) */
		font-size: 4.8vw; /* 18px */
	}
}

/* ==========================================================
   固定ページ共通(page.php。タイトル+虹ライン+装飾は.fp-warchを共用)
   ========================================================== */
.page:not(.home) #content.l-content {
	padding-top: 0;
	padding-bottom: 0;
	margin-bottom: 0;
}
.page:not(.home) #breadcrumb {
	display: none;
}
.fp-page .fp-page__body {
	width: 56.25vw; /* 1080px */
	margin: 0 auto;
	/* ライン→コンテンツ 80px(先頭ブロックのmargin-topはSWELLがリセットするためpaddingで) */
	padding-top: 4.167vw;
}

/* ==========================================================
   職人紹介ページ(Figma: node 20-1584)
   キャッチ(黄マーカー) → 水色ボックス(とは?) → 白ボックス(職人紹介)
   ========================================================== */
/* キャッチコピー(2行・強調部分は40px+黄色マーカー) */
.fp-page__body .fp-craft__catch {
	margin: 4.167vw 0 0; /* ライン→キャッチ 80px */
	font-family: "Noto Serif JP", serif;
	font-size: 1.875vw; /* 36px */
	font-weight: 700;
	line-height: 1.5;
	color: #333;
}
.fp-craft__catch strong {
	font-size: 2.083vw; /* 40px */
	font-weight: 700;
	padding: 0 0.26vw;
	/* 黄色マーカー(文字下側に562×12の帯) */
	background: linear-gradient(rgba(245, 211, 63, .6), rgba(245, 211, 63, .6)) 0 calc(100% - 0.26vw) / 100% 0.625vw no-repeat;
}
/* ボックス(水色=とは? / 白=職人のご紹介) */
.fp-page__body .fp-craftBox {
	margin: 2.292vw 0 0; /* キャッチ→ボックス 44px */
	padding: 2.083vw; /* 40px */
	background: #e9f2f8;
	border-radius: 1.042vw; /* 20px */
	box-shadow: 0 4px 4px rgba(0, 0, 0, .25);
}
.fp-page__body .fp-craftBox--white {
	margin-top: 4.167vw; /* 80px */
	background: #fff;
	box-shadow: 0 4px 15px rgba(0, 0, 0, .2);
}
.fp-craftBox > .wp-block-group__inner-container {
	max-width: none;
	padding: 0;
	margin: 0;
}
.fp-craftBox h2 {
	margin-top: 0;
}
/* ボックス内の画像は影なし(コンテンツ共通スタイルを打ち消し) */
.fp-craftBox .wp-block-image img {
	box-shadow: none;
}
/* 職人1名ぶんのグループ(このグループを複製すると職人を追加できる) */
.fp-craftMember > .wp-block-group__inner-container {
	max-width: none;
	padding: 0;
	margin: 0;
}
.fp-craftBox .fp-craftMember {
	margin: 1.563vw 0 0; /* 見出し→1人目 30px */
}
.fp-craftBox .fp-craftMember + .fp-craftMember {
	margin-top: 3.125vw; /* 区切り線→次の職人 60px */
}
/* プロフィール(写真+表) */
.fp-craftBox .fp-craftProfile {
	margin: 0;
	gap: 3.854vw !important; /* 74px */
}
.fp-craftProfile .wp-block-column {
	margin: 0;
}
.fp-craftProfile figure.fp-craftPhoto {
	margin: 0;
	height: 23.542vw; /* 452px */
	border-radius: 1.042vw;
	overflow: hidden;
}
.fp-craftPhoto img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top;
	display: block;
}
/* プロフィール表(罫線#999・ラベル列90px) */
.fp-craftProfile .fp-craftTable {
	margin: 0;
}
.fp-craftTable table {
	width: 100%;
	border-collapse: collapse;
	border: none;
	background: none;
}
.fp-craftTable td {
	border: none;
	border-bottom: 1px solid #999;
	padding: 1.042vw 0 0.677vw; /* 上20px 下13px */
	font-family: "Noto Serif JP", serif;
	font-size: 0.938vw; /* 18px */
	font-weight: 700;
	line-height: 1.444; /* 26px */
	color: #333;
	vertical-align: top;
	background: none;
}
.fp-craftTable tr:first-child td {
	padding-top: 0;
}
.fp-craftTable tr:last-child td {
	border-bottom: none;
}
.fp-craftTable td:first-child {
	width: 4.688vw !important; /* 90px(SWELLのtd幅リセットより優先) */
	min-width: 4.688vw;
	white-space: nowrap;
	color: #238fc6;
}
/* ―― 保有資格・証明書 ――(左右にライン) */
.fp-craftBox .fp-craft__certTitle {
	display: flex;
	align-items: center;
	gap: 1.146vw; /* 22px */
	margin: 2.083vw 0 0; /* 写真下→40px */
	padding: 0;
	background: none;
	border: none;
	font-family: "Noto Serif JP", serif;
	font-size: 0.938vw; /* 18px */
	font-weight: 700;
	line-height: 1.444;
	color: #238fc6;
}
.fp-craftBox .fp-craft__certTitle::before,
.fp-craftBox .fp-craft__certTitle::after {
	content: "" !important;
	position: static;
	flex: 1;
	width: auto;
	height: 1px;
	margin: 0;
	border: none;
	background: #999;
}
/* 証明書の画像列(1段目: 大1+縦2 / 2段目: カード3枚) */
.fp-craftBox .wp-block-columns.fp-certRow {
	width: 49.375vw; /* 948px */
	margin: 1.563vw auto 0; /* 30px */
	gap: 2.604vw !important; /* 50px */
}
.fp-craftBox .wp-block-columns.fp-certRow--cards {
	width: 50.781vw; /* 975px */
	margin-top: 2.969vw; /* 57px */
	gap: 1.563vw !important; /* 30px */
}
.fp-certRow .wp-block-column {
	margin: 0;
}
.fp-certRow figure.fp-certImg {
	margin: 0;
}
.fp-certImg img {
	width: 100%;
	height: 15.625vw; /* 300px */
	object-fit: cover;
	border-radius: 0.521vw; /* 10px */
	display: block;
}
.fp-certRow--cards .fp-certImg img {
	height: 10.104vw; /* 194px */
}
.fp-certImg figcaption {
	margin: 0.521vw 0 0; /* 画像→キャプション 10px */
	text-align: left;
	font-family: "Noto Serif JP", serif;
	font-size: 0.729vw; /* 14px */
	font-weight: 700;
	color: #238fc6;
}
/* 職人間の区切り線 */
.fp-craftBox hr.fp-craft__divider {
	width: 51.875vw; /* 996px */
	max-width: none;
	height: 0;
	margin: 3.125vw auto 0; /* 60px */
	border: none;
	border-top: 1px solid #999;
	background: none;
	opacity: 1;
}
/* カラーコーディネーター案内 */
.fp-craftBox .wp-block-columns.fp-craftColor {
	width: 45.313vw; /* 870px */
	margin: 2.708vw auto 0; /* 52px */
	gap: 2.083vw !important; /* 40px */
	align-items: center;
}
.fp-craftColor .wp-block-column {
	margin: 0;
}
.fp-craftColor figure {
	margin: 0;
}
.fp-craftColor img {
	width: 100%;
	height: 15.625vw; /* 300px */
	object-fit: cover;
	border-radius: 0.521vw;
	display: block;
}
.fp-craftColor p {
	margin: 0;
	font-family: "Noto Serif JP", serif;
	font-size: 1.458vw; /* 28px */
	font-weight: 700;
	line-height: 1.429; /* 40px */
	color: #000;
	white-space: nowrap; /* 改行はbrで指定済み(SPでは解除) */
}

/* 職人紹介: SP(PC専用デザインのため他ページのSP比率を踏襲) */
@media (max-width: 959px) {
	.fp-page .fp-page__body {
		width: 88vw;
	}
	.fp-page__body .fp-craft__catch {
		margin-top: 10.667vw; /* 40px */
		font-size: 4.533vw; /* 17px */
	}
	.fp-craft__catch strong {
		font-size: 5.333vw; /* 20px */
		background-size: 100% 1.867vw;
	}
	.fp-page__body .fp-craftBox {
		margin-top: 8vw; /* 30px */
		padding: 5.333vw; /* 20px */
		border-radius: 5.333vw;
	}
	.fp-page__body .fp-craftBox--white {
		margin-top: 10.667vw; /* 40px */
	}
	.fp-craftBox .fp-craftMember {
		margin-top: 5.333vw;
	}
	.fp-craftBox .fp-craftMember + .fp-craftMember {
		margin-top: 8vw;
	}
	.fp-craftBox .fp-craftProfile {
		gap: 5.333vw !important;
	}
	.fp-craftProfile figure.fp-craftPhoto {
		height: 82.933vw; /* 311px(比率維持) */
		border-radius: 5.333vw;
	}
	.fp-craftTable td {
		padding: 4vw 0 2.667vw;
		font-size: 3.733vw; /* 14px */
		line-height: 1.444;
	}
	.fp-craftTable td:first-child {
		width: 18.667vw !important; /* 70px */
		min-width: 18.667vw;
	}
	.fp-craftBox .fp-craft__certTitle {
		margin-top: 8vw;
		gap: 2.933vw;
		font-size: 3.733vw;
	}
	.fp-craftBox .wp-block-columns.fp-certRow,
	.fp-craftBox .wp-block-columns.fp-certRow--cards {
		width: 100%;
		margin-top: 4vw;
		gap: 4vw !important;
	}
	.fp-certImg img,
	.fp-certRow--cards .fp-certImg img {
		height: auto;
	}
	.fp-certImg figcaption {
		margin-top: 1.333vw;
		font-size: 3.2vw; /* 12px */
	}
	.fp-craftBox hr.fp-craft__divider {
		width: 100%;
		margin-top: 8vw;
	}
	.fp-craftBox .wp-block-columns.fp-craftColor {
		width: 100%;
		margin-top: 8vw;
		gap: 4vw !important;
	}
	.fp-craftColor img {
		height: 42.667vw; /* 160px */
	}
	.fp-craftColor p {
		font-size: 4.267vw; /* 16px */
		line-height: 1.5;
		white-space: normal;
	}
}

/* ==========================================================
   会社概要ページ(Figma: node 33-580)
   白ボックス内に会社情報の表(罫線#999)+アクセス行(ラベル+地図)
   ========================================================== */
.fp-page__body > .fp-companyBox:first-child {
	/* ライン→ボックス 100px(本文上の80pxに+20px。SWELLの先頭margin殺しより強く) */
	margin-top: 1.042vw !important;
}
.fp-companyBox .fp-companyTable {
	margin: 0;
}
.fp-companyTable table {
	width: 100%;
	border-collapse: collapse;
	border: none;
	background: none;
}
.fp-companyTable td {
	border: none;
	border-bottom: 1px solid #999;
	padding: 0.625vw 0 0.781vw; /* 上12px 下15px */
	font-family: "Noto Serif JP", serif;
	font-size: 0.833vw; /* 16px */
	font-weight: 700;
	line-height: 1.438; /* 23px */
	color: #333;
	vertical-align: top;
	background: none;
}
.fp-companyTable tr:first-child td {
	padding-top: 0;
}
.fp-companyTable td:first-child {
	width: 10.417vw !important; /* 200px */
	min-width: 10.417vw;
	white-space: nowrap;
	color: #238fc6;
}
/* アクセス行(ラベル+Googleマップ) */
.fp-companyBox .fp-companyAccess {
	margin: 0.781vw 0 0; /* 罫線→15px */
	gap: 0 !important;
}
.fp-companyAccess .wp-block-column {
	margin: 0;
}
.fp-companyAccess .fp-companyAccess__label {
	margin: 0;
	font-family: "Noto Serif JP", serif;
	font-size: 0.833vw; /* 16px */
	font-weight: 700;
	line-height: 1.438;
	color: #238fc6;
}
.fp-companyMap {
	width: 41.667vw; /* 800px */
	height: 21.354vw; /* 410px */
}
.fp-companyMap iframe {
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
}

/* 会社概要: SP */
@media (max-width: 959px) {
	.fp-page__body > .fp-companyBox:first-child {
		margin-top: 2.667vw !important; /* 10px */
	}
	.fp-companyTable td {
		padding: 2.667vw 0 3.2vw; /* 上10px 下12px */
		font-size: 3.733vw; /* 14px */
	}
	.fp-companyTable td:first-child {
		width: 21.333vw !important; /* 80px */
		min-width: 21.333vw;
	}
	.fp-companyBox .fp-companyAccess {
		margin-top: 3.2vw;
	}
	.fp-companyAccess .fp-companyAccess__label {
		margin-bottom: 2.667vw;
		font-size: 3.733vw;
	}
	.fp-companyMap {
		width: 100%;
		height: 53.333vw; /* 200px */
	}
}

/* ==========================================================
   よくある質問ページ(Figma: node 33-805)
   トップページのFAQアコーディオン(.fp-faqItem)をそのまま流用。
   ここではページ内での幅・余白だけ定義する
   ========================================================== */
.fp-page__body > .fp-faq__lead:first-child {
	margin-top: 1.042vw !important; /* ライン→リード 100px(本文上80+20) */
}
.fp-page__body .fp-faq__lead {
	font-family: "Noto Serif JP", serif;
	font-size: 1.354vw; /* 26px */
	font-weight: 700;
	line-height: 1.423; /* 37px */
	color: #333;
}
.fp-page__body .fp-faqItem {
	margin: 1.042vw 0 0; /* 行間20px */
	padding: 0;
}
.fp-page__body .fp-faq__lead + .fp-faqItem {
	margin-top: 3.125vw; /* リード→1件目 60px */
}

/* よくある質問ページ: SP */
@media (max-width: 959px) {
	.fp-page__body > .fp-faq__lead:first-child {
		margin-top: 2.667vw !important; /* 10px */
	}
	.fp-page__body .fp-faq__lead {
		font-size: 4.8vw; /* 18px */
		line-height: 6.933vw; /* 26px */
	}
	.fp-page__body .fp-faqItem,
	.fp-page__body .fp-faq__lead + .fp-faqItem {
		margin: 16.8vw 0 0; /* 63px(うち33pxはQ円のはみ出しぶん) */
	}
}

/* ==========================================================
   ページトップボタン(Figma: 45-3110)
   SWELL標準の #pagetop を青グラデの角形+白丸+▲TOP に再スタイル
   ========================================================== */
#pagetop.c-fixBtn {
	position: relative;
	width: 60px;
	height: 60px;
	border: none;
	border-radius: 0;
	box-shadow: none;
	opacity: 1;
	background: linear-gradient(90deg, #248fc6, #2fb6ee) !important;
}
#pagetop .c-fixBtn__icon {
	display: none;
}
#pagetop.c-fixBtn::before {
	content: "";
	position: absolute;
	inset: 7px;
	border-radius: 50%;
	background: #fff;
}
#pagetop.c-fixBtn::after {
	content: "▲\A TOP";
	white-space: pre;
	position: absolute;
	inset: 7px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 700;
	font-size: 12px;
	line-height: 1.25;
	color: #238fc6;
}

/* SPメニューボタン(Figma: node 36-1371。PCでは非表示) */
.fp-spMenuBtn {
	display: none;
}
@media (max-width: 959px) {
	.fp-header {
		box-shadow: 0 4px 2px rgba(0, 0, 0, .25);
	}
	.fp-header__inner {
		height: 62px;
		padding: 0; /* MENUボタンは右端フラッシュ。ロゴは左側の白部分の中央に配置 */
	}
	.fp-header__logo {
		flex: 1; /* ハンバーガー左側の白い領域いっぱいに広がる */
		min-width: 0;
		margin: 0;
		display: flex;
		justify-content: center; /* 白部分の中央にロゴを配置 */
	}
	.fp-header__logo img {
		width: min(288px, calc(100vw - 110px)); /* 左右(ハンバーガー側含む)に余白を確保 */
	}
	.fp-header__gnav,
	.fp-header__contact {
		display: none; /* ナビはドロワーメニューに委ねる */
	}
	.fp-spMenuBtn {
		display: flex;
		flex-direction: column;
		align-items: center;
		flex-shrink: 0;
		width: 62px;
		height: 62px;
		padding: 0;
		border: none;
		cursor: pointer;
		background: linear-gradient(93.56deg, #ffa911 1.9%, #fe7600 100%);
	}
	.fp-spMenuBtn__bars {
		display: block;
		width: 31.5px;
		height: 14px;
		margin-top: 16px;
		background:
			linear-gradient(#fff, #fff) top / 100% 2px no-repeat,
			linear-gradient(#fff, #fff) bottom / 100% 2px no-repeat;
	}
	.fp-spMenuBtn__label {
		margin-top: 6px;
		font-size: 12px;
		font-weight: 500;
		line-height: 1;
		color: #fff;
	}
}

/* ==========================================================
   SPドロワーメニュー(専用デザインなし。サイト全体のトーンで統一)
   開閉・パネルの仕組みはSWELLの p-spMenu をそのまま利用
   ========================================================== */
@media (max-width: 959px) {
	/* MENU + 虹ライン */
	.fp-spMenu__title {
		margin: 2.667vw 0 0;
		text-align: center;
		font-family: "Noto Serif JP", serif;
		font-size: 5.333vw; /* 20px */
		font-weight: 700;
		color: #333;
		letter-spacing: .1em;
	}
	.fp-spMenu__title img {
		display: block;
		width: 26.667vw; /* 100px */
		height: auto;
		margin: 1.333vw auto 0;
	}
	/* ナビ項目(下線区切り+右矢印) */
	.fp-spMenu__nav {
		margin-top: 4vw;
	}
	.fp-spMenu__list {
		list-style: none;
		margin: 0;
		padding: 0;
	}
	.fp-spMenu__list li {
		border-bottom: 1px solid #e5e5e5;
	}
	.fp-spMenu__list a {
		position: relative;
		display: block;
		padding: 4vw 8vw 4vw 1.333vw;
		font-family: "Noto Sans JP", sans-serif;
		font-size: 4vw; /* 15px */
		font-weight: 700;
		color: #333;
		text-decoration: none;
	}
	.fp-spMenu__list a::after {
		content: "";
		position: absolute;
		right: 2.667vw;
		top: 50%;
		width: 2.133vw; /* 8px */
		height: 2.133vw;
		border-top: 2px solid #2fb6ee;
		border-right: 2px solid #2fb6ee;
		transform: translateY(-50%) rotate(45deg);
	}
	.fp-spMenu__list .current-menu-item a {
		color: #238fc6;
	}
	/* 電話・営業時間・お問い合わせ(PCヘッダー右側と同じトーン) */
	.fp-spMenu__cta {
		margin-top: 6.4vw;
		padding-top: 5.333vw;
		border-top: 1px solid #e5e5e5;
		text-align: center;
	}
	.fp-spMenu__tel {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 1.6vw;
		font-family: "Noto Sans JP", sans-serif;
		font-size: 5.867vw; /* 22px */
		font-weight: 700;
		color: #000;
		text-decoration: none;
		line-height: 1.2;
	}
	.fp-spMenu__tel img {
		width: 5.333vw;
		height: 5.333vw;
	}
	.fp-spMenu__hours {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 2.133vw;
		margin: 1.6vw 0 0;
	}
	.fp-spMenu__hoursLabel {
		background: #2fb6ee;
		color: #fff;
		font-size: 3.2vw; /* 12px */
		line-height: 1.5;
		padding: 0.267vw 2.133vw;
		border-radius: 4px;
	}
	.fp-spMenu__hoursTime {
		color: #2fb6ee;
		font-size: 3.733vw; /* 14px */
		font-weight: 700;
	}
	.fp-spMenu__contact {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 100%;
		height: 13.333vw; /* 50px */
		margin-top: 4.8vw;
		border-radius: 50px;
		background: linear-gradient(90deg, #f97901 0%, #fba712 100%);
		box-shadow: 0 4px 4px rgba(0, 0, 0, .25);
		color: #fff;
		font-size: 4.267vw; /* 16px */
		font-weight: 700;
		text-decoration: none;
	}
}


/* ==========================================================
   お問い合わせフォーム(Easy Form Plugin / Figma node 45-1871)
   ページ: /contact/(入力)・/contact-confirm/(確認)・/contact-thanks/(完了)
   フォームは fp-page テンプレートの .fp-page__body 内に出力される。
   プラグインのベース(esf-)スタイルを .fp-page__body スコープで上書き。
   ========================================================== */
:root {
	--esf-color-primary: #238fc6;
	--esf-color-error: #f35d5d;
}

/* --- フォームカード(白・角丸20・影) --- */
.fp-page__body .esf-form {
	box-sizing: border-box;
	width: 100%;
	margin: 1.042vw 0 0 !important; /* ライン→カード 100px(SWELLの先頭マージン0リセットに優先) */
	background: #fff;
	border-radius: 1.042vw; /* 20px */
	box-shadow: 0 4px 15px rgba(0, 0, 0, .2);
	padding: 2.76vw 2.083vw 2.083vw; /* 上53 左右40 下40 */
}

/* --- フィールド行(ラベル左208 / 入力右705 の2カラム) --- */
.fp-page__body .esf-field {
	display: grid;
	grid-template-columns: 10.833vw 36.719vw; /* 208px / 705px */
	column-gap: 1.042vw; /* 20px */
	align-items: center;
	margin: 0 0 1.042vw; /* 行間20px */
}
.fp-page__body .esf-field:last-of-type { margin-bottom: 0; }
.fp-page__body .esf-field--textarea { align-items: start; }
.fp-page__body .esf-field--textarea .esf-label { padding-top: 0.677vw; /* テキストエリア上端に合わせる */ }
/* ラジオ行(種別・ご希望)の下余白をFigmaの縦リズムに合わせる。
   ラジオ行は入力欄より背が低いぶん、行送りが詰まって見えるため個別に調整。 */
.fp-page__body .field-name-inquiry_type { margin-bottom: 1.615vw; }  /* 種別→お名前(内容間57px) */
.fp-page__body .field-name-contact_pref { margin-bottom: 0.729vw; } /* ご希望→住所(内容間40px) */

/* --- ラベル(Serif Bold・アクセント色) + 必須バッジ位置固定 --- */
.fp-page__body .esf-label {
	display: flex;
	align-items: center;
	margin: 0;
	font-family: "Noto Serif JP", serif;
	font-weight: 700;
	font-size: 0.833vw; /* 16px */
	color: #238fc6;
	line-height: 1.4;
}
.fp-page__body .esf-label-text { flex: 0 0 8.75vw; /* 168px スロット。バッジをx628相当に固定 */ }

/* 必須バッジ(赤)。任意バッジはデザインに合わせ非表示 */
.fp-page__body .esf-badge--required {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	height: 1.042vw; /* 20px */
	padding: 0 0.417vw; /* 8px */
	border-radius: 3px;
	background: #f35d5d;
	color: #fff;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.729vw; /* 14px */
	font-weight: 700;
	line-height: 1;
}
.fp-page__body .esf-badge--optional { display: none; }

/* --- 入力欄(白・1px #999・角丸5) --- */
.fp-page__body .esf-input--text,
.fp-page__body .esf-input--email,
.fp-page__body .esf-input--tel,
.fp-page__body .esf-input--textarea {
	box-sizing: border-box;
	width: 100%;
	background: #fff;
	border: 1px solid #999;
	border-radius: 5px;
	padding: 0 0.781vw; /* 15px */
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.833vw; /* 16px */
	color: #333;
}
.fp-page__body .esf-input--text,
.fp-page__body .esf-input--email,
.fp-page__body .esf-input--tel { height: 2.604vw; /* 50px */ }
.fp-page__body .esf-input--textarea {
	height: 5.729vw; /* 110px */
	min-height: 5.729vw; /* プラグインの min-height:120px を上書き */
	padding: 0.625vw 0.781vw;
	line-height: 1.6;
	resize: vertical;
}
.fp-page__body .esf-input:focus { outline: none; border-color: #238fc6; }
.fp-page__body .esf-input::placeholder { color: #aaa; }

/* --- ラジオ(お問い合わせ種別・ご希望の連絡方法) --- */
.fp-page__body .esf-option-group--radio {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.521vw 1.042vw; /* 行10 列20 */
}
.fp-page__body .esf-option-label--radio {
	display: inline-flex;
	align-items: center;
	gap: 0.26vw; /* 円→文字 5px(Figma: 円右端→文字) */
	margin: 0;
	cursor: pointer;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.833vw; /* 16px */
	color: #333;
}
.fp-page__body .esf-input--radio {
	appearance: none;
	-webkit-appearance: none;
	box-sizing: border-box;
	flex: 0 0 auto;
	width: 0.885vw; /* 17px */
	height: 0.885vw;
	margin: 0;
	border: 1.5px solid #999;
	border-radius: 50%;
	background: #fff;
	cursor: pointer;
	transition: border-color .15s;
}
.fp-page__body .esf-input--radio:checked {
	border-color: #238fc6;
	background: radial-gradient(#238fc6 0 42%, transparent 48%);
}

/* --- 送信/確認ボタン(青グラデ・ピル) --- */
.fp-page__body .esf-buttons {
	display: flex;
	justify-content: center;
	gap: 1.042vw;
	margin-top: 1.563vw; /* 30px */
}
.fp-page__body .esf-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 9.375vw; /* 180px */
	height: 2.604vw; /* 50px */
	padding: 0 1.563vw;
	border: none;
	border-radius: 50px;
	box-shadow: 0 4px 4px rgba(0, 0, 0, .25);
	color: #fff;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 700;
	font-size: 0.833vw; /* 16px */
	cursor: pointer;
	transition: opacity .2s;
	text-decoration: none;
}
.fp-page__body .esf-btn:hover { opacity: .9; }
.fp-page__body .esf-btn--submit,
.fp-page__body .esf-btn--send {
	background: linear-gradient(90deg, #248fc6 0%, #2fb6ee 100%);
}
.fp-page__body .esf-btn--back {
	background: #999;
}

/* --- バリデーションエラー(プラグインが .eform-error を付与) --- */
.fp-page__body .esf-input.eform-error,
.fp-page__body .esf-input--textarea.eform-error { border-color: #f35d5d; }
.fp-page__body .esf-error-message,
.fp-page__body .esf-field__error {
	grid-column: 2;
	margin-top: 0.26vw;
	color: #f35d5d;
	font-size: 0.729vw;
	font-family: "Noto Sans JP", sans-serif;
}

/* --- 確認画面(esf-confirm) --- */
.fp-page__body .esf-confirm__item {
	display: grid;
	grid-template-columns: 10.833vw 1fr;
	column-gap: 1.042vw;
	align-items: start;
	padding: 0.833vw 0;
	border-bottom: 1px solid #e5e5e5;
}
.fp-page__body .esf-confirm__label {
	font-family: "Noto Serif JP", serif;
	font-weight: 700;
	font-size: 0.833vw;
	color: #238fc6;
}
.fp-page__body .esf-confirm__value {
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.833vw;
	color: #333;
	white-space: pre-wrap;
	word-break: break-word;
}

/* --- 完了画面(送信完了メッセージ) --- */
.fp-page__body .esf-success {
	margin: 2.083vw 0;
	padding: 3.125vw 2.083vw;
	background: #fff;
	border-radius: 1.042vw;
	box-shadow: 0 4px 15px rgba(0, 0, 0, .2);
	text-align: center;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.938vw; /* 18px */
	line-height: 2;
	color: #333;
}

/* ==========================================================
   お問い合わせフォーム: SP(375px基準。ラベル上・入力下に縦積み)
   ========================================================== */
@media (max-width: 959px) {
	.fp-page__body .esf-form {
		border-radius: 5.333vw; /* 20px */
		box-shadow: 0 1.067vw 4vw rgba(0, 0, 0, .2);
		padding: 6.4vw 5.333vw; /* 24 / 20 */
	}
	.fp-page__body .esf-field,
	.fp-page__body .esf-field--textarea {
		display: block;
		align-items: initial;
		margin-bottom: 5.333vw; /* 20px */
	}
	.fp-page__body .esf-field--textarea .esf-label { padding-top: 0; }
	.fp-page__body .esf-label {
		margin-bottom: 2.133vw; /* 8px */
		font-size: 4.267vw; /* 16px */
	}
	.fp-page__body .esf-label-text { flex: 0 0 auto; }
	.fp-page__body .esf-badge--required {
		height: 5.333vw;
		margin-left: 2.133vw;
		padding: 0 2.133vw;
		font-size: 3.467vw;
	}
	.fp-page__body .esf-input--text,
	.fp-page__body .esf-input--email,
	.fp-page__body .esf-input--tel,
	.fp-page__body .esf-input--textarea {
		padding: 0 3.2vw;
		font-size: 4.267vw; /* 16px(iOSズーム防止) */
	}
	.fp-page__body .esf-input--text,
	.fp-page__body .esf-input--email,
	.fp-page__body .esf-input--tel { height: 13.333vw; /* 50px */ }
	.fp-page__body .esf-input--textarea { height: 32vw; padding: 3.2vw; }
	.fp-page__body .esf-option-group--radio { gap: 2.667vw 5.333vw; }
	.fp-page__body .esf-option-label--radio {
		gap: 2.133vw;
		font-size: 4.267vw;
	}
	.fp-page__body .esf-input--radio { width: 4.533vw; height: 4.533vw; }
	.fp-page__body .esf-buttons { margin-top: 6.4vw; gap: 4vw; flex-wrap: wrap; }
	.fp-page__body .esf-btn {
		min-width: 48vw;
		height: 13.333vw; /* 50px */
		font-size: 4.267vw;
	}
	.fp-page__body .esf-confirm__item {
		grid-template-columns: 1fr;
		row-gap: 1.6vw;
		padding: 3.2vw 0;
	}
	.fp-page__body .esf-confirm__label,
	.fp-page__body .esf-confirm__value { font-size: 4.267vw; }
	.fp-page__body .esf-error-message,
	.fp-page__body .esf-field__error { font-size: 3.467vw; }
	.fp-page__body .esf-form--complete,
	.fp-page__body .esf-complete { font-size: 4.267vw; }
}


/* ==========================================================
   モーダル(Figma node 199-2732「国家資格証明」)
   .fp-modal(オーバーレイ)+ .fp-modal__card(白カード1080×1118)
   ボタンブロックのリンクURLに #fp-modal-xxx を入れると開く(js/modal.js)
   ========================================================== */
.fp-modal {
	display: none;
	position: fixed;
	inset: 0;
	z-index: 10000;
	overflow-y: auto;
	padding: 4.167vw 0; /* 上下80px。カードが高いときはオーバーレイ内でスクロール */
	background: rgba(0, 0, 0, .6);
	-webkit-overflow-scrolling: touch;
}
.fp-modal.is-open {
	display: block;
}
/* モーダル表示中は背面をスクロールさせない */
body.fp-modal-open {
	overflow: hidden;
}
.fp-modal .fp-modal__card {
	position: relative;
	box-sizing: border-box;
	width: 56.25vw; /* 1080px */
	margin: 0 auto;
	padding: 3.125vw; /* 60px */
	background: #fff;
	border-radius: 1.042vw; /* 20px */
	box-shadow: 0 4px 15px rgba(0, 0, 0, .25);
}
/* 閉じるボタン(デザインには無いが操作性のため設置。背景クリック・ESCでも閉じる) */
.fp-modal__close {
	position: absolute;
	top: 1.042vw; /* 20px */
	right: 1.042vw;
	width: 1.667vw; /* 32px */
	height: 1.667vw;
	padding: 0;
	border: none;
	background: none;
	cursor: pointer;
}
.fp-modal__close::before,
.fp-modal__close::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 1.146vw; /* 22px */
	height: 2px;
	background: #238fc6;
}
.fp-modal__close::before { transform: translate(-50%, -50%) rotate(45deg); }
.fp-modal__close::after  { transform: translate(-50%, -50%) rotate(-45deg); }
/* マウス操作時はフォーカスリングを出さない(キーボード操作時のみ表示) */
.fp-modal__close:focus:not(:focus-visible) { outline: none; }
.fp-modal__close:focus-visible { outline: 2px solid #238fc6; outline-offset: 2px; }
/* タイトル(カード上端から60px) */
.fp-modal .fp-modal__title {
	margin: 0 !important;
	padding: 0;
	background: none;
	border: none;
	font-family: "Noto Serif JP", serif;
	font-size: 1.719vw; /* 33px */
	font-weight: 700;
	line-height: 1.424; /* 47px */
	color: #238fc6;
	text-align: center;
}
.fp-modal .fp-modal__title::before,
.fp-modal .fp-modal__title::after { content: none !important; }
/* 小見出し(左に7×34の青バー) */
.fp-modal .fp-modal__lead {
	position: relative;
	margin: 3.073vw 0 0; /* タイトル→小見出し 59px */
	padding: 0 0 0 1.042vw; /* バーぶん20px */
	background: none;
	border: none;
	font-family: "Noto Serif JP", serif;
	font-size: 1.563vw; /* 30px */
	font-weight: 700;
	line-height: 1.433; /* 43px */
	color: #238fc6;
}
.fp-modal .fp-modal__lead::after { content: none !important; }
.fp-modal .fp-modal__lead::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.365vw; /* 7px */
	width: 0.365vw; /* 7px */
	height: 1.771vw; /* 34px */
	background: #2fb6ee;
	border: none;
	border-radius: 0;
}
/* リード文 */
.fp-modal .fp-modal__text {
	margin: 1.042vw 0 0; /* 小見出し→本文 20px */
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.833vw; /* 16px */
	font-weight: 500;
	line-height: 1.563vw; /* 30px */
	color: #333;
}
/* 証明書グリッド(424 / 212 / 212、行間40px・列間50px) */
.fp-modal .fp-modal__certs {
	display: grid;
	grid-template-columns: 22.083vw 11.042vw 11.042vw; /* 424 / 212 / 212 */
	gap: 2.083vw 2.604vw; /* 行40px 列50px */
	margin: 1.563vw 0 0; /* 本文→画像 30px */
}
/* グループブロックのインナーコンテナはレイアウトから外し、画像を直接グリッド項目にする */
.fp-modal .fp-modal__certs > .wp-block-group__inner-container {
	display: contents;
}
.fp-modal .fp-modal__certs figure {
	margin: 0;
	height: 15.625vw; /* 300px */
	box-shadow: 0 4px 16px rgba(0, 0, 0, .25);
}
.fp-modal .fp-modal__certs img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
/* 職人紹介ページへのボタン(青グラデ400×69) */
.fp-modal .fp-modal__btn {
	justify-content: center;
	margin: 3.125vw 0 0; /* 画像→ボタン 60px */
}
.fp-modal .fp-modal__btn .wp-block-button {
	margin: 0;
}
.fp-modal .fp-modal__btn .wp-block-button__link {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 20.833vw; /* 400px */
	height: 3.594vw; /* 69px */
	padding: 0;
	border-radius: 50px;
	background: linear-gradient(90deg, #248fc6 0%, #2fb6ee 100%);
	color: #fff;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 500;
	font-size: 0.833vw; /* 16px */
	line-height: 1;
	transition: opacity .25s;
}
.fp-modal .fp-modal__btn .wp-block-button__link:hover {
	opacity: .85;
	color: #fff;
}

/* モーダル: SP(375px基準。証明書は1列積み) */
@media (max-width: 959px) {
	.fp-modal {
		padding: 10.667vw 0; /* 40px */
	}
	.fp-modal .fp-modal__card {
		width: 92vw; /* 345px */
		padding: 13.333vw 5.333vw 8vw; /* 50 / 20 / 30(上は閉じるボタンぶん確保) */
		border-radius: 5.333vw;
	}
	.fp-modal__close {
		top: 2.667vw;
		right: 2.667vw;
		width: 8vw;
		height: 8vw;
	}
	.fp-modal__close::before,
	.fp-modal__close::after { width: 5.333vw; }
	.fp-modal .fp-modal__title {
		font-size: 5.333vw; /* 20px */
		line-height: 1.5;
	}
	.fp-modal .fp-modal__lead {
		margin-top: 8vw; /* 30px */
		padding-left: 3.733vw;
		font-size: 4.8vw; /* 18px */
		line-height: 1.444;
	}
	.fp-modal .fp-modal__lead::before {
		top: 1.067vw;
		width: 1.333vw; /* 5px */
		height: 6.4vw; /* 24px */
	}
	.fp-modal .fp-modal__text {
		margin-top: 4.267vw; /* 16px */
		font-size: 3.733vw; /* 14px */
		line-height: 5.973vw; /* 22.4px */
	}
	.fp-modal .fp-modal__certs {
		grid-template-columns: 1fr;
		gap: 5.333vw; /* 20px */
		margin-top: 6.4vw; /* 24px */
	}
	.fp-modal .fp-modal__certs figure {
		height: auto;
	}
	.fp-modal .fp-modal__certs img {
		height: auto;
	}
	.fp-modal .fp-modal__btn {
		margin-top: 8vw; /* 30px */
	}
	.fp-modal .fp-modal__btn .wp-block-button__link {
		width: 80vw; /* 300px */
		height: 14.667vw; /* 55px */
		font-size: 4.267vw; /* 16px */
	}
}


/* ==========================================================
   モーダル(Figma node 199-2262「雨漏りの施工の流れ」)
   共通の .fp-modal / __card / __title / __lead / __text を流用し、
   STEP一覧(.fp-flow)と結びのテキスト(.fp-modal__note)を追加
   ========================================================== */
/* 本文は行間24px(証明書モーダルの30pxとは別) */
.fp-modal--flow .fp-modal__text {
	line-height: 1.25vw; /* 24px */
}
/* STEP一覧(960幅・高さ50・間隔23px) */
.fp-modal .fp-flow {
	display: flex;
	flex-direction: column;
	gap: 1.198vw; /* 23px */
	margin: 1.563vw 0 0; /* 本文→一覧 30px */
}
/* グループブロックのインナーコンテナはレイアウトから外す(各行・各項目を直接の子として扱う) */
.fp-modal .fp-flow > .wp-block-group__inner-container,
.fp-modal .fp-flow__row > .wp-block-group__inner-container {
	display: contents;
}
/* 1行 = STEP番号 / 工程名(+有料バッジ)/ 説明 */
.fp-modal .fp-flow__row {
	position: relative;
	display: grid;
	margin: 0; /* グループブロック既定の下マージンを打ち消す(間隔はgapで管理) */
	grid-template-columns: 5.938vw 11.354vw 1fr; /* 114 / 218 / 628 */
	align-items: center;
	height: 2.604vw; /* 50px */
	border-radius: 0.26vw; /* 5px */
	background: #238fc6;
}
/* 有料工程はオレンジグラデーション */
.fp-modal .fp-flow__row.is-paid {
	background: linear-gradient(90deg, #f97901 0%, #fba712 100%);
}
/* 行間の下向き三角(直前の行と同色。最終行には出さない) */
.fp-modal .fp-flow__row::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 2.344vw; /* 45px(行に5px重なる) */
	width: 0;
	height: 0;
	transform: translateX(-50%);
	border-left: 0.469vw solid transparent; /* 9px */
	border-right: 0.469vw solid transparent;
	border-top: 0.938vw solid #238fc6; /* 18px */
}
.fp-modal .fp-flow__row.is-paid::after {
	border-top-color: #fa9009; /* グラデーション中央の色 */
}
.fp-modal .fp-flow__row:last-child::after {
	content: none;
}
.fp-modal .fp-flow__row p {
	margin: 0;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 700;
	line-height: 1.563vw; /* 30px */
	color: #fff;
}
.fp-modal .fp-flow__step {
	position: relative;
	padding-left: 1.042vw; /* 20px */
	font-size: 1.042vw !important; /* 20px */
}
/* STEP番号と工程名の間の白い縦線(2×40) */
.fp-modal .fp-flow__step::after {
	content: "";
	position: absolute;
	right: -1px;
	top: 50%;
	width: 2px;
	height: 2.083vw; /* 40px */
	transform: translateY(-50%);
	background: #fff;
}
.fp-modal .fp-flow__title {
	display: flex;
	align-items: center;
	gap: 1.042vw; /* 工程名→バッジ 20px */
	padding-left: 1.042vw; /* 20px */
	font-size: 0.833vw !important; /* 16px */
}
.fp-modal .fp-flow__desc {
	font-size: 0.833vw !important; /* 16px */
}
/* 有料バッジ(60×30の白角丸) */
.fp-modal .fp-flow__badge {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 3.125vw; /* 60px */
	height: 1.563vw; /* 30px */
	border-radius: 0.26vw; /* 5px */
	background: #fff;
	color: #f35d5d;
	font-size: 0.833vw; /* 16px */
	font-weight: 700;
	line-height: 1;
}
/* 結びのテキスト */
.fp-modal .fp-modal__note {
	margin: 2.083vw 0 0; /* 一覧→テキスト 40px */
	font-family: "Noto Serif JP", serif;
	font-size: 1.354vw; /* 26px */
	font-weight: 700;
	line-height: 1.423; /* 37px */
	color: #333;
	text-align: center;
}

/* 施工の流れモーダル: SP(375px基準。STEPは「番号+工程名」/「説明」の2段) */
@media (max-width: 959px) {
	.fp-modal--flow .fp-modal__text {
		line-height: 5.973vw; /* 22.4px */
	}
	.fp-modal .fp-flow {
		gap: 2.667vw; /* 10px */
		margin-top: 6.4vw; /* 24px */
	}
	.fp-modal .fp-flow__row {
		grid-template-columns: 20.267vw 1fr; /* 76px(STEP 11が収まる幅) */
		grid-template-areas:
			"step title"
			"desc desc";
		align-items: start;
		height: auto;
		row-gap: 1.6vw;
		padding: 2.667vw 3.2vw;
		border-radius: 1.333vw;
	}
	.fp-modal .fp-flow__row::after {
		top: auto;
		bottom: -2.133vw; /* 8px(行に2px重なる) */
		border-left-width: 2.133vw;
		border-right-width: 2.133vw;
		border-top-width: 2.667vw;
	}
	.fp-modal .fp-flow__row p {
		line-height: 5.333vw; /* 20px */
	}
	.fp-modal .fp-flow__step {
		grid-area: step;
		padding-left: 0;
		font-size: 4.267vw !important; /* 16px */
	}
	.fp-modal .fp-flow__step::after {
		right: 2.133vw; /* 8px */
		height: 4.267vw; /* 16px */
		width: 1px;
	}
	.fp-modal .fp-flow__title {
		grid-area: title;
		gap: 2.667vw;
		padding-left: 2.133vw; /* 8px */
		font-size: 3.733vw !important; /* 14px */
	}
	.fp-modal .fp-flow__desc {
		grid-area: desc;
		font-size: 3.2vw !important; /* 12px */
	}
	.fp-modal .fp-flow__badge {
		width: 10.667vw; /* 40px */
		height: 4.8vw; /* 18px */
		border-radius: 1.067vw;
		font-size: 2.933vw; /* 11px */
	}
	.fp-modal .fp-modal__note {
		margin-top: 6.4vw; /* 24px */
		font-size: 4.267vw; /* 16px */
		line-height: 1.5;
	}
}
