:root {
	--primary-color: #E89B4B;
	--primary-dark: #D87F3C;
	--primary-light: #F0A860;
	--primary-lighter: #F5C99B;

	--text-primary: #333333;
	--text-secondary: #666666;

	--bg-main: #FFFFFF;
	--bg-section: #FAF5F0;

	--border-color: #DCDCDC;
	--border-light: #EEEEEE;

	--shadow-light: 0 2px 8px rgba(0, 0, 0, 0.08);
	--shadow-medium: 0 4px 16px rgba(0, 0, 0, 0.12);
	--shadow-large: 0 8px 24px rgba(0, 0, 0, 0.15);

	--spacing-xs: 8px;
	--spacing-sm: 16px;
	--spacing-md: 24px;
	--spacing-lg: 40px;
	--spacing-xl: 60px;
	--spacing-xxl: 80px;
}

* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
	overflow-x: hidden;
}

body {
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans JP", sans-serif;
	font-size: 16px;
	line-height: 1.8;
	color: var(--text-primary);
	background-color: var(--bg-main);
	letter-spacing: 0.5px;
	overflow-x: hidden;
}

/* ========== Typography ========== */

h1,
h2,
h3,
h4,
h5,
h6 {
	font-weight: 700;
	line-height: 1.3;
	color: var(--text-primary);
}

h1 {
	font-size: 40px;
}

h2 {
	font-size: 28px;
}

h3 {
	font-size: 24px;
}

h4 {
	font-size: 20px;
}

h5 {
	font-size: 18px;
}

h6 {
	font-size: 16px;
}

p {
	line-height: 1.8;
	margin-bottom: var(--spacing-md);
}

a {
	color: var(--primary-color);
	text-decoration: none;
	transition: all var(--transition-normal);

	&:hover {
		color: var(--primary-dark);
	}

	&:focus-visible {
		outline: 2px solid var(--primary-color);
		outline-offset: 2px;
	}
}

/* ========== Buttons ========== */

.btn {
	display: inline-block;
	padding: 15px 40px;
	font-size: 16px;
	font-weight: 600;
	border: none;
	border-radius: 5px;
	cursor: pointer;
	transition: all 0.3s ease-in-out;
	text-align: center;
	text-decoration: none;

	&:focus-visible {
		outline: 2px solid var(--primary-color);
		outline-offset: 2px;
	}

	&:disabled {
		opacity: 0.5;
		cursor: not-allowed;
	}

	&.btn-primary {
		background-color: var(--primary-color);
		color: #FFFFFF;

		&:hover:not(:disabled) {
			background-color: var(--primary-dark);
			transform: scale(1.05);
		}

		&:active:not(:disabled) {
			transform: scale(0.98);
		}
	}

	&.btn-secondary {
		background-color: #FFFFFF;
		color: var(--primary-color);
		border: 2px solid var(--primary-color);
		padding: 13px 38px;

		&:hover:not(:disabled) {
			background-color: var(--primary-lighter);
			border-color: var(--primary-dark);
		}
	}

	&.btn-sm {
		padding: 10px 24px;
		font-size: 14px;
	}

	&.btn-lg {
		padding: 18px 48px;
		font-size: 18px;
	}
}

/* ========== Form Elements ========== */

input,
textarea,
select {
	font-family: inherit;
	font-size: 16px;
	padding: 12px 16px;
	border: 1px solid var(--border-color);
	border-radius: 5px;
	transition: all 0.3s ease-in-out;
	width: 100%;

	&:focus {
		outline: none;
		border-color: var(--primary-color);
		box-shadow: 0 0 0 3px rgba(232, 155, 75, 0.1);
	}
}

textarea {
	resize: vertical;
	min-height: 120px;
}

label {
	display: block;
	font-size: 12px;
	font-weight: 600;
	margin-bottom: 8px;
	color: var(--text-primary);
	background-color: var(--primary-lighter);
	padding: 8px 12px;
	border-radius: 3px;
}

.form-group {
	margin-bottom: 20px;

	&.required::after {
		content: "*";
		color: var(--primary-color);
		margin-left: 4px;
	}
}

.form-error {
	color: #DC2626;
	font-size: 12px;
	margin-top: 4px;
}

.checkbox-group {
	display: flex;
	align-items: center;
	gap: 8px;

	input[type="checkbox"] {
		width: auto;
		padding: 0;
		margin: 0;
	}
}

/* ========== Cards ========== */

.card {
	background-color: var(--bg-main);
	border-top: 4px solid var(--primary-color);
	border-radius: 8px;
	padding: 24px;
	box-shadow: var(--shadow-light);
	transition: all 0.3s ease-in-out;

	&:hover {
		box-shadow: var(--shadow-medium);
		transform: translateY(-4px);
	}
}

/* ========== Sections ========== */

section {
	padding: var(--spacing-xl) var(--spacing-lg);

	@media (max-width: 1024px) {
		padding: var(--spacing-lg) var(--spacing-md);
	}

	@media (max-width: 599px) {
		padding: var(--spacing-lg) var(--spacing-sm);
	}
}

.section-title {
	font-size: 28px;
	font-weight: 700;
	text-align: center;
	margin-bottom: var(--spacing-lg);
	color: var(--text-primary);
	position: relative;
	padding-bottom: 20px;

	&::after {
		content: "";
		display: block;
		width: 60px;
		height: 3px;
		background-color: var(--primary-color);
		margin: 15px auto 0;
	}
}

.bg-section {
	background-color: var(--bg-section);
}

.bg-primary-light {
	background-color: var(--primary-lighter);
}

/* ========== Layout ========== */

.container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 var(--spacing-lg);

	@media (max-width: 1024px) {
		padding: 0 var(--spacing-md);
	}

	@media (max-width: 599px) {
		padding: 0 var(--spacing-sm);
	}
}

.grid {
	display: grid;
	gap: var(--spacing-lg);

	@media (max-width: 1024px) {
		gap: var(--spacing-md);
	}

	@media (max-width: 599px) {
		gap: var(--spacing-md);
	}

	&.grid-2 {
		grid-template-columns: repeat(2, 1fr);

		@media (max-width: 1024px) {
			grid-template-columns: 1fr;
		}
	}

	&.grid-3 {
		grid-template-columns: repeat(3, 1fr);

		@media (max-width: 1024px) {
			grid-template-columns: repeat(2, 1fr);
		}

		@media (max-width: 599px) {
			grid-template-columns: 1fr;
		}
	}
}

.flex {
	display: flex;
	gap: var(--spacing-lg);

	&.flex-column {
		flex-direction: column;
	}

	&.flex-center {
		align-items: center;
		justify-content: center;
	}

	&.flex-between {
		justify-content: space-between;
		align-items: center;
	}
}

/* ========== Utility ========== */

.text-center {
	text-align: center;
}

.text-right {
	text-align: right;
}

.text-muted {
	color: var(--text-secondary);
}

.text-small {
	font-size: 12px;
}

.mt-0 {
	margin-top: 0;
}

.mt-xs {
	margin-top: var(--spacing-xs);
}

.mt-sm {
	margin-top: var(--spacing-sm);
}

.mt-md {
	margin-top: var(--spacing-md);
}

.mt-lg {
	margin-top: var(--spacing-lg);
}

.mt-xl {
	margin-top: var(--spacing-xl);
}

.mb-0 {
	margin-bottom: 0;
}

.mb-xs {
	margin-bottom: var(--spacing-xs);
}

.mb-sm {
	margin-bottom: var(--spacing-sm);
}

.mb-md {
	margin-bottom: var(--spacing-md);
}

.mb-lg {
	margin-bottom: var(--spacing-lg);
}

.mb-xl {
	margin-bottom: var(--spacing-xl);
}

.hidden {
	display: none;
}

.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border-width: 0;
}

/* ========== Responsive Images ========== */

img {
	max-width: 100%;
	height: auto;
	display: block;
}

/* ========== Animations ========== */

@keyframes fadeIn {
	from {
		opacity: 0;
	}

	to {
		opacity: 1;
	}
}

