/*
Theme Name: tokunagadc_theme
*/


@charset "UTF-8";
:root {
	--contents-inner: 1040px; /* サイトの基本コンテンツ幅 */
	--contents-innerMax: 1440px;
	--contents-innerMin: 820px;
	--post-paddingY: 100px;
	--post-paddingX: 5%;
	--header-height-pc: 80px;
	--header-height-sp: 5rem;
	--footer-fixed-height: 80px;
	--footer-sp-padding: 50px;
	--font-family-MaruGothic: 'Zen Maru Gothic', 'M PLUS Rounded 1c', sans-serif;
	--font-family-Sans:
    'Zen Kaku Gothic New', 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3',
		'メイリオ', 'sans-serif';
	--font-family-Serif:
		'Zen Old Mincho', 'Noto Serif JP', 'ヒラギノ明朝 ProN',
		'Hiragino Mincho ProN', 'Noto Serif JP', 'Yu Mincho Light', serif;
	--font-family-en: 'Allura', system-ui, sans-serif;
	--font-family-enSans: 'Allura', var(--font-family-Sans);
	--font-family-enSerif: 'Allura', var(--font-family-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: 820;
	--font-weight-black: 900;
  --color-main: #44372b;
	--color-sub: #44372b;
	--color-point: #2583d6;
	--color-link: #616161;
	--color-line: #0ac755;
	--color-instagram: linear-gradient(
		90deg,
		rgba(253, 184, 28, 1) 0%,
		rgba(250, 106, 16, 1) 35%,
		rgba(227, 0, 54, 1) 65%,
		rgba(191, 0, 161, 1) 100%
	);
	--color-body: #fff;
	--color-header: #f7efe3;
	--color-footer: repeating-linear-gradient(
		180deg,
		#ecf0f4,
		#ecf0f4 10px,
		#e5eaf1 10px,
		#e5eaf1 20px
	);
	--color-red: #da1717;
	--color-apricot: #e89961;
	--color-pink: #ffc39c;
	--color-orange: #ffc046;
	--color-yellow: #ebf050;
	--color-green: #0ac755;
	--color-blue: #13b6c0;
	--color-brown: #9e8207;
	--background-sub: #ffeee3;
	--background-gradation: linear-gradient(-8deg, #ffffff 0%, #fff8f1 100%);
}

html,
body {
	height: 100%;
}
body {
	background: var(--color-body);
}
body,
input,
textarea,
select {
	font-family: var(--font-family-Sans);
	font-size: 1rem;
	font-weight: normal;
	line-height: 1.6;
	color: var(--color-main);
	-webkit-text-size-adjust: 100%;
}

p,
dt,
dd,
li,
span,
a,
td,
th,
em,
i {
	font-size: min(3.5vw, 1rem);
	font-family: var(--font-family-Sans);
	font-weight: var(--font-weight-light);
	letter-spacing: 0.05em;
	line-height: 1.6;
}
h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: var(--font-family-Serif);
	letter-spacing: 0.1em;
	line-height: 1.6;
}
mark,
em,
i {
	font-size: inherit;
	font-style: normal;
	font-weight: inherit;
}
img {
	max-width: 100%;
	height: auto;
	border: 0;
	vertical-align: bottom;
}
a {
	text-decoration: none;
	color: var(--color-link);
	cursor: pointer;
	-webkit-transition: 0.5s ease-out;
	-moz-transition: 0.5s ease-out;
	-ms-transition: 0.5s ease-out;
	transition: 0.5s ease-out;
	word-break: break-all;
}
a:hover {
	opacity: 0.5;
}
a img {
	-webkit-transition: opacity 0.5s ease-out;
	-moz-transition: opacity 0.5s ease-out;
	-ms-transition: opacity 0.5s ease-out;
	transition: opacity 0.5s ease-out;
}
section p,
article p {
	text-align: justify;
	word-break: break-all;
}
article strong {
	font-weight: var(--font-weight-semibold);
}
strong span {
	font-weight: inherit;
}
a:hover,
a img:hover {
	text-decoration: none;
	filter: alpha(opacity=60);
	-ms-filter: 'alpha(opacity=60)';
}
a.g-map {
	font-family: var(--font-family-en);
	color: var(--color-point);
	text-decoration: underline;
}
a.-underline {
	text-decoration: underline;
	color: var(--color-point);
}
figure img {
	width: 100%;
}
table {
	width: 100%;
}
th {
	vertical-align: top;
	text-indent: 0;
}
td {
	vertical-align: top;
	text-indent: 0;
}
.inner {
	margin: 0 auto;
}
.scroll {
	font-size: min(3vw, 0.875rem);
	text-align: right;
	color: #999;
	margin-bottom: 0.8em;
}
.serif {
	font-family: var(--font-family-Serif);
}
.sans {
	font-family: var(--font-family-Sans);
}
.alphabet {
	font-family: var(--font-family-en);
}
::selection {
	background: #2995e1b8;
	color: #fff;
}
/* Firefox */
::-moz-selection {
	background: #2995e1b8;
	color: #fff;
}
.grecaptcha-badge {
	visibility: hidden;
}

/*=========================================
2. layout / utility
=========================================*/
.pc-only,
.pc-bl,
.pc-fl,
.pc-in,
.pc-gd,
.sp-only,
.sp-bl,
.sp-fl,
.sp-in,
.sp-gd {
	display: none !important;
}
@media (width > 821px) {
	.pc-only,
	.pc-bl {
		display: block !important;
	}
	.pc-fl {
		display: flex !important;
	}
	.pc-in {
		display: inline !important;
	}
	.pc-gd {
		display: grid !important;
	}
}
@media (width < 820px) {
	.sp-only,
	.sp-bl {
		display: block !important;
	}
	.sp-fl {
		display: flex !important;
	}
	.sp-in {
		display: inline !important;
	}
	.sp-gd {
		display: grid !important;
	}
}

.full-screen {
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	max-width: 100vw;
	margin-bottom: 0;
}
.full-screen > img {
	width: 100%;
}

/* ----- カラム ----- */
.wp-block-group.l_content-flex,
.l_content-flex {
	display: flex;
}
.l_content-flex.-l_fl50 > div {
	flex-basis: 50%;
}
.-l_fl30 {
	flex-basis: 33.333%;
}
.-l_fl40 {
	flex-basis: 40%;
}
.-l_fl50 {
	flex-basis: 50%;
}
.-l_fl60 {
	flex-basis: 66.666%;
}
.-l_fl70 {
	flex-basis: 70%;
}
.-l_fl80 {
	flex-basis: 80%;
}
.-l_fl90 {
	flex-basis: 90%;
}
.-l_fl100 {
	flex-basis: 100%;
}

/* ----- グリッド ----- */
.l_content-grid {
	display: grid;
	gap: min(7vw, 60px);
}

.wp-block-group .-l_col2,
.l_content-grid.-l_col2 {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: min(7vw, 60px);
}
.wp-block-group .-l_col3,
.l_content-grid.-l_col3 {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: min(7vw, 60px);
}
.wp-block-group .-l_col4,
.l_content-grid.-l_col4 {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: min(4vw, 1em);
}

/* ----- ギャップ ----- */
.-gap1 {
	gap: 1vw;
}
.-gap2 {
	gap: 2vw;
}
.-gap3 {
	gap: 3vw;
}
.-gap4 {
	gap: 4vw;
}
.-gap5 {
	gap: 5vw;
}
.-gap6 {
	gap: 6vw;
}
.-gap7 {
	gap: 7vw;
}
.-gap8 {
	gap: 8vw;
}
.-gap9 {
	gap: 9vw;
}
.-gap10 {
	gap: 10vw;
}

@media (width < 820px) {
	.l_content-flex {
		flex-direction: column;
	}
	.l_content-grid.-l_col3 {
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (width < 820px) {
	.wp-block-group .-l_col2,
	.l_content-grid.-l_col2,
	.wp-block-group .-l_col3,
	.l_content-grid.-l_col3 {
		grid-template-columns: 1fr;
	}
}

/* ----- 画像 切り抜き丸 ----- */
.is-corner {
	border-radius: min(20px) !important;
}
.is-corner.min {
	border-radius: min(1vw, 10px) !important;
}
.is-img-round {
	border-radius: 100% !important;
	overflow: hidden !important;
	aspect-ratio: 1/1 !important;
}
.is-img-contain {
	object-fit: contain !important;
}
.is-img-bg {
	background: #ffcdab4d;
}
.is-bg-white {
	background: #fff !important;
}
.is-bg-none {
	background: none !important;
}
.is-img-zindex {
	position: relative;
	z-index: 1;
}

/* header fixed使用する場合使用 */
.wrap {
	padding-top: var(--header-height-pc);
	z-index: 0;
}

@media screen and (max-width: 820px) {
  .wrap {
    padding-top: var(--header-height-sp);
  }
}

/* ----- インナー ----- */
.c-inner {
	width: 100%;
	max-width: calc(var(--contents-inner) + var(--post-paddingX) * 2);
	margin: 0 auto;
	padding-left: var(--post-paddingX);
	padding-right: var(--post-paddingX);
	padding-top: 150px;
	padding-bottom: 150px;
}
.c-inner.-sub {
	max-width: calc(960px + 10%);
}
.c-sec-inner {
	width: 100%;
	max-width: calc(var(--contents-inner) + var(--post-paddingX) * 2);
	padding-top: 100px;
	padding-left: var(--post-paddingX);
	padding-right: var(--post-paddingX);
	margin: 0 auto;
}
.c-sec-inner.-sub {
	max-width: calc(890px + var(--post-paddingX) * 2);
}

/**
 * PC用設定
 */
@media (width >= 820px) {
	.common-btn {
		color: #fff;
		font-size: min(24px, 2vw);
		line-height: 1;
		background-color: var(--color-point);
		border-radius: 5px;
		box-shadow: 3px 3px 3px rgba(198, 196, 196, 0.5019607843);
		display: flex;
		align-items: center;
		justify-content: center;
	}
}
@media (width >= 820px) and (hover: hover) {
	.common-btn:hover {
		color: #fff;
	}
}
@media (width > 801px) {
	.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 .d-flex {
		margin: 0 auto;
		max-width: var(--contents-innerMax);
		display: flex;
		flex-wrap: wrap;
		align-items: stretch;
		justify-content: center;
		gap: calc(50 * min(100vw, 1100px) / 1100)
			calc(50 * min(100vw, 1100px) / 1100);
	}
	.page-main .features-contents .d-flex {
		justify-content: flex-start;
	}
	.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: 98%;
	}
	.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 0;
		color: var(--color-main);
		font-size: calc(18 * min(100vw, 1100px) / 1100);
		line-height: 1.8;
	}
	.page-main p + p,
	.page-main ul + p {
		margin: 1vw 0;
	}
	.page-main li {
		color: var(--color-main);
		font-size: calc(18 * min(100vw, 1100px) / 1100);
	}
	.page-main h3.sep-no {
		position: relative;
		margin: 0;
		text-align: center;
		color: var(--color-main);
		font-size: calc(20 * min(100vw, 1100px) / 1100);
		font-family: var(--font-family-Sans);
		font-weight: var(--font-weight-medium);
		color: var(--color-main);
		line-height: 1.2;
		margin: 0.4em 0;
	}

	.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: var(--color-point);
		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;
	}
	.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: #1d4552;
		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: 380px;
		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: var(--color-point);
		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;
	}
}
@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: var(--color-main);
	font-size: calc(25 * min(100vw, 1100px) / 1100);
	font-family: var(--font-family-Serif);
	font-weight: 500;
	text-align: left;
	color: var(--color-point);
}
aside .archive-monthly li {
	margin: 0.5em 0;
	color: var(--color-main);
	font-size: 16px;
	font-family: var(--font-family-Serif);
	font-weight: 500;
	text-align: left;
}

.archive-main h2 {
	margin: 0 auto;
	padding: 0;
	width: 100%;
	max-width: 1100px;
	color: var(--color-main);
	font-size: calc(25 * min(100vw, 1100px) / 1100);
	font-family: var(--font-family-Serif);
	font-weight: 500;
	text-align: left;
	margin-bottom: 20px;
	color: var(--color-point);
}
.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 var(--color-point);
}

.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: var(--color-point);
	font-size: calc(16 * min(100vw, 1100px) / 1100);
	background: #fff;
	border: 1px solid var(--color-point);
}

.archive-main .archive-list .archive-item .cats .cat {
	padding: 0.1em 1em;
	color: var(--color-point);
	font-size: calc(16 * min(100vw, 1100px) / 1100);
	background: #fff;
	border: 1px solid var(--color-point);
}
.archive-main .archive-list .archive-item .date {
	margin: 0.2em 0 0.5em;
	color: var(--color-point);
	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: var(--color-point);
	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;
}

