/*
 * Φ-Designer 製品ページ（LP）・トライアル申込・トップページの製品セクション
 * 接頭辞 pd- = phi-designer。文言は inc/phi-designer-data.php、表示は template-parts/entry-fai-designer.php
 */
:root {
	--pd-navy: #24293a;
	--pd-navy-2: #1d212e;
	--pd-accent: #509197;
	--pd-accent-2: #3c7a80;
	--pd-tint: #f4f6f9;
	--pd-line: #e3e7ee;
	--pd-text: #2b2f3a;
	--pd-muted: #6b7280;
	--pd-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
	--pd-radius: 14px;
}

/* ---------- ページ全体（body.pd-page） ---------- */
.pd-page .site-body {
	padding-top: 0;
	padding-bottom: 0;
}
.pd-page .main-section {
	margin-top: 0;
	margin-bottom: 0;
}
.pd-page .breadcrumb {
	font-size: 12px;
}
.pd {
	color: var(--pd-text);
	line-height: 1.8;
	font-size: 16px;
}
.pd *,
.pd *::before,
.pd *::after {
	box-sizing: border-box;
}
.pd img {
	max-width: 100%;
	height: auto;
}
.pd-bleed {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}
.pd-wrap {
	max-width: 1140px;
	margin: 0 auto;
	padding: 0 20px;
}
.pd-section {
	padding: 88px 0;
}
.pd-section--tint {
	background: var(--pd-tint);
}
.pd-section--tint.pd-section {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}
.pd-section--tint > .pd-wrap {
	max-width: 1140px;
}
@media (max-width: 782px) {
	.pd-section {
		padding: 60px 0;
	}
}

/* 見出し（子テーマの h2 共通スタイルを打ち消す） */
.pd h1,
.pd h2,
.pd h3 {
	border: 0;
	padding: 0;
	left: auto;
	transform: none;
	display: block;
	letter-spacing: 0.02em;
}
/* 親テーマ（origin3 スキン）が h3 に付ける下線の疑似要素を消す */
.pd h1::after,
.pd h2::after,
.pd h3::after,
.pd-home h2::after {
	content: none;
	display: none;
}
.pd-eyebrow {
	display: inline-block;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--pd-accent);
	margin: 0 0 14px;
}
.pd-on-dark .pd-eyebrow {
	color: #9fd6da;
}
.pd-h2 {
	font-size: clamp(1.5rem, 2.6vw, 2rem);
	line-height: 1.35;
	margin: 0 0 16px;
	text-align: center;
	font-weight: 700;
}
.pd-h2__en {
	display: block;
	font-size: 12px;
	letter-spacing: 0.2em;
	color: var(--pd-accent);
	margin-bottom: 10px;
	font-family: Lato, "Noto Sans JP", sans-serif;
}
.pd-sub {
	text-align: center;
	color: var(--pd-muted);
	max-width: 760px;
	margin: 0 auto 44px;
}

/* ボタン */
.pd-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5em;
	min-height: 52px;
	padding: 0.7em 1.8em;
	border-radius: 999px;
	font-weight: 700;
	font-size: 15px;
	line-height: 1.3;
	text-decoration: none !important;
	border: 2px solid transparent;
	cursor: pointer;
	transition: transform 0.25s var(--pd-ease), box-shadow 0.25s var(--pd-ease), background-color 0.25s, color 0.25s, border-color 0.25s;
}
.pd-btn:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 28px rgba(36, 41, 58, 0.18);
}
.pd-btn--primary {
	background: var(--pd-accent);
	color: #fff !important;
	border-color: var(--pd-accent);
}
.pd-btn--primary:hover {
	background: var(--pd-accent-2);
	border-color: var(--pd-accent-2);
}
.pd-btn--primary::after {
	content: "\2192";
	transition: transform 0.25s var(--pd-ease);
}
.pd-btn--primary:hover::after {
	transform: translateX(4px);
}
.pd-btn--ghost {
	background: transparent;
	color: var(--pd-navy) !important;
	border-color: rgba(36, 41, 58, 0.35);
}
.pd-btn--ghost:hover {
	background: #fff;
	border-color: var(--pd-navy);
}
.pd-on-dark .pd-btn--ghost {
	color: #fff !important;
	border-color: rgba(255, 255, 255, 0.7);
}
.pd-on-dark .pd-btn--ghost:hover {
	background: #fff;
	color: var(--pd-navy) !important;
}
.pd-btn--block {
	width: 100%;
}
.pd-cta-row {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 14px;
	margin-top: 28px;
}
.pd-link {
	font-weight: 700;
	color: var(--pd-accent);
	text-decoration: none;
}
.pd-link:hover {
	text-decoration: underline;
}

