@charset "UTF-8";
/* 共通項 */
:root {
	--color-theme: #459176;
	--color-light-theme: #6fb8a8;
	--fg-color: #333;
	--bg-color-body: #999;
	--color-main: #333;
	--color-point: #44372b;
	--color-white: #fff;
	--color-lightgray: #f0f0f0;
	--font-gothic: 'Noto Sans JP', 'Helvetica Neue', 'Helvetica', 'Hiragino Sans',
		'Hiragino Kaku Gothic ProN', 'Arial', 'Yu Gothic', 'Meiryo', sans-serif;
	--font-mincho: 'Zen Old Mincho', 'Noto Serif', serif;
	--font-alphabet: 'Roboto', 'Noto Sans JP', 'Helvetica Neue', 'Helvetica',
		'Hiragino Sans', 'Hiragino Kaku Gothic ProN', 'Arial', 'Yu Gothic', 'Meiryo',
		sans-serif;
	--font-weight-thin: 100;
	--font-weight-extralight: 200;
	--font-weight-light: 300;
	--font-weight-regular: 400;
	--font-weight-medium: 500;
	--font-weight-semibold: 600;
	--font-weight-bold: 700;
	--font-weight-extrabold: 800;
	--font-weight-black: 900;
	--max-width: 1200px;
	--text-white-shadow: 0 0 8px #fff, 0 0 8px #fff, 0 0 8px #fff, 0 0 8px #fff,
		0 0 8px #fff, 0 0 8px #fff, 0 0 8px #fff, 0 0 8px #fff;
}
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

.inner {
	max-width: 1040px;
	width: 100%;
	margin: 0 auto;
}

img {
	display: block;
	margin: 0;
	vertical-align: middle;
	width: 100%;
	height: auto;
}

a {
	color: var(--color-main);
	text-decoration: none;
	transition: opacity 0.5s;
}

@media (hover: hover) {
	a:hover {
		opacity: 0.5;
	}
}
section {
	position: relative;
}

ul,
p {
	margin: 1.5em 0;
	line-height: 1.5;
}

li {
	list-style-type: none;
}

.big {
	font-size: 1.2rem;
}

.small {
	font-size: 0.8rem;
}

.bold {
	font-weight: 900;
}

.center {
	text-align: center;
}

.right {
	text-align: right;
}

.red {
	color: #d60000;
}

.pc {
	display: none;
}

.sp {
	display: block;
}
.mt00 {
	margin-top: 0 !important;
}
.mb00 {
	margin-bottom: 0 !important;
}
.pt00 {
	padding-top: 0 !important;
}
.pb00 {
	padding-bottom: 0 !important;
}

@media (min-width: 768px) {
	.pc {
		display: block;
	}
	.sp {
		display: none;
	}
}
/* 以下サイトごと */
html {
	margin: 0;
	padding: 0;
	width: 100%;
	font-size: 16px;
	scroll-behavior: smooth;
	scroll-padding-top: 120px;
}

body {
	margin: 0;
	padding: 0;
	width: 100%;
	color: #44372b;
	font-family: var(--font-mincho);
	background: #fff;
}

/**
 * SP用設定
 */
@media (width < 768px) and (hover: hover) {
	.common-btn:hover {
		color: #fff;
	}
}
@media (width < 768px) {
	.common-btn {
		color: #fff;
		font-size: 4vw;
		line-height: 1;
		background-color: #44372b;
		border-radius: 5px;
		box-shadow: 3px 3px 3px rgba(198, 196, 196, 0.5019607843);
		display: flex;
		align-items: center;
		justify-content: center;
	}
	.common-btn.tel::before {
		content: '';
		margin: 0 0.4em 0 0;
		width: 1em;
		height: 1em;
		background: var(--wpr-bg-dedf3601-46da-4899-870d-357225b8b796) no-repeat
			center/contain;
	}
	.common-btn.web::before {
		content: '';
		margin: 0 0.4em 0 0;
		width: 1em;
		height: 1em;
		background: var(--wpr-bg-d072c27b-6503-4039-8c1f-67ea2110a96c) no-repeat
			center/contain;
	}
	.page-main {
		margin: 0 auto;
		width: 95%;
		max-width: 1200px;
	}
	.page-main h2.main-color {
		margin: 12vw auto 4vw;
		padding: 0.5em 1em;
		color: #fff;
		font-size: 5.2vw;
		font-weight: 700;
		text-align: center;
		text-wrap: balance;
		background-color: #44372b;
	}
	.page-main h3 {
		margin: 4vw auto 2vw;
		color: #333;
		font-size: 4.8vw;
		font-weight: 700;
		text-align: left;
	}
	.page-main h3.with-no {
		width: 100%;
		position: relative;
		margin: 0;
		padding: 0 0 0.5em 1.8em;
		color: #333;
		font-size: 4.8vw;
		font-weight: 600;
		border-bottom: 1px solid #44372b;
	}
	.page-main h3.with-no::before {
		position: absolute;
		content: attr(data-no);
		top: 0;
		left: 0;
		width: 1.8em;
		aspect-ratio: 1/1;
		color: #44372b;
		font-size: 3.2vw;
		font-family: 'Roboto', 'Noto Sans JP', 'Helvetica Neue', 'Helvetica',
			'Hiragino Sans', 'Hiragino Kaku Gothic ProN', 'Arial', 'Yu Gothic',
			'Meiryo', sans-serif;
		font-weight: 300;
		background: #fff;
		border: 1px solid #44372b;
		border-radius: 100%;
		display: grid;
		place-items: center;
	}
	.page-main h3.sep-no {
		margin: 0;
		text-align: center;
		height: 3em;
		color: #44372b;
		font-size: 4.8vw;
		font-weight: 600;
		line-height: 1.2;
		display: flex;
		align-items: center;
	}
	.page-main h3.pl-h3 {
		position: relative;
		margin: 1em 0;
		padding: 0.4em 0 0.4em 2.4em;
		color: #44372b;
		font-size: 4.8vw;
		font-weight: 600;
		line-height: 1.2;
	}
	.page-main p + h3.pl-h3 {
		margin-top: 8vw;
	}
	.page-main h3.bg-main-color {
		margin: 1.5em 0 0.5em;
		padding: 0.2em 2em;
		width: -moz-max-content;
		width: max-content;
		color: #fff;
		background: #44372b;
		font-size: 4.8vw;
		font-weight: 600;
		text-align: center;
	}
	.page-main h3.list-h3 {
		margin: 1.5em 0 0.5em;
		padding: 0.2em 0;
		width: 100%;
		color: #44372b;
		font-size: 4.8vw;
		font-weight: 700;
		border-bottom: 1px solid #44372b;
	}
	.page-main .d-flex {
		margin: 4vw auto;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 4vw 0;
	}
	.page-main .d-flex + .d-flex {
		margin-top: 8vw;
	}
	.page-main .d-flex.is-reverse {
		flex-direction: column-reverse;
	}
	.page-main .d-flex .col100,
	.page-main .d-flex .col90,
	.page-main .d-flex .col80,
	.page-main .d-flex .col70,
	.page-main .d-flex .col60,
	.page-main .d-flex .col50,
	.page-main .d-flex .col40,
	.page-main .d-flex .col30 {
		width: 100%;
	}
	.page-main p {
		/* margin: 0.5em 0; */
		font-size: 3.2vw;
		color: var(--color-main);
	}
	.page-main li {
		color: #2d1b00;
		font-size: 3.2vw;
	}
	.page-main li + li {
		margin-top: 0.5em;
	}
	.page-main .indent {
		padding-left: 2em;
	}
	.page-main .center {
		text-align: center;
	}
	.page-main .right {
		text-align: right;
	}
	.page-main .bold {
		font-weight: 700;
	}
	.page-main .main-color {
		color: #44372b;
	}
	.page-main em {
		color: #44372b;
		font-weight: 700;
		font-style: normal;
	}
	.page-main .pic {
		margin: 0 auto;
		width: 100%;
	}
	.page-main p + :is(.pic) {
		margin-top: 4vw;
	}
	.page-main .price-area {
		margin: 0 auto;
		width: 90%;
		max-width: 800px;
	}
	.page-main .price-list {
		margin: 0 auto;
		width: 90%;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 0;
	}
	.page-main .price-list dt {
		margin: 4vw 0 0;
		width: 100%;
		font-size: 4vw;
	}
	.page-main .price-list dd {
		margin: 2vw auto;
		width: 50%;
		font-size: 4vw;
		text-align: right;
	}
	.page-main .price-list + h3.pl-h3 {
		margin-top: 8vw;
	}
	.page-main .map {
		margin: calc(40 * min(100vw, 1100px) / 1100) auto;
		width: 100%;
		max-width: 1000px;
	}
	.page-main .map iframe {
		display: block;
		width: 100%;
		aspect-ratio: 16/9;
		border: 0;
	}
	.page-main .concept-area {
		padding: 16vw 0;
		background: var(--wpr-bg-f9c0b429-c015-49db-a456-836e07cecf99) no-repeat top
			center/cover;
		margin-bottom: 0;
	}
	.page-main .concept-area h2 {
		color: #44372b;
		font-size: 5.2vw;
		font-weight: 700;
		text-align: center;
		text-shadow: 0 0 8px #fff, 0 0 8px #fff, 0 0 8px #fff, 0 0 8px #fff,
			0 0 8px #fff, 0 0 8px #fff, 0 0 8px #fff, 0 0 8px #fff;
	}
	.page-main .concept-area p {
		margin: 1em auto;
		width: 90%;
		font-size: 3.5vw;
		text-shadow: 0 0 4px #fff, 0 0 4px #fff, 0 0 4px #fff, 0 0 4px #fff,
			0 0 4px #fff, 0 0 4px #fff, 0 0 4px #fff, 0 0 4px #fff;
	}
	.page-main .flow-box {
		margin: 6vw auto;
		width: 100%;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
	}
	.page-main .flow-box .flow-no {
		padding: 2vw 0;
		width: 100%;
		color: #44372b;
		font-size: 4.8vw;
		background: #f6f2ee;
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 0 2vw;
	}
	.page-main .flow-box .flow-no span {
		display: inline-block;
		width: 1.8em;
		aspect-ratio: 1/1;
		color: #44372b;
		font-size: 4.8vw;
		font-family: 'Roboto', 'Noto Sans JP', 'Helvetica Neue', 'Helvetica',
			'Hiragino Sans', 'Hiragino Kaku Gothic ProN', 'Arial', 'Yu Gothic',
			'Meiryo', sans-serif;
		font-weight: 300;
		border: 1px solid #44372b;
		border-radius: 100%;
		writing-mode: horizontal-tb;
		display: grid;
		place-items: center;
	}
	.page-main .flow-box .flow-info {
		padding: 2% 2%;
		width: 100%;
		background: rgba(246, 242, 238, 0.5019607843);
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		justify-content: center;
	}
	.page-main .flow-box .flow-info h3 {
		margin: 0 0 0.5em;
		padding: 0 0 0.5em;
		width: 100%;
		font-size: 4vw;
		font-weight: 700;
		border-bottom: 1px solid #959595;
	}
	.page-main .flow-box .flow-info h3 .small {
		font-size: calc(16 * min(100vw, 1100px) / 1100);
	}
	.page-main .flow-box .flow-pic {
		padding: 0 2% 0 0;
		width: 80%;
		background: rgba(246, 242, 238, 0.5019607843);
		display: grid;
		place-items: center;
	}
	.page-main .faq-q {
		margin: 6vw auto 0;
		padding: 0.5em 1em;
		width: 100%;
		color: #44372b;
		font-size: 4vw;
		font-weight: 700;
		background: #faf9f6;
	}
	.page-main .faq-a {
		position: relative;
		margin: 0 auto;
		padding: 0.5em 0.5em 0.5em 2em;
		width: 100%;
		font-size: 3.6vw;
	}
	.page-main .faq-a::before {
		position: absolute;
		content: 'A';
		top: 0.5em;
		left: 0.5em;
		color: #44372b;
		font-size: 4.8vw;
		font-family: 'Roboto', 'Noto Sans JP', 'Helvetica Neue', 'Helvetica',
			'Hiragino Sans', 'Hiragino Kaku Gothic ProN', 'Arial', 'Yu Gothic',
			'Meiryo', sans-serif;
	}
	.page-main .anchor {
		height: 1px;
		transform: translateY(-80px);
		opacity: 0;
	}
	.page-main .main-color-box {
		margin: 8vw auto;
		padding: 1em;
		width: 100%;
		border: 3px solid #44372b;
		border-radius: 10px;
	}
	.page-main .main-color-box p {
		margin: 0 auto;
		font-size: 3.6vw;
	}
	.page-main .main-color-box ul {
		margin: 0 0 0 4vw;
	}
	.page-main .main-color-box ul li {
		margin: 0.5em auto;
		font-size: 3.6vw;
	}
	.page-main .diagnosis-btns {
		margin: 8vw auto;
		width: 100%;
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		justify-content: flex-start;
		gap: 3vw;
	}
	.page-main .diagnosis-btn {
		display: block;
		padding: 0.8em 0;
		width: calc((100% - 3vw) / 2);
		color: #fff;
		font-size: 3.6vw;
		font-weight: 700;
		text-align: center;
		white-space: nowra;
		background-color: #44372b;
		box-shadow: 5px 5px 5px #e6e5e5;
		border-radius: 2em;
	}
	.page-main .detail-btn {
		display: block;
		margin: 1em auto;
		padding: 0.8em 0;
		width: 90%;
		max-width: 240px;
		color: #fff;
		font-size: 3.6vw;
		font-weight: 600;
		text-align: center;
		background: #44372b;
		border-radius: 2em;
	}
	.page-main .director-box {
		margin: 4vw auto 0;
		padding: 1em 0;
		font-size: 3.6vw;
		text-align: center;
		line-height: 1.5;
		background: #f3f9f8;
	}
	.page-main .director-box .big {
		font-size: 4.8vw;
	}
	.page-main .staff-box {
		margin: 6vw auto 0;
		width: 100%;
		background: #f3f9f8;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
	}
	.page-main .staff-box .staff-info {
		padding: 4vw;
		width: 100%;
	}
	.page-main .staff-box .staff-info .staff-ryaku {
		margin: 4vw 0 0;
		display: flex;
		align-items: flex-start;
	}
	.page-main .staff-box .staff-info .staff-ryaku h3 {
		margin: 0;
		padding: 0.2em 2em;
		width: -moz-max-content;
		width: max-content;
		color: #fff;
		background: #44372b;
		font-size: 3.6vw;
		font-weight: 600;
		text-align: center;
		white-space: nowrap;
	}
	.page-main .staff-box .staff-info .staff-ryaku p {
		margin: 0;
	}
	.page-main .staff-box .staff-pic {
		position: relative;
		width: 100%;
	}
	.page-main .staff-box .staff-pic .name {
		position: absolute;
		bottom: 5%;
		left: 50%;
		padding: 0.5em 1em;
		width: -moz-max-content;
		width: max-content;
		font-size: 4vw;
		text-align: center;
		line-height: 1;
		background: rgba(255, 255, 255, 0.8549019608);
		transform: translateX(-50%);
	}
	.page-main .staff-box .staff-pic .name .small {
		font-size: 3.2vw;
	}
	.page-main .staff-pic {
		margin: 6vw auto 0;
		width: 100%;
	}
	.page-main .clinic-info {
		margin: 6vw auto 0;
		width: 100%;
		display: flex;
		flex-wrap: wrap;
		align-items: stretch;
		justify-content: space-between;
	}
	.page-main .clinic-info dt {
		padding: 1vw 0;
		width: 20vw;
		color: #44372b;
		font-size: 3.6vw;
		font-weight: 700;
		text-align: center;
	}
	.page-main .clinic-info dd {
		padding: 1vw 0;
		width: calc(100% - 20vw);
		font-size: 3.6vw;
		font-weight: 500;
	}
	.page-main .clinic-info dt:not(:nth-of-type(1)),
	.page-main .clinic-info dd:not(:nth-of-type(1)) {
		border-top: 1px solid #bdbdbd;
	}
	.page-main .clinic-info .no-holiday {
		display: inline-block;
		margin: 0 0 0 1em;
		padding: 0.4em 1em;
		color: #fff;
		font-size: 3.2vw;
		text-align: center;
		line-height: 1;
		background: #44372b;
		border-radius: 2em;
	}
}
@media (width < 768px) {
	.page-main
		:is(input[type='text'], input[type='number'], input[type='tel']):focus {
		outline: 2px solid #000;
	}
	.page-main .common-list {
		margin: 4vw auto;
		padding: 0;
		width: 100%;
		list-style: none;
	}
	.page-main .common-list li {
		position: relative;
		margin: 0.5em 0;
		padding: 0 0 0 1.2em;
		width: 100%;
		font-size: 3.6vw;
		list-style: none;
	}
	.page-main .common-list li::before {
		position: absolute;
		content: '';
		top: 0.6em;
		left: 0;
		width: 0.4em;
		height: 0.4em;
		background: #44372b;
		border-radius: 0.2em;
	}
	.page-main p.bg-main-color {
		margin: 8vw 0 0;
		padding: 1em 1em;
		width: 100%;
		font-size: 4vw;
		font-weight: 700;
		background: #f2f9f8;
	}
	.page-main h4 {
		margin: 1em 0 0.5em;
		font-size: 4vw;
		padding: 0 0 0.2em 4vw;
	}
	.movie {
		padding: 8vw 0;
		background: #fff;
	}
	.movie iframe {
		display: block;
		margin: 0 auto;
		width: 100%;
		max-width: 680px;
		aspect-ratio: 1440/781;
	}
	.contact {
		padding: 8vw 0 6vw;
	}
	.contact strong {
		margin: 0 auto;
		padding: 0 0 0.5em;
		width: 100%;
		max-width: 1000px;
		color: var(--color-point);
		font-size: 6vw;
		font-weight: 500;
		text-align: center;
		text-shadow: 0 0 8px #fff, 0 0 8px #fff, 0 0 8px #fff, 0 0 8px #fff,
			0 0 8px #fff, 0 0 8px #fff, 0 0 8px #fff, 0 0 8px #fff;
		border-bottom: 1px solid #b7b7b7;
		display: block;
	}
	.contact .catch {
		margin: 1em 0;
		font-size: 3.6vw;
		text-align: center;
	}
	.contact .btns {
		margin: 4vw auto;
		width: 90%;
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		justify-content: center;
		gap: 5vw 0;
	}
	.contact .btns .common-btn {
		width: 100%;
		aspect-ratio: 5/1;
		font-size: 5vw;
	}
	.contact .logo {
		margin: min(60px, 3.75vw) auto;
		width: 80%;
		max-width: 393px;
		display: none;
	}
	.contact .info {
		margin: 4vw auto;
		width: 90%;
		display: flex;
		flex-direction: column-reverse;
		align-items: center;
		justify-content: center;
		gap: 4vw 0;
	}
	.contact .info .left {
		width: 100%;
	}
	.contact .info .left dl {
		padding: 2vw 0;
		display: flex;
		align-items: center;
		justify-content: space-between;
	}
	.contact .info .left dl + dl {
		border-top: 1px solid #ccc;
	}
	.contact .info .left dl dt {
		width: 12vw;
		color: #44372b;
		font-size: 3.6vw;
		font-weight: 500;
		text-align: center;
	}
	.contact .info .left dl dd {
		padding: 0 0 0 1em;
		width: calc(100% - 12vw);
		font-size: 3.6vw;
		font-weight: 500;
		text-align: left;
	}
	.contact .info .left dl dd .small {
		font-size: 3.2vw;
	}
	.contact .info .right {
		width: 100%;
	}
	.contact .map {
		margin: min(40px, 2.5vw) auto 0;
		width: 100%;
		max-width: 1000px;
	}
	.contact .map iframe {
		display: block;
		width: 100%;
		aspect-ratio: 16/9;
		border: 0;
	}
	footer .footer-flex {
		flex-direction: column-reverse;
	}
	footer .footer-text {
		margin: 0 auto;
		width: 90%;
		max-width: 1200px;
	}
	footer .footer-text p {
		font-size: 10px;
		margin-top: 0;
	}
	footer .common-btn {
		width: 344px;
		height: 94px;
	}
	footer .fixed-bottom {
		position: fixed;
		bottom: 0;
		left: 0;
		width: 100%;
		height: 81px;
		display: flex;
		align-items: stretch;
		justify-content: space-between;
		z-index: 100;
	}
	footer .fixed-bottom .common-btn {
		width: 50%;
		height: 100%;
		border-radius: 0;
		transition: filter ease-out 0.5s;
		font-size: max(25px, 2.5vw);
	}
	footer .fixed-bottom .common-btn + .common-btn {
		border-left: 1px solid #fff;
	}
	footer .fixed-bottom .common-btn.tel {
		font-size: max(14px, 2vw);
	}
	footer .fixed-bottom .common-btn.web {
		font-size: max(16px, 2.5vw);
	}
}
@media (width < 768px) and (hover: hover) {
	footer .fixed-bottom .common-btn:hover {
		filter: brightness(200%);
		opacity: 1;
	}
}
/**
 * PC用設定
 */
