h3 { color: var(--general); }
main .inner img { border-radius: 1.25rem; }
main>section:not(:has(.arrow_link, .archive_list)) a:not(.btn),.leadtext a {
	color: var(--general);
	text-decoration: underline;
	overflow-wrap: break-word;
}
ol:not(.note) {
	li:before { background-color: var(--general); }
}

/* ===============================
総合案内
=============================== */
#info>main {
	.three_column {
		li:first-child>.first::before { background-image: url(../img/shop/img_restaurant.jpg); }
		li:nth-child(2)>.first::before { background-image: url(../img/shop/img_golfShop.jpg); }
		li:nth-child(3)>.first::before { background-image: url(../img/shop/img_tennisShop.jpg); }
		li:has(.arrow_golf)>h3 { color: var(--golf-text); }
		li:has(.arrow_tennis)>h3 { color: var(--tennis); }
	}
	svg {
		.cls-1 { stroke: #87a85d; }
		.cls-1, .cls-2, .cls-3, .cls-4, .cls-5, .cls-6, .cls-7, .cls-8, .cls-9, .cls-10, .cls-11 { stroke-miterlimit: 10; }
		.cls-1, .cls-2, .cls-4, .cls-5, .cls-6, .cls-7, .cls-8, .cls-9, .cls-10, .cls-11 { fill: none; }
		.cls-12 { fill: #87a85d; }
		.cls-13, .cls-3 { fill: #8dad72; }
		.cls-2 { stroke-dasharray: 1.02 5.1; }
		.cls-2, .cls-4, .cls-6, .cls-8, .cls-10 { stroke: #f2f2f2; }
		.cls-2, .cls-4, .cls-8, .cls-10 { stroke-width: 8px; }
		.cls-3 { stroke: #fff5d6; }
		.cls-14 { fill: #f2f2f2; }
		.cls-15 { fill: #b18b6a; }
		.cls-16 { fill: #bbcc8f; }
		.cls-17 { fill: #fff5d6; }
		.cls-18 { fill: #fff; }
		.cls-4 { stroke-dasharray: 1.06 5.3; }
		.cls-5 { stroke-width: 10px; }
		.cls-5, .cls-7, .cls-9, .cls-11 { stroke: #f2f2f2; }
		.cls-6 { stroke-linecap: round; }
		.cls-6, .cls-11 { stroke-width: 4px; }
		.cls-19 { fill: #fff5d6; }
		.cls-20 { fill: #f2f2f2; }
		.cls-21 {
			mix-blend-mode: multiply;
			opacity: .4;
		}
		.cls-22 { isolation: isolate; }
		.cls-7 { stroke-width: 7px; }
		.cls-23 { fill: #adbe00; }
		.cls-8 { stroke-dasharray: 1 5; }
		.cls-9 { stroke-width: 3px; }
		.cls-24 { fill: #009cd5; }
		.cls-25 { fill: #ccc; }
		.cls-26 { fill: #b3b3b3; }
		.cls-27 { fill: #a5b985; }
		.cls-28 { fill: #61925a; }
		.cls-29 { fill: #bfd292; }
		.cls-30 { fill: #8aa870; }
		.cls-31 { fill: #467843; }
		a { text-decoration: none; }
	}
	@media screen and (min-width: 769px) {
		.inner>div:has(svg) {
			max-width: 850px;
			height: auto;
			margin: 0 auto;
		}
	}
}
.modaal-container:has(.modal_clubhouse) {
	width: 80vw;
	max-width: 800px;
}
.modaal-content-container {
	p:has(img) { margin-bottom: 1em; }
}
#info>main section .inner .movie {
	max-width: none;
	aspect-ratio: 16/9;
	iframe {
		width: 100%;
		height: 100%;
		border-radius: 0;
	}
}

/* ===============================
TSPカード
=============================== */
#tsp {
	.leadtext {
		img { object-position: left; }
	}
	section th { width: 30%; }
	.flowcard {
		width: 100%;
		&:last-child {
			li { margin-bottom: 0; }
		}
	}
	section:first-of-type {
		th, td { text-align: left; }
	}
	section:nth-of-type(2) {
		.flowcard:nth-child(2) {
			ul {
				display: flex;
				justify-content: space-between;
				flex-wrap: wrap;
				li { width: calc(100% / 2 - 0.5em); }
			}
		}
	}
	.service {
		p.note {
			text-indent: -1.2em;
			padding-left: 1.2em;
		}
	}
	.inner>p+p.note { margin-top: 0; }
	.rule {
		height: 9.375rem;
		background-color: var(--bg);
		border-radius: 1.25rem;
		padding: 2em;
		margin: 0 auto;
		overflow-y: auto;
		scrollbar-color: var(--general) var(--bg);
		h3 { font-size: 1rem; }
		p, li { font-size: 0.75rem; }
		p+ol { margin-top: .5em; }
		.last {
			margin-top: 1.5em;
			text-align: right;
		}
		@media screen and (min-width: 769px) {
			height: 18.75rem;
			padding: 2em 3em;
		}
	}
}

/* ===============================
予約システムについて
=============================== */
#reservation main {
	section:last-of-type {
		img {
			margin-bottom: 1em;
			border-radius: unset;
		}
		p:has(span) {
			padding-left: 1.5em;
			text-indent: -1.5em;
			>span {
				display: inline-block;
				min-width: 1.7em;
				margin-right: 0.5em;
				background-color: var(--general);
				color: #fff;
				font-weight: bold;
				font-size: 0.75em;
				line-height: 1.7em;
				text-align: center;
				border-radius: 0.25em;
				text-indent: 0;
			}
		}
		p:has(span)+ul { margin-left: 2em; }
	}
}

/* ===============================
アクセス
=============================== */
.flowcard+.flowcard {
	margin-top: 1em;
	@media screen and (min-width: 769px) { margin-top: 0; }
}
#train {
	h2 {
		&::before {
			content: url(../img/top/ico_train.svg);
			margin-right: 0.2em;
		}
	}
	@media screen and (min-width: 769px) {
		h2+div {
			display: flex;
			gap: 1em;
		}
	}
}
#taxi {
	h2 {
		&::before {
			content: url(../img/top/ico_taxi.svg);
			margin-right: 0.2em;
			vertical-align: text-top;
		}
	}
}
#car {
	h2 {
		&::before {
			content: url(../img/top/ico_car.svg);
			margin-right: 0.2em;
		}
	}
	p>img {
		margin-top: 1em;
		border-radius: 1.25em;
		width: 100%;
		height: auto;
	}
	.gallery {
		margin-top: 1.5em;
		width: 100vw;
		margin-left: calc(50% - 50vw);
		.splide__slide {
			img {
				aspect-ratio: auto;
				width: unset;
				height: 40vw;
				@media screen and (min-width: 769px) { height: 23.951vw; }
			}
		}
	}
	@media screen and (min-width: 769px) {
		h2+div {
			display: flex;
			gap: 1em;
			width: 100%;
			>div { width: 40%; }
			>p:has(img) { width: 60%; }
			p>img { margin-top: 0; }
			>div {
				.flowcard { width: 100%; }
				.flowcard+.flowcard { margin-top: 1em; }
			}
		}
	}
}
#map {
	iframe {
		margin-top: 1em;
		aspect-ratio: 16 / 9;
		width: 100%;
		height: auto;
	}
}

/* ===============================
会社概要
=============================== */
#profile {
	table {
		td, th { text-align: left; }
	}
	@media screen and (max-width: 768px) {
		th { width: 30%; }
	}
}

/* ===============================
プライバシーポリシー
=============================== */
#privacy {
	section {
		.inner>p:first-child {
			text-align: right;
			margin-bottom: 2em;
		}
		h2 {
			margin: 2em 0 0.75em;
			line-height: 1.5;
		}
		ul {
			li {
				.disc {
					margin: 0 0 .75em;
					padding-left: 1.5em;
				}
			}
		}
	}
}

/* ===============================
よくある質問
=============================== */
details {
	background: var(--bg);
	border-radius: 1.25em;
	margin-bottom: 1.5em;
	overflow: hidden;
	&[open]>summary span:after { transform: translate(-50%, -50%) rotate(90deg); }
	&:last-child { margin-bottom: 0; }
	summary {
		list-style: none;
		cursor: pointer;
		font-size: 1.05rem;
		font-weight: 600;
		text-indent: -2.3125rem;
		padding: 1.75em calc(1.75em + 2.3125rem);
		line-height: 1.4;
		position: relative;
		&::before {
			content: "Q.";
			font-family: var(--en);
			font-weight: 700;
			font-size: 1.5rem;
			margin-right: .5em;
			color: var(--general);
		}
		span {
			position: absolute;
			top: 50%;
			right: 1.75rem;
			transform: translateY(-50%);
			width: 1.25rem;
			height: 1.25rem;
		}
		span:before {
			content: "";
			position: absolute;
			top: 50%;
			left: 50%;
			-webkit-transform: translate(-50%, -50%);
			transform: translate(-50%, -50%);
			width: 100%;
			height: 2px;
			border-radius: 10px;
			background: var(--general);
			display: block;
		}
		span:after {
			content: "";
			position: absolute;
			top: 50%;
			left: 50%;
			-webkit-transform: translate(-50%, -50%);
			transform: translate(-50%, -50%);
			width: 2px;
			height: 100%;
			border-radius: 10px;
			background: var(--general);
			display: block;
			transition: 0.3s cubic-bezier(0.76, 0, 0.24, 1);
			will-change: transform;
			cursor: pointer;
		}
	}
	summary::-webkit-details-marker { display: none; }
	>div {
		overflow: hidden;
		will-change: height, opacity;
		>div {
			display: flex;
			text-align: justify;
			padding: 0 calc(1.75em + 2.3125rem) 1.75rem 2em;
			&::before {
				content: "A.";
				font-family: var(--en);
				font-weight: 700;
				font-size: 1.5rem;
				margin-right: .5em;
				color: #999;
			}
		}
	}
}
#faq {
	.disc, .note { margin-top: .25em; }
	section:nth-of-type(3),
	section:nth-of-type(4) {
		a, h3, summary:before { color: var(--golf-text); }
		summary span:before, summary span:after { background: var(--golf-text); }
		.disc li:before { background: var(--golf); }
	}
	section:nth-of-type(5) {
		a, h3, summary:before { color: var(--tennis); }
		summary span:before, summary span:after, .disc li:before { background: var(--tennis); }
	}
}