@media (width <= 820px) {
	.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%;
		font-size: calc(40 * min(100vw, 820px) / 820);
		font-family: var(--font-family-Serif);
		font-weight: 500;
		text-align: left;
	}

	aside .archive-monthly li {
		margin: 0.5em 0;
		font-size: 16px;
		font-family: var(--font-family-Serif);
		font-weight: 500;
		text-align: left;
	}

	.archive-main h2 {
		margin: 0 auto;
		padding: 0;
		width: 100%;
		max-width: 1100px;
		font-size: calc(40 * min(100vw, 820px) / 820);
		font-family: var(--font-family-Serif);
		font-weight: 500;
		text-align: left;
		margin-bottom: 20px;
	}

	.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, 820px) / 820) auto;
		width: 100%;
		max-width: 1100px;
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: calc(40 * min(100vw, 820px) / 820) calc(20 * min(100vw, 820px) / 820);
	}

	.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%;
		object-fit: cover;
	}

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

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

	.cats .cat {
		padding: 0.1em 1em;
		color: #44372b;
		font-size: calc(16 * min(100vw, 820px) / 820);
		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, 820px) / 820);
		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, 820px) / 820);
		font-weight: 600;
	}

	.archive-main .archive-list .archive-item p {
		margin: 0.5em 0;
		color: #333;
		font-size: calc(16 * min(100vw, 820px) / 820);
	}

	.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, 820px) / 820);
		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: 820px) {
	.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: var(--color-point);
	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: 2vw 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;
}
.site-map a {
	color: #ccc;
	font-size: 20px;
	transition: 0.3s;
}
.site-map p {
	color: #ccc;
	font-size: 14px;
	display: inline;
}

#breadcrumb {
	width: 100%;
	max-width: var(--contents-innerMax);
	padding: 20px var(--post-paddingX);
}
#breadcrumb ol {
	display: flex;
	flex-wrap: wrap;
	gap: 3px;
	font-size: 14px;
}
#breadcrumb li::after {
	content: '>';
	color: var(--color-point);
}
#breadcrumb li:last-child::after {
	content: '';
}
#breadcrumb li span,
#breadcrumb li a {
	font-size: 14px;
}
#breadcrumb li a span {
	color: var(--color-link);
}


#sub_fv {
	display: grid;
	grid-template-columns: 5% 1fr;
}
#sub_fv .sub_fv--left {
}
#sub_fv .sub_fv--left {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1em;
	padding: 32px 0;
}
#sub_fv .sub_fv--left img {
	width: 2em;
	height: 2em;
	object-fit: contain;
}
#sub_fv .sub_fv--left p {
	font-size: calc(24 * min(100vw, 1400px) / 1400);
	font-weight: var(--font-weight-regular);
	font-family: var(--font-family-Serif);
	-ms-writing-mode: tb-rl;
	letter-spacing: .2em;
	writing-mode: vertical-rl;
	text-orientation: upright;
	color: var(--color-sub);
}
#sub_fv .sub_fv--left p span {
	font-size: min(4vw, 24px);
	font-family: var(--font-family-Serif);
}
#sub_fv .sub_fv--left p span em {
	font-size: min(4.5vw, 32px);
	font-family: var(--font-family-Serif);
}

#sub_fv .sub_fv--right {
}

#sub_fv #sub_mv {
	position: relative;
}

#sub_fv .sub_mv-title {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	z-index: 1;
  white-space: nowrap;
}
#sub_fv .sub_mv-title .main {
	font-size: calc(56 * min(100vw, 1400px) / 1400);
	font-weight: var(--font-weight-regular);
	font-family: var(--font-family-Serif);
	color: #4BB9D1;
	text-align: center;
	padding: 0 1vw;
	background: rgba(255, 253, 248, 0.9);
	width: 100%;
}

#sub_fv .sub_mv-copy.pc-bl {
	position: absolute;
	top: 50%;
	right: clamp(12px, 3vw, 80px);
	transform: translateY(-50%);
	height: 100%;
	z-index: 1;

	/* 縦書き */
	writing-mode: vertical-rl;
	text-orientation: mixed;

	/* 右側に寄せるので幅は内容に合わせる */
	width: fit-content;
	text-align: start;
}
#sub_fv .sub_mv-copy.pc-bl .sub {
	position: absolute;
	font-size: 1.66vw;
	font-weight: var(--font-weight-regular);
	font-family: var(--font-family-Serif);
	letter-spacing: 0.2em;
	color: var(--color-sub);
	top: 3em;
	text-shadow:
		0 0 6px rgba(255, 255, 255, 0.9),
		0 0 18px rgba(255, 255, 255, 0.9),
		0 0 40px rgba(255, 255, 255, 0.6),
		0 0 80px rgba(255, 255, 255, 0.5),
		0 0 120px rgba(255, 255, 255, 0.7),
		0 0 6px rgba(255, 255, 255, 0.9),
		0 0 18px rgba(255, 255, 255, 0.9),
		0 0 6px rgba(255, 255, 255, 0.9),
		-20px -7px 18px rgba(255, 255, 255, 0.9),
		0 0 40px rgba(255, 255, 255, 0.6),
		0 0 120px rgba(255, 255, 255, 0.7);
	margin-bottom: 0.25em;
}

#meta_h1 {
	display: none !important;
}

#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%;
}

#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;
}

/*料金表*/
.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: #00b3c2;
	color: #fff;
	font-size: 18px;
}
.pricing_sheet td.subth {
	background: var(--color-point);
	font-weight: bold;
	text-align: center;
}
.pricing_sheet tr td:nth-of-type(2) {
	text-align: center;
}

@media screen and (min-width: 820px) {
	.pricing_sheet {
		margin: 45px auto 0;
	}
}
@media screen and (min-width: 820px) {
	.pricing_sheet th {
		padding: 1.25% 20px;
	}
}
@media screen and (min-width: 820px) {
	.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 var(--color-point);
}
#column2 aside .menu {
	margin: 0 0 min(7.03vw, 135px) 0;
	padding: 0;
	list-style: none;
}
#column2 aside .menu li {
	border-bottom: 1px solid var(--color-point);
}
#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 var(--color-point);
	max-width: 1000px;
}
.pricelist .tit {
	margin: 0;
	padding: 15px;
	font-size: 30px;
	font-weight: 500;
	text-align: center;
	background: var(--color-point);
	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 {
	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: var(--color-point);
}

#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 var(--color-point) solid;
	border-bottom: 1px var(--color-point) 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 var(--color-point);
	font-size: 27px;
	padding: 0 0 7px 12px;
	letter-spacing: 1px;
	margin: 35px 0 20px 0;
	line-height: 35px;
}
#contents h4 {
	color: var(--color-point);
	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;
}

/*spメニュー*/
.p_header_btn {
	text-align: center;
}

.e_menuBtn {
	border: none;
}

.p_header_btnTxt {
	color: var(--color-point);
	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: 2px;
	position: absolute;
	background-color: #463228;
	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;
}

.p_hamburgerNav_close {
	display: none;
	position: fixed;
	text-align: center;
	background: var(--color-point);
	z-index: 10001;
	top: 0;
	right: 0;
	padding: 20px 20px;
}
.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 3.333vw 16vw;
}

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

.p_hamburgerNav_itemTtl {
	text-align: center;
	font-size: 5.333vw;
	color: var(--color-point);
	text-shadow: 3px 3px 2px #fff;
	margin-bottom: 6.666vw;
}
.b_hanburgerMenu {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 3px;
}
.b_hanburgerMenu + .p_hamburgerNav_item {
	margin-top: 2em;
}
.b_hanburgerMenu .b_hanburgerMenu_item {
	display: grid;
	padding: 1px;
}

.b_hanburgerMenu .b_hanburgerMenu_item a {
	border: 2px solid var(--color-point);
	border-radius: 10px;
	box-sizing: border-box;
	text-align: center;
	/* ここから Grid で整える */
	display: grid;
	justify-items: center;

	/* 「アイコン行」「テキスト行」を固定 */
	grid-template-rows: 4em 2.4em; /* 2.4em = 1.2(line-height) × 2行 */
	row-gap: 6px;
	padding: 9px 10px 8px;
}

.b_hanburgerMenu .b_hanburgerMenu_item a img {
	width: 4em;
	height: 4em;
	object-fit: contain;
}

.b_hanburgerMenu .b_hanburgerMenu_item a span {
	color: var(--color-point);
	font-size: calc(30 * min(100vw, 820px) / 820);
	font-weight: var(--font-weight-medium);
	line-height: 1.2;
}

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

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

@media screen and (max-width: 820px) {
	.p_contactTable thead th,
	.p_contactTable thead td {
		font-size: 3.866vw;
	}
}
@media screen and (max-width: 820px) {
	.p_contactTable thead th {
		padding: 15px 10px;
	}
}
@media screen and (max-width: 820px) {
	.p_contactTable thead th,
	.p_contactTable thead td {
		font-size: 3.866vw;
	}
}
@media screen and (max-width: 820px) {
	.p_contactTable thead td {
		padding: 15px 5px;
	}
	.p_contactTable th,
	.p_contactTable td {
		height: 30px;
		vertical-align: middle;
		text-align: center;
		padding: 5px;
	}
}

.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: var(--color-point);
	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: var(--color-point) 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: var(--color-point) 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;
}

.t_center {
	display: flex;
	align-items: center;
	justify-content: center;
}
.t_center p {
	width: -moz-fit-content;
	width: fit-content;
}

/*-----------------------------------------
	ここから追加したCSS
-----------------------------------------*/
/*=========================================
 common
=========================================*/
.c-btn {
	color: #fff;
	line-height: 1;
	background-color: var(--color-point);
	border-radius: 0;
	box-shadow: 3px 3px 3px rgba(198, 196, 196, 0.5019607843);
	display: flex;
	align-items: center;
	justify-content: center;
}
.c-btn span {
	position: relative;
	font-size: min(24px, 2vw);
	font-weight: var(--font-weight-medium);
	line-height: 1.4;
	padding-left: 2em;
}
.c-btn span::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
	width: 1.75em;
	height: 1.75em;
}

/* tel */
.c-btn.tel {
	background: #67a0ed;
}
.c-btn.tel span::before {
	background: url(images/common/pc_cta-btn01.png) no-repeat center/contain;
}
.c-btn.tel span {
	font-size: calc(24 * min(100vw, 1400px) / 1400);
}

/* web */
.c-btn.web {
	background: var(--color-orange);
}
.c-btn.web span::before {
	background: url(images/common/pc_cta-btn02.png) no-repeat center/contain;
}
.c-btn.web span {
	font-size: calc(27 * min(100vw, 1100px) / 1100);
}

/* tel */
.c-tel {
	line-height: 1;
}
.c-tel span {
	position: relative;
	font-size: calc(53 * min(100vw, 1400px) / 1400);
	font-weight: var(--font-weight-bold);
	font-family: var(--font-family-Sans);
	letter-spacing: 0;
	line-height: 1;
	color: var(--color-sub);
	padding-left: 1em;
}
.c-tel span::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
	width: 1em;
	height: 1em;
	background: url(images/common/tel.png) no-repeat center / contain;
}

/*=========================================
 header
=========================================*/

/*=========================================
  pages
=========================================*/
/* 下層共通 */
.page-main {
	width: 100%;
	max-width: calc(
		var(--contents-inner) + var(--post-paddingX) * 2
	); /* 下層コンテンツ幅の指定 */
	padding: var(--post-paddingY) var(--post-paddingX);
	margin: 0 auto;
}
.page-main .c-sec-inner {
	padding-top: var(--post-paddingY);
	padding-bottom: var(--post-paddingY);
	padding-right: 0;
	padding-left: 0;
}
.page-main .c-sec-inner.-sub {
	max-width: 890px;
}
.page-main section .c-sec-inner {
	padding-bottom: 0;
}
.page-main .mt00 {
	margin-top: 0 !important;
}
.page-main .mb00 {
	margin-bottom: 0 !important;
}
.page-main .pt00 {
	padding-top: 0 !important;
}
.page-main .pb00 {
	padding-bottom: 0 !important;
}

.page-main .-right {
	display: flex;
	justify-content: flex-end;
}
.page-main .-left {
	display: flex;
	justify-content: flex-start;
}
.page-main .-center {
	display: flex;
	justify-content: center;
}
.page-main .-flColumn {
	flex-direction: column;
}
.page-main .-aic {
	align-items: center;
}
.page-main .-ais {
	align-items: flex-start;
}
.page-main .-aie {
	align-items: flex-end;
}
.page-main .-aib {
	align-items: baseline;
}
.page-main .-jcs {
	justify-content: flex-start;
}
.page-main .-jce {
	justify-content: flex-end;
}
.page-main .-jcc {
	justify-content: center;
}
.page-main .-jcsb {
	justify-content: space-between;
}
.page-main .-jcsa {
	justify-content: space-around;
}
.page-main .-jcse {
	justify-content: space-evenly;
}

.page-main .-tar {
	text-align: right;
}
.page-main .-tal {
	text-align: left;
}
.page-main .-tac {
	text-align: center;
}
.page-main .-taj {
	text-align: justify;
	word-break: break-all;
}

.page-main .-color1 {
	color: #2c76d2;
}
.page-main .-color2 {
	color: #8fc143;
}
.page-main .-color3 {
	color: #db3939;
}

.page-main a.banner {
	filter: drop-shadow(0px 0px 7px rgba(0, 0, 0, 0.35));
}