/* ---------- ヒーロー ---------- */
.pd-hero {
	position: relative;
	overflow: hidden;
	background:
		radial-gradient(900px 500px at 85% 10%, rgba(80, 145, 151, 0.35), transparent 60%),
		radial-gradient(700px 400px at 10% 90%, rgba(80, 145, 151, 0.18), transparent 60%),
		linear-gradient(160deg, #1d212e 0%, #24293a 55%, #2a3148 100%);
	color: #fff;
	padding: 80px 0 64px;
}
.pd-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: radial-gradient(rgba(255, 255, 255, 0.12) 1px, transparent 1px);
	background-size: 28px 28px;
	mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.9), transparent 85%);
	-webkit-mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.9), transparent 85%);
	pointer-events: none;
}
.pd-hero__grid {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
	gap: 48px;
	align-items: center;
}
.pd-hero__title {
	margin: 0 0 18px;
	line-height: 1.05;
	color: #fff;
}
.pd-hero__name {
	display: block;
	font-size: clamp(2.6rem, 6vw, 4.4rem);
	font-weight: 800;
	letter-spacing: 0.01em;
	font-family: Lato, "Noto Sans JP", sans-serif;
}
.pd-hero__name-ja {
	display: block;
	font-size: 14px;
	letter-spacing: 0.25em;
	opacity: 0.8;
	margin-top: 10px;
	font-weight: 500;
}
.pd-hero__tagline {
	font-size: clamp(1.25rem, 2.4vw, 1.75rem);
	font-weight: 700;
	line-height: 1.45;
	margin: 0 0 18px;
	color: #fff;
}
.pd-hero__lead {
	font-size: 15.5px;
	color: rgba(255, 255, 255, 0.82);
	margin: 0;
	max-width: 540px;
}
.pd-hero__note {
	margin: 18px 0 0;
	font-size: 13px;
	color: rgba(255, 255, 255, 0.72);
	padding-left: 1.2em;
	position: relative;
}
.pd-hero__note::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.6em;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #9fd6da;
}
.pd-hero__visual {
	position: relative;
}
.pd-hero__media {
	margin: 0;
	position: relative;
}
.pd-hero__media img,
.pd-hero__media video,
.pd-hero__media iframe {
	display: block;
	width: 100%;
	height: auto;
	filter: drop-shadow(0 30px 50px rgba(0, 0, 0, 0.45));
}
.pd-hero__media--video {
	border-radius: 12px;
	overflow: hidden;
	aspect-ratio: 16 / 9;
	background: #000;
	box-shadow: 0 30px 50px rgba(0, 0, 0, 0.45);
}
.pd-hero__media--video iframe,
.pd-hero__media--video video {
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: none;
}
.pd-hero__media figcaption {
	font-size: 12px;
	text-align: center;
	color: rgba(255, 255, 255, 0.6);
	margin-top: 10px;
}
.pd-formats {
	list-style: none;
	margin: 18px 0 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 6px;
	font-size: 12px;
	font-family: Lato, "Noto Sans JP", sans-serif;
}
.pd-formats li {
	border: 1px solid rgba(255, 255, 255, 0.35);
	border-radius: 6px;
	padding: 2px 10px;
	letter-spacing: 0.08em;
	color: rgba(255, 255, 255, 0.9);
}
.pd-formats li.pd-formats__arrow,
.pd-formats li.pd-formats__label {
	border: 0;
	padding: 2px 4px;
	color: rgba(255, 255, 255, 0.6);
}
@media (max-width: 991px) {
	.pd-hero {
		padding: 56px 0 48px;
	}
	.pd-hero__grid {
		grid-template-columns: 1fr;
		gap: 36px;
	}
	.pd-hero__visual {
		max-width: 620px;
		margin: 0 auto;
	}
}

/* ---------- 数値 ---------- */
.pd-stats {
	background: #fff;
	border-bottom: 1px solid var(--pd-line);
}
.pd-stats__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center; /* 項目数が 2 つでも中央にそろう */
}
.pd-stat {
	flex: 1 1 300px;
	max-width: 380px;
	padding: 30px 24px;
	text-align: center;
	border-left: 1px solid var(--pd-line);
}
.pd-stat:first-child {
	border-left: 0;
}
.pd-stat__value {
	display: block;
	font-size: clamp(2rem, 4vw, 3rem);
	font-weight: 800;
	line-height: 1.1;
	color: var(--pd-navy);
	font-family: Lato, "Noto Sans JP", sans-serif;
	font-variant-numeric: tabular-nums;
}
.pd-stat__value small {
	font-size: 0.5em;
	margin-left: 0.1em;
	color: var(--pd-accent);
}
.pd-stat__label {
	display: block;
	font-weight: 700;
	margin-top: 8px;
	font-size: 15px;
}
.pd-stat__note {
	display: block;
	font-size: 12.5px;
	color: var(--pd-muted);
	margin-top: 2px;
}
@media (max-width: 782px) {
	.pd-stat {
		flex-basis: 100%;
		max-width: 100%;
		border-left: 0;
		border-top: 1px solid var(--pd-line);
		padding: 22px 16px;
	}
	.pd-stat:first-child {
		border-top: 0;
	}
}

/* ---------- 実績 ---------- */
.pd-trust {
	padding: 40px 0 8px;
}
.pd-trust__title {
	text-align: center;
	font-size: 12px;
	letter-spacing: 0.2em;
	color: var(--pd-muted);
	margin: 0 0 16px;
}
.pd-trust__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
}
.pd-trust__item a,
.pd-trust__item span.pd-trust__plain {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 14px 8px 8px;
	border: 1px solid var(--pd-line);
	border-radius: 999px;
	background: #fff;
	color: var(--pd-text);
	text-decoration: none;
	font-size: 13.5px;
	font-weight: 600;
	transition: border-color 0.25s, box-shadow 0.25s, transform 0.25s var(--pd-ease);
}
.pd-trust__item a:hover {
	border-color: var(--pd-accent);
	box-shadow: 0 8px 20px rgba(36, 41, 58, 0.1);
	transform: translateY(-2px);
}
.pd-trust__type {
	font-size: 11px;
	font-weight: 700;
	color: #fff;
	background: var(--pd-navy);
	border-radius: 999px;
	padding: 2px 9px;
	letter-spacing: 0.05em;
}
.pd-trust__ex {
	text-align: center;
	font-size: 13px;
	color: var(--pd-muted);
	margin: 18px 0 0;
}

