/*
 * GALERA 2026 テーマのスタイル
 *
 * クラス名は FLOCSS の考え方で付けています。
 *   l-  Layout     ヘッダー・メニュー・フッター・セクションの枠
 *   c-  Component  複数のページで使う部品（見出し・ボタン・カード など）
 *   p-  Project    特定のページだけで使う部品（p-top- はトップページ、p-geo- は AI検索対策 など）
 *   u-  Utility    並べ方・余白・文字サイズなど、どこでも使う汎用の指定
 *   is- State      状態（is-open：メニューが開いている、is-active：選択中）
 * 部品の中の要素は「部品名__要素名」（例：c-faq__question）の形にしています。
 *
 * 画面幅の切り替え（ブレークポイント）
 *   1023px 以下：タブレット　767px 以下：スマートフォン　639px 以下：幅の狭いスマートフォン
 */


/* ==========================================================================
   Foundation：変数と要素の基本
   ========================================================================== */

:root {
	--gx: max(24px,calc((100% - 1120px) / 2));
	--hx: max(20px,calc((100% - 1328px) / 2));
	--grad: linear-gradient(45deg,#cd1dfb,#1f80c4);
}

html {
	word-break: auto-phrase;
	-webkit-text-size-adjust: 100%;
}

body {
	margin: 0;
	font-family: "Noto Sans JP","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;
	background: #ffffff;
	color: #1a1a1a;
}

h1,
h2,
h3,
p,
li,
span,
div {
	text-wrap: pretty;
}

a {
	color: #1e5eb8;
	text-decoration: none;
}

a:hover {
	color: #174a92;
	text-decoration: underline;
}

img {
	max-width: 100%;
}

button {
	font-family: inherit;
	cursor: pointer;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
}


/* ==========================================================================
   Layout（l-）：ヘッダー・メニュー・フッター・セクションの枠
   ========================================================================== */

.l-wrapper {
	position: relative;
	overflow-x: clip;
	background: #ffffff;
	color: #1a1a1a;
}

.l-main {
	display: block;
}

.l-header__nav-link.is-active {
	border-bottom-color: #1a1a1a !important;
}

/* ヘッダーのメニューは、1行に収まらない画面幅（1299px 以下）では隠し、「MENU」から開くメニューだけにする */

@media (max-width: 1299px) {
	.l-header nav {
		display: none;
	}
}

@media (max-width: 560px) {
	.l-header .l-header__cta {
		display: none;
	}
}

.l-drawer {
	position: fixed;
	inset: 0;
	z-index: 1000;
	display: none;
}

.l-drawer.is-open {
	display: block;
}

.l-drawer__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(20,25,35,0.45);
}

.l-drawer > div:last-child {
	overflow-y: auto;
}

body.is-menu-open {
	overflow: hidden;
}

/* l-header */

.l-header {
	position: sticky;
	top: 0;
	z-index: 100;
	height: 88px;
	box-sizing: border-box;
	padding: 0 0 0 var(--hx);
	display: flex;
	align-items: center;
	justify-content: space-between;
	background: rgba(255, 255, 255, 0.94);
	backdrop-filter: blur(12px);
	border-bottom: 1px solid #eef0f2;
}

.l-header__main {
	display: flex;
	align-items: center;
	gap: 32px;
	height: 100%;
}

.l-header__divider {
	width: 1px;
	height: 44px;
	background: #e3e5e8;
}

.l-header__nav-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: 26px;
	font-size: 14px;
	font-weight: 700;
}

.l-header__nav-link {
	display: inline-block;
	padding: 8px 0;
	color: #1a1a1a;
	text-decoration: none;
	border-bottom: 2px solid transparent;
}

.l-header__actions {
	display: flex;
	align-items: center;
	gap: 28px;
	height: 100%;
}

.l-header__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	height: 48px;
	padding: 0 24px;
	border-radius: 999px;
	background: linear-gradient(45deg, #cd1dfb, #1f80c4);
	box-shadow: 0 6px 16px rgba(120, 50, 190, 0.18);
	color: #ffffff;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-decoration: none;
}

.l-header__menu-button {
	width: 104px;
	height: 88px;
	flex-shrink: 0;
	box-sizing: border-box;
	border-left: 1px solid #e6e8ec;
	color: #111827;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	text-decoration: none;
}

.l-header__menu-line {
	display: block;
	width: 26px;
	height: 2px;
	border-radius: 2px;
	background: #111827;
}

.l-header__menu-label {
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.2em;
}

/* l-drawer */

.l-drawer__panel {
	position: absolute;
	right: 0;
	top: 0;
	width: 1000px;
	height: 100%;
	box-sizing: border-box;
	background: #ffffff;
	padding: 0 0 56px;
	display: flex;
	flex-direction: column;
	box-shadow: -20px 0 60px rgba(15, 25, 45, 0.12);
}

.l-drawer__head {
	height: 88px;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	padding-right: 0;
}

.l-drawer__close {
	width: 104px;
	height: 88px;
	box-sizing: border-box;
	border-left: 1px solid #e6e8ec;
	color: #111827;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	text-decoration: none;
}

.l-drawer__close-label {
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.18em;
}

.l-drawer__nav {
	box-sizing: border-box;
	padding: 24px 120px 0;
	display: flex;
	flex-direction: column;
	border-top: 1px solid #e5e8eb;
	margin: 0 120px;
	padding: 0;
}

.l-drawer__group {
	padding: 20px 0;
	border-bottom: 1px solid #e5e8eb;
}

.l-drawer__link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: 16px;
	font-weight: 700;
	color: #1a1a1a;
	text-decoration: none;
}

.l-drawer__sub {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 28px;
	box-sizing: border-box;
	padding: 18px 24px;
	margin-top: 14px;
	border-radius: 12px;
	background: #f4f5f6;
}

.l-drawer__sub-link {
	font-size: 14px;
	font-weight: 500;
	color: #1a1a1a;
	text-decoration: none;
}

.l-drawer__contact {
	margin: 36px 120px 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}

.l-drawer__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	height: 56px;
	padding: 0 30px;
	border-radius: 999px;
	background: linear-gradient(45deg, #cd1dfb, #1f80c4);
	box-shadow: 0 6px 16px rgba(120, 50, 190, 0.18);
	color: #ffffff;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-decoration: none;
}

.l-drawer__tel {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 2px;
}

.l-drawer__tel-number {
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 24px;
	font-weight: 700;
	letter-spacing: 0.02em;
}

.l-drawer__policy {
	margin: 28px 120px 0;
	display: flex;
	gap: 24px;
	font-size: 12px;
}

.l-drawer__policy-link {
	color: #5b6470;
	text-decoration: none;
}

@media (max-width: 1023px) {
	.l-drawer__panel {
		width: 100%;
	}
}

@media (max-width: 767px) {
	.l-drawer__nav {
		margin-left: 20px;
		margin-right: 20px;
	}

	.l-drawer__contact {
		margin-left: 20px;
		margin-right: 20px;
	}

	.l-drawer__policy {
		margin-left: 20px;
		margin-right: 20px;
	}
}

/* l-footer */

.l-footer {
	box-sizing: border-box;
	padding: 96px var(--gx) 40px;
	gap: 72px;
	border-top: 1px solid #e5e9ef;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

.l-footer__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr));
	gap: 40px;
}

.l-footer__address {
	font-size: 13px;
	line-height: 1.9;
	color: #3b4450;
}

.l-footer__office {
	font-weight: 700;
	color: #1a1a1a;
}

.l-footer__menu {
	display: flex;
	flex-direction: column;
	gap: 10px;
	font-size: 14px;
}

.l-footer__menu-title {
	font-size: 12px;
	font-weight: 700;
	color: #5b6470;
	letter-spacing: 0.08em;
}

.l-footer__menu-link {
	color: #1a1a1a;
}

.l-footer__bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: 12px;
	color: #5b6470;
}

.l-footer__area {
	font-family: 'Roboto', sans-serif;
	letter-spacing: 0.1em;
}

@media (max-width: 1023px) {
	.l-footer__grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 767px) {
	.l-footer {
		padding-left: 20px;
		padding-right: 20px;
	}

	.l-footer {
		padding: 56px 20px 32px;
	}
}

/* l-section-gray */

.l-section-gray {
	background: #f4f5f6;
	position: relative;
	box-sizing: border-box;
	padding: 128px var(--gx);
	display: flex;
	flex-direction: column;
	gap: 56px;
}

@media (max-width: 767px) {
	.l-section-gray {
		padding: 72px 20px;
	}
}

/* l-section */

.l-section {
	background: #ffffff;
	position: relative;
	box-sizing: border-box;
	padding: 128px var(--gx);
	display: flex;
	flex-direction: column;
	gap: 56px;
}

@media (max-width: 767px) {
	.l-section {
		padding: 72px 20px;
	}
}


/* ==========================================================================
   Component（c-）：複数のページで使う部品
   ========================================================================== */

/* entry-content / Contact Form 7 */

.entry-content {
	font-size: 17px;
	line-height: 2.1;
	color: #1a1a1a;
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.entry-content > * {
	margin: 0;
}

.entry-content h2 {
	margin: 24px 0 0;
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 28px;
	font-weight: 700;
	line-height: 1.5;
	padding-bottom: 14px;
	border-bottom: 2px solid #eef0f2;
}

.entry-content h3 {
	margin: 8px 0 0;
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 22px;
	font-weight: 700;
	line-height: 1.5;
}

.entry-content p {
	margin: 0;
	font-size: 17px;
	line-height: 2.1;
	color: #1a1a1a;
}

.entry-content img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 16px;
}

.entry-content figure {
	margin: 0;
}

.entry-content blockquote,
.entry-content .callout {
	box-sizing: border-box;
	padding: 24px 28px;
	border-left: 4px solid #1e5eb8;
	border-radius: 0 16px 16px 0;
	background: #f7f8f9;
	font-size: 16px;
	line-height: 1.9;
	color: #3b4450;
}

.entry-content ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
	color: #1a1a1a;
}

.entry-content ul li {
	display: flex;
	gap: 10px;
	list-style: none;
	align-items: flex-start;
	font-size: 16px;
	line-height: 1.7;
}

.entry-content ul li::before {
	content: "";
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	margin-top: 6px;
	background: var(--grad);
	-webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12.5l4.5 4.5L19 7.5'/></svg>") center/contain no-repeat;
	mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12.5l4.5 4.5L19 7.5'/></svg>") center/contain no-repeat;
}

.entry-content ol {
	padding-left: 1.4em;
}

.entry-content table {
	border-collapse: collapse;
	width: 100%;
	font-size: 15px;
}

.entry-content th,
.entry-content td {
	border: 1px solid #e5e9ef;
	padding: 12px 14px;
	text-align: left;
}

.entry-content th {
	background: #f4f5f6;
}

.entry-content a {
	text-decoration: underline;
}

.entry-content--plain {
	display: block;
}

.wpcf7 form {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.wpcf7 .wpcf7-form-control-wrap {
	display: block;
}

.wpcf7 input[type=text],
.wpcf7 input[type=email],
.wpcf7 input[type=tel],
.wpcf7 input[type=url],
.wpcf7 select,
.wpcf7 textarea {
	box-sizing: border-box;
	width: 100%;
	height: 52px;
	padding: 0 16px;
	border-radius: 12px;
	border: 1px solid #d5dae5;
	background: #ffffff;
	font-size: 15px;
	font-family: inherit;
	color: #1a1a1a;
}

.wpcf7 textarea {
	height: 200px;
	padding: 16px;
	line-height: 1.8;
	resize: vertical;
}

.wpcf7 .wpcf7-list-item {
	display: block;
	margin: 0 0 8px;
}

.wpcf7 .wpcf7-list-item label {
	display: flex;
	align-items: center;
	gap: 10px;
	box-sizing: border-box;
	padding: 12px 16px;
	border-radius: 12px;
	border: 1px solid #d5dae5;
	background: #ffffff;
	font-size: 15px;
}

.wpcf7 input[type=submit] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 360px;
	max-width: 100%;
	height: 64px;
	border: 0;
	border-radius: 999px;
	background: var(--grad);
	box-shadow: 0 10px 28px rgba(90,80,220,0.30);
	color: #ffffff;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.06em;
}

.wpcf7 .wpcf7-not-valid-tip {
	font-size: 12px;
	color: #c0392b;
}

.wpcf7 .wpcf7-response-output {
	margin: 8px 0 0;
	padding: 14px 16px;
	border-radius: 12px;
	font-size: 14px;
}

/* ---------- ページの骨組み ---------- */

/* c-svg-defs */

.c-svg-defs {
	position: absolute;
}

/* c-logo */

.c-logo {
	display: inline-flex;
	flex-direction: column;
	gap: 6px;
	color: #1a1a1a;
	text-decoration: none;
}

.c-logo__mark {
	font-family: 'Montserrat', sans-serif;
	font-size: 26px;
	font-weight: 700;
	letter-spacing: 0.16em;
	line-height: 1;
	padding-left: 0.08em;
}

.c-logo__name {
	display: block;
	font-size: 11px;
	font-weight: 500;
	color: #5b6470;
	line-height: 1;
	text-align: justify;
	text-align-last: justify;
}

.c-logo__mark-small {
	font-family: 'Montserrat', sans-serif;
	font-size: 24px;
	font-weight: 700;
	letter-spacing: 0.16em;
	line-height: 1;
	padding-left: 0.08em;
}

/* c-page-hero */

.c-page-hero {
	background: #ffffff;
	box-sizing: border-box;
	padding: 40px var(--gx) 112px;
	display: flex;
	flex-direction: column;
	gap: 48px;
}

.c-page-hero__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 520px;
	gap: 64px;
	align-items: center;
}