@media (width >= 768px) {
	.common-btn {
		color: #fff;
		font-size: min(24px, 2vw);
		line-height: 1;
		background-color: var(--color-point);
		display: flex;
		align-items: center;
		justify-content: center;
	}
}
@media (width >= 768px) and (hover: hover) {
	.common-btn:hover {
		color: #fff;
	}
}
@media (width >= 768px) {
	.common-btn.tel::before {
		content: '';
		margin: 0 0.4em 0 0;
		width: 1em;
		height: 1em;
		background: var(--wpr-bg-dedf3601-46da-4899-870d-357225b8b796) no-repeat
			center/contain;
	}
	.common-btn.web::before {
		content: '';
		margin: 0 0.4em 0 0;
		width: 1em;
		height: 1em;
		background: var(--wpr-bg-d072c27b-6503-4039-8c1f-67ea2110a96c) no-repeat
			center/contain;
	}
	.page-main {
		margin: 0 auto;
		width: 95%;
		max-width: 1200px;
	}
	.page-main .highlight {
		position: relative;
		margin: calc(80 * min(100vw, 1000px) / 1000) auto
			calc(60 * min(100vw, 1000px) / 1000);
		padding: 0;
		width: 90%;
		max-width: 1000px;
		background: url(../../../../../../../themes/hello-elementor-child/images/page-highlight-bg-icon1.png)
				no-repeat -20px center/auto 70%,
			url(../../../../../../../themes/hello-elementor-child/images/page-highlight-bg-icon2.png)
				no-repeat 98% 95%/35% auto,
			linear-gradient(to right, #00b3c2, #69cbd0);
	}
	.page-main .highlight::after {
		position: absolute;
		content: '';
		top: 10px;
		left: 10px;
		width: calc(100% - 20px);
		height: calc(100% - 20px);
		border: 1px solid rgba(255, 255, 255, 0.5333333333);
		border-radius: 4px;
	}
	.page-main .highlight ul {
		margin: 0 auto;
		padding: calc(30 * min(100vw, 1000px) / 1000) 0;
		width: 70%;
		height: 100%;
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		justify-content: space-evenly;
		list-style: none;
	}
	.page-main .highlight ul li {
		position: relative;
		padding: 0 0 0 1em;
		color: #fff;
		font-size: calc(28 * min(100vw, 1000px) / 1000);
		font-weight: 700;
		line-height: 1.4;
		list-style: none;
		z-index: 1;
	}
	.page-main .highlight ul li a {
		color: #fff;
	}
	.page-main .highlight ul li::before {
		position: absolute;
		content: '';
		top: 0.6em;
		left: 0;
		width: 0.5em;
		aspect-ratio: 1/1;
		background: var(--wpr-bg-60ca152a-3f4c-4172-aab7-1287ca81cebb) no-repeat
			center/contain;
	}
	.page-main .common {
		margin: calc(40 * min(100vw, 1100px) / 1100) auto;
		width: 90%;
		max-width: 1100px;
	}
	.page-main h2.main-color {
		margin: calc(80 * min(100vw, 1100px) / 1100) auto
			calc(40 * min(100vw, 1100px) / 1100);
		padding: 0.5em 1em;
		color: #fff;
		font-size: calc(25 * min(100vw, 1100px) / 1100);
		font-weight: 700;
		text-align: center;
		text-wrap: balance;
		background-color: #44372b;
	}
	.page-main h3 {
		margin: calc(40 * min(100vw, 1100px) / 1100) auto
			calc(20 * min(100vw, 1100px) / 1100);
		color: #333;
		font-size: calc(24 * min(100vw, 1100px) / 1100);
		font-weight: 700;
		text-align: left;
	}
	.page-main h3.with-no {
		width: 100%;
		position: relative;
		margin: 0;
		padding: 0 0 0.5em 2em;
		color: #333;
		font-size: calc(23 * min(100vw, 1100px) / 1100);
		font-weight: 600;
		border-bottom: 1px solid #44372b;
	}
	.page-main h3.with-no::before {
		position: absolute;
		content: attr(data-no);
		top: 0;
		left: 0;
		width: 1.8em;
		aspect-ratio: 1/1;
		color: #44372b;
		font-size: calc(18 * min(100vw, 1100px) / 1100);
		font-family: 'Roboto', 'Noto Sans JP', 'Helvetica Neue', 'Helvetica',
			'Hiragino Sans', 'Hiragino Kaku Gothic ProN', 'Arial', 'Yu Gothic',
			'Meiryo', sans-serif;
		font-weight: 300;
		background: #fff;
		border: 1px solid #44372b;
		border-radius: 100%;
		display: grid;
		place-items: center;
	}
	.page-main h3.sep-no {
		position: relative;
		margin: 0;
		text-align: center;
		height: 3em;
		color: #44372b;
		font-size: calc(21 * min(100vw, 1100px) / 1100);
		font-weight: 600;
		line-height: 1.2;
		display: flex;
		align-items: center;
		justify-content: center;
	}
	.page-main h3.pl-h3 {
		position: relative;
		margin: 1em 0;
		padding: 0.4em 0;
		color: #44372b;
		font-size: calc(21 * min(100vw, 1100px) / 1100);
		font-weight: 600;
		line-height: 1.2;
	}
	.page-main p + h3.pl-h3 {
		margin-top: calc(60 * min(100vw, 1100px) / 1100);
	}
	.page-main h3.bg-main-color {
		margin: 1.5em 0 0.5em;
		padding: 0.2em 2em;
		width: -moz-max-content;
		width: max-content;
		color: #fff;
		background: #44372b;
		font-size: calc(16 * min(100vw, 1100px) / 1100);
		font-weight: 600;
		text-align: center;
	}
	.page-main h3.list-h3 {
		margin: 1.5em 0 0.5em;
		padding: 0.2em 2em;
		width: 60%;
		color: #44372b;
		font-size: calc(23 * min(100vw, 1100px) / 1100);
		font-weight: 700;
		border-bottom: 1px solid #44372b;
	}
	.page-main .d-flex {
		margin: calc(40 * min(100vw, 1100px) / 1100) auto;
		max-width: 1050px;
		display: flex;
		flex-wrap: wrap;
		align-items: stretch;
		justify-content: space-between;
		gap: calc(20 * min(100vw, 1100px) / 1100) 0;
	}
	.page-main .d-flex + .d-flex {
		margin-top: calc(60 * min(100vw, 1100px) / 1100);
	}
	.page-main .d-flex .col100 {
		width: 100%;
	}
	.page-main .d-flex .col90 {
		width: 88%;
	}
	.page-main .d-flex .col80 {
		width: 78%;
	}
	.page-main .d-flex .col70 {
		width: 68%;
	}
	.page-main .d-flex .col60 {
		width: 58%;
	}
	.page-main .d-flex .col50 {
		width: 48%;
	}
	.page-main .d-flex .col40 {
		width: 39%;
	}
	.page-main .d-flex .col30 {
		width: 29%;
	}
	.page-main p {
		margin: 0.5em 0;
		color: #2d1b00;
		font-size: calc(18 * min(100vw, 1100px) / 1100);
		line-height: 1.8;
	}
	.page-main li {
		color: #2d1b00;
		font-size: calc(18 * min(100vw, 1100px) / 1100);
	}
	.page-main li + li {
		margin-top: 0.5em;
	}
	.page-main .indent {
		padding-left: 2em;
	}
	.page-main .center {
		text-align: center;
	}
	.page-main .right {
		text-align: right;
	}
	.page-main .bold {
		font-weight: 700;
	}
	.page-main .main-color {
		color: #44372b;
	}
	.page-main em {
		color: #44372b;
		font-weight: 700;
		font-style: normal;
	}
	.page-main .pic {
		margin: 0 auto;
		width: 100%;
	}
	.page-main p + :is(.pic) {
		margin-top: calc(40 * min(100vw, 800px) / 800);
	}
	.page-main .price-area {
		margin: 0 auto;
		width: 90%;
		max-width: 800px;
	}
	.page-main .price-list {
		margin: calc(16 * min(100vw, 800px) / 800) auto;
		width: 90%;
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		justify-content: space-between;
	}
	.page-main .price-list dt {
		width: calc(100% - 10em);
		font-size: calc(16 * min(100vw, 800px) / 800);
	}
	.page-main .price-list dd {
		width: 10em;
		font-size: calc(16 * min(100vw, 800px) / 800);
	}
	.page-main .price-list + h3.pl-h3 {
		margin-top: calc(40 * min(100vw, 800px) / 800);
	}
	.page-main h3.pl-h3:first-of-type {
		margin-top: calc(40 * min(100vw, 800px) / 800);
	}
	.page-main .map {
		margin: calc(40 * min(100vw, 1100px) / 1100) auto;
		width: 100%;
		max-width: 1000px;
	}
	.page-main .map iframe {
		display: block;
		width: 100%;
		aspect-ratio: 16/9;
		border: 0;
	}
	.page-main .concept-area {
		padding: calc(80 * min(100vw, 1100px) / 1100) 0;
		background: var(--wpr-bg-3c711edf-ccb8-4faa-ac76-179c78ba501c) no-repeat top
			center/cover;
	}
	.page-main .concept-area h2 {
		color: #44372b;
		font-size: calc(40 * min(100vw, 1100px) / 1100);
		font-weight: 700;
		text-align: center;
		text-shadow: 0 0 8px #fff, 0 0 8px #fff, 0 0 8px #fff, 0 0 8px #fff,
			0 0 8px #fff, 0 0 8px #fff, 0 0 8px #fff, 0 0 8px #fff;
		margin: 0 auto calc(40 * min(100vw, 1100px) / 1100);
	}
	.page-main .concept-area p {
		margin: 1em auto;
		width: 90%;
		max-width: 900px;
		font-size: calc(18 * min(100vw, 1100px) / 1100);
		text-shadow: 0 0 4px #fff, 0 0 4px #fff, 0 0 4px #fff, 0 0 4px #fff,
			0 0 4px #fff, 0 0 4px #fff, 0 0 4px #fff, 0 0 4px #fff;
	}
	.page-main .flow-box {
		margin: calc(40 * min(100vw, 1100px) / 1100) auto;
		width: 100%;
		display: flex;
		align-items: stretch;
		justify-content: space-between;
	}
	.page-main .flow-box .flow-no {
		width: calc(80 * min(100vw, 1100px) / 1100);
		color: #44372b;
		font-size: calc(25 * min(100vw, 1100px) / 1100);
		writing-mode: vertical-rl;
		background: #f6f2ee;
		display: flex;
		align-items: center;
		justify-content: center;
	}
	.page-main .flow-box .flow-no span {
		margin: 0 0 0.4em;
		display: inline-block;
		width: 1.8em;
		aspect-ratio: 1/1;
		color: #44372b;
		font-size: calc(18 * min(100vw, 1100px) / 1100);
		font-family: 'Roboto', 'Noto Sans JP', 'Helvetica Neue', 'Helvetica',
			'Hiragino Sans', 'Hiragino Kaku Gothic ProN', 'Arial', 'Yu Gothic',
			'Meiryo', sans-serif;
		font-weight: 300;
		border: 1px solid #44372b;
		border-radius: 100%;
		writing-mode: horizontal-tb;
		display: grid;
		place-items: center;
	}
	.page-main .flow-box .flow-info {
		padding: 2% 2%;
		width: calc(73% - 80 * min(100vw, 1100px) / 1100);
		background: rgba(246, 242, 238, 0.5019607843);
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		justify-content: center;
	}
	.page-main .flow-box .flow-info h3 {
		margin: 0 0 calc(10 * min(100vw, 1100px) / 1100);
		padding: 0 0 calc(10 * min(100vw, 1100px) / 1100);
		width: 100%;
		font-size: calc(20 * min(100vw, 1100px) / 1100);
		font-weight: 700;
		border-bottom: 1px solid #959595;
	}
	.page-main .flow-box .flow-info h3 .small {
		font-size: calc(16 * min(100vw, 1100px) / 1100);
	}
	.page-main .flow-box .flow-pic {
		padding: 0 2% 0 0;
		width: 27%;
		background: rgba(246, 242, 238, 0.5019607843);
		display: grid;
		place-items: center;
	}
	.page-main .faq-q {
		margin: calc(40 * min(100vw, 1100px) / 1100) auto 0;
		padding: 0.5em 2em;
		width: 90%;
		max-width: 1020px;
		color: #44372b;
		font-size: calc(20 * min(100vw, 1100px) / 1100);
		font-weight: 700;
		background: #faf9f6;
	}
	.page-main .faq-a {
		position: relative;
		margin: 0 auto;
		padding: calc(10 * min(100vw, 1100px) / 1100)
			calc(10 * min(100vw, 1100px) / 1100) calc(10 * min(100vw, 1100px) / 1100)
			calc(60 * min(100vw, 1100px) / 1100);
		width: 90%;
		max-width: 1020px;
		font-size: calc(16 * min(100vw, 1100px) / 1100);
	}
	.page-main .faq-a::before {
		position: absolute;
		content: 'A';
		top: 0.4em;
		left: 1em;
		color: #44372b;
		font-size: calc(25 * min(100vw, 1100px) / 1100);
		font-family: 'Roboto', 'Noto Sans JP', 'Helvetica Neue', 'Helvetica',
			'Hiragino Sans', 'Hiragino Kaku Gothic ProN', 'Arial', 'Yu Gothic',
			'Meiryo', sans-serif;
	}
	.page-main .anchor {
		height: 1px;
		transform: translateY(-80px);
		opacity: 0;
	}
	.page-main .main-color-box {
		margin: calc(60 * min(100vw, 1100px) / 1100) auto;
		padding: 1em;
		width: 100%;
		max-width: 1050px;
		border: 3px solid #44372b;
		border-radius: 10px;
	}
	.page-main .main-color-box p {
		margin: 0 auto;
		font-size: calc(18 * min(100vw, 1100px) / 1100);
	}
	.page-main .main-color-box ul {
		padding: 0 0 0 calc(20 * min(100vw, 1100px) / 1100);
		width: 100%;
	}
	.page-main .main-color-box ul li {
		margin: 0.5em auto;
		font-size: calc(18 * min(100vw, 1100px) / 1100);
	}
	.page-main .diagnosis-btns {
		margin: calc(60 * min(100vw, 1100px) / 1100) auto
			calc(100 * min(100vw, 1100px) / 1100);
		width: 100%;
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		justify-content: flex-start;
		gap: calc(16 * min(100vw, 1100px) / 1100);
	}
	.page-main .diagnosis-btn {
		display: block;
		padding: 0.8em 0;
		width: calc((100% - 64 * min(100vw, 1100px) / 1100) / 5);
		color: #fff;
		font-size: calc(22 * min(100vw, 1100px) / 1100);
		font-weight: 700;
		text-align: center;
		white-space: nowra;
		background-color: #44372b;
		box-shadow: 5px 5px 5px #e6e5e5;
		border-radius: 2em;
	}
	.page-main .detail-btn {
		display: block;
		margin: 1em auto;
		padding: 0.8em 0;
		width: 90%;
		max-width: 240px;
		color: #fff;
		font-size: calc(16 * min(100vw, 1100px) / 1100);
		font-weight: 600;
		text-align: center;
		background: #44372b;
		border-radius: 2em;
	}
	.page-main .director-box {
		margin: calc(16 * min(100vw, 1100px) / 1100) auto 0;
		padding: 1em 0;
		font-size: calc(15 * min(100vw, 1100px) / 1100);
		text-align: center;
		line-height: 1.5;
		background: #f3f9f8;
	}
	.page-main .director-box .big {
		font-size: calc(28 * min(100vw, 1100px) / 1100);
	}
	.page-main .staff-box {
		margin: calc(40 * min(100vw, 800px) / 800) auto 0;
		width: 100%;
		max-width: 800px;
		background: #f3f9f8;
		display: flex;
		align-items: stretch;
		justify-content: space-between;
	}
	.page-main .staff-box .staff-info {
		padding: calc(20 * min(100vw, 800px) / 800)
			calc(40 * min(100vw, 800px) / 800);
		width: 70%;
	}
	.page-main .staff-box .staff-info .staff-ryaku {
		margin: calc(20 * min(100vw, 800px) / 800) 0 0;
		display: flex;
		align-items: flex-start;
	}
	.page-main .staff-box .staff-info .staff-ryaku h3 {
		margin: 0;
		padding: 0.2em 2em;
		width: -moz-max-content;
		width: max-content;
		color: #fff;
		background: #44372b;
		font-size: calc(16 * min(100vw, 800px) / 800);
		font-weight: 600;
		text-align: center;
		white-space: nowrap;
	}
	.page-main .staff-box .staff-info .staff-ryaku p {
		margin: 0;
	}
	.page-main .staff-box .staff-pic {
		position: relative;
		width: 30%;
	}
	.page-main .staff-box .staff-pic .name {
		position: absolute;
		bottom: 10%;
		left: 50%;
		padding: 0.5em 1em;
		width: -moz-max-content;
		width: max-content;
		font-size: calc(16 * min(100vw, 800px) / 800);
		text-align: center;
		line-height: 1;
		background: rgba(255, 255, 255, 0.8549019608);
		transform: translateX(-50%);
	}
	.page-main .staff-box .staff-pic .name .small {
		font-size: calc(11 * min(100vw, 800px) / 800);
	}
	.page-main .staff-pic {
		margin: calc(40 * min(100vw, 800px) / 800) auto 0;
		width: 100%;
		max-width: 800px;
	}
	.page-main .clinic-info {
		margin: calc(40 * min(100vw, 900px) / 900) auto 0;
		width: 90%;
		max-width: 900px;
		display: flex;
		flex-wrap: wrap;
		align-items: stretch;
		justify-content: space-between;
	}
	.page-main .clinic-info dt {
		padding: calc(20 * min(100vw, 900px) / 900) 0;
		width: calc(220 * min(100vw, 900px) / 900);
		color: #44372b;
		font-size: calc(22 * min(100vw, 900px) / 900);
		font-weight: 700;
		text-align: center;
	}
	.page-main .clinic-info dd {
		padding: calc(20 * min(100vw, 900px) / 900) 0;
		width: calc(100% - 220 * min(100vw, 900px) / 900);
		font-size: calc(22 * min(100vw, 900px) / 900);
		font-weight: 500;
	}
	.page-main .clinic-info dt:not(:nth-of-type(1)),
	.page-main .clinic-info dd:not(:nth-of-type(1)) {
		border-top: 1px solid #bdbdbd;
	}
	.page-main .clinic-info .no-holiday {
		display: inline-block;
		margin: 0 0 0 1em;
		padding: 0.4em 1em;
		color: #fff;
		font-size: calc(17 * min(100vw, 900px) / 900);
		text-align: center;
		line-height: 1;
		background: #44372b;
		border-radius: 2em;
	}
}
@media (width >= 768px) {
	.page-main
		:is(input[type='text'], input[type='number'], input[type='tel']):focus {
		outline: 2px solid #000;
	}
	.page-main .common-list {
		margin: calc(16 * min(100vw, 1000px) / 1000) auto;
		padding: 0;
		width: 100%;
		max-width: 1000px;
		list-style: none;
	}
	.page-main .common-list li {
		position: relative;
		margin: 0.5em 0;
		padding: 0 0 0 1.2em;
		width: 100%;
		font-size: calc(18 * min(100vw, 540px) / 540);
		list-style: none;
	}
	.page-main .common-list li::before {
		position: absolute;
		content: '';
		top: 0.6em;
		left: 0;
		width: 0.4em;
		height: 0.4em;
		background: #44372b;
		border-radius: 0.2em;
	}
	.page-main p.bg-main-color {
		margin: calc(40 * min(100vw, 1000px) / 1000) 0 0;
		padding: 1em 3em;
		width: 100%;
		font-size: calc(18 * min(100vw, 1000px) / 1000);
		font-weight: 700;
		background: #f2f9f8;
	}
	.page-main h4 {
		margin: 1em 0 0.5em;
		font-size: calc(22 * min(100vw, 1100px) / 1100);
		padding: 0 0 0.2em calc(30 * min(100vw, 1100px) / 1100);
	}
	.movie {
		padding: calc(40 * min(100vw, 1000px) / 1000) 0;
		background: #fff;
	}
	.movie iframe {
		display: block;
		margin: 0 auto;
		width: 100%;
		max-width: 680px;
		aspect-ratio: 1440/781;
	}
	.contact {
		padding: min(80px, 5vw) 0 min(40px, 2.5vw);
	}
	.contact strong {
		margin: 0 auto;
		padding: 0 0 0.5em;
		width: 100%;
		max-width: 1000px;
		color: var(--color-point);
		font-size: min(40px, 2.5vw);
		font-weight: 500;
		text-align: center;
		border-bottom: 1px solid #b7b7b7;
		display: block;
	}
	.contact .catch {
		margin: 1em 0;
		font-size: min(24px, 1.5vw);
		text-align: center;
	}
	.contact .btns {
		margin: min(20px, 1.25vw) auto;
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 0 min(80px, 5vw);
	}
	.contact .btns .common-btn {
		width: 50%;
		max-width: 500px;
		height: 112px;
		font-size: min(30px, 1.875vw);
	}
	.contact .logo {
		margin: min(60px, 3.75vw) auto;
		width: 80%;
		max-width: 393px;
	}
	.contact .info {
		margin: min(20px, 1.25vw) auto;
		width: 90%;
		max-width: 1200px;
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 0 min(40px, 2.5vw);
	}
	.contact .info .left {
		width: 50%;
	}
	.contact .info .left dl {
		padding: min(10px, 0.83vw) 0;
		display: flex;
		align-items: center;
		justify-content: space-between;
	}
	.contact .info .left dl + dl {
		border-top: 1px solid #ccc;
	}
	.contact .info .left dl dt {
		width: min(100px, 8.33vw);
		color: #44372b;
		font-size: min(20px, 1.67vw);
		font-weight: 500;
		text-align: center;
	}
	.contact .info .left dl dd {
		padding: 0 0 0 1em;
		width: calc(100% - min(100px, 8.33vw));
		font-size: min(20px, 1.67vw);
		font-weight: 500;
		text-align: left;
	}
	.contact .info .left dl dd .small {
		font-size: min(16px, 1.33vw);
	}
	.contact .info .right {
		width: 50%;
	}
	.contact .map {
		margin: min(40px, 2.5vw) auto 0;
		width: 100%;
		max-width: 1000px;
	}
	.contact .map iframe {
		display: block;
		width: 100%;
		aspect-ratio: 16/9;
		border: 0;
	}

	footer .fixed-bottom {
		display: none;
	}
}
@keyframes ws-slider {
	0% {
		transform: translateX(0%);
	}
	100% {
		transform: translateX(calc(-100% * var(--slides-max) / var(--slides-num)));
	}
}
.price-list dt,
.price-list dd {
	border-bottom: 1px solid #ddd;
	padding-bottom: 5px;
}

/*アーカイブ*/
.archive-wrap {
	margin: calc(40 * min(100vw, 1200px) / 1200) auto;
	width: 96%;
	max-width: 1200px;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	flex-wrap: wrap;
}
.archive-wrap aside {
	margin: 0;
	width: 300px;
}
.archive-wrap .archive-main {
	margin: 0;
	width: calc(100% - 320px);
}

aside h2 {
	margin: 0 auto;
	padding: 0;
	width: 100%;
	color: #2d1b00;
	font-size: calc(25 * min(100vw, 1100px) / 1100);
	font-family: var(--font-mincho);
	font-weight: 500;
	text-align: left;
	color: #44372b;
}
aside .archive-monthly li {
	margin: 0.5em 0;
	color: #2d1b00;
	font-size: 16px;
	font-family: var(--font-mincho);
	font-weight: 500;
	text-align: left;
}

.archive-main h2 {
	margin: 0 auto;
	padding: 0;
	width: 100%;
	max-width: 1100px;
	color: #2d1b00;
	font-size: calc(25 * min(100vw, 1100px) / 1100);
	font-family: var(--font-mincho);
	font-weight: 500;
	text-align: left;
	margin-bottom: 20px;
	color: #44372b;
}
.archive-main .categories .list {
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-start;
	gap: 8px 8px;
	margin-bottom: 40px;
}
.archive-main .categories .list a {
	display: block;
	margin: 0 0.5em 0 0;
	padding: 0.2em 1em;
	font-size: 0.8rem;
	background: #f8f8f8;
	white-space: nowrap;
}
.archive-main .archive-list {
	margin: calc(40 * min(100vw, 1100px) / 1100) auto;
	width: 100%;
	max-width: 1100px;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: calc(40 * min(100vw, 1100px) / 1100) calc(20 * min(100vw, 1100px) / 1100);
}
.archive-main .archive-list .archive-item {
	/* width: calc((100% - (40 * min(100vw, 1100px) / 1100)) / 2.0); */
	width: 100%;
	display: grid;
	grid-template-rows: subgrid;
	grid-row: span 6;
	gap: 0;
}
.archive-main .archive-list .archive-item .pic {
	width: 100%;
	aspect-ratio: 16/9;
}
.archive-main .archive-list .archive-item .pic img {
	width: 100%;
	height: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}

.archive-item h3 {
	margin: 1em 0 0.5em;
	padding: 0.8em 0.8em;
	color: #333;
	font-size: calc(18 * min(100vw, 1100px) / 1100);
	font-weight: 700;
	border-left: 8px solid #44372b;
}

.cats,
.archive-main .archive-list .archive-item .cats {
	margin: calc(20 * min(100vw, 1100px) / 1100) 0
		calc(10 * min(100vw, 1100px) / 1100);
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	justify-content: flex-start;
	gap: calc(4 * min(100vw, 1100px) / 1100);
}

.cats .cat {
	padding: 0.1em 1em;
	color: #44372b;
	font-size: calc(16 * min(100vw, 1100px) / 1100);
	background: #fff;
	border: 1px solid #44372b;
}

.archive-main .archive-list .archive-item .cats .cat {
	padding: 0.1em 1em;
	color: #44372b;
	font-size: calc(16 * min(100vw, 1100px) / 1100);
	background: #fff;
	border: 1px solid #44372b;
}
.archive-main .archive-list .archive-item .date {
	margin: 0.2em 0 0.5em;
	color: #44372b;
	font-size: calc(16 * min(100vw, 1100px) / 1100);
	font-weight: 600;
}
.archive-main .archive-list .archive-item p {
	margin: 0.5em 0;
	color: #333;
	font-size: calc(16 * min(100vw, 1100px) / 1100);
}
.archive-main .archive-list .archive-item .archive-detail {
	position: relative;
	display: block;
	margin: 1em auto;
	padding: 1em 0;
	width: 90%;
	max-width: 280px;
	color: #fff;
	font-size: calc(15 * min(100vw, 1100px) / 1100);
	font-weight: 600;
	text-align: center;
	background: #44372b;
	border: 0;
	border-radius: 4em;
}
.archive-main .archive-list .archive-item .archive-detail::after {
	position: absolute;
	content: '';
	top: 50%;
	right: 10%;
	width: 0.6em;
	aspect-ratio: 1/1;
	border-right: 2px solid #fff;
	border-bottom: 2px solid #fff;
	transform: translateY(-50%) rotate(-45deg);
}

.archive-item .txt {
	width: 100%;
	overflow: hidden;
	display: -webkit-box;
	text-overflow: ellipsis;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	/* ブラウザがサポートしていない場合のフェールセーフ */
	max-height: 74px;
}

/*ヘッダー*/
.page-top {
	position: relative;
}
.page-top .page-logo {
	margin-left: 50px;
	padding: 50px 0;
}
.page-top .page-logo a {
	width: 150px;
	display: block;
}
.page-top .page-title-img {
	width: 70%;
	position: absolute;
	top: 0;
	right: 0;
	aspect-ratio: 1/0.4;
}
.page-top .page-title-img img {
	-o-object-fit: cover;
	object-fit: cover;
	height: 100%;
}
.page-top .page-title-box {
	background-color: #eeeeee;
	padding: 100px;
	padding-left: 50px;
	display: inline-block;
	box-sizing: border-box;
	width: 70%;
}

@media screen and (max-width: 540px) {
	.page-top .page-title-img {
		top: 90px;
	}
}
@media screen and (max-width: 540px) {
	.page-top .page-title-box {
		position: absolute;
		top: 90px;
		background-color: rgba(238, 238, 238, 0.5);
	}
}
@media screen and (max-width: 1200px) {
	.page-top .page-title-box {
		padding: 60px;
	}
}
@media screen and (max-width: 840px) {
	.page-top .page-title-box {
		width: 100%;
		padding: 20px;
	}
	.page-top .page-title-box .page-sub {
		font-size: 50px !important;
		margin-bottom: 0 !important;
	}
	.page-top .page-title-box .page-title {
		font-size: 22px !important;
	}
}
.page-nav {
	background-color: #fff;
	transition: opacity 0.5s ease, visibility 0.5s ease;
	position: sticky;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 100;
}

@media screen and (max-width: 540px) {
	.page-nav {
		display: none;
	}
}
.page-top .page-title-box .page-sub {
	font-size: 140px;
	opacity: 0.3;
	margin: 0;
	margin-bottom: 30px;
}
.page-top .page-title-box .page-title {
	font-size: 60px;
	color: #44372b;
	text-shadow: 3px 3px 3px #ccc;
}

@media screen and (max-width: 1200px) {
	.page-top .page-title-box .page-sub {
		font-size: 100px;
	}
}
@media screen and (max-width: 1200px) {
	.page-top .page-title-box .page-title {
		font-size: 40px;
	}
}
.page-nav {
	background-color: #fff;
	transition: opacity 0.5s ease, visibility 0.5s ease;
	position: sticky;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 100;
}
.page-nav ul {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: min(3.214vw, 45px);
	padding: 0;
	margin: 0;
}
.page-nav li {
	position: relative;
}
.page-nav ul li a {
	color: #515150;
	font-size: min(1.428vw, 20px);
	font-family: 'Noto Sans JP', serif;
	transition: 0.3s;
}

.site-map {
	padding: 30px 0;
	margin-bottom: 100px;
}
.site-map a {
	color: #ccc;
	font-size: 20px;
	transition: 0.3s;
}
.site-map p {
	color: #ccc;
	font-size: 20px;
	display: inline;
}

@media screen and (min-width: 1024px) {
	.header_pc {
		width: 100%;
		position: fixed;
		top: 0;
		left: 0;
		z-index: 100;
		transition: 0.2s;
		background: linear-gradient(
			to bottom,
			rgba(0, 0, 0, 0.7),
			rgba(0, 0, 0, 0)
		);
	}
}
@media screen and (min-width: 1024px) {
	.header_pc .header_logo {
		margin: 20px 0 0 20px;
		transition: 0.2s;
		width: 200px;
	}
}
@media screen and (min-width: 1024px) {
	.header_pc nav {
		letter-spacing: 1px;
		float: right;
		padding: 15px 10px 50px 0;
		transition: 0.2s;
	}
}
@media screen and (min-width: 1024px) {
	.header_pc nav ul {
		display: flex;
		justify-content: center;
		gap: 10px;
	}
}
@media screen and (min-width: 1024px) {
	.header_pc nav ul li {
		flex: auto;
		-webkit-flex: auto;
		text-align: center;
		position: relative;
		padding-right: 8px;
		font-size: 16px;
	}
}
@media screen and (min-width: 1024px) {
	.header_pc nav ul li:first-child {
		border-left: none;
	}
}
@media screen and (min-width: 1024px) {
	.header_pc nav ul li a {
		color: #fff;
	}
}
@media screen and (min-width: 1024px) {
	.header_pc nav ul li:after {
		content: '/';
		color: #fff;
		position: absolute;
		display: inline-block;
		right: -10px;
		transform: translateX(-50%);
		opacity: 0.5;
	}
}
#sub_mv {
	position: relative;
	width: 100%;
	height: 350px;
	background: url(images/header-back.webp) no-repeat center center;
	background-size: cover;
	padding: 130px 0 0 0;
}
#sub_mv h1 {
	font-family: dnp-shuei-mincho-pr6, sans-serif;
	text-align: center;
	letter-spacing: 10px;
	color: #fff;
	font-size: 43px;
	margin-top: 22px;
	line-height: 1.2;
}