@keyframes slideUp {
	from {
		opacity: 0;
		transform: translateY(20px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes slideDown {
	from {
		opacity: 0;
		transform: translateY(-20px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.animate-fade-in {
	animation: fadeIn 0.5s ease-in-out;
}

.animate-slide-up {
	animation: slideUp 0.5s ease-in-out;
}

/* ========== Accessibility ========== */

@media (prefers-reduced-motion: reduce) {
	* {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
}

/* ========== Print Styles ========== */

@media print {
	body {
		background: white;
	}

	a {
		text-decoration: underline;
	}
}

/* ./parts/common-header.html */

header {
	display: flex;
	flex-direction: column;
	background-color: #FFFFFF;
	position: sticky;
	top: 0;
	z-index: 30;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Noto Sans JP', sans-serif;
	transition: all 0.3s ease;

	&.scrolled {
		box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
	}
}

/* ========== ヘッダー上段 ========== */
.header-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1rem 2rem;
	border-bottom: 1px solid #EEEEEE;
	gap: clamp(0.5rem, 2vw, 2rem);

	@media (max-width: 599px) {
		padding: 0.75rem 0.5rem;
	}
}

.logo-area {
	flex-shrink: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.logo {
	font-size: 1.5rem;
	font-weight: 700;
	text-decoration: none;
	color: var(--primary-color);
	display: block;
	line-height: 1.2;
}

.logo-sub {
	font-size: 0.75rem;
	color: #666666;
	margin-top: 2px;
}

.header-cta {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	gap: 1.5rem;

	@media (max-width: 1024px) {
		gap: 1rem;
	}

	@media (max-width: 599px) {
		gap: 0.75rem;
	}
}

.phone-link {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.875rem;
	font-weight: 700;
	color: #E89B4B;
	text-decoration: none;
	position: relative;

	&:hover {
		color: #D87F3C;
	}

	.material-symbols-rounded {
		font-size: 20px;
		cursor: pointer;
	}

	@media (max-width: 599px) {
		font-size: 0.75rem;
		flex-direction: column;

		.material-symbols-rounded {
			font-size: 18px;
		}
	}
}

.phone-numbers {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;

	@media (max-width: 1024px) {
		display: none;
		position: absolute;
		top: 100%;
		right: -10px;
		background: #FFFFFF;
		border: 1px solid #DCDCDC;
		border-radius: 5px;
		padding: 0.5rem 1rem;
		box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
		z-index: 1000;
		white-space: nowrap;
		margin-top: 0.5rem;

		&.show {
			display: flex;
		}

		a {
			color: #E89B4B;
			text-decoration: none;
			font-size: 0.875rem;
			font-weight: 600;

			&:hover {
				color: #D87F3C;
			}
		}
	}
}

@media (max-width: 441px) {
	.logo {
		font-size: 1rem;
	}

	.logo-sub {
		font-size: 0.6rem;
	}
}

/* ========== ヘッダー下段（メニュー） ========== */
.header-nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0.75rem 2rem;

	@media (max-width: 1024px) {
		padding: 0.75rem 1.25rem;
	}

	@media (max-width: 599px) {
		padding: 0.5rem 1.25rem;
	}
}

.nav {
	display: flex;
	gap: 0;
	flex: 1;
	justify-content: center;
	flex-wrap: nowrap;

	@media (max-width: 1024px) {
		display: none;
	}

	a {
		text-decoration: none;
		color: #333333;
		font-weight: 500;
		font-size: 0.875rem;
		padding: 0.5rem 1rem;
		white-space: nowrap;
		transition: color 0.3s ease;
		position: relative;

		&:hover {
			color: #E89B4B;
		}

		&.active {
			color: #E89B4B;
			font-weight: 600;
		}
	}

	.nav-item {
		position: relative;

		&:hover>.dropdown {
			display: flex;
			opacity: 1;
			pointer-events: auto;
		}
	}

	.dropdown {
		position: absolute;
		left: 0;
		background: #FFFFFF;
		border: 1px solid #DCDCDC;
		border-radius: 5px;
		flex-direction: column;
		gap: 0;
		min-width: 180px;
		box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
		display: none;
		opacity: 0;
		pointer-events: none;
		transition: opacity 0.3s ease;
		z-index: 50;

		a {
			padding: 0.75rem 1rem;
			font-size: 0.875rem;
			border-bottom: 1px solid #EEEEEE;
			font-weight: 500;

			&:last-child {
				border-bottom: none;
			}
		}
	}
}

/* モバイルナビゲーション */
.mobile-nav {
	position: fixed;
	top: 0;
	left: 0;
	bottom: 0;
	right: 0;
	height: 100vh;
	width: 100vw;
	z-index: 40;
	background-color: #333333;
	display: none;
	flex-direction: column;
	align-items: stretch;
	justify-content: flex-start;
	gap: 0;
	padding-top: 80px;
	transition: opacity 300ms ease-in-out;
	opacity: 0;
	pointer-events: none;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;

	@media (max-width: 1024px) {
		display: flex;
	}

	a {
		font-size: 1rem;
		font-weight: 500;
		color: #FFFFFF;
		padding: 0.5rem 2rem;
		width: 100%;
		text-align: left;
		white-space: nowrap;
		border-bottom: 1px solid rgba(255, 255, 255, 0.1);
		transition: all 0.3s ease;

		&:hover {
			background-color: rgba(232, 155, 75, 0.1);
			color: #F0A860;
		}

		&.active {
			background-color: #E89B4B;
			color: #FFFFFF;
		}
	}

	.mobile-nav-item {
		width: 100%;
		border-bottom: 1px solid rgba(255, 255, 255, 0.1);
		padding: 0.5rem 2rem;

	}

	.mobile-nav-label {
		background: none;
		border: none;
		color: #FFFFFF;
		width: 100%;
		padding: 0 2rem 1rem 2rem;
		text-align: left;
		font-size: 1rem;
		font-weight: 500;
		cursor: default;
		display: flex;
		justify-content: flex-start;
		align-items: center;
		font-weight: 700;
		opacity: 0.8;
	}

	.mobile-nav-submenu {
		display: flex;
		flex-direction: column;
		gap: 0;
		background-color: rgba(0, 0, 0, 0.2);
		border-bottom: 1px solid rgba(255, 255, 255, 0.1);

		a {
			padding: 0.2rem 3rem;
			font-size: 0.9rem;
			border-bottom: none;
			font-weight: 400;

			&:last-child {
				border-bottom: none;
			}

			&:hover {
				background-color: rgba(232, 155, 75, 0.2);
			}
		}
	}

	/* 既存の .mobile-nav a.active のスタイルを label にも適用 */
	.mobile-nav a.active,
	.mobile-nav .mobile-nav-label.active {
		background-color: #E89B4B;
		color: #FFFFFF;
		opacity: 1;
		/* labelに設定されているopacityを打ち消す */
	}
}

/* メニューボタン */
.menu-btn {
	background: none;
	border: none;
	cursor: pointer;
	z-index: 50;
	padding: 0.25rem;
	display: none;
	align-items: center;
	justify-content: center;

	@media (max-width: 1024px) {
		display: flex;
	}

	.material-symbols-rounded {
		font-size: 28px;
		color: #333333;
	}
}

.mobile-nav a,
.mobile-nav-item,
.mobile-nav-submenu {
	border-bottom: none !important;
}

/* デフォルトではお問い合わせボタン内のアイコン（mail）は隠しておく（任意） */
.cta-icon-only {
	display: none;
}

@media (max-width: 1024px) {

	/* 1. テキストを非表示にする */
	.cta-text {
		display: none;
	}

	.cta-icon-only {
		display: inline-block;
		font-size: 20px;
	}

	/* 3. ボタンの形状をアイコンに合わせて調整（正方形に近くする） */
	.header-cta .btn-sm {
		padding: 0.5rem;
		min-width: 40px;
		height: 40px;
		display: flex;
		align-items: center;
		justify-content: center;
		border-radius: 50%;
		/* 円形にする場合 */
	}

	/* 4. 電話リンクの間隔調整 */
	.phone-link {
		padding: 0.5rem;
		background-color: rgba(232, 155, 75, 0.1);
		border-radius: 50%;
		width: 40px;
		height: 40px;
		justify-content: center;
	}
}

/* モバイル表示（1024px以下）の設定 */
@media (max-width: 1024px) {
	.menu-btn {
		display: flex;
		/* ここで表示 */
	}

	/* 下段ナビゲーションエリア自体の非表示設定 */
	/* メニューが空になるため、高さや余白を消します */
	.header-nav {
		display: none;
	}
}

/* スマホサイズ（650px以下）でのボタン位置微調整 */
@media (max-width: 650px) {
	.header-cta {
		gap: 0.5rem;
		/* ボタンが増えるので少し間隔を詰める */
	}

	.menu-btn .material-symbols-rounded {
		font-size: 32px;
		/* スマホで押しやすいサイズに */
	}
}

/* メニューが開いている時の「×」ボタンの位置固定（オプション） */
/* メニューが全画面で開くため、ボタンが隠れないように z-index を確保 */
.menu-btn {
	position: relative;
	z-index: 100;
}

/* 右側のグループ全体の間隔を調整 */
.header-right-group {
	flex-shrink: 0;
	display: flex;
	align-items: center;
}

/* メニューボタンのスタイルを微調整（余計なマージンを消す） */
.menu-btn {
	margin-left: 0.5rem;
	/* お問い合わせボタンとの最小限の間隔 */
}

/* モバイルでの見栄え調整 */
@media (max-width: 1024px) {
	.header-right-group {
		gap: 0.5rem !important;
	}
}

/* デフォルトでは電話アイコンを隠しておく */
.cta-icon-phone-mobile {
	display: none;
}

@media (max-width: 1024px) {

	/* 650px以下になったら表示する */
	.cta-icon-phone-mobile {
		display: inline-block;
		font-size: 20px;
		color: #E89B4B;
		/* アイコンの色 */
	}
}

.cta-icon-phone {
	display: inline-block;
}

@media (max-width: 1024px) {
	.cta-icon-phone {
		display: none;
	}
}

/* 電話番号リンク（ドロップダウン内）の親要素を調整 */
.phone-numbers a {
	display: flex;
	align-items: center;
	gap: 8px;
	line-height: 1;
}

.mobile-only {
	display: none;
}

@media (max-width: 485px) {
	.mobile-only {
		display: inline;
	}
}

/* ./parts/common-footer.html */

footer {
	background-color: #F5C99B;
	padding: 2.5rem;
	color: #333333;
	margin-top: 0;

	@media (max-width: 599px) {
		padding: 2rem 1.25rem;
	}

	.footer-container {
		max-width: 1200px;
		margin: 0 auto;
	}

	.footer-content {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 3rem;
		margin-bottom: 2rem;

		@media (max-width: 1024px) {
			grid-template-columns: repeat(2, 1fr);
		}

		@media (max-width: 599px) {
			grid-template-columns: 1fr;
			gap: 1.5rem;
		}
	}

	.footer-section {
		h3 {
			font-size: 1rem;
			font-weight: 700;
			margin-bottom: 1rem;
			color: #333333;
		}

		p,
		li {
			font-size: 0.875rem;
			line-height: 1.8;
			color: #333333;
			margin-bottom: 0.5rem;
		}

		ul {
			list-style: none;
			padding: 0;
			margin: 0;

			li {
				margin-bottom: 0.5rem;
			}

			a {
				color: #333333;
				text-decoration: none;
				transition: color 0.3s ease;

				&:hover {
					color: #E89B4B;
				}
			}
		}
	}

	.footer-info {
		display: flex;
		flex-direction: column;
		gap: 0.5rem;
		font-size: 0.875rem;
		line-height: 1.8;

		strong {
			font-weight: 700;
			color: #333333;
		}
	}

	.footer-contact-item {
		display: flex;
		align-items: center;
		gap: 0.5rem;

		.material-symbols-rounded {
			font-size: 18px;
			color: #E89B4B;
		}

		a {
			color: #333333;
			text-decoration: none;

			&:hover {
				color: #E89B4B;
			}
		}
	}

	.footer-socials {
		display: flex;
		gap: 1rem;
		align-items: center;

		a {
			display: flex;
			align-items: center;
			justify-content: center;
			width: 32px;
			height: 32px;
			border-radius: 50%;
			background-color: rgba(232, 155, 75, 0.2);
			transition: all 0.3s ease;

			&:hover {
				background-color: #E89B4B;
				transform: scale(1.1);
			}

			img {
				width: 18px;
				height: 18px;
			}
		}
	}

	.footer-bottom {
		border-top: 1px solid #DCDCDC;
		padding-top: 1.5rem;
		display: flex;
		justify-content: space-between;
		align-items: center;

		@media (max-width: 599px) {
			flex-direction: column;
			text-align: center;
			gap: 1rem;
		}
	}

	.footer-copyright {
		font-size: 0.75rem;
		color: #666666;
	}

	.footer-links {
		display: flex;
		gap: 1.5rem;

		@media (max-width: 599px) {
			flex-direction: column;
			gap: 0.5rem;
		}

		a {
			font-size: 0.75rem;
			color: #333333;
			text-decoration: none;

			&:hover {
				color: #E89B4B;
			}
		}
	}
}

/* 電話番号リンク（フッター内）の配置調整 */
.footer-contact-item div a {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 0.5rem;
	line-height: 0;
}

/* ./parts/contact-title.html */

#contact-title {
	background-color: #F5C99B;
	padding: 3.75rem 2.5rem;
	text-align: center;

	@media (max-width: 1024px) {
		padding: 2.5rem 2rem;
	}

	@media (max-width: 599px) {
		padding: 2rem 1.25rem;
	}

	.title-wrapper {
		max-width: 1200px;
		margin: 0 auto;
	}

	h1 {
		font-size: 2.5rem;
		font-weight: 700;
		color: #333333;
		margin-bottom: 0.5rem;
		line-height: 1.2;

		@media (max-width: 599px) {
			font-size: 1.75rem;
		}
	}

	.title-underline {
		width: 60px;
		height: 3px;
		background-color: #E89B4B;
		margin: 1rem auto 0;
	}
}

/* ./parts/faq-intro.html */

.faq-intro {
	background-color: #FAF5F0;
	padding: 2.5rem 2rem;
	text-align: center;

	@media (max-width: 1024px) {
		padding: 2rem 1.5rem;
	}

	@media (max-width: 599px) {
		padding: 1.5rem 1rem;
	}

	.intro-text {
		max-width: 800px;
		margin: 0 auto;
		font-size: 1rem;
		line-height: 1.8;
		color: #333333;
	}
}

/* ./parts/business-title.html */

#business-title {
	background: linear-gradient(135deg, #F5C99B 0%, #F0A860 100%);
	padding: 3.75rem 2.5rem;
	text-align: center;
	border-bottom: 1px solid #DCDCDC;

	@media (max-width: 1024px) {
		padding: 2.5rem 2rem;
	}

	@media (max-width: 599px) {
		padding: 2rem 1.25rem;
	}

	.title-container {
		max-width: 1200px;
		margin: 0 auto;
	}

	h1 {
		font-size: 2.5rem;
		font-weight: 700;
		color: #333333;
		margin-bottom: 0.5rem;
		line-height: 1.2;

		@media (max-width: 1024px) {
			font-size: 2rem;
		}

		@media (max-width: 599px) {
			font-size: 1.75rem;
		}
	}

	.subtitle {
		font-size: 1.125rem;
		color: #666666;
		font-weight: 500;
		line-height: 1.6;

		@media (max-width: 1024px) {
			font-size: 1rem;
		}

		@media (max-width: 599px) {
			font-size: 0.9375rem;
		}
	}

	.title-underline {
		width: 60px;
		height: 3px;
		background-color: #E89B4B;
		margin: 1rem auto 0;
	}
}

/* ./parts/contact-intro.html */

section.contact-intro {
	background-color: #FAF5F0;
	padding: 3rem 2.5rem;

	@media (max-width: 1024px) {
		padding: 2.5rem 2rem;
	}

	@media (max-width: 599px) {
		padding: 2rem 1.25rem;
	}

	.intro-container {
		max-width: 1200px;
		margin: 0 auto;
	}

	.intro-text {
		font-size: 1rem;
		line-height: 1.8;
		color: #333333;
		max-width: 800px;
		margin: 0 auto;
		text-align: center;

		p {
			margin-bottom: 1rem;

			&:last-child {
				margin-bottom: 0;
			}
		}
	}
}

/* ./parts/faq-title.html */

#faq-title {
	background-color: #F5C99B;
	padding: 3.75rem 2.5rem;
	text-align: center;
	border-bottom: 1px solid #DCDCDC;

	@media (max-width: 1024px) {
		padding: 2.5rem 1.875rem;
	}

	@media (max-width: 599px) {
		padding: 2rem 1.25rem;
	}

	h1 {
		font-size: 2.5rem;
		font-weight: 700;
		color: #333333;
		margin-bottom: 0.5rem;

		@media (max-width: 1024px) {
			font-size: 2rem;
		}

		@media (max-width: 599px) {
			font-size: 1.75rem;
		}
	}

	.title-underline {
		width: 60px;
		height: 3px;
		background-color: #E89B4B;
		margin: 1rem auto 0;
	}
}

/* ./parts/business-cta.html */

.business-cta-section {
	background: linear-gradient(135deg, #E89B4B 0%, #D87F3C 100%);
	color: #FFFFFF;
	padding: 3.75rem 2.5rem;
	text-align: center;

	@media (max-width: 1024px) {
		padding: 2.5rem 2rem;
	}

	@media (max-width: 599px) {
		padding: 2rem 1.25rem;
	}

	h2 {
		font-size: 1.75rem;
		font-weight: 700;
		margin-bottom: 1rem;
		color: #FFFFFF;

		@media (max-width: 599px) {
			font-size: 1.5rem;
		}
	}

	p {
		font-size: 1rem;
		line-height: 1.8;
		margin-bottom: 2rem;
		max-width: 600px;
		margin-left: auto;
		margin-right: auto;
	}

	.cta-buttons {
		display: flex;
		gap: 1.5rem;
		justify-content: center;
		align-items: center;
		flex-wrap: wrap;

		@media (max-width: 599px) {
			flex-direction: column;
			gap: 1rem;
		}
	}

	.btn {
		padding: 1rem 2.5rem;
		font-size: 1rem;
		font-weight: 600;
		border-radius: 5px;
		text-decoration: none;
		transition: all 0.3s ease-in-out;
		cursor: pointer;
		min-width: 200px;

		@media (max-width: 599px) {
			min-width: 100%;
		}

		&.btn-primary-light {
			background-color: #FFFFFF;
			color: #E89B4B;

			&:hover {
				background-color: #F5C99B;
				transform: scale(1.05);
			}

			&:active {
				transform: scale(0.98);
			}
		}

		&.btn-secondary-light {
			background-color: transparent;
			color: #FFFFFF;
			border: 2px solid #FFFFFF;

			&:hover {
				background-color: rgba(255, 255, 255, 0.1);
				border-color: #F5C99B;
				color: #F5C99B;
				transform: scale(1.05);
			}

			&:active {
				transform: scale(0.98);
			}
		}
	}

	.phone-info {
		margin-top: 2rem;
		font-size: 1.125rem;
		font-weight: 600;
		color: #FFFFFF;

		a {
			color: #FFFFFF;
			text-decoration: none;

			&:hover {
				text-decoration: underline;
			}
		}
	}
}

/* ./parts/business-intro.html */

section.business-intro {
	background-color: #FAF5F0;
	padding: 60px 40px;

	@media (max-width: 1024px) {
		padding: 40px 30px;
	}

	@media (max-width: 599px) {
		padding: 40px 20px;
	}

	.intro-content {
		max-width: 900px;
		margin: 0 auto;

		p {
			font-size: 16px;
			line-height: 1.8;
			color: #333333;
			margin-bottom: 20px;

			&:last-child {
				margin-bottom: 0;
			}
		}

		.service-section-title {
			color: var(--primary-color);
			margin-bottom: 1.25rem;
			width: 100%;
			border-bottom: 1.5px solid var(--primary-color);
		}

	}
}

/* ./parts/welfare-cta.html */

#welfare-cta {
	background: #ffffff;
	padding: 3.75rem 2.5rem;
	text-align: center;
	color: var(--primary-color);

	@media (max-width: 599px) {
		padding: 2.5rem 1.25rem;
	}

	.cta-content {
		max-width: 700px;
		margin: 0 auto;
	}

	h2 {
		font-size: 1.75rem;
		font-weight: 700;
		margin-bottom: 1rem;
		color: var(--primary-color);

		@media (max-width: 599px) {
			font-size: 1.5rem;
		}
	}

	.cta-description {
		font-size: 1rem;
		line-height: 1.8;
		margin-bottom: 2rem;
		opacity: 0.95;
	}

	.cta-buttons {
		display: flex;
		flex-direction: column;
		gap: 1rem;
		align-items: center;

		@media (min-width: 600px) {
			flex-direction: row;
			justify-content: center;
		}
	}

	.btn-cta {
		display: inline-block;
		padding: 0.875rem 2rem;
		font-size: 1rem;
		font-weight: 600;
		border: none;
		border-radius: 5px;
		cursor: pointer;
		transition: all 0.3s ease-in-out;
		text-decoration: none;
		min-width: 200px;

		&:focus-visible {
			outline: 2px solid #FFFFFF;
			outline-offset: 2px;
		}

		&.btn-white {
			background-color: var(--primary-color);
			color: #ffffff;

			&:hover {
				background-color: var(--primary-light);
				transform: translateY(-2px);
				box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
			}

			&:active {
				transform: translateY(0);
			}
		}
	}

	.phone-section {
		margin-top: 1.5rem;
		padding-top: 1.5rem;
		border-top: 1px solid var(--primary-light);
	}

	.phone-label {
		font-size: 0.875rem;
		opacity: 0.9;
		margin-bottom: 0.5rem;
	}

	.phone-number {
		font-size: 1.25rem;
		font-weight: 700;
		color: var(--primary-color);
		text-decoration: none;
		transition: opacity 0.3s ease;

		&:hover {
			opacity: 0.8;
		}

		&:focus-visible {
			outline: 2px solid #FFFFFF;
			outline-offset: 2px;
		}
	}
}

/* ./parts/welfare-title.html */

.welfare-title-section {
	background-color: #F5C99B;
	padding: 3.75rem 2.5rem;
	text-align: center;
	border-bottom: 1px solid #DCDCDC;

	@media (max-width: 1024px) {
		padding: 2.5rem 1.875rem;
	}

	@media (max-width: 599px) {
		padding: 2rem 1.25rem;
	}

	.page-title {
		font-size: 2.5rem;
		font-weight: 700;
		color: #333333;
		margin-bottom: 1.5rem;

		@media (max-width: 599px) {
			font-size: 1.75rem;
		}
	}

}

.title-underline {
	width: 60px;
	height: 3px;
	background-color: #E89B4B;
	margin: 1.5rem auto 80px;
	border-radius: 2px;
}



h3 {
	font-size: 1.25rem;
	font-weight: 700;
	color: #E89B4B;
	margin-bottom: 1rem;
	display: flex;
	align-items: center;
	gap: 0.5rem;

	.material-symbols-rounded {
		font-size: 28px;
	}
}

.services-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2rem;
	max-width: 1000px;
	margin: 80px auto;

	@media (max-width: 1024px) {
		gap: 1.5rem;
	}

	@media (max-width: 599px) {
		grid-template-columns: 1fr;
		gap: 1rem;
	}
}

.service-column {
	background-color: #FFFFFF;
	border-radius: 8px;
	padding: 1.5rem;
	text-align: left;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
	transition: all 0.3s ease-in-out;
	border: 1px solid var(--primary-color);

	&:hover {
		box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
		transform: translateY(-4px);
	}

	h3 {
		color: var(--primary-color);
		display: flex;
		align-items: center;
		gap: 0.5rem;
		font-size: 1.25rem;
		font-weight: 700;
		color: #E89B4B;
		margin-bottom: 1rem;

		.material-symbols-rounded {
			font-size: 28px;
			transform: translateY(1px);
		}
	}

	ul {
		list-style: none;
		padding: 0;
		margin: 0;

		li {
			font-size: 1rem;
			color: #333333;
			padding: 0.5rem 0 0.5rem 1.5rem;
			position: relative;
			line-height: 1.6;
			margin-bottom: 0.5rem;

			&::before {
				content: "✓";
				position: absolute;
				left: 0;
				color: #E89B4B;
				font-weight: 700;
			}
		}
	}

	.service-list-nodots::before {
		content: none;
	}
}

/* 共通のH2見出しスタイル */
.common-h2-title {
	font-size: 28px;
	font-weight: 700;
	text-align: center;
	margin: 0;
	color: #333333;
	position: relative;
	padding-bottom: 0;
	display: block;
	/* 念のため */
}

@media (max-width: 599px) {
	.common-h2-title {
		font-size: 24px;
		/* スマホでは少し小さく */
		margin-bottom: 30px;
	}
}



}

/* ./parts/contact-privacy.html */

#contact-privacy {
	background-color: #FAF5F0;
	padding: 3rem 2rem;

	@media (max-width: 1024px) {
		padding: 2.5rem 1.5rem;
	}

	@media (max-width: 599px) {
		padding: 2rem 1rem;
	}

	.privacy-container {
		max-width: 600px;
		margin: 0 auto;
	}

	h3 {
		font-size: 1.25rem;
		font-weight: 700;
		color: #333333;
		margin-bottom: 1rem;
	}

	.privacy-content {
		font-size: 0.875rem;
		line-height: 1.8;
		color: #333333;

		p {
			margin-bottom: 1rem;
		}

		strong {
			font-weight: 600;
			color: #333333;
		}
	}

	.privacy-link {
		display: inline-block;
		margin-top: 1rem;
		padding: 0.75rem 1rem;
		background-color: #E89B4B;
		color: #FFFFFF;
		text-decoration: none;
		border-radius: 5px;
		font-size: 0.875rem;
		font-weight: 600;
		transition: all 0.3s ease;

		&:hover {
			background-color: #D87F3C;
			transform: translateY(-2px);
		}
	}
}

/* ./parts/staff-title.html */

#staff-title {
	background: linear-gradient(135deg, #F5C99B 0%, #F0A860 100%);
	padding: 3.75rem 2.5rem;
	text-align: center;

	@media (max-width: 1024px) {
		padding: 2.5rem 2rem;
	}

	@media (max-width: 599px) {
		padding: 2rem 1.25rem;
	}

	.title-container {
		max-width: 800px;
		margin: 0 auto;
	}

	h1 {
		font-size: 2.5rem;
		font-weight: 700;
		color: #333333;
		margin-bottom: 1rem;
		line-height: 1.2;

		@media (max-width: 599px) {
			font-size: 2rem;
		}
	}

	.title-line {
		width: 60px;
		height: 3px;
		background-color: #E89B4B;
		margin: 1.25rem auto;
	}

	.title-subtitle {
		font-size: 1.125rem;
		color: #666666;
		line-height: 1.6;
		margin-top: 1.25rem;

		@media (max-width: 599px) {
			font-size: 1rem;
		}
	}
}

/* ./parts/staff-message.html */

#staff-message {
	padding: 3.75rem 2.5rem;
	background-color: #FAF5F0;

	@media (max-width: 1024px) {
		padding: 2.5rem 1.875rem;
	}

	@media (max-width: 599px) {
		padding: 2.5rem 1.25rem;
	}

	.message-container {
		max-width: 800px;
		margin: 0 auto;
	}

	.message-title {
		font-size: 1.5rem;
		font-weight: 700;
		color: #E89B4B;
		text-align: center;
		margin-bottom: 1.5rem;

		@media (max-width: 599px) {
			font-size: 1.25rem;
		}
	}

	.message-content {
		background-color: #FFFFFF;
		padding: 2rem;
		border-radius: 8px;
		box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
		border-left: 4px solid #E89B4B;

		@media (max-width: 599px) {
			padding: 1.5rem;
		}
	}

	.message-text {
		font-size: 1rem;
		line-height: 2;
		color: #333333;
		font-style: italic;
		text-align: left;
		margin: 0;

		p {
			margin-bottom: 1rem;

			&:last-child {
				margin-bottom: 0;
			}
		}
	}
}

