	:root {
		--color-primary: #397453;
		--color-primary-dark: #2a583e;
		--color-text-main: #222222;
		--color-bg-light: #f9f6f0;
		--color-bg-white: #ffffff;
		--color-accent-gold: #c5a059;
		--font-serif: 'Noto Serif JP', serif;
		--font-sans: 'Noto Sans JP', sans-serif;
	}

	* {
		box-shadow: none;
		box-sizing: border-box;
		margin: 0;
		padding: 0;
	}

	html {
		scroll-behavior: smooth;
	}

	body {
		font-family: var(--font-sans);
		color: var(--color-text-main);
		line-height: 1.8;
		font-size: 15px;
		background-color: var(--color-bg-white);
		-webkit-text-size-adjust: 100%;
	}

	img {
		max-width: 100%;
		height: auto;
		vertical-align: middle;
		border-radius: 4px;
	}

	a {
		color: var(--color-primary);
		text-decoration: none;
		transition: all 0.3s ease;
	}

	a:hover {
		opacity: 0.8;
	}

	.lp-header {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 70px;
		background: rgba(255, 255, 255, 0.95);
		box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
		z-index: 1000;
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 0 20px;
	}

	.lp-header img {
		height: 70px;
		width: auto;
	}

	.header-logo-area {
		font-family: var(--font-serif);
		font-weight: 700;
		font-size: 16px;
		line-height: 1.2;
		color: var(--color-text-main);
	}

	.header-logo-area span {
		font-size: 10px;
		display: block;
		letter-spacing: 0.1em;
		color: #666;
	}

	.header-reserve-btn {
		background-color: var(--color-primary);
		color: #fff;
		padding: 10px 24px;
		font-weight: 700;
		border-radius: 4px;
		font-size: 14px;
		letter-spacing: 0.05em;
		box-shadow: 0 4px 6px rgba(57, 116, 83, 0.2);
	}

	.header-reserve-btn:hover {
		background-color: var(--color-primary-dark);
		color: #fff;
		opacity: 1;
	}

	.lp-mv {
		margin-top: 70px;
		position: relative;
		height: 60vh;
		min-height: 400px;
		background-image: url('images/index/main_photo_0.webp');
		background-size: cover;
		background-position: center;
		display: flex;
		align-items: center;
		justify-content: center;
	}

	.lp-mv::before {
		content: '';
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background: rgba(0, 0, 0, 0.25);
	}

	.mv-title-wrap {
		position: relative;
		z-index: 10;
		text-align: center;
		color: #ffffff;
		padding: 20px;
	}

	.mv-title-wrap h1 {
		font-family: var(--font-serif);
		font-size: 22px;
		font-weight: 700;
		letter-spacing: 0.1em;
		text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5);
		margin-bottom: 10px;
	}

	.lp-section {
		padding: 80px 20px;
	}

	.lp-section:nth-of-type(even) {
		background-color: var(--color-bg-light);
	}

	.lp-section:nth-of-type(odd) {
		background-color: var(--color-bg-white);
	}

	.container {
		max-width: 1000px;
		margin: 0 auto;
	}

	.lp-section h2 {
		font-family: var(--font-serif);
		font-size: 24px;
		color: var(--color-text-main);
		text-align: center;
		margin-bottom: 40px;
		position: relative;
		padding-bottom: 15px;
		letter-spacing: 0.05em;
	}

	.lp-section h2::after {
		content: '';
		position: absolute;
		bottom: 0;
		left: 50%;
		transform: translateX(-50%);
		width: 40px;
		height: 2px;
		background-color: var(--color-primary);
	}

	.grid-2col {
		display: grid;
		grid-template-columns: 100%;
		gap: 30px;
	}

	.content-block {
		margin-bottom: 35px;
	}

	.content-block:last-child {
		margin-bottom: 0;
	}

	.lp-section h3 {
		font-family: var(--font-serif);
		font-size: 20px;
		color: var(--primary);
		margin-bottom: 15px;
		letter-spacing: 0.03em;
	}

	.lp-section h3 {
		color: var(--color-primary);
	}

	.lp-section h4 {
		font-family: var(--font-serif);
		font-size: 17px;
		color: var(--color-text-main);
		margin-bottom: 10px;
		border-left: 3px solid var(--color-accent-gold);
		padding-left: 10px;
	}

	.image-wrap {
		margin-bottom: 15px;
	}

	.image-wrap img {
		width: 100%;
		object-fit: cover;
		box-shadow: 0 4px 15px rgba(0, 0, 0, 0.06);
	}

	.img-size-a img {
		aspect-ratio: 8 / 5;
		width: 100%;
		object-fit: cover;
	}

	.caption-alt {
		font-size: 11px;
		color: #777;
		margin-top: 5px;
		text-align: right;
	}

	.anchor-nav {
		background-color: var(--color-bg-light);
		padding: 20px 10px;
		border-radius: 6px;
		margin-bottom: 40px;
		box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.02);
	}

	.anchor-list {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 8px;
		list-style: none;
	}

	.anchor-list a {
		display: flex;
		align-items: center;
		justify-content: center;
		background: #fff;
		padding: 8px 4px;
		border-radius: 4px;
		font-size: 11px;
		font-weight: 500;
		color: var(--color-text-main);
		border: 1px solid #e0dcd3;
		text-align: center;
		white-space: nowrap;
	}

	.anchor-list a::before {
		content: '≫';
		color: var(--color-primary);
		margin-right: 4px;
		font-size: 10px;
	}

	.btn-link-wrap {
		text-align: center;
		margin: 25px 0;
	}

	.btn-outline {
		display: inline-block;
		border: 1px solid var(--color-primary);
		color: var(--color-primary);
		padding: 12px 35px;
		border-radius: 4px;
		font-weight: 500;
		font-size: 14px;
		background: transparent;
	}

	.btn-outline:hover {
		background-color: var(--color-primary);
		color: #fff;
	}

	.btn-large {
		display: block;
		width: 100%;
		max-width: 340px;
		margin: 30px auto 0;
		background-color: var(--color-primary);
		color: #fff;
		text-align: center;
		padding: 16px 20px;
		font-weight: 700;
		font-size: 16px;
		border-radius: 4px;
		box-shadow: 0 4px 12px rgba(57, 116, 83, 0.3);
	}

	.btn-large:hover {
		background-color: var(--color-primary-dark);
		color: #fff;
	}

	.konou-text {
		background: var(--color-bg-light);
		padding: 20px;
		border-radius: 4px;
		font-size: 14px;
		border-left: 4px solid var(--color-primary);
	}

	.note-box {
		background: #fff;
		border: 1px solid #e0e0e0;
		padding: 15px 20px;
		margin-top: 30px;
		border-radius: 4px;
	}

	.note-box p {
		font-size: 12px;
		color: #555;
		margin-bottom: 5px;
	}

	.note-box p:last-child {
		margin-bottom: 0;
	}

	.area-col-title {
		background: var(--color-primary);
		color: #fff;
		text-align: center;
		padding: 8px 15px;
		font-family: var(--font-serif);
		font-size: 16px;
		font-weight: 700;
		margin-bottom: 25px;
		letter-spacing: 0.1em;
	}

	.spot-meta-list {
		margin-top: 8px;
		font-size: 13px;
		color: #555;
		background: rgba(0, 0, 0, 0.02);
		padding: 10px 15px;
		border-radius: 4px;
	}

	.access-chart-container {
		display: flex;
		flex-direction: column;
		gap: 40px;
		margin-bottom: 40px;
	}

	.access-col {
		flex: 1;
		background: #fff;
		padding: 30px 20px;
		border-radius: 8px;
		border: 1px solid #e0dcd3;
		display: flex;
		flex-direction: column;
		align-items: center;
	}

	.access-type-head {
		font-family: var(--font-serif);
		font-weight: 700;
		font-size: 18px;
		color: var(--color-primary);
		margin-bottom: 15px;
		display: flex;
		align-items: center;
		gap: 10px;
		text-align: center;
	}

	.access-sub-intro {
		font-size: 13px;
		color: #666;
		margin-bottom: 25px;
		text-align: center;
		line-height: 1.6;
	}

	.flow-row {
		width: 100%;
		display: flex;
		justify-content: center;
	}

	.node-group {
		display: flex;
		gap: 15px;
		width: 100%;
		justify-content: center;
	}

	.node {
		background: #f1f1f1;
		border: 1px solid #ccc;
		padding: 8px 15px;
		border-radius: 4px;
		font-size: 13px;
		font-weight: 700;
		text-align: center;
		min-width: 110px;
	}

	.node.main-node {
		border: 1px solid var(--color-accent-gold);
		background: #fffbf0;
	}

	.node.goal-node {
		background: var(--color-primary);
		color: #fff;
		border: none;
		font-size: 16px;
		padding: 12px 35px;
		border-radius: 50px;
		box-shadow: 0 4px 10px rgba(57, 116, 83, 0.2);
	}

	.flow-arrow-box {
		height: 65px;
		width: 2px;
		background: #ccc;
		margin: 5px 0;
		position: relative;
	}

	.flow-arrow-box::after {
		content: '';
		position: absolute;
		bottom: -5px;
		left: 50%;
		transform: translateX(-50%);
		border-left: 6px solid transparent;
		border-right: 6px solid transparent;
		border-top: 8px solid #ccc;
	}

	.time-badge {
		position: absolute;
		top: 50%;
		transform: translateY(-50%);
		white-space: nowrap;
		background: #fff;
		border: 1px solid #ccc;
		padding: 3px 12px;
		border-radius: 20px;
		font-size: 11px;
		color: #555;
		line-height: 1.4;
		text-align: center;
	}

	.time-badge.pos-left {
		right: 15px;
	}

	.time-badge.pos-right {
		left: 15px;
	}

	.time-badge.pos-center {
		left: 50%;
		transform: translate(-50%, -50%);
	}

	.time-badge.color-bus {
		border-color: #397453;
		color: var(--color-primary);
		font-weight: 700;
		background: #f4faf6;
	}

	.access-footer-notes {
		display: grid;
		grid-template-columns: 100%;
		gap: 20px;
		background: var(--color-bg-light);
		padding: 25px;
		border-radius: 6px;
		margin-top: 20px;
	}

	.note-item strong {
		display: block;
		color: var(--color-primary);
		font-size: 14px;
		margin-bottom: 5px;
	}

	.note-item p {
		font-size: 13px;
		line-height: 1.6;
	}

	.lp-footer {
		background-color: #222222;
		color: #ffffff;
		padding: 60px 20px 40px;
		font-size: 14px;
	}

	.footer-inner {
		max-width: 1000px;
		margin: 0 auto;
	}

	.footer-logo-wrap {
		text-align: center;
		margin-bottom: 30px;
	}

	.footer-logo-wrap h3 {
		font-family: var(--font-serif);
		font-size: 22px;
		line-height: 1.3;
		font-weight: 700;
		letter-spacing: 0.05em;
	}

	.footer-logo-wrap h3 span {
		font-size: 11px;
		display: block;
		color: #aaa;
		margin-bottom: 5px;
	}

	.footer-address {
		text-align: center;
		color: #ccc;
		margin-bottom: 25px;
		font-size: 13px;
	}

	.footer-tel {
		text-align: center;
		font-size: 20px;
		font-weight: 700;
		margin-bottom: 40px;
	}

	.footer-tel a {
		color: #fff;
	}

	.footer-tel span {
		display: block;
		font-size: 11px;
		font-weight: normal;
		color: #aaa;
		margin-top: 3px;
	}

	.footer-copyright {
		text-align: center;
		font-size: 11px;
		color: #777;
		border-top: 1px solid #333;
		padding-top: 30px;
	}

	.pr-box {
		background: #fff;
		border: 2px solid var(--color-accent-gold);
		padding: 40px 30px;
		border-radius: 8px;
		box-shadow: 0 10px 25px rgba(0, 0, 0, 0.05);
		position: relative;
		margin-top: 60px;
	}

	.pr-box-label {
		position: absolute;
		top: -16px;
		left: 50%;
		transform: translateX(-50%);
		background: var(--color-accent-gold);
		color: #fff;
		padding: 4px 20px;
		font-size: 13px;
		font-weight: 700;
		border-radius: 20px;
		letter-spacing: 0.1em;
	}

	.pr-box-title {
		font-family: var(--font-serif);
		font-size: 22px;
		color: var(--color-primary);
		text-align: center;
		margin-bottom: 20px;
	}

	.is-pc {
		display: none !important;
	}

	.is-sp {
		display: block !important;
	}

	.pr-image-container {
		display: flex;
		flex-direction: column;
		gap: 10px;
		max-width: 700px;
		margin: 0 auto 20px;
	}

	.pr-image-container img {
		width: 100%;
		height: auto;
		display: block;
		border-radius: 4px;
		object-fit: cover;
	}

	@media screen and (min-width: 768px) {
		body {
			font-size: 16px;
		}

		.lp-header {
			padding: 0 40px;
		}

		.header-logo-area {
			font-size: 20px;
		}

		.header-logo-area span {
			font-size: 11px;
		}

		.lp-mv {
			height: 75vh;
		}

		.mv-title-wrap h1 {
			font-size: 46px;
		}

		.lp-section {
			padding: 100px 40px;
		}

		.lp-section h2 {
			font-size: 30px;
			margin-bottom: 60px;
		}

		.is-pc {
			display: block !important;
		}

		.is-sp {
			display: none !important;
		}

		.grid-2col {
			grid-template-columns: repeat(2, 1fr);
			gap: 40px;
			align-items: start;
		}

		.grid-2col.reverse {
			direction: rtl;
		}

		.grid-2col.reverse .content-block,
		.grid-2col.reverse .image-wrap {
			direction: ltr;
		}

		.anchor-list {
			grid-template-columns: repeat(6, 1fr);
			gap: 8px;
		}

		.anchor-list a {
			padding: 12px 4px;
			font-size: 12px;
		}

		.access-chart-container {
			flex-direction: row;
			align-items: stretch;
		}

		.access-footer-notes {
			grid-template-columns: repeat(2, 1fr);
		}

		.node {
			font-size: 14px;
			min-width: 130px;
		}

		.footer-logo-wrap h3 {
			font-size: 26px;
		}

		.pr-image-container {
			flex-direction: row;
		}

		.pr-image-container img {
			width: calc(50% - 5px);
		}
	}


	.lp-plan-area {
		margin-top: 80px;
		background-color: #f9f6f0;
		padding: 60px 20px;
		border-radius: 8px;
	}

	.lp-plan-title {
		text-align: center;
		margin-bottom: 40px;
	}

	.lp-plan-title h3 {
		font-family: var(--font-serif);
		font-size: 26px;
		color: var(--color-primary);
		margin-bottom: 15px;
		letter-spacing: 0.05em;
	}

	.lp-plan-title img {
		max-width: 160px;
		height: auto;
	}

	.lp-plan-list {
		display: flex;
		flex-wrap: wrap;
		gap: 20px;
		max-width: 1000px;
		margin: 0 auto;
	}

	.lp-plan-card {
		background: #FFF;
		border: 1px solid #e0dcd3;
		border-radius: 8px;
		overflow: hidden;
		width: 100%;
		transition: transform 0.3s ease, box-shadow 0.3s ease;
	}

	.lp-plan-card:hover {
		transform: translateY(-5px);
		box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08);
	}

	.lp-plan-card a {
		display: block;
		text-decoration: none;
		color: inherit;
		height: 100%;
		display: flex;
		flex-direction: column;
	}

	.lp-plan-img {
		width: 100%;
		aspect-ratio: 4 / 3;
		object-fit: cover;
	}

	.lp-plan-body {
		padding: 20px;
		display: flex;
		flex-direction: column;
		flex-grow: 1;
	}

	.lp-plan-name {
		font-size: 15px;
		font-weight: 700;
		color: #333;
		line-height: 1.5;
		margin-bottom: 15px;
		text-align: left;
	}

	.lp-plan-price {
		margin-top: auto;
		text-align: center;
		font-size: 13px;
		color: #666;
		background: #F6F6F6;
		padding: 10px;
		border-radius: 4px;
	}

	.lp-plan-price strong {
		color: #b40000;
		font-size: 18px;
		margin-left: 5px;
	}

	@media screen and (min-width: 768px) {
		.lp-plan-card {
			width: calc((100% - 40px) / 3);
		}

		.lp-plan-title {
			display: flex;
			align-items: center;
			justify-content: center;
			gap: 30px;
			margin-bottom: 50px;
		}

		.lp-plan-title h3 {
			margin-bottom: 0;
		}
	}