@media screen and (min-width: 1024px) and (max-width: 1440px) {
	#sub_mv h1 {
		font-size: 30px;
		margin-top: 60px;
		letter-spacing: 0;
		line-height: 1.5;
	}
}
#header {
	position: relative;
	z-index: 100;
}
.header__h1 {
	display: none !important;
}

/*	pc_gnav
------------------------*/
@media (width > 840px) {
	.header__sp {
		display: none;
	}
	.header__pc {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100px;
		background: #fff;
	}
	.header__pc .inner {
		display: flex;
		justify-content: space-between;
		align-items: center;
		gap: 1vw;
		max-width: 100%;
		height: 100%;
		padding: 20px;
		margin: 0 auto;
	}
	.header__pc .content_L {
		flex-basis: 20%;
		max-width: 250px;
	}
	.header__pc .content_R {
		flex: 1;
	}
	.p_globalNav {
		position: relative;
		z-index: 1;
	}
	.p_globalNav__list {
		position: relative;
		display: flex;
		justify-content: flex-end;
		align-items: center;
		gap: min(1.5vw, 2em);
		margin: 0;
		z-index: 1;
	}

	.p_globalNav__list > li {
		width: fit-content;
		padding: 0;
		position: relative;
	}

	.p_globalNav__list > li > a {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 10px;
		font-size: min(1.25vw, 18px);
		font-weight: var(--font-weight-medium);
		line-height: 1;
		text-align: center;
		color: #231f1b;
		transition: all 0.3s linear;
		position: relative;
		z-index: 2;
	}

	.p_globalNav__list > li > a:hover {
		color: var(--color-point);
		opacity: 1;
	}

	.p_globalNav__list > li > a:after {
		position: absolute;
		content: '';
		width: 0;
		height: 1px;
		margin: 0 10%;
		bottom: -0.15em;
		border-radius: 10px;
		transition: all 0.3s;
		background: var(--color-point);
	}

	.p_globalNav__list > li > a:hover::after {
		width: 100%;
	}
	.p_globalNav__list > li > a img {
		width: auto;
		object-fit: contain;
	}
	.p_globalNav__list > li > a span {
		font-size: min(3vw, 13px);
		font-weight: var(--font-weight-medium);
		font-family: var(--font-family-Sans);
		line-height: 1;
	}

	/* ▼ ホバー中、他メニューを下げて半透明に ▼ */
	.p_globalNav__list:hover > li > a {
		opacity: 0.5;
		z-index: 1;
	}
	.p_globalNav__list:hover > li > a:hover {
		opacity: 1;
	}
	.p_globalNav__list .menu-parent:hover > a {
		opacity: 1;
		z-index: 10;
	}

	/* ▼ サブメニュー ▼ */
	.p_globalNav__list .menu-parent {
		position: inherit;
	}

	.p_globalNav__list .menu-parent__child-wrap {
		position: fixed;
		top: 100px; /* ← ヘッダーの高さに合わせて調整 */
		left: 0;
		width: 100vw;
		background: rgba(255, 255, 255, 0.8);
		opacity: 0;
		visibility: hidden;
		transform: translateY(-10px);
		transition: all 0.3s ease;
		z-index: 100;
	}

	.p_globalNav__list .menu-parent:hover .menu-parent__child-wrap {
		opacity: 1;
		visibility: visible;
		transform: translateY(50%, 0);
	}

	.p_globalNav__list .menu-parent__child-wrap .inner {
		width: 100%;
		max-width: 100%;
		padding: 5% 10%;
		margin: 0 auto;
		display: flex;
		justify-content: space-between;
		align-items: flex-start;
		gap: min(5vw, 207px);
	}

	.p_globalNav__list .menu-parent__child {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 1em;
		margin: 0;
		width: 100%;
	}
	.p_globalNav__list .menu-parent__child.col1 {
		grid-template-columns: repeat(1, 1fr);
	}

	.p_globalNav__list .menu-parent__child li a {
		position: relative;
		font-size: min(1.75vw, 20px);
		font-weight: var(--font-weight-medium);
		padding-left: 1.5em;
		color: var(--color-point);
		transition: color 0.2s ease;
	}

	.p_globalNav__list .menu-parent__child li a::before {
		content: '';
		position: absolute;
		top: 0.5em;
		left: 0.5em;
		display: block;
		width: 0.5em;
		height: 0.5em;
		border-top: 1px solid var(--color-point);
		border-right: 1px solid var(--color-point);
		transform: rotate(45deg);
	}

	.p_globalNav__list .menu-parent__child li a:hover {
		color: var(--color-point);
		text-decoration: underline;
	}

	/* サブメニューコンテンツ */
	.menu-parent__child-wrap .content_L {
		flex-basis: 30%;
		font-size: min(3vw, 35px);
		font-weight: var(--font-weight-medium);
		font-family: var(--font-mincho);
		letter-spacing: 0;
		line-height: 1;
		color: var(--color-point);
	}
	.menu-parent__child-wrap .content_R {
		flex: 1;
	}
}