/* ---------- 従来 vs Φ-Designer ---------- */
.pd-process__tracks {
	display: grid;
	gap: 22px;
	margin-top: 44px;
}
.pd-track {
	border-radius: var(--pd-radius);
	padding: 26px 28px;
	border: 1px solid var(--pd-line);
	background: #fff;
}
.pd-track--after {
	background: var(--pd-navy);
	color: #fff;
	border-color: var(--pd-navy);
}
.pd-track__title {
	font-weight: 700;
	margin: 0 0 18px;
	display: inline-block;
	padding: 4px 14px;
	border-radius: 6px;
	background: var(--pd-tint);
	font-size: 14px;
}
.pd-track--after .pd-track__title {
	background: rgba(255, 255, 255, 0.14);
}
.pd-steps {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 14px;
	counter-reset: pdstep;
}
.pd-step {
	position: relative;
	padding: 16px 14px 14px;
	border-radius: 10px;
	background: var(--pd-tint);
	min-height: 96px;
}
.pd-track--after .pd-step {
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.14);
}
.pd-step::after {
	content: "\203A";
	position: absolute;
	right: -12px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 24px;
	color: var(--pd-muted);
	line-height: 1;
}
.pd-step:last-child::after {
	display: none;
}
.pd-track--after .pd-step::after {
	color: rgba(255, 255, 255, 0.5);
}
.pd-step__num {
	display: block;
	font-size: 11px;
	letter-spacing: 0.15em;
	color: var(--pd-accent);
	font-family: Lato, "Noto Sans JP", sans-serif;
	margin-bottom: 4px;
}
.pd-track--after .pd-step__num {
	color: #9fd6da;
}
.pd-step__title {
	display: block;
	font-weight: 700;
	font-size: 15px;
	line-height: 1.4;
}
.pd-step__ng {
	display: block;
	font-size: 12px;
	color: #c0392b;
	margin-top: 6px;
	line-height: 1.4;
}
.pd-step__ng::before {
	content: "\21B6 ";
}
.pd-step__desc {
	display: block;
	font-size: 12.5px;
	margin-top: 6px;
	color: rgba(255, 255, 255, 0.8);
	line-height: 1.5;
}
.pd-track__result {
	margin: 18px 0 0;
	font-size: 14px;
	display: flex;
	align-items: center;
	gap: 10px;
}
.pd-track__result::before {
	content: "!";
	flex: 0 0 auto;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: #c0392b;
	color: #fff;
	font-weight: 700;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 13px;
}
.pd-track--after .pd-track__result::before {
	content: "\2713";
	background: var(--pd-accent);
}
.pd-process__result {
	margin: 48px auto 0;
	max-width: 900px;
	text-align: center;
}
.pd-process__result figcaption {
	font-size: 13.5px;
	color: var(--pd-muted);
	margin-top: 10px;
}
@media (max-width: 782px) {
	.pd-steps {
		grid-template-columns: 1fr 1fr;
	}
	.pd-step::after {
		display: none;
	}
	.pd-track {
		padding: 20px 18px;
	}
}

/* ---------- カード（こんな方に） ---------- */
.pd-cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 22px;
}
.pd-card {
	background: #fff;
	border-radius: var(--pd-radius);
	padding: 30px 26px;
	border: 1px solid var(--pd-line);
	transition: transform 0.3s var(--pd-ease), box-shadow 0.3s var(--pd-ease);
}
.pd-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 18px 40px rgba(36, 41, 58, 0.12);
}
.pd-card__icon {
	width: 52px;
	height: 52px;
	border-radius: 14px;
	background: rgba(80, 145, 151, 0.12);
	color: var(--pd-accent);
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 18px;
}
.pd-card__icon svg {
	width: 26px;
	height: 26px;
}
.pd-card__role {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.12em;
	color: var(--pd-accent);
	margin: 0 0 8px;
}
.pd-card__title {
	font-size: 17px;
	line-height: 1.5;
	margin: 0 0 12px;
	font-weight: 700;
}
.pd-card p:last-child {
	margin: 0;
	font-size: 14.5px;
	color: var(--pd-muted);
}
@media (max-width: 991px) {
	.pd-cards {
		grid-template-columns: 1fr;
	}
}

/* ---------- 特徴 ---------- */
.pd-features__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 22px;
}
.pd-feature {
	position: relative;
	padding: 30px 26px 28px;
	border-radius: var(--pd-radius);
	background: var(--pd-navy);
	color: #fff;
	overflow: hidden;
}
.pd-feature::before {
	content: "";
	position: absolute;
	right: -40px;
	top: -40px;
	width: 140px;
	height: 140px;
	border-radius: 50%;
	background: rgba(80, 145, 151, 0.35);
}
.pd-feature__num {
	position: relative;
	display: block;
	font-size: 13px;
	letter-spacing: 0.2em;
	color: #9fd6da;
	font-family: Lato, "Noto Sans JP", sans-serif;
	margin-bottom: 10px;
}
.pd-feature h3 {
	position: relative;
	color: #fff;
	font-size: 18px;
	margin: 0 0 12px;
	line-height: 1.45;
}
.pd-feature p {
	position: relative;
	margin: 0;
	font-size: 14.5px;
	color: rgba(255, 255, 255, 0.85);
}
.pd-features__img {
	margin: 40px auto 0;
	max-width: 900px;
	border-radius: var(--pd-radius);
	overflow: hidden;
	background: var(--pd-navy);
}
.pd-features__img img {
	display: block;
	width: 100%;
}
.pd-features__img figcaption {
	font-size: 13px;
	color: rgba(255, 255, 255, 0.8);
	padding: 10px 16px 14px;
	text-align: center;
}
@media (max-width: 782px) {
	.pd-features__grid {
		grid-template-columns: 1fr;
	}
}