.page-main .button-container {
	margin-top: 1vw;
}
.page-main .button-container:has(a + a) {
	display: flex;
	flex-wrap: wrap;
	gap: min(3vw, 30px);
}
.page-main .detail-btn {
	font-size: min(4vw, 18px);
	font-weight: var(--font-weight-medium);
	letter-spacing: 0;
	color: #fff;
	padding: 0.1em 1.8em 0.2em;
	background: var(--color-orange);
	border-radius: 50vh;
	margin: 1em 0 0;
	box-shadow:
		inset 0 2px 3px rgba(255, 255, 255, 0.35),
		inset 0 -2px 4px rgba(0, 0, 0, 0.15),
		0 6px 12px rgba(0, 0, 0, 0.25);
}
.page-main .detail-btn:hover {
  background: #58BED4;
	transform: translateY(-1px);
	opacity: 1;
	box-shadow:
		inset 0 2px 3px rgba(255, 255, 255, 0.4),
		inset 0 -2px 4px rgba(0, 0, 0, 0.2),
		0 8px 16px rgba(0, 0, 0, 0.3);
}
.page-main .detail-btn span {
	position: relative;
}
.page-main .detail-btn span::before {
	content: '＞';
	font-size: 12px;
	padding-right: 0.2em;
}

.page-main .container {
	margin: 2vw 0;
}
.page-main .sec-title {
	font-size: min(5vw, 30px);
	font-weight: var(--font-weight-medium);
	font-family: var(--font-family-Serif);
	letter-spacing: 0;
	text-align: center;
  background: #ffffeb;
	border-top: 1px solid;
	border-bottom: 1px solid;
	padding: 0.6vw;
	margin-top: 5vw;
	margin-bottom: min(10vw, 50px);
}
/* 検索よけタイトル */
.page-main .sec-titleImg {
	width: 100%;
	margin-bottom: min(10vw, 50px);
}
.page-main .sec-titleImg img {
	width: auto;
	height: 10vw;
	max-height: 73px;
	object-fit: cover;
}
.page-main .c-sec-inner > .sec-title {
	margin-top: 0;
}

.page-main ul:not([class]) li {
	position: relative;
	font-size: calc(18 * min(100vw, var(--contents-inner)) / 1100);
	padding-left: 0.8em;
}
.page-main ul:not([class]) li::before {
	content: '';
	position: absolute;
	top: 0.85em;
	left: 0;
	width: 0.25em;
	height: 0.25em;
	background: var(--color-main);
	border-radius: 100%;
}

/* 目次 */
.page-main .index-box {
	width: 100%;
	max-width: 890px;
	display: flex;
  background: #E9F9C3;
	padding: min(6vw, 54px) 0;
	margin: 0 auto min(10vw, 68px);
}
.page-main .index-box .content_L {
	flex-basis: 35%;
}
.page-main .index-box .content_R {
	flex: 1;
	padding: 0 min(10vw, 110px);
}
.page-main .index-box .ttl-head {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	border-right: 1px solid #2c76d2;
}
.page-main .index-box .ttl-head .en {
	font-size: min(4vw, 18px);
	font-weight: var(--font-weight-light);
	letter-spacing: 0;
}
.page-main .index-box .ttl-head .ja {
	font-size: min(4vw, 18px);
	font-weight: var(--font-weight-light);
	letter-spacing: 0.08em;
}
.page-main .index-list {
	margin: 0;
}
.page-main .index-list li {
	font-weight: var(--font-weight-regular);
}
.page-main .index-list > li > a {
	position: relative;
	display: inline-block;
	font-size: min(4vw, 16px);
	font-weight: var(--font-weight-regular);
	letter-spacing: 0;
	padding-left: 1.25em;
}
.page-main .index-list > li {
	margin-bottom: 0.5em;
}
.page-main .index-list > li > a::before {
	content: '▶';
	position: absolute;
	top: 0;
	left: 0;
	color: #fff;
	margin-right: min(4vw, 1em);
}
.page-main .index-list li ul {
	margin: 0.25em 0.5em;
	margin-left: 1em;
}
.page-main .index-list li ul li a {
	font-size: 80%;
}

/* イントロ */
.page-main .intro-contents {
}
.page-main .intro-title {
	font-size: min(4.5vw, 27px);
	font-weight: var(--font-weight-semibold);
	font-family: var(--font-family-Serif);
	color: var(--color-main);
	letter-spacing: 0;
	margin-bottom: min(5vw, 37px);
}
.page-main .intro-title strong {
	font-size: 125%;
	font-weight: inherit;
}
.page-main .intro-box {
	background: #ffffeb;
	padding: min(6vw, 37px) 4vw min(6.5vw, 43px);
	margin-top: 3vw;
}
.page-main .intro-box .sec-title {
	margin-bottom: calc(30 * min(100vw, 1100px) / 1100);
}
.page-main .intro-box p {
}

/* 考え方 */
.page-main .plan-contents {
}
.page-main .plan-title {
	width: fit-content;
	font-size: min(4.75vw, 27px);
	font-weight: var(--font-weight-semibold);
	font-family: var(--font-family-Serif);
	letter-spacing: 0;
	color: #fff;
	background: #2583d6;
	padding: 0.25em 1em;
	margin: 0 auto 2vw;
}
.page-main .plan-title + .plan-content {
	margin-top: min(10vw, 100px);
}
.page-main .plan-content {
	display: flex;
	gap: min(4vw, 30px);
}
.page-main .plan-content + .plan-content {
	margin-top: calc(30 * min(100vw, 1100px) / 1100);
}
.page-main .plan-content .content_L {
	flex: 1;
}
.page-main .plan-content .content_R {
	flex-basis: 35%;
}
.page-main .plan-titleSub {
	font-size: min(4.5vw, 25px);
	font-weight: var(--font-weight-semibold);
	font-family: var(--font-family-Serif);
	letter-spacing: 0;
	margin: 0 auto min(5vw, 48px);
}
.page-main .plan-titleSub strong {
	font-size: 115%;
}
.page-main .plan-titleSub strong em {
	font-size: 115%;
	font-weight: var(--font-weight-semibold);
	font-family: var(--font-family-Serif);
	letter-spacing: 0;
	color: #2583d6;
	background: #cdddf1;
	padding: 0 0.2em;
	border-radius: 100%;
	margin-right: 0.15em;
}
.page-main .method-titleSub + .plan-contents {
	margin: calc(50 * min(100vw, 1100px) / 1100) auto;
}

/* 治療 */
.page-main .method-contents {
}
.page-main .method-content {
	padding: min(4vw, 25px) min(5vw, 80px) min(4.25vw, 32px);
}
.page-main .method-content + .method-content {
	margin-top: 2em;
}
/* .page-main .method-title {
	font-size: min(5vw, 30px);
	font-weight: var(--font-weight-medium);
	font-family: var(--font-family-Sans);
	letter-spacing: 0;
	margin: 0 2vw 2.5vw;
} */
.page-main .method-title {
	width: fit-content;
	font-size: min(4.75vw, 27px);
	font-weight: var(--font-weight-semibold);
	font-family: var(--font-family-Serif);
	letter-spacing: 0px;
  background: #ffffeb;
	padding: 0.25em 1em;
	margin: 0px auto 2vw;
}
.page-main .method-titleMain {
	font-size: min(4.25vw, 24px);
	font-weight: var(--font-weight-medium);
	font-family: var(--font-family-Sans);
	letter-spacing: 0;
	padding-bottom: 0.2em;
	border-bottom: 1px solid;
	margin: 0 0 1.5vw;
}
.page-main .method-titleSub {
	font-size: min(4.15vw, 20px);
	font-weight: var(--font-weight-medium);
	font-family: var(--font-family-Sans);
	letter-spacing: 0;
	color: #fff;
  background: #9FDD6B;
	padding: 0.15em 1em;
	margin-bottom: 0.6vw;
}
.page-main .method-content {
  background: #ffffeb;
}
.page-main .method-content-column {
	display: flex;
	gap: min(6vw, 50px);
}
.page-main .method-content-column .content_L {
	flex-basis: 33.333%;
}
.page-main .method-content-column .content_R {
	flex: 1;
}
.page-main .method-content-column p + .method-titleSub,
.page-main .method-content-column ul + .method-titleSub {
	margin-top: 1em;
}

/* 特徴 */
.page-main .features-contents {
}
.page-main .features-title-wrap {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: min(4vw, 1.5em);
	background: #ffffeb;
	border-top: 1px solid;
	border-bottom: 1px solid;
	padding: 0.6vw 0;
	margin-top: 5vw;
	margin-bottom: min(10vw, 50px);
}
.page-main .features-title-wrap + .features-box {
	margin-top: min(10vw, 50px);
}

.page-main .features-content + .features-content {
	margin-top: 5vw;
}
.page-main .features-content .features-title-wrap {
	margin-top: 0;
}
.page-main .features-content .pic img {
  width: 100%;
  aspect-ratio: 300 / 200;
  object-fit: cover;
}
.page-main .features-title-wrap .head {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}
.page-main .features-title-wrap .head span {
	font-size: min(4vw, 18px);
	font-weight: var(--font-weight-medium);
	font-family: var(--font-family-Serif);
	letter-spacing: 0;
	line-height: 1;
}
.page-main .features-title-wrap .head .num {
	font-size: min(7vw, 35px);
	color: #978762;
}
.page-main .features-title-wrap .features-title {
	font-size: min(5vw, 30px);
	font-weight: var(--font-weight-medium);
	font-family: var(--font-family-Serif);
	letter-spacing: 0;
}
.page-main .features-titleSub {
	font-size: min(4.5vw, 25px);
	font-weight: var(--font-weight-semibold);
	font-family: var(--font-family-Serif);
	letter-spacing: 0;
	margin: 1vw auto;
}
.page-main .features-titleSub + .features-box {
	margin-top: 0;
}
.page-main .features-box {
	width: 90%;
	max-width: 880px;
	background: #f6f5f2;
	padding: min(6vw, 37px) 2.5vw min(6.5vw, 43px);
	margin: min(10vw, 50px) auto 4vw;
}

/* FAQ */
.faq-title-wrap {
	text-align: center;
	margin-bottom: min(10vw, 120px);
}
.faq-title-wrap .faq-title {
	position: relative;
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	font-size: min(4.5vw, 27px);
	font-weight: var(--font-weight-semibold);
	font-family: var(--font-family-Serif);
	z-index: 0;
}
.faq-title-wrap .faq-title::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 0;
	transform: translate(-50%, -50%);
	width: 5em;
	height: 100%;
	background: url(images/common/faq-title-bg.png) no-repeat top / contain;
	z-index: -1;
}
.faq-title-wrap .faq-title span {
	font-size: min(5vw, 35px);
	font-weight: var(--font-weight-semibold);
	font-family: var(--font-family-Serif);
	color: var(--color-main);
}
.faq-title-wrap .faq-title em {
	font-family: inherit;
}
.faq-title-wrap .faq-title strong {
	font-size: 160%;
}

/* アコーディオン */
#faq .p_accordion__contents {
	max-width: 820px;
	margin: 0 auto;
	list-style: none;
}
#faq .p_accordion__contents .p_accordion__content {
	padding-bottom: 0;
	transition: all 0.2s;
}
#faq .p_accordion__contents .p_accordion__content:last-child {
	margin-bottom: 0;
}
.p_accordion__content + .p_accordion__content {
	margin-top: min(4vw, 20px);
}

/* タイトルエリア */
#faq .p_accordion__title {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	padding: 5px 0;
	padding-right: 0.5em;
	background: #f4f3f9;
}

/* タイトルテキスト */
#faq .p_accordion__label {
	position: relative;
	flex: 1 1 auto;
	font-size: min(4vw, 1rem);
	font-weight: var(--font-weight-bold);
	font-family: var(--font-family-Sans);
	letter-spacing: 0;
	line-height: 1.6;
	color: #2c3397;
	padding: 0 0.5em;
	margin-bottom: 0;
}
#faq .p_accordion__label::before,
#faq .p_accordion__body p::before {
	top: 0;
	display: inline-flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	width: 2em;
	font-size: min(4vw, 25px);
	font-weight: var(--font-weight-bold);
	font-family: var(--font-family-Sans);
	line-height: 1;
	letter-spacing: 0;
}
#faq .p_accordion__label::before {
	content: 'Q';
	position: absolute;
	left: 0;
	height: 1.15em;
	font-style: normal;
	color: #2c3397;
	border-right: 1px solid;
}
#faq .p_accordion__body p::before {
	content: 'A';
	position: absolute;
	left: 0;
	color: var(--color-main);
	line-height: 1.2;
	background: none;
}

/* アイコン */
#faq .p_accordion__icon {
	position: relative;
	width: min(6vw, 2em);
	height: min(6vw, 2em);
	background-color: none;
	flex: none;
	transition: all 0.2s ease;
}
#faq .p_accordion__icon::before,
#faq .p_accordion__icon::after {
	content: '';
	display: inline-block;
	position: absolute;
}
#faq .p_accordion__icon::before {
	content: '▼';
	position: absolute;
	top: 0.25em;
	left: 0;
	right: 0;
	margin: auto;
	width: min(5vw, 1em);
	height: min(5vw, 1em);
	color: #2c3397;
	transition: all 0.1s;
}
/* #faq .p_accordion__icon::after {
	transform: rotate(90deg);
} */
#faq .p_accordion__body {
	display: none; /* 最初は非表示 */
	padding: 16px 0 32px;
	border-radius: 0;
}
#faq .p_accordion__body p {
	position: relative;
	font-weight: var(--font-weight-regular);
	font-family: var(--font-family-Sans);
	padding: 0;
	margin: 0 !important;
}
#faq .p_accordion__label,
#faq .p_accordion__body p {
	font-size: min(4vw, 20px);
	padding-left: 60px;
}