/* ./parts/about-mission.html */

section#about-mission {
	background-color: #FFFFFF;
	padding: 60px 40px;

	@media (max-width: 1024px) {
		padding: 40px 30px;
	}

	@media (max-width: 599px) {
		padding: 40px 20px;
	}

	.mission-container {
		max-width: 900px;
		margin: 0 auto;
	}

	.mission-title {
		font-size: 28px;
		font-weight: 700;
		text-align: center;
		color: #E89B4B;
		margin-bottom: 40px;
		position: relative;
		padding-bottom: 20px;

		&::after {
			content: "";
			display: block;
			width: 60px;
			height: 3px;
			background-color: #E89B4B;
			margin: 15px auto 0;
		}
	}

	.mission-text {
		font-size: 16px;
		line-height: 1.8;
		color: #666666;
		text-align: center;
		margin-bottom: 0;
		letter-spacing: 0.5px;

		p {
			margin-bottom: 1.5rem;

			&:last-child {
				margin-bottom: 0;
			}
		}
	}

	.highlight-text {
		color: #E89B4B;
		font-weight: 600;
	}
}

/* ./parts/welfare-intro.html */

section.welfare-intro {
	background-color: #FAF5F0;
	padding: 3.75rem 2.5rem;

	@media (max-width: 1024px) {
		padding: 2.5rem 1.875rem;
	}

	@media (max-width: 599px) {
		padding: 2.5rem 1.25rem;
	}

	.container {
		max-width: 1200px;
		margin: 0 auto;
	}

	.intro-content {
		font-size: 1rem;
		line-height: 1.8;
		color: #333333;
		max-width: 900px;
		margin: 0 auto;

		p {
			margin-bottom: 1.25rem;

			&:last-child {
				margin-bottom: 0;
			}
		}

		.service-section-title {
			color: var(--primary-color);
			margin-bottom: 1.25rem;
			width: 100%;
			border-bottom: 1.5px solid var(--primary-color);
		}
	}

	.intro-highlight {
		background-color: #FFFFFF;
		border-left: 4px solid #E89B4B;
		padding: 1.5rem;
		margin-bottom: 1.5rem;
		border-radius: 5px;
		box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
	}

}

/* ./parts/about-title.html */

section.about-title {
	background: linear-gradient(135deg, #F5C99B 0%, #F0A860 100%);
	padding: 3.75rem 2.5rem;
	text-align: center;
	position: relative;
	overflow: hidden;

	@media (max-width: 1024px) {
		padding: 2.5rem 1.875rem;
	}

	@media (max-width: 599px) {
		padding: 2rem 1.25rem;
	}

	&::before {
		content: '';
		position: absolute;
		top: -50%;
		right: -10%;
		width: 500px;
		height: 500px;
		background-color: rgba(255, 255, 255, 0.1);
		border-radius: 50%;
		z-index: 1;
	}

	&::after {
		content: '';
		position: absolute;
		bottom: -30%;
		left: -5%;
		width: 300px;
		height: 300px;
		background-color: rgba(255, 255, 255, 0.08);
		border-radius: 50%;
		z-index: 1;
	}

	.title-container {
		position: relative;
		z-index: 2;
		max-width: 800px;
		margin: 0 auto;
	}

	h1 {
		font-size: 2.5rem;
		font-weight: 700;
		color: #333333;
		margin-bottom: 1rem;
		line-height: 1.2;

		@media (max-width: 599px) {
			font-size: 1.875rem;
			margin-bottom: 0.75rem;
		}
	}

	.title-subtitle {
		font-size: 1.125rem;
		color: #666666;
		line-height: 1.6;
		margin: 0;

		@media (max-width: 599px) {
			font-size: 1rem;
		}
	}

	.title-underline {
		width: 60px;
		height: 3px;
		background-color: #E89B4B;
		margin: 1.5rem auto 0;
		border-radius: 2px;
	}

	.title-decoration {
		display: flex;
		justify-content: center;
		gap: 1rem;
		margin-top: 2rem;
		position: relative;
		z-index: 2;
	}

	.decoration-dot {
		width: 8px;
		height: 8px;
		border-radius: 50%;
		background-color: #E89B4B;
		opacity: 0.6;
		animation: pulse 2s ease-in-out infinite;

		&:nth-child(2) {
			animation-delay: 0.3s;
		}

		&:nth-child(3) {
			animation-delay: 0.6s;
		}
	}

	@keyframes pulse {

		0%,
		100% {
			opacity: 0.6;
			transform: scale(1);
		}

		50% {
			opacity: 1;
			transform: scale(1.2);
		}
	}
}

/* ./parts/business-other.html */

#section-business-other {
	background-color: #FFFFFF;
	padding: 3.75rem 2.5rem;

	@media (max-width: 1024px) {
		padding: 2.5rem 1.875rem;
	}

	@media (max-width: 599px) {
		padding: 2.5rem 1.25rem;
	}

	.section-title {
		font-size: 1.5rem;
		font-weight: 700;
		margin-bottom: 2rem;
		color: #333333;
		text-align: left;
		position: relative;
		padding-bottom: 1.25rem;

		&::after {
			content: "";
			display: none;
		}
	}

	.content-text {
		max-width: 900px;
		margin: 0 auto;
		font-size: 0.875rem;
		line-height: 1.8;
		color: #333333;

		p {
			margin-bottom: 1.25rem;

			&:last-child {
				margin-bottom: 0;
			}
		}
	}

	.service-list {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 1rem;
		margin-top: 1.5rem;

		@media (max-width: 599px) {
			grid-template-columns: 1fr;
			gap: 0.875rem;
		}

		.list-item {
			display: flex;
			align-items: flex-start;
			gap: 0.75rem;

			.icon {
				flex-shrink: 0;
				width: 20px;
				height: 20px;
				display: flex;
				align-items: center;
				justify-content: center;
				color: #E89B4B;
				font-weight: 700;
				margin-top: 2px;
			}

			.text {
				font-size: 0.875rem;
				color: #333333;
				line-height: 1.6;
			}
		}
	}
}

/* ./parts/index-hero.html */

section#hero {
	background: linear-gradient(135deg, #F5C99B 0%, #F0A860 100%);
	padding: 6rem 2.5rem;
	position: relative;
	overflow: hidden;
	min-height: 500px;
	display: flex;
	align-items: center;
	justify-content: center;

	@media (max-width: 1024px) {
		padding: 4rem 2rem;
		min-height: 400px;
	}

	@media (max-width: 599px) {
		padding: 3rem 1.25rem;
		min-height: 350px;
	}

	.hero-background {
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 1;
		background-color: #F5C99B;
	}

	.hero-slide {
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		background-size: cover;
		background-position: center;
		opacity: 0;
		transition: opacity 1s ease-in-out;
		z-index: 1;

		&.active {
			opacity: 1;
		}

		&::after {
			content: "";
			position: absolute;
			top: 0;
			left: 0;
			right: 0;
			bottom: 0;
			background: rgba(245, 201, 155, 0.3);
			z-index: 2;
		}
	}

	&::before {
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		background: url('data:image/svg+xml,<svg xmlns="https://www.w3.org/2000/svg" viewBox="0 0 1200 600"><defs><pattern id="dots" x="0" y="0" width="80" height="80" patternUnits="userSpaceOnUse"><circle cx="40" cy="40" r="2" fill="rgba(255,255,255,0.1)"/></pattern></defs><rect width="1200" height="600" fill="url(%23dots)"/></svg>');
		pointer-events: none;
		z-index: 3;
	}

	.hero-container {
		max-width: 1200px;
		margin: 0 auto;
		width: 100%;
		position: relative;
		z-index: 4;
		text-align: center;
	}

	.hero-content {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 1.5rem;
	}

	.hero-main-title {
		font-size: 2.25rem;
		font-weight: 700;
		line-height: 1.3;
		color: #FFFFFF;
		text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1);
		margin: 0;

		@media (max-width: 1024px) {
			font-size: 1.875rem;
		}

		@media (max-width: 599px) {
			font-size: 1.5rem;
		}
	}

	.hero-subtitle {
		font-size: 1.25rem;
		font-weight: 500;
		line-height: 1.6;
		color: #ffffff;
		margin: 0;
		max-width: 600px;

		@media (max-width: 1024px) {
			font-size: 1.125rem;
		}

		@media (max-width: 599px) {
			font-size: 1rem;
		}
	}

	.hero-cta {
		display: flex;
		gap: 1rem;
		justify-content: center;
		flex-wrap: wrap;
		margin-top: 1rem;

		@media (max-width: 599px) {
			flex-direction: column;
			gap: 0.75rem;
		}

		.btn {
			font-size: 1rem;
			padding: 1rem 2rem;
			white-space: nowrap;
			box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
			display: flex;
			align-items: center;
			justify-content: center;
			gap: 0.5rem;

			@media (max-width: 599px) {
				width: 100%;
				font-size: 0.95rem;
			}

			&:hover {
				box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);
			}

			.material-symbols-rounded {
				font-size: 20px;
				display: flex;
				align-items: center;
			}
		}
	}

	.hero-decoration {
		position: absolute;
		width: 300px;
		height: 300px;
		border-radius: 50%;
		background: rgba(255, 255, 255, 0.1);
		pointer-events: none;
		z-index: 2;

		@media (max-width: 1024px) {
			width: 200px;
			height: 200px;
		}

		&.decoration-top-left {
			top: -100px;
			left: -100px;
		}

		&.decoration-bottom-right {
			bottom: -100px;
			right: -100px;
		}
	}
}

/* ./parts/index-cta.html */

section#cta {
	background: linear-gradient(135deg, #E89B4B 0%, #C76A1F 100%);
	color: #FFFFFF;
	text-align: center;
	padding: 60px 40px;

	@media (max-width: 1024px) {
		padding: 50px 30px;
	}

	@media (max-width: 599px) {
		padding: 40px 20px;
	}

	h2 {
		color: #FFFFFF;
		font-size: 32px;
		margin-bottom: 16px;
		font-weight: 700;

		@media (max-width: 599px) {
			font-size: 24px;
		}
	}

	.cta-subtitle {
		font-size: 16px;
		color: rgba(255, 255, 255, 0.95);
		margin-bottom: 40px;
		line-height: 1.6;
		max-width: 600px;
		margin-left: auto;
		margin-right: auto;

		@media (max-width: 599px) {
			font-size: 14px;
			margin-bottom: 30px;
		}
	}

	.cta-buttons {
		display: flex;
		gap: 20px;
		justify-content: center;
		flex-wrap: wrap;

		@media (max-width: 599px) {
			flex-direction: column;
			gap: 16px;
		}

		.btn {
			font-size: 16px;
			font-weight: 700;
			padding: 15px 40px;
			border-radius: 5px;
			text-decoration: none;
			display: inline-flex;
			align-items: center;
			justify-content: center;
			transition: all 0.3s ease-in-out;
			cursor: pointer;
			min-width: 200px;

			@media (max-width: 599px) {
				width: 100%;
				min-width: auto;
				padding: 14px 24px;
				font-size: 14px;
			}

			&:focus-visible {
				outline: 2px solid #FFFFFF;
				outline-offset: 2px;
			}

			&:disabled {
				opacity: 0.6;
				cursor: not-allowed;
			}
		}
	}

	.btn-white {
		background-color: #FFFFFF;
		color: #E89B4B;

		&:hover:not(:disabled) {
			background-color: rgba(255, 255, 255, 0.9);
			transform: translateY(-2px);
			box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
		}

		&:active:not(:disabled) {
			transform: translateY(0);
		}
	}

	.btn-outline {
		background-color: transparent;
		color: #FFFFFF;
		border: 2px solid #FFFFFF;

		&:hover:not(:disabled) {
			background-color: rgba(255, 255, 255, 0.15);
			transform: translateY(-2px);
		}

		&:active:not(:disabled) {
			transform: translateY(0);
		}
	}

	.cta-phone {
		font-size: 18px;
		font-weight: 700;
		color: #FFFFFF;
		text-decoration: none;
		display: inline-flex;
		align-items: center;
		gap: 8px;
		margin-top: 20px;
		transition: all 0.3s ease-in-out;

		@media (max-width: 599px) {
			font-size: 16px;
			margin-top: 16px;
		}

		&:hover {
			opacity: 0.9;
			transform: scale(1.05);
		}

		&:focus-visible {
			outline: 2px solid #FFFFFF;
			outline-offset: 2px;
		}

		.material-symbols-rounded {
			font-size: 24px;
		}
	}
}

/* ./parts/staff-seminar.html */

section#staff-seminar {
	background-color: #FFFFFF;

	.section-wrapper {
		max-width: 1200px;
		margin: 0 auto;
	}

	.seminar-title {
		font-size: 28px;
		font-weight: 700;
		color: #333333;
		margin-bottom: 2rem;
		position: relative;
		padding-bottom: 1.25rem;

		&::after {
			content: "";
			display: block;
			width: 60px;
			height: 3px;
			background-color: #E89B4B;
			margin-top: 0.938rem;
		}
	}

	.seminar-content {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 3rem;
		align-items: start;

		@media (max-width: 1024px) {
			grid-template-columns: 1fr;
			gap: 2rem;
		}

		@media (max-width: 599px) {
			grid-template-columns: 1fr;
			gap: 1.5rem;
		}
	}

	.seminar-text {
		p {
			font-size: 16px;
			line-height: 1.8;
			color: #333333;
			margin-bottom: 1.5rem;

			&:last-child {
				margin-bottom: 0;
			}
		}
	}

	.seminar-topics {
		background-color: #FAF5F0;
		border-left: 4px solid #E89B4B;
		padding: 1.5rem;
		border-radius: 5px;

		h4 {
			font-size: 18px;
			font-weight: 700;
			color: #333333;
			margin-bottom: 1rem;
		}

		ul {
			list-style: none;
			padding: 0;
			margin: 0;

			li {
				font-size: 14px;
				line-height: 1.8;
				color: #333333;
				margin-bottom: 0.75rem;
				padding-left: 1.5rem;
				position: relative;

				&::before {
					content: "✓";
					position: absolute;
					left: 0;
					color: #E89B4B;
					font-weight: 700;
				}

				&:last-child {
					margin-bottom: 0;
				}
			}
		}
	}

	.seminar-cta {
		text-align: center;
		margin-top: 2rem;

		a {
			display: inline-block;
			background-color: #E89B4B;
			color: #FFFFFF;
			padding: 15px 40px;
			font-size: 16px;
			font-weight: 600;
			border-radius: 5px;
			text-decoration: none;
			transition: all 0.3s ease-in-out;

			&:hover {
				background-color: #D87F3C;
				transform: scale(1.05);
			}

			&:focus-visible {
				outline: 2px solid #E89B4B;
				outline-offset: 2px;
			}
		}
	}
}

/* ./parts/index-strengths.html */

#strengths-section {
	padding: 60px 40px;
	background-color: #FFFFFF;

	@media (max-width: 1024px) {
		padding: 40px 30px;
	}

	@media (max-width: 599px) {
		padding: 40px 20px;
	}
}


.strengths-container {
	max-width: 1200px;
	margin: 0 auto;
}

.strengths-title {
	font-size: 28px;
	font-weight: 700;
	text-align: center;
	margin-bottom: 40px;
	color: #333333;
	position: relative;
	padding-bottom: 20px;

	&::after {
		content: "";
		display: block;
		width: 60px;
		height: 3px;
		background-color: #E89B4B;
		margin: 15px auto 0;
	}
}

.strengths-wrapper {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 40px;
	align-items: center;

	@media (max-width: 1024px) {
		grid-template-columns: 1fr;
		gap: 30px;
	}

	@media (max-width: 599px) {
		gap: 20px;
	}
}

.strengths-text {
	padding: 0 20px;

	@media (max-width: 1024px) {
		padding: 0;
	}

	p {
		font-size: 1.25rem;
		line-height: 1.8;
		color: #333333;
		margin-bottom: 20px;

		@media (max-width: 599px) {
			font-size: 14px;
		}
	}
}