@media (width < 841px) {
	.wrap {
		margin-top: max(var(--header-height-sp), 18vw);
	}
	.header__pc {
		display: none !important;
	}
	.header__sp {
		position: fixed;
		top: 0;
		right: 0;
		display: grid;
		grid-template-columns: 50% auto;
		justify-items: end;
		align-items: center;
		width: 100%;
		min-height: 65px;
		padding: 5vw 5vw;
		background: #fff;
		z-index: 10;
	}
	.header__sp .content_L {
		position: relative;
		z-index: 102;
	}

	/*	p_hamburgerBtn
	------------------------*/
	.p_hamburgerBtn {
		position: relative;
		top: 0;
		right: 0;
		display: block;
		width: max(56px, 10vw);
		height: max(56px, 10vw);
		background: #fff;
		border-radius: 100%;
		text-align: center;
		cursor: pointer;
		z-index: 101;
	}
	.p_hamburgerBtn span {
		display: block;
		position: absolute;
		width: 40%;
		border-bottom: solid min(0.3vw, 3px) var(--color-main);
		-webkit-transition: 0.35s ease-in-out;
		-moz-transition: 0.35s ease-in-out;
		transition: 0.35s ease-in-out;
		left: 30%;
	}
	.p_hamburgerBtn span:nth-child(1) {
		top: 35%;
	}
	.p_hamburgerBtn span:nth-child(2) {
		top: 50%;
	}
	.p_hamburgerBtn span:nth-child(3) {
		top: 65%;
	}
	.p_hamburgerBtn.active {
		background: none;
	}
	.p_hamburgerBtn.active span,
	.p_hamburgerBtn.active span:nth-child(4)::after {
		color: var(--color-main);
	}
	.p_hamburgerBtn.active span:nth-child(1) {
		top: 48%;
		-webkit-transform: rotate(315deg);
		-moz-transform: rotate(315deg);
		transform: rotate(315deg);
	}

	.p_hamburgerBtn.active span:nth-child(2),
	.p_hamburgerBtn.active span:nth-child(3) {
		top: 48%;
		-webkit-transform: rotate(45deg);
		-moz-transform: rotate(45deg);
		transform: rotate(45deg);
	}
	.p_hamburgerBtn.active span:nth-child(4)::after {
		content: 'CLOSE';
	}
}