/* テーブル */
.treatment-table {
}
.treatment-table em {
	font-weight: inherit;
	color: inherit;
	border-bottom: 1px solid;
}
.treatment-table th,
.treatment-table td {
	font-size: min(4vw, 18px);
	font-weight: var(--font-weight-medium);
	color: var(--color-sub);
	text-align: center;
	vertical-align: middle;
	padding: 20px;
}
.treatment-table thead {
}
.treatment-table thead th {
	padding: 10px;
	background: #e5eaf1;
	border-right: 5px solid #fff;
	border-bottom: 5px solid #fff;
}
.treatment-table thead th:last-child {
	border-right: 0;
}
.treatment-table tbody tr {
}
.treatment-table tbody td {
	background: #fbf5df;
	border-right: 5px solid #fff;
	border-bottom: 5px solid #fff;
}
.treatment-table tbody td:last-child {
	border-right: 0;
}
.treatment-table tbody td.price {
	text-align: right;
}
.treatment-table tbody td:first-child {
	width: 20%;
	min-width: 160px;
	background: #e5eaf1;
}

/* 流れ */
.page-main .flow-contents {
}
.page-main .flow-content {
	display: flex;
	gap: min(6vw, 50px);
}
.page-main .flow-content .content_L {
	flex-basis: 35%;
}
.page-main .flow-content .content_R {
	flex: 1;
}
.page-main .flow-content .pic {
	background: #e5eaf1;
	padding: 3px;
	box-shadow: 7px 8px 10px rgba(0, 0, 0, 0.14);
}
.page-main .flow-content .pic img {
}
.page-main .flow-content + img.arrow {
	display: block;
	width: 50%;
	max-width: 402px;
	margin: min(10vw, 42px) auto;
}
.page-main .flow-ttl {
	display: flex;
	font-size: min(4.25vw, 24px);
	font-weight: var(--font-weight-medium);
	font-family: var(--font-family-Sans);
	letter-spacing: 0;
	background: #90b3e0;
	padding: 0.15em 1em;
	margin-bottom: min(10vw, 70px);
}
.page-main .flow-ttl span {
	font-size: min(4.5vw, 28px);
	font-weight: var(--font-weight-medium);
	font-family: var(--font-family-Sans);
	letter-spacing: 0;
	color: #fff;
}
.page-main .flow-ttl .num {
	margin-right: 1.5em;
}

.page-main .flow-content p {
	font-family: var(--font-family-Serif);
	font-weight: var(--font-weight-medium);
}

/* 症例 */
.case-content {
}
.case-content__item {
	padding: min(8vw, 35px) min(3vw, 35px);
	background: #fff;
	box-shadow: 7px 8px 21px rgba(0, 0, 0, 0.1);
	margin: 0 auto;
}
.case-content__item + .case-content__item {
	margin-top: min(10vw, 100px);
}
.case-content__item-head {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: flex-end;
	gap: 80px;
	margin-bottom: 34px;
}
.case-content__item-head p {
	font-size: min(3.75vw, 18px);
	font-weight: var(--font-weight-regular);
	line-height: 1;
	color: var(--color-point);
}
.case-content__item-head .arrow {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, calc(-50% + 1em));
	width: 2.5vw;
	max-width: 58px;
}
.case-content__item-head .before p {
	font-size: min(5vw, 35px);
	font-weight: var(--font-weight-regular);
	font-family: var(--font-family-en);
	line-height: 1;
	color: #2c3397;
}
.case-content__item-head .after .pic {
	border: 1px solid #978762;
}
.case-content__item-head .after p {
	font-size: min(6vw, 50px);
	font-weight: var(--font-weight-regular);
	font-family: var(--font-family-en);
	line-height: 1;
	color: #978762;
}

.case-content__item-table {
	display: grid;
}
.case-content__item-table .content {
	display: grid;
	grid-template-columns: 20% auto;
	border-bottom: 1px solid;
}
.case-content__item-table .content .th {
	font-size: min(4.25vw, 20px);
	font-weight: var(--font-weight-regular);
	text-align: center;
	letter-spacing: 0.24em;
	padding: 14px 8px;
}
.case-content__item-table .content .td {
	font-size: min(4vw, 18px);
	font-weight: var(--font-weight-regular);
	padding: 14px 40px;
	background: #fff;
}

/* 種類 */
.page-main .type-contents {
}
.page-main .type-contents .sec-title {
	margin-top: 0;
}
.page-main .type-content {
	display: flex;
	gap: min(6vw, 50px);
	background: #e5eaf1;
	padding: min(5vw, 52px) min(4vw, 34px) min(4vw, 24px);
}
.page-main .type-content + .type-content {
	margin-top: 2em;
}
.page-main .type-content .content_L {
	flex: 1;
}
.page-main .type-content .content_R {
	flex-basis: 40%;
}
.page-main .type-content .ttl {
	font-size: min(4.25vw, 24px);
	font-weight: var(--font-weight-medium);
	text-align: center;
}
.page-main .type-content .ttl + .pic {
	margin-top: min(4vw, 1.5em);
}
.page-main .type-content .pic {
	background: #fff;
}
.page-main .type-content__table {
	background: #fff;
}
.page-main .type-content__table tbody {
}
.page-main .type-content__table tbody th,
.page-main .type-content__table tbody td {
	font-size: min(4vw, 18px);
	color: var(--color-sub);
	padding: 8px 20px;
	border-bottom: 1px solid #bbc3cd;
}
.page-main .type-content__table tbody td:first-child {
	width: 20%;
	min-width: 100px;
	font-size: min();
	text-align: center;
	border-right: 1px solid #bbc3cd;
}
.page-main .type-content ul {
	margin: 0;
}

/* メリット・デメリット */
.page-main .advantages-box {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: min(10vw, 70px);
	width: 100%;
	margin: 3vw auto 5vw;
}
.page-main .advantages-box.col1 {
	grid-template-columns: repeat(1, 1fr);
	gap: min(5vw, 35px);
}
.page-main .advantages-box .box {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	background: #f6f5f2;
}
.page-main .advantages-box .box .ttl {
	font-size: min(4.15vw, 20px);
	font-weight: var(--font-weight-medium);
	text-align: center;
	color: var(--color-sub);
	padding: 0.35em;
}
.page-main .advantages-box .box > div {
	display: flex;
	justify-content: center;
  padding: min(4vw, 2em) min(4vw, 1em);
  background: #f6f5f2;
}
.page-main .advantages-box .box.-style01 .ttl {
  background: #f6d691;
}
.page-main .advantages-box .box.-style02 .ttl {
  background: #b1ccee;
}
.page-main .advantages-box .box.-style03 > div {
  background: #fff;
}

/* チェックシート */
.page-main .diagnosis-box {
}
.page-main .diagnosis-box p {
	font-size: min(4vw, 16px);
	margin-bottom: 0.5em;
}
.page-main .diagnosis-box .sec-title {
	margin-bottom: min(4vw, 22px);
}
.page-main .diagnosis-box .message {
	font-size: min(4vw, 22px);
	font-weight: var(--font-weight-medium);
	color: #2c3397;
	line-height: 1.318;
	margin-bottom: min(5vw, 36px);
}

.page-main .diagnosis-table {
}
.page-main .diagnosis-table td {
	padding: 18px;
}
.page-main .diagnosis-table thead th {
	font-size: min(4vw, 20px);
	font-weight: var(--font-weight-medium);
	text-align: center;
	padding: 3px 30px;
	background: #b1ccee;
}
.page-main .diagnosis-table tr:nth-child(even) td {
	background: #f6f5f2;
}
.page-main .diagnosis-table th,
.page-main .diagnosis-table td {
	font-weight: var(--font-weight-medium);
	text-align: center;
	vertical-align: middle;
	padding: 20px;
}
.page-main .diagnosis-table thead th:last-child {
	border-right: 0;
}
.page-main .diagnosis-table tbody tr {
}
.page-main .diagnosis-table tbody td {
	width: 80px;
}
.page-main .diagnosis-table tbody td:first-child {
	width: 70%;
	max-width: 200px;
	min-width: 160px;
	text-align: left;
	border-right: 1px solid #e3e1dd;
}
.page-main .diagnosis-table tbody td:last-child {
	border-right: 0;
}
.page-main .diagnosis-table .head td {
	font-size: min(3vw, 12px);
	font-weight: var(--font-weight-medium);
	line-height: 1.2;
	padding: 10px 20px;
}
.page-main .diagnosis-table input {
	margin: 0;
	padding: 0;
	background: none;
	border: none;
	border-radius: 0;
	outline: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	position: relative;
	width: 23px;
	height: 23px;
	background: #fff;
	border: 1px solid #e3e1dd;
	cursor: pointer;
}
.page-main .diagnosis-table input:checked::after {
	content: '';
	position: absolute;
	inset: 0;
	width: 15px;
	height: 15px;
	margin: auto;
	background-color: var(--color-point);
}

.page-main .diagnosis-buttons {
	display: flex;
	align-items: stretch;
}
.page-main .diagnosis-buttons > div {
	padding: 20px;
	background: #f6f5f2;
}
.page-main .diagnosis-buttons .content_L {
	flex-basis: 70%;
	min-width: 160px;
}
.page-main .diagnosis-buttons .content_R {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
}
.page-main .diagnosis-buttons .caption {
	color: #8f2626;
}

.page-main .diagnosis-box .resultTtl {
	font-size: min(4vw, 20px);
	font-weight: var(--font-weight-medium);
	text-align: center;
}
.page-main .diagnosis-box .result {
	/* margin-top: 20px; */
	padding: 15px;
	background: #f6f5f2;
}
.page-main #diagnosisBtn {
	display: inline-block;
	padding: 14px 32px;
	background-color: #2fbf71; /* 緑 */
	color: #fff;
	font-size: min(4vw, 20px);
	font-weight: bold;
	border: none;
	border-radius: 50vh;
	cursor: pointer;
	text-align: center;
	transition: all 0.25s ease;
	/* グラデーション（立体感） */
	background: linear-gradient(to bottom, #7fcd5b 0%, #59b439 55%, #4aa52f 100%);
	/* 立体影 */
	box-shadow:
		inset 0 1px 5px rgba(255, 255, 255, 0.4),
		0 3px 10px rgba(0, 0, 0, 0.25);
}
/* hover */
.page-main #diagnosisBtn:hover {
	background-color: #26a863;
}

/* 料金表 */
.page-main .price-table {
}
.page-main .price-table th,
.page-main .price-table td {
	font-size: min(4vw, 20px);
	font-weight: var(--font-weight-medium);
}
.page-main .price-table td {
	padding: 30px;
	border-right: 1px solid #e3e1dd;
	border-bottom: 1px solid #e3e1dd;
}
.page-main .price-table thead {
  border-left: 1px solid #e3e1dd;
}
.page-main .price-table thead th {
	padding: 3px 30px;
  background: #F6F5F1;
  border-right: 1px solid #e3e1dd;
  border-top: 1px solid #e3e1dd;
}
.page-main .price-table thead td {
}
.page-main .price-table tbody tr:first-child td {
	border-top: 1px solid #e3e1dd;
}
.page-main .price-table tbody td:first-child {
	width: 50%;
	max-width: 440px;
	background: #f6f5f2;
	border-left: 1px solid #e3e1dd;
	border-bottom: 1px solid #e3e1dd;
}
.page-main .price-table.auto tbody td:first-child {
  width: 8.5em;
}
.page-main .price-table .price {
	text-align: right;
}

/* セラミック */
.page-main .features-box-contents {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: min(4vw, 2.5em);
	align-items: stretch;
}
.page-main .features-box-content {
	position: relative;
	padding: 0.3vw 1vw;
	padding-right: 1.5vw;
	overflow: visible;
}
.page-main .features-box-content::before {
	content: '';
	position: absolute;
	z-index: -1;
	top: -12px;
	left: -14px;
	width: 100%;
	height: 100%;
	border-radius: inherit;
	opacity: 0.35;
}

.page-main .features-box-content:nth-child(odd) {
	background: rgba(0, 92, 172, 0.25); /* メイン青 */
}
.page-main .features-box-content:nth-child(odd)::before {
	background: #005bacad; /* 背面の薄い青 */
}
.page-main .features-box-content:nth-child(even) {
	background: rgba(127, 176, 107, 0.27); /* メイン緑 */
}
.page-main .features-box-content:nth-child(even)::before {
	background: rgb(127 176 107); /* 背面の薄い緑 */
}
.page-main .features-box-content__num {
	position: absolute;
	top: -0.25em;
	left: 18px;
	transform: translate(-50%, -50%);
	aspect-ratio: 1 / 1;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-family-Serif);
	font-weight: var(--font-weight-regular);
	font-style: italic;
	font-size: calc(32 * min(100vw, 1100px) / 1100);
	letter-spacing: 0;
	line-height: 1;
	color: #fff;
	padding: 0.5vw 0.7vw 0.7vw 0.5vw;
}
.page-main .features-box-content:nth-child(odd) .features-box-content__num {
	background: rgba(0, 92, 172, 0.75); /* 濃い青 */
}
.page-main .features-box-content:nth-child(even) .features-box-content__num {
	background: rgba(101, 169, 64, 0.75); /* 濃い緑 */
}
.page-main .features-box-content__title {
	font-size: calc(18 * min(100vw, 1100px) / 1100);
	font-family: var(--font-family-Sans);
	font-weight: var(--font-weight-medium);
	color: #fff;
	text-align: center;
	margin: 1vw auto;
}
.page-main .features-box-content__title span {
	display: block;
	font-size: calc(26 * min(100vw, 1100px) / 1100);
	font-family: var(--font-family-Sans);
	font-weight: var(--font-weight-medium);
	color: #fff;
	line-height: 1;
}
.page-main .features-box-content__text {
}