.strengths-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 24px;

	@media (max-width: 1024px) {
		grid-template-columns: repeat(2, 1fr);
	}

	@media (max-width: 599px) {
		grid-template-columns: 1fr;
	}
}

.strength-item {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 12px;
	padding: 20px;
	background-color: #FAF5F0;
	border-radius: 8px;
	transition: all 0.3s ease;

	&:hover {
		background-color: #F5C99B;
		transform: translateY(-4px);
		box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
	}

	@media (max-width: 599px) {
		padding: 16px;
	}
}

.strength-icon {
	font-size: 32px;
	color: #E89B4B;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	background-color: rgba(232, 155, 75, 0.1);
	border-radius: 50%;

	@media (max-width: 599px) {
		font-size: 28px;
		width: 40px;
		height: 40px;
	}
}

.strength-title {
	font-size: 18px;
	font-weight: 600;
	color: #333333;

	@media (max-width: 599px) {
		font-size: 16px;
	}
}

.strength-description {
	font-size: 14px;
	color: #666666;
	line-height: 1.6;

	@media (max-width: 599px) {
		font-size: 13px;
	}
}

#strengths-section {
	position: relative;
	z-index: 1;
	padding: 100px 40px 60px;
	background-color: #FFFFFF;
}

.wave-container-str {
	position: absolute;
	top: -119px;
	left: 0;
	width: 100%;
	height: 120px;
	line-height: 0;
	overflow: hidden;
}

.wave-container-str svg {
	position: relative;
	display: block;
	width: calc(100% + 1.3px);
	height: 120px;
}

.wave-container-str path {
	fill: #FFFFFF;
}

/* モバイル対応の調整 */
@media (max-width: 599px) {
	.wave-container {
		top: -59px;
		height: 60px;
	}

	.wave-container-str {
		top: -59px;
	}

	.wave-container-str svg {
		height: 60px;
	}

	#strengths-section {
		padding-top: 60px;
	}
}

/* ./parts/index-staff-intro.html */

#staff-intro {
	padding: 4rem 2.5rem;
	background-color: #FFFFFF;

	@media (max-width: 1024px) {
		padding: 3rem 2rem;
	}

	@media (max-width: 599px) {
		padding: 2.5rem 1.25rem;
	}

	.staff-intro-container {
		max-width: 1200px;
		margin: 0 auto;
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 3rem;
		align-items: center;

		@media (max-width: 1024px) {
			grid-template-columns: 1fr;
			gap: 2rem;
		}
	}

	.staff-image {
		display: flex;
		justify-content: center;

		img {
			width: 100%;
			max-width: 280px;
			height: auto;
			border-radius: 10px;
			box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
		}
	}

	.staff-content {
		display: flex;
		flex-direction: column;
		gap: 1.5rem;
	}

	.staff-header {
		h2 {
			font-size: 28px;
			font-weight: 700;
			color: #333333;
			margin-bottom: 0.5rem;
		}

		.staff-title {
			font-size: 18px;
			font-weight: 600;
			color: #E89B4B;
			margin-bottom: 1rem;
		}

		.staff-subtitle {
			font-size: 14px;
			color: #666666;
			line-height: 1.6;
		}
	}

	.staff-profile {
		font-size: 16px;
		line-height: 1.8;
		color: #333333;

		p {
			margin-bottom: 1rem;

			&:last-child {
				margin-bottom: 0;
			}
		}
	}

	.staff-highlights {
		display: flex;
		flex-direction: column;
		gap: 1rem;
		padding: 1.5rem;
		background-color: #FAF5F0;
		border-left: 4px solid #E89B4B;
		border-radius: 5px;

		.highlight-item {
			display: flex;
			align-items: flex-start;
			gap: 1rem;

			.icon {
				flex-shrink: 0;
				width: 24px;
				height: 24px;
				display: flex;
				align-items: center;
				justify-content: center;
				color: #E89B4B;
				margin-top: 2px;
			}

			.text {
				font-size: 14px;
				line-height: 1.6;
				color: #333333;
			}
		}
	}

	.staff-cta {
		display: flex;
		gap: 1rem;

		@media (max-width: 599px) {
			flex-direction: column;
		}

		a {
			width: fit-content;

			&:hover {
				color: #FFFFFF;
				background-color: var(--primary-color);
			}

			@media (max-width: 599px) {
				width: 100%;
			}
		}
	}
}

/* ./parts/about-network.html */

#about-network {
	padding: 60px 40px;
	background-color: #FFFFFF;

	@media (max-width: 1024px) {
		padding: 40px 30px;
	}

	@media (max-width: 599px) {
		padding: 40px 20px;
	}

	.network-title {
		font-size: 28px;
		font-weight: 700;
		text-align: left;
		margin-bottom: 24px;
		color: #333333;
		padding-bottom: 16px;
		border-bottom: 3px solid #E89B4B;
		display: inline-block;
	}

	.network-intro {
		font-size: 16px;
		line-height: 1.8;
		color: #666666;
		margin-bottom: 40px;
		max-width: 800px;
	}

	.network-grid {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 32px;

		@media (max-width: 1024px) {
			grid-template-columns: repeat(2, 1fr);
			gap: 24px;
		}

		@media (max-width: 599px) {
			grid-template-columns: 1fr;
			gap: 20px;
		}
	}

	.network-card {
		background-color: #FFFFFF;
		border: 1px solid #DCDCDC;
		border-left: 4px solid #E89B4B;
		border-radius: 8px;
		padding: 24px;
		transition: all 0.3s ease-in-out;

		&:hover {
			box-shadow: 0 4px 16px rgba(232, 155, 75, 0.15);
			transform: translateY(-4px);
		}

		.card-header {
			display: flex;
			align-items: flex-start;
			gap: 16px;
			margin-bottom: 16px;
		}

		.card-icon {
			width: 48px;
			height: 48px;
			min-width: 48px;
			display: flex;
			align-items: center;
			justify-content: center;
			background-color: rgba(232, 155, 75, 0.1);
			border-radius: 8px;

			.material-symbols-rounded {
				font-size: 28px;
				color: #E89B4B;
			}
		}

		.card-title {
			font-size: 18px;
			font-weight: 700;
			color: #333333;
			margin: 0;
			padding-top: 4px;
		}

		.card-description {
			font-size: 14px;
			line-height: 1.7;
			color: #666666;
			margin: 0;
		}
	}
}

/* ./parts/staff-profile.html */

section {
	padding: 60px 40px;
	background-color: #FFFFFF;

	@media (max-width: 1024px) {
		padding: 40px 30px;
	}

	@media (max-width: 599px) {
		padding: 40px 20px;
	}
}

.profile-container {
	max-width: 1200px;
	margin: 0 auto;
}

.profile-wrapper {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 60px;
	align-items: center;

	@media (max-width: 1024px) {
		grid-template-columns: 1fr;
		gap: 40px;
	}

	@media (max-width: 599px) {
		gap: 30px;
	}
}

.profile-image {
	text-align: center;

	img {
		width: 300px;
		height: 450px;
		border-radius: 10px;
		box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
		object-fit: cover;
		margin: 0 auto;

		@media (max-width: 1024px) {
			width: 280px;
			height: 420px;
		}

		@media (max-width: 599px) {
			width: 250px;
			height: 375px;
		}
	}
}

.profile-content {
	.profile-name {
		font-size: 32px;
		font-weight: 700;
		color: #333333;
		margin-bottom: 8px;

		@media (max-width: 599px) {
			font-size: 24px;
		}
	}

	.profile-title {
		font-size: 18px;
		font-weight: 600;
		color: #E89B4B;
		margin-bottom: 24px;
	}

	.profile-bio {
		font-size: 16px;
		line-height: 1.8;
		color: #666666;
		margin-bottom: 24px;

		p {
			margin-bottom: 16px;
		}
	}
}

/* ========== プロフィール情報テーブル ========== */
.profile-info-table {
	background-color: #FAF5F0;
	border-radius: 8px;
	overflow: hidden;
	margin-bottom: 24px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
	width: 70%;
	margin: 80px auto;


	@media (max-width: 599px) {
		display: flex;
		flex-direction: column;
		width: 90%;
	}

	.table-row {
		display: grid;
		grid-template-columns: 120px 1fr;
		border-bottom: 1px solid #DCDCDC;

		@media (max-width: 1024px) {
			grid-template-columns: 100px 1fr;
		}

		@media (max-width: 599px) {
			grid-template-columns: 1fr;
			border-bottom: none;
			border-top: 1px solid #DCDCDC;
		}

		&:last-child {
			border-bottom: none;
		}

		.table-label {
			background-color: #F5C99B;
			padding: 16px;
			font-weight: 700;
			color: #333333;
			font-size: 14px;
			border-right: 1px solid #DCDCDC;

			@media (max-width: 599px) {
				border-right: none;
				border-bottom: 1px solid #DCDCDC;
			}
		}

		.table-content {
			padding: 16px;
			color: #666666;
			font-size: 14px;
			line-height: 1.8;
			display: flex;
			align-items: center;

			@media (max-width: 599px) {
				padding: 12px 16px;
			}

			ul {
				list-style: none;
				padding: 0;
				margin: 0;

				li {
					margin-bottom: 4px;

					&:last-child {
						margin-bottom: 0;
					}

					&::before {
						content: "・";
						color: #E89B4B;
						margin-right: 8px;
						font-weight: 600;
					}
				}
			}
		}
	}
}

.profile-btn-group {
	display: flex;
	gap: 16px;

	@media (max-width: 599px) {
		flex-direction: column;
	}
}

/* ========== プロフィール詳細セクション ========== */
.profile-details {
	margin-top: 60px;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 40px;

	@media (max-width: 1024px) {
		grid-template-columns: 1fr;
		gap: 30px;
	}

	@media (max-width: 599px) {
		grid-template-columns: 1fr;
		gap: 24px;
	}
}

.detail-section {
	background-color: #FAF5F0;
	padding: 24px;
	border-radius: 8px;
	border-top: 4px solid #E89B4B;

	h3 {
		font-size: 18px;
		font-weight: 700;
		color: #333333;
		margin-bottom: 16px;
		display: flex;
		align-items: center;
		gap: 8px;

		.material-symbols-rounded {
			font-size: 24px;
			color: #E89B4B;
		}
	}

	ul {
		list-style: none;
		padding: 0;
		margin: 0;

		li {
			font-size: 14px;
			line-height: 1.8;
			color: #666666;
			padding: 8px 0;
			padding-left: 24px;
			position: relative;

			&::before {
				content: "→";
				position: absolute;
				left: 0;
				color: #E89B4B;
				font-weight: 600;
			}
		}
	}

	.detail-item {
		font-size: 14px;
		line-height: 1.8;
		color: #666666;
		margin-bottom: 8px;

		&:last-child {
			margin-bottom: 0;
		}

		strong {
			color: #333333;
			font-weight: 600;
		}
	}
}

.timeline {
	list-style: none;
	padding: 0;
	margin: 0;

	li {
		display: flex;
		gap: 16px;
		margin-bottom: 16px;
		font-size: 14px;
		line-height: 1.6;

		&:last-child {
			margin-bottom: 0;
		}

		.year {
			font-weight: 700;
			color: #E89B4B;
			min-width: 60px;
		}

		.event {
			color: #666666;
			flex: 1;
		}
	}
}


/* ./parts/contact-methods.html */

#contact-methods {
	padding: 3rem 2rem;
	background-color: #FFFFFF;

	@media (max-width: 1024px) {
		padding: 2.5rem 1.5rem;
	}

	@media (max-width: 599px) {
		padding: 2rem 1rem;
	}

	.methods-container {
		max-width: 1200px;
		margin: 0 auto;
	}

	.methods-grid {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 2rem;
		max-width: 900px;
		margin: 0 auto;

		@media (max-width: 1024px) {
			grid-template-columns: 1fr;
		}

		@media (max-width: 599px) {
			grid-template-columns: 1fr;
			gap: 1.5rem;
		}
	}

	.method-card {
		background-color: #FFFFFF;
		border: 2px solid #DCDCDC;
		border-radius: 10px;
		padding: 2rem;
		text-align: center;
		transition: all 0.3s ease-in-out;
		display: flex;
		flex-direction: column;
		gap: 1rem;
		height: fit-content;

		&:hover {
			border-color: #E89B4B;
			box-shadow: 0 4px 16px rgba(232, 155, 75, 0.2);
			transform: translateY(-4px);
		}
	}

	.method-icon {
		font-size: 3rem;
		color: #FFFFFF;
		margin: 0 auto;
		display: flex;
		align-items: center;
		justify-content: center;
		height: 80px;
		width: 80px;
		border-radius: 50%;
		background: linear-gradient(135deg, #E89B4B 0%, #F0A860 100%);
	}

	.method-title {
		font-size: 1.25rem;
		font-weight: 700;
		color: #333333;
		margin: 0;
		justify-content: center;
	}

	.method-description {
		font-size: 0.95rem;
		color: #666666;
		line-height: 1.6;
		margin: 0;
	}

	.method-content {
		display: flex;
		flex-direction: column;
		gap: 1rem;
		margin: 1rem 0;
	}

	.contact-info {
		font-size: 0.9rem;
		line-height: 1.8;
		color: #333333;

		.info-label {
			font-weight: 600;
			color: #666666;
			display: block;
			margin-top: 0.75rem;

			&:first-child {
				margin-top: 0;
			}
		}

		.info-value {
			font-size: 1.5rem;
			font-weight: 700;
			color: #E89B4B;
			display: block;
		}

		a {
			color: #E89B4B;
			text-decoration: none;
			font-weight: 600;

			&:hover {
				color: #D87F3C;
				text-decoration: underline;
			}
		}
	}

	.operating-hours {
		font-size: 0.85rem;
		color: #666666;
		background-color: #FAF5F0;
		padding: 0.75rem;
		border-radius: 5px;
		margin-top: 1rem;
	}

	.parking-info {
		font-size: 0.85rem;
		color: #666666;
		padding: 0.5rem;
	}

	.method-button {
		margin-top: auto;
	}
}

/* ./parts/about-info.html */

#about-info {
	background-color: #FAF5F0;
	padding: 60px 40px;

	@media (max-width: 1024px) {
		padding: 40px 30px;
	}

	@media (max-width: 599px) {
		padding: 40px 20px;
	}

	.info-container {
		max-width: 1200px;
		margin: 0 auto;
	}

	.info-title {
		font-size: 24px;
		font-weight: 700;
		color: #333333;
		margin-bottom: 24px;
		padding-bottom: 12px;
		border-bottom: 2px solid #E89B4B;
	}

	.info-table {
		width: 100%;
		border-collapse: collapse;
		background-color: #FFFFFF;
		border-radius: 8px;
		overflow: hidden;
		box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);

		@media (max-width: 599px) {
			display: block;
			border: none;
			box-shadow: none;
		}
	}

	.info-table tr {
		border-bottom: 1px solid #DCDCDC;

		&:last-child {
			border-bottom: none;
		}

		@media (max-width: 599px) {
			display: block;
			margin-bottom: 1rem;
			border: 1px solid #DCDCDC;
			border-radius: 5px;
			overflow: hidden;
		}
	}

	.info-table td {
		padding: 16px;
		font-size: 14px;
		line-height: 1.8;

		@media (max-width: 599px) {
			display: block;
			width: 100%;
			padding: 12px;
			border: none;

			&:first-child {
				background-color: #F5C99B;
				font-weight: 600;
				color: #333333;
				min-width: 120px;
			}
		}
	}

	.info-table td:first-child {
		background-color: #F5C99B;
		font-weight: 600;
		color: #333333;
		width: 150px;
		vertical-align: top;

		@media (max-width: 1024px) {
			width: 130px;
		}
	}

	.info-table td:last-child {
		color: #666666;
	}

	.info-table a {
		color: #E89B4B;
		text-decoration: none;
		transition: color 0.3s ease;

		&:hover {
			color: #D87F3C;
			text-decoration: underline;
		}
	}

	.info-address {
		font-size: 14px;
		line-height: 1.8;
		white-space: pre-line;
	}

	.info-contact {
		display: flex;
		flex-direction: column;
		gap: 8px;

		@media (max-width: 599px) {
			gap: 6px;
		}
	}

	.contact-item {
		font-size: 14px;
		display: flex;
		align-items: center;
		gap: 8px;

		a {
			color: #E89B4B;
			text-decoration: none;
			transition: color 0.3s ease;

			&:hover {
				color: #D87F3C;
			}
		}
	}

	.info-hours {
		font-size: 14px;
		line-height: 1.8;
	}

	.hours-item {
		display: flex;
		gap: 1rem;
		margin-bottom: 8px;

		&:last-child {
			margin-bottom: 0;
		}

		span:first-child {
			font-weight: 600;
			min-width: 80px;
		}
	}
}

/* ./parts/business-contracts.html */