/* title-visual */
#title-visual {
	background: #9b916d
		url(https://ryogokudental.com/wp-content/themes/ryogoku-dc/images/common/bg-title-visual.webp)
		no-repeat center/cover;
	color: #fff;
	height: 358px;
	display: flex;
	align-items: center;
	position: absolute;
	top: 0;
	width: 100%;
}
.c-inner {
	width: 100%;
	max-width: calc(1200px + 6%);
	margin: 0 auto;
	padding-left: 3%;
	padding-right: 3%;
}
#title-visual .c-inner {
	padding: 50px 0;
	text-align: center;
}
#title-visual .title {
	font-size: min(6vw, 45px);
	font-weight: normal;
	color: #fff;
	letter-spacing: 0.1em;
}

/*フッター*/
footer .inner {
	max-width: calc(1040px + 6%);
	padding-top: 100px;
	padding-left: 3%;
	padding-right: 3%;
	margin: 0 auto;
}
footer .footer-flex {
	display: flex;
	gap: min(15vw, 118px);
}
footer .footer-flex .footer_L {
	flex-basis: 55%;
}
footer .footer-flex .footer_R {
	flex-basis: 45%;
}
footer .copyright {
	font-size: 14px;
	font-family: var(--font-mincho);
	font-weight: var(--font-weight-regular);
	color: #fff;
	text-align: center;
	padding: 16px;
	background: #49433e;
}

/* フッターテンプレート */

.footer1 {
	padding: 10px;
	background-image: url(images/footer-back.webp);
	background-size: cover;
	background-repeat: no-repeat;
	padding-top: 100px;
}
.footer1 .links-flex {
	margin: 0 auto;
	width: 90%;
	max-width: 1200px;
	display: flex;
	align-items: flex-start;
	justify-content: center;
}
.footer1 .links-flex .link {
	width: 18%;
	display: flex;
	flex-direction: column;
	gap: min(8px, 0.5vw) 0;
}
.footer1 .footer-text {
	margin: 0 auto;
	width: 90%;
	max-width: 1200px;
}
.footer1 .footer-text p {
	font-size: 12px;
}
.footer1 .links-flex .btns {
	width: 316px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	gap: min(40px, 2.4vw) 0;
}

.common-btn {
	color: #fff;
	font-size: min(24px, 2vw);
	line-height: 1;
	background: var(--color-point);
	display: flex;
	align-items: center;
	justify-content: center;
}
.footer1 .common-btn {
	width: 320px;
	height: 94px;
}

.common-btn.web {
	background: var(--color-point);
}
.common-btn.web::before {
	content: '';
	margin: 0 0.4em 0 0;
	width: 1.25em;
	height: 1em;
	background: url(images/pc.webp) no-repeat center/contain;
}
.common-btn.tel {
	color: var(--color-point);
	background: #fff;
}
.common-btn.tel::before {
	content: '';
	position: relative;
	top: -0.5em;
	margin: 0 0.1em 0 0;
	width: 1em;
	height: 1em;
	background: url(images/tel.webp) no-repeat center/contain;
}
.common-btn.line {
	font-size: min(4vw, 27px);
	font-weight: var(--font-weight-bold);
	background: #00b800;
}
.common-btn.line::before {
	content: '';
	margin: 0 0.4em 0 0;
	width: 1.5em;
	height: 1.5em;
	background: url(images/line.webp) no-repeat center/contain;
}

.footer2 {
	padding: min(5.2vw, 100px) min(5.2vw, 100px) min(6.25vw, 120px) 3vw;
	background: #bfcfea;
}
.footer2 .menu {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	width: 100%;
	max-width: min(89.58vw, 1720px);
	margin: auto;
}
.footer2 .menu .inner {
	width: calc((100% - min(28.65vw, 550px)) / 3);
	margin-bottom: min(3.39vw, 65px);
}
.footer2 .menu .inner ul {
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 14px;
}
.footer2 .menu .inner li {
	position: relative;
	padding-left: 1em;
}
.footer2 .menu .inner li::before {
	content: '・';
	position: absolute;
	left: 0;
	top: 0;
}
.footer2 .description {
	width: 100%;
	max-width: min(89.58vw, 1720px);
	margin: auto;
	font-size: min(1.09vw, 21px);
}
.footer2 small {
	display: block;
	margin-top: min(2.34vw, 45px);
	font-size: min(1.35vw, 26px);
	text-align: center;
}
.footer2 .menu .inner h2 {
	margin: 0 0 min(0.78vw, 15px) 0;
	color: #005d8c;
	font-size: 18px;
	font-weight: 500;
}
.footer2 .btn_web {
	display: block;
	width: 100%;
	margin-bottom: min(1.56vw, 30px);
	padding: min(0.52vw, 10px);
	color: #fff;
	font-size: 26px;
	font-family: 'Noto Sans JP', sans-serif;
	letter-spacing: 0.2em;
	text-align: center;
	background: linear-gradient(
		180deg,
		rgb(134, 200, 160) 0%,
		rgb(1, 156, 116) 100%
	);
	border-radius: min(1.04vw, 20px);
}
.footer2 .btn_web span {
	display: inline-block;
	padding-left: min(5.2vw, 100px);
	background: url(images/pc.webp) no-repeat left center/30px auto;
}
.footer2 .btn_tel {
	display: block;
	width: 100%;
	margin-bottom: min(1.56vw, 30px);
	padding: min(0.52vw, 10px);
	color: #fff;
	font-size: 26px;
	font-family: 'Noto Sans JP', sans-serif;
	letter-spacing: 0.2em;
	text-align: center;
	background: linear-gradient(
		180deg,
		rgb(74, 140, 202) 0%,
		rgb(1, 93, 140) 100%
	);
	border-radius: min(1.04vw, 20px);
}
.footer2 .btn_tel span {
	display: inline-block;
	padding-left: min(4.69vw, 90px);
	background: url(images/tel.webp) no-repeat left center/17px auto;
}

/*料金表*/
.pricing_sheet {
	width: 100%;
	max-width: 900px;
	margin: 30px auto 0;
	table-layout: fixed;
	border-collapse: collapse;
	border-top: 1px solid #555;
	border-left: 1px solid #555;
}
.pricing_sheet th,
.pricing_sheet td {
	padding: 10px;
	border-right: 1px solid #555;
	border-bottom: 1px solid #555;
	font-size: 16px;
}
.pricing_sheet th {
	background: var(--color-point);
	color: #fff;
	font-size: 18px;
}
.pricing_sheet td.subth {
	background: #faf9f6;
	font-weight: bold;
	text-align: center;
}
.pricing_sheet tr td:nth-of-type(2) {
	text-align: center;
}

@media screen and (min-width: 768px) {
	.pricing_sheet {
		margin: 45px auto 0;
	}
}
@media screen and (min-width: 768px) {
	.pricing_sheet th {
		padding: 1.25% 20px;
	}
}
@media screen and (min-width: 768px) {
	.pricing_sheet td {
		padding: 1% 20px;
	}
}
/*2カラム（サイドメニュー）*/
#column2 {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	width: min(100%, 1440px);
	margin: 0 auto;
	padding: min(1.04vw, 20px) min(4.17vw, 80px);
}
#column2 aside {
	width: min(16.15vw, 310px);
	margin-top: min(2.34vw, 45px);
	margin-right: min(4.17vw, 80px);
}
#column2 main {
	flex: 1;
	max-width: calc(100% - min(16.15vw, 310px) - min(4.17vw, 80px));
}
#column2 aside .title {
	margin-bottom: min(0.78vw, 15px);
	padding: 0 0 min(0.78vw, 15px) min(2.08vw, 40px);
	color: #01650f;
	font-size: min(1.3vw, 25px);
	font-weight: 500;
	border-bottom: 2px solid #44372b;
}
#column2 aside .menu {
	margin: 0 0 min(7.03vw, 135px) 0;
	padding: 0;
	list-style: none;
}
#column2 aside .menu li {
	border-bottom: 1px solid #44372b;
}
#column2 aside .menu li a {
	display: block;
	padding: min(0.52vw, 10px) 0 min(0.52vw, 10px) min(2.08vw, 40px);
	color: #545454;
	font-size: min(0.94vw, 18px);
}

.pricelist {
	width: 100%;
	margin: 40px auto;
	border: 3px solid #44372b;
	max-width: 1000px;
}
.pricelist .tit {
	margin: 0;
	padding: 15px;
	font-size: 30px;
	font-weight: 500;
	text-align: center;
	background: #44372b;
	color: #fff;
}
.pricelist .inbox {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: flex-start;
	margin: 20px 0 40px;
	padding: 0 60px;
}
.pricelist .inbox .subtit {
	margin: 0.8em 10px 0 0;
	width: 200px;
	font-size: 18px;
	font-weight: 500;
	line-height: 1.4;
}
.pricelist .inbox .price_table {
	border-collapse: collapse;
	flex: 1;
	max-width: calc(100% - 200px);
}
.pricelist .inbox .price_table th,
.pricelist .inbox .price_table td {
	padding: 10px 0;
	font-weight: 400;
	text-align: left;
	vertical-align: text-top;
}
.pricelist .inbox .price_table .price {
	text-align: right;
	white-space: nowrap;
}
.pricelist .inbox .price_table tr:not(:last-child) {
	border-bottom: 1px solid #3fa1a8;
}

main {
	padding-top: 94px; /* header fixed */
}
#main {
	width: 100%;
	max-width: 1000px;
	margin: 0 auto;
	display: flex;
	flex-flow: row wrap;
	justify-content: space-evenly;
}

#contents {
	margin-bottom: 40px;
}

@media screen and (min-width: 1024px) {
	#contents {
		width: 730px;
	}
}
.clearfix {
	min-height: 1px;
}

#main .paragraph {
	margin-bottom: 10px;
}

#contents .paragraph p {
	margin-bottom: 15px;
	line-height: 1.5;
	text-align: justify;
	font-size: 14px;
}

.column_golinkbox.reserve {
	margin-top: 2rem;
}
.column_golinkbox a {
	display: block;
}
.column_golinkbox.reserve a {
	width: 100%;
	height: auto;
}

@media screen and (min-width: 769px) {
	.column_golinkbox.reserve a {
		padding-top: 24.65%;
		background: url(http://teigeki-dental.com/wp-content/uploads/2024/03/article-reservation-bnr.png)
			no-repeat;
		background-size: cover;
	}
}
#column_contents #column_table_of_contents {
	padding: 2rem;
	margin-top: 4rem;
	background: rgba(152, 131, 98, 0.1);
	border-radius: 1rem;
}
#column_contents a,
#column_contents li,
#column_contents p,
#column_contents span {
	word-break: break-all;
}
#column_contents #column_table_of_contents div span {
	font-size: 1.2rem;
	font-weight: bold;
	color: #44372b;
}

#contents ul {
	margin: 10px 0;
}

#column_contents ol {
	padding: 2rem;
	background: #f5f5f5;
}
#column_contents ul {
	padding: 2rem;
	background: #f5f5f5;
	list-style: disc;
}
#column_contents ol:nth-child(n + 2),
#column_contents ul:nth-child(n + 2) {
	margin-top: 2rem;
}
#column_contents #column_table_of_contents #toclist {
	display: block;
	padding: 0;
	margin: 1rem 0 0;
	background: none;
}
#column_contents ol li,
#column_contents ul li {
	line-height: 2;
}

@media screen and (min-width: 1024px) {
	nav ul,
	li {
		/* margin: 0 4px !important; */
	}
}
#column_table_of_contents #toclist li {
	position: relative;
	padding-left: 1rem;
	list-style: none;
	line-height: 1.6;
}

#column_contents #column_table_of_contents #toclist li:before {
	position: absolute;
	top: 0;
	left: 0;
	content: '・';
}
#column_contents #column_table_of_contents #toclist li a {
	display: block;
	font-weight: bold;
	color: #555;
	text-decoration: none;
}
#column_contents #column_table_of_contents #toclist li ul {
	padding: 0.5rem 0;
	margin: 0;
	background: none;
}
#column_contents #column_table_of_contents #toclist li ul li {
	list-style: none;
}
#column_contents #column_table_of_contents #toclist li ul li:before {
	content: '';
	display: block;
	width: 0.4rem;
	height: 0.7rem;
	border-left: 2px solid #333;
	border-bottom: 2px solid #333;
}
#column_contents #column_table_of_contents #toclist li:nth-child(n + 2) {
	margin-top: 0.5rem;
}

#contents h2 {
	font-family: dnp-shuei-mincho-pr6, sans-serif;
	width: 100%;
	font-size: 27px;
	line-height: 40px;
	letter-spacing: 2px;
	display: block;
	margin: 40px 0 20px 0;
	padding: 10px 0 15px 0;
	border-top: 1px #44372b solid;
	border-bottom: 1px #44372b solid;
}

#column_contents img,
#contents .paragraph img {
	max-width: 100%;
	height: auto;
}

#column_contents img.aligncenter {
	display: block;
	margin: auto;
}

#contents b {
	background-color: #e0fff2;
	font-weight: normal;
}
#contents h3 {
	font-family: dnp-shuei-mincho-pr6, sans-serif;
	border-left: 6px solid #44372b;
	font-size: 27px;
	padding: 0 0 7px 12px;
	letter-spacing: 1px;
	margin: 35px 0 20px 0;
	line-height: 35px;
}
#contents h4 {
	color: #44372b;
	font-size: 21px;
	letter-spacing: 3px;
	margin: 30px 0 20px 0;
	font-weight: bold;
}

#column_contents p a,
#column_contents p span,
#column_contents p strong {
	font-size: 100%;
}

#contents table {
	border-collapse: collapse;
	border-spacing: 0;
	border-collapse: collapse;
	width: 100%;
	margin: 20px 0 15px 0;
	background: #fff;
	font-size: 13px;
}
#contents table td,
#contents table th {
	font-weight: normal;
}
#contents table td {
	border-top: 1px solid #c6baa7 !important;
	border: 1px solid #c6baa7;
	text-align: left;
	padding: 3px 6px;
}