/* アクセスマップ */
.access-map {
	margin: 0 auto min(10vw, 50px);
	padding: 0;
	width: 100%;
	max-width: 617px;
	height: auto;
}
.access-map iframe {
	width: 100%;
	margin: 0 auto;
	aspect-ratio: 16 / 9;
}

/* SP設定 */
@media (width < 959px) {
}
@media (width <= 820px) {
	:root {
		--post-paddingY: 15vw;
		--post-paddingX: 3%;
	}
	/* header */

	/* footer */

	.footer-under .inner .flex {
		flex-direction: column;
	}
	/*=========================================
 common
=========================================*/
	.c-btn span {
		position: relative;
		font-size: min(24px, 2vw);
		font-weight: var(--font-weight-medium);
		line-height: 1.4;
		padding-left: 2em;
	}
	.c-btn.tel span {
		font-size: calc(34 * min(100vw, 820px) / 820);
	}

	.c-btn.web span {
		font-size: calc(38 * min(100vw, 820px) / 820);
	}

	.c-tel span {
		position: relative;
		font-size: calc(50 * min(100vw, 820px) / 820);
		font-weight: var(--font-weight-bold);
		font-family: var(--font-family-Sans);
		letter-spacing: 0;
		line-height: 1;
		color: var(--color-sub);
		padding-left: 1em;
	}

	.page-main .-rightSp {
		display: flex;
		justify-content: flex-end;
	}
	.page-main .-leftSp {
		display: flex;
		justify-content: flex-start;
	}
	.page-main .-centerSp {
		display: flex;
		justify-content: center;
	}
	.page-main .-flColumnSp {
		flex-direction: column;
	}

	.page-main .-aicSp {
		align-items: center;
	}
	.page-main .-aisSp {
		align-items: flex-start;
	}
	.page-main .-aieSp {
		align-items: flex-end;
	}
	.page-main .-aibSp {
		align-items: baseline;
	}

	.page-main .-jcsSp {
		justify-content: flex-start;
	}
	.page-main .-jceSp {
		justify-content: flex-end;
	}
	.page-main .-jccSp {
		justify-content: center;
	}
	.page-main .-jcsbSp {
		justify-content: space-between;
	}
	.page-main .-jcsaSp {
		justify-content: space-around;
	}
	.page-main .-jcseSp {
		justify-content: space-evenly;
	}

	.page-main .-tarSp {
		text-align: right !important;
	}
	.page-main .-talSp {
		text-align: left !important;
	}
	.page-main .-tacSp {
		text-align: center !important;
	}
	.page-main .-tajSp {
		text-align: justify !important;
	}

	.page-main .-flRowSp {
		flex-direction: row !important;
	}
	.page-main .-flRowReverseSp {
		flex-direction: row-reverse !important;
	}
	.page-main .-flColumnSp {
		flex-direction: column !important;
	}
	.page-main .-flColumnReverseSp {
		flex-direction: column-reverse !important;
	}

	/*=========================================
 header
=========================================*/

	/*=========================================
 footer
=========================================*/
	/* TOP footer */

	/* 下層 footer */
	.footer-under {
		background: var(--color-footer);
	}
	.footer-under .inner {
		padding-bottom: calc(var(--footer-fixed-height) + var(--post-paddingY));
	}
	.footer-under .inner .flex {
		display: flex;
		justify-content: center;
		gap: calc(50 * min(100vw, 820px) / 820) calc(50 * min(100vw, 820px) / 820);
	}
	.footer-under .inner .footer_L {
		position: relative;
	}
	/* 情報 */
	.footer-under .f_logoColumn {
		display: grid;
		grid-template-columns: 1fr 25%;
	}
	.footer-under .f_logoColumn img {
		width: 100%;
	}
	.footer-under .f_logo {
		width: 90%;
		max-width: 100%;
		margin: 0 0 1vw;
	}
	.footer-under .c-tel {
		margin: 3vw auto 1vw;
	}
	.footer-under .f_address {
		margin: 5vw 0;
	}
	.footer-under .f_address img {
		position: absolute;
		top: 0;
		right: 0;
	}
	.footer-under .f_address p {
		font-size: calc(28 * min(100vw, 820px) / 820);
		font-weight: var(--font-weight-regular);
		padding-left: 1em;
	}
	.footer-under .btns {
		display: flex;
		gap: 2vw;
		margin: 6vw 0 0;
	}
	.footer-under .btns .c-btn {
		width: 100%;
		max-width: 100%;
		height: auto;
		padding: 2vw 1vw;
	}

	/* アンカーリンク */
	.footer-under .head {
		font-size: calc(32 * min(100vw, 820px) / 820);
	}
	.footer-under .head::before {
	}
	.footer-under .head + .footerNavWrap {
		padding: 2vw 0;
	}
	.footer-under .footerNavWrap {
		gap: 3vw;
	}
	.footer-under .footerNavWrap + .head {
		margin-top: 1em;
	}

	/*  style01 */
	/*  style02 */
	.footer-list.-style02 {
		flex: 1;
	}
	.footer-list.-style02 li {
	}
	.footer-list.-style02 li a {
		font-size: calc(27 * min(100vw, 820px) / 820);
	}
	.footer-under .footerContents {
		gap: 3vw;
	}

	/* 下層 MV */
	#sub_fv {
		display: flex;
		flex-direction: column-reverse;
	}
	#sub_fv .sub_fv--left {
		display: none !important;
	}

	#sub_fv .sub_fv--left {
		display: flex;
		flex-direction: row;
		align-items: center;
		justify-content: center;
		gap: 1vw;
		padding: 20px;
	}

	#sub_fv .sub_fv--left img {
	}

	#sub_fv .sub_fv--left p {
		font-size: clamp(24px, 6vw, 80px);
		writing-mode: lr;
		text-orientation: inherit;
	}

	#sub_fv .sub_fv--left p span {
		font-size: clamp(20px, 5vw, 80px);
		margin-left: 0.8em;
	}

	#sub_fv .sub_fv--left p span em {
		font-size: clamp(28px, 6vw, 80px);
	}

	#sub_fv .sub_fv--right {
	}

	#sub_fv #sub_mv {
	}

	#sub_fv .sub_mv-title {
		width: 90%;
	}
	#sub_fv .sub_mv-title .main {
		font-size: clamp(28px, 5vw, 80px);
	}
	#sub_fv .sub_mv-copy .sub {
		font-size: calc(32 * min(100vw, 820px) / 820);
	}
	#sub_fv .sub_mv-copy.sp-bl {
		position: absolute;
		top: 0;
		left: 0;
		transform: translateY(0);
		width: 100%;
		height: 100%;
		z-index: 1;
	}
	#sub_fv .sub_mv-copy.sp-bl .sub {
		width: fit-content;
		font-size: calc(30 * min(100vw, 820px) / 820);
		font-weight: var(--font-weight-regular);
		font-family: var(--font-family-Serif);
		line-height: 2;
		text-shadow:
			0 0 6px rgba(255, 255, 255, 0.9),
			0 0 18px rgba(255, 255, 255, 0.9),
			0 0 40px rgba(255, 255, 255, 0.6),
			0 0 80px rgba(255, 255, 255, 0.5),
			0 0 120px rgba(255, 255, 255, 0.7),
			0 0 6px rgba(255, 255, 255, 0.9),
			0 0 18px rgba(255, 255, 255, 0.9),
			0 0 6px rgba(255, 255, 255, 0.9),
			-20px -7px 18px rgba(255, 255, 255, 0.9),
			0 0 40px rgba(255, 255, 255, 0.6),
			0 0 120px rgba(255, 255, 255, 0.7);
		margin-top: 25vw;
    margin-left: 4vw;
		margin-bottom: 0.25em;
	}

	/* 追従CTA */
	#sp_cta-button {
		display: block;
		position: fixed;
		bottom: 0;
		left: 0;
		z-index: 999;
		width: 100%;
	}
	#sp_cta-button ul {
		position: relative;
		display: flex;
		width: 100%;
	}
	#sp_cta-button ul li {
		flex-basis: 50%;
	}
	#sp_cta-button ul li a {
		width: 100%;
		height: 100%;
		min-height: 64px;
		color: var(--color-point);
		display: flex;
		justify-content: center;
		align-items: center;
		gap: 2vw;
		padding: max(1.125rem, 5.5vw) 0;
		background: var(--color-point);
	}
	#sp_cta-button ul li a span {
		font-size: clamp(20px, 4vw, 40px);
		font-weight: var(--font-weight-regular);
		font-family: var(--font-family-Serif);
		letter-spacing: 0;
		line-height: 1;
		color: #fff;
	}
	#sp_cta-button ul li a img {
		width: max(22px, 5vw);
		height: max(28px, 5vw);
		object-fit: contain;
	}
	#sp_cta-button .cta--tel {
		background: #c0cd4f;
	}
	#sp_cta-button .cta--web {
		background: #88a5cc;
	}

	/* 下層 パーツ */
	.page-main {
		padding-top: 0;
	}
	.page-main p {
		font-size: calc(27 * min(100vw, 820px) / 820);
		line-height: 1.8;
	}
	.page-main .c-sec-inner {
	}
	.page-main .c-sec-inner.-sub {
	}

	.page-main section .c-sec-inner {
	}
	.page-main .d-flex {
		width: 90%;
		gap: calc(50 * min(100vw, 820px) / 820) calc(50 * min(100vw, 820px) / 820);
		margin: 0 auto;
	}
	.page-main .d-flex + .d-flex {
		gap: 0;
		margin-top: calc(60 * min(100vw, 820px) / 820);
	}
	.page-main .d-flex .col100 {
		width: 100%;
	}
	.page-main .d-flex .col90 {
		width: 100%;
	}
	.page-main .d-flex .col80 {
		width: 100%;
	}
	.page-main .d-flex .col70 {
		width: 100%;
	}
	.page-main .d-flex .col60 {
		width: 100%;
	}
	.page-main .d-flex .col50 {
		width: 100%;
	}
	.page-main .d-flex .col40 {
		width: 100%;
	}
	.page-main .d-flex .col30 {
		width: 100%;
	}
	.page-main .d-flex div + div {
		margin: min(10vw, 90px) auto;
	}
	.page-main .d-flex .pic {
		text-align: center;
	}
	.page-main h3.sep-no {
		font-size: calc(35 * min(100vw, 820px) / 820);
		font-family: var(--font-family-Sans);
		font-weight: var(--font-weight-medium);
		color: var(--color-main);
		line-height: 1.2;
		margin: 3vw 0;
		text-align: center;
	}

	.page-main .index-box {
		flex-direction: column;
	}
	.page-main .index-box .page-main .features-box-contents {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 22px;
	}
	.page-main .button-container {
		width: 80%;
		margin: 0 auto;
		gap: 1em;
	}

	.page-main .button-container.-spColumn {
		flex-direction: column;
	}

	.page-main .detail-btn {
		width: 100%;
		display: flex;
		text-align: center;
		justify-content: center;
		padding: 1vw 4vw 1.5vw;
	}
	.page-main .detail-btn + .detail-btn {
		margin-top: 0;
	}
	.page-main .detail-btn span {
		font-size: calc(32 * min(100vw, 820px) / 820);
	}

	.page-main .detail-btn span::before {
		font-size: calc(32 * min(100vw, 820px) / 820);
	}

	.page-main .container {
	}

	.page-main .sec-title {
		font-size: calc(44 * min(100vw, 820px) / 820);
		padding: 2vw 1vw;
	}

	/* 検索よけタイトル */
	.page-main .sec-titleImg {
	}

	.page-main .sec-titleImg img {
	}

	.page-main .c-sec-inner > .sec-title {
		margin-bottom: 4vw;
	}

	.page-main ul:not([class]) li {
		font-size: calc(27 * min(100vw, 820px) / 820);
	}
	.page-main ul:not([class]) li::before {
	}

	/* 目次 */
	.page-main .index-box {
		margin: 0 auto 5vw;
	}

	.page-main .index-box .content_L {
	}

	.page-main .index-box .content_R {
	}

	.page-main .index-box .ttl-head {
		width: 90%;
		border-right: 0;
		border-bottom: 1px solid #2c76d2;
		padding-bottom: 3vw;
		margin: 0 auto 6vw;
	}

	.page-main .index-box .ttl-head .en {
		font-size: calc(41 * min(100vw, 820px) / 820);
	}

	.page-main .index-box .ttl-head .ja {
		font-size: calc(41 * min(100vw, 820px) / 820);
	}

	.page-main .index-list {
	}

	.page-main .index-list li {
	}

	.page-main .index-list > li > a {
		font-size: calc(24 * min(100vw, 820px) / 820);
		padding-left: 2em;
	}

	.page-main .index-list > li {
		margin-bottom: 3vw;
	}

	.page-main .index-list > li > a::before {
	}

	.page-main .index-list li ul {
	}

	.page-main .index-list li ul li a {
	}

	/* イントロ */
	.page-main .intro-contents {
	}

	.page-main .intro-title {
		font-size: calc(32 * min(100vw, 820px) / 820);
		text-align: center;
	}

	.page-main .intro-title strong {
		font-size: 115%;
	}

	.page-main .intro-box {
	}

	.page-main .intro-box .sec-title {
	}

	.page-main .intro-box p {
	}

	/* 考え方 */
	.page-main .plan-contents {
	}

	.page-main .plan-title {
		font-size: calc(40 * min(100vw, 820px) / 820);
		text-align: center;
		margin: 0 auto 4vw;
	}

	.page-main .plan-title + .plan-content {
	}

	.page-main .plan-content {
		flex-direction: column-reverse;
	}

	.page-main .plan-content + .plan-content {
		margin-top: calc(60 * min(100vw, 820px) / 820);
	}

	.page-main .plan-content .content_L {
	}

	.page-main .plan-content .content_R {
	}

	.page-main .plan-titleSub {
		font-size: calc(30 * min(100vw, 820px) / 820);
	}

	.page-main .plan-titleSub strong {
		font-size: 135%;
	}
	.page-main .plan-titleSub strong em {
	}

	.page-main .method-titleSub + .plan-contents {
	}

	/* 治療 */
	.page-main .method-contents {
	}

	.page-main .method-content {
		margin-left: calc(50% - 50vw);
		margin-right: calc(50% - 50vw);
		padding: 3vw;
	}

	.page-main .method-content + .method-content {
	}

	.page-main .method-title {
		font-size: calc(40 * min(100vw, 820px) / 820);
		margin: 0 auto 4vw;
	}

	.page-main .method-titleMain {
		font-size: calc(28 * min(100vw, 820px) / 820);
		padding-bottom: 2vw;
		border-bottom: 1px solid;
		margin: 0 0 3vw;
	}

	.page-main .method-titleSub {
		font-size: calc(28 * min(100vw, 820px) / 820);
	}

	.page-main .method-content {
		padding: 5vw 3vw 3vw;
	}

	.page-main .method-content-column {
		flex-direction: column;
		gap: 3vw;
	}

	.page-main .method-content-column .content_L {
	}

	.page-main .method-content-column .content_R {
	}
	.page-main .method-content-column .content_L figure.pic {
		width: 90%;
		display: flex;
		aspect-ratio: 3 / 2;
		overflow: hidden;
		margin: 0 auto;
	}
	.page-main .method-content-column .content_L figure.pic img {
		object-fit: contain;
	}
	.page-main .method-content-column p + .method-titleSub {
	}

	/* 特徴 */
	.page-main .features-contents {
	}

	.page-main .features-title-wrap {
	}

	.page-main .features-title-wrap + .features-box {
		margin: min(10vw, 50px) auto 10vw;
	}
	.page-main .features-title-wrap + .features-box p {
		font-size: calc(27 * min(100vw, 820px) / 820);
	}

	.page-main .features-content + .features-content {
		margin-top: 10vw;
	}

	.page-main .features-content .features-title-wrap {
		align-items: flex-start;
		padding: 2vw;
	}

	.page-main .features-title-wrap .head {
	}

	.page-main .features-title-wrap .head span {
		font-size: calc(30 * min(100vw, 820px) / 820);
	}

	.page-main .features-title-wrap .head .num {
		font-size: calc(59 * min(100vw, 820px) / 820);
	}

	.page-main .features-title-wrap .features-title {
		font-size: calc(42 * min(100vw, 820px) / 820);
		text-align: center;
	}

	.page-main .features-titleSub {
		font-size: calc(30 * min(100vw, 820px) / 820);
		margin: 4vw 0;
	}

	.page-main .features-titleSub + .features-box {
	}

	.page-main .features-box {
		width: 100%;
		font-size: calc(27 * min(100vw, 820px) / 820);
	}

	/* FAQ */
	.faq-title-wrap {
	}

	.faq-title-wrap .faq-title {
	}

	.faq-title-wrap .faq-title::before {
		left: -5%;
		transform: translate(0, -50%);
	}
	.faq-title-wrap .faq-title span {
		font-size: calc(40 * min(100vw, 820px) / 820);
	}

	.faq-title-wrap .faq-title em {
	}

	.faq-title-wrap .faq-title strong {
		font-size: 180%;
	}

	/* アコーディオン */
	#faq .p_accordion__contents {
	}

	#faq .p_accordion__contents .p_accordion__content {
	}

	#faq .p_accordion__contents .p_accordion__content:last-child {
	}

	.p_accordion__content + .p_accordion__content {
	}

	/* タイトルエリア */
	#faq .p_accordion__title {
		align-items: center;
		padding: 1vw;
	}

	/* タイトルテキスト */
	#faq .p_accordion__label {
		font-size: calc(27 * min(100vw, 820px) / 820);
	}

	#faq .p_accordion__label::before,
	#faq .p_accordion__body p::before {
	}

	#faq .p_accordion__label::before {
		width: 1.5em;
		font-size: calc(37 * min(100vw, 820px) / 820);
		padding-right: 0.25em;
		border-right: 0.35vw solid;
	}

	#faq .p_accordion__body p::before {
		width: 1.75em;
		font-size: calc(35 * min(100vw, 820px) / 820);
	}

	/* アイコン */
	#faq .p_accordion__icon {
	}

	#faq .p_accordion__icon::before,
	#faq .p_accordion__icon::after {
	}

	#faq .p_accordion__icon::before {
		font-size: calc(27 * min(100vw, 820px) / 820);
	}

	/* #faq .p_accordion__icon::after {
} */

	#faq .p_accordion__body {
		padding: 2vw 0 2vw;
	}

	#faq .p_accordion__body p {
		font-size: calc(27 * min(100vw, 820px) / 820);
	}

	#faq .p_accordion__label,
	#faq .p_accordion__body p {
		padding-left: calc(80 * min(100vw, 820px) / 820);
	}

	/* 診療時間テーブル */
	.p_clinicHoursTable_contents {
		padding: 4vw;
	}

	.p_clinicHoursTable {
	}

	.p_clinicHoursTable table {
	}

	.p_clinicHoursTable table tr,
	.p_clinicHoursTable table th,
	.p_clinicHoursTable table td {
	}

	.p_clinicHoursTable table {
	}

	.p_clinicHoursTable table th,
	.p_clinicHoursTable table td {
		border-bottom: 1px solid oklab(0.65 0 0.03 / 0.22);
	}

	.p_clinicHoursTable table thead {
	}

	.p_clinicHoursTable table thead th {
	}

	.p_clinicHoursTable table thead th {
		font-size: calc(25 * min(100vw, 820px) / 820);
		height: auto;
		padding: 0 0 3vw;
	}

	.p_clinicHoursTable table tbody th,
	.p_clinicHoursTable table tbody td {
		font-size: calc(25 * min(100vw, 820px) / 820);
		height: auto;
		padding: 5vw 0;
	}

	.p_clinicHoursTable table thead th:first-child,
	.p_clinicHoursTable table tbody td:first-child,
	.p_clinicHoursTable table tfoot td:first-child {
		min-width: auto;
	}

	.p_clinicHoursTable table tbody td:not(:first-of-type) {
		font-size: calc(25 * min(100vw, 820px) / 820);
	}

	.p_clinicHoursTable table tbody tr:nth-child(2) td {
		border-bottom: 0;
	}

	.p_clinicHoursTable table tbody td em,
	.p_clinicHoursTable table tbody td span {
	}

	.p_clinicHoursTable table tbody td.num {
	}

	.p_clinicHoursTable table tbody td.num span {
	}

	.p_clinicHoursTable table tfoot {
	}

	.p_clinicHoursTable table tfoot th,
	.p_clinicHoursTable table tfoot td {
	}

	.p_clinicHoursTable table tfoot td:first-child {
	}

	.p_clinicHoursTable_contents .table-btm {
		padding: 0;
	}
	.p_clinicHoursTable_contents .table-btm p {
		font-size: calc(25 * min(100vw, 820px) / 820);
	}

	/* テーブル */
	.treatment-table {
	}

	.treatment-table em {
	}

	.treatment-table th,
	.treatment-table td {
		font-size: calc(24 * min(100vw, 820px) / 820);
		font-weight: var(--font-weight-regular);
		padding: 2vw 0.5vw;
	}
	.treatment-table small {
		display: inline-block;
		font-size: 60%;
	}
	.treatment-table thead {
	}

	.treatment-table thead th {
		padding: 1vw 0;
		border-right: 0.5vw solid #fff;
		border-bottom: 0.5vw solid #fff;
	}

	.treatment-table thead th:last-child {
	}

	.treatment-table tbody tr {
	}

	.treatment-table tbody td {
		width: 25%;
		min-width: max-content;
		border-right: 0.5vw solid #fff;
		border-bottom: 0.5vw solid #fff;
	}

	.treatment-table tbody td:last-child {
	}

	.treatment-table tbody td.price {
	}

	.treatment-table tbody td:first-child {
		width: 20%;
		min-width: 0;
	}

	/* 流れ */
	.page-main .flow-contents {
	}

	.page-main .flow-content {
		flex-direction: column;
		gap: 4vw;
	}

	.page-main .flow-content .content_L {
	}

	.page-main .flow-content .content_R {
	}

	.page-main .flow-content .pic {
	}

	.page-main .flow-content .pic img {
	}

	.page-main .flow-content + img.arrow {
		width: 70%;
		margin: 5vw auto;
	}

	.page-main .flow-ttl {
		margin-bottom: 4vw;
	}
	.page-main .flow-ttl.sp-fl {
		margin-bottom: 4vw;
	}

	.page-main .flow-ttl span {
		font-size: calc(35 * min(100vw, 820px) / 820);
	}

	.page-main .flow-ttl .num {
	}

	.page-main .flow-content p {
	}

	/* 症例 */
	.case-content {
	}

	.case-content__item {
	}

	.case-content__item + .case-content__item {
	}

	.case-content__item-head {
		gap: 10vw;
	}

	.case-content__item-head p {
	}

	.case-content__item-head .arrow {
		top: 55%;
		width: 5.5vw;
	}

	.case-content__item-head .before p {
		font-size: calc(38 * min(100vw, 820px) / 820);
	}

	.case-content__item-head .after .pic {
	}

	.case-content__item-head .after p {
		font-size: calc(54 * min(100vw, 820px) / 820);
	}

	.case-content__item-table {
	}

	.case-content__item-table .content {
		grid-template-columns: 30% auto;
	}

	.case-content__item-table .content .th {
		font-size: calc(27 * min(100vw, 820px) / 820);
	}

	.case-content__item-table .content .td {
		font-size: calc(27 * min(100vw, 820px) / 820);
		padding: 3vw 5vw;
	}

	/* 種類 */
	.page-main .type-contents {
	}

	.page-main .type-contents .sec-title {
	}

	.page-main .type-content {
		flex-direction: column-reverse;
		gap: 4vw;
	}

	.page-main .type-content + .type-content {
	}

	.page-main .type-content .content_L {
	}

	.page-main .type-content .content_R {
	}

	/* .page-main .type-content .pic {
		width: 100%;
		aspect-ratio: 3/2;
		background: none;
	}
	.page-main .type-content .pic img {
		width: 100%;
		height: 100%;
		-o-object-fit: cover;
		object-fit: contain;
	} */

	.page-main .type-content .ttl {
		font-size: calc(33 * min(100vw, 820px) / 820);
	}

	.page-main .type-content .ttl + .pic {
	}

	.page-main .type-content__table {
	}

	.page-main .type-content__table tbody {
	}

	.page-main .type-content__table tbody th,
	.page-main .type-content__table tbody td {
		font-size: calc(27 * min(100vw, 820px) / 820);
	}

	.page-main .type-content__table tbody td:first-child {
	}

	.page-main .type-content ul {
	}

	/* メリット・デメリット */
	.page-main .advantages-box {
		grid-template-columns: repeat(1, 1fr);
		gap: 6vw;
		margin: 5vw auto 10vw;
	}

	.page-main .advantages-box .box {
	}

	.page-main .advantages-box .box .ttl {
		font-size: calc(27 * min(100vw, 820px) / 820);
	}

	.page-main .advantages-box .box > div {
		justify-content: flex-start;
	}

	.page-main .advantages-box .box.-style01 .ttl {
	}

	.page-main .advantages-box .box.-style02 .ttl {
	}

	/*  */
	.page-main .advantages-box ul:not([class]) li {
		font-size: calc(24 * min(100vw, 820px) / 820);
	}

	/* チェックシート */
	.page-main .diagnosis-box {
	}

	.page-main .diagnosis-box p {
		font-size: calc(25 * min(100vw, 820px) / 820);
		margin: 0 0 10vw;
	}

	.page-main .diagnosis-box .sec-title {
		margin: 0 0 10vw;
	}

	.page-main .diagnosis-box .message {
		font-size: calc(33 * min(100vw, 820px) / 820);
		margin: 0 0 10vw;
	}

	.page-main #diagnosisForm {
		margin-left: calc(50% - 50vw);
		margin-right: calc(50% - 50vw);
	}
	.page-main .diagnosis-table {
	}

	.page-main .diagnosis-table td {
	}

	.page-main .diagnosis-table thead th {
	}

	.page-main .diagnosis-table tr:nth-child(even) td {
	}

	.page-main .diagnosis-table th,
	.page-main .diagnosis-table td {
	}

	.page-main .diagnosis-table thead th:last-child {
		font-size: calc(25 * min(100vw, 820px) / 820);
		padding: 1vw;
		margin: 0 0 10vw;
	}

	.page-main .diagnosis-table tbody tr {
	}

	.page-main .diagnosis-table tbody td {
	}

	.page-main .diagnosis-table tbody td:first-child {
		width: 60%;
		font-size: calc(28 * min(100vw, 820px) / 820);
	}

	.page-main .diagnosis-table tbody td:last-child {
	}

	.page-main .diagnosis-table .head td {
		font-size: calc(20 * min(100vw, 820px) / 820);
		padding: 1vw;
	}

	.page-main .diagnosis-table input {
	}

	.page-main .diagnosis-table input:checked::after {
	}

	.page-main .diagnosis-buttons {
		flex-direction: column;
	}

	.page-main .diagnosis-buttons > div {
		padding: 5vw;
	}
	.page-main .diagnosis-buttons > div + div {
		padding-top: 0;
	}
	.page-main .diagnosis-buttons .content_L {
	}

	.page-main .diagnosis-buttons .content_R {
	}

	.page-main .diagnosis-buttons .caption {
		margin-bottom: 0;
	}

	.page-main .diagnosis-box .resultTtl {
	}

	.page-main .diagnosis-box .result {
		margin-left: calc(50% - 50vw);
		margin-right: calc(50% - 50vw);
	}

	.page-main #diagnosisBtn {
		font-size: calc(40 * min(100vw, 820px) / 820);
		padding: 4vw 10vw;
	}

	.page-main #diagnosisBtn:hover {
	}

	/* 料金表 */
	.page-main .price-table {
	}

	.page-main .price-table th,
	.page-main .price-table td {
	}

	.page-main .price-table td {
		padding: 3vw;
	}

	.page-main .price-table thead {
	}

	.page-main .price-table thead th {
		padding: 3px 3vw;
	}

	.page-main .price-table thead td {
	}

	.page-main .price-table tbody tr:first-child td {
	}

	.page-main .price-table tbody td:first-child {
	}

	.page-main .price-table .price {
	}

	/* セラミック */
	.page-main .features-box-contents {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		row-gap: 10vw;
		column-gap: 5vw;
	}

	.page-main .features-box-content {
		padding: 4vw 5vw 4vw 4vw;
	}

	.page-main .features-box-content::before {
	}

	.page-main .features-box-content:nth-child(odd) {
	}

	.page-main .features-box-content:nth-child(odd)::before {
	}

	.page-main .features-box-content:nth-child(even) {
	}

	.page-main .features-box-content:nth-child(even)::before {
	}

	.page-main .features-box-content__num {
		left: auto;
		font-size: calc(56 * min(100vw, 820px) / 820);
		padding-right: 1.7vw;
	}

	.page-main .features-box-content:nth-child(odd) .features-box-content__num {
	}

	.page-main .features-box-content:nth-child(even) .features-box-content__num {
	}

	.page-main .features-box-content__title {
		font-size: calc(30 * min(100vw, 820px) / 820);
		margin: 0 auto 3vw;
	}

	.page-main .features-box-content__title span {
		font-size: calc(36 * min(100vw, 820px) / 820);
	}

	.page-main .features-box-content__text {
	}

	/* アクセスマップ */
	.access-map {
	}
	.access-map iframe {
		height: auto;
	}

	/* 虫歯治療 */
	.page-main .cavities .plan-content {
		position: relative;
		flex-direction: row;
		gap: 0;
	}
	.page-main .cavities .plan-content .content_R {
		flex-basis: 40%;
	}
	.page-main .cavities .plan-content .content_L {
		margin-right: -1em;
		margin-bottom: 10vw;
		z-index: 1;
	}
	.page-main .cavities .method-content-column .content_L figure.pic {
		background: #fff;
	}

	.page-main .cavities .plan-content .plan-titleSub {
		display: flex;
		font-size: calc(34 * min(100vw, 820px) / 820);
		flex-direction: column;
	}
	.page-main .cavities .plan-content .plan-titleSub p {
		font-size: calc(34 * min(100vw, 820px) / 820);
		font-weight: var(--font-weight-semibold);
		font-family: var(--font-family-Serif);
		letter-spacing: 0;
		text-align: center;
		margin-top: 3vw;
	}

	/*  */
	#mission .page-main .intro-title {
		font-size: calc(35 * min(100vw, 820px) / 820);
	}
}