#business-contracts {
	padding: 60px 40px;
	background-color: #FFFFFF;

	@media (max-width: 1024px) {
		padding: 40px 30px;
	}

	@media (max-width: 599px) {
		padding: 40px 20px;
	}

	.section-intro {
		max-width: 800px;
		margin: 0 auto 40px;
		font-size: 16px;
		line-height: 1.8;
		color: #666666;
		text-align: left;
	}

	.contracts-header {
		margin-bottom: 40px;

		h3 {
			font-size: 28px;
			font-weight: 700;
			color: #E89B4B;
			margin-bottom: 16px;
		}
	}

	.contracts-grid {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 24px;
		margin-bottom: 40px;

		@media (max-width: 1024px) {
			grid-template-columns: 1fr;
		}

		@media (max-width: 599px) {
			grid-template-columns: 1fr;
			gap: 16px;
		}
	}

	.contract-item {
		background-color: #FAF5F0;
		padding: 20px;
		border-radius: 8px;
		border-left: 4px solid #E89B4B;

		&:hover {
			background-color: #F5E6D3;
			transition: background-color 0.3s ease;
		}

		.contract-name {
			font-size: 16px;
			font-weight: 600;
			color: #333333;
			margin-bottom: 8px;
		}
	}

	.use-cases-section {
		background-color: #FAF5F0;
		padding: 30px;
		border-radius: 8px;
		margin: 40px 0;

		@media (max-width: 599px) {
			padding: 20px;
		}

		h4 {
			font-size: 20px;
			font-weight: 700;
			color: #333333;
			margin-bottom: 20px;
		}

		.use-case-list {
			display: flex;
			flex-direction: column;
			gap: 12px;

			.use-case-item {
				display: flex;
				gap: 12px;
				align-items: flex-start;

				.checkbox {
					flex-shrink: 0;
					width: 20px;
					height: 20px;
					background-color: #E89B4B;
					border-radius: 3px;
					display: flex;
					align-items: center;
					justify-content: center;
					margin-top: 2px;

					&::after {
						content: "✓";
						color: #FFFFFF;
						font-weight: 700;
						font-size: 12px;
					}
				}

				.text {
					font-size: 14px;
					line-height: 1.6;
					color: #333333;
				}
			}
		}
	}

	.pricing-section {
		background-color: #F5C99B;
		padding: 30px;
		border-radius: 8px;
		margin: 40px 0;

		@media (max-width: 599px) {
			padding: 20px;
		}

		h4 {
			font-size: 20px;
			font-weight: 700;
			color: #333333;
			margin-bottom: 20px;
		}

		.pricing-list {
			display: flex;
			flex-direction: column;
			gap: 16px;

			.pricing-item {
				display: flex;
				justify-content: space-between;
				align-items: center;
				padding: 12px;
				background-color: rgba(255, 255, 255, 0.7);
				border-radius: 5px;

				@media (max-width: 599px) {
					flex-direction: column;
					text-align: center;
					gap: 8px;
				}

				.service-name {
					font-size: 14px;
					font-weight: 600;
					color: #333333;
				}

				.price {
					font-size: 16px;
					font-weight: 700;
					color: #E89B4B;
				}
			}
		}

		.pricing-note {
			margin-top: 20px;
			padding-top: 20px;
			border-top: 1px solid rgba(255, 255, 255, 0.5);
			font-size: 12px;
			color: #333333;
			line-height: 1.6;
		}
	}
}

/* ./parts/about-organization.html */

section {
	padding: 3.75rem 2.5rem;
	background-color: #FFFFFF;

	@media (max-width: 1024px) {
		padding: 2.5rem 1.875rem;
	}

	@media (max-width: 599px) {
		padding: 2.5rem 1rem;
	}
}

.section-title {
	font-size: 1.75rem;
	font-weight: 700;
	color: #333333;
	margin-bottom: 2.5rem;
	text-align: center;
	position: relative;
	padding-bottom: 1.25rem;
}

.section-title::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 60px;
	height: 3px;
	background-color: #E89B4B;
}

.org-container {
	max-width: 900px;
	margin: 0 auto;
}

.org-content {
	background-color: #FAF5F0;
	padding: 2rem;
	border-radius: 8px;
	border-left: 4px solid #E89B4B;

	@media (max-width: 599px) {
		padding: 1.5rem;
	}
}

.org-text {
	font-size: 0.875rem;
	line-height: 1.8;
	color: #333333;
	margin-bottom: 1.5rem;

	&:last-child {
		margin-bottom: 0;
	}

	strong {
		color: #333333;
		font-weight: 700;
	}
}

.org-item {
	display: flex;
	gap: 1rem;
	margin-bottom: 1.5rem;

	@media (max-width: 599px) {
		gap: 0.75rem;
	}

	&:last-child {
		margin-bottom: 0;
	}

	.icon {
		flex-shrink: 0;
		width: 24px;
		height: 24px;
		display: flex;
		align-items: center;
		justify-content: center;
		background-color: #E89B4B;
		border-radius: 50%;
		color: #FFFFFF;
		font-size: 0.75rem;
		font-weight: 700;
	}

	.content {
		flex: 1;

		.label {
			font-size: 0.875rem;
			font-weight: 700;
			color: #333333;
			margin-bottom: 0.25rem;
		}

		.value {
			font-size: 0.875rem;
			color: #666666;
			line-height: 1.6;
		}
	}
}

.org-highlight {
	background-color: #E89B4B;
	color: #FFFFFF;
	padding: 1.5rem;
	border-radius: 8px;
	margin-top: 2rem;
	text-align: center;

	@media (max-width: 599px) {
		padding: 1.25rem;
		margin-top: 1.5rem;
	}

	p {
		font-size: 0.875rem;
		line-height: 1.8;
		margin-bottom: 0;
	}
}

/* ./parts/index-services.html */

section {
	padding: 60px 40px;

	@media (max-width: 1024px) {
		padding: 40px 24px;
	}

	@media (max-width: 599px) {
		padding: 40px 16px;
	}
}

.service-card {
	background-color: #FFFFFF;
	border-top: 4px solid #E89B4B;
	border-radius: 8px;
	padding: 24px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
	transition: all 0.3s ease-in-out;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;

	&:hover {
		box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
		transform: translateY(-4px);
	}
}

.service-icon {
	width: 80px;
	height: 80px;
	border-radius: 50%;
	background: linear-gradient(135deg, #E89B4B 0%, #F0A860 100%);
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 20px;

	.material-symbols-rounded {
		font-size: 40px;
		color: #FFFFFF;
		font-weight: 700;
	}
}

.grid-3 {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 30px;
}

.service-card {
	width: 100%;
	max-width: 350px;
}

.service-card h3 {
	color: #E89B4B;
	font-size: 22px;
	margin-bottom: 12px;
	font-weight: 700;
}

.service-card p {
	font-size: 14px;
	line-height: 1.8;
	color: #666666;
	margin-bottom: 16px;
}

.service-card a {
	color: #E89B4B;
	font-size: 14px;
	font-weight: 600;
	transition: all 0.3s ease;

	&:hover {
		color: #D87F3C;
		text-decoration: underline;
	}
}

/* ./parts/business-licensing.html */

#business-licensing {
	background-color: #FFFFFF;
	padding: 3.75rem 2.5rem;

	@media (max-width: 1024px) {
		padding: 2.5rem 1.875rem;
	}

	@media (max-width: 599px) {
		padding: 2.5rem 1.25rem;
	}

	.licensing-container {
		max-width: 1200px;
		margin: 0 auto;
	}

	.section-title {
		font-size: 1.75rem;
		font-weight: 700;
		color: #E89B4B;
		margin-bottom: 1rem;

		@media (max-width: 599px) {
			font-size: 1.5rem;
		}
	}

	.section-description {
		font-size: 1rem;
		line-height: 1.8;
		color: #333333;
		margin-bottom: 2rem;
		max-width: 900px;

		@media (max-width: 599px) {
			font-size: 0.9375rem;
			margin-bottom: 1.5rem;
		}
	}

	/* 対応業種セクション */
	.industries-section {
		margin-bottom: 2.5rem;

		h3 {
			font-size: 1.25rem;
			font-weight: 600;
			color: #333333;
			margin-bottom: 1.25rem;
		}
	}

	.industries-grid {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 1.25rem;
		background-color: #F5C99B;
		padding: 2rem;
		border-radius: 8px;
		margin-bottom: 2rem;

		@media (max-width: 1024px) {
			grid-template-columns: repeat(2, 1fr);
			gap: 1rem;
			padding: 1.5rem;
		}

		@media (max-width: 599px) {
			grid-template-columns: 1fr;
			gap: 0.875rem;
			padding: 1.25rem;
		}
	}

	.industry-item {
		background-color: #FFFFFF;
		padding: 1.25rem;
		border-radius: 5px;
		border-left: 4px solid #E89B4B;
		font-size: 0.875rem;
		line-height: 1.6;
		color: #333333;

		&::before {
			content: "■";
			color: #E89B4B;
			margin-right: 0.5rem;
			font-weight: bold;
		}

		@media (max-width: 599px) {
			padding: 1rem;
			font-size: 0.8125rem;
		}
	}

	/* 対応内容セクション */
	.content-section {
		margin-bottom: 2.5rem;

		h3 {
			font-size: 1.25rem;
			font-weight: 600;
			color: #333333;
			margin-bottom: 1.25rem;
		}
	}

	.content-grid {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 2rem;

		@media (max-width: 1024px) {
			grid-template-columns: 1fr;
			gap: 1.5rem;
		}
	}

	.content-list {
		background-color: #FAF5F0;
		padding: 1.875rem;
		border-radius: 5px;
		border-left: 4px solid #E89B4B;

		@media (max-width: 599px) {
			padding: 1.25rem;
		}

		h4 {
			font-size: 1rem;
			font-weight: 600;
			color: #333333;
			margin-bottom: 1rem;
			display: flex;
			align-items: center;
			gap: 0.5rem;

			&::before {
				content: "✓";
				color: #E89B4B;
				font-weight: bold;
				font-size: 1.25rem;
			}
		}

		ul {
			list-style: none;
			padding: 0;
			margin: 0;
		}

		li {
			font-size: 0.875rem;
			line-height: 1.8;
			color: #666666;
			margin-bottom: 0.625rem;
			padding-left: 1.5rem;
			position: relative;

			&::before {
				content: "◆";
				position: absolute;
				left: 0;
				color: #E89B4B;
				font-size: 0.625rem;
				top: 0.3rem;
			}

			&:last-child {
				margin-bottom: 0;
			}
		}
	}

	/* 料金目安セクション */
	.pricing-section {
		background-color: #F5C99B;
		padding: 2rem;
		border-radius: 8px;
		margin-bottom: 2rem;

		@media (max-width: 599px) {
			padding: 1.5rem;
		}

		h3 {
			font-size: 1.25rem;
			font-weight: 600;
			color: #333333;
			margin-bottom: 1.25rem;
		}

		.pricing-list {
			list-style: none;
			padding: 0;
			margin: 0;

			li {
				font-size: 0.875rem;
				line-height: 1.8;
				color: #333333;
				margin-bottom: 0.75rem;
				padding-left: 1.5rem;
				position: relative;

				&::before {
					content: "¥";
					position: absolute;
					left: 0;
					color: #E89B4B;
					font-weight: bold;
				}

				&:last-child {
					margin-bottom: 0;
				}
			}
		}

		.pricing-note {
			font-size: 0.8125rem;
			color: #666666;
			margin-top: 1rem;
			padding-top: 1rem;
			border-top: 1px solid rgba(232, 155, 75, 0.3);
			font-style: italic;
		}
	}

	/* メモアイコン */
	.memo-icon {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 24px;
		height: 24px;
		background-color: #E89B4B;
		color: #FFFFFF;
		border-radius: 50%;
		font-size: 0.75rem;
		font-weight: bold;
		margin-right: 0.5rem;
	}
}

/* ./parts/welfare-inheritance.html */

#welfare-inheritance {
	padding: 60px 40px;
	background-color: #FFFFFF;

	@media (max-width: 1024px) {
		padding: 40px 30px;
	}

	@media (max-width: 599px) {
		padding: 40px 20px;
	}

	.section-header {
		margin-bottom: 40px;
	}

	.section-title {
		font-size: 28px;
		font-weight: 700;
		color: #E89B4B;
		margin-bottom: 20px;
	}

	.section-description {
		font-size: 16px;
		line-height: 1.8;
		color: #333333;
		margin-bottom: 40px;
	}

	.content-wrapper {
		max-width: 1000px;
		margin: 0 auto;
	}

	.benefits-section {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 24px;
		margin-bottom: 40px;

		@media (max-width: 1024px) {
			grid-template-columns: 1fr;
		}

		@media (max-width: 599px) {
			grid-template-columns: 1fr;
		}
	}

	.benefit-card {
		background-color: #FAF5F0;
		border-left: 4px solid #E89B4B;
		padding: 20px;
		border-radius: 5px;
		display: flex;
		flex-direction: column;
		gap: 12px;
		transition: all 0.3s ease-in-out;
		cursor: pointer;

		&:hover {
			background-color: #FFF8F0;
			border-left-color: #D87F3C;
			box-shadow: 0 8px 24px rgba(232, 155, 75, 0.15);
			transform: translateY(-4px);
		}
	}

	.benefit-number {
		font-size: 24px;
		font-weight: 700;
		color: #E89B4B;
		transition: color 0.3s ease-in-out;
	}

	.benefit-title {
		font-size: 16px;
		font-weight: 600;
		color: #333333;
		transition: color 0.3s ease-in-out;
	}

	.benefit-description {
		font-size: 14px;
		line-height: 1.6;
		color: #666666;
		transition: color 0.3s ease-in-out;
	}

	.benefit-card:hover {
		.benefit-number {
			color: #D87F3C;
		}

		.benefit-title {
			color: #E89B4B;
		}

		.benefit-description {
			color: #333333;
		}
	}

	.two-column {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 40px;
		margin-bottom: 40px;

		@media (max-width: 1024px) {
			grid-template-columns: 1fr;
			gap: 30px;
		}

		@media (max-width: 599px) {
			grid-template-columns: 1fr;
			gap: 24px;
		}
	}

	.checklist {
		display: flex;
		flex-direction: column;
		gap: 12px;
	}

	.checklist-item {
		display: flex;
		align-items: flex-start;
		gap: 12px;
		font-size: 0.95rem;
		line-height: 1.6;
		color: #333333;

		&::before {
			content: "✓";
			color: #E89B4B;
			font-weight: 700;
			font-size: 18px;
			flex-shrink: 0;
			margin-top: -2px;
		}
	}

	.use-case-section {
		background-color: #FAF5F0;
		border-left: 4px solid #E89B4B;
		padding: 24px;
		margin-bottom: 40px;
		border-radius: 5px;
	}

	.use-case-title {
		font-size: 16px;
		font-weight: 600;
		color: #333333;
		margin-bottom: 16px;
	}

	.use-case-item {
		display: flex;
		align-items: flex-start;
		gap: 12px;
		font-size: 0.95rem;
		line-height: 1.6;
		color: #333333;
		margin-bottom: 10px;

		&:last-child {
			margin-bottom: 0;
		}

		&::before {
			content: "□";
			color: #E89B4B;
			font-weight: 700;
			font-size: 16px;
			flex-shrink: 0;
			margin-top: -2px;
		}
	}

	.pricing-section {
		background-color: #F5C99B;
		padding: 1.875rem;
		border-radius: 8px;
		margin-bottom: 2.5rem;

		@media (max-width: 599px) {
			padding: 1.25rem;
		}
	}

	.pricing-section h4 {
		font-size: 1rem;
		font-weight: 700;
		color: #333333;
		margin-bottom: 1rem;
	}

	.pricing-title {
		font-size: 16px;
		font-weight: 600;
		color: #333333;
		margin-bottom: 16px;
	}

	.pricing-item {
		display: flex;
		justify-content: space-between;
		align-items: baseline;
		gap: 1rem;
		padding-bottom: 0.75rem;
		border-bottom: 1px solid rgba(51, 51, 51, 0.1);

		&:last-child {
			border-bottom: none;
			padding-bottom: 0;
		}

		&strong:first-child {
			font-weight: 600;
			flex: 1;
		}

		&strong:last-child {
			font-weight: 700;
			color: #E89B4B;
			white-space: nowrap;
		}

		span {
			flex: 1;
		}
	}

	.pricing-note {
		font-size: 12px;
		color: #666666;
		margin-top: 16px;
		padding-top: 16px;
		border-top: 1px solid rgba(232, 155, 75, 0.3);
		font-style: italic;
	}

	.divider {
		height: 1px;
		background-color: #DCDCDC;
		margin: 40px 0;
	}

	.section-footer {
		display: flex;
		justify-content: center;
		margin-top: 40px;
	}
}

/* ./parts/index-faq.html */