@media screen and (min-width: 1024px) {
	#sidebar {
		width: 220px;
		margin-bottom: 50px;
		padding-top: 35px;
	}
	#sidebar .side_service {
		margin-bottom: 50px;
	}
	#sidebar .side_service h2 {
		font-family: dnp-shuei-mincho-pr6, sans-serif;
		font-size: 23px;
		letter-spacing: 4px;
		padding: 0 0 20px 0;
		color: #44372b;
	}
	#sidebar .side_service li {
		background: #eee;
		list-style: none;
		margin-bottom: 4px;
		letter-spacing: 1px;
	}
	#sidebar .side_service li a {
		display: block;
		padding: 10px 8px 8px 30px;
		background: url(../img/icon_arw.svg) no-repeat 8px center;
		background-size: 12px 12px;
		color: #000;
		font-size: 14px;
	}
}
.single-blog {
	display: flex;
	flex-flow: row wrap;
	justify-content: space-between;
}
.single-blog .cats {
	width: 100%;
}

@media screen and (max-width: 840px) {
	.header1 .inner {
		max-width: 1200px;
		width: 95%;
		margin: 110px auto 0;
	}
	.header1 .page-top .page-logo {
		margin-left: 20px;
		padding: 30px 0;
	}

	.footer1 {
		background-size: 150% 100%;
		height: auto;
		padding-bottom: 50px;
		/* padding-top: 70px; */
		background-position: center;
	}
	.footer1 .common-btn {
		font-size: 18px;
	}
	.footer1 .btns {
		display: none !important;
	}
	.footer1 .links-flex {
		flex-flow: row wrap;
		gap: 10px;
		margin-bottom: 10px;
	}
	.footer1 .links-flex .link {
		width: calc(50% - 5px);
		font-size: 15px;
	}

	.pricelist .tit {
		font-size: 20px;
	}
	.pricelist .inbox {
		padding: 10px;
		margin: 0;
	}
	.pricelist .inbox .subtit {
		width: 100%;
	}
	.pricelist .inbox .price_table {
		width: 100%;
		max-width: 100%;
	}
	.header2 nav {
		display: none;
	}
	.header2 h1 img {
		width: 160px;
	}
	.header2 #sub_mv {
		height: 180px;
		padding: 40px 0 0 0;
	}
	.header2 #sub_mv h1 {
		font-size: 26px;
	}
	.footer2 {
		height: auto;
	}
	.footer2 .menu .inner {
		width: 50%;
	}
	.footer2 .menu .inner h2 {
		font-size: 16px;
		margin-bottom: 10px;
	}
	.footer2 .menu .inner:nth-of-type(1) {
		order: 2;
		width: 100%;
	}
	.footer2 .menu .inner:nth-of-type(2) {
		order: 3;
	}
	.footer2 .menu .inner:nth-of-type(3) {
		order: 4;
		margin-top: -160px;
	}
	.footer2 .menu .inner:nth-of-type(4) {
		order: 1;
		width: 100%;
		display: flex;
		flex-flow: row;
		justify-content: space-between;
	}
	.footer2 .menu .inner:nth-of-type(4) [class*='btn_'] {
		width: 48%;
		font-size: 16px;
		padding: 11px;
	}
	.footer2 .menu .inner:nth-of-type(4) [class*='btn_'] span {
		background-size: contain;
		padding-left: 30px;
	}
	.footer2 .btn_web span,
	.footer2 .btn_tel span {
		padding-left: 50px;
	}
	.footer2 .description {
		font-size: 14px;
	}
	.header3 .h--guide,
	.header3 .header_R {
		display: none;
	}
	.header3 .header_L .h--logo {
		padding-top: 11px;
	}
	.header3 #title-visual {
		height: 168px;
		top: 80px;
	}
	.header3#header {
		background: none;
	}
}
/*spメニュー*/
.p_header_btn {
	text-align: center;
}

.e_menuBtn {
	border: none;
}

.p_header_btnTxt {
	color: #44372b;
	font-weight: bold;
	margin-top: 4px;
	font-size: 10px;
	text-align: center;
	font-family: '游ゴシック体', YuGothic, '游ゴシック Medium', 'Yu Gothic Medium',
		'游ゴシック', 'Yu Gothic', sans-serif;
}

.e_menuBtn_inner {
	width: 7.47vw;
	height: 5.33vw;
	cursor: pointer;
	position: relative;
}

.e_menuBtn_line {
	width: 100%;
	height: 0.53vw;
	position: absolute;
	background-color: #44372b;
	border-radius: 0.8vw;
	left: 0;
}
.e_menuBtn_line:nth-child(1) {
	top: 0vw;
	animation: top-span-close 0.4s forwards;
}
.e_menuBtn_line:nth-child(2) {
	top: 2.4vw;
	transition: 0.1s 0.2s ease-out opacity;
}
.e_menuBtn_line:nth-child(3) {
	top: 4.8vw;
	animation: bottom-span-close 0.4s forwards;
}

.e_menuBtn_inner::before {
	position: absolute;
	content: '';
	width: 1.5vw;
	height: 1.5vw;
	background: #333;
	display: block;
	left: calc(50% - 4px);
	top: calc(50% - 4px);
	box-shadow: -3vw 0 0 #333, 3vw 0 0 #333, -3vw -3vw 0 #333, 0 -3vw 0 #333,
		3vw -3vw 0 #333, -3vw 3vw 0 #333, 0 3vw 0 #333, 3vw 3vw 0 #333;
	z-index: -1;
}

.p_hamburgerNav_close {
	display: none;
	position: fixed;
	text-align: center;
	background: #333;
	z-index: 10001;
	top: 0;
	right: 0;
	padding: 20px 20px 0;
}
.p_hamburgerNav_close .e_menuBtn_line {
	background-color: #fff;
}
.p_hamburgerNav_close .e_menuBtn_line:nth-child(1) {
	top: 2.4vw;
	transform: rotate(45deg);
	animation: none;
}
.p_hamburgerNav_close .e_menuBtn_line:nth-child(2) {
	opacity: 0;
}
.p_hamburgerNav_close .e_menuBtn_line:nth-child(3) {
	top: 2.4vw;
	transform: rotate(-45deg);
	animation: none;
}
.p_hamburgerNav_close .p_header_btnTxt {
	color: #fff;
}

.p_hamburgerNav {
	transform: translateX(100%);
	position: fixed;
	top: 0;
	right: 0;
	width: 100%;
	height: 100%;
	overflow: auto;
	background: #fff;
	z-index: 10000;
	display: none;
	transition: all 0.3s ease;
	padding: 28.2vw 5.333vw 16vw;
}

@media screen and (max-width: 840px) {
	.p_hamburgerNav {
		display: block;
	}
}
.p_hamburgerNav_item {
	margin-bottom: 12vw;
}

.p_hamburgerNav_itemTtl {
	text-align: center;
	font-size: 5.333vw;
	color: #01650f;
	text-shadow: 3px 3px 2px #fff;
	margin-bottom: 6.666vw;
}

.b_hanburgerMenu {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0;
}
.b_hanburgerMenu .b_hanburgerMenu_item {
	padding: 1px;
}
.b_hanburgerMenu .b_hanburgerMenu_item a {
	border: 2px solid #44372b;
	border-radius: 10px;
	display: flex;
	flex-flow: column;
	align-items: center;
	padding: 9px 10px 5px;
	gap: 6px;
}
.b_hanburgerMenu .b_hanburgerMenu_item a img {
	width: 50px;
	height: auto;
}
.b_hanburgerMenu .b_hanburgerMenu_item a span {
	color: #44372b;
	font-size: 15px;
}

.p_hamburgerNav .p_contactTable {
	margin: 11vw auto;
}

.p_contactTable table {
	border: 1px solid #44372b;
	width: 100%;
}
.p_contactTable thead th,
.p_contactTable thead td {
	background: #44372b;
	color: #fff;
	text-align: center;
	font-size: 21px;
}

@media screen and (max-width: 840px) {
	.p_contactTable thead th,
	.p_contactTable thead td {
		font-size: 3.866vw;
	}
}
@media screen and (max-width: 840px) {
	.p_contactTable thead th {
		padding: 15px 10px;
	}
}
@media screen and (max-width: 840px) {
	.p_contactTable thead th,
	.p_contactTable thead td {
		font-size: 3.866vw;
	}
}
@media screen and (max-width: 840px) {
	.p_contactTable thead td {
		padding: 15px 5px;
	}
	.p_contactTable th,
	.p_contactTable td {
		height: 30px;
		vertical-align: middle;
		text-align: center;
		padding: 5px;
	}
}
.p_hamburgerBtn {
	width: 100%;
	height: 85px;
	background-color: #44372b;
	border-radius: 10px;
	font-size: 30px;
	text-align: center;
	margin-bottom: 5px;
}
.p_hamburgerBtn span {
	font-size: 15px;
	display: block;
}
.p_hamburgerBtn a {
	display: flex;
	flex-flow: column;
	align-items: center;
	justify-content: center;
	gap: 5px;
	height: 100%;
	color: #fff;
	vertical-align: middle;
	position: relative;
}
.p_hamburgerBtn a::before {
	content: '';
	background-image: url(images/tel.webp);
	background-repeat: no-repeat;
	background-size: contain;
	width: 30px;
	height: 30px;
	position: absolute;
	top: 44px;
	left: 40px;
}
.p_hamburgerBtn.webbtn a::before {
	background-image: url(images/pc.webp);
	left: 60px;
}

.p_hamburgerLink {
	display: flex;
	justify-content: space-between;
	margin-bottom: 8vw;
}
.p_hamburgerLink a {
	display: block;
	width: 49.5%;
	font-size: 30px;
	text-align: center;
	color: #44372b;
	padding: 10px 40px 10px 10px;
	border: 1px solid #44372b;
	border-radius: 5px;
	position: relative;
}
.p_hamburgerLink a span {
	font-size: 15px;
	display: block;
	margin-top: 5px;
}
.p_hamburgerLink a::after {
	content: '';
	width: 25px;
	height: 25px;
	background-image: url(images/sp-link-arrow.webp);
	background-repeat: no-repeat;
	background-size: contain;
	position: absolute;
	top: 50%;
	right: 15px;
	transform: translateY(-50%);
}

.sp_menu {
	position: fixed;
	top: 6vw;
	right: 20px;
	display: none;
}

@media screen and (max-width: 840px) {
	.sp_menu {
		display: block;
		z-index: 10000;
	}
}
.p_hamburgerNav_close.is_active {
	display: block;
}

.p_hamburgerNav.is_active {
	transform: translateX(0);
}

.case-wrap {
	display: flex;
	flex-flow: column;
	gap: 40px;
}

.case-item {
	padding: 30px;
	background-color: #f5f5f5;
	border-radius: 20px;
	margin-bottom: 30px;
}

@media screen and (max-width: 1024px) {
	#sidebar,
	.archive-wrap aside {
		width: 100%;
	}
	.archive-wrap .archive-main {
		width: 100%;
	}
	#main .paragraph,
	.single-blog .cats {
		width: 90%;
		margin: 10px auto;
	}
}
.case-slide {
	max-width: 850px;
	margin: 10px auto;
}

.case-wrap .title {
	background-color: #44372b;
	color: #fff;
	font-size: 22px;
	font-weight: bold;
	width: -moz-fit-content;
	width: fit-content;
	padding: 10px 30px;
	margin: 20px auto;
}
.case-wrap .img {
	display: flex;
	flex-flow: row;
	align-items: center;
	justify-content: center;
}
.case-wrap .img .case-img {
	width: 32%;
	line-height: 2;
	font-size: 22px;
	letter-spacing: 6px;
	text-align: center;
	font-weight: bold;
	color: #005d8c;
}
.case-wrap .img .case-img img {
	width: 100%;
	-o-object-fit: contain;
	object-fit: contain;
	height: 100%;
}
.case-wrap .img .arrow {
	width: 2%;
	position: relative;
}
.case-wrap .case-link {
	background-color: #fff;
	border: #44372b 2px solid;
	border-radius: 50px;
	font-weight: bold;
	width: -moz-fit-content;
	width: fit-content;
	display: block;
	text-align: center;
	padding: 10px 30px;
	margin: 20px auto;
}

.case_dl {
	display: flex;
	flex-flow: row wrap;
	margin-top: 20px;
}
.case_dl dt,
.case_dl dd {
	border-bottom: #44372b 1px solid;
	padding: 5px 0;
}
.case_dl dt {
	width: 100px;
	color: #005d8c;
}
.case_dl dd {
	width: calc(100% - 100px);
	padding-left: 20px;
	line-height: 1.5;
} /*# sourceMappingURL=style.css.map */

.p_clinicHoursTable {
}
.p_clinicHoursTable table {
	width: 100%;
}
.p_clinicHoursTable th,
.p_clinicHoursTable td {
	width: 10%;
	font-size: 18px;
	font-weight: var(--font-weight-regular);
	font-family: var(--font-mincho);
	letter-spacing: 0;
	line-height: 1;
	color: var(--color-point);
	text-align: center;
	vertical-align: middle;
	padding: 20px 0;
}
.p_clinicHoursTable thead th:first-child,
.p_clinicHoursTable tbody td:first-child {
	width: 160px;
	text-align: left;
}
.p_clinicHoursTable thead th {
	border-bottom: 1px solid;
	border-color: #978f7b;
	padding: 20px 0;
}
.p_clinicHoursTable tbody td {
	border-bottom: 1px solid;
	border-color: #978f7b;
}
.p_clinicHoursTable tbody tr:last-child td {
	border-bottom: 0;
}
.p_clinicHoursTable-btm {
	margin-top: 10px;
}
.p_clinicHoursTable-btm p {
	font-size: 18px;
	font-weight: var(--font-weight-regular);
	font-family: var(--font-mincho);
	color: var(--color-point);
	text-align: right;
	margin: 0;
}

/*=========================================
 Common
=========================================*/
.common-btn {
	font-size: min(4vw, 24px);
}
#sub_mv {
	display: flex;
	justify-content: center;
	align-items: center;
	height: 360px;
	padding: 0;
	margin-top: 100px;
}
#sub_mv .inner {
	max-width: calc(1200px + 10%);
	padding-right: 5%;
	padding-left: 5%;
}
#sub_mv .title {
	font-size: 40px;
	color: #fff;
	text-align: center;
	margin: 0;
}
#breadcrumbs {
	padding: 10px;
	font-size: 0.875rem;
}
#breadcrumbs .inner {
	width: 100%;
	max-width: calc(1200px);
	margin: 0 auto;
}
#breadcrumbs .inner > span:first-child a {
	color: var(--color-point);
}
#breadcrumbs span {
	display: inline-block;
	padding: 0;
	vertical-align: bottom;
	max-width: 700px;
	letter-spacing: 0.1em;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