/* =======================================
Base / Layout
======================================= */
:root {
	--home-max: 1440px;
	--home-gutter: 24px;
	--home-gutter-sp: 16px;

	--home-radius: 12px;
	--home-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
	--home-border: 1px solid rgba(0, 0, 0, 0.08);

	--home-text: #222;
	--home-muted: rgba(0, 0, 0, 0.6);
	--home-bg: #fff;
	--home-sub: #f6f8fb;
}

.main {
	color: var(--home-text);
	background: var(--home-bg);
}

.l-container {
	width: min(100%, var(--home-max));
	margin-inline: auto;
	padding-inline: var(--home-gutter);
}

@media (max-width: 767px) {
	.l-container {
		padding-inline: var(--home-gutter-sp);
	}
}

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

a {
	color: inherit;
	text-decoration: none;
}
ul,
ol {
	margin: 0;
	padding: 0;
	list-style: none;
}
/* セクション間の余白（まずは共通） */
.home-fv,
.home-feature,
.home-approach,
.home-message,
.home-reason-intro,
.home-reasons,
.home-treatment,
.home-doctor,
.home-gallery,
.home-news,
.home-access,
.home-reserve {
	padding-block: 80px;
}

@media (max-width: 767px) {
	.home-fv,
	.home-feature,
	.home-approach,
	.home-message,
	.home-reason-intro,
	.home-reasons,
	.home-treatment,
	.home-doctor,
	.home-gallery,
	.home-news,
	.home-access,
	.home-reserve {
		padding-block: 56px;
	}
}