/* ---------- タブ（要求性能） ---------- */
.pd-tabs {
	max-width: 900px;
	margin: 0 auto;
	background: #fff;
	border: 1px solid var(--pd-line);
	border-radius: var(--pd-radius);
	overflow: hidden;
}
.pd-tabs__nav {
	display: flex;
	border-bottom: 1px solid var(--pd-line);
	background: #fff;
}
.pd-tabs__nav button {
	flex: 1 1 0;
	appearance: none;
	background: none;
	border: 0;
	border-bottom: 3px solid transparent;
	padding: 16px 10px;
	font-weight: 700;
	font-size: 15px;
	color: var(--pd-muted);
	cursor: pointer;
	transition: color 0.2s, border-color 0.2s;
	margin-bottom: -1px;
}
.pd-tabs__nav button:hover {
	color: var(--pd-navy);
}
.pd-tabs__nav button[aria-selected="true"] {
	color: var(--pd-navy);
	border-bottom-color: var(--pd-accent);
}
.pd-tabs__panel {
	padding: 28px 32px;
}
.pd-tabs__panel[hidden] {
	display: none;
}
.pd-checklist {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px 28px;
}
.pd-checklist li {
	position: relative;
	padding-left: 30px;
	font-size: 15px;
	line-height: 1.6;
}
.pd-checklist li::before {
	content: "\2713";
	position: absolute;
	left: 0;
	top: 2px;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: rgba(80, 145, 151, 0.15);
	color: var(--pd-accent);
	font-size: 12px;
	font-weight: 700;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
@media (max-width: 782px) {
	.pd-tabs__nav {
		flex-wrap: wrap;
	}
	.pd-tabs__nav button {
		flex: 1 1 50%;
		font-size: 13px;
		padding: 12px 6px;
	}
	.pd-tabs__panel {
		padding: 20px 18px;
	}
	.pd-checklist {
		grid-template-columns: 1fr;
	}
}

/* ---------- 記事（事例・技術解説の差し込み口） ---------- */
.pd-articles__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 22px;
}
.pd-article {
	display: block;
	background: #fff;
	border: 1px solid var(--pd-line);
	border-radius: var(--pd-radius);
	overflow: hidden;
	text-decoration: none !important;
	color: var(--pd-text);
	transition: transform 0.3s var(--pd-ease), box-shadow 0.3s var(--pd-ease);
}
.pd-article:hover {
	transform: translateY(-4px);
	box-shadow: 0 18px 40px rgba(36, 41, 58, 0.12);
}
.pd-article__thumb {
	aspect-ratio: 16 / 9;
	background: var(--pd-tint);
	overflow: hidden;
}
.pd-article__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.pd-article__body {
	padding: 18px 20px 20px;
}
.pd-article time {
	font-size: 12px;
	color: var(--pd-muted);
	font-family: Lato, "Noto Sans JP", sans-serif;
}
.pd-article h3 {
	font-size: 16px;
	line-height: 1.5;
	margin: 6px 0 0;
}
.pd-articles__more {
	text-align: center;
	margin-top: 28px;
}
@media (max-width: 991px) {
	.pd-articles__grid {
		grid-template-columns: 1fr;
	}
}

/* ---------- 導入の流れ ---------- */
.pd-flow__list {
	list-style: none;
	margin: 44px 0 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 18px;
	counter-reset: pdflow;
}
.pd-flow__item {
	position: relative;
	background: #fff;
	border: 1px solid var(--pd-line);
	border-radius: var(--pd-radius);
	padding: 26px 22px 22px;
}
.pd-flow__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: var(--pd-navy);
	color: #fff;
	font-weight: 700;
	font-family: Lato, "Noto Sans JP", sans-serif;
	margin-bottom: 14px;
}
.pd-flow__item h3 {
	font-size: 16.5px;
	margin: 0 0 8px;
}
.pd-flow__item p {
	margin: 0;
	font-size: 14px;
	color: var(--pd-muted);
}
@media (max-width: 991px) {
	.pd-flow__list {
		grid-template-columns: 1fr 1fr;
	}
}
@media (max-width: 560px) {
	.pd-flow__list {
		grid-template-columns: 1fr;
	}
}

/* ---------- トライアルパッケージ ---------- */
.pd-package {
	margin-top: 44px;
	border: 1px solid var(--pd-line);
	border-radius: var(--pd-radius);
	background: #fff;
	padding: 32px 32px 26px;
	box-shadow: 0 18px 40px rgba(36, 41, 58, 0.06);
}
.pd-package__head {
	text-align: center;
	max-width: 760px;
	margin: 0 auto 24px;
}
.pd-package__title {
	font-size: clamp(1.3rem, 2.2vw, 1.7rem);
	margin: 0 0 10px;
	font-weight: 700;
}
.pd-package__period {
	display: inline-block;
	margin-left: 10px;
	padding: 2px 12px;
	border-radius: 999px;
	background: var(--pd-navy);
	color: #fff;
	font-size: 12.5px;
	font-weight: 700;
	vertical-align: middle;
	letter-spacing: 0.05em;
}
.pd-package__lead {
	margin: 0;
	color: var(--pd-muted);
	font-size: 15px;
}
.pd-package__items {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
}
.pd-package__items li {
	position: relative;
	background: var(--pd-tint);
	border-radius: 12px;
	padding: 20px 18px;
	text-align: center;
}
.pd-package__items strong {
	display: block;
	font-size: 16px;
	margin-bottom: 6px;
	color: var(--pd-navy);
}
.pd-package__items span:not(.pd-package__plus) {
	font-size: 13.5px;
	color: var(--pd-muted);
	line-height: 1.6;
}
.pd-package__plus {
	position: absolute;
	left: -8px;
	top: 50%;
	width: 24px;
	height: 24px;
	margin-top: -12px;
	margin-left: -8px;
	border-radius: 50%;
	background: var(--pd-accent);
	color: #fff;
	font-weight: 700;
	font-size: 16px;
	line-height: 24px;
	text-align: center;
}
.pd-package__note {
	margin: 18px 0 0;
	text-align: center;
	font-size: 14px;
	color: var(--pd-muted);
}
.pd-trial__aside .pd-package__period {
	font-size: 11px;
	padding: 1px 9px;
}
.pd-trial__lead--note {
	margin-top: 12px !important;
	font-size: 14px;
	color: #9fd6da;
}
@media (max-width: 782px) {
	.pd-package {
		padding: 22px 18px 20px;
	}
	.pd-package__items {
		grid-template-columns: 1fr;
	}
	.pd-package__plus {
		left: 50%;
		top: -8px;
		margin: -12px 0 0 -12px;
	}
}