#faq-section {
	padding: 60px 40px;
	background-color: #FFFFFF;

	@media (max-width: 1024px) {
		padding: 40px 30px;
	}

	@media (max-width: 599px) {
		padding: 40px 20px;
	}

	.faq-container {
		max-width: 900px;
		margin: 0 auto;
	}

	.faq-title {
		font-size: 28px;
		font-weight: 700;
		text-align: center;
		margin-bottom: 40px;
		color: #333333;
		position: relative;
		padding-bottom: 20px;

		&::after {
			content: "";
			display: block;
			width: 60px;
			height: 3px;
			background-color: #E89B4B;
			margin: 15px auto 0;
		}
	}

	.faq-list {
		display: flex;
		flex-direction: column;
		gap: 12px;
	}

	details {
		background-color: #FFFFFF;
		border: 1px solid #DCDCDC;
		border-radius: 8px;
		overflow: hidden;
		transition: all 0.3s ease-in-out;

		&:hover {
			border-color: #E89B4B;
			box-shadow: 0 2px 8px rgba(232, 155, 75, 0.1);
		}

		&[open] {
			background-color: #FAF5F0;
			border-color: #E89B4B;
			box-shadow: 0 4px 12px rgba(232, 155, 75, 0.15);
		}
	}

	summary {
		padding: 16px 20px;
		cursor: pointer;
		user-select: none;
		font-weight: 600;
		font-size: 14px;
		color: #333333;
		display: flex;
		justify-content: space-between;
		align-items: center;
		gap: 12px;

		&:hover {
			color: #E89B4B;
		}

		&::marker {
			content: "";
		}

		&::after {
			content: "▼";
			color: #E89B4B;
			font-size: 12px;
			transition: transform 0.3s ease;
			flex-shrink: 0;
		}
	}

	details[open]>summary::after {
		transform: rotate(180deg);
	}

	.faq-answer {
		padding: 0 20px 20px 20px;
		color: #666666;
		font-size: 14px;
		line-height: 1.8;
		animation: slideDown 0.3s ease-in-out;

		p {
			margin: 0;
		}

		strong {
			color: #333333;
			font-weight: 600;
		}
	}

	.faq-cta {
		text-align: center;
		margin-top: 40px;
		padding-top: 30px;
		border-top: 1px solid #DCDCDC;

		a {
			display: inline-block;
			margin-top: 12px;
		}
	}

	@keyframes slideDown {
		from {
			opacity: 0;
			transform: translateY(-10px);
		}

		to {
			opacity: 1;
			transform: translateY(0);
		}
	}
}

/* ./parts/welfare-guardianship.html */

section#guardianship {
	padding: 3.75rem 2.5rem;
	background-color: #FFFFFF;

	@media (max-width: 1024px) {
		padding: 2.5rem 1.875rem;
	}

	@media (max-width: 599px) {
		padding: 2.5rem 1.25rem;
	}

	.section-title {
		color: #E89B4B;
		font-size: 1.75rem;
		font-weight: 700;
		margin-bottom: 1.5rem;

		@media (max-width: 599px) {
			font-size: 1.5rem;
		}
	}

	.overview-text {
		font-size: 1rem;
		line-height: 1.8;
		color: #333333;
		max-width: 900px;
		margin: 0 auto 2rem;

		@media (max-width: 599px) {
			font-size: 0.95rem;
			margin-bottom: 1.5rem;
		}
	}

	.hero-section {
		display: grid;
		grid-template-columns: 60% 40%;
		gap: 0;
		margin-bottom: 3rem;
		position: relative;
		min-height: 600px;
		align-items: center;
		transform: translateX(-2.5rem);

		@media (max-width: 1024px) {
			grid-template-columns: 1fr;
			gap: 2rem;
			min-height: auto;
		}

		@media (max-width: 599px) {
			grid-template-columns: 1fr;
			gap: 1.5rem;
			margin-bottom: 2rem;
			transform: translateX(0)
		}
	}

	.hero-image {
		width: 60%;
		height: 100%;
		position: absolute;
		left: 0;
		top: 0;
		margin: 0;

		@media (max-width: 1024px) {
			position: relative;
			height: 300px;
			width: 100%;
		}

		@media (max-width: 599px) {
			height: 250px;
			transform: translateX(-2.5rem);
		}

		img {
			width: 100%;
			height: 100%;
			object-fit: cover;
			display: block;
		}
	}

	.hero-title {
		position: absolute;
		left: 50%;
		top: 5%;
		transform: translateX(-50%);
		background-color: #FFFFFF;
		padding: 2rem;
		border-radius: 8px;
		box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
		z-index: 10;
		text-align: center;
		width: fit-content;

		@media (max-width: 1024px) {
			position: absolute;
			right: -40px;
			left: auto;
			top: 250px;
			transform: none;
			max-width: 100%;
		}

		@media (max-width: 599px) {
			padding: 1.5rem;
			position: absolute;
			right: 0;
			left: auto;
			top: 230px;
		}

		h3 {
			font-size: 2.5rem;
			font-weight: 700;
			color: #E89B4B;
			line-height: 1.4;
			white-space: nowrap;

			@media (max-width: 1024px) {
				font-size: 1.75rem;
			}

			@media (max-width: 599px) {
				font-size: 1.25rem;
			}

			@media (max-width: 430px) {
				font-size: 1rem;
			}

		}

	}

	.hero-text {
		grid-column: 2;
		padding-left: 2rem;
		z-index: 1;
		margin-top: 100px;

		@media (max-width: 1024px) {
			grid-column: 1;
			padding-left: 0;
			margin-top: 4rem;
			transform: none;
			margin-left: auto;
			margin-right: auto;
			width: 90%;
		}

		p {
			font-size: 1.2rem;
			line-height: 1.8;
			color: #333333;
			margin-bottom: 2rem;

			@media (max-width: 599px) {
				font-size: 1rem;
			}
		}
	}

	.content-grid {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 2rem;
		margin-bottom: 2.5rem;

		@media (max-width: 1024px) {
			grid-template-columns: 1fr;
			gap: 1.5rem;
		}

		@media (max-width: 599px) {
			grid-template-columns: 1fr;
			gap: 1.25rem;
		}
	}

	.content-column {
		display: flex;
		flex-direction: column;
		gap: 1rem;
	}

	.content-column h4 {
		font-size: 1rem;
		font-weight: 700;
		color: #333333;
		margin-bottom: 0.5rem;
	}

	.checklist {
		list-style: none;
		padding: 0;
		margin: 0;
		display: flex;
		flex-direction: column;
		gap: 0.75rem;

		li {
			display: flex;
			align-items: flex-start;
			gap: 0.75rem;
			font-size: 0.95rem;
			color: #333333;
			line-height: 1.6;

			&::before {
				content: "✓";
				color: #E89B4B;
				font-weight: 700;
				font-size: 1.2rem;
				flex-shrink: 0;
				margin-top: -2px;
			}
		}
	}

	.use-cases-section {
		background-color: #FAF5F0;
		padding: 1.875rem;
		border-radius: 8px;
		margin-bottom: 2.5rem;

		@media (max-width: 599px) {
			padding: 1.25rem;
		}
	}

	.use-cases-section h4 {
		font-size: 1rem;
		font-weight: 700;
		color: #333333;
		margin-bottom: 1rem;
	}

	.use-cases-grid {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 1rem;

		@media (max-width: 1024px) {
			grid-template-columns: 1fr;
		}

		@media (max-width: 599px) {
			grid-template-columns: 1fr;
			gap: 0.75rem;
		}
	}

	.use-case-item {
		display: flex;
		align-items: flex-start;
		gap: 0.75rem;
		font-size: 0.95rem;
		color: #333333;
		line-height: 1.6;

		&::before {
			content: "□";
			color: #E89B4B;
			font-weight: 700;
			font-size: 1.1rem;
			flex-shrink: 0;
			margin-top: 2px;
		}
	}

	.pricing-section {
		background-color: #F5C99B;
		padding: 1.875rem;
		border-radius: 8px;
		margin-bottom: 2.5rem;

		@media (max-width: 599px) {
			padding: 1.25rem;
		}
	}

	.pricing-section h4 {
		font-size: 1rem;
		font-weight: 700;
		color: #333333;
		margin-bottom: 1rem;
	}

	.pricing-content {
		display: flex;
		flex-direction: column;
		gap: 0.75rem;
		font-size: 0.95rem;
		color: #333333;
		line-height: 1.6;
	}

	.pricing-item {
		display: flex;
		justify-content: space-between;
		align-items: baseline;
		gap: 1rem;
		padding-bottom: 0.75rem;
		border-bottom: 1px solid rgba(51, 51, 51, 0.1);

		&:last-child {
			border-bottom: none;
			padding-bottom: 0;
		}

		&strong:first-child {
			font-weight: 600;
			flex: 1;
		}

		&strong:last-child {
			font-weight: 700;
			color: #E89B4B;
			white-space: nowrap;
		}

		strong {
			text-align: right;
		}

		span {
			flex: 1;
		}

		.pricing-item-br {
			display: none;
		}

		@media (max-width: 599px) {
			.pricing-item-br {
				display: block;
			}
		}
	}

	.pricing-note {
		font-size: 0.85rem;
		color: #666666;
		margin-top: 1rem;
		padding-top: 1rem;
		border-top: 1px solid rgba(51, 51, 51, 0.1);
		line-height: 1.6;
	}

	.benefits-section {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 24px;
		margin-bottom: 40px;

		@media (max-width: 1024px) {
			grid-template-columns: 1fr;
		}

		@media (max-width: 599px) {
			grid-template-columns: 1fr;
		}
	}

	.benefit-card {
		background-color: #FAF5F0;
		border-left: 4px solid #E89B4B;
		padding: 20px;
		border-radius: 5px;
		display: flex;
		flex-direction: column;
		gap: 12px;
		transition: all 0.3s ease-in-out;
		cursor: pointer;

		&:hover {
			background-color: #FFF8F0;
			border-left-color: #D87F3C;
			box-shadow: 0 8px 24px rgba(232, 155, 75, 0.15);
			transform: translateY(-4px);
		}
	}

	.benefit-number {
		font-size: 24px;
		font-weight: 700;
		color: #E89B4B;
		transition: color 0.3s ease-in-out;
	}

	.benefit-title {
		font-size: 16px;
		font-weight: 600;
		color: #333333;
		transition: color 0.3s ease-in-out;
	}

	.benefit-description {
		font-size: 14px;
		line-height: 1.6;
		color: #666666;
		transition: color 0.3s ease-in-out;
	}

	.benefit-card:hover {
		.benefit-number {
			color: #D87F3C;
		}

		.benefit-title {
			color: #E89B4B;
		}

		.benefit-description {
			color: #333333;
		}
	}
}

/* ./parts/welfare-flow.html */

#welfare-flow {
	background-color: #FFFFFF;
	padding: 3.75rem 2.5rem;

	@media (max-width: 1024px) {
		padding: 2.5rem 1.875rem;
	}

	@media (max-width: 599px) {
		padding: 2.5rem 1.25rem;
	}

	.flow-title {
		font-size: 1.75rem;
		font-weight: 700;
		text-align: center;
		margin-bottom: 2.5rem;
		color: #333333;
		position: relative;
		padding-bottom: 1.25rem;

		&::after {
			content: "";
			display: block;
			width: 60px;
			height: 3px;
			background-color: #E89B4B;
			margin: 0.9375rem auto 0;
		}
	}

	.flow-container {
		max-width: 1000px;
		margin: 0 auto;
	}

	.flow-grid {
		display: grid;
		grid-template-columns: repeat(5, 1fr);
		gap: 1rem;
		align-items: flex-start;
		margin-bottom: 2.5rem;

		@media (max-width: 1024px) {
			grid-template-columns: repeat(3, 1fr);
			gap: 0.75rem;
		}

		@media (max-width: 599px) {
			grid-template-columns: 1fr;
			gap: 1.5rem;
		}
	}

	.flow-step {
		display: flex;
		flex-direction: column;
		align-items: center;
		text-align: center;
		position: relative;

		@media (max-width: 599px) {
			flex-direction: row;
			text-align: left;
			align-items: flex-start;
		}
	}

	.step-number {
		width: 50px;
		height: 50px;
		background-color: #E89B4B;
		color: #FFFFFF;
		border-radius: 50%;
		display: flex;
		align-items: center;
		justify-content: center;
		font-size: 1.25rem;
		font-weight: 700;
		margin-bottom: 1rem;
		flex-shrink: 0;

		@media (max-width: 599px) {
			margin-bottom: 0;
			margin-right: 1rem;
		}
	}

	.step-content {
		display: flex;
		flex-direction: column;

		@media (max-width: 599px) {
			flex: 1;
		}
	}

	.step-title {
		font-size: 1rem;
		font-weight: 600;
		color: #333333;
		margin-bottom: 0.5rem;
	}

	.step-description {
		font-size: 0.875rem;
		color: #666666;
		line-height: 1.6;
	}

	/* デスクトップの矢印 */
	.flow-arrow {
		position: absolute;
		top: 25px;
		right: -37px;
		width: 30px;
		height: 2px;
		background-color: #E89B4B;
		display: none;

		@media (min-width: 600px) and (max-width: 1024px) {
			display: block;
			width: 20px;
			right: -23px;
		}

		@media (min-width: 1025px) {
			display: block;
		}

		&::after {
			content: "";
			position: absolute;
			right: -6px;
			top: -4px;
			width: 0;
			height: 0;
			border-left: 8px solid #E89B4B;
			border-top: 5px solid transparent;
			border-bottom: 5px solid transparent;
		}
	}

	/* タブレット・モバイルの矢印 */
	@media (max-width: 599px) {
		.flow-step {
			&:not(:last-child)::after {
				content: "↓";
				position: absolute;
				left: 25px;
				top: 70px;
				font-size: 1.5rem;
				color: #E89B4B;
			}
		}
	}

	.flow-details {
		background-color: #FAF5F0;
		border-radius: 8px;
		padding: 1.5rem;
		margin-top: 1.5rem;

		@media (max-width: 599px) {
			margin-top: 2rem;
		}
	}

	.details-title {
		font-size: 1.125rem;
		font-weight: 600;
		color: #333333;
		margin-bottom: 1rem;
		display: flex;
		align-items: center;
		gap: 0.5rem;

		&::before {
			content: "ℹ";
			display: flex;
			align-items: center;
			justify-content: center;
			width: 24px;
			height: 24px;
			background-color: #E89B4B;
			color: #FFFFFF;
			border-radius: 50%;
			font-size: 0.875rem;
			font-weight: 700;
			flex-shrink: 0;
		}
	}

	.details-content {
		font-size: 0.95rem;
		line-height: 1.7;
		color: #666666;
		margin-bottom: 0.75rem;

		&:last-child {
			margin-bottom: 0;
		}

		strong {
			color: #333333;
			font-weight: 600;
		}
	}

	.flow-note {
		background-color: #FFF9F5;
		border-left: 4px solid #E89B4B;
		padding: 1rem 1.25rem;
		border-radius: 4px;
		margin-top: 1.5rem;

		p {
			font-size: 0.875rem;
			line-height: 1.7;
			color: #666666;
			margin-bottom: 0;

			strong {
				color: #333333;
				font-weight: 600;
			}
		}
	}
}

/* ./parts/contact-form.html */

