	/* 共通パーツ */
	:root {
		--primary-color: #2E8B57;
		/* SeaGreen - Main Brand Color */
		--primary-hover: #236b42;
		--accent-color: #e6f7ef;
		/* Very light green background */
		--text-main: #333333;
		--text-light: #666666;
		--white: #ffffff;
		--border-radius-sm: 4px;
		--border-radius-md: 8px;
		--border-radius-lg: 50px;
		--fontEn: "Noto Serif", serif;
	}

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

	body {
		font-family: 'Noto Sans JP', sans-serif;
		color: var(--text-main);
		line-height: 1.6;
		background-color: var(--white);
		overflow-x: hidden;
	}

	a {
		text-decoration: none;
		color: inherit;
		transition: opacity 0.3s;
	}

	a:hover {
		opacity: 0.8;
	}

	ul {
		list-style: none;
	}

	img {
		max-width: 100%;
		height: auto;
		vertical-align: bottom;
	}

	.sp-only-inline {
		display: none;
	}

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

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

	.btn {
		display: inline-block;
		padding: 12px 30px;
		border-radius: var(--border-radius-sm);
		font-weight: 700;
		text-align: center;
		cursor: pointer;
		transition: all 0.3s ease;
		font-size: 14px;
	}

	.btn-primary {
		background-color: var(--primary-color);
		color: var(--white);
		border: 1px solid var(--primary-color);
	}

	.btn-primary:hover {
		background-color: var(--primary-hover);
	}

	.btn-outline {
		background-color: transparent;
		color: var(--white);
		border: 1px solid var(--white);
	}

	.btn-outline:hover {
		background-color: rgba(255, 255, 255, 0.1);
	}

	.btn-outline-green {
		background-color: transparent;
		color: var(--primary-color);
		border: 1px solid var(--primary-color);
	}

	.btn-outline-green:hover {
		background-color: var(--primary-color);
		color: var(--white);
	}

	.section-title {
		text-align: center;
		font-size: 32px;
		font-weight: 700;
		margin-bottom: 10px;
	}

	.section-subtitle {
		text-align: center;
		font-size: 14px;
		color: var(--text-light);
		margin-bottom: 40px;
	}

	/* =========================================
Header
========================================= */
	header {
		background-color: var(--white);
		padding: 15px 0;
		position: sticky;
		top: 0;
		z-index: 1000;
		box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
	}

	.header-inner {
		display: flex;
		justify-content: space-between;
		align-items: center;
	}

	.logo {
		font-size: 24px;
		font-weight: 700;
		font-family: var(--fontEn);
		color: var(--primary-color);
		letter-spacing: 1px;
		z-index: 1001;
	}

	.nav-menu {
		display: flex;
		gap: 30px;
		align-items: center;
	}

	.nav-menu li a {
		font-size: 14px;
		font-weight: 500;
	}

	.header-cta {
		padding: 8px 20px;
		border-radius: var(--border-radius-lg);
		font-size: 13px;
	}

	/* Hamburger Styles */
	.hamburger {
		display: none;
		cursor: pointer;
		z-index: 1002;
	}

	.bar {
		display: block;
		width: 25px;
		height: 3px;
		margin: 5px auto;
		transition: all 0.3s ease-in-out;
		background-color: var(--text-main);
	}

	@media (max-width: 920px) {
		.hamburger {
			display: block;
		}

		.hamburger.active .bar:nth-child(2) {
			opacity: 0;
		}

		.hamburger.active .bar:nth-child(1) {
			transform: translateY(8px) rotate(45deg);
		}

		.hamburger.active .bar:nth-child(3) {
			transform: translateY(-8px) rotate(-45deg);
		}

		.nav-menu {
			position: fixed;
			left: -100%;
			top: 0;
			gap: 0;
			flex-direction: column;
			background-color: rgba(255, 255, 255, 0.98);
			width: 100%;
			height: 100dvh;
			text-align: center;
			transition: 0.3s;
			padding-top: 100px;
			box-shadow: 0 10px 27px rgba(0, 0, 0, 0.05);
			display: flex;
			/* Ensure flex is active when menu is open */
		}

		.nav-menu.active {
			left: 0;
		}

		.nav-menu li {
			margin: 20px 0;
		}

		.nav-menu li a {
			font-size: 18px;
			font-weight: 700;
			color: var(--text-main);
		}

		.nav-menu .header-cta {
			display: inline-block;
			margin-top: 20px;
			font-size: 16px;
			padding: 12px 40px;
			color: #fff;
		}
	}

	/* =========================================
Footer
========================================= */
	footer {
		background-color: #1a5c3a;
		color: var(--white);
		padding: 60px 0 20px;
		font-size: 13px;
	}

	.footer-grid {
		display: grid;
		grid-template-columns: 1.5fr 1fr 1fr 1fr;
		gap: 40px;
		margin-bottom: 40px;
	}

	.footer-col h3 {
		font-size: 18px;
		margin-bottom: 20px;
		font-weight: 700;
	}

	.footer-desc {
		opacity: 0.8;
		margin-bottom: 20px;
		line-height: 1.8;
	}

	.social-icons a {
		margin-right: 15px;
		font-size: 16px;
	}

	.footer-links li {
		margin-bottom: 10px;
	}

	.footer-links a:hover {
		text-decoration: underline;
	}

	.copyright {
		border-top: 1px solid rgba(255, 255, 255, 0.1);
		padding-top: 20px;
		display: flex;
		justify-content: space-between;
		opacity: 0.6;
		font-size: 11px;
	}

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

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

		.copyright {
			flex-direction: column;
			text-align: center;
			gap: 10px;
		}
	}

	/* =========================================
Bottom CTA
========================================= */
	.bottom-cta {
		padding: 100px 0;
		text-align: center;
		background-color: var(--white);
	}

	@media (max-width: 600px) {
		.bottom-cta {
			padding: 50px 0;
		}
	}

	.cta-heading {
		font-size: 38px;
		margin-bottom: 15px;
	}

	@media (max-width: 600px) {
		.cta-heading {
			font-size: 22px;
		}
	}

	.cta-desc {
		font-size: 20px;
		color: var(--text-light);
		margin-bottom: 40px;
	}

	@media (max-width: 600px) {
		.cta-desc {
			font-size: 16px;
		}
	}

	.cta-buttons-wrapper {
		display: flex;
		justify-content: center;
		gap: 20px;
		margin-bottom: 20px;
	}

	.note-text {
		font-size: 14px;
		color: #999;
	}

	@media (max-width: 600px) {
		.cta-buttons-wrapper {
			flex-direction: column;
			width: 80%;
			margin: 0 auto 20px;
		}
	}


	/* =========================================
ファーストビュー（下層）
 ========================================= */
	.sub-hero {
		position: relative;
		padding: 250px 0 150px 0;
		background-image: linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.4)), url("../image/index/top/top_service-2.webp");
		background-size: cover;
		background-position: center 40%;
		background-repeat: no-repeat;
		color: var(--white);
		text-align: center;
		height: auto;
	}
	.sub-hero--health-management {
		background-image: linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.4)), url("../image/index/health-management/fv.jpg");
	}

	.sub-hero--contact {
		background-image: linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.4)), url("../image/index/contact/fv.webp");
	}

	@media (max-width: 600px) {
		.sub-hero {
			padding: 150px 0 50px 0;
			background-position: 23% 80%;
		}
	}


	.sub-hero.is-health-training {
		/* background-image: linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.4)), url("../image/index/health-training/fv.jpg"); */
	}

	.sub-hero__br {
		display: none;
	}

	@media (max-width: 600px) {
		.sub-hero__br {
			display: block;
		}
	}

	.sub-hero. .sub-hero__content {
		width: 100%;
		/* max-w-7xl equivalent is container, but for text we often want narrower */
		margin: 0 auto;
	}

	.sub-hero__title {
		/* text-4xl md:text-6xl */
		font-size: clamp(32px, 4vw, 60px);
		font-weight: 700;
		margin-bottom: 24px;
		/* mb-6 */
		line-height: 1.2;
		text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
	}

	.sub-hero__desc {
		/* text-xl md:text-2xl */
		font-size: clamp(16px, 2vw, 24px);
		margin-bottom: 32px;
		/* mb-8 */
		max-width: 896px;
		/* max-w-4xl */
		margin-left: auto;
		margin-right: auto;
		line-height: 1.6;
		text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
	}

	.sub-hero__actions {
		display: flex;
		justify-content: center;
		gap: 16px;
		/* gap-4 */
		flex-wrap: wrap;
	}

	.sub-hero__btn {
		/* Extending base .btn via class chain, adding specific sizing */
		font-size: 18px;
		/* text-lg */
		padding: 16px 32px;
		/* py-4 px-8 */
		border-radius: var(--border-radius-md);
		/* rounded-lg */
		display: inline-flex;
		align-items: center;
		justify-content: center;
		white-space: nowrap;
		box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
		/* shadow-lg */
	}

	@media (max-width: 600px) {
		.sub-hero__btn {
			font-size: 16px;
		}
	}

	.sub-hero__btn:hover {
		background-color:var(--primary-color);
		filter: brightness(1.1);
		opacity: 1;
	}

	.sub-hero__btn i {
		margin-left: 8px;
		/* ml-2 */
	}

	/* Customizing the secondary button to match Tailwind's bg-white/20 */
	.sub-hero__btn--glass {
		background-color: rgba(255, 255, 255, 0.2);
		color: var(--white);
		border: 1px solid var(--white);
		backdrop-filter: blur(4px);
		padding: 13px 28px;
	}

	.sub-hero__btn--glass:hover {
		background-color: var(--white);
		color: #111827;
		/* gray-900 */
	}

	@media (max-width: 640px) {
		.sub-hero__actions {
			flex-direction: column;
			align-items: stretch;
			padding: 0 20px;
		}

		.sub-hero__btn {
			width: 100%;
		}
	}

	.br__sp-block {
		display: none;
	}

	@media (max-width: 600px) {
		.br__sp-block {
			display: block;
		}
	}