/* ---------- FAQ ---------- */
.pd-faq__list {
	max-width: 860px;
	margin: 0 auto;
}
.pd-faq__item {
	background: #fff;
	border: 1px solid var(--pd-line);
	border-radius: 12px;
	margin-bottom: 12px;
	overflow: hidden;
}
.pd-faq__item summary {
	list-style: none;
	cursor: pointer;
	padding: 18px 56px 18px 22px;
	font-weight: 700;
	font-size: 16px;
	position: relative;
	line-height: 1.5;
}
.pd-faq__item summary::-webkit-details-marker {
	display: none;
}
.pd-faq__item summary::before {
	content: "Q";
	color: var(--pd-accent);
	font-family: Lato, "Noto Sans JP", sans-serif;
	margin-right: 12px;
}
.pd-faq__item summary::after {
	content: "";
	position: absolute;
	right: 22px;
	top: 50%;
	width: 10px;
	height: 10px;
	border-right: 2px solid var(--pd-navy);
	border-bottom: 2px solid var(--pd-navy);
	transform: translateY(-70%) rotate(45deg);
	transition: transform 0.3s var(--pd-ease);
}
.pd-faq__item[open] summary::after {
	transform: translateY(-30%) rotate(-135deg);
}
.pd-faq__a {
	padding: 0 22px 20px 48px;
	color: var(--pd-text);
	font-size: 15px;
}
.pd-faq__a p {
	margin: 0;
}

/* ---------- 最終 CTA ---------- */
.pd-final {
	background:
		radial-gradient(700px 400px at 80% 20%, rgba(80, 145, 151, 0.4), transparent 60%),
		linear-gradient(160deg, #1d212e, #2a3148);
	color: #fff;
	padding: 88px 0;
	text-align: center;
}
.pd-final .pd-h2 {
	color: #fff;
}
.pd-final p {
	color: rgba(255, 255, 255, 0.82);
	max-width: 640px;
	margin: 0 auto;
}
.pd-final .pd-cta-row {
	justify-content: center;
}
.pd-final__note {
	font-size: 13px;
	margin-top: 18px !important;
	color: rgba(255, 255, 255, 0.65) !important;
}

/* ---------- 追従 CTA ---------- */
.pd-sticky {
	position: fixed;
	right: 92px; /* 右端の「トップへ戻る」ボタンと重ならない位置 */
	bottom: 24px;
	z-index: 900;
	display: flex;
	gap: 8px;
	padding: 8px;
	background: rgba(255, 255, 255, 0.9);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	border: 1px solid var(--pd-line);
	border-radius: 999px;
	box-shadow: 0 16px 40px rgba(36, 41, 58, 0.2);
	opacity: 0;
	translate: 0 20px;
	pointer-events: none;
	transition: opacity 0.35s var(--pd-ease), translate 0.35s var(--pd-ease);
}
.pd-sticky.is-visible {
	opacity: 1;
	translate: 0 0;
	pointer-events: auto;
}
.pd-sticky .pd-btn {
	min-height: 44px;
	padding: 0.5em 1.3em;
	font-size: 14px;
}
.pd-sticky .pd-btn--ghost {
	border-color: transparent;
}
@media (max-width: 782px) {
	.pd-sticky {
		right: 0;
		left: 0;
		bottom: 0;
		border-radius: 0;
		border-width: 1px 0 0;
		padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
		translate: 0 100%;
	}
	.pd-sticky .pd-btn {
		flex: 1 1 0;
	}
	.pd-page .page_top_btn,
	.pd-page #page_top {
		bottom: 84px !important;
	}
}

/* ---------- メール受信のお願い ---------- */
.pd-mail-notice {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	margin: 12px 0 20px;
	padding: 14px 16px;
	border: 1px solid rgba(80, 145, 151, 0.4);
	border-left: 4px solid var(--pd-accent);
	border-radius: 10px;
	background: rgba(80, 145, 151, 0.08);
	font-size: 13.5px;
	line-height: 1.7;
	color: var(--pd-text);
}
.pd-mail-notice__icon {
	flex: 0 0 auto;
	font-size: 18px;
	line-height: 1.3;
	color: var(--pd-accent);
}
.pd-mail-notice p {
	margin: 0;
}
.page-id-10 .entry-body > .pd-mail-notice,
.entry-body .pd-mail-notice {
	max-width: 840px;
	margin-left: auto;
	margin-right: auto;
}