#contact-form-section {
	background-color: #FFFFFF;
	padding: 3rem 2rem;

	@media (max-width: 1024px) {
		padding: 2.5rem 1.5rem;
	}

	@media (max-width: 599px) {
		padding: 2rem 1rem;
	}

	.form-wrapper {
		max-width: 600px;
		margin: 0 auto;
	}

	.form-title {
		font-size: 28px;
		font-weight: 700;
		text-align: center;
		margin-bottom: 2rem;
		color: #333333;
	}

	form {
		display: flex;
		flex-direction: column;
		gap: 1.5rem;
	}

	.form-group {
		display: flex;
		flex-direction: column;
		gap: 0.5rem;
	}

	.form-group label {
		font-size: 12px;
		font-weight: 600;
		color: #333333;
		background-color: #F5C99B;
		padding: 8px 12px;
		border-radius: 3px;
		display: block;

		.required {
			color: #E89B4B;
			margin-left: 4px;
		}
	}

	.form-group input,
	.form-group textarea,
	.form-group select {
		font-size: 16px;
		padding: 12px 16px;
		border: 1px solid #DCDCDC;
		border-radius: 5px;
		font-family: inherit;
		transition: all 0.3s ease-in-out;
		background-color: #FFFFFF;
		color: #333333;

		&::placeholder {
			color: #999999;
		}

		&:focus {
			outline: none;
			border-color: #E89B4B;
			box-shadow: 0 0 0 3px rgba(232, 155, 75, 0.1);
		}

		&:disabled {
			background-color: #F5F5F5;
			cursor: not-allowed;
		}
	}

	textarea {
		resize: vertical;
		min-height: 120px;
		font-family: inherit;
	}

	select {
		cursor: pointer;
	}

	.form-error {
		color: #DC2626;
		font-size: 12px;
		margin-top: -12px;
		display: none;
	}

	.form-group.error {
		.form-error {
			display: block;
		}

		input,
		textarea,
		select {
			border-color: #DC2626;
			box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.1);
		}
	}

	.checkbox-wrapper {
		display: flex;
		align-items: flex-start;
		gap: 12px;
		padding: 12px 16px;
		background-color: #FAF5F0;
		border-radius: 5px;

		input[type="checkbox"] {
			width: 20px;
			height: 20px;
			margin-top: 2px;
			cursor: pointer;
			flex-shrink: 0;
			accent-color: #E89B4B;
		}

		label {
			flex: 1;
			font-size: 14px;
			margin: 0;
			background: none;
			padding: 0;
			cursor: pointer;
			line-height: 1.6;

			a {
				color: #E89B4B;
				text-decoration: underline;

				&:hover {
					color: #D87F3C;
				}
			}
		}
	}

	.privacy-policy-box {
		background-color: #FAF5F0;
		border: 1px solid #DCDCDC;
		border-radius: 5px;
		padding: 16px;
		margin-top: 1rem;
		max-height: 300px;
		overflow-y: auto;

		&::-webkit-scrollbar {
			width: 8px;
		}

		&::-webkit-scrollbar-track {
			background: #F5F5F5;
		}

		&::-webkit-scrollbar-thumb {
			background: #E89B4B;
			border-radius: 4px;

			&:hover {
				background: #D87F3C;
			}
		}

		h4 {
			font-size: 14px;
			font-weight: 700;
			color: #333333;
			margin-bottom: 1rem;
			margin-top: 0;
		}

		p {
			font-size: 12px;
			line-height: 1.8;
			color: #666666;
			margin-bottom: 1rem;
		}

		h5 {
			font-size: 13px;
			font-weight: 600;
			color: #333333;
			margin-top: 1rem;
			margin-bottom: 0.5rem;
		}

		ul,
		ol {
			font-size: 12px;
			line-height: 1.8;
			color: #666666;
			margin-bottom: 1rem;
			padding-left: 20px;
		}

		li {
			margin-bottom: 0.5rem;
		}
	}

	.form-actions {
		display: flex;
		gap: 1rem;
		margin-top: 1rem;

		@media (max-width: 599px) {
			flex-direction: column;
		}
	}

	.btn-submit {
		flex: 1;
		padding: 15px 40px;
		font-size: 16px;
		font-weight: 600;
		background-color: #E89B4B;
		color: #FFFFFF;
		border: none;
		border-radius: 5px;
		cursor: pointer;
		transition: all 0.3s ease-in-out;

		&:hover:not(:disabled) {
			background-color: #D87F3C;
			transform: scale(1.02);
		}

		&:active:not(:disabled) {
			transform: scale(0.98);
		}

		&:disabled {
			opacity: 0.6;
			cursor: not-allowed;
		}

		&:focus-visible {
			outline: 2px solid #E89B4B;
			outline-offset: 2px;
		}
	}

	.btn-reset {
		flex: 1;
		padding: 15px 40px;
		font-size: 16px;
		font-weight: 600;
		background-color: #FFFFFF;
		color: #E89B4B;
		border: 2px solid #E89B4B;
		border-radius: 5px;
		cursor: pointer;
		transition: all 0.3s ease-in-out;

		&:hover {
			background-color: #F5C99B;
			border-color: #D87F3C;
			color: #D87F3C;
		}

		&:focus-visible {
			outline: 2px solid #E89B4B;
			outline-offset: 2px;
		}
	}

	.success-inline-message {
		background-color: #D1FAE5;
		border: 1px solid #6EE7B7;
		color: #065F46;
		padding: 16px;
		border-radius: 5px;
		margin-top: 1.5rem;
		text-align: center;
		font-weight: 700;
		animation: fadeIn 0.3s ease-in-out;

		&.show {
			display: block;
		}

		p {
			margin: 0;
			font-size: 14px;
		}
	}

	.error-message {
		background-color: #FEE2E2;
		border: 1px solid #FECACA;
		color: #991B1B;
		padding: 16px;
		border-radius: 5px;
		margin-bottom: 1.5rem;
		display: none;
		animation: slideDown 0.3s ease-in-out;

		&.show {
			display: block;
		}

		p {
			margin: 0;
			font-size: 14px;
		}
	}

	@keyframes slideDown {
		from {
			opacity: 0;
			transform: translateY(-10px);
		}

		to {
			opacity: 1;
			transform: translateY(0);
		}
	}

	/* チェックボックス専用のスタイルを強制適用 */
	.privacy-check {
		display: flex;
		align-items: center;
		font-size: 14px;
		padding: 12px 16px;
		border-radius: 5px;
		transition: all 0.3s ease-in-out;
		background-color: #FAF5F0;
		color: #333333;
	}

	.privacy-check input[type="checkbox"] {
		appearance: checkbox !important;
		-webkit-appearance: checkbox !important;
		opacity: 1 !important;
		visibility: visible !important;
		width: 20px !important;
		height: 20px !important;
		margin: 0 10px 0 0 !important;
		cursor: pointer;
		position: relative;
		z-index: 10;
		accent-color: var(--primary-color);
	}

	.privacy-check label {
		display: inline-flex;
		align-items: center;
		cursor: pointer;
		font-size: 14px;
		color: var(--text-color);
		font-weight: 600;
		text-indent: 0 !important;
		line-height: 1.2;
		background-color: #FAF5F0;
	}

	.consultation-form {
		position: relative;
		z-index: 5;
	}
}

/* ./parts/staff-history.html */

#staff-history {
	background-color: #FFFFFF;
	padding: 3.75rem 2.5rem;

	@media (max-width: 1024px) {
		padding: 2.5rem 1.875rem;
	}

	@media (max-width: 599px) {
		padding: 2.5rem 1.25rem;
	}

	.history-container {
		max-width: 1200px;
		margin: 0 auto;
	}

	.history-section {
		margin-bottom: 3rem;

		&:last-child {
			margin-bottom: 0;
		}
	}

	.section-heading {
		font-size: 1.5rem;
		font-weight: 700;
		color: #333333;
		margin-bottom: 1.5rem;
		padding-bottom: 0.75rem;
		border-bottom: 3px solid #E89B4B;
		display: inline-block;
	}

	/* 経歴タイムライン */
	.timeline {
		position: relative;
		padding-left: 2rem;

		@media (max-width: 599px) {
			padding-left: 1.5rem;
		}

		&::before {
			content: '';
			position: absolute;
			left: 0;
			top: 0;
			bottom: 0;
			width: 3px;
			background: linear-gradient(to bottom, #E89B4B, #F5C99B, #F5C99B);
		}
	}

	.timeline-item {
		position: relative;
		margin-bottom: 1.5rem;
		padding-left: 1.5rem;

		&::before {
			content: '';
			position: absolute;
			left: -1.125rem;
			top: 0.375rem;
			width: 1.5rem;
			height: 1.5rem;
			background-color: #E89B4B;
			border: 3px solid #FFFFFF;
			border-radius: 50%;
			box-shadow: 0 0 0 2px #E89B4B;
		}

		.year {
			font-size: 0.875rem;
			font-weight: 700;
			color: #E89B4B;
			margin-bottom: 0.25rem;
		}

		.description {
			font-size: 1rem;
			color: #333333;
			line-height: 1.6;
		}
	}

	/* 資格・スキルリスト */
	.qualifications-grid {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 1.5rem;
		margin-top: 1.5rem;

		@media (max-width: 599px) {
			grid-template-columns: 1fr;
		}
	}

	.qualification-item {
		background-color: #FAF5F0;
		padding: 1.25rem;
		border-left: 4px solid #E89B4B;
		border-radius: 4px;

		.qual-icon {
			font-size: 1.5rem;
			color: #E89B4B;
			margin-bottom: 0.5rem;
			display: inline-block;
		}

		.qual-name {
			font-size: 1rem;
			font-weight: 600;
			color: #333333;
			margin-bottom: 0.25rem;
		}

		.qual-detail {
			font-size: 0.875rem;
			color: #666666;
			line-height: 1.5;
		}
	}

	/* 実績リスト */
	.achievements-list {
		background-color: #FAF5F0;
		padding: 2rem;
		border-radius: 8px;
		margin-top: 1.5rem;

		ul {
			list-style: none;
			padding: 0;
			margin: 0;

			li {
				font-size: 0.95rem;
				color: #333333;
				line-height: 1.8;
				padding-left: 1.5rem;
				position: relative;
				margin-bottom: 0.75rem;

				&::before {
					content: '✓';
					position: absolute;
					left: 0;
					color: #E89B4B;
					font-weight: 700;
					font-size: 1.25rem;
				}

				&:last-child {
					margin-bottom: 0;
				}
			}
		}
	}

	/* 資格情報ボックス */
	.credentials-box {
		background: linear-gradient(135deg, #F5C99B 0%, #FAF5F0 100%);
		padding: 1.5rem;
		border-radius: 8px;
		border: 1px solid #E89B4B;
		margin-top: 1.5rem;

		.credentials-label {
			font-size: 0.875rem;
			font-weight: 700;
			color: #E89B4B;
			text-transform: uppercase;
			letter-spacing: 0.5px;
			margin-bottom: 0.5rem;
		}

		.credentials-content {
			font-size: 1rem;
			color: #333333;
			line-height: 1.8;

			strong {
				font-weight: 700;
				color: #333333;
			}
		}
	}
}

/* ./parts/faq-list.html */

#faq-list {
	padding: 3rem 2rem;

	@media (max-width: 1024px) {
		padding: 2.5rem 1.5rem;
	}

	@media (max-width: 599px) {
		padding: 2rem 1rem;
	}

	.faq-tabs {
		display: flex;
		gap: 1rem;
		margin-bottom: 2rem;
		justify-content: center;
		flex-wrap: wrap;

		@media (max-width: 599px) {
			gap: 0.5rem;
		}
	}

	.faq-tab {
		padding: 0.75rem 1.5rem;
		background-color: #FFFFFF;
		border: 1px solid #DCDCDC;
		border-radius: 5px;
		cursor: pointer;
		font-size: 14px;
		font-weight: 600;
		color: #333333;
		transition: all 0.3s ease-in-out;

		&:hover {
			border-color: #E89B4B;
			color: #E89B4B;
		}

		&.active {
			background-color: #E89B4B;
			border-color: #E89B4B;
			color: #FFFFFF;
		}

		@media (max-width: 599px) {
			padding: 0.5rem 1rem;
			font-size: 12px;
		}
	}

	.faq-container {
		max-width: 800px;
		margin: 0 auto;
	}

	.faq-item {
		margin-bottom: 1rem;
		border-radius: 5px;
		overflow: hidden;
		box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
		transition: all 0.3s ease-in-out;

		&:hover {
			box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
		}
	}

	details {
		background-color: #FFFFFF;
		border: none;

		&[open] {
			background-color: #FFFFFF;

			summary {
				background-color: #F5C99B;
				color: #333333;
			}

			.faq-answer {
				display: block;
				animation: slideDown 0.3s ease-in-out;
			}

			.toggle-icon {
				transform: rotate(180deg);
			}
		}
	}

	summary {
		padding: 1.25rem;
		background-color: #FFFFFF;
		border: 1px solid #DCDCDC;
		cursor: pointer;
		font-size: 14px;
		font-weight: 600;
		color: #333333;
		display: flex;
		align-items: center;
		justify-content: space-between;
		user-select: none;
		transition: all 0.3s ease-in-out;

		&:hover {
			background-color: #FAF5F0;
			color: #E89B4B;
		}

		&:focus-visible {
			outline: 2px solid #E89B4B;
			outline-offset: -2px;
		}

		@media (max-width: 599px) {
			padding: 1rem;
			font-size: 13px;
		}
	}

	.faq-question {
		flex: 1;
		text-align: left;
		display: flex;
		align-items: center;
		gap: 0.75rem;

		&::before {
			content: "Q";
			display: flex;
			align-items: center;
			justify-content: center;
			width: 28px;
			height: 28px;
			background-color: #E89B4B;
			color: #FFFFFF;
			border-radius: 50%;
			font-weight: 700;
			font-size: 12px;
			flex-shrink: 0;
		}
	}

	.toggle-icon {
		font-size: 20px;
		transition: transform 0.3s ease-in-out;
		color: #E89B4B;
		flex-shrink: 0;
	}

	.faq-answer {
		display: none;
		padding: 1.5rem;
		background-color: #FAF5F0;
		border-top: 1px solid #DCDCDC;
		font-size: 14px;
		line-height: 1.8;
		color: #666666;

		@media (max-width: 599px) {
			padding: 1rem;
			font-size: 13px;
		}

		&::before {
			content: "A ";
			font-weight: 700;
			color: #E89B4B;
			margin-right: 0.5rem;
		}
	}

	@keyframes slideDown {
		from {
			opacity: 0;
			transform: translateY(-10px);
		}

		to {
			opacity: 1;
			transform: translateY(0);
		}
	}
}

/* ./parts/index-network.html */

section {
	padding: 60px 40px;

	@media (max-width: 1024px) {
		padding: 40px 24px;
	}

	@media (max-width: 599px) {
		padding: 40px 16px;
	}
}

.network-intro {
	max-width: 800px;
	margin: 0 auto 50px;
	text-align: center;

	p {
		font-size: 16px;
		line-height: 1.8;
		color: #666666;
	}
}

.network-grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 24px;


	@media (max-width: 599px) {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 16px;
	}
}

.network-item {
	background-color: #FFFFFF;
	padding: 24px;
	border-radius: 8px;
	border: 2px solid #F5C99B;
	transition: all 0.3s ease-in-out;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	width: calc((100% - 48px) / 3);

	&:hover {
		border-color: #E89B4B;
		box-shadow: 0 4px 16px rgba(232, 155, 75, 0.15);
		transform: translateY(-4px);
	}

	@media (max-width: 900px) {
		width: calc((100% - 24px) / 2);
	}

	@media (max-width: 599px) {
		width: 100%;
	}
}