.c-page-hero__title {
	margin: 0;
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 56px;
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: 0.02em;
	color: #1a1a1a;
}

.c-page-hero__catch {
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 28px;
	font-weight: 700;
	line-height: 1.5;
}

.c-page-hero__catch-text {
	background: linear-gradient(45deg, #cd1dfb, #1f80c4);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
}

.c-page-hero__lead {
	margin: 0;
	font-size: 16px;
	line-height: 1.9;
	color: #3b4450;
	max-width: 560px;
}

.c-page-hero__actions {
	display: flex;
	align-items: center;
	gap: 28px;
	margin-top: 6px;
}

.c-page-hero__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	height: 60px;
	padding: 0 30px;
	border-radius: 999px;
	background: linear-gradient(45deg, #cd1dfb, #1f80c4);
	box-shadow: 0 6px 16px rgba(120, 50, 190, 0.18);
	color: #ffffff;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.04em;
}

.c-page-hero__link {
	font-size: 15px;
	font-weight: 700;
	color: #1a1a1a;
	border-bottom: 1.5px solid #1a1a1a;
	padding-bottom: 2px;
}

.c-page-hero__visual {
	position: relative;
	width: 520px;
	height: 440px;
}

.c-page-hero__image {
	position: absolute;
	left: 0;
	top: 0;
	width: 520px;
	height: 440px;
	border-radius: 20px;
	object-fit: cover;
	object-position: 40% center;
	box-shadow: 0 20px 50px rgba(15, 25, 45, 0.10);
}

.c-page-hero__image-geo {
	position: absolute;
	left: 0;
	top: 0;
	width: 520px;
	height: 440px;
	border-radius: 20px;
	object-fit: cover;
	object-position: 72% 40%;
	box-shadow: 0 20px 50px rgba(15, 25, 45, 0.10);
}

.c-page-hero__image-search {
	position: absolute;
	left: 0;
	top: 0;
	width: 520px;
	height: 440px;
	border-radius: 20px;
	object-fit: cover;
	object-position: center 40%;
	box-shadow: 0 20px 50px rgba(15, 25, 45, 0.10);
}

.c-page-hero__image-fukuoka {
	position: absolute;
	left: 0;
	top: 0;
	width: 520px;
	height: 440px;
	border-radius: 20px;
	object-fit: cover;
	object-position: 45% center;
	box-shadow: 0 20px 50px rgba(15, 25, 45, 0.10);
}

.c-page-hero__image-marketing {
	position: absolute;
	left: 0;
	top: 0;
	width: 520px;
	height: 440px;
	border-radius: 20px;
	object-fit: cover;
	object-position: 50% 35%;
	box-shadow: 0 20px 50px rgba(15, 25, 45, 0.10);
}

.c-page-hero__image-center {
	position: absolute;
	left: 0;
	top: 0;
	width: 520px;
	height: 440px;
	border-radius: 20px;
	object-fit: cover;
	object-position: center;
	box-shadow: 0 20px 50px rgba(15, 25, 45, 0.10);
}

.c-page-hero__image-create {
	position: absolute;
	left: 0;
	top: 0;
	width: 520px;
	height: 440px;
	border-radius: 20px;
	object-fit: cover;
	object-position: 55% center;
	box-shadow: 0 20px 50px rgba(15, 25, 45, 0.10);
}

@media (max-width: 1023px) {
	.c-page-hero__inner {
		grid-template-columns: minmax(0, 1fr);
	}

	.c-page-hero__visual {
		width: 100%;
		height: auto;
		aspect-ratio: 4 / 3;
		margin-right: 0;
	}

	.c-page-hero__visual {
		width: 100%;
		height: auto;
	}

	.c-page-hero__image {
		width: 100%;
		height: auto;
		aspect-ratio: 4 / 3;
		margin-right: 0;
	}

	.c-page-hero__image {
		position: static;
		width: 100%;
		height: auto;
		aspect-ratio: 4 / 3;
	}

	.c-page-hero__image-geo {
		width: 100%;
		height: auto;
		aspect-ratio: 4 / 3;
		margin-right: 0;
	}

	.c-page-hero__image-geo {
		position: static;
		width: 100%;
		height: auto;
		aspect-ratio: 4 / 3;
	}

	.c-page-hero__image-search {
		width: 100%;
		height: auto;
		aspect-ratio: 4 / 3;
		margin-right: 0;
	}

	.c-page-hero__image-search {
		position: static;
		width: 100%;
		height: auto;
		aspect-ratio: 4 / 3;
	}

	.c-page-hero__image-fukuoka {
		width: 100%;
		height: auto;
		aspect-ratio: 4 / 3;
		margin-right: 0;
	}

	.c-page-hero__image-fukuoka {
		position: static;
		width: 100%;
		height: auto;
		aspect-ratio: 4 / 3;
	}

	.c-page-hero__image-marketing {
		width: 100%;
		height: auto;
		aspect-ratio: 4 / 3;
		margin-right: 0;
	}

	.c-page-hero__image-marketing {
		position: static;
		width: 100%;
		height: auto;
		aspect-ratio: 4 / 3;
	}

	.c-page-hero__image-center {
		width: 100%;
		height: auto;
		aspect-ratio: 4 / 3;
		margin-right: 0;
	}

	.c-page-hero__image-center {
		position: static;
		width: 100%;
		height: auto;
		aspect-ratio: 4 / 3;
	}

	.c-page-hero__image-create {
		width: 100%;
		height: auto;
		aspect-ratio: 4 / 3;
		margin-right: 0;
	}

	.c-page-hero__image-create {
		position: static;
		width: 100%;
		height: auto;
		aspect-ratio: 4 / 3;
	}
}

@media (max-width: 767px) {
	.c-page-hero {
		padding-left: 20px;
		padding-right: 20px;
	}

	.c-page-hero__title {
		font-size: 32px;
	}
}

/* c-breadcrumb */

.c-breadcrumb {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 12px;
	color: #5b6470;
}

.c-breadcrumb__link {
	color: #5b6470;
}

.c-breadcrumb__current {
	color: #1a1a1a;
	font-weight: 700;
}

/* c-page-header */

.c-page-header {
	background: #ffffff;
	box-sizing: border-box;
	padding: 40px var(--gx) 72px;
	display: flex;
	flex-direction: column;
	gap: 40px;
}

.c-page-header__title {
	margin: 0;
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 56px;
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: 0.02em;
}

@media (max-width: 767px) {
	.c-page-header {
		padding-left: 20px;
		padding-right: 20px;
	}

	.c-page-header__title {
		font-size: 32px;
	}
}

/* c-page-body */

.c-page-body {
	background: #ffffff;
	box-sizing: border-box;
	padding: 24px var(--gx) 128px;
	display: flex;
	flex-direction: column;
}

.c-page-body__inner {
	width: 880px;
	align-self: center;
	display: flex;
	flex-direction: column;
	padding-top: 40px;
	border-top: 1px solid #e3e5e8;
}

@media (max-width: 1023px) {
	.c-page-body__inner {
		width: 100%;
	}
}

@media (max-width: 767px) {
	.c-page-body {
		padding-left: 20px;
		padding-right: 20px;
	}
}

/* ---------- セクションの見出し ---------- */

/* c-section-en */

.c-section-en {
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.16em;
	color: #5b6470;
}

/* c-section-title-sm */

.c-section-title-sm {
	margin: 0;
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 40px;
	font-weight: 500;
	line-height: 1.4;
}

@media (max-width: 767px) {
	.c-section-title-sm {
		font-size: 26px;
	}
}

/* c-section-intro */

.c-section-intro {
	display: flex;
	flex-direction: column;
	gap: 14px;
	max-width: 760px;
}

@media (max-width: 1023px) {
	.c-section-intro {
		width: 100%;
	}
}

/* c-section-number */

.c-section-number {
	width: 34px;
	height: 34px;
	flex-shrink: 0;
	border-radius: 999px;
	background: linear-gradient(45deg, #cd1dfb, #1f80c4);
	color: #ffffff;
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.02em;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

/* c-section-rule */

.c-section-rule {
	width: 28px;
	height: 1px;
	background: #c5c9cf;
}

/* c-section-desc */

.c-section-desc {
	margin: 0;
	font-size: 16px;
	line-height: 1.8;
	color: #3b4450;
}

/* c-section-title */

.c-section-title {
	margin: 0;
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 48px;
	font-weight: 500;
	line-height: 1.4;
}

@media (max-width: 767px) {
	.c-section-title {
		font-size: 28px;
	}
}

/* c-section-number-white */

.c-section-number-white {
	width: 34px;
	height: 34px;
	flex-shrink: 0;
	border-radius: 999px;
	background: #ffffff;
	color: #6b2bd6;
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.02em;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

/* c-section-rule-white */

.c-section-rule-white {
	width: 28px;
	height: 1px;
	background: rgba(255, 255, 255, 0.4);
}

/* c-section-en-white */

.c-section-en-white {
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.16em;
	color: rgba(255, 255, 255, 0.78);
}

/* c-section-title-white */

.c-section-title-white {
	margin: 0;
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 48px;
	font-weight: 500;
	line-height: 1.4;
	color: #ffffff;
}

@media (max-width: 767px) {
	.c-section-title-white {
		font-size: 28px;
	}
}

/* c-section-text */

.c-section-text {
	margin: 0;
	font-size: 16px;
	line-height: 1.9;
	color: #3b4450;
}

/* c-section-lead */

.c-section-lead {
	margin: 0;
	font-size: 16px;
	line-height: 1.9;
	color: #3b4450;
	max-width: 760px;
}

@media (max-width: 1023px) {
	.c-section-lead {
		width: 100%;
	}
}

/* c-section-desc-white */

.c-section-desc-white {
	margin: 0;
	font-size: 16px;
	line-height: 1.9;
	color: rgba(255, 255, 255, 0.82);
	max-width: 560px;
}

/* ---------- 文章・リンク ---------- */

/* c-text-link */

.c-text-link {
	font-size: 14px;
	font-weight: 700;
	color: #1e5eb8;
	white-space: nowrap;
}

/* c-service-catch-white */

.c-service-catch-white {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.12em;
	color: rgba(255, 255, 255, 0.8);
}

/* c-service-catch */

.c-service-catch {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.12em;
	color: #5b6470;
}

/* c-card-text-sm */

.c-card-text-sm {
	margin: 0;
	font-size: 13px;
	line-height: 1.8;
	color: #3b4450;
}

/* c-card-more */

.c-card-more {
	margin-top: auto;
	font-size: 13px;
	font-weight: 700;
	color: #1e5eb8;
}

/* c-card-text */

.c-card-text {
	margin: 0;
	font-size: 14px;
	line-height: 1.8;
	color: #3b4450;
}

/* c-plan-name */

.c-plan-name {
	font-size: 17px;
	font-weight: 700;
}

/* c-card-title */

.c-card-title {
	font-size: 18px;
	font-weight: 700;
	line-height: 1.5;
}

/* c-box-text */

.c-box-text {
	margin: 0;
	font-size: 14px;
	line-height: 1.9;
	color: #3b4450;
}

/* c-body-text */

.c-body-text {
	margin: 0;
	font-size: 16px;
	line-height: 2.0;
	color: #3b4450;
}

/* ---------- ボタン ---------- */

/* c-button-white */

.c-button-white {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	height: 48px;
	padding: 0 22px;
	border-radius: 999px;
	background: #ffffff;
	color: #1b2a44;
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
}

/* c-button-outline */

.c-button-outline {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	height: 48px;
	padding: 0 22px;
	border-radius: 999px;
	border: 1.5px solid #1a1a1a;
	color: #1a1a1a;
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
}

/* c-button-outline-large */

.c-button-outline-large {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	height: 52px;
	padding: 0 26px;
	border-radius: 999px;
	border: 1.5px solid #1a1a1a;
	color: #1a1a1a;
	font-size: 14px;
	font-weight: 700;
	white-space: nowrap;
}

/* c-button-outline-small */

.c-button-outline-small {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	height: 46px;
	padding: 0 22px;
	border-radius: 999px;
	border: 1.5px solid #1a1a1a;
	color: #1a1a1a;
	font-size: 14px;
	font-weight: 700;
}

/* ボタンにマウスを乗せたとき（a:hover の文字色と下線をボタンにかけず、少し薄くする） */

.l-header__cta:hover,
.l-drawer__cta:hover,
.c-page-hero__button:hover,
.c-results-cta__button:hover,
.c-contact__button:hover,
.p-top-hero__button:hover {
	color: #ffffff;
	text-decoration: none;
	opacity: 0.8;
}

.c-button-white:hover,
.p-top-geo__button:hover {
	color: #1b2a44;
	text-decoration: none;
	opacity: 0.8;
}

.c-button-outline:hover,
.c-button-outline-large:hover,
.c-button-outline-small:hover,
.p-price-nav__link:hover,
.p-top-faq__button:hover,
.p-top-office__button:hover,
.c-pagination a.page-numbers:hover {
	color: #1a1a1a;
	text-decoration: none;
	opacity: 0.8;
}

/* ---------- バッジ・アイコン・区切り線 ---------- */

/* c-badge-main */

.c-badge-main {
	padding: 5px 12px;
	border-radius: 999px;
	background: #c9d1f3;
	color: #1b2a44;
	font-size: 12px;
	font-weight: 700;
	white-space: nowrap;
}

/* c-chip-list */

.c-chip-list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

/* c-icon-circle */

.c-icon-circle {
	width: 48px;
	height: 48px;
	flex-shrink: 0;
	border-radius: 999px;
	background: linear-gradient(135deg, #f8f1ff 0%, #edf4ff 100%);
	display: flex;
	align-items: center;
	justify-content: center;
}

/* c-icon-circle-sm */

.c-icon-circle-sm {
	width: 44px;
	height: 44px;
	flex-shrink: 0;
	border-radius: 999px;
	background: linear-gradient(135deg, #f8f1ff 0%, #edf4ff 100%);
	display: flex;
	align-items: center;
	justify-content: center;
}

/* c-bg-pattern */

.c-bg-pattern {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	z-index: -1;
	pointer-events: none;
}

/* c-divider-white */

.c-divider-white {
	height: 1px;
	background: rgba(255, 255, 255, 0.2);
}

/* c-divider */

.c-divider {
	height: 1px;
	background: #e5e9ef;
}

/* c-icon-circle-xl */

.c-icon-circle-xl {
	width: 56px;
	height: 56px;
	border-radius: 999px;
	background: linear-gradient(135deg, #f8f1ff 0%, #edf4ff 100%);
	display: flex;
	align-items: center;
	justify-content: center;
}

/* c-tag */

.c-tag {
	padding: 4px 10px;
	border-radius: 999px;
	background: #eef0f2;
	color: #3b4450;
	font-size: 12px;
	font-weight: 700;
}

/* c-badge */

.c-badge {
	padding: 5px 12px;
	border-radius: 999px;
	background: #eef0f2;
	color: #3b4450;
	font-size: 12px;
	font-weight: 700;
	white-space: nowrap;
}

/* c-icon-circle-lg */

.c-icon-circle-lg {
	width: 52px;
	height: 52px;
	flex-shrink: 0;
	border-radius: 999px;
	background: linear-gradient(135deg, #f8f1ff 0%, #edf4ff 100%);
	display: flex;
	align-items: center;
	justify-content: center;
}

/* ---------- チェックリスト・カード ---------- */

/* c-result-headline */

.c-result-headline {
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
}

/* c-check-list-white */

.c-check-list-white {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
	color: #ffffff;
}

/* c-check-item */

.c-check-item {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	font-size: 14px;
	line-height: 1.7;
}

/* c-check-list */

.c-check-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
	color: #1a1a1a;
}

/* c-office-card */

.c-office-card {
	box-sizing: border-box;
	padding: 40px;
	border-radius: 24px;
	background: #ffffff;
	box-shadow: 0 10px 30px rgba(20, 30, 40, 0.05);
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.c-office-card__label {
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.16em;
	color: #5b6470;
}

.c-office-card__city {
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 56px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.02em;
	color: #1a1a1a;
}

.c-office-card__table {
	display: grid;
	grid-template-columns: 96px minmax(0, 1fr);
	row-gap: 12px;
	column-gap: 16px;
	font-size: 14px;
	line-height: 1.8;
}

.c-office-card__th {
	font-weight: 700;
	color: #5b6470;
}

@media (max-width: 767px) {
	.c-office-card {
		padding: 26px 20px;
	}

	.c-office-card__city {
		font-size: 32px;
	}
}

/* c-check-list-white-tight */

.c-check-list-white-tight {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
	color: #ffffff;
}

/* c-card */

.c-card {
	box-sizing: border-box;
	padding: 32px;
	border-radius: 20px;
	background: #ffffff;
	box-shadow: 0 10px 30px rgba(20, 30, 40, 0.05);
	color: #1a1a1a;
	text-decoration: none;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

/* c-box-grid */

.c-box-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 24px;
}

@media (max-width: 1023px) {
	.c-box-grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* c-box-gray */

.c-box-gray {
	box-sizing: border-box;
	padding: 36px;
	border-radius: 24px;
	background: #f7f8f9;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

/* c-info-card */

.c-info-card {
	box-sizing: border-box;
	padding: 32px;
	border-radius: 20px;
	background: #ffffff;
	box-shadow: 0 10px 30px rgba(20, 30, 40, 0.05);
	display: flex;
	flex-direction: column;
	gap: 14px;
}

/* c-option-card */

.c-option-card {
	box-sizing: border-box;
	padding: 32px;
	border-radius: 20px;
	background: #ffffff;
	box-shadow: 0 10px 30px rgba(20, 30, 40, 0.05);
	display: flex;
	flex-direction: column;
	gap: 12px;
}

/* c-report-card */

.c-report-card {
	box-sizing: border-box;
	padding: 32px;
	border-radius: 24px;
	background: rgba(255, 255, 255, 0.10);
	border: 1px solid rgba(255, 255, 255, 0.22);
	backdrop-filter: blur(12px);
	display: flex;
	flex-direction: column;
	gap: 16px;
}

/* c-card-sm */

.c-card-sm {
	box-sizing: border-box;
	padding: 28px;
	border-radius: 20px;
	background: #ffffff;
	box-shadow: 0 10px 30px rgba(20, 30, 40, 0.05);
	display: flex;
	flex-direction: column;
	gap: 10px;
}

/* c-result-card */

.c-result-card {
	box-sizing: border-box;
	padding: 36px;
	border-radius: 24px;
	background: #ffffff;
	box-shadow: 0 10px 30px rgba(20, 30, 40, 0.05);
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.c-result-card__number {
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 44px;
	font-weight: 700;
	line-height: 1.05;
	background: linear-gradient(45deg, #cd1dfb, #1f80c4);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.c-result-card__unit {
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 18px;
	font-weight: 700;
}

@media (max-width: 767px) {
	.c-result-card__number {
		font-size: 28px;
	}
}

/* c-point-card */

.c-point-card {
	box-sizing: border-box;
	padding: 36px;
	border-radius: 24px;
	background: #ffffff;
	box-shadow: 0 10px 30px rgba(20, 30, 40, 0.05);
	display: flex;
	flex-direction: column;
	gap: 14px;
}

/* c-option-grid */

.c-option-grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr;
	gap: 20px;
}

@media (max-width: 1023px) {
	.c-option-grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* c-result-card-sm */

.c-result-card-sm {
	box-sizing: border-box;
	padding: 32px;
	border-radius: 20px;
	background: #ffffff;
	box-shadow: 0 10px 30px rgba(20, 30, 40, 0.05);
	display: flex;
	flex-direction: column;
	gap: 10px;
}

/* c-data-table */

.c-data-table {
	display: flex;
	flex-direction: column;
	border-top: 1px solid #e3e5e8;
}

.c-data-table__th {
	font-size: 15px;
	font-weight: 700;
	color: #5b6470;
}

.c-data-table__td {
	font-size: 16px;
	line-height: 1.9;
	color: #1a1a1a;
}

/* ---------- 写真と文章の組み合わせ・特長・流れ ---------- */

/* c-feature-item */

.c-feature-item {
	display: flex;
	gap: 20px;
	align-items: flex-start;
	padding: 26px 0;
	border-top: 1px solid #e0e6ee;
}

.c-feature-item__title {
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 22px;
	font-weight: 700;
	line-height: 1.3;
}

/* c-feature-list */

.c-feature-list__end {
	border-top: 1px solid #e0e6ee;
}

/* c-media-layout */

.c-media-layout {
	display: grid;
	grid-template-columns: 460px minmax(0, 1fr);
	gap: 64px;
	align-items: stretch;
}

.c-media-layout__image-tall {
	min-height: 560px;
	border-radius: 24px;
	overflow: hidden;
}

.c-media-layout__body {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.c-media-layout__image {
	min-height: 520px;
	border-radius: 24px;
	overflow: hidden;
}

@media (max-width: 1023px) {
	.c-media-layout {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* c-step-number */

.c-step-number {
	width: 48px;
	height: 48px;
	border-radius: 999px;
	background: linear-gradient(45deg, #cd1dfb, #1f80c4);
	color: #ffffff;
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 15px;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* c-step-body */

.c-step-body {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding-top: 2px;
}

/* c-step-title */

.c-step-title {
	font-size: 19px;
	font-weight: 700;
}

/* c-reason-item */

.c-reason-item {
	display: flex;
	gap: 20px;
	align-items: flex-start;
	padding: 26px 0;
	border-top: 1px solid #e3e5e8;
}

.c-reason-item__title {
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 22px;
	font-weight: 700;
	line-height: 1.35;
}

/* c-reason-list */

.c-reason-list__end {
	border-top: 1px solid #e3e5e8;
}

/* ---------- 料金・プラン ---------- */

/* c-price */

.c-price__prefix-white {
	font-size: 12px;
	font-weight: 700;
	color: rgba(255, 255, 255, 0.7);
}

.c-price {
	display: flex;
	align-items: baseline;
	gap: 8px;
	flex-wrap: wrap;
}

.c-price__number-40-white {
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 40px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.01em;
	color: #ffffff;
}

.c-price__unit-white {
	font-size: 14px;
	color: rgba(255, 255, 255, 0.85);
}

.c-price__number-40 {
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 40px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.01em;
	background: linear-gradient(45deg, #cd1dfb, #1f80c4);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.c-price__number-44 {
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 44px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.01em;
	background: linear-gradient(45deg, #cd1dfb, #1f80c4);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.c-price__number-44-white {
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 44px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.01em;
	color: #ffffff;
}

.c-price__number-36 {
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 36px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.01em;
	background: linear-gradient(45deg, #cd1dfb, #1f80c4);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.c-price__number-48-white {
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 48px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.01em;
	color: #ffffff;
}

.c-price__number-48 {
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 48px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.01em;
	background: linear-gradient(45deg, #cd1dfb, #1f80c4);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.c-price__number-52-white {
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 52px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.01em;
	color: #ffffff;
}

.c-price__number-52 {
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 52px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.01em;
	background: linear-gradient(45deg, #cd1dfb, #1f80c4);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

@media (max-width: 767px) {
	.c-price__number-40-white {
		font-size: 26px;
	}

	.c-price__number-40 {
		font-size: 26px;
	}

	.c-price__number-44 {
		font-size: 28px;
	}

	.c-price__number-44-white {
		font-size: 28px;
	}

	.c-price__number-36 {
		font-size: 22px;
	}

	.c-price__number-48-white {
		font-size: 28px;
	}

	.c-price__number-48 {
		font-size: 28px;
	}

	.c-price__number-52-white {
		font-size: 28px;
	}

	.c-price__number-52 {
		font-size: 28px;
	}
}

/* c-price-inline */

.c-price-inline {
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 20px;
	font-weight: 700;
	color: #1a1a1a;
}

/* c-plan-grid */

.c-plan-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	align-items: stretch;
}

@media (max-width: 1023px) {
	.c-plan-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 639px) {
	.c-plan-grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* c-plan-card-dark */

.c-plan-card-dark {
	position: relative;
	box-sizing: border-box;
	padding: 40px 36px;
	border-radius: 24px;
	background: linear-gradient(45deg, #5e1683 0%, #134d7a 100%);
	box-shadow: 0 16px 40px rgba(15, 25, 45, 0.16);
	color: #ffffff;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

@media (max-width: 767px) {
	.c-plan-card-dark {
		padding: 26px 20px;
	}
}

/* c-plan-card */

.c-plan-card__badge {
	position: absolute;
	top: -14px;
	left: 36px;
}

.c-plan-card {
	box-sizing: border-box;
	padding: 40px 36px;
	border-radius: 24px;
	background: #ffffff;
	box-shadow: 0 10px 30px rgba(20, 30, 40, 0.05);
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.c-plan-card__action-tight {
	margin-top: auto;
	padding-top: 4px;
}

.c-plan-card__action {
	margin-top: auto;
	padding-top: 8px;
}

@media (max-width: 767px) {
	.c-plan-card {
		padding: 26px 20px;
	}
}

/* c-price-notes */

.c-price-notes {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}

/* c-plan-card-monthly */

.c-plan-card-monthly {
	box-sizing: border-box;
	padding: 40px 36px;
	border-radius: 24px;
	background: #ffffff;
	box-shadow: 0 10px 30px rgba(20, 30, 40, 0.05);
	display: flex;
	flex-direction: column;
	gap: 18px;
}

@media (max-width: 767px) {
	.c-plan-card-monthly {
		padding: 26px 20px;
	}
}

/* c-plan-card-dark-monthly */

.c-plan-card-dark-monthly {
	position: relative;
	box-sizing: border-box;
	padding: 40px 36px;
	border-radius: 24px;
	background: linear-gradient(45deg, #5e1683 0%, #134d7a 100%);
	box-shadow: 0 16px 40px rgba(15, 25, 45, 0.16);
	color: #ffffff;
	display: flex;
	flex-direction: column;
	gap: 18px;
}

@media (max-width: 767px) {
	.c-plan-card-dark-monthly {
		padding: 26px 20px;
	}
}

/* c-support-banner */

.c-support-banner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 380px;
	gap: 48px;
	align-items: center;
	box-sizing: border-box;
	padding: 44px 52px;
	border-radius: 28px;
	background: linear-gradient(45deg, #5e1683 0%, #134d7a 100%);
	box-shadow: 0 16px 40px rgba(15, 25, 45, 0.16);
	color: #ffffff;
}

.c-support-banner__eyebrow {
	font-size: 13px;
	font-weight: 700;
	color: #c9d1f3;
	letter-spacing: 0.06em;
}

.c-support-banner__price {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding-left: 40px;
	border-left: 1px solid rgba(255, 255, 255, 0.22);
}

@media (max-width: 1023px) {
	.c-support-banner {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 767px) {
	.c-support-banner {
		padding: 28px 22px;
	}
}

/* c-price-card-dark */

.c-price-card-dark {
	box-sizing: border-box;
	padding: 36px;
	border-radius: 24px;
	background: linear-gradient(45deg, #5e1683 0%, #134d7a 100%);
	box-shadow: 0 16px 40px rgba(15, 25, 45, 0.16);
	color: #ffffff;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.c-price-card-dark__text {
	margin: 0;
	font-size: 14px;
	line-height: 1.8;
	color: rgba(255, 255, 255, 0.85);
}

/* c-included */

.c-included {
	display: grid;
	grid-template-columns: 1.8fr 1fr;
	gap: 24px;
}

.c-included__box {
	box-sizing: border-box;
	padding: 36px;
	border-radius: 20px;
	background: #ffffff;
	box-shadow: 0 10px 30px rgba(20, 30, 40, 0.05);
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.c-included__list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px 28px;
}

@media (max-width: 1023px) {
	.c-included {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 639px) {
	.c-included__list {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* c-maintenance-plans */

.c-maintenance-plans {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
	align-items: stretch;
}

@media (max-width: 639px) {
	.c-maintenance-plans {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* c-ec-package */

.c-ec-package {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
	gap: 32px;
	align-items: start;
}

.c-ec-package__benefits {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

@media (max-width: 1023px) {
	.c-ec-package {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* c-ec-option */

.c-ec-option {
	box-sizing: border-box;
	padding: 30px 26px;
	border-radius: 20px;
	background: #ffffff;
	box-shadow: 0 10px 30px rgba(20, 30, 40, 0.05);
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.c-ec-option__title {
	font-size: 17px;
	font-weight: 700;
	line-height: 1.5;
}

.c-ec-option__price {
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 24px;
	font-weight: 700;
	background: linear-gradient(45deg, #cd1dfb, #1f80c4);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	align-self: flex-start;
}

/* ---------- 支援の成果 ---------- */

/* c-results-head */

.c-results-head {
	display: flex;
	flex-direction: column;
	gap: 18px;
	margin-bottom: 28px;
}

/* c-result-case */

.c-result-case {
	box-sizing: border-box;
	padding: 40px;
	border-radius: 24px;
	background: #ffffff;
	box-shadow: 0 10px 30px rgba(20, 30, 40, 0.05);
	display: flex;
	flex-direction: column;
	gap: 28px;
}

.c-result-case__tag {
	padding: 5px 11px;
	border-radius: 999px;
	background: #eef0f2;
	color: #3b4450;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.04em;
}

.c-result-case__grid {
	display: grid;
	grid-template-columns: 400px minmax(0, 1fr);
	gap: 56px;
	align-items: start;
}

.c-result-case__summary {
	display: flex;
	flex-direction: column;
	gap: 24px;
	padding-right: 40px;
	border-right: 1px solid #e0e6ee;
}

.c-result-case__period {
	font-size: 15px;
	font-weight: 700;
	color: #3b4450;
}

.c-result-case__number {
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 64px;
	font-weight: 600;
	line-height: 1.05;
	letter-spacing: -0.02em;
	background: linear-gradient(45deg, #cd1dfb, #1f80c4);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.c-result-case__text {
	margin: 0;
	font-size: 15px;
	line-height: 1.95;
	color: #3b4450;
}

.c-result-case__chip {
	padding: 6px 12px;
	border-radius: 999px;
	background: #ffffff;
	border: 1px solid #e0e6ee;
	font-size: 12px;
	font-weight: 700;
	color: #1a1a1a;
}

.c-result-case__stats {
	display: flex;
	gap: 32px;
}

.c-result-case__stat-number {
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 56px;
	font-weight: 600;
	line-height: 1.05;
	letter-spacing: -0.02em;
	background: linear-gradient(45deg, #cd1dfb, #1f80c4);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.c-result-case__note {
	font-size: 13px;
	line-height: 1.7;
	color: #5b6470;
}

@media (max-width: 1023px) {
	.c-result-case__grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 767px) {
	.c-result-case {
		padding: 26px 20px;
	}

	.c-result-case__number {
		font-size: 32px;
	}

	.c-result-case__stat-number {
		font-size: 32px;
	}
}

/* c-stat-unit */

.c-stat-unit {
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 22px;
	font-weight: 700;
}

/* c-rank-grid */

.c-rank-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
}

.c-rank-grid__item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 44px;
	box-sizing: border-box;
	padding: 0 14px;
	border-radius: 12px;
	background: #f4f5f6;
}

.c-rank-grid__keyword {
	font-size: 13px;
	font-weight: 500;
	white-space: nowrap;
}

.c-rank-grid__rank {
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 18px;
	font-weight: 700;
	color: #1e5eb8;
}

.c-rank-grid__rank-top {
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 18px;
	font-weight: 700;
	color: #1a1a1a;
}

@media (max-width: 1023px) {
	.c-rank-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 639px) {
	.c-rank-grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* c-results-cta */

.c-results-cta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	box-sizing: border-box;
	padding: 34px 40px;
	border-radius: 24px;
	background: #ffffff;
	box-shadow: 0 10px 30px rgba(20, 30, 40, 0.05);
}

.c-results-cta__title {
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 26px;
	font-weight: 700;
	line-height: 1.4;
}

.c-results-cta__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	height: 60px;
	padding: 0 34px;
	border-radius: 999px;
	background: linear-gradient(45deg, #cd1dfb, #1f80c4);
	box-shadow: 0 6px 16px rgba(120, 50, 190, 0.18);
	color: #ffffff;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.06em;
}

/* ---------- 制作実績の帯 ---------- */

/* c-works-band */

.c-works-band__head {
	padding-right: var(--gx);
}

.c-works-band__title {
	margin: 0;
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 32px;
	font-weight: 500;
	line-height: 1.4;
}

.c-works-band__text {
	margin: 0;
	font-size: 15px;
	line-height: 1.8;
	color: #3b4450;
}

.c-works-band__track {
	display: flex;
	gap: 24px;
	width: 2100px;
}

.c-works-band__item {
	width: 400px;
	height: 240px;
	flex-shrink: 0;
	position: relative;
	border-radius: 20px;
	overflow: hidden;
	display: block;
}

.c-works-band__label {
	position: absolute;
	left: 16px;
	bottom: 16px;
	padding: 6px 12px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.88);
	backdrop-filter: blur(10px);
	font-size: 12px;
	font-weight: 700;
	color: #1a1a1a;
}

@media (max-width: 1023px) {
	.c-works-band__track {
		width: auto;
		overflow-x: auto;
		padding-right: 20px;
		scrollbar-width: thin;
	}
}

@media (max-width: 767px) {
	.c-works-band__head {
		padding-right: 20px;
	}

	.c-works-band__title {
		font-size: 22px;
	}

	.c-works-band__item {
		width: 280px;
		height: 168px;
	}
}

/* ---------- よくある質問 ---------- */

/* c-faq */

.c-faq__head {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 18px;
	text-align: center;
}

.c-faq__label {
	display: flex;
	align-items: center;
	gap: 12px;
	justify-content: center;
}

.c-faq__list {
	width: 800px;
	align-self: center;
	display: flex;
	flex-direction: column;
	border-top: 1px solid #e0e6ee;
}

.c-faq__item {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 32px 8px;
	border-bottom: 1px solid #e0e6ee;
}

.c-faq__row {
	display: flex;
	gap: 18px;
	align-items: flex-start;
}

.c-faq__q {
	width: 34px;
	height: 34px;
	flex-shrink: 0;
	border-radius: 999px;
	background: linear-gradient(45deg, #cd1dfb, #1f80c4);
	color: #ffffff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 15px;
	font-weight: 700;
}

.c-faq__question {
	font-size: 18px;
	font-weight: 700;
	line-height: 1.6;
	padding-top: 3px;
}

.c-faq__a {
	width: 34px;
	height: 34px;
	flex-shrink: 0;
	border-radius: 999px;
	background: #f0f2f6;
	color: #5b6470;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 15px;
	font-weight: 700;
}

.c-faq__answer {
	font-size: 15px;
	line-height: 1.9;
	color: #3b4450;
	padding-top: 4px;
}

@media (max-width: 1023px) {
	.c-faq__list {
		width: 100%;
	}
}

/* ---------- お問い合わせ ---------- */

/* c-contact */

.c-contact {
	box-sizing: border-box;
	padding: 128px var(--gx);
	background: #ffffff;
}

.c-contact__inner {
	box-sizing: border-box;
	padding: 72px 80px;
	border-radius: 32px;
	background: #f4f5f6;
	display: grid;
	grid-template-columns: minmax(0, 1fr) 460px;
	gap: 56px;
	align-items: center;
}

.c-contact__text {
	margin: 0;
	font-size: 15px;
	line-height: 1.9;
	color: #3b4450;
	max-width: 480px;
}

.c-contact__tel {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: 8px;
}

.c-contact__tel-number {
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 30px;
	font-weight: 600;
	line-height: 1.2;
}

.c-contact__card {
	box-sizing: border-box;
	max-width: 460px;
	padding: 36px 32px;
	border-radius: 24px;
	background: rgba(255, 255, 255, 0.8);
	border: 1px solid rgba(255, 255, 255, 0.95);
	box-shadow: 0 12px 40px rgba(30, 60, 110, 0.08);
	backdrop-filter: blur(18px);
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.c-contact__card-text {
	margin: 0;
	font-size: 14px;
	line-height: 1.8;
	color: #3b4450;
}

.c-contact__button {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	height: 60px;
	margin-top: 6px;
	padding: 0 24px;
	border-radius: 999px;
	background: linear-gradient(45deg, #cd1dfb, #1f80c4);
	box-shadow: 0 6px 16px rgba(120, 50, 190, 0.18);
	color: #ffffff;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-decoration: none;
}

@media (max-width: 1023px) {
	.c-contact__inner {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 767px) {
	.c-contact {
		padding: 72px 20px;
	}

	.c-contact__inner {
		padding: 32px 20px;
	}

	.c-contact__tel-number {
		font-size: 22px;
	}

	.c-contact__card {
		padding: 28px 20px;
	}
}

/* c-steps */

.c-steps__number-current {
	width: 36px;
	height: 36px;
	border-radius: 999px;
	background: linear-gradient(45deg, #cd1dfb, #1f80c4);
	color: #ffffff;
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 14px;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
}

.c-steps__label-current {
	font-size: 15px;
	font-weight: 700;
	color: #1a1a1a;
}

.c-steps__line {
	width: 56px;
	height: 2px;
	border-radius: 999px;
	background: #e3e5e8;
}

.c-steps__number {
	width: 36px;
	height: 36px;
	border-radius: 999px;
	background: #ffffff;
	border: 1.5px solid #cfd5e2;
	color: #9aa4b2;
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 14px;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
}

.c-steps__label {
	font-size: 15px;
	font-weight: 700;
	color: #9aa4b2;
}

.c-steps__line-done {
	width: 56px;
	height: 2px;
	border-radius: 999px;
	background: #1e5eb8;
}

/* ---------- 福岡の帯 ---------- */

/* c-fukuoka-band */

.c-fukuoka-band {
	background: #f4f5f6;
	box-sizing: border-box;
	padding: 96px var(--gx);
	display: flex;
	flex-direction: column;
}

.c-fukuoka-band__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 64px;
	align-items: center;
	box-sizing: border-box;
	padding: 48px 56px;
	border-radius: 28px;
	background: #ffffff;
	box-shadow: 0 10px 30px rgba(20, 30, 40, 0.05);
}

.c-fukuoka-band__title {
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 30px;
	font-weight: 700;
	line-height: 1.4;
}

.c-fukuoka-band__text {
	margin: 0;
	font-size: 15px;
	line-height: 1.9;
	color: #3b4450;
	max-width: 720px;
}

@media (max-width: 767px) {
	.c-fukuoka-band {
		padding-left: 20px;
		padding-right: 20px;
	}

	.c-fukuoka-band__inner {
		padding: 28px 20px;
	}

	.c-fukuoka-band__title {
		font-size: 22px;
	}
}

/* ---------- 記事・実績の一覧 ---------- */

/* c-post-card */

.c-post-card {
	display: flex;
	flex-direction: column;
	gap: 14px;
	color: #1a1a1a;
	text-decoration: none;
}

.c-post-card__title {
	font-size: 17px;
	font-weight: 700;
	line-height: 1.6;
}

.c-post-card__image {
	position: relative;
	aspect-ratio: 16 / 10;
	border-radius: 18px;
	overflow: hidden;
	background: #eceef5;
}

.c-post-card__date {
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 13px;
	color: #5b6470;
}

.c-post-card__category {
	padding: 3px 10px;
	border-radius: 999px;
	background: #eef0f2;
	color: #3b4450;
	font-size: 12px;
	font-weight: 700;
}

/* c-tabs */

.c-tabs {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
}

/* c-post-list */

.c-post-list {
	background: #ffffff;
	box-sizing: border-box;
	padding: 24px var(--gx) 128px;
	display: flex;
	flex-direction: column;
	gap: 48px;
}

.c-post-list__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 44px 28px;
}

@media (max-width: 1023px) {
	.c-post-list__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.c-post-list {
		padding-left: 20px;
		padding-right: 20px;
	}
}

@media (max-width: 639px) {
	.c-post-list__grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* c-related-grid */

.c-related-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 28px;
}

@media (max-width: 1023px) {
	.c-related-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 639px) {
	.c-related-grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* c-works-card */

.c-works-card__image {
	position: relative;
	aspect-ratio: 16 / 10;
	border-radius: 18px;
	overflow: hidden;
	background: #eceef5;
	box-shadow: 0 10px 30px rgba(20, 30, 40, 0.05);
}

.c-works-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top center;
	display: block;
}

.c-works-card__tags {
	display: flex;
	gap: 6px;
	flex-wrap: wrap;
}

/* c-tab-current */

.c-tab-current {
	padding: 10px 18px;
	border-radius: 999px;
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
	background: linear-gradient(45deg, #cd1dfb, #1f80c4);
	color: #ffffff;
}

/* c-tab */

.c-tab {
	padding: 10px 18px;
	border-radius: 999px;
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
	background: #ffffff;
	color: #1a1a1a;
	border: 1px solid #e3e5e8;
}

/* c-pagination（the_posts_pagination() が出力するページ送り。page-numbers・current は WordPress のクラス） */

.c-pagination .nav-links {
	display: flex;
	justify-content: center;
	gap: 8px;
}

.c-pagination .page-numbers {
	width: 44px;
	height: 44px;
	border-radius: 999px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
	background: #ffffff;
	color: #1a1a1a;
	border: 1px solid #e3e5e8;
}

.c-pagination .current {
	border: 0;
	background: linear-gradient(45deg, #cd1dfb, #1f80c4);
	color: #ffffff;
}


/* ==========================================================================
   Project（p-）：特定のページだけで使う部品
   ========================================================================== */

@media (max-width: 1300px) {
	.p-top-rail {
		display: none !important;
	}
}

.p-article__toc:empty {
	display: none;
}

.p-article__toc a {
	display: flex;
	gap: 12px;
	font-size: 15px;
	color: #1a1a1a;
	text-decoration: none;
}

.p-article__toc a span {
	font-family: 'Roboto','Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-weight: 700;
	background: var(--grad);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.p-contact-form .wpcf7 form {
	gap: 0;
}

.p-contact-form .wpcf7 form > p,
.p-contact-form .p-contact-form__field {
	display: grid;
	grid-template-columns: 214px minmax(0,1fr);
	gap: 24px;
	padding: 22px 0;
	border-bottom: 1px solid #e5e9ef;
	align-items: start;
	margin: 0;
}

.p-contact-form .p-contact-form__label {
	display: flex;
	align-items: center;
	gap: 10px;
	padding-top: 12px;
	font-size: 15px;
	font-weight: 700;
}

.p-contact-form .p-contact-form__required {
	padding: 2px 8px;
	border-radius: 6px;
	background: #fdecee;
	color: #c0392b;
	font-size: 11px;
	font-weight: 700;
	white-space: nowrap;
}

.p-contact-form .p-contact-form__optional {
	padding: 2px 8px;
	border-radius: 6px;
	background: #f0f2f6;
	color: #5b6470;
	font-size: 11px;
	font-weight: 700;
	white-space: nowrap;
}

.p-contact-form .p-contact-form__submit {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 20px;
	padding-top: 24px;
	border: 0;
}

@media (max-width: 767px) {
	.p-contact-form .wpcf7 form > p,
	.p-contact-form .p-contact-form__field {
		grid-template-columns: minmax(0,1fr);
		gap: 8px;
	}

	.p-contact-form .p-contact-form__label {
		padding-top: 0;
	}
}

/* ---------- トップページ（p-top-） ---------- */

.p-top-rail {
	position: absolute;
	left: 44px;
	top: 1583px;
	z-index: 5;
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.p-top-rail__dot-current {
	width: 8px;
	height: 8px;
	border-radius: 999px;
	background: linear-gradient(45deg, #cd1dfb, #1f80c4);
}

.p-top-rail__number-current {
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 11px;
	font-weight: 700;
	color: #1a1a1a;
	letter-spacing: 0.06em;
}

.p-top-rail__label-current {
	font-size: 11px;
	font-weight: 700;
	color: #1a1a1a;
}

.p-top-rail__dot {
	width: 8px;
	height: 8px;
	border-radius: 999px;
	background: #d6dfea;
}

.p-top-rail__number {
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 11px;
	font-weight: 700;
	color: #9aa4b2;
	letter-spacing: 0.06em;
}

.p-top-rail__label {
	font-size: 11px;
	font-weight: 500;
	color: #9aa4b2;
}

.p-top-hero {
	background: #F7F8FC;
	position: relative;
	overflow: hidden;
	height: 800px;
	box-sizing: border-box;
	padding: 40px var(--gx) 96px;
	display: grid;
	grid-template-columns: minmax(0, 1fr) 580px;
	gap: 48px;
	align-items: center;
}

.p-top-hero__eyebrow {
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.1em;
	color: #5B6B83;
}

.p-top-hero__title {
	margin: 22px 0 0;
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 60px;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0.01em;
	color: #111827;
}

.p-top-hero__title-accent {
	background: linear-gradient(45deg, #cd1dfb, #1f80c4);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.p-top-hero__lead {
	margin: 34px 0 0;
	font-size: 17px;
	font-weight: 400;
	line-height: 2.0;
	color: #3b4450;
	max-width: 500px;
}

.p-top-hero__actions {
	display: flex;
	align-items: center;
	gap: 32px;
	margin-top: 44px;
}

.p-top-hero__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	height: 64px;
	padding: 0 38px;
	border-radius: 999px;
	background: linear-gradient(45deg, #cd1dfb, #1f80c4);
	box-shadow: 0 10px 24px rgba(120, 50, 190, 0.22);
	color: #ffffff;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-decoration: none;
}

.p-top-hero__link {
	font-size: 15px;
	font-weight: 700;
	color: #111827;
	border-bottom: 1.5px solid #111827;
	padding-bottom: 3px;
	text-decoration: none;
}

.p-top-hero__visual {
	position: relative;
	width: 700px;
	height: 520px;
	justify-self: end;
	margin-right: -120px;
}

.p-top-hero__bubble-m {
	position: absolute;
	left: -22px;
	top: 30%;
	width: 30px;
	height: 30px;
	border-radius: 999px;
	background: #ece7fb;
}

.p-top-hero__bubble-l {
	position: absolute;
	right: 44px;
	bottom: -14px;
	width: 56px;
	height: 56px;
	border-radius: 999px;
	background: #e7eefc;
}

.p-top-hero__bubble-s {
	position: absolute;
	right: 136px;
	bottom: 18px;
	width: 16px;
	height: 16px;
	border-radius: 999px;
	background: #efe9fc;
}

.p-top-hero__image-frame {
	position: relative;
	width: 700px;
	height: 520px;
	filter: drop-shadow(0 22px 44px rgba(15, 25, 45, 0.12));
}

.p-top-hero__image {
	display: block;
	width: 700px;
	height: 520px;
	object-fit: cover;
	object-position: 45% 45%;
	-webkit-clip-path: url(#heroOrganicClip);
	clip-path: url(#heroOrganicClip);
}

@media (max-width: 1023px) {
	.p-top-hero {
		grid-template-columns: minmax(0, 1fr);
	}

	.p-top-hero {
		height: auto;
		padding-top: 32px;
		padding-bottom: 56px;
	}

	.p-top-hero__visual {
		width: 100%;
		height: auto;
		aspect-ratio: 4 / 3;
		margin-right: 0;
	}

	.p-top-hero__visual {
		justify-self: stretch;
		margin-right: 0;
	}

	.p-top-hero__image-frame {
		width: 100%;
		height: auto;
		aspect-ratio: 4 / 3;
		margin-right: 0;
	}

	.p-top-hero__image {
		width: 100%;
		height: auto;
		aspect-ratio: 4 / 3;
		margin-right: 0;
	}
}

@media (max-width: 767px) {
	.p-top-hero {
		padding-left: 20px;
		padding-right: 20px;
	}

	.p-top-hero__title {
		font-size: 32px;
	}
}

.p-top-works {
	box-sizing: border-box;
	padding: 64px 0 128px var(--gx);
	display: flex;
	flex-direction: column;
	gap: 40px;
}

@media (max-width: 767px) {
	.p-top-works {
		padding-left: 20px;
		padding-right: 20px;
	}
}

.p-top-services__feature {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) 250px;
	gap: 40px;
	align-items: center;
	box-sizing: border-box;
	padding: 48px 52px;
	border-radius: 28px;
	background: linear-gradient(45deg, #5e1683 0%, #134d7a 100%);
	box-shadow: 0 16px 40px rgba(15, 25, 45, 0.16);
	color: #ffffff;
}

.p-top-services__feature-body {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.p-top-services__feature-icon {
	width: 52px;
	height: 52px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.14);
	border: 1px solid rgba(255, 255, 255, 0.28);
	display: flex;
	align-items: center;
	justify-content: center;
}

.p-top-services__feature-title {
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 32px;
	font-weight: 700;
	line-height: 1.35;
}

.p-top-services__feature-text {
	margin: 0;
	font-size: 14px;
	line-height: 1.9;
	color: rgba(255, 255, 255, 0.85);
}

.p-top-services__included-label {
	font-size: 12px;
	font-weight: 700;
	color: #c9d1f3;
	letter-spacing: 0.06em;
}

.p-top-services__chip {
	padding: 7px 12px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.12);
	border: 1px solid rgba(255, 255, 255, 0.28);
	color: #ffffff;
	font-size: 12px;
	font-weight: 700;
	white-space: nowrap;
}

.p-top-services__chip-note {
	font-size: 12px;
	font-weight: 700;
	color: #c9d1f3;
	letter-spacing: 0.06em;
	margin-top: 6px;
}

.p-top-services__feature-price {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding-left: 36px;
	border-left: 1px solid rgba(255, 255, 255, 0.22);
}

.p-top-services__card {
	box-sizing: border-box;
	padding: 30px 26px;
	border-radius: 24px;
	background: #ffffff;
	box-shadow: 0 10px 30px rgba(20, 30, 40, 0.05);
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.p-top-services__card-title {
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.4;
}

.p-top-services__card-footer {
	margin-top: auto;
	padding-top: 14px;
	border-top: 1px solid #edf0f4;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 8px;
}

.p-top-services__card-price {
	display: flex;
	align-items: baseline;
	gap: 4px;
	flex-wrap: wrap;
}

.p-top-services__card-price-note {
	font-size: 11px;
	color: #5b6470;
}

.p-top-services__card-link {
	font-size: 13px;
	font-weight: 700;
	color: #1e5eb8;
	text-decoration: none;
	white-space: nowrap;
}

@media (max-width: 1023px) {
	.p-top-services__feature {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 767px) {
	.p-top-services__feature {
		padding: 28px 22px;
	}

	.p-top-services__feature-title {
		font-size: 22px;
	}
}

.p-top-issues {
	box-sizing: border-box;
	padding: 128px var(--gx);
	display: flex;
	flex-direction: column;
	gap: 56px;
}

.p-top-issues__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 24px;
}

.p-top-issues__card {
	min-height: 190px;
	color: #1a1a1a;
	text-decoration: none;
	box-sizing: border-box;
	padding: 28px;
	border-radius: 20px;
	background: #ffffff;
	border: 1px solid #e0e6ee;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.p-top-issues__card-title {
	font-size: 16px;
	font-weight: 700;
	line-height: 1.6;
}

.p-top-issues__summary {
	margin: 0;
	font-size: 16px;
	line-height: 1.8;
}

.p-top-issues__link {
	font-size: 14px;
	font-weight: 700;
	color: #1a1a1a;
	border-bottom: 1.5px solid #1a1a1a;
	padding-bottom: 2px;
}

@media (max-width: 1023px) {
	.p-top-issues__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.p-top-issues {
		padding: 72px 20px;
	}
}

@media (max-width: 639px) {
	.p-top-issues__grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

.p-top-results {
	background: #f4f5f6;
	position: relative;
	box-sizing: border-box;
	padding: 128px var(--gx);
	display: flex;
	flex-direction: column;
	gap: 28px;
}

@media (max-width: 767px) {
	.p-top-results {
		padding: 72px 20px;
	}
}

.p-top-geo {
	box-sizing: border-box;
	padding: 128px var(--gx);
	position: relative;
	overflow: hidden;
	isolation: isolate;
	background: linear-gradient(45deg, #5e1683 0%, #134d7a 100%);
	color: #ffffff;
	display: flex;
	flex-direction: column;
	gap: 64px;
}

.p-top-geo__head {
	display: flex;
	flex-direction: column;
	gap: 18px;
	position: relative;
}

.p-top-geo__text {
	margin: 0;
	font-size: 16px;
	line-height: 1.9;
	color: rgba(255, 255, 255, 0.82);
	max-width: 640px;
}

.p-top-geo__body {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) 540px;
	gap: 80px;
	align-items: center;
}

.p-top-geo__main {
	display: flex;
	flex-direction: column;
	gap: 36px;
}

.p-top-geo__steps {
	display: flex;
	flex-direction: column;
	border-top: 1px solid rgba(255, 255, 255, 0.16);
}

.p-top-geo__step {
	display: flex;
	gap: 20px;
	align-items: flex-start;
	padding: 22px 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.16);
}

.p-top-geo__step-number {
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.06em;
	color: #c9d1f3;
	padding-top: 3px;
}

.p-top-geo__step-title {
	font-size: 18px;
	font-weight: 700;
	color: #ffffff;
}

.p-top-geo__step-text {
	font-size: 14px;
	line-height: 1.8;
	color: rgba(255, 255, 255, 0.78);
}

.p-top-geo__step-last {
	display: flex;
	gap: 20px;
	align-items: flex-start;
	padding: 22px 0;
}

.p-top-geo__actions {
	display: flex;
	align-items: center;
	gap: 28px;
}

.p-top-geo__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	height: 60px;
	padding: 0 32px;
	border-radius: 999px;
	background: #ffffff;
	color: #1b2a44;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.04em;
}

.p-top-geo__link {
	font-size: 15px;
	font-weight: 700;
	color: #ffffff;
	border-bottom: 1.5px solid rgba(255, 255, 255, 0.7);
	padding-bottom: 2px;
}

.p-top-geo__answer {
	box-sizing: border-box;
	padding: 32px;
	border-radius: 24px;
	background: #ffffff;
	box-shadow: 0 30px 80px rgba(5, 20, 50, 0.35);
	display: flex;
	flex-direction: column;
	gap: 22px;
}

.p-top-geo__answer-head {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 12px;
	font-weight: 700;
	color: #5b6470;
}

.p-top-geo__question {
	align-self: flex-end;
	max-width: 78%;
	box-sizing: border-box;
	padding: 14px 18px;
	border-radius: 18px 18px 4px 18px;
	background: #eef0f2;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.6;
	color: #1a1a1a;
}

.p-top-geo__answer-text {
	font-size: 15px;
	line-height: 1.8;
	color: #1a1a1a;
}

.p-top-geo__rank-number {
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 14px;
	font-weight: 700;
	color: #1a1a1a;
	padding-top: 2px;
}

.p-top-geo__rank-body {
	display: flex;
	flex-direction: column;
	gap: 8px;
	flex: 1;
}

.p-top-geo__rank-name {
	display: inline-flex;
	align-self: flex-start;
	font-size: 15px;
	font-weight: 700;
	color: #1a1a1a;
	background: linear-gradient(transparent 58%, #d8e4f5 58%);
	padding: 0 2px;
}

.p-top-geo__skeleton-92 {
	width: 92%;
	height: 10px;
	border-radius: 999px;
	background: #e6ebf2;
}

.p-top-geo__skeleton-68 {
	width: 68%;
	height: 10px;
	border-radius: 999px;
	background: #e6ebf2;
}

.p-top-geo__rank-number-muted {
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 14px;
	font-weight: 700;
	color: #9aa4b2;
	padding-top: 2px;
}

.p-top-geo__skeleton-group {
	display: flex;
	flex-direction: column;
	gap: 8px;
	flex: 1;
	padding-top: 4px;
}

.p-top-geo__skeleton-title-40 {
	width: 40%;
	height: 12px;
	border-radius: 999px;
	background: #d7dee8;
}

.p-top-geo__skeleton-86 {
	width: 86%;
	height: 10px;
	border-radius: 999px;
	background: #e6ebf2;
}

.p-top-geo__skeleton-title-34 {
	width: 34%;
	height: 12px;
	border-radius: 999px;
	background: #d7dee8;
}

.p-top-geo__skeleton-74 {
	width: 74%;
	height: 10px;
	border-radius: 999px;
	background: #e6ebf2;
}

.p-top-geo__source {
	display: flex;
	align-items: center;
	gap: 10px;
	padding-top: 18px;
	border-top: 1px solid #edf0f4;
}

.p-top-geo__source-link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 12px;
	font-weight: 700;
	color: #1e5eb8;
}

.p-top-geo__source-dot {
	width: 6px;
	height: 6px;
	border-radius: 999px;
	background: #1e5eb8;
}

.p-top-geo__source-bar-l {
	width: 64px;
	height: 8px;
	border-radius: 999px;
	background: #e6ebf2;
}

.p-top-geo__source-bar-s {
	width: 48px;
	height: 8px;
	border-radius: 999px;
	background: #e6ebf2;
}

.p-top-geo__caption {
	font-size: 12px;
	color: rgba(255, 255, 255, 0.6);
	text-align: right;
}

@media (max-width: 1023px) {
	.p-top-geo__body {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 767px) {
	.p-top-geo {
		padding: 72px 20px;
	}
}

.p-top-features__grid {
	display: grid;
	grid-template-columns: 460px minmax(0, 1fr);
	gap: 64px;
	align-items: start;
}

.p-top-features__image {
	height: 620px;
	border-radius: 24px;
	overflow: hidden;
}

@media (max-width: 1023px) {
	.p-top-features__grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

.p-top-price__icon-white {
	width: 44px;
	height: 44px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.14);
	display: flex;
	align-items: center;
	justify-content: center;
}

.p-top-price__plan-desc-white {
	font-size: 13px;
	font-weight: 500;
	color: rgba(255, 255, 255, 0.8);
}

.p-top-price__plan-desc {
	font-size: 13px;
	font-weight: 500;
	color: #5b6470;
}

.p-top-faq__button {
	align-self: center;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	height: 48px;
	padding: 0 24px;
	border-radius: 999px;
	border: 1.5px solid #1a1a1a;
	color: #1a1a1a;
	font-size: 14px;
	font-weight: 700;
}

.p-top-blog__link {
	font-size: 14px;
	font-weight: 700;
	color: #1e5eb8;
}

.p-top-blog__image {
	width: 100%;
	height: 190px;
	border-radius: 20px;
	object-fit: cover;
	display: block;
}

.p-top-blog__meta {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 13px;
	color: #5b6470;
}

.p-top-blog__date {
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
}

.p-top-blog__category {
	padding: 2px 10px;
	border-radius: 999px;
	background: #ffffff;
	color: #1a1a1a;
	font-weight: 700;
}

.p-top-office__address {
	font-size: 14px;
	line-height: 1.9;
	color: #3b4450;
}

.p-top-office__button {
	align-self: flex-start;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	height: 48px;
	padding: 0 22px;
	border-radius: 999px;
	border: 1.5px solid #1a1a1a;
	color: #1a1a1a;
	font-size: 14px;
	font-weight: 700;
}

/* ---------- 当社のサービス（p-service-） ---------- */

.p-service-list {
	display: flex;
	flex-direction: column;
	gap: 28px;
}

.p-service-list__main {
	position: relative;
	display: grid;
	grid-template-columns: 420px minmax(0, 1fr);
	border-radius: 28px;
	overflow: hidden;
	background: linear-gradient(45deg, #5e1683 0%, #134d7a 100%);
	box-shadow: 0 16px 40px rgba(15, 25, 45, 0.16);
	color: #ffffff;
}

.p-service-list__badge {
	position: absolute;
	top: 20px;
	left: 20px;
	z-index: 1;
}

.p-service-list__main-image {
	min-height: 380px;
}

.p-service-list__body {
	box-sizing: border-box;
	padding: 48px;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.p-service-list__main-title {
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 28px;
	font-weight: 700;
	line-height: 1.4;
}

.p-service-list__main-text {
	margin: 0;
	font-size: 15px;
	line-height: 1.9;
	color: rgba(255, 255, 255, 0.85);
}

.p-service-list__actions {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
	margin-top: 6px;
}

.p-service-list__sub {
	display: grid;
	grid-template-columns: 420px minmax(0, 1fr);
	border-radius: 28px;
	overflow: hidden;
	background: #ffffff;
	box-shadow: 0 10px 30px rgba(20, 30, 40, 0.05);
}

.p-service-list__sub-image {
	min-height: 340px;
}

.p-service-list__sub-text {
	margin: 0;
	font-size: 15px;
	line-height: 1.9;
	color: #3b4450;
}

.p-service-list__sub-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
	color: #1a1a1a;
}

@media (max-width: 1023px) {
	.p-service-list__main {
		grid-template-columns: minmax(0, 1fr);
	}

	.p-service-list__main-image {
		min-height: 220px;
	}

	.p-service-list__sub {
		grid-template-columns: minmax(0, 1fr);
	}

	.p-service-list__sub-image {
		min-height: 220px;
	}
}

@media (max-width: 767px) {
	.p-service-list__body {
		padding: 26px 20px;
	}
}

/* ---------- AI検索対策（GEO）（p-geo-） ---------- */

.p-geo-what__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 380px;
	gap: 40px;
	align-items: start;
}

.p-geo-what__table {
	border-radius: 24px;
	overflow: hidden;
	border: 1px solid #e5e9ef;
	background: #ffffff;
}

.p-geo-what__table-head {
	display: grid;
	grid-template-columns: 200px 1fr 1fr;
	background: #f4f5f6;
}

.p-geo-what__th-blank {
	padding: 18px 24px;
	font-size: 13px;
	font-weight: 700;
	color: #5b6470;
}

.p-geo-what__th {
	padding: 18px 24px;
	font-size: 15px;
	font-weight: 700;
}

.p-geo-what__th-geo {
	padding: 18px 24px;
	font-size: 15px;
	font-weight: 700;
	color: #3b4450;
}

.p-geo-what__table-row {
	display: grid;
	grid-template-columns: 200px 1fr 1fr;
	border-top: 1px solid #e5e9ef;
}

.p-geo-what__row-label {
	padding: 20px 24px;
	font-size: 14px;
	font-weight: 700;
	color: #5b6470;
}

.p-geo-what__cell {
	padding: 20px 24px;
	font-size: 14px;
	line-height: 1.7;
	color: #3b4450;
}

.p-geo-what__cell-geo {
	padding: 20px 24px;
	font-size: 14px;
	line-height: 1.7;
	color: #1a1a1a;
	background: #f7f8f9;
}

@media (max-width: 1023px) {
	.p-geo-what__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.p-geo-what__table-head {
		grid-template-columns: minmax(0, 1fr);
	}

	.p-geo-what__table-row {
		grid-template-columns: minmax(0, 1fr);
	}
}

.p-geo__box {
	box-sizing: border-box;
	padding: 36px;
	border-radius: 24px;
	background: #ffffff;
	box-shadow: 0 10px 30px rgba(20, 30, 40, 0.05);
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.p-geo-how__number {
	width: 44px;
	height: 44px;
	border-radius: 999px;
	background: linear-gradient(45deg, #cd1dfb, #1f80c4);
	color: #ffffff;
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 16px;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
}

.p-geo-how__note {
	margin: 0;
	font-size: 13px;
	line-height: 1.8;
	color: #5b6470;
}

.p-geo-service__relation {
	display: flex;
	align-items: center;
	justify-content: space-between;
	box-sizing: border-box;
	padding: 28px 36px;
	border-radius: 20px;
	background: #f4f5f6;
}

.p-geo-service__relation-text {
	font-size: 14px;
	line-height: 1.8;
	color: #3b4450;
}

.p-geo-flow__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 35% center;
	display: block;
}

.p-geo-flow__step {
	display: grid;
	grid-template-columns: 48px minmax(0, 1fr);
	gap: 24px;
	align-items: start;
	box-sizing: border-box;
	padding: 26px 32px;
	border-radius: 20px;
	background: #ffffff;
	box-shadow: 0 10px 30px rgba(20, 30, 40, 0.05);
}

.p-geo-flow__arrow {
	display: flex;
	padding-left: 45px;
	height: 34px;
	align-items: center;
}

.p-geo-plan__table {
	border-radius: 20px;
	overflow: hidden;
	background: #ffffff;
	box-shadow: 0 10px 30px rgba(20, 30, 40, 0.05);
}

.p-geo-plan__table-head {
	display: grid;
	grid-template-columns: minmax(0, 2fr) repeat(2, minmax(0, 1fr));
	background: #f7f8fa;
	border-bottom: 1px solid #e5e9ef;
}

.p-geo-plan__th-label {
	padding: 16px 24px;
	font-size: 13px;
	font-weight: 700;
	color: #5b6470;
}

.p-geo-plan__th {
	padding: 16px 12px;
	text-align: center;
	font-size: 14px;
	font-weight: 700;
}

.p-geo-plan__table-row {
	display: grid;
	grid-template-columns: minmax(0, 2fr) repeat(2, minmax(0, 1fr));
	border-bottom: 1px solid #edf0f4;
	align-items: center;
}

.p-geo-plan__row-label {
	padding: 16px 24px;
	font-size: 14px;
	line-height: 1.6;
}

.p-geo-plan__cell-check {
	padding: 16px 12px;
	display: flex;
	justify-content: center;
}

.p-geo-plan__cell-text {
	padding: 16px 12px;
	text-align: center;
	font-size: 13px;
	font-weight: 700;
	color: #1a1a1a;
}

.p-geo-plan__cell-none {
	padding: 16px 12px;
	text-align: center;
	font-size: 13px;
	font-weight: 700;
	color: #9aa4b2;
}

@media (max-width: 639px) {
	.p-geo-plan__table-head {
		font-size: 12px;
	}

	.p-geo-plan__table-row {
		font-size: 12px;
	}
}

.p-geo-data {
	background: linear-gradient(45deg, #5e1683 0%, #134d7a 100%);
	position: relative;
	overflow: hidden;
	isolation: isolate;
	box-sizing: border-box;
	padding: 128px var(--gx);
	display: flex;
	flex-direction: column;
	gap: 56px;
}

.p-geo-data__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 460px;
	gap: 64px;
	align-items: center;
	color: #ffffff;
}

.p-geo-data__title {
	margin: 0;
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 44px;
	font-weight: 500;
	line-height: 1.4;
	color: #ffffff;
}

.p-geo-data__report-title {
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 22px;
	font-weight: 700;
	line-height: 1.5;
}

.p-geo-data__report-text {
	margin: 0;
	font-size: 14px;
	line-height: 1.8;
	color: rgba(255, 255, 255, 0.8);
}

.p-geo-data__report-tags {
	display: flex;
	align-items: center;
	gap: 12px;
	font-size: 13px;
	color: rgba(255, 255, 255, 0.7);
}

.p-geo-data__report-tag {
	padding: 5px 10px;
	border-radius: 999px;
	border: 1px solid rgba(255, 255, 255, 0.35);
}

@media (max-width: 1023px) {
	.p-geo-data__inner {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 767px) {
	.p-geo-data {
		padding: 72px 20px;
	}

	.p-geo-data__title {
		font-size: 28px;
	}
}

/* ---------- 福岡のAI検索対策（GEO）（p-geo-fukuoka-） ---------- */

.p-geo-fukuoka-hero__title {
	margin: 0;
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 40px;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0.01em;
	color: #1a1a1a;
}

@media (max-width: 767px) {
	.p-geo-fukuoka-hero__title {
		font-size: 26px;
	}
}

.p-geo-fukuoka-office__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 520px;
	gap: 64px;
	align-items: start;
}

.p-geo-fukuoka-office__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 14px;
	color: #1a1a1a;
}

.p-geo-fukuoka-office__item {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	font-size: 15px;
	line-height: 1.7;
}

@media (max-width: 1023px) {
	.p-geo-fukuoka-office__grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

.p-geo-fukuoka-why__box {
	box-sizing: border-box;
	padding: 36px;
	border-radius: 24px;
	background: #ffffff;
	box-shadow: 0 10px 30px rgba(20, 30, 40, 0.05);
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.p-geo-fukuoka-why__question {
	align-self: flex-start;
	box-sizing: border-box;
	padding: 12px 18px;
	border-radius: 999px 18px 18px 4px;
	background: linear-gradient(135deg, #f8f1ff 0%, #edf4ff 100%);
	font-size: 15px;
	font-weight: 500;
	line-height: 1.6;
}

.p-geo-fukuoka-service__number {
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.06em;
	color: #1e5eb8;
}

.p-geo-fukuoka-results__rank {
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 48px;
	font-weight: 700;
	line-height: 1;
	background: linear-gradient(45deg, #cd1dfb, #1f80c4);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

@media (max-width: 767px) {
	.p-geo-fukuoka-results__rank {
		font-size: 28px;
	}
}

.p-geo-fukuoka-ourselves {
	background: linear-gradient(45deg, #5e1683 0%, #134d7a 100%);
	position: relative;
	overflow: hidden;
	isolation: isolate;
	box-sizing: border-box;
	padding: 128px var(--gx);
	display: flex;
	flex-direction: column;
	gap: 56px;
	color: #ffffff;
}

.p-geo-fukuoka-ourselves__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 460px;
	gap: 64px;
	align-items: center;
}

.p-geo-fukuoka-ourselves__note {
	font-size: 13px;
	color: rgba(255, 255, 255, 0.7);
}

@media (max-width: 1023px) {
	.p-geo-fukuoka-ourselves__inner {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 767px) {
	.p-geo-fukuoka-ourselves {
		padding: 72px 20px;
	}
}

/* ---------- 福岡オフィス（p-fukuoka-） ---------- */

.p-fukuoka-about__title {
	font-size: 19px;
	font-weight: 700;
	line-height: 1.5;
}

.p-fukuoka-service__card {
	box-sizing: border-box;
	padding: 28px;
	border-radius: 20px;
	background: #ffffff;
	border: 1px solid #e5e9ef;
	color: #1a1a1a;
	text-decoration: none;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

/* ---------- Webマーケティング（p-marketing-） ---------- */

.p-marketing-reason__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% center;
	display: block;
}

.p-marketing-approach__card {
	box-sizing: border-box;
	padding: 36px;
	border-radius: 24px;
	background: #ffffff;
	box-shadow: 0 10px 30px rgba(20, 30, 40, 0.05);
	color: #1a1a1a;
	text-decoration: none;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.p-marketing-approach__catch {
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 28px;
	font-weight: 700;
	background: linear-gradient(45deg, #cd1dfb, #1f80c4);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	align-self: flex-start;
}

.p-marketing-results {
	background: #ffffff;
	position: relative;
	box-sizing: border-box;
	padding: 128px var(--gx);
	display: flex;
	flex-direction: column;
	gap: 28px;
}

@media (max-width: 767px) {
	.p-marketing-results {
		padding: 72px 20px;
	}
}

/* ---------- SEO対策（p-seo-） ---------- */

.p-seo-policy__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
}

.p-seo-results__rank-item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 56px;
	box-sizing: border-box;
	padding: 0 18px;
	border-radius: 14px;
	background: #ffffff;
	box-shadow: 0 10px 30px rgba(20, 30, 40, 0.05);
}

.p-seo-results__keyword {
	font-size: 14px;
	font-weight: 500;
}

.p-seo-results__rank {
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 20px;
	font-weight: 700;
	color: #1e5eb8;
}

/* ---------- コンバージョン率最適化（p-cro-） ---------- */

.p-cro-hero__title {
	margin: 0;
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 46px;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0.01em;
	color: #1a1a1a;
}

@media (max-width: 767px) {
	.p-cro-hero__title {
		font-size: 28px;
	}
}

/* ---------- Instagram運用アドバイス（p-instagram-） ---------- */

.p-instagram-hero__title {
	margin: 0;
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 44px;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0.01em;
	color: #1a1a1a;
}

@media (max-width: 767px) {
	.p-instagram-hero__title {
		font-size: 28px;
	}
}

.p-instagram-why__title {
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 21px;
	font-weight: 700;
	line-height: 1.5;
}

/* ---------- ホームページ制作（p-create-） ---------- */

.p-create-platform__card {
	box-sizing: border-box;
	padding: 32px;
	border-radius: 20px;
	background: #ffffff;
	box-shadow: 0 10px 30px rgba(20, 30, 40, 0.05);
	display: flex;
	gap: 20px;
	align-items: flex-start;
}

.p-create-works {
	background: #ffffff;
	box-sizing: border-box;
	padding: 128px 0 128px var(--gx);
	display: flex;
	flex-direction: column;
	gap: 40px;
}

.p-create-works__examples {
	padding-right: var(--gx);
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.p-create-works__example {
	box-sizing: border-box;
	padding: 18px 20px;
	border-radius: 16px;
	background: #f4f5f6;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

@media (max-width: 767px) {
	.p-create-works {
		padding-left: 20px;
		padding-right: 20px;
	}

	.p-create-works__examples {
		padding-right: 20px;
	}
}

.p-create-flow__step {
	display: grid;
	grid-template-columns: 48px minmax(0, 1fr);
	gap: 24px;
	align-items: start;
	box-sizing: border-box;
	padding: 24px 32px;
	border-radius: 20px;
	background: #ffffff;
	box-shadow: 0 10px 30px rgba(20, 30, 40, 0.05);
}

.p-create-flow__arrow {
	display: flex;
	padding-left: 45px;
	height: 30px;
	align-items: center;
}

.p-create-price__actions {
	display: flex;
	gap: 12px;
}

/* ---------- ホームページ制作 料金プラン（p-plan-） ---------- */

.p-plan-unit__table {
	box-sizing: border-box;
	padding: 12px 40px;
	border-radius: 24px;
	background: #ffffff;
	box-shadow: 0 10px 30px rgba(20, 30, 40, 0.05);
}

.p-plan-unit__row {
	display: flex;
	justify-content: space-between;
	gap: 24px;
	padding: 18px 0;
	border-bottom: 1px solid #edf0f4;
	font-size: 16px;
}

.p-plan-unit__price {
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-weight: 700;
	white-space: nowrap;
}

.p-plan-unit__note {
	padding: 18px 0;
	font-size: 13px;
	color: #5b6470;
}

@media (max-width: 767px) {
	.p-plan-unit__table {
		padding: 8px 18px;
	}
}

/* ---------- ECサイト制作（p-ec-） ---------- */

.p-ec-package__card {
	position: relative;
	box-sizing: border-box;
	padding: 44px 40px;
	border-radius: 28px;
	background: linear-gradient(45deg, #5e1683 0%, #134d7a 100%);
	box-shadow: 0 16px 40px rgba(15, 25, 45, 0.16);
	color: #ffffff;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

@media (max-width: 767px) {
	.p-ec-package__card {
		padding: 26px 20px;
	}
}

.p-ec-other__card {
	box-sizing: border-box;
	padding: 36px;
	border-radius: 20px;
	background: #ffffff;
	box-shadow: 0 10px 30px rgba(20, 30, 40, 0.05);
	display: flex;
	gap: 20px;
	align-items: flex-start;
}

/* ---------- 料金（p-price-） ---------- */

.p-price-nav__link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 18px;
	border-radius: 999px;
	background: #ffffff;
	border: 1px solid #e3e5e8;
	font-size: 14px;
	font-weight: 700;
	color: #1a1a1a;
	text-decoration: none;
}

.p-price__create-card {
	position: relative;
	box-sizing: border-box;
	padding: 40px 36px;
	border-radius: 24px;
	border: 2px solid transparent;
	background: linear-gradient(#ffffff, #ffffff) padding-box, linear-gradient(45deg, #cd1dfb, #1f80c4) border-box;
	box-shadow: 0 10px 30px rgba(20, 30, 40, 0.05);
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.p-price__ec-card {
	position: relative;
	box-sizing: border-box;
	padding: 44px 40px;
	border-radius: 28px;
	border: 2px solid transparent;
	background: linear-gradient(#ffffff, #ffffff) padding-box, linear-gradient(45deg, #cd1dfb, #1f80c4) border-box;
	box-shadow: 0 10px 30px rgba(20, 30, 40, 0.05);
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.p-price__maintenance-card {
	position: relative;
	box-sizing: border-box;
	padding: 40px 36px;
	border-radius: 24px;
	border: 2px solid transparent;
	background: linear-gradient(#ffffff, #ffffff) padding-box, linear-gradient(45deg, #cd1dfb, #1f80c4) border-box;
	box-shadow: 0 10px 30px rgba(20, 30, 40, 0.05);
	display: flex;
	flex-direction: column;
	gap: 18px;
}

@media (max-width: 767px) {
	.p-price__create-card {
		padding: 26px 20px;
	}

	.p-price__ec-card {
		padding: 26px 20px;
	}

	.p-price__maintenance-card {
		padding: 26px 20px;
	}
}

/* ---------- お問い合わせ（p-contact-） ---------- */

.p-contact {
	background: #f4f5f6;
	box-sizing: border-box;
	padding: 96px var(--gx) 128px;
	display: flex;
	flex-direction: column;
	gap: 40px;
}

.p-contact__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 300px;
	gap: 40px;
	align-items: start;
}

.p-contact__main {
	box-sizing: border-box;
	padding: 48px;
	border-radius: 28px;
	background: #ffffff;
	box-shadow: 0 10px 30px rgba(20, 30, 40, 0.05);
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.p-contact__tel-label {
	font-size: 14px;
	font-weight: 700;
	color: #5b6470;
}

.p-contact__tel-number {
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 30px;
	font-weight: 700;
	letter-spacing: 0.02em;
}

.p-contact__flow {
	box-sizing: border-box;
	padding: 28px;
	border-radius: 20px;
	background: #ffffff;
	box-shadow: 0 10px 30px rgba(20, 30, 40, 0.05);
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.p-contact__flow-number {
	width: 26px;
	height: 26px;
	flex-shrink: 0;
	border-radius: 999px;
	background: #eef0f2;
	color: #3b4450;
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 12px;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
}

.p-contact__free {
	box-sizing: border-box;
	padding: 24px 28px;
	border-radius: 20px;
	background: #f4f5f6;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

@media (max-width: 1023px) {
	.p-contact__grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 767px) {
	.p-contact {
		padding-left: 20px;
		padding-right: 20px;
	}

	.p-contact {
		padding: 56px 20px 72px;
	}

	.p-contact__main {
		padding: 26px 20px;
	}

	.p-contact__tel-number {
		font-size: 22px;
	}
}

/* ---------- お問い合わせ 完了（p-thanks-） ---------- */

.p-thanks {
	background: #f4f5f6;
	box-sizing: border-box;
	padding: 96px var(--gx) 128px;
	display: flex;
	flex-direction: column;
}

.p-thanks__card {
	width: 920px;
	align-self: center;
	box-sizing: border-box;
	padding: 56px;
	border-radius: 28px;
	background: #ffffff;
	box-shadow: 0 10px 30px rgba(20, 30, 40, 0.05);
	display: flex;
	flex-direction: column;
	gap: 28px;
	align-items: center;
	text-align: center;
}

.p-thanks__icon {
	width: 72px;
	height: 72px;
	border-radius: 999px;
	background: linear-gradient(45deg, #cd1dfb, #1f80c4);
	display: flex;
	align-items: center;
	justify-content: center;
}

.p-thanks__title {
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 32px;
	font-weight: 700;
}

.p-thanks__links {
	width: 100%;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
	text-align: left;
}

.p-thanks__link-card {
	box-sizing: border-box;
	padding: 24px;
	border-radius: 18px;
	background: #f4f5f6;
	color: #1a1a1a;
	text-decoration: none;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

@media (max-width: 1023px) {
	.p-thanks__card {
		width: 100%;
	}

	.p-thanks__links {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.p-thanks {
		padding-left: 20px;
		padding-right: 20px;
	}

	.p-thanks {
		padding: 56px 20px 72px;
	}

	.p-thanks__card {
		padding: 28px 20px;
	}

	.p-thanks__title {
		font-size: 22px;
	}
}

@media (max-width: 639px) {
	.p-thanks__links {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* ---------- 会社概要（p-about-） ---------- */

.p-about-message__grid {
	display: grid;
	grid-template-columns: 380px minmax(0, 1fr);
	gap: 64px;
	align-items: start;
}

.p-about-message__photo {
	height: 460px;
	border-radius: 24px;
	overflow: hidden;
	background: #e9ebf3;
}

.p-about-message__body {
	display: flex;
	flex-direction: column;
	gap: 22px;
	padding-top: 8px;
	max-width: 640px;
}

.p-about-message__name {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding-bottom: 24px;
	border-bottom: 1px solid #e3e5e8;
}

.p-about-message__text {
	margin: 0;
	font-size: 16px;
	line-height: 2.0;
	color: #1a1a1a;
}

@media (max-width: 1023px) {
	.p-about-message__grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

.p-about-company__row {
	display: grid;
	grid-template-columns: 220px minmax(0, 1fr);
	gap: 32px;
	padding: 26px 8px;
	border-bottom: 1px solid #e5e9ef;
}

.p-about-company__links {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

@media (max-width: 1023px) {
	.p-about-company__row {
		grid-template-columns: minmax(0, 1fr);
	}
}

.p-about-business__card-main {
	position: relative;
	box-sizing: border-box;
	padding: 32px;
	border-radius: 24px;
	background: linear-gradient(45deg, #5e1683 0%, #134d7a 100%);
	box-shadow: 0 16px 40px rgba(15, 25, 45, 0.16);
	color: #ffffff;
	text-decoration: none;
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.p-about-business__badge {
	position: absolute;
	top: -14px;
	left: 32px;
	padding: 6px 14px;
	border-radius: 999px;
	background: #c9d1f3;
	color: #1b2a44;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.06em;
}

.p-about-business__icon {
	width: 48px;
	height: 48px;
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.12);
	border: 1px solid rgba(255, 255, 255, 0.25);
	display: flex;
	align-items: center;
	justify-content: center;
}

.p-about-business__text {
	margin: 0;
	font-size: 14px;
	line-height: 1.8;
	color: rgba(255, 255, 255, 0.82);
}

.p-about-business__more {
	margin-top: auto;
	font-size: 13px;
	font-weight: 700;
	color: #ffffff;
}

.p-about-business__card {
	box-sizing: border-box;
	padding: 32px;
	border-radius: 24px;
	background: #ffffff;
	border: 1px solid #e5e9ef;
	color: #1a1a1a;
	text-decoration: none;
	display: flex;
	flex-direction: column;
	gap: 14px;
}

/* ---------- 採用情報（p-job-） ---------- */

.p-job-workstyle__number {
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 44px;
	font-weight: 700;
	line-height: 1.05;
	color: #1a1a1a;
}

@media (max-width: 767px) {
	.p-job-workstyle__number {
		font-size: 28px;
	}
}

.p-job-requirements__row {
	display: grid;
	grid-template-columns: 220px minmax(0, 1fr);
	gap: 32px;
	padding: 24px 8px;
	border-bottom: 1px solid #e5e9ef;
}

.p-job-requirements__td {
	font-size: 16px;
	line-height: 1.9;
	color: #3b4450;
}

@media (max-width: 1023px) {
	.p-job-requirements__row {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* ---------- サイトマップ（p-sitemap-） ---------- */

.p-sitemap__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 32px;
}

.p-sitemap__title {
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 22px;
	font-weight: 700;
	padding-bottom: 14px;
	border-bottom: 2px solid #eef0f2;
}

.p-sitemap__link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 4px;
	border-bottom: 1px solid #edf0f4;
	font-size: 15px;
	color: #1a1a1a;
	text-decoration: none;
}

.p-sitemap__arrow {
	color: #9aa4b2;
}

@media (max-width: 1023px) {
	.p-sitemap__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 639px) {
	.p-sitemap__grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* ---------- ブログ記事（p-article-） ---------- */

.p-article-header {
	background: #ffffff;
	box-sizing: border-box;
	padding: 40px var(--gx) 48px;
	display: flex;
	flex-direction: column;
	gap: 40px;
}

.p-article-header__inner {
	width: 880px;
	align-self: center;
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.p-article-header__category {
	padding: 4px 12px;
	border-radius: 999px;
	background: #eef0f2;
	color: #3b4450;
	font-size: 12px;
	font-weight: 700;
}

.p-article-header__title {
	margin: 0;
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 42px;
	font-weight: 700;
	line-height: 1.45;
}

.p-article-header__avatar {
	width: 44px;
	height: 44px;
	border-radius: 999px;
	overflow: hidden;
	background: #e9ebf3;
}

.p-article-header__thumbnail {
	aspect-ratio: 16 / 9;
	border-radius: 24px;
	overflow: hidden;
	margin-top: 8px;
}

@media (max-width: 1023px) {
	.p-article-header__inner {
		width: 100%;
	}
}

@media (max-width: 767px) {
	.p-article-header {
		padding-left: 20px;
		padding-right: 20px;
	}

	.p-article-header__title {
		font-size: 26px;
	}
}

.p-article__avatar-image {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.p-article__container {
	width: 760px;
	align-self: center;
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.p-article__toc {
	box-sizing: border-box;
	padding: 28px 32px;
	border-radius: 20px;
	background: #f4f5f6;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

@media (max-width: 1023px) {
	.p-article__container {
		width: 100%;
	}
}

.p-article-author {
	display: grid;
	grid-template-columns: 96px minmax(0, 1fr);
	gap: 24px;
	align-items: center;
	box-sizing: border-box;
	padding: 28px;
	margin-top: 24px;
	border-radius: 24px;
	background: #ffffff;
	border: 1px solid #e5e9ef;
}

.p-article-author__avatar {
	width: 96px;
	height: 96px;
	border-radius: 999px;
	overflow: hidden;
	background: #e9ebf3;
}

.p-article-author__link {
	font-size: 13px;
	font-weight: 700;
	color: #1e5eb8;
}

.p-article-related {
	background: #f4f5f6;
	box-sizing: border-box;
	padding: 128px var(--gx);
	display: flex;
	flex-direction: column;
	gap: 40px;
}

@media (max-width: 767px) {
	.p-article-related {
		padding: 72px 20px;
	}
}

/* ---------- 実績・事例紹介（p-works-） ---------- */

.p-works-hero__links {
	display: flex;
	gap: 12px;
	margin-top: 8px;
}

.p-works-marketing {
	background: #f4f5f6;
	box-sizing: border-box;
	padding: 128px var(--gx);
	display: flex;
	flex-direction: column;
	gap: 48px;
}

.p-works-marketing__number {
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 34px;
	font-weight: 700;
	line-height: 1.1;
	background: linear-gradient(45deg, #cd1dfb, #1f80c4);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.p-works-marketing__unit {
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 16px;
	font-weight: 700;
}

.p-works-marketing__period {
	font-size: 13px;
	color: #3b4450;
}

@media (max-width: 767px) {
	.p-works-marketing {
		padding: 72px 20px;
	}

	.p-works-marketing__number {
		font-size: 22px;
	}
}

.p-works-production {
	background: #ffffff;
	box-sizing: border-box;
	padding: 128px var(--gx);
	display: flex;
	flex-direction: column;
	gap: 48px;
}

.p-works-production__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 48px 28px;
}

@media (max-width: 1023px) {
	.p-works-production__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.p-works-production {
		padding: 72px 20px;
	}
}

@media (max-width: 639px) {
	.p-works-production__grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

.p-works-detail__meta {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin-top: 12px;
	border-top: 1px solid #e3e5e8;
	border-bottom: 1px solid #e3e5e8;
}

.p-works-detail__meta-item {
	padding: 18px 20px 18px 0;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

@media (max-width: 1023px) {
	.p-works-detail__meta {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 639px) {
	.p-works-detail__meta {
		grid-template-columns: minmax(0, 1fr);
	}
}

.p-works-detail-visual {
	background: #ffffff;
	box-sizing: border-box;
	padding: 16px var(--gx) 96px;
	display: flex;
	flex-direction: column;
}

.p-works-detail-visual__browser {
	border-radius: 24px;
	overflow: hidden;
	background: #eceef5;
	box-shadow: 0 30px 80px rgba(15, 25, 45, 0.10);
}

.p-works-detail-visual__bar {
	height: 36px;
	background: #f3f4f8;
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 0 16px;
}

.p-works-detail-visual__dot {
	width: 10px;
	height: 10px;
	border-radius: 999px;
	background: #e2e5ee;
}

.p-works-detail-visual__image {
	width: 100%;
	height: 620px;
	object-fit: cover;
	object-position: top center;
	display: block;
}

@media (max-width: 767px) {
	.p-works-detail-visual {
		padding-left: 20px;
		padding-right: 20px;
	}

	.p-works-detail-visual__image {
		height: 260px;
	}
}

.p-works-detail-story {
	background: #f4f5f6;
	box-sizing: border-box;
	padding: 128px var(--gx);
	display: flex;
	flex-direction: column;
	gap: 32px;
}

.p-works-detail-story__row {
	display: grid;
	grid-template-columns: 240px minmax(0, 1fr);
	gap: 48px;
	padding: 36px 0;
	border-top: 1px solid #e3e5e8;
}

.p-works-detail-story__label {
	font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 14px;
	font-weight: 700;
	color: #1e5eb8;
}

.p-works-detail-story__text {
	margin: 0;
	font-size: 16px;
	line-height: 2.0;
	color: #3b4450;
	max-width: 720px;
}

@media (max-width: 1023px) {
	.p-works-detail-story__row {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 767px) {
	.p-works-detail-story {
		padding: 72px 20px;
	}
}

.p-works-detail-related {
	background: #ffffff;
	box-sizing: border-box;
	padding: 128px var(--gx);
	display: flex;
	flex-direction: column;
	gap: 40px;
}

@media (max-width: 767px) {
	.p-works-detail-related {
		padding: 72px 20px;
	}
}


/* ==========================================================================
   Utility（u-）：並べ方・余白・文字サイズなどの汎用指定
   ========================================================================== */

/* ---------- 縦に並べる（数字は間隔 px） ---------- */

.u-stack {
	display: flex;
	flex-direction: column;
}

.u-stack-2 {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.u-stack-4 {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.u-stack-6 {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.u-stack-8 {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.u-stack-10 {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.u-stack-12 {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.u-stack-14 {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.u-stack-18 {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.u-stack-20 {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.u-stack-22 {
	display: flex;
	flex-direction: column;
	gap: 22px;
}

/* ---------- 横に並べる（数字は間隔 px） ---------- */

.u-row-between {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.u-row-baseline-6 {
	display: flex;
	align-items: baseline;
	gap: 6px;
}

.u-row-baseline-8 {
	display: flex;
	align-items: baseline;
	gap: 8px;
}

.u-row-10 {
	display: flex;
	align-items: center;
	gap: 10px;
}

.u-row-12 {
	display: flex;
	align-items: center;
	gap: 12px;
}

.u-row-top-12 {
	display: flex;
	gap: 12px;
	align-items: flex-start;
}

.u-row-14 {
	display: flex;
	align-items: center;
	gap: 14px;
}

.u-row-16 {
	display: flex;
	align-items: center;
	gap: 16px;
}

/* ---------- 列に並べる（数字は列の数） ---------- */

.u-grid-2 {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
}

@media (max-width: 639px) {
	.u-grid-2 {
		grid-template-columns: minmax(0, 1fr);
	}
}

.u-grid-2-tight {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
}

@media (max-width: 639px) {
	.u-grid-2-tight {
		grid-template-columns: minmax(0, 1fr);
	}
}

.u-grid-3 {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

@media (max-width: 1023px) {
	.u-grid-3 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 639px) {
	.u-grid-3 {
		grid-template-columns: minmax(0, 1fr);
	}
}

.u-grid-3-tight {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}

@media (max-width: 1023px) {
	.u-grid-3-tight {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 639px) {
	.u-grid-3-tight {
		grid-template-columns: minmax(0, 1fr);
	}
}

.u-grid-4 {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
}

@media (max-width: 1023px) {
	.u-grid-4 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 639px) {
	.u-grid-4 {
		grid-template-columns: minmax(0, 1fr);
	}
}

.u-grid-4-tight {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
}

@media (max-width: 1023px) {
	.u-grid-4-tight {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 639px) {
	.u-grid-4-tight {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* ---------- 上の余白 ---------- */

.u-mt-auto {
	margin-top: auto;
}

.u-mt-6 {
	margin-top: 6px;
}

.u-mt-8 {
	margin-top: 8px;
}

/* ---------- 画像を枠いっぱいに表示（数字は横方向の基準位置 %） ---------- */

.u-img-cover {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.u-img-cover-40 {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 40% center;
	display: block;
}

.u-img-cover-60 {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 60% center;
	display: block;
}

/* ---------- 文字（数字は文字サイズ px） ---------- */

.u-text-12-bold-gray {
	font-size: 12px;
	font-weight: 700;
	color: #5b6470;
}

.u-text-12-gray {
	font-size: 12px;
	color: #5b6470;
}

.u-text-12-gray-lh18 {
	font-size: 12px;
	line-height: 1.8;
	color: #5b6470;
}

.u-text-13-bold-gray {
	font-size: 13px;
	font-weight: 700;
	color: #5b6470;
}

.u-text-13-bold-lavender {
	font-size: 13px;
	font-weight: 700;
	color: #c9d1f3;
}

.u-text-13-bold-sub {
	font-size: 13px;
	font-weight: 700;
	color: #3b4450;
}

.u-text-13-gray {
	font-size: 13px;
	color: #5b6470;
}

.u-text-13-gray-lh18 {
	font-size: 13px;
	line-height: 1.8;
	color: #5b6470;
}

.u-text-13-sub-lh17 {
	font-size: 13px;
	line-height: 1.7;
	color: #3b4450;
}

.u-text-13-sub-lh18 {
	font-size: 13px;
	line-height: 1.8;
	color: #3b4450;
}

.u-text-13-white78 {
	font-size: 13px;
	color: rgba(255, 255, 255, 0.78);
}

.u-text-14-bold {
	font-size: 14px;
	font-weight: 700;
}

.u-text-14-sub {
	font-size: 14px;
	color: #3b4450;
}

.u-text-15-bold {
	font-size: 15px;
	font-weight: 700;
}

.u-text-16-bold {
	font-size: 16px;
	font-weight: 700;
}

.u-text-18-bold {
	font-size: 18px;
	font-weight: 700;
}

/* ---------- 見出し用の文字（数字は文字サイズ px） ---------- */

.u-heading-24 {
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 24px;
	font-weight: 700;
}

.u-heading-26 {
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 26px;
	font-weight: 700;
}

.u-heading-28 {
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
	font-size: 28px;
	font-weight: 700;
}

/* 英字のラベル・単位・コピーライトは Roboto */
.p-top-services__chip,
.c-result-case__chip,
.c-stat-unit,
.l-footer__bottom {
  font-family: 'Roboto', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
}