/* ---------- トライアル申込ページ ---------- */
.pd-trial__head {
	background: linear-gradient(160deg, #1d212e, #2a3148);
	color: #fff;
	padding: 60px 0 48px;
}
.pd-trial__head h1 {
	color: #fff;
	font-size: clamp(1.7rem, 3.4vw, 2.4rem);
	margin: 0 0 12px;
}
.pd-trial__lead {
	margin: 0;
	max-width: 720px;
	color: rgba(255, 255, 255, 0.82);
}
.pd-trial__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
	gap: 48px;
	padding-top: 56px;
	padding-bottom: 88px;
	align-items: start;
}
.pd-trial__aside {
	background: var(--pd-tint);
	border-radius: var(--pd-radius);
	padding: 28px 26px;
	position: sticky;
	top: 90px;
}
.pd-trial__aside h2 {
	font-size: 16px;
	margin: 0 0 12px;
	text-align: left;
}
.pd-trial__aside h2 + * {
	margin-bottom: 26px;
}
.pd-trial__aside ul,
.pd-trial__aside ol {
	margin: 0;
	padding-left: 1.3em;
	font-size: 14.5px;
}
.pd-trial__aside li {
	margin-bottom: 6px;
}
.pd-trial__aside p {
	font-size: 13px;
	color: var(--pd-muted);
	margin: 0;
}
@media (max-width: 991px) {
	.pd-trial__grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}
	.pd-trial__aside {
		position: static;
	}
}

/* フォーム */
.pd-form {
	background: #fff;
	border: 1px solid var(--pd-line);
	border-radius: var(--pd-radius);
	padding: 32px 30px;
}
.pd-form__row {
	margin-bottom: 20px;
}
.pd-form__row label {
	display: block;
	font-weight: 700;
	font-size: 14.5px;
	margin-bottom: 6px;
}
.pd-req {
	display: inline-block;
	font-size: 11px;
	color: #fff;
	background: #c0392b;
	border-radius: 4px;
	padding: 1px 6px;
	margin-left: 8px;
	vertical-align: 2px;
	font-weight: 600;
}
.pd-opt {
	display: inline-block;
	font-size: 11px;
	color: var(--pd-muted);
	border: 1px solid var(--pd-line);
	border-radius: 4px;
	padding: 1px 6px;
	margin-left: 8px;
	vertical-align: 2px;
	font-weight: 600;
}
.pd-form input[type="text"],
.pd-form input[type="email"],
.pd-form input[type="tel"],
.pd-form select,
.pd-form textarea {
	width: 100%;
	border: 1px solid #cfd5df;
	border-radius: 8px;
	padding: 12px 14px;
	font-size: 15px;
	background: #fff;
	transition: border-color 0.2s, box-shadow 0.2s;
}
.pd-form input:focus,
.pd-form select:focus,
.pd-form textarea:focus {
	outline: none;
	border-color: var(--pd-accent);
	box-shadow: 0 0 0 3px rgba(80, 145, 151, 0.2);
}
.pd-form textarea {
	min-height: 130px;
	resize: vertical;
}
.pd-form__row--2 {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}
.pd-form__choices {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 18px;
}
.pd-form__choices label {
	font-weight: 500;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 0;
	font-size: 15px;
}
.pd-form__row--check label {
	font-weight: 500;
	display: flex;
	align-items: flex-start;
	gap: 8px;
	font-size: 14.5px;
}
.pd-form__row--check input {
	margin-top: 5px;
}
.pd-form .is-invalid {
	border-color: #c0392b;
}
.pd-form__error {
	background: #fdf0ee;
	border: 1px solid #f1c2bc;
	color: #a93226;
	border-radius: 8px;
	padding: 12px 16px;
	margin-bottom: 20px;
	font-size: 14px;
}
.pd-form__error ul {
	margin: 6px 0 0;
	padding-left: 1.2em;
}
.pd-form__help {
	font-size: 12.5px;
	color: var(--pd-muted);
	margin: 6px 0 0;
}
.pd-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	opacity: 0;
}
.pd-notice {
	background: #fff;
	border: 1px solid var(--pd-line);
	border-radius: var(--pd-radius);
	padding: 36px 32px;
}
.pd-notice--ok {
	border-color: rgba(80, 145, 151, 0.5);
}
.pd-notice h2 {
	font-size: 20px;
	margin: 0 0 12px;
	text-align: left;
}
.pd-notice h2::before {
	content: "\2713";
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--pd-accent);
	color: #fff;
	font-size: 15px;
	margin-right: 10px;
	vertical-align: 2px;
}
.pd-notice p {
	margin: 0 0 10px;
	font-size: 15px;
}
@media (max-width: 560px) {
	.pd-form {
		padding: 22px 18px;
	}
	.pd-form__row--2 {
		grid-template-columns: 1fr;
	}
}

/* ---------- トップページ：ヒーローの CTA と製品セクション ---------- */
.fai-hero-cta {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 10px;
}
.fai-hero-cta a {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	padding: 0.6em 1.6em;
	border-radius: 999px;
	font-weight: 700;
	font-size: 16px;
	text-decoration: none !important;
	border: 2px solid rgba(255, 255, 255, 0.85);
	color: #fff !important;
	transition: background-color 0.3s, color 0.3s, transform 0.3s var(--pd-ease), border-color 0.3s;
}
.fai-hero-cta a::after {
	content: "\2192";
	transition: transform 0.3s var(--pd-ease);
}
.fai-hero-cta a:hover {
	transform: translateY(-2px);
}
.fai-hero-cta a:hover::after {
	transform: translateX(4px);
}
.fai-hero-cta__btn--primary {
	background: var(--pd-accent);
	border-color: var(--pd-accent) !important;
}
.fai-hero-cta__btn--primary:hover {
	background: #fff;
	color: var(--pd-navy) !important;
	border-color: #fff !important;
}
.fai-hero-cta__btn--ghost:hover {
	background: #fff;
	color: var(--pd-navy) !important;
}