.network-icon {
	width: 60px;
	height: 60px;
	border-radius: 50%;
	background: linear-gradient(135deg, #E89B4B 0%, #F0A860 100%);
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 16px;

	.material-symbols-rounded {
		font-size: 28px;
		color: #FFFFFF;
	}
}

.network-title {
	font-size: 16px;
	font-weight: 700;
	color: #333333;
	margin-bottom: 8px;
}

.network-desc {
	font-size: 13px;
	color: #666666;
	line-height: 1.6;
}

.section-title2 {
	margin-top: 80px;
}

/* ./parts/index-testimonials.html */

section {
	padding: 60px 40px;

	@media (max-width: 1024px) {
		padding: 40px 24px;
	}

	@media (max-width: 599px) {
		padding: 40px 16px;
	}
}

.testimonial-card {
	background-color: #FFFFFF;
	border-left: 4px solid #E89B4B;
	border-radius: 8px;
	padding: 24px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
	transition: all 0.3s ease-in-out;

	&:hover {
		box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
	}
}

.testimonial-text {
	font-size: 15px;
	line-height: 1.8;
	color: #333333;
	margin-bottom: 16px;
	font-style: italic;

	&::before {
		content: "「";
		color: #E89B4B;
		font-size: 24px;
		font-weight: 700;
	}

	&::after {
		content: "」";
		color: #E89B4B;
		font-size: 24px;
		font-weight: 700;
	}
}

.testimonial-author {
	display: flex;
	align-items: center;
	gap: 12px;
}

.testimonial-avatar {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: linear-gradient(135deg, #E89B4B 0%, #F0A860 100%);
	display: flex;
	align-items: center;
	justify-content: center;
	color: #FFFFFF;
	font-weight: 700;
	font-size: 20px;
}

.testimonial-info {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.testimonial-name {
	font-size: 14px;
	font-weight: 700;
	color: #333333;
}

.testimonial-role {
	font-size: 12px;
	color: #666666;
}

.testimonial-stars {
	margin-top: 12px;
	color: #F0A860;
	font-size: 14px;
	letter-spacing: 2px;
}

.testimonial-container {
	padding-bottom: 160px;
}

.grid-test {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	/* PCで3枚横並び */
	gap: 24px;
	max-width: 1200px;
	margin: 0 auto;
}

/* 768px以下（タブレット・スマホ）で1カラムにする */
@media (max-width: 853px) {

	/* 先程の853pxに合わせる場合 */
	.grid-test {
		grid-template-columns: 1fr;
	}
}

/* ./parts/about-access.html */

#about-access {
	background-color: var(--base-white);

	.section-title {
		color: var(--text-primary);
	}

	.access-container {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 3rem;
		max-width: 1200px;
		margin: 0 auto;

		@media (max-width: 1024px) {
			grid-template-columns: 1fr;
			gap: 2rem;
		}

		@media (max-width: 599px) {
			grid-template-columns: 1fr;
			gap: 1.5rem;
		}
	}

	.access-info {
		display: flex;
		flex-direction: column;
		gap: 2rem;

		h3 {
			font-size: 1.25rem;
			font-weight: 700;
			color: var(--text-primary);
			margin-bottom: 1rem;
		}

		.info-block {
			display: flex;
			flex-direction: column;
			gap: 0.5rem;

			.info-label {
				font-size: 0.875rem;
				font-weight: 700;
				color: var(--text-secondary);
				background-color: var(--primary-lighter);
				padding: 0.5rem 0.75rem;
				border-radius: 3px;
			}

			.info-value {
				font-size: 1rem;
				color: var(--text-primary);
				line-height: 1.8;
				padding-left: 1rem;

				a {
					color: var(--primary-color);
					text-decoration: none;
					font-weight: 600;

					&:hover {
						color: var(--primary-dark);
						text-decoration: underline;
					}
				}
			}
		}

		.access-hours {
			background-color: #FFFFFF;
			padding: 1.5rem;
			border-radius: 5px;
			box-shadow: var(--shadow-light);

			h4 {
				font-size: 1rem;
				font-weight: 700;
				margin-bottom: 1rem;
				color: var(--text-primary);
			}

			.hours-content {
				display: flex;
				flex-direction: column;
				gap: 0.75rem;
				font-size: 0.875rem;
				line-height: 1.8;

				.hours-item {
					display: flex;
					justify-content: space-between;

					.hours-label {
						font-weight: 600;
						color: var(--text-secondary);
					}

					.hours-value {
						color: var(--text-primary);
					}
				}
			}
		}
	}

	.access-map {
		display: flex;
		flex-direction: column;
		gap: 1.5rem;

		.map-container {
			position: relative;
			width: 100%;
			padding-bottom: 100%;
			border-radius: 5px;
			overflow: hidden;
			box-shadow: var(--shadow-medium);

			iframe {
				position: absolute;
				top: 0;
				left: 0;
				width: 100%;
				height: 100%;
				border: none;
			}
		}

		.access-details {
			background-color: #FFFFFF;
			padding: 1.5rem;
			border-radius: 5px;
			box-shadow: var(--shadow-light);
			border-top: 4px solid var(--primary-color);

			h3 {
				font-size: 1.125rem;
				font-weight: 700;
				color: var(--text-primary);
				margin-bottom: 1rem;
			}

			.access-text {
				font-size: 0.875rem;
				line-height: 1.8;
				color: var(--text-secondary);
				margin-bottom: 1rem;
			}

			.access-button {
				display: inline-block;
				background-color: var(--primary-color);
				color: #FFFFFF;
				padding: 0.75rem 1.5rem;
				border-radius: 5px;
				text-decoration: none;
				font-size: 0.875rem;
				font-weight: 600;
				transition: all 0.3s ease;

				&:hover {
					background-color: var(--primary-dark);
					transform: scale(1.05);
				}
			}
		}
	}
}

/* ./parts/staff.html */

section {
	padding: var(--spacing-xl) var(--spacing-lg);
	background-color: #FFFFFF;

	@media (max-width: 1024px) {
		padding: var(--spacing-lg) var(--spacing-md);
	}

	@media (max-width: 599px) {
		padding: var(--spacing-lg) var(--spacing-sm);
	}
}

.staff-hero {
	background: linear-gradient(135deg, #F5C99B 0%, #FAF5F0 100%);
	padding: var(--spacing-xl) var(--spacing-lg);
	text-align: center;

	@media (max-width: 599px) {
		padding: var(--spacing-lg) var(--spacing-sm);
	}

	h1 {
		color: #333333;
		margin-bottom: 0.5rem;
	}

	.subtitle {
		color: #666666;
		font-size: 1.125rem;
	}
}

.staff-profile {
	grid-template-columns: 1fr 1fr;
	gap: 3rem;
	align-items: center;
	max-width: 1200px;
	margin: 0 auto;

	@media (max-width: 1024px) {
		grid-template-columns: 1fr;
		gap: 2rem;
		padding: var(--spacing-lg) var(--spacing-md);
	}

	@media (max-width: 599px) {
		padding: var(--spacing-lg) var(--spacing-sm);
	}

	.staff-photo {
		text-align: center;

		img {
			max-width: 350px;
			width: 100%;
			height: auto;
			border-radius: 10px;
			box-shadow: var(--shadow-medium);
		}
	}

	.staff-info {
		h2 {
			font-size: 2rem;
			margin-bottom: 0.5rem;
			color: #333333;
		}

		.title {
			font-size: 1.125rem;
			color: #E89B4B;
			font-weight: 600;
			margin-bottom: 1rem;
		}

		.credentials {
			margin: 1rem 0;
			padding: 1rem;
			background-color: #FAF5F0;
			border-radius: 5px;
		}

		p {
			font-size: 1rem;
			line-height: 1.8;
			color: #666666;
			margin-bottom: 1rem;
		}
	}
}

.staff-history {
	max-width: 1200px;
	margin: 0 auto;
	padding: var(--spacing-xl) var(--spacing-lg);

	@media (max-width: 1024px) {
		padding: var(--spacing-lg) var(--spacing-md);
	}

	@media (max-width: 599px) {
		padding: var(--spacing-lg) var(--spacing-sm);
	}

	h2 {
		margin-bottom: 2rem;
		position: relative;
		padding-bottom: 1rem;

		&::after {
			content: "";
			position: absolute;
			bottom: 0;
			left: 0;
			width: 60px;
			height: 3px;
			background-color: #E89B4B;
		}
	}

	.timeline {
		position: relative;
		padding-left: 30px;

		&::before {
			content: "";
			position: absolute;
			left: 0;
			top: 0;
			bottom: 0;
			width: 2px;
			background-color: #E89B4B;
		}
	}

	.timeline-item {
		margin-bottom: 2rem;
		position: relative;

		&::before {
			content: "";
			position: absolute;
			left: -37px;
			top: 5px;
			width: 12px;
			height: 12px;
			border-radius: 50%;
			background-color: #E89B4B;
			border: 2px solid #FFFFFF;
			box-shadow: 0 0 0 2px #E89B4B;
		}

		.year {
			font-weight: 700;
			color: #E89B4B;
			font-size: 0.9rem;
		}

		.description {
			font-size: 1rem;
			color: #666666;
			margin-top: 0.25rem;
		}
	}
}

.staff-message {
	background: linear-gradient(135deg, #F5C99B 0%, #FAF5F0 100%);
	max-width: 1200px;
	margin: 0 auto;
	padding: var(--spacing-xl) var(--spacing-lg);
	border-radius: 10px;

	@media (max-width: 1024px) {
		padding: var(--spacing-lg) var(--spacing-md);
	}

	@media (max-width: 599px) {
		padding: var(--spacing-lg) var(--spacing-sm);
	}

	h2 {
		margin-bottom: 1.5rem;
		color: #333333;
	}

	p {
		font-size: 1rem;
		line-height: 2;
		color: #333333;
		font-style: italic;
		margin-bottom: 1rem;
	}
}

.staff-seminars {
	max-width: 1200px;
	margin: 0 auto;
	padding: var(--spacing-xl) var(--spacing-lg);

	@media (max-width: 1024px) {
		padding: var(--spacing-lg) var(--spacing-md);
	}

	@media (max-width: 599px) {
		padding: var(--spacing-lg) var(--spacing-sm);
	}

	h2 {
		margin-bottom: 2rem;
		position: relative;
		padding-bottom: 1rem;

		&::after {
			content: "";
			position: absolute;
			bottom: 0;
			left: 0;
			width: 60px;
			height: 3px;
			background-color: #E89B4B;
		}
	}

	p {
		font-size: 1rem;
		line-height: 1.8;
		color: #666666;
		margin-bottom: 1rem;
	}

	.seminar-link {
		display: inline-block;
		margin-top: 1rem;
	}
}

/* ./parts/souzoku-title.html */

.page-header {
	background: linear-gradient(135deg, #F5C99B 0%, #F0A860 100%);
	padding: 3rem 2rem;
	text-align: center;

	@media (max-width: 599px) {
		padding: 2rem 1.25rem;
	}

	h1 {
		font-size: 2.5rem;
		font-weight: 700;
		color: #333333;
		margin-bottom: 0.5rem;

		@media (max-width: 599px) {
			font-size: 1.875rem;
		}
	}

	.page-subtitle {
		font-size: 1.125rem;
		color: #666666;
		line-height: 1.6;
	}

	.title-underline {
		width: 60px;
		height: 3px;
		background-color: #E89B4B;
		margin: 1rem auto 0;
	}

}

/* ./parts/souzoku-hero.html */

.souzoku-hero {
	background: linear-gradient(135deg, rgba(232, 155, 75, 0.1) 0%, rgba(240, 168, 96, 0.05) 100%);
	padding: 3rem 0;

	@media (max-width: 599px) {
		padding: 2rem 1.25rem;
	}

	.container {
		max-width: 100%;
		padding: 0;
	}

	.hero-content {
		max-width: 100%;
		margin: 0 auto;
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 0;
		align-items: center;

		@media (max-width: 1024px) {
			grid-template-columns: 1fr;
		}
	}

	.hero-text {
		padding: 2rem 5% 2rem 10%;

		h2 {
			font-size: 1.875rem;
			color: #333333;
			margin-bottom: 1.5rem;
			font-weight: 700;
		}

		p {
			font-size: 1.2rem;
			line-height: 1.8;
			color: #666666;
			margin-bottom: 1.25rem;
		}

		ul {
			list-style: none;
			margin-bottom: 2rem;

			li {
				display: flex;
				align-items: center;
				gap: 0.75rem;
				margin-bottom: 0.75rem;
				font-size: 1.2rem;
				color: #333333;

				.material-symbols-rounded {
					color: #E89B4B;
					font-size: 22px;
					flex-shrink: 0;
				}
			}
		}
	}

	.hero-image {
		img {
			width: 100%;
			max-width: 100%;
			object-fit: cover;
			height: 490px;
			border-radius: 10px 0 0 10px;
		}
	}
}

/* ./parts/souzoku-necessity.html */

.necessity-section {
	background-color: #FFFFFF;
	padding: 3rem 2rem;

	@media (max-width: 599px) {
		padding: 2rem 1.25rem;
	}

	.section-title {
		margin-bottom: 3rem;
	}

	.necessity-grid {
		display: flex;
		justify-content: center;
		gap: 2rem;
		max-width: 1200px;
		margin: 0 auto;

		@media (max-width: 1024px) {
			gap: 1.5rem;
			flex-direction: column;
		}

		@media (max-width: 599px) {
			gap: 1.25rem;
		}
	}

	.necessity-card {
		background-color: #FAF5F0;
		border-left: 4px solid #E89B4B;
		padding: 2rem;
		border-radius: 5px;
		transition: all 0.3s ease;
		width: 30%;

		min-width: 250px &:hover {
			box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
			transform: translateY(-4px);
		}

		.card-icon {
			font-size: 2.5rem;
			color: #E89B4B;
			margin-bottom: 1rem;
		}

		h3 {
			font-size: 1.125rem;
			font-weight: 700;
			color: #333333;
			margin-bottom: 0.75rem;
		}

		p {
			font-size: 0.95rem;
			color: #666666;
			line-height: 1.7;
			margin: 0;
		}
	}
}

@media (max-width: 1024px) {
	.necessity-section .necessity-card {
		width: 100%;
	}
}

/* ./parts/souzoku-types.html */

.types-section {
	background-color: #FAF5F0;
	padding: 3rem 2rem;

	@media (max-width: 599px) {
		padding: 2rem 1.25rem;
	}

	.section-title {
		margin-bottom: 3rem;
	}

	.types-content {
		max-width: 1200px;
		margin: 0 auto;
	}

	.types-grid {
		display: grid;
		grid-template-columns: repeat(auto-fit, minmax(350px, 400px));
		justify-content: center;
		gap: 2rem;

		@media (max-width: 1024px) {
			grid-template-columns: 1fr;
			gap: 1.5rem;
		}
	}

	.type-card {
		background-color: #FFFFFF;
		border-top: 4px solid #E89B4B;
		padding: 2.5rem 2rem;
		border-radius: 8px;
		box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);

		h3 {
			font-size: 1.25rem;
			font-weight: 700;
			color: #333333;
			margin-bottom: 1rem;
		}

		.type-description {
			font-size: 0.95rem;
			color: #666666;
			line-height: 1.7;
			margin-bottom: 1.5rem;
		}

		.type-advantages {
			background-color: #FAF5F0;
			padding: 1.5rem;
			border-radius: 5px;
			margin-bottom: 1.5rem;

			strong {
				display: block;
				font-size: 0.875rem;
				color: #333333;
				margin-bottom: 0.75rem;
				font-weight: 700;
			}

			ul {
				list-style: none;
				margin: 0;
				padding: 0;

				li {
					font-size: 0.875rem;
					color: #333333;
					margin-bottom: 0.5rem;
					display: flex;
					align-items: center;
					gap: 0.5rem;

					&::before {
						content: "✓";
						color: #E89B4B;
						font-weight: 700;
					}
				}
			}
		}

		.type-note {
			font-size: 0.8rem;
			color: #666666;
			background-color: #FFFBF0;
			border-left: 3px solid #F0A860;
			padding: 0.75rem;
			border-radius: 3px;
		}
	}
}

/* ./parts/souzoku-process.html */

.process-section {
	background-color: #FFFFFF;
	padding: 3rem 2rem;

	@media (max-width: 599px) {
		padding: 2rem 1.25rem;
	}

	.section-title {
		margin-bottom: 3rem;
	}

	.process-timeline {
		max-width: 900px;
		margin: 0 auto;
		position: relative;

		@media (max-width: 1024px) {
			max-width: 100%;
		}

		&::before {
			content: "";
			position: absolute;
			left: 50%;
			top: 0;
			bottom: 0;
			width: 2px;
			background-color: #E89B4B;
			transform: translateX(-50%);

			@media (max-width: 1024px) {
				left: 20px;
			}
		}
	}

	.process-item {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 2rem;
		margin-bottom: 3rem;
		position: relative;
		align-items: center;

		@media (max-width: 1024px) {
			grid-template-columns: auto 1fr;
			gap: 1.5rem;
			margin-left: 50px;

			&::before {
				left: -50px;
			}
		}

		&:nth-child(odd) {
			.process-number {
				@media (min-width: 1025px) {
					left: 50%;
					transform: translateX(-50%);
				}
			}

			.process-content {
				@media (min-width: 1025px) {
					grid-column: 1;
				}
			}
		}

		&:nth-child(even) {
			grid-template-columns: 1fr 1fr;

			@media (min-width: 1025px) {
				.process-content {
					grid-column: 2;
					order: 2;
				}
			}

			@media (max-width: 1024px) {
				grid-template-columns: auto 1fr;
			}
		}

		.process-number {
			display: flex;
			align-items: center;
			justify-content: center;
			width: 50px;
			height: 50px;
			background-color: #E89B4B;
			color: #FFFFFF;
			border-radius: 50%;
			font-size: 1.5rem;
			font-weight: 700;
			position: absolute;
			left: 50%;
			transform: translateX(-50%);
			z-index: 10;

			@media (max-width: 1024px) {
				position: relative;
				left: 0;
				transform: none;
			}
		}

		.process-content {
			background-color: #FAF5F0;
			padding: 2rem;
			border-radius: 8px;
			box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);

			h3 {
				font-size: 1.125rem;
				font-weight: 700;
				color: #333333;
				margin-bottom: 0.75rem;
			}

			p {
				font-size: 0.95rem;
				color: #666666;
				line-height: 1.7;
				margin: 0;
			}
		}
	}
}

/* ./parts/souzoku-points.html */

.points-section {
	background: linear-gradient(135deg, #F5C99B 0%, #F0A860 100%);
	padding: 3rem 2rem;

	@media (max-width: 599px) {
		padding: 2rem 1.25rem;
	}

	.section-title {
		margin-bottom: 3rem;
		color: #333333;

		&::after {
			background-color: #FFFFFF;
		}
	}

	.points-grid {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 2rem;
		max-width: 1200px;
		margin: 0 auto;

		@media (max-width: 1024px) {
			grid-template-columns: 1fr;
			gap: 1.5rem;
		}
	}

	.point-item {
		background-color: rgba(255, 255, 255, 0.95);
		padding: 2rem;
		border-radius: 8px;
		box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
		display: flex;
		gap: 1.5rem;
		align-items: flex-start;

		.point-icon {
			font-size: 2.5rem;
			color: #E89B4B;
			flex-shrink: 0;
		}

		.point-content {
			h3 {
				font-size: 1.125rem;
				font-weight: 700;
				color: #333333;
				margin-bottom: 0.75rem;
			}

			p {
				font-size: 0.95rem;
				color: #666666;
				line-height: 1.7;
				margin: 0;
			}
		}
	}
}

/* ./parts/souzoku-pricing.html */

.pricing-section {
	background-color: #FFFFFF;
	padding: 3rem 2rem;

	@media (max-width: 599px) {
		padding: 2rem 1.25rem;
	}

	.section-title {
		margin-bottom: 3rem;
	}

	.pricing-intro {
		text-align: center;
		max-width: 700px;
		margin: 0 auto 3rem;
		font-size: 1rem;
		color: #666666;
		line-height: 1.8;
	}

	.pricing-table {
		max-width: 900px;
		width: 100%;
		margin: 0 auto;
		border-collapse: collapse;
		box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
		border-radius: 8px;
		overflow: hidden;

		@media (max-width: 1024px) {
			font-size: 0.9rem;
		}

		@media (max-width: 599px) {
			display: block;
			border: none;
			box-shadow: none;
		}

		thead {
			background-color: #E89B4B;
			color: #FFFFFF;

			@media (max-width: 599px) {
				display: block;
			}

			tr {
				th {
					padding: 1.25rem;
					text-align: left;
					font-weight: 700;
					font-size: 1rem;

					@media (max-width: 599px) {
						padding: 1rem;
						font-size: 0.9rem;
					}
				}
			}
		}

		tbody {
			background-color: #FFFFFF;

			@media (max-width: 599px) {
				display: block;
			}

			tr {
				border-bottom: 1px solid #DCDCDC;

				@media (max-width: 599px) {
					display: grid;
					grid-template-columns: 150px 1fr;
					gap: 1rem;
					padding: 1.25rem;
					align-items: center;
					border-bottom: 2px solid #F5C99B;
					margin-bottom: 0.5rem;

					&:last-child {
						border-bottom: 2px solid #F5C99B;
					}
				}

				&:hover {
					background-color: #FAF5F0;
				}

				td {
					padding: 1.25rem;

					@media (max-width: 599px) {
						padding: 0;
						grid-column: 2;

						&:first-child {
							grid-column: 1;
							font-weight: 700;
							color: #333333;
						}
					}

					&:first-child {
						font-weight: 600;
						color: #333333;
					}
				}
			}
		}

		@media (max-width: 599px) {
			display: block;
		}
	}

	.souzoku-pricing-note {
		background-color: #FFFBF0;
		border-left: 4px solid #F0A860;
		padding: 1.5rem;
		margin-top: 2rem;
		border-radius: 5px;
		max-width: 900px;
		margin-left: auto;
		margin-right: auto;

		p {
			font-size: 0.875rem;
			color: #666666;
			margin: 0.5rem 0;
			line-height: 1.6;

			strong {
				color: #333333;
			}
		}
	}

	.pricing-cta {
		text-align: center;
		margin-top: 2.5rem;

		.btn {
			margin: 0 0.5rem;
		}
	}
}