#breadcrumbs a {
	color: var(--color-main);
}
#breadcrumbs a:hover {
	text-decoration: underline;
}

.page-main {
	margin-bottom: 100px;
}
.page-main em {
	font-size: 115%;
	font-weight: var(--font-weight-bold);
	color: #af6217;
}
.page-main > section + section {
	margin-bottom: 50px;
}
.page-main .concept-area h2.main-color {
	font-size: calc(25 * min(100vw, 1100px) / 1100);
	color: #fff;
	text-shadow: none;
}
.page-main .concept-area .pic + h2 {
	margin-top: 1em;
}
.page-main .tac {
	text-align: center;
	margin: 0 auto;
}
.page-main .contact .btns .common-btn.tel {
	border: 1px solid var(--color-point);
}
.page-main .contact .btns .common-btn.tel::before {
	top: 0;
}
/*=========================================
 footer
=========================================*/
footer {
	background: url(./images/common/footer-bg.png) no-repeat top center/cover;
}
.footer-table {
}
.footer-table th,
.footer-table td {
	font-size: 20px;
	font-family: var(--font-mincho);
	font-weight: var(--font-weight-regular);
	letter-spacing: 0;
	padding: 16px 0;
}
.footer-table thead th {
	width: 30%;
	max-width: 120px;
}
.footer-table thead td {
	width: auto;
}
.footer-table tbody th {
}
.footer-table tbody td {
}
footer .g-map {
	margin-top: 90px;
	margin-bottom: 110px;
}

footer .links-flex .link .head {
	display: block;
	font-size: 24px;
	font-weight: var(--font-weight-regular);
	letter-spacing: 0;
	color: var(--color-point);
	padding-bottom: 8px;
	border-bottom: 1px solid rgba(135, 121, 106, 0.4);
	margin-bottom: 24px;
}
footer .links-flex .link ul {
	margin: 10px 0 30px;
}
footer .links-flex .link ul > li > a {
	position: relative;
	font-size: 18px;
	font-weight: var(--font-weight-regular);
	letter-spacing: 0;
	padding-left: 1.25em;
}
footer .links-flex .link ul > li > a::before {
	content: '';
	position: absolute;
	top: 0.5em;
	left: 0.5em;
	display: block;
	width: 0.5em;
	height: 0.5em;
	border-top: 1px solid var(--color-point);
	border-right: 1px solid var(--color-point);
	transform: rotate(45deg);
}
footer .links-flex .btns {
	width: 344px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	gap: min(8px, 2.4vw);
	margin: min(5vw, 77px) auto 0;
}
footer .footer-text {
	margin: 71px auto 0;
	max-width: 1040px;
}
footer .footer-text__logo {
	width: 60%;
	max-width: 251px;
	margin: 0 auto min(4vw, 41px);
}
footer .footer-text p {
	font-size: 12px;
	font-family: var(--font-mincho);
	letter-spacing: 0.04em;
	margin-bottom: 43px;
}
footer .common-btn {
	width: 320px;
	height: 94px;
	box-shadow: none;
}

/* PC設定 */
@media (width > 840px) {
	footer .fixed-bottom.sp {
		display: none;
	}
	footer .fixed-bottom {
		position: fixed;
		bottom: 0;
		right: 0;
		height: 100px;
		display: flex;
		align-items: stretch;
		justify-content: space-between;
		z-index: 100;
	}
	footer .fixed-bottom .common-btn {
		width: 100%;
		min-width: 230px;
		height: 100%;
		border-radius: 0;
		transition: filter ease-out 0.5s;
		font-size: max(25px, 2.5vw);
	}
	footer .fixed-bottom .common-btn + .common-btn {
		border-left: 1px solid #fff;
	}
	footer .fixed-bottom .common-btn.tel {
		font-size: min(4vw, 27px);
	}
	footer .fixed-bottom .common-btn.web {
		font-size: min(4.25vw, 31px);
	}
	footer .fixed-bottom .common-btn.line {
		font-size: min(4.25vw, 31px);
	}
}

/* SP設定 */
@media (width < 841px) {
	#sub_mv {
		height: 20vh;
		min-height: 160px;
		margin-top: max(65px, 20vw);
	}
	#sub_mv .title {
		font-size: max(20px, 6vw);
	}
	#breadcrumbs {
		padding: 10px 3%;
		margin-bottom: 0;
	}
	#breadcrumbs span,
	#breadcrumbs a {
		font-size: 0.75rem;
	}
	#breadcrumbs span[property='name'] {
		max-width: 120px;
	}

	.p_clinicHoursTable th,
	.p_clinicHoursTable td,
	.p_clinicHoursTable-btm p {
		font-size: max(12px, 1.5vw);
	}

	/*  p_hamburgerNav menu
	------------------------*/
	.p_hamburgerNav__list {
		margin: 0;
	}
	.p_hamburgerNav__list > li:last-child {
		border-bottom: none;
	}
	.p_hamburgerNav__list li a,
	.p_hamburgerNav__list li span {
		position: relative;
		display: block;
		font-size: max(1rem, 2.5vw);
		font-weight: var(--font-weight-medium);
		letter-spacing: 0.05em;
	}
	.p_hamburgerNav__list > li a,
	.p_hamburgerNav__list li span {
		display: flex;
		justify-content: center;
		padding: 1em 0;
	}

	/* ----- サブメニューがある親リスト ----- */
	.p_hamburgerNav__list li.menu-parent {
		flex-direction: column;
		align-items: center;
		border-bottom: 0;
	}
	.p_hamburgerNav__list li.menu-parent > span {
		display: flex;
		justify-content: center;
		padding: 1em 0;
	}
	.p_hamburgerNav__list li.menu-parent.is_open span {
		background: var(--color-point);
		color: #fff;
	}
	/* サブメニュー */
	.menu-parent__child-wrap {
		display: none;
	}
	.p_hamburgerNav__subList {
		display: grid;
		grid-template-columns: repeat(1, 1fr);
		gap: 0;
		margin: 0.5em 0;
	}
	.p_hamburgerNav__subList li {
		border-bottom: 1px solid var(--color-pink);
	}
	.p_hamburgerNav__subList li a {
		display: block;
		font-size: min(3.5vw, 1rem);
		padding: 0.5em 0;
		padding-left: 1.8em;
		margin-bottom: 0;
	}
	.p_hamburgerNav__subList li a:before {
		content: '';
		position: absolute;
		top: 1em;
		left: 0.5em;
		display: block;
		width: 0.5em;
		height: 0.5em;
		border-top: 1px solid var(--color-point);
		border-right: 1px solid var(--color-point);
		transform: rotate(45deg);
	}

	footer .fixed-bottom.pc {
		display: none;
	}
	footer .fixed-bottom {
		z-index: 100;
	}
	footer {
		background: url(./images/common/footer-bg-sp.png) no-repeat top center /
			cover;
	}
	footer .links-flex .btns.pc {
		display: none;
	}
	footer .footer-flex {
		gap: 0;
	}
	footer .footer-flex .footer_R,
	.footer-table {
		flex-basis: auto;
		width: 90%;
		margin: 0 auto;
	}
	footer .links-flex .link .head {
		font-size: 18px;
	}
	footer .links-flex .link ul > li > a {
		font-size: max(14px, 1.75vw);
		padding-left: 1.5em;
	}
	.footer-table th,
	.footer-table td {
		font-size: max(14px, 1.75vw);
		line-height: 1.6;
		padding: 8px 0 0;
	}
	footer .g-map {
		margin-top: 30px;
		margin-bottom: 40px;
	}
	footer .g-map iframe {
		height: 30vh;
	}
	footer .footer-text {
		width: 100%;
		margin: 0;
	}
	footer .common-btn {
		width: 100%;
		height: auto;
		min-height: 50px;
		border-radius: 0;
	}
	footer .footer-text .btns {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 2vw;
		margin: 8% 0;
	}
	footer .footer-text__logo {
		width: 50%;
		margin-bottom: max(33px, 2vw);
	}
	footer .copyright {
		padding-bottom: calc(81px + 1em);
	}
}
/*=========================================
 HOME
=========================================*/
.full-screen {
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	max-width: 100vw;
	margin-bottom: 0;
}
.full-screen > img {
	width: 100%;
}
.home ul,
.home p {
	margin: 0;
	line-height: 1.8;
}
.home .p_ttl-container {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}
.home .p_ttl-container .main {
	font-size: min(10vw, 50px);
	font-weight: var(--font-weight-bold);
	font-family: var(--font-mincho);
	letter-spacing: 0.16em;
	line-height: 1;
	padding: 70px 0 100px;
}
.home .p_ttl-container img {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	max-width: 250px;
}
.home .l_content-flex {
	display: flex;
}
.home .l_content-flex .col80 {
	flex-basis: 80%;
}
.home .l_content-flex .col70 {
	flex-basis: 70%;
}
.home .l_content-flex .col60 {
	flex-basis: 60%;
}
.home .l_content-flex .col50 {
	flex-basis: 50%;
}
.home .l_content-flex .col40 {
	flex-basis: 40%;
}
.home .l_content-flex .col30 {
	flex-basis: 30%;
}
.home .l_content-grid {
	display: grid;
}

.home .inner {
	padding-right: 3%;
	padding-left: 3%;
	padding-top: 30px;
	padding-bottom: 60px;
}
.home .detail-btn {
	display: inline-block;
	width: 80%;
	max-width: 323px;
	font-size: min(4.5vw, 20px);
	font-weight: var(--font-weight-bold);
	letter-spacing: 0;
	color: #fff;
	text-align: center;
	padding: 28px;
	background: #877f77;
}
.home .detail-btn.-style2 {
	width: 100%;
	max-width: 257px;
	color: var(--color-point);
	padding: 20px;
	background: #fff;
	border: 1px solid var(--color-point);
	border-radius: 50vh;
}

.home .btn-container {
	margin-top: 60px;
}
.home .btn-container.-right {
	text-align: right;
}
.home .btn-container.-left {
	text-align: left;
}
.home .btn-container.-center {
	text-align: center;
}

.ttl-style01 {
	position: relative;
	font-size: min(4vw, 24px);
	font-weight: var(--font-weight-bold);
	font-family: var(--font-mincho);
	letter-spacing: 0;
	color: var(--color-point);
	padding-left: 1em;
	padding-bottom: 8px;
	border-bottom: 1px solid #d2cbc5;
	margin-bottom: 24px;
}
.ttl-style01::before {
	content: '';
	position: absolute;
	top: 0.25em;
	left: 0.2em;
	width: 0.4em;
	height: 60%;
	background: #d2cbc5;
}

/* 
home-banner
home-concept
home-menu
home-about
home-treatment
home-case
home-features
home-clinic
home-doctor
*/

/*	FV
------------------------------*/
@media (width < 841px) {
	#fv .swiper-wrapper.pc {
		display: none !important;
	}
	#fv .swiper-wrapper.sp {
		display: flex !important;
	}
}
@media (width > 840px) {
	#fv .swiper-wrapper.sp {
		display: none !important;
	}
}

/*	HOME banner
------------------------------*/
.home-banner .inner {
	max-width: calc(1240px + 6%);
	padding-top: 125px;
	padding-bottom: 86px;
}
.home-banner .l_content-flex {
	gap: min(10vw, 137px);
	margin: 0 auto;
}

/*	HOME concept
------------------------------*/
.home-concept .inner {
	max-width: calc(1040px + 6%);
	padding-top: 0;
}
.home-concept h3 {
	font-size: 24px;
	font-weight: var(--font-weight-regular);
	color: var(--color-main);
	letter-spacing: 0.025em;
	text-align: center;
	margin-bottom: min(5vw, 78px);
	z-index: -1;
}
.home-concept h3 em {
	position: relative;
	font-size: 35px;
	font-weight: var(--font-weight-bold);
	font-family: var(--font-mincho);
	font-style: normal;
	letter-spacing: 0.025em;
	line-height: 1;
	color: #af6217;
	z-index: -2;
}
.home-concept h3 em::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: min(30vw, 207px);
	height: min(30vw, 207px);
	background: url(./images/home/att-bg.png) no-repeat center / contain;
	z-index: -1;
}

.home-concept_column {
	display: flex;
	align-items: center;
	justify-items: center;
	z-index: 1;
}
.home-concept_column div {
	flex-basis: 50%;
	font-size: 18px;
	font-weight: var(--font-weight-regular);
	line-height: 1.944;
	letter-spacing: 0;
}
.home-concept_column .content_L {
	flex-basis: calc(50% + 120px);
	margin-right: -120px;
	z-index: 1;
}

/*	HOME menu
------------------------------*/
.home-menu {
	background: #faf9f6;
}
.home-menu .inner {
	max-width: calc(1240px + 6%);
	padding-bottom: 100px;
}
.home-menu .p_ttl-container {
	margin-bottom: 30px;
}

.home-menuList {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	column-gap: min(10vw, 130px);
	row-gap: min(15vw, 80px);
}
.home-menuList__item {
	display: flex;
	gap: min(3vw, 21px);
}
.home-menuList__item .content_L {
	flex-basis: 30%;
	max-width: 157px;
	margin: 0 auto;
}
.home-menuList__item .content_R {
	flex: 1;
}

.home-menuList__item p {
	font-size: 18px;
	font-weight: var(--font-weight-regular);
	color: var(--color-point);
	line-height: 1.8;
	margin: 0;
}

/*	HOME about
------------------------------*/
.home-about {
	position: relative;
	background: #fff url(images/home/about-bg.png) no-repeat top / cover;
}
.home-about::before {
	position: absolute;
	content: '';
	bottom: 100%;
	left: 0;
	width: 100%;
	height: 100px;
	background: url(images/home/about-bg-top.png) no-repeat top / cover;
}
.home-about .inner {
	max-width: calc(1040px + 6%);
	padding-top: 60px;
}
.home-about p {
	font-size: min(3.75vw, 18px);
	font-weight: var(--font-weight-regular);
	color: var(--color-point);
}
.home-about p strong {
	font-size: 115%;
	font-weight: var(--font-weight-bold);
	color: #af6217;
}
.home-about_content {
	margin: min(10vw, 100px) auto;
}

/*	HOME treatment
------------------------------*/
.home-treatment {
	background: #faf9f6;
}
.home-treatment .inner {
	max-width: 100%;
	padding-right: 0;
	padding-left: 0;
}
.home-treatment_contents {
	display: flex;
	flex-direction: column;
	gap: min(6vw, 58px);
}
.home-treatment_content {
	background: #fff;
}

.home-treatment .caption {
	max-width: calc(1040px + 6%);
	padding-right: 3%;
	padding-left: 3%;
	margin: 23px auto 0;
	font-size: 16px;
	font-weight: var(--font-weight-bold);
	color: #bdbab6;
	text-align: right;
}