/* 外枠はヒーロー動画（.vk_slider_item）と同じ扱い。どちらも左右パディング無しでコンテンツ幅いっぱいに揃える */
.pd-home-outer.vk_slider_item-paddingLR-use {
	margin: 0 0 72px;
	padding-left: 0;
	padding-right: 0;
}
.pd-home {
	font-size: 16px;
	background:
		radial-gradient(800px 400px at 90% 0%, rgba(80, 145, 151, 0.3), transparent 60%),
		linear-gradient(160deg, #1d212e, #262c40);
	color: #fff;
	padding: 64px 0;
	margin: 0;
}
.pd-home .pd-wrap {
	padding: 0 48px;
}
@media (max-width: 782px) {
	.pd-home .pd-wrap {
		padding: 0 22px;
	}
}
.pd-home__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 44px;
	align-items: center;
}
.pd-home__title {
	border: 0;
	padding: 0;
	left: auto;
	transform: none;
	display: block;
	color: #fff;
	font-size: clamp(2rem, 4vw, 3rem);
	line-height: 1.1;
	margin: 0 0 14px;
	font-family: Lato, "Noto Sans JP", sans-serif;
	font-weight: 800;
}
.pd-home__title small {
	display: block;
	font-size: 13px;
	letter-spacing: 0.25em;
	opacity: 0.8;
	margin-top: 8px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 500;
}
.pd-home__tagline {
	font-size: clamp(1.1rem, 2vw, 1.4rem);
	font-weight: 700;
	line-height: 1.5;
	margin: 0 0 12px;
}
.pd-home__lead {
	color: rgba(255, 255, 255, 0.82);
	font-size: 15px;
	margin: 0;
}
.pd-home__stats {
	list-style: none;
	margin: 24px 0 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 10px 28px;
}
.pd-home__stats li {
	font-size: 13px;
	color: rgba(255, 255, 255, 0.75);
}
.pd-home__stats strong {
	display: block;
	font-size: 26px;
	color: #fff;
	font-family: Lato, "Noto Sans JP", sans-serif;
	line-height: 1.1;
}
.pd-home__stats strong small {
	font-size: 0.55em;
	color: #9fd6da;
}
.pd-home__visual {
	margin: 0;
}
.pd-home__visual img {
	display: block;
	width: 100%;
	height: auto;
	filter: drop-shadow(0 30px 50px rgba(0, 0, 0, 0.45));
}
.pd-home__visual figcaption {
	font-size: 12px;
	text-align: center;
	color: rgba(255, 255, 255, 0.6);
	margin-top: 8px;
}
@media (max-width: 991px) {
	.pd-home {
		padding: 56px 0;
	}
	.pd-home__grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}
}

/* ---------- グローバルナビの製品リンク ---------- */
.global-nav-list > li.fai-nav-product > a .global-nav-name {
	color: var(--pd-accent);
}
.global-nav-list > li.fai-nav-product:hover > a .global-nav-name,
.global-nav-list > li.fai-nav-product.current-menu-item > a .global-nav-name {
	color: var(--pd-accent-2);
}

/* ---------- 動きを減らす設定 ---------- */
@media (prefers-reduced-motion: reduce) {
	.pd-btn,
	.pd-card,
	.pd-article,
	.pd-sticky,
	.pd-trust__item a {
		transition: none;
	}
}

/* =====================================================================
 * サービスページ（Φ-Seminar / Φ-Solutions）用の追加スタイル（sp-*）
 * =================================================================== */
.sp-hero__media img {
	border-radius: 14px;
	box-shadow: 0 30px 50px rgba(0, 0, 0, 0.45);
	filter: none;
}
.pd-checklist--single {
	grid-template-columns: 1fr;
	gap: 8px;
}
.pd-checklist--single li {
	font-size: 14px;
}

/* 講座カード */
.sp-course-list {
	display: grid;
	gap: 24px;
}
.sp-course {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
	gap: 0;
	background: #fff;
	border: 1px solid var(--pd-line);
	border-radius: var(--pd-radius);
	overflow: hidden;
}
.sp-course:nth-child(even) {
	grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
}
.sp-course:nth-child(even) .sp-course__media {
	order: 2;
}
.sp-course__media {
	margin: 0;
	background: var(--pd-navy);
	min-height: 240px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 18px;
}
.sp-course__media img {
	width: 100%;
	height: auto;
	max-height: 100%;
	object-fit: contain; /* スライド画像の文字が切れないように全体を収める */
	display: block;
	border-radius: 8px;
}
.sp-course__body {
	padding: 30px 32px 28px;
}
.sp-course__body .pd-feature__num {
	color: var(--pd-accent);
}
.sp-course__body h3 {
	font-size: 20px;
	line-height: 1.4;
	margin: 0 0 8px;
}
.sp-course__catch {
	font-weight: 700;
	color: var(--pd-accent-2);
	margin: 0 0 12px;
	font-size: 15px;
}
.sp-course__desc {
	font-size: 14.5px;
	color: var(--pd-text);
	margin: 0 0 18px;
}
.sp-course__lists {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px 24px;
	padding-top: 16px;
	border-top: 1px solid var(--pd-line);
}
.sp-course__lists h4 {
	font-size: 13px;
	letter-spacing: 0.08em;
	color: var(--pd-muted);
	margin: 0 0 8px;
	border: 0;
	padding: 0;
}
.sp-course__lists h4::after {
	content: none;
}
.sp-course__cta {
	margin: 18px 0 0;
	text-align: right;
}
@media (max-width: 991px) {
	.sp-course,
	.sp-course:nth-child(even) {
		grid-template-columns: 1fr;
	}
	.sp-course:nth-child(even) .sp-course__media {
		order: 0;
	}
	.sp-course__media {
		min-height: 0;
		padding: 14px;
	}
	.sp-course__body {
		padding: 22px 20px 20px;
	}
	.sp-course__lists {
		grid-template-columns: 1fr;
	}
}