/* =======================================
FV / MV（4分割）
======================================= */
.home-fv__inner {
	position: relative;
}

.home-fv__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-template-rows: 1fr 1fr;
	gap: 0;
	overflow: hidden;
	border-radius: var(--home-radius);
}

.home-fv__panel {
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
}

.home-fv__panel img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.home-fv__copy {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	pointer-events: none;
}

.home-fv__copy-vertical {
	writing-mode: vertical-rl;
	text-orientation: mixed;
	background: rgba(255, 255, 255, 0.92);
	padding: 12px 10px;
	box-shadow: var(--home-shadow);
	border-radius: 6px;
}

.home-fv__copy-vertical--lead {
	margin-right: 16px;
	font-size: clamp(16px, 1.8vw, 24px);
}

.home-fv__copy-vertical--main {
	font-size: clamp(18px, 2.2vw, 30px);
	letter-spacing: 0.08em;
}

.home-fv__copy-vertical--main .is-accent {
	color: #b45a6b;
	font-weight: 700;
}

@media (max-width: 767px) {
	.home-fv__panel {
		aspect-ratio: 4 / 3;
	}
	.home-fv__copy {
		place-items: center;
	}
	.home-fv__copy-vertical {
		transform: scale(0.95);
	}
}

/* =======================================
Feature（写真ストリップ + 縦コピー + 4矢印）
======================================= */
.home-feature__photos {
	margin-bottom: 32px;
}

.home-feature__photo-list {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 12px;
}

.home-feature__photo-item {
	border-radius: var(--home-radius);
	overflow: hidden;
	box-shadow: var(--home-shadow);
}

.home-feature__photo-item img {
	width: 100%;
	height: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

.home-feature__content {
	display: grid;
	grid-template-columns: 220px 1fr;
	gap: 32px;
	align-items: start;
}

.home-feature__headline {
	display: grid;
	gap: 16px;
	justify-items: start;
}

.home-feature__headline-vertical {
	writing-mode: vertical-rl;
	text-orientation: mixed;
	background: rgba(255, 255, 255, 0.92);
	padding: 12px 10px;
	border-radius: 6px;
	box-shadow: var(--home-shadow);
	letter-spacing: 0.08em;
}

.home-feature__headline-vertical--accent {
	color: #6ea21a;
	font-weight: 700;
}

.home-feature__point-list {
	display: grid;
	gap: 18px;
}

.home-feature__point-item {
	background: #fff;
	border: var(--home-border);
	border-radius: 999px;
	padding: 18px 24px;
	box-shadow: var(--home-shadow);
	position: relative;
	overflow: hidden;
}

.home-feature__point-text {
	font-size: clamp(16px, 1.6vw, 22px);
	font-weight: 600;
}

@media (max-width: 767px) {
	.home-feature__photo-list {
		grid-template-columns: repeat(2, 1fr);
	}
	.home-feature__content {
		grid-template-columns: 1fr;
	}
	.home-feature__headline {
		grid-auto-flow: column;
		justify-content: start;
		gap: 12px;
	}
	.home-feature__headline-vertical {
		writing-mode: horizontal-tb;
		text-orientation: initial;
	}
}

/* =======================================
Approach（4カード）
======================================= */
.home-approach__title {
	text-align: center;
	font-size: clamp(22px, 2.2vw, 34px);
	margin: 0 0 40px;
	letter-spacing: 0.04em;
}

.home-approach__card-list {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
}

.home-approach__card {
	background: #fff;
	border-radius: var(--home-radius);
	box-shadow: var(--home-shadow);
	overflow: hidden;
}

.home-approach__card-img img {
	width: 100%;
	height: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.home-approach__card-text {
	margin: 0;
	padding: 16px 16px 18px;
	font-weight: 600;
	line-height: 1.6;
}

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

/* =======================================
Message（縦見出し + 画像）
======================================= */
.home-message__grid {
	display: grid;
	gap: 48px;
}

.home-message__block {
	display: grid;
	grid-template-columns: 1.1fr 0.9fr;
	gap: 28px;
	align-items: center;
}

.home-message__media {
	border-radius: var(--home-radius);
	overflow: hidden;
	box-shadow: var(--home-shadow);
}

.home-message__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 16 / 9;
}

.home-message__vertical {
	writing-mode: vertical-rl;
	text-orientation: mixed;
	background: rgba(255, 255, 255, 0.92);
	padding: 14px 12px;
	border-radius: 6px;
	box-shadow: var(--home-shadow);
	margin: 0 0 14px;
	font-size: clamp(18px, 2vw, 28px);
	letter-spacing: 0.08em;
}

.home-message__text p {
	margin: 0 0 10px;
	color: var(--home-muted);
	line-height: 1.9;
}

@media (max-width: 767px) {
	.home-message__block {
		grid-template-columns: 1fr;
	}
	.home-message__vertical {
		writing-mode: horizontal-tb;
	}
}

/* =======================================
Reason intro（大バナー + doctor cut + CTA）
======================================= */
.home-reason-intro__hero {
	position: relative;
	padding: 56px 24px 32px;
	border-radius: var(--home-radius);
	background: var(--home-sub);
	overflow: hidden;
}

.home-reason-intro__hero-title {
	background: rgba(255, 255, 255, 0.92);
	box-shadow: var(--home-shadow);
	border-radius: 8px;
	padding: 18px 20px;
	margin: 0 auto 20px;
	max-width: 980px;
	text-align: center;
}

.home-reason-intro__hero-title h2 {
	margin: 0 0 8px;
	font-size: clamp(20px, 2vw, 30px);
}
.home-reason-intro__hero-title p {
	margin: 0;
	color: var(--home-muted);
}

.home-reason-intro__hero-body {
	max-width: 980px;
	margin: 0 auto;
	color: var(--home-muted);
	line-height: 1.9;
}

.home-reason-intro__doctor {
	margin: 28px 0 0;
	display: flex;
	justify-content: end;
}

.home-reason-intro__doctor img {
	max-width: 380px;
	width: min(38vw, 380px);
}

.home-reason-intro__thumb-list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
	margin-top: 18px;
}

.home-reason-intro__thumb-item {
	border-radius: var(--home-radius);
	overflow: hidden;
	box-shadow: var(--home-shadow);
}