.home-treatment_content .content-inner {
	max-width: calc(1040px + 6%);
	padding-top: 130px;
	padding-bottom: 30px;
	padding-right: 3%;
	padding-left: 3%;
	margin: 0 auto;
}
.home-treatment_content .ttl-head {
	margin-bottom: 40px;
}
.home-treatment_content .ttl-head .main {
	font-size: min(6vw, 36px);
	color: var(--color-point);
	margin-bottom: 0;
}
.home-treatment_content .ttl-head .sub {
	font-size: min(4.5vw, 24px);
	font-weight: var(--font-weight-semibold);
	color: #645b52;
	padding-top: 0.25em;
	padding-bottom: 0.25em;
	border-bottom: 1px solid #d2cbc5;
	margin: 0;
}

.home-treament_content__item {
	display: flex;
	gap: min(5vw, 50px);
}
.home-treament_content__item > div {
	flex-basis: 50%;
}
.home-treament_content__item .content_L {
	display: flex;
	flex-direction: column;
	gap: 24px;
}
.home-treament_content__item p {
	font-size: min(3.75vw, 18px);
	color: var(--color-point);
}
.check-list {
}
.check-list li {
	position: relative;
	font-size: min(4.25vw, 21px);
	font-weight: var(--font-weight-bold);
	font-family: var(--font-mincho);
	line-height: 1.5;
	letter-spacing: 0;
	color: var(--color-point);
	padding: 0.5em;
	padding-left: 2em;
	background: #d2cbc5;
	margin-bottom: 0.5em;
}
.check-list li:last-child {
	margin-bottom: 0;
}
.check-list li::before {
	content: '';
	position: absolute;
	top: 0.8em;
	left: 0.5em;
	width: 1em;
	height: 1em;
	background: url(images/common/icon-check.png) no-repeat center / contain;
}

.home-treatment_content .btn-container {
	margin-top: 28px;
}

/*	HOME case
------------------------------*/
.home-case {
	background: #faf9f6;
}
.home-case .inner {
	max-width: 100%;
	padding-top: 100px;
	padding-bottom: 0;
	padding-right: 0;
	padding-left: 0;
}
.home-case .bg {
	padding-top: 80px;
	padding-bottom: 60px;
	background: #fff;
}
.home-case .btn-container {
	max-width: 1040px;
	margin: 0 auto;
}

.case-slider {
	padding-bottom: 128px !important;
}
.case-slider__item {
	padding: min(8vw, 35px) min(3vw, 35px);
	background: #faf9f6;
	margin: 0 auto;
}
.case-slider__item-head {
	position: relative;
	display: flex;
	justify-content: center;
	gap: 80px;
	margin-bottom: 34px;
}
.case-slider__item-head p {
	font-size: min(3.75vw, 18px);
	font-weight: var(--font-weight-regular);
	line-height: 1;
	color: var(--color-point);
	margin-bottom: 16px;
}
.case-slider__item-head .arrow {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, calc(-50% + 1em));
	width: 2vw;
	max-width: 23px;
}

.case-slider__item-table {
	display: grid;
	gap: 9px;
}
.case-slider__item-table .content {
	display: grid;
	grid-template-columns: 20% auto;
	gap: 6px;
}
.case-slider__item-table .content .th {
	font-size: 16px;
	font-weight: var(--font-weight-bold);
	color: #fff;
	text-align: center;
	padding: 14px;
	background: #bdbab6;
}
.case-slider__item-table .content .td {
	font-size: 16px;
	font-weight: var(--font-weight-regular);
	color: var(--color-point);
	padding: 14px 40px;
	background: #fff;
}

/* sldier */
.case-slider .swiper-slide {
	opacity: 0.5;
	transition: opacity 0.3s ease;
}
/* アクティブスライドは不透明 */
.case-slider .swiper-slide.swiper-slide-active {
	opacity: 1;
}

/* case button */
.case-slider .swiper-button-next,
.case-slider .swiper-button-prev {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 40px; /* 矢印サイズ */
	height: 40px;
	background-size: contain;
	background-repeat: no-repeat;
	z-index: 10;
	cursor: pointer;
	color: #bcb7b3;
}
.case-slider .swiper-button-prev {
	left: calc(10% + 80px / 2);
}
.case-slider .swiper-button-next {
	right: calc(10% + 80px / 2);
}

/* case pagination */
.case-slider .swiper-pagination {
	position: absolute;
	top: auto !important;
	bottom: 54px !important;
}
.case-slider .swiper-pagination-bullet-active {
	background: #aaa;
}
.case-slider .swiper-pagination-bullet {
	width: 0.8em;
	height: 0.8em;
	margin: 0 8px !important;
}

/*	HOME features
------------------------------*/
.home-features {
	background: #faf9f6;
}
.home-features .inner {
	max-width: 100%;
	padding-top: 60px;
	padding-right: 0;
	padding-left: 0;
}
.home-features .p_ttl-container {
	margin-bottom: 30px;
}
.home-features .p_ttl-container img {
	transform: translate(-50%, -40%);
	max-width: 316px;
}

.home-features_column {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
}

.home-features_column .item {
	z-index: 1;
}
.home-features_column .item:nth-child(1),
.home-features_column .item:nth-child(4),
.home-features_column .item:nth-child(5) {
	position: relative;
	background: #fff;
}
.home-features_column .item:nth-child(1)::before,
.home-features_column .item:nth-child(4)::before,
.home-features_column .item:nth-child(5)::before {
	content: '';
	position: absolute;
	width: 100%;
	height: calc(100% + 1em);
	background: #fff;
	z-index: -1;
}
.home-features_column .item:nth-child(6) {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}
.home-features_column__inner {
	max-width: 460px;
	display: flex;
	flex-direction: column;
	margin: 46px;
}
.home-features_column .item:nth-child(odd) .home-features_column__inner {
	margin-left: auto;
}
.home-features_column .num {
	width: 50%;
	max-width: 150px;
	margin-bottom: 10px;
}
.home-features_column .ttl {
	width: fit-content;
	font-size: min(4.75vw, 24px);
	font-weight: var(--font-weight-bold);
	font-family: var(--font-mincho);
	letter-spacing: 0;
	line-height: 1.6;
	text-align: center;
	padding-bottom: 0.5em;
	border-bottom: 1px solid #d2cbc5;
	margin: 0 auto;
	margin-top: 26px;
	margin-bottom: 18px;
}
.home-features_column .message {
	font-size: min(3.75vw, 18px);
}

/*	HOME clinic
------------------------------*/
.home-clinic {
	background: #faf9f6;
}
.home-clinic_column {
	display: flex;
	gap: 16px; /* メインとサムネイルの間 */
}

/* メインスライダー */
.swiper.slider {
	width: 60%;
}

.swiper.slider img {
	width: 100%;
	/* height: auto; */
	height: 100%;
	display: block;
	object-fit: cover;
}

/* サムネイル全体 */
.swiper.slider-thumbnail {
	width: 40%;
}

/* サムネイル カラム*/
.swiper.slider-thumbnail .swiper-wrapper {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	grid-template-rows: repeat(3, auto);
	gap: 16px;
	opacity: 0.5;
}

/* サムネイル1枚の調整 */
.swiper.slider-thumbnail .swiper-slide {
	width: 100% !important;
	height: auto;
}

.swiper.slider-thumbnail .swiper-slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/*	HOME doctor
------------------------------*/
.home-doctor {
	background: #fff;
}
/* .home-doctor .inner {
	padding-top: 180px;
	padding-bottom: 250px;
} */
.home-doctor .p_ttl-container {
	margin-bottom: 30px;
}
.home-doctor_column {
	display: flex;
	gap: min(8vw, 68px);
	color: var(--color-point);
}
.home-doctor_column .content_L {
	flex-basis: 45%;
}
.home-doctor_column .content_R {
	flex-basis: 55%;
}
.home-doctor_column .name-column {
	display: flex;
	flex-direction: column;
	gap: 1em;
	margin-top: 26px;
	color: var(--color-point);
}
.home-doctor_column .name-column .job {
	font-size: min(3.75vw, 18px);
	font-weight: var(--font-weight-regular);
	line-height: 1;
}

.home-doctor_column .name-column .name,
.home-doctor_column .name-column .en {
	font-size: min(5vw, 28px);
	font-weight: var(--font-weight-bold);
	line-height: 1;
}
.home-doctor_column .name-column .name {
	display: flex;
	gap: 1em;
}
.home-doctor_column .name-column .en {
	color: #dbb999;
}
.home-doctor_column h3 {
	font-size: min(5vw, 32px);
	font-weight: var(--font-weight-bold);
	font-family: var(--font-mincho);
	letter-spacing: 0;
	margin-bottom: min(8vw, 54px);
}
.home-doctor_column .message {
	font-size: min(3.75vw, 18px);
	font-weight: var(--font-weight-regular);
}
.home-doctor_column .message strong {
	font-weight: var(--font-weight-bold);
}

/*	HOME responsive
------------------------------*/
@media (width < 841px) {
	.home .inner {
		padding-top: max(50px, 10vw);
		padding-bottom: max(50px, 10vw);
	}
	.home .detail-btn {
		width: 100%;
		max-width: max-content;
		min-width: 230px;
		font-size: max(14px);
		padding: 20px;
	}
	.home .detail-btn.-style2 {
		max-width: fit-content;
		min-width: auto;
		padding: 15px 24px;
	}
	.home .p_ttl-container .main {
		font-size: max(31px, 2.5vw);
	}
	.home .p_ttl-container img {
		width: 40%;
	}
	.ttl-style01 {
		font-size: max(18px, 4vw);
		margin-bottom: 14px;
		line-height: 1.6;
	}
	.ttl-style01::before {
		height: 1.2em;
	}

	.home-banner .inner {
		padding-right: 10%;
		padding-left: 10%;
	}
	.home-banner .l_content-flex {
		flex-direction: column;
		gap: 10px;
	}
	.home-concept .p_ttl-container .main {
		padding: 60px 0;
	}
	.home-concept .inner {
		padding-top: 0;
		padding-bottom: max(40px, 10vw);
	}
	.home-concept h3,
	.home-concept h3 em {
		font-size: 18px;
		line-height: 1.7;
	}
	.home-concept h3 {
		margin-bottom: 60px;
	}
	.home-concept_column {
		flex-direction: column-reverse;
		gap: 24px;
	}
	.home-concept_column .content_L {
		flex-basis: auto;
		font-size: max(13.5px, 2vw);
		text-align: center;
		margin-right: 0;
	}
	.home-concept .btn-container {
		text-align: center;
	}

	.home-menu .inner {
		padding-top: 0;
		padding-bottom: max(100px, 10vw);
	}
	.home-menu .p_ttl-container {
		margin-bottom: 0;
	}
	.home-menuList {
		grid-template-columns: 1fr;
	}
	.home-menuList__item .content_L {
		flex-basis: 25%;
	}
	.home-menuList__item .ttl-style01 {
		font-size: max(15px, 4vw);
		margin-bottom: 14px;
	}
	.home-menuList__item p {
		font-size: max(11px, 2vw);
	}
	.home-about {
		background-size: auto;
	}
	.home-about::before {
		height: 50px;
	}
	.home-treatment .inner {
		padding-bottom: 0;
	}
	.home-treatment_content .content-inner {
		padding-top: max(50px, 10vw);
		padding-bottom: max(50px, 10vw);
	}
	.home-treament_content__item {
		flex-direction: column;
	}
	.home-treament_content__item img {
		width: 80%;
		margin: 0 auto;
	}
	.home-treatment_content .btn-container {
		margin-top: 10px;
	}
	.home-treatment .caption {
		font-size: 10px;
		text-align: left;
	}
	.home-case .bg {
		padding-top: 0;
	}
	.home-case .p_ttl-container img {
		width: 50%;
	}
	.home-case .btn-container {
		max-width: 90%;
	}
	.case-slider {
		width: 94%;
		padding-bottom: 80px !important;
	}
	.case-slider__item-head {
		gap: 10vw;
		margin-bottom: max(14px, 2vw);
	}
	.case-slider__item-head p {
		display: none;
	}
	.case-slider__item-head .arrow {
		transform: translate(-50%, calc(-50% + 0em));
		width: 2.5vw;
	}
	.case-slider__item-table .content {
		gap: 3px;
	}
	.case-slider__item-table .content .th,
	.case-slider__item-table .content .td {
		font-size: max(11px, 2vw);
	}
	.case-slider__item-table .content .th {
		padding: 8px;
	}
	.case-slider__item-table .content .td {
		padding: 8px 16px;
	}
	.case-slider .swiper-button-next,
	.case-slider .swiper-button-prev {
		position: absolute;
		top: auto;
		bottom: 30px;
		transform: translateY(-20%);
	}
	.swiper-button-next:after,
	.swiper-button-prev:after {
		font-size: 5vw !important;
	}
	.case-slider .swiper-button-prev {
		left: 5%;
	}
	.case-slider .swiper-button-next {
		right: 5%;
	}
	.case-slider .swiper-pagination {
		position: relative;
		top: auto !important;
		bottom: -30px !important;
		transform: translateY(0);
	}
	.case-slider .swiper-pagination-bullet {
		width: 0.5em;
		height: 0.5em;
		margin: 0 5px !important;
	}

	.home-features {
	}
	.home-features .p_ttl-container {
		margin-bottom: 60px;
	}
	.home-features .p_ttl-container .main {
		font-size: max(20px, 2vw);
		padding: 70px 0 70px;
	}
	.home-features .p_ttl-container img {
		width: 60%;
	}
	.home-features_column {
		grid-template-columns: 1fr;
	}
	.home-features_column__inner {
		margin: 0 auto;
		padding: 54px 3%;
	}
	.home-features_column .item:nth-child(odd) .home-features_column__inner {
		margin: 0 auto;
		padding: 54px 3%;
	}
	.home-features_column .item:nth-child(odd) {
		background: #fff !important;
	}
	.home-features_column .item:nth-child(even) {
		background: none !important;
	}
	.home-features_column .item:nth-child(1)::before,
	.home-features_column .item:nth-child(4)::before,
	.home-features_column .item:nth-child(5)::before {
		content: none;
	}
	.home-features_column .item:nth-child(6) {
		display: none !important;
	}
	.home-features_column .num {
		width: 40%;
	}
	/* .home-clinic .inner {
		padding-right: 0;
		padding-left: 0;
	} */
	.home-clinic_column {
		flex-direction: column;
	}
	.home-clinic .swiper.slider {
		width: 90%;
	}
	.home-clinic .swiper.slider-thumbnail {
		width: 100%;
	}
	.home-clinic .swiper.slider-thumbnail .swiper-wrapper {
		grid-template-columns: repeat(6, 1fr);
		grid-template-rows: auto;
		gap: 8px;
	}
	.home-doctor .p_ttl-container {
		margin-bottom: 0;
	}
	.home-doctor_column {
		flex-direction: column-reverse;
	}
	.home-doctor_column .content_R {
		flex-basis: auto;
		text-align: center;
	}
	.home-doctor_column img,
	.home-doctor_column .name-column {
		width: 80%;
		margin-right: auto;
		margin-left: auto;
	}
}