/* 無料セミナーの概要表 */
.sp-info {
	width: 100%;
	max-width: 720px;
	margin: 0 auto 16px;
	border-collapse: collapse;
	font-size: 15px;
}
.sp-info th,
.sp-info td {
	padding: 12px 16px;
	border-bottom: 1px solid var(--pd-line);
	text-align: left;
	vertical-align: top;
	background: transparent;
}
.sp-info th {
	width: 7em;
	color: var(--pd-navy);
	font-weight: 700;
	white-space: nowrap;
}

/* 事例 */
.sp-case-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 22px;
}
.sp-case {
	background: #fff;
	border: 1px solid var(--pd-line);
	border-radius: var(--pd-radius);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: transform 0.3s var(--pd-ease), box-shadow 0.3s var(--pd-ease);
}
.sp-case:hover {
	transform: translateY(-4px);
	box-shadow: 0 18px 40px rgba(36, 41, 58, 0.12);
}
.sp-case__media {
	margin: 0;
	aspect-ratio: 4 / 3;
	background: var(--pd-tint);
	overflow: hidden;
}
.sp-case__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.sp-case__body {
	padding: 18px 20px 20px;
}
.sp-case__body h3 {
	font-size: 16px;
	line-height: 1.5;
	margin: 10px 0 8px;
}
.sp-case__client {
	margin: 0;
	font-size: 13.5px;
	color: var(--pd-muted);
}
.sp-case__client a {
	color: var(--pd-accent);
}
@media (max-width: 991px) {
	.sp-case-grid {
		grid-template-columns: 1fr 1fr;
	}
}
@media (max-width: 560px) {
	.sp-case-grid {
		grid-template-columns: 1fr;
	}
}

/* お客様の声 */
.sp-voice-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 22px;
}
.sp-voice {
	margin: 0;
	background: #fff;
	border: 1px solid var(--pd-line);
	border-radius: var(--pd-radius);
	padding: 28px 28px 24px;
	position: relative;
}
.sp-voice::before {
	content: "\201C";
	position: absolute;
	left: 22px;
	top: 6px;
	font-size: 64px;
	line-height: 1;
	color: rgba(80, 145, 151, 0.25);
	font-family: Georgia, serif;
}
.sp-voice__text {
	margin: 18px 0 18px;
	font-size: 15px;
	line-height: 1.9;
}
.sp-voice__who {
	display: flex;
	align-items: center;
	gap: 12px;
	border-top: 1px solid var(--pd-line);
	padding-top: 14px;
}
.sp-voice__who img {
	width: 52px;
	height: 52px;
	border-radius: 50%;
	object-fit: cover;
	flex: 0 0 auto;
}
.sp-voice__who cite {
	font-style: normal;
	font-size: 14px;
	font-weight: 700;
	color: var(--pd-navy);
}
@media (max-width: 782px) {
	.sp-voice-grid {
		grid-template-columns: 1fr;
	}
}

/* 導入の流れ 5 ステップ */
.pd-flow__list--5 {
	grid-template-columns: repeat(5, 1fr);
	gap: 14px;
}
.pd-flow__list--5 .pd-flow__item {
	padding: 22px 18px 18px;
}
.pd-flow__list--5 .pd-flow__item h3 {
	font-size: 15.5px;
}
.pd-flow__list--5 .pd-flow__item p {
	font-size: 13px;
}
@media (max-width: 991px) {
	.pd-flow__list--5 {
		grid-template-columns: 1fr 1fr;
	}
}
@media (max-width: 560px) {
	.pd-flow__list--5 {
		grid-template-columns: 1fr;
	}
}

/* 相互リンク */
.sp-cross-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 22px;
}
.sp-cross__item {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 26px 26px 22px;
	border: 1px solid var(--pd-line);
	border-radius: var(--pd-radius);
	background: #fff;
	text-decoration: none !important;
	color: var(--pd-text);
	transition: transform 0.3s var(--pd-ease), box-shadow 0.3s var(--pd-ease), border-color 0.3s;
}
.sp-cross__item:hover {
	transform: translateY(-4px);
	box-shadow: 0 18px 40px rgba(36, 41, 58, 0.12);
	border-color: var(--pd-accent);
}
.sp-cross__label {
	font-size: 12px;
	letter-spacing: 0.12em;
	color: var(--pd-accent);
	font-weight: 700;
}
.sp-cross__item strong {
	font-size: 22px;
	color: var(--pd-navy);
	font-family: Lato, "Noto Sans JP", sans-serif;
}
.sp-cross__desc {
	font-size: 14px;
	color: var(--pd-muted);
}
.sp-cross__more {
	margin-top: 8px;
	font-weight: 700;
	color: var(--pd-accent);
	font-size: 14px;
}
@media (max-width: 782px) {
	.sp-cross-grid {
		grid-template-columns: 1fr;
	}
}