.home-reason-intro__thumb-item img {
	width: 100%;
	height: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.home-reason-intro__cta {
	margin-top: 40px;
	background: rgba(255, 255, 255, 0.92);
	border-radius: 10px;
	box-shadow: var(--home-shadow);
	padding: 26px 20px;
	text-align: center;
}

.home-reason-intro__cta-lead {
	margin: 0 0 10px;
	color: var(--home-muted);
}

.home-reason-intro__cta-title {
	margin: 0;
	font-size: clamp(22px, 2.4vw, 40px);
}

@media (max-width: 767px) {
	.home-reason-intro__hero {
		padding: 36px 14px 24px;
	}
	.home-reason-intro__doctor {
		justify-content: center;
	}
	.home-reason-intro__thumb-list {
		grid-template-columns: 1fr;
	}
}

/* =======================================
Reasons（1〜5 ジグザグ）
======================================= */
.home-reasons__list {
	display: grid;
	gap: 42px;
}

.home-reasons__item {
	position: relative;
	display: grid;
	grid-template-columns: 140px 1fr 1fr;
	gap: 22px;
	align-items: center;
}

.home-reasons__num {
	font-size: 72px;
	font-weight: 800;
	line-height: 1;
	color: rgba(0, 0, 0, 0.12);
	text-align: center;
}

.home-reasons__media {
	border-radius: var(--home-radius);
	overflow: hidden;
	box-shadow: var(--home-shadow);
}

.home-reasons__media img {
	width: 100%;
	height: 100%;
	aspect-ratio: 16/10;
	object-fit: cover;
}

.home-reasons__card {
	background: rgba(255, 255, 255, 0.92);
	border-radius: 12px;
	box-shadow: var(--home-shadow);
	padding: 22px 22px;
}

.home-reasons__title {
	margin: 0 0 10px;
	font-size: clamp(18px, 1.7vw, 26px);
}

.home-reasons__text {
	margin: 0;
	color: var(--home-muted);
	line-height: 1.9;
}

.home-reasons__item--reverse {
	grid-template-columns: 140px 1fr 1fr;
}
.home-reasons__item--reverse .home-reasons__media {
	order: 3;
}
.home-reasons__item--reverse .home-reasons__card {
	order: 2;
}

@media (max-width: 1024px) {
	.home-reasons__item {
		grid-template-columns: 100px 1fr;
		grid-template-rows: auto auto;
	}
	.home-reasons__num {
		grid-column: 1 / 2;
		grid-row: 1 / 3;
		font-size: 56px;
	}
	.home-reasons__media {
		grid-column: 2 / 3;
	}
	.home-reasons__card {
		grid-column: 2 / 3;
	}
	.home-reasons__item--reverse .home-reasons__media,
	.home-reasons__item--reverse .home-reasons__card {
		order: initial;
	}
}
@media (max-width: 767px) {
	.home-reasons__item {
		grid-template-columns: 1fr;
		gap: 14px;
	}
	.home-reasons__num {
		text-align: left;
		padding-left: 6px;
	}
}

/* =======================================
Treatment（六角アイコン：いったんカードグリッド）
※六角形は後でclip-path等で詰めればOK。まずは形優先
======================================= */
.home-treatment__title {
	text-align: center;
	font-size: clamp(22px, 2vw, 34px);
	margin: 0 0 36px;
}

.home-treatment__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 18px;
}

.home-treatment__item {
	background: #fff;
	border-radius: 14px;
	box-shadow: var(--home-shadow);
	border: var(--home-border);
}

.home-treatment__link {
	display: grid;
	justify-items: center;
	gap: 10px;
	padding: 18px 12px 16px;
}

.home-treatment__icon {
	width: 64px;
	height: 64px;
	border-radius: 999px;
	border: 2px solid rgba(0, 0, 0, 0.18);
	background: rgba(0, 0, 0, 0.02);
}
.home-treatment__icon img {
	width: 100%;
	height: auto;
	display: block;
}

.home-treatment__text {
	font-weight: 600;
	text-align: center;
}

.home-treatment__item--accent {
	border-color: rgba(120, 180, 60, 0.35);
}

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

/* =======================================
Doctor
======================================= */
.home-doctor__title {
	text-align: center;
	font-size: clamp(22px, 2.2vw, 34px);
	margin: 0 0 40px;
}

.home-doctor__inner {
	display: grid;
	grid-template-columns: 420px 1fr;
	gap: 28px;
	align-items: start;
}

.home-doctor__photo {
	margin: 0;
	border-radius: var(--home-radius);
	overflow: hidden;
	box-shadow: var(--home-shadow);
}

.home-doctor__photo img {
	width: 100%;
	height: auto;
	object-fit: cover;
}

.home-doctor__content {
	background: rgba(255, 255, 255, 0.92);
	border-radius: 12px;
	box-shadow: var(--home-shadow);
	padding: 24px 22px;
}

.home-doctor__lead {
	margin: 0 0 12px;
	font-weight: 700;
}

.home-doctor__text p {
	margin: 0 0 10px;
	color: var(--home-muted);
	line-height: 1.9;
}

.home-doctor__name {
	margin-top: 18px;
	padding-top: 16px;
	border-top: var(--home-border);
}

.home-doctor__name-role {
	margin: 0 0 4px;
	color: var(--home-muted);
}
.home-doctor__name-main {
	margin: 0;
	font-size: 22px;
	font-weight: 800;
}
.home-doctor__name-sub {
	font-weight: 500;
	color: var(--home-muted);
	margin-left: 8px;
}

.home-doctor__career-title {
	margin: 18px 0 10px;
	font-size: 18px;
}

.home-doctor__career-list {
	display: grid;
	gap: 8px;
	color: var(--home-muted);
}

.home-doctor__cert-list {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 12px;
	margin-top: 18px;
}

.home-doctor__cert-list img {
	width: 100%;
	aspect-ratio: 4/3;
	object-fit: cover;
	border-radius: 10px;
	box-shadow: var(--home-shadow);
}

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

/* =========================
home-fv
========================= */
.home-fv {
	padding: 80px 0;
	position: relative;
}

.home-fv__inner {
	position: relative;
}

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

.home-fv__panel {
	position: relative;
	overflow: hidden;
}

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

/* 縦コピー */
.home-fv__copy {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	display: flex;
	gap: 20px;
	z-index: 2;
}

.home-fv__copy-vertical {
	writing-mode: vertical-rl;
	background: #fff;
	padding: 20px 12px;
	font-size: 20px;
	line-height: 1.8;
}

.home-fv__copy-vertical--main {
	font-size: 24px;
	font-weight: bold;
}

.home-fv__copy-vertical .is-accent {
	color: #6bb23f;
}

/* SP */
@media (max-width: 767px) {
	.home-fv {
		padding: 40px 0;
	}

	.home-fv__copy {
		position: static;
		transform: none;
		justify-content: center;
		margin-top: 20px;
	}

	.home-fv__copy-vertical {
		writing-mode: horizontal-tb;
		padding: 12px 16px;
	}
}

/* =========================
home-service
========================= */
.home-service {
	padding: 120px 0;
	background: #fafafa;
}

.home-service__list {
	display: flex;
	flex-direction: column;
	gap: 120px;
}

/* 各ブロック */
.home-service__item {
	position: relative;
	display: grid;
	grid-template-columns: 1fr 420px;
	gap: 40px;
	align-items: center;
}

.home-service__item--02 {
	grid-template-columns: 420px 1fr;
}

/* ラベル */
.home-service__label {
	position: absolute;
	top: -40px;
	left: 0;
	background: #2c6cb0;
	color: #fff;
	padding: 12px 16px;
}

.home-service__label--right {
	left: auto;
	right: 0;
}

.home-service__label-main {
	font-weight: bold;
	line-height: 1.3;
}

/* テキスト */
.home-service__content {
	background: #fff;
	padding: 40px;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
}

.home-service__title {
	font-size: 24px;
	margin-bottom: 20px;
}

.home-service__checklist {
	margin-bottom: 20px;
}

.home-service__check {
	position: relative;
	padding-left: 1.6em;
	margin-bottom: 10px;
}

.home-service__check::before {
	content: '✓';
	position: absolute;
	left: 0;
	color: #2c6cb0;
	font-weight: bold;
}

.home-service__text {
	font-size: 14px;
	line-height: 1.8;
}

/* 画像 */
.home-service__media img {
	width: 100%;
	display: block;
}

.home-service__media--left {
	order: -1;
}

/* SP */
@media (max-width: 767px) {
	.home-service {
		padding: 60px 0;
	}

	.home-service__list {
		gap: 60px;
	}

	.home-service__item,
	.home-service__item--02 {
		grid-template-columns: 1fr;
	}

	.home-service__label {
		position: static;
		margin-bottom: 10px;
	}

	.home-service__media--left {
		order: 0;
	}
}

/* =======================================
Gallery
======================================= */
.home-gallery__title {
	font-size: clamp(22px, 2vw, 34px);
	margin: 0 0 28px;
	text-align: center;
}

.home-gallery__main {
	border-radius: var(--home-radius);
	overflow: hidden;
	box-shadow: var(--home-shadow);
}

.home-gallery__main img {
	width: 100%;
	aspect-ratio: 16/9;
	object-fit: cover;
}

.home-gallery__thumbs {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
	margin-top: 18px;
}

.home-gallery__thumb {
	border-radius: var(--home-radius);
	overflow: hidden;
	box-shadow: var(--home-shadow);
}

.home-gallery__thumb img {
	width: 100%;
	aspect-ratio: 4/3;
	object-fit: cover;
}

@media (max-width: 767px) {
	.home-gallery__thumbs {
		grid-template-columns: 1fr;
	}
}

/* =======================================
News
======================================= */
.home-news__title {
	font-size: clamp(22px, 2vw, 34px);
	margin: 0 0 28px;
	text-align: center;
}

.home-news__list {
	background: rgba(255, 255, 255, 0.92);
	border-radius: 12px;
	box-shadow: var(--home-shadow);
	padding: 14px 18px;
}

.home-news__item {
	display: grid;
	grid-template-columns: 140px 110px 1fr 18px;
	gap: 14px;
	align-items: center;
	padding: 14px 6px;
	border-bottom: var(--home-border);
}

.home-news__item:last-child {
	border-bottom: none;
}

.home-news__date {
	color: var(--home-muted);
}
.home-news__label {
	display: inline-grid;
	place-items: center;
	padding: 6px 10px;
	border-radius: 6px;
	background: rgba(70, 120, 200, 0.12);
	font-weight: 700;
	font-size: 14px;
}
.home-news__link {
	line-height: 1.6;
}
.home-news__link:hover {
	text-decoration: underline;
}

.home-news__item::after {
	content: '';
	width: 10px;
	height: 10px;
	border-top: 2px solid rgba(0, 0, 0, 0.35);
	border-right: 2px solid rgba(0, 0, 0, 0.35);
	transform: rotate(45deg);
	justify-self: end;
}

@media (max-width: 767px) {
	.home-news__item {
		grid-template-columns: 1fr;
		gap: 8px;
	}
	.home-news__item::after {
		display: none;
	}
	.home-news__label {
		justify-self: start;
	}
}

/* =======================================
Access
======================================= */
.home-access__title {
	font-size: clamp(22px, 2vw, 34px);
	margin: 0 0 28px;
	text-align: center;
}

.home-access__inner {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 22px;
	align-items: start;
}

.home-access__left,
.home-access__right {
	background: rgba(255, 255, 255, 0.92);
	border-radius: 12px;
	box-shadow: var(--home-shadow);
	padding: 18px;
}

.home-access__schedule {
	border-radius: 10px;
	overflow: hidden;
	box-shadow: var(--home-shadow);
	margin-bottom: 16px;
}

.home-access__schedule img {
	width: 100%;
	height: auto;
	display: block;
}

.home-access__info {
	display: grid;
	gap: 10px;
}

.home-access__info-row {
	display: grid;
	grid-template-columns: 90px 1fr;
	gap: 12px;
	padding: 10px 0;
	border-bottom: var(--home-border);
}

.home-access__info-row:last-child {
	border-bottom: none;
}

.home-access__info-row dt {
	color: var(--home-muted);
	font-weight: 700;
}
.home-access__info-row dd {
	margin: 0;
	line-height: 1.7;
}

.home-access__map {
	border-radius: 10px;
	overflow: hidden;
	box-shadow: var(--home-shadow);
}

.home-access__map img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

@media (max-width: 767px) {
	.home-access__inner {
		grid-template-columns: 1fr;
	}
}

/* =======================================
Reserve（フッター手前）
======================================= */
.home-reserve__inner {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 22px;
	align-items: center;
	background: var(--home-sub);
	border-radius: var(--home-radius);
	padding: 28px 22px;
}

.home-reserve__logo img {
	max-width: 340px;
	height: auto;
}

.home-reserve__buttons {
	display: grid;
	gap: 12px;
	justify-items: end;
}

.home-reserve__btn {
	display: grid;
	grid-auto-flow: row;
	justify-items: center;
	text-align: center;
	padding: 16px 18px;
	border-radius: 10px;
	box-shadow: var(--home-shadow);
	min-width: 320px;
	border: var(--home-border);
}

.home-reserve__btn--tel {
	background: rgba(70, 140, 230, 0.18);
}
.home-reserve__btn--web {
	background: rgba(245, 185, 70, 0.25);
}

.home-reserve__btn-label {
	font-weight: 800;
}
.home-reserve__btn-value {
	margin-top: 4px;
	font-weight: 800;
	font-size: 18px;
}

.home-reserve__note {
	grid-column: 1 / -1;
	margin-top: 10px;
	color: var(--home-muted);
	line-height: 1.9;
}

@media (max-width: 767px) {
	.home-reserve__inner {
		grid-template-columns: 1fr;
	}
	.home-reserve__buttons {
		justify-items: stretch;
	}
	.home-reserve__btn {
		min-width: auto;
		width: 100%;
	}
	.home-reserve__logo {
		display: grid;
		justify-items: center;
	}
}
