﻿/**********************************************
* 
* p-About
*
***********************************************/
/* p-AboutPolicy
***********************************************/

.p-AboutPolicy_inner {
	position: relative;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 30px;
	margin-bottom: -5px;
}

.p-AboutPolicy_visual {
	position: relative;
	max-width: 400px;
	width: 40%;
	margin-left: 50px;
}

.p-AboutPolicy_en {
	position: absolute;
	top: clamp(-40px, 23.412px - 5.392vw, -18px);
	left: clamp(-158px, 72.588px - 19.608vw, -78px);
	margin: 0;
	color: #fff;
	font-family: var(--font-en);
	font-size: clamp(5rem, -4.412rem + 12.255vw, 10rem);
	font-weight: 400;
	letter-spacing: 0.04em;
	line-height: 1;
	white-space: nowrap;
	writing-mode: vertical-rl;
	text-align: right;
	pointer-events: none;
	z-index: 1;
}

.p-AboutPolicy_enBr {
	margin-bottom: -68px;
}

.p-AboutPolicy_visualImg {
	width: 100%;
	height: auto;
	display: block;
}

.p-AboutPolicy_body {
	flex: 1;
	min-width: 0;
	padding-top: 21px;
	max-width: 576px;
}

.p-AboutPolicy_heading {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.p-AboutPolicy_label {
	display: flex;
	align-items: center;
	gap: 20px;
	width: 100%;
	color: var(--color-primary);
	font-size: 2.2rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1;
}

.p-AboutPolicy_label::after {
	content: "";
	flex: 1;
	height: 1px;
	background: var(--color-primary);
}

.p-AboutPolicy_title {
	margin-top: 30px;
}

@media (max-width: 767px) {
	.p-AboutPolicy_inner {
		flex-direction: column;
		gap: 0;
	}

	.p-AboutPolicy_body {
		display: contents;
	}

	.p-AboutPolicy_heading {
		order: 1;
		width: 100%;
		margin-top: 9px;
	}

	.p-AboutPolicy_visual {
		order: 2;
		width: calc(100% - 30px);
		margin-top: 33px;
		margin-left: 0;
	}

	.p-AboutPolicy_en {
		top: -76px;
        left: auto;
        right: -10px;
		font-size: 3.8rem;
	}

	.p-AboutPolicy_enBr {
		margin-bottom: -26px;
	}

	.p-AboutPolicy_text {
		order: 3;
		padding-right: 13px;
		margin-bottom: -8px;
	}

	.p-AboutPolicy_p + .p-AboutPolicy_p {
		margin-top: 8px;
	}

	.p-AboutPolicy_label {
		gap: 15px;
		font-size: 1.6rem;
		letter-spacing: 0.04em;
	}

	.p-AboutPolicy_title {
		margin-top: 16px;
		font-size: 2.4rem;
		line-height: 1.5;
	}
}

/* p-AboutGreeting
***********************************************/
.p-AboutGreeting {
	margin-top: 120px;
}

.p-AboutGreeting_inner {
	position: relative;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 30px;
}

.p-AboutGreeting_body {
	flex: 1;
	min-width: 0;
	max-width: 665px;
}

.p-AboutGreeting_visual {
	position: relative;
	max-width: 360px;
    width: 40%;
	padding-bottom: 122px;
}

.p-AboutGreeting_visualPicture {
	display: block;
	overflow: hidden;
	border-radius: 10px;
}

.p-AboutGreeting_visualImg {
	width: 100%;
	height: auto;
	display: block;
}

.p-AboutGreeting_name {
	position: absolute;
	right: clamp(-41px, 77.176px - 8.549vw, 0px);
	bottom: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 320px;
	height: 160px;
	padding: 32px 20px 0;
	background: var(--color-white);
	border-radius: 10px;
}

.p-AboutGreeting_role {
	color: var(--color-text);
	font-size: 1.8rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1;
}

.p-AboutGreeting_person {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	width: 280px;
	margin-top: 19px;
	padding-top: 22px;
	border-top: 1px solid #cbcbcb;
}

.p-AboutGreeting_personJp {
	color: var(--color-text);
	font-size: 3rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1;
}

.p-AboutGreeting_personEn {
	color: var(--color-primary);
	font-family: var(--font-en);
	font-size: 1.6rem;
	letter-spacing: 0.04em;
	line-height: 1;
}

@media (max-width: 767px) {
	.p-AboutGreeting {
		margin-top: 57px;
	}

	.p-AboutGreeting_inner {
		flex-direction: column;
		gap: 0;
	}

	.p-AboutGreeting_body {
		display: contents;
		max-width: none;
	}

	.p-AboutGreeting .Title01 {
		order: 1;
		width: 100%;
	}

	.p-AboutGreeting_visual {
		order: 2;
		width: 260px;
		max-width: 100%;
		margin-top: 39px;
		padding-bottom: 27px;
	}

	.p-AboutGreeting_name {
		right: -50px;
		width: 218px;
		height: 90px;
		padding: 16px 14px 0;
	}

	.p-AboutGreeting_role {
		font-size: 1.3rem;
	}

	.p-AboutGreeting_person {
		gap: 24px;
        width: 190px;
        margin-top: 12px;
        padding-top: 9px;
	}

	.p-AboutGreeting_personJp {
		font-size: 1.8rem;
	}

	.p-AboutGreeting_personEn {
		font-size: 1.2rem;
	}

	.p-AboutGreeting .Text {
		order: 3;
		margin-top: 30px;
		padding-right: 15px;
	}
}

/* p-AboutStaff
***********************************************/
.p-AboutStaff {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 280px;
	padding: 0 clamp(40px, -191.529px + 30.147vw, 163px);
	overflow: hidden;
	border-radius: 10px;
	background: var(--color-text);
	color: var(--color-white);
	margin: 116px -5px 0;
}

.p-AboutStaff_img {
	position: absolute;
	inset: 0;
	z-index: 1;
	opacity: 0.3;
}

.p-AboutStaff_img picture,
.p-AboutStaff_imgEl {
	display: block;
	width: 100%;
	height: 100%;
}

.p-AboutStaff_imgEl {
	object-fit: cover;
	transition: transform 0.4s ease-in-out;
}

.p-AboutStaff_en {
	position: absolute;
	bottom: -15px;
	left: 20px;
	z-index: 0;
	color: var(--color-white);
	font-family: var(--font-en);
	font-size: 10rem;
	letter-spacing: 0.04em;
	line-height: 1;
	opacity: 0.2;
	pointer-events: none;
	white-space: nowrap;
}

.p-AboutStaff_title {
	position: relative;
	z-index: 2;
	font-size: 3.6rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: calc(46 / 36);
}

.p-AboutStaff_arrow {
	position: relative;
	z-index: 2;
	flex-shrink: 0;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--color-primary);
}

.p-AboutStaff_arrow::after {
	content: "";
	position: absolute;
	inset: 0;
	margin: auto;
	width: 8px;
	height: 8px;
	border-right: 2px solid var(--color-white);
	border-bottom: 2px solid var(--color-white);
	transform: rotate(-45deg) translate(-1px, -1px);
}

@media (hover: hover) and (pointer: fine) {
	.p-AboutStaff:hover .p-AboutStaff_imgEl{
		transform: scale(1.05);
	}
}

@media (max-width: 767px) {
	.p-AboutStaff {
		height: 157px;
		margin-top: 68px;
		padding: 0 25px;
	}

	.p-AboutStaff_en {
		left: 7px;
		bottom: -6px;
		font-size: 4.4rem;
	}

	.p-AboutStaff_title {
		font-size: 2rem;
		letter-spacing: 0.05em;
		line-height: 1.4;
	}
}

/* p-AboutFacilities
***********************************************/
.p-AboutFacilities {
	margin-top: 120px;
}

.p-AboutFacilities_card {
	margin-top: 76px;
	padding: 66px clamp(25px, -78.529px + 13.480vw, 80px) 70px;
	background: var(--color-white);
	border-radius: 10px;
}

.p-AboutFacilities_rooms {
	--_gutter: clamp(15px, -35.824px + 6.618vw, 42px);
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin-inline: calc(var(--_gutter) * -1);
}

.p-AboutFacilities_item {
	position: relative;
	min-width: 0;
	padding: 0 var(--_gutter);
}

.p-AboutFacilities_item + .p-AboutFacilities_item::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	width: 1px;
	border-radius: 10px;
	background: #cbcbcb;
}

.p-AboutFacilities_title {
	margin-top: -1px;
}

.p-AboutFacilities_itemImg {
	margin-top: 20px;
	overflow: hidden;
	border-radius: 10px;
}

.p-AboutFacilities_itemImg picture,
.p-AboutFacilities_itemImgEl {
	display: block;
	width: 100%;
	height: auto;
}

.p-AboutFacilities_itemText {
	margin-top: 27px;
	font-weight: 500;
}

.p-AboutFacilities_equip {
	display: flex;
	align-items: flex-start;
	gap: clamp(20px, 4.4vw, 60px);
	margin-top: 46px;
	padding-top: 47px;
	border-top: 1px solid #cbcbcb;
	min-width: 0;
}

.p-AboutFacilities_equipBody {
	flex: 1 1 auto;
	min-width: 0;
}

.p-AboutFacilities_equip .p-AboutFacilities_itemText {
	margin-top: 17px;
}

.p-AboutFacilities_list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, auto));
	grid-template-rows: auto auto;
	grid-auto-flow: column;
	justify-content: start;
	column-gap: clamp(16px, 3.67vw, 50px);
	row-gap: 16px;
	margin-top: 30px;
}

.p-AboutFacilities_listItem {
	position: relative;
	padding-left: 16px;
	font-size: 1.6rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1;
}

.p-AboutFacilities_listItem::before {
	content: "";
	position: absolute;
	top: 56%;
	left: 0;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--color-primary);
	transform: translateY(-50%);
}

.p-AboutFacilities_equipImgs {
	flex: 0 1 auto;
	min-width: 280px;
	width: clamp(280px, 43.5%, 420px);
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(8px, 1.47vw, 20px);
	margin-top: 3px;
}

.p-AboutFacilities_equipImg {
	overflow: hidden;
	border-radius: 10px;
}

.p-AboutFacilities_equipImg picture,
.p-AboutFacilities_equipImgEl {
	display: block;
	width: 100%;
	height: auto;
}

@media (max-width: 1023px) {
	.p-AboutFacilities_list {
		column-gap: 20px;
		row-gap: 12px;
	}
}

@media (max-width: 767px) {
	.p-AboutFacilities {
		margin-top: 66px;
	}

	.p-AboutFacilities .Text {
		margin-top: 36px;
        padding: 0 8px;
	}

	.p-AboutFacilities_card {
		margin-top: 40px;
		padding: 27px 30px 33px;
	}

	.p-AboutFacilities_rooms {
		display: flex;
		flex-direction: column;
		margin-inline: 0;
	}

	.p-AboutFacilities_item {
		padding: 0;
	}

	.p-AboutFacilities_item + .p-AboutFacilities_item {
		margin-top: 30px;
		padding-top: 30px;
		border-top: 1px solid #cbcbcb;
	}

	.p-AboutFacilities_item + .p-AboutFacilities_item::before {
		display: none;
	}

	.p-AboutFacilities_itemImg {
		margin-top: 21px;
	}

	.p-AboutFacilities_itemText {
		margin-top: 22px;
		font-size: 1.6rem;
		letter-spacing: 0.04em;
		line-height: 1.75;
	}

	.p-AboutFacilities_equip {
		margin-top: 30px;
		padding-top: 30px;
		display: grid;
		grid-template-columns: 1fr;
		gap: 0;
		border-top: 1px solid #cbcbcb;
	}

	.p-AboutFacilities_equipBody {
		display: contents;
	}

	.p-AboutFacilities_equipImgs {
		order: 1;
		flex: none;
		width: 100%;
		max-width: 100%;
		min-width: 0;
		margin-top: 21px;
		gap: 9px;
	}

	.p-AboutFacilities_list {
		order: 3;
		width: 100%;
		margin-top: 19px;
        column-gap: 31px;
        row-gap: 12px;
	}

	.p-AboutFacilities_listItem {
		font-size: 1.4rem;
		padding-left: 13px;
	}

	.p-AboutFacilities_listItem::before {
		width: 5px;
		height: 5px;
	}


	.p-AboutFacilities_equip .p-AboutFacilities_itemText {
		order: 2;
		margin-top: 32px;
	}
}

/* p-AboutOutline
***********************************************/
.p-AboutOutline {
	margin-bottom: 121px;
}

.p-AboutOutline_inner {
	display: flex;
	align-items: flex-start;
}

.p-AboutOutline_heading {
	position: sticky;
	top: 30px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	flex-shrink: 0;
	width: 263px;
	padding-top: 90px;
}

.p-AboutOutline_table {
	position: relative;
	flex: 1;
	min-width: 0;
	margin-right: calc(50% - 50vw);
	padding: 100px 100px 100px 120px;
	border-radius: 10px 0 0 10px;
}

.p-AboutOutline_table::before {
	content: "";
	position: absolute;
	inset: 0;
	background-color: #a5a5a5;
	mix-blend-mode: color-burn;
	border-radius: 10px 0 0 10px;
	pointer-events: none;
	z-index: -1;
}

.p-AboutOutline_dl {
	position: relative;
	max-width: 983px;
}

.p-AboutOutline_row {
	display: grid;
	grid-template-columns: 240px minmax(0, 1fr);
	align-items: start;
	padding: 27px 0 26px;
	border-top: 1px solid #cbcbcb;
}

.p-AboutOutline_row:last-child {
	border-bottom: 1px solid #cbcbcb;
}

.p-AboutOutline_term {
	color: var(--color-primary);
	font-size: 1.7rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.2;
}

.p-AboutOutline_desc {
	color: var(--color-text);
	font-size: 1.6rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.2;
}

.p-AboutOutline_address {
	line-height: 1.5;
	margin-top: -4px;
}

.p-AboutOutline_mapBtn {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	width: 172px;
	height: 37px;
	margin-top: 12px;
	padding: 0 10px 0 19px;
	border-radius: 18.5px;
	background: var(--color-primary);
	color: var(--color-white);
	font-family: var(--font-en);
	font-size: 1.8rem;
	letter-spacing: 0.04em;
	line-height: 1;
	transition: background-color 0.4s ease-in-out;
}

.p-AboutOutline_mapBtn::before {
	content: "";
	display: block;
	flex-shrink: 0;
	width: 13px;
	height: 16px;
	mask: url(../../images/common/icon-map.svg) center / contain no-repeat;
	background-color: var(--color-white);
}

.p-AboutOutline_tel {
	color: inherit;
}

.p-AboutOutline_services {
	display: grid;
	grid-template-columns: auto auto;
	grid-template-rows: repeat(4, auto);
	grid-auto-flow: column;
	justify-content: start;
	column-gap: 29px;
	row-gap: 16px;
}

.p-AboutOutline_servicesItem {
	position: relative;
	padding-left: 16px;
	line-height: 1;
}

.p-AboutOutline_servicesItem::before {
	content: "";
	position: absolute;
	top: 8px;
	left: 0;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--color-primary);
	transform: translateY(-50%);
}

@media (hover: hover) and (pointer: fine) {
	.p-AboutOutline_mapBtn:hover {
		background-color: var(--color-accent);
	}
}

@media (max-width: 1023px) {
	.p-AboutOutline_heading {
		position: static;
	}

	.p-AboutOutline_inner {
		flex-direction: column;
	}

	.p-AboutOutline_table {
		margin-top: 40px;
		padding: 40px 15px 40px 30px;
		border-radius: 8px 0 0 8px;
		width: 100%;
	}

	.p-AboutOutline_table::before {
		right: calc(var(--gutter) * -1);
	}
}

@media (max-width: 767px) {
	.p-AboutOutline {
		margin-bottom: 69px;
	}

	.p-AboutOutline_heading {
		width: auto;
		padding-top: 0;
	}

	.p-AboutOutline_table::before {
		border-radius: 8px 0 0 8px;
	}

	.p-AboutOutline_row {
		display: flex;
		flex-direction: column;
		gap: 22px;
		padding: 26px 0;
	}

	.p-AboutOutline_term,
	.p-AboutOutline_desc {
		font-size: 1.5rem;
	}

	.p-AboutOutline_address {
		line-height: 1.55;
	}

	.p-AboutOutline_mapBtn {
		width: 157px;
        height: 34px;
        margin-top: 9px;
        padding: 0 7px 0 20px;
        border-radius: 17px;
        gap: 7px;
        font-size: 1.6rem;
	}

	.p-AboutOutline_services {
		grid-template-columns: 1fr;
		grid-template-rows: none;
		grid-auto-flow: row;
		column-gap: 0;
		row-gap: 8px;
	}

	.p-AboutOutline_servicesItem {
		padding-left: 13px;
		line-height: 1.2;
	}

	.p-AboutOutline_servicesItem::before {
		width: 5px;
		height: 5px;
	}

	.p-AboutOutline_servicesItem:last-child::before {
		top: 0.55em;
		transform: none;
	}
}

/**********************************************
* 
* p-Access
*
***********************************************/
/* p-AccessHours
***********************************************/
.p-AccessHours_headWrap {
	max-width: 826px;
	margin: 0 auto;
}

.p-AccessHours_head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 40px;
}

.p-AccessHours_heading {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	flex-shrink: 0;
	padding-top: 32px;
}

.p-AccessHours_schedule {
	width: 540px;
	flex-shrink: 0;
	padding: 13px 20px 13px;
	background: var(--color-white);
	border-radius: 10px;
}

.p-AccessHours_schedule .Schedule_note {
	text-align: left;
	line-height: 1.6;
	margin-top: 0;
}

.p-AccessHours_schedule .Schedule_note:first-of-type {
	margin-top: 11px;
}

.p-AccessHours_scheduleLink {
	color: var(--color-accent);
	font-weight: 700;
	text-decoration: underline;
	transition: color 0.4s ease-in-out;
}
.p-AccessHours .Text {
	margin-top: 47px;
}

.p-AccessHours_reserve {
	position: relative;
	margin-top: 66px;
	padding: 68px 80px 50px;
	background: var(--color-white);
	border-radius: 10px;
	text-align: center;
}

.p-AccessHours_alert {
	position: absolute;
	top: 0;
	left: 50%;
	display: grid;
	place-items: center;
	width: 80px;
	height: 80px;
	margin: 0;
	border-radius: 50%;
	background: var(--gradient);
	color: var(--color-text);
	font-family: var(--font-en);
	font-size: 4.2rem;
	letter-spacing: 0.04em;
	line-height: 1;
	transform: translate(-50%, -50%);
}

.p-AccessHours_reserveTitle {
	color: var(--color-text);
	font-size: 2.8rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1;
}

.p-AccessHours_reserveTitleEm {
	color: var(--color-primary);
}

.p-AccessHours_reserveText {
	margin-top: 24px;
	font-weight: 500;
}

.p-AccessHours_cards {
	display: flex;
	justify-content: center;
	gap: 20px;
	margin-top: 29px;
}

.p-AccessHours_card {
	display: grid;
	grid-template-columns: 60px minmax(0, 1fr);
	column-gap: 20px;
	width: 320px;
	padding: 20px 20px 0;
	border-radius: 10px;
	background: var(--color-primary);
	color: var(--color-white);
	text-align: left;
	transition: background-color 0.4s ease-in-out;
}

.p-AccessHours_cardIcon {
	position: relative;
	display: grid;
	place-items: center;
	width: 60px;
	height: 60px;
	flex-shrink: 0;
}

.p-AccessHours_cardIcon::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 50%;
	background: var(--color-white);
	opacity: 0.2;
}

.p-AccessHours_cardIconImg {
	position: relative;
	z-index: 1;
	width: 18px;
	height: 30px;
}

.p-AccessHours_cardIconImg.-phone {
	width: 22px;
	height: 22px;
}

.p-AccessHours_cardBody {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-width: 0;
}

.p-AccessHours_cardText {
	font-size: 2rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1.4;
}

.p-AccessHours_cardLabel {
	font-size: 1.6rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1;
}

.p-AccessHours_cardTel {
	margin-top: 10px;
	font-size: 2.8rem;
	font-family: var(--font-num);
	letter-spacing: 0.02em;
	line-height: 1;
}

.p-AccessHours_cardNote {
	display: flex;
	grid-column: 1 / -1;
	align-items: baseline;
	justify-content: center;
	gap: 8px;
	width: 100%;
	margin: 14px 0 20px;
	padding: 6px 8px;
	border-radius: 13px;
	background: var(--color-white);
	color: var(--color-primary);
	font-size: 1.3rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1;
	transition: color 0.4s ease-in-out;
}

.p-AccessHours_cardHours {
	font-weight: 500;
	font-family: var(--font-num);
	letter-spacing: 0.05em;
}

.p-AccessHours_notice {
	margin-top: 77px;
}

.p-AccessHours_noticeList {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
	margin-top: 31px;
	margin-bottom: -20px;
}

.p-AccessHours_noticeItem {
	padding: 53px 50px 47px;
	background: var(--color-white);
	border-radius: 10px;
}

.p-AccessHours_noticeHeading {
	padding-bottom: 21px;
	border-bottom: 2px solid #cbcbcb;
	color: var(--color-text);
	font-size: 2.2rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1.2;
}

.p-AccessHours_noticeText {
	margin-top: 26px;
	font-weight: 500;
}

.p-AccessHours_noticeEm {
	color: var(--color-primary);
	font-weight: 700;
}

@media (hover: hover) and (pointer: fine) {
	.p-AccessHours_card:hover {
		background-color: var(--color-accent);
	}

	.p-AccessHours_card:hover .p-AccessHours_cardNote {
		color: var(--color-accent);
	}

	.p-AccessHours_scheduleLink:hover {
		color: var(--color-primary);
	}
}

@media (max-width: 1023px) {
	.p-AccessRoute_tbNoBr {
		display: none!important;
	}
}

@media (max-width: 767px) {
	.p-AccessHours_head {
		flex-direction: column;
		gap: 0;
	}

	.p-AccessHours_heading {
		padding-top: 0;
	}

	.p-AccessHours_schedule {
		width: 100%;
		margin-top: 40px;
		padding: 12px 15px 14px;
	}

	.p-AccessHours .Text {
		margin-top: 22px;
		padding-right: 10px;
	}

	.p-AccessHours_reserve {
		margin-top: 54px;
		padding: 34px 30px 30px;
	}

	.p-AccessHours_alert {
		width: 45px;
		height: 45px;
		font-size: 2.8rem;
		padding-top: 4px;
	}

	.p-AccessHours_reserveTitle {
		font-size: 2rem;
	}

	.p-AccessHours_reserveText {
		margin-top: 26px;
		font-size: 1.5rem;
		letter-spacing: 0.04em;
		line-height: 1.87;
		text-align: left;
		padding-right: 5px;
	}

	.p-AccessHours_cards {
		flex-direction: column;
		gap: 15px;
		margin-top: 26px;
	}

	.p-AccessHours_card {
		grid-template-columns: 46px minmax(0, 1fr);
		column-gap: 14px;
		width: 100%;
		padding: 18px 20px 0;
	}

	.p-AccessHours_cardIcon {
		width: 46px;
		height: 46px;
	}

	.p-AccessHours_cardIconImg {
		width: 14px;
		height: 24px;
	}

	.p-AccessHours_cardIconImg.-phone {
		width: 18px;
		height: 18px;
	}

	.p-AccessHours_cardText {
		font-size: 1.6rem;
	}

	.p-AccessHours_cardLabel {
		font-size: 1.3rem;
		letter-spacing: 0.02em;
	}

	.p-AccessHours_cardTel {
		margin-top: 8px;
		font-size: 2.2rem;
	}

	.p-AccessHours_cardNote {
		gap: 12px;
		width: auto;
		margin: 17px -20px 0;
		padding: 11px 8px 12px;
		border-radius: 0 0 10px 10px;
		border: 1px solid var(--color-primary);
		border-top: 0;
		font-size: 1.4rem;
	}

	.p-AccessHours_cardHours {
		font-size: 1.5rem;
	}

	.p-AccessHours_notice {
		margin-top: 57px;
	}

	.p-AccessHours_noticeList {
		display: flex;
		flex-direction: column;
		gap: 15px;
		margin-top: 23px;
	}

	.p-AccessHours_noticeItem {
		padding: 27px 30px 26px;
	}

	.p-AccessHours_noticeHeading {
		padding-bottom: 13px;
		border-bottom-width: 1px;
		font-size: 1.8rem;
		line-height: 1.67;
	}

	.p-AccessHours_noticeText {
		margin-top: 20px;
		font-size: 1.5rem;
		letter-spacing: 0.04em;
		line-height: 1.87;
		padding-right: 1px;
	}
}

/* p-AccessRoute
***********************************************/
.p-AccessRoute {
	padding-bottom: 120px;
}

.p-AccessRoute_top {
	display: grid;
	grid-template-columns: 373px minmax(0, 1fr);
	grid-template-rows: auto 1fr;
	column-gap: clamp(30px, calc(30px + (90 - 30) * ((100vw - 768px) / (1176 - 768))), 90px);
	align-items: start;
	margin-bottom: 80px;
}

.p-AccessRoute_heading {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	grid-column: 1;
	grid-row: 1;
}

.p-AccessRoute_map {
	position: relative;
	grid-column: 1;
	grid-row: 2;
	width: 100%;
	margin-top: 40px;
	aspect-ratio: 373 / 288;
	overflow: hidden;
	border-radius: 10px;
}

.p-AccessRoute_mapEmbed {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}

.p-AccessRoute_info {
	grid-column: 2;
	grid-row: 1 / span 2;
	padding-top: 60px;
}

.p-AccessRoute_row {
	display: grid;
	grid-template-columns: 240px minmax(0, 1fr);
	align-items: start;
	padding: 25px 19px 24px;
	border-top: 1px solid #cbcbcb;
}

.p-AccessRoute_row:last-child {
	border-bottom: 1px solid #cbcbcb;
}

.p-AccessRoute_term {
	color: var(--color-primary);
	font-size: 1.7rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.2;
}

.p-AccessRoute_desc {
	color: var(--color-text);
	font-size: 1.6rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.5;
}

.p-AccessRoute_card {
	margin-top: 30px;
	padding: clamp(30px, calc(30px + (66 - 30) * ((100vw - 768px) / (1176 - 768))), 66px) clamp(30px, calc(30px + (80 - 30) * ((100vw - 768px) / (1176 - 768))), 80px) clamp(30px, calc(30px + (67 - 30) * ((100vw - 768px) / (1176 - 768))), 67px);
	background: var(--color-white);
	border-radius: 10px;
}

.p-AccessRoute_card.-movie {
	display: grid;
	grid-template-columns: minmax(0, 1fr) clamp(200px, calc(200px + (380 - 200) * ((100vw - 768px) / (1176 - 768))), 380px);
	column-gap: clamp(20px, calc(20px + (40 - 20) * ((100vw - 768px) / (1176 - 768))), 40px);
	align-items: center;
	padding: clamp(30px, calc(30px + (40 - 30) * ((100vw - 768px) / (1176 - 768))), 40px) clamp(30px, calc(30px + (40 - 30) * ((100vw - 768px) / (1176 - 768))), 40px) clamp(30px, calc(30px + (40 - 30) * ((100vw - 768px) / (1176 - 768))), 40px) clamp(30px, calc(30px + (80 - 30) * ((100vw - 768px) / (1176 - 768))), 80px);
}

.p-AccessRoute_cardText {
	margin-top: 28px;
	font-weight: 500;
}

.p-AccessRoute_movie {
	position: relative;
	width: 100%;
	aspect-ratio: 380 / 224;
	overflow: hidden;
}

.p-AccessRoute_movieEmbed {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}

.p-AccessRoute_flow {
	--flow-gap: 24px;
	display: grid;
	position: relative;
	margin-top: 32px;
	column-gap: var(--flow-gap);
}

.p-AccessRoute_flow:where(.-cols4) {
	--flow-gap: 30px;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.p-AccessRoute_flow:where(.-cols3) {
	--flow-gap: 63px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	row-gap: 21px;
}

.p-AccessRoute_step {
	position: relative;
}

.p-AccessRoute_step::after {
	content: "";
	position: absolute;
	top: 15px;
	left: 0;
	z-index: 0;
	width: calc(100% + var(--flow-gap));
	height: 20px;
	background: #e5efef;
	pointer-events: none;
}

.p-AccessRoute_flow:where(.-cols3) .p-AccessRoute_step:nth-child(3)::after,
.p-AccessRoute_step:last-child::after {
	width: 100%;
}

.p-AccessRoute_flow:where(.-cols3) .p-AccessRoute_step:nth-child(3)::before,
.p-AccessRoute_step:last-child::before {
	content: "";
    position: absolute;
    top: 15px;
    right: 0px;
    z-index: 1;
    border-top: 10px solid transparent;
    border-bottom: 10px solid transparent;
    border-left: 14px solid #e5efef;
    pointer-events: none;
    background: #fff;
}

.p-AccessRoute_stepVisual {
	position: relative;
	z-index: 1;
	padding-top: 66px;
}

.p-AccessRoute_stepImg {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 10px;
}

.p-AccessRoute_stepNum {
	position: absolute;
	top: 0;
	left: 50%;
	z-index: 1;
	display: grid;
	place-items: center;
	width: 50px;
	height: 50px;
	border-radius: 50%;
	background: var(--color-primary);
	color: var(--color-white);
	font-family: var(--font-en);
	font-size: 2rem;
	letter-spacing: 0.04em;
	line-height: 1;
	transform: translateX(-50%);
}

.p-AccessRoute_stepText {
	margin-top: 16px;
	font-weight: 500;
	letter-spacing: 0.05em;
}

@media (max-width: 1023px) {
	.p-AccessRoute_top {
		display: flex;
		flex-direction: column;
		gap: 0;
		margin-bottom: 40px;
		margin-top: 76px;
	}
}

@media (max-width: 767px) {
	.p-AccessRoute {
		padding-bottom: 71px;
	}

	.p-AccessRoute_map {
		width: 100%;
		margin-top: 40px;
		aspect-ratio: 325 / 230;
	}

	.p-AccessRoute_info {
		width: 100%;
		padding-top: 40px;
	}

	.p-AccessRoute_row {
		display: flex;
		flex-direction: column;
		gap: 17px;
		padding: 27px 0 24px;
	}

	.p-AccessRoute_term,
	.p-AccessRoute_desc {
		font-size: 1.5rem;
	}

	.p-AccessRoute_desc {
		line-height: 1.6;
	}

	.p-AccessRoute_card {
		margin-top: 24px;
		padding: 30px 30px 28px;
	}

	.p-AccessRoute_card.-movie {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 23px;
		padding: 28px 30px 27px;
	}

	.p-AccessRoute_cardBody {
		display: contents;
	}

	.p-AccessRoute_cardBodyTitle {
		order: 1;
	}

	.p-AccessRoute_cardText {
		order: 3;
		margin-top: 0;
		font-size: 1.6rem;
		letter-spacing: 0.04em;
		line-height: 1.75;
	}

	.p-AccessRoute_movie {
		order: 2;
		aspect-ratio: 265 / 156;
		aspect-ratio: 16 / 9;
	}

	.p-AccessRoute_flow {
		display: flex;
		flex-direction: column;
		margin-top: 29px;
		padding-left: 55px;
		row-gap: 31px;
	}

	.p-AccessRoute_step::after {
		top: 0;
		bottom: -24px;
		left: -41px;
		width: 12px;
		height: calc(100% + 31px);
	}

	.p-AccessRoute_flow:where(.-cols3) .p-AccessRoute_step:nth-child(3)::after,
	.p-AccessRoute_step:last-child::after {
		width: 12px;
	}

	.p-AccessRoute_step:last-child::after {
		bottom: 20px;
		height: 100%;
	}

	.p-AccessRoute_flow:where(.-cols3) .p-AccessRoute_step:nth-child(3)::before {
		content: none;
	}

	.p-AccessRoute_step:last-child::before {
		top: auto;
		right: auto;
		bottom: 0;
		left: -41px;
		border-top: 8px solid #e5efef;
		border-right: 6px solid transparent;
		border-left: 6px solid transparent;
		border-bottom: 0;
	}

	.p-AccessRoute_stepVisual {
		padding-top: 0;
	}

	.p-AccessRoute_stepNum {
		left: -55px;
		top: 0;
		bottom: auto;
		width: 40px;
		height: 40px;
		font-size: 1.8rem;
		transform: none;
	}

	.p-AccessRoute_stepText {
		margin-top: 12px;
		font-size: 1.5rem;
		line-height: 1.6;
	}
}

/**********************************************
* 
* p-Feature
*
***********************************************/
/* p-FeatureNav
***********************************************/
.p-FeatureNav {
	margin: 0 -5px 80px;
	background: var(--color-white);
	border-radius: 10px;
}

.p-FeatureNav_list {
	--_col-gap: clamp(16px, 2.93vw, 40px);
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: clamp(24px, 3.08vw, 42px) var(--_col-gap);
	padding: 72px 0 81px;
	margin: 0;
}

.p-FeatureNav_item {
	container-type: inline-size;
	width: min(320px, calc((100% - var(--_col-gap) * 2) / 3));
	min-width: 0;
}

.p-FeatureNav_link {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding-bottom: 19px;
	border-bottom: 1px solid #cbcbcb;
	color: inherit;
	text-align: center;
	transition: color 0.4s ease-in-out;
}

.p-FeatureNav_link::after {
	content: "";
	display: block;
	width: 7px;
	height: 12px;
	margin-top: 11px;
	background: url("../../images/common/icon-arrow.svg") no-repeat center / contain;
	transform: rotate(90deg);
}

.p-FeatureNav_num {
	color: var(--color-primary);
	font-family: var(--font-en);
	font-size: clamp(1.5rem, 6.25cqi, 2rem);
	letter-spacing: 0.04em;
	line-height: 1;
}

.p-FeatureNav_text {
	margin-top: 10px;
	font-size: clamp(1.2rem, 5cqi, 1.6rem);
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.625;
	white-space: nowrap;
}

@media (hover: hover) and (pointer: fine) {
	.p-FeatureNav_link:hover {
		color: var(--color-primary);
	}
}

@media (max-width: 767px) {
	.p-FeatureNav {
		margin: 0 calc(var(--gutter) * -1) 59px;
		border-radius: 0;
	}

	.p-FeatureNav_list {
		display: block;
		padding: 16px 4px 45px;
	}

	.p-FeatureNav_item {
		width: 100%;
	}

	.p-FeatureNav_item + .p-FeatureNav_item {
		margin-top: 0;
	}

	.p-FeatureNav_link {
		display: grid;
		grid-template-columns: 38px minmax(0, 1fr) 12px;
		align-items: center;
		column-gap: 0;
		padding: 17px 2px 14px;
		text-align: left;
	}

	.p-FeatureNav_link::after {
		grid-column: 3;
		grid-row: 1 / span 2;
		margin-top: 2px;
		margin-left: -21px;
	}

	.p-FeatureNav_num {
		grid-column: 1;
		font-size: 1.5rem;
	}

	.p-FeatureNav_text {
		grid-column: 2;
		margin-top: 0;
		font-size: 1.5rem;
		line-height: 1.47;
		white-space: normal;
	}
}

/* p-FeatureBlock
***********************************************/
.p-FeatureBlock {
	--_en-edge: calc(-1 * var(--gutter) - (100vw - min(100vw, calc(var(--contents-width) + var(--gutter) * 2))) / 2);
	--_en-left: max(-93px, var(--_en-edge));
	--_en-size: clamp(4rem, 0.235rem + 4.902vw, 6rem);
	--_num-size: clamp(8rem, 0.471rem + 9.804vw, 12rem);
	position: relative;
	padding: 160px 0 80px;
	overflow: hidden;
}

.p-FeatureBlock::before {
	content: "";
	position: absolute;
	top: 39px;
	bottom: 80px;
	left: -40px;
	z-index: 0;
	width: calc(50% + 400px);
	height: calc(100% - 320px);
	background-color: #a5a5a5;
	border-radius: 0 10px 10px 0;
	mix-blend-mode: color-burn;
	pointer-events: none;
	z-index: -1;
}

.p-FeatureBlock .l-container {
	position: relative;
	z-index: 1;
}

.p-FeatureBlock_intro {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: clamp(30px, -101.765px + 17.157vw, 100px);
}

.p-FeatureBlock_intro:not(:has(.p-FeatureBlock_visual)) {
	display: block;
	position: relative;
}

.p-FeatureBlock_visual {
	position: relative;
	width: clamp(229px, -17.588px + 32.108vw, 360px);
	min-width: 0;
	flex-shrink: 0;
}

.p-FeatureBlock_en {
	position: absolute;
    top: calc(var(--_en-size) * -43 / 60);
    left: var(--_en-left);
	z-index: 1;
    margin: 0;
    color: var(--color-white);
    font-family: var(--font-en);
    font-size: var(--_en-size);
    letter-spacing: 0.04em;
    line-height: 1;
    white-space: nowrap;
    writing-mode: vertical-rl;
    pointer-events: none;
    transform: rotate(180deg);
}

.p-FeatureBlock_num {
	position: absolute;
	top: calc(var(--_num-size) * -55 / 120);
	left: calc(var(--_en-left) + var(--_en-size) + 8px);
	z-index: 1;
	margin: 0;
	color: var(--color-white);
	font-family: var(--font-en);
	font-size: var(--_num-size);
	letter-spacing: 0.04em;
	line-height: 1;
	pointer-events: none;
}

.p-FeatureBlock_img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 10px;
}

.p-FeatureBlock_body {
	flex: 1;
	min-width: 0;
	margin-top: -2px;
	max-width: 700px;
}

/* -plain */
.p-FeatureBlock.-plain::before {
	height: auto;
	bottom: 0;
	left: -78px;
}

/* -right */
.p-FeatureBlock.-right {
	--_en-right: max(-73px, var(--_en-edge));
}

.p-FeatureBlock.-right::before {
	left: auto;
	right: -77px;
	border-radius: 10px 0 0 10px;
}

.p-FeatureBlock.-right .p-FeatureBlock_intro {
	flex-direction: row-reverse;
}

.p-FeatureBlock.-right .p-FeatureBlock_en {
	left: auto;
    right: var(--_en-right);
    transform: none;
}

.p-FeatureBlock.-right .p-FeatureBlock_num {
	left: auto;
	right: calc(var(--_en-right) + var(--_en-size) + 3px);
}

/* -team */
.p-FeatureBlock.-team {
	padding-top: 178px;
	padding-bottom: 118px;
}

.p-FeatureBlock.-team .p-FeatureBlock_body {
	max-width: 100%;
}

/* -a03 */
.p-FeatureBlock.-a03 {
	margin-top: 81px;
}
/* -a04 */
.p-FeatureBlock.-a04 {
	padding-bottom: 116px;
}
/* -a05 */
.p-FeatureBlock.-a05 {
	margin-top: 80px;
	margin-bottom: 159px;
}

@media (max-width: 767px) {
	.p-FeatureBlock {
		padding: 80px 0 60px;
	}

	.p-FeatureBlock::before {
		right: var(--_symbol-inset);
		bottom: 0;
		width: auto;
		top: 10px;
	}

	.p-FeatureBlock_intro {
		flex-direction: column;
		gap: 0;
	}

	.p-FeatureBlock_visual {
		order: 1;
		width: 280px;
		margin-bottom: 42px;
		margin-left: -15px;
	}

	.p-FeatureBlock_en {
		left: -34px;
		top: -15px;
		font-size: 4rem;
	}

	.p-FeatureBlock_num {
		top: -23px;
		left: 10px;
		font-size: 4.7rem;
	}

	.p-FeatureBlock_body {
		order: 2;
		padding-right: 15px;
	}

	.p-FeatureBlock_body .Text {
		margin-top: 30px;
	}

	.p-FeatureBlock_body .Text_p + .Text_p {
		margin-top: 10px;
	}

	.p-FeatureBlock.-right::before {
		left: 75px;
		right: 0;
	}

	.p-FeatureBlock.-right .p-FeatureBlock_intro {
		flex-direction: column;
	}

	.p-FeatureBlock.-right .p-FeatureBlock_en {
		right: -34px;
        top: -19px;
	}

	.p-FeatureBlock.-right .p-FeatureBlock_num {
		right: 2px;
	}

	.p-FeatureBlock.-plain::before {
		top: 19px;
	}

	/* -team */
	.p-FeatureBlock.-team {
		padding-top: 90px;
		padding-bottom: 50px;
	}

	.p-FeatureBlock.-team .Text {
		margin-top: 38px;
	}

	.p-FeatureBlock.-team .p-FeatureBlock_body {
		max-width: 100%;
	}

	.p-FeatureBlock.-a03 {
		margin-top: 70px;
	}

	.p-FeatureBlock.-a04 {
		padding-top: 89px;
		padding-bottom: 48px;
	}

	.p-FeatureBlock.-a04 .p-FeatureBlock_visual {
		margin-left: -45px;
	}

	.p-FeatureBlock.-a05 {
		margin-top: 61px;
		margin-bottom: 69px;
		padding-top: 87px;
		padding-bottom: 48px;
	}
}

/* p-FeatureCard
***********************************************/
.p-FeatureCard {
	--_gutter: clamp(20px, -21.412px + 5.392vw, 42px);
	container-type: inline-size;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	padding: 66px calc(clamp(30px, -64.118px + 12.255vw, 80px) - var(--_gutter)) 67px;
	background: var(--color-white);
	border-radius: 10px;
	margin: 78px -37px 0;
}

.p-FeatureCard_item {
	position: relative;
	min-width: 0;
	padding: 0 var(--_gutter);
}

.p-FeatureCard_item + .p-FeatureCard_item::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	width: 1px;
	border-radius: 10px;
	background: #cbcbcb;
}

.p-FeatureCard_itemImg {
	margin-top: 21px;
	overflow: hidden;
	border-radius: 10px;
}

.p-FeatureCard_itemImg picture,
.p-FeatureCard_itemImgEl {
	display: block;
	width: 100%;
	height: auto;
}

.p-FeatureCard_itemText {
	margin-top: 26px;
	font-weight: 500;
}

.p-FeatureCard_itemText + .p-FeatureCard_itemText {
	margin-top: 0;
}

.p-FeatureCard.-cols2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin-top: 80px;
	padding-top: 70px;
}

.p-FeatureCard.-cols2 .p-FeatureCard_item {
	display: grid;
	grid-template-columns: 220px minmax(0, 1fr);
	column-gap: clamp(16px, -10.353px + 3.431vw, 30px);
	align-items: start;
	padding-right: clamp(16px, -32.941px + 6.373vw, 42px);
	padding-left: clamp(16px, -32.941px + 6.373vw, 42px);
}

.p-FeatureCard.-cols2 .p-FeatureCard_itemImg {
	grid-column: 1;
	grid-row: 1;
	margin-top: 0;
}

.p-FeatureCard.-cols2 .p-FeatureCard_itemText {
	grid-column: 1 / -1;
}

.p-FeatureCard_title {
	align-self: center;
}

.p-FeatureCard .Title02 {
	font-size: min(2.8rem, calc((100cqi / 3 - 2 * var(--_gutter) - 32px) / 9.2));
}

@media (max-width: 1023px) {
	.p-FeatureCard.-cols2 .p-FeatureCard_item {
		grid-template-columns: minmax(0, 1fr);
		column-gap: 0;
	}

	.p-FeatureCard.-cols2 .p-FeatureCard_itemImg {
		grid-column: auto;
		grid-row: auto;
		margin-top: 21px;
	}

	.p-FeatureCard.-cols2 .p-FeatureCard_itemText {
		grid-column: auto;
	}
}

@media (max-width: 767px) {
	.p-FeatureCard {
		display: flex;
		flex-direction: column;
		margin: 37px 0 0;
		padding: 30px;
	}

	.p-FeatureCard .Title02 {
		font-size: 2rem;
	}

	.p-FeatureCard_item {
		padding: 0;
	}

	.p-FeatureCard_item + .p-FeatureCard_item {
		margin-top: 32px;
		padding-top: 30px;
		border-top: 1px solid #cbcbcb;
	}

	.p-FeatureCard_item + .p-FeatureCard_item::before {
		display: none;
	}

	.p-FeatureCard_itemText {
		margin-top: 22px;
		font-size: 1.6rem;
		letter-spacing: 0.04em;
		line-height: 1.75;
	}

	.p-FeatureCard_itemText + .p-FeatureCard_itemText {
		margin-top: 8px;
	}

	.p-FeatureCard.-cols2 {
		margin-top: 37px;
		padding-top: 28px;
		padding-bottom: 27px;
	}

	.p-FeatureCard.-cols2 .p-FeatureCard_item {
		display: block;
	}

	.p-FeatureCard.-cols2 .p-FeatureCard_itemImg {
		margin-top: 22px;
	}
}

/* p-FeatureTeam
***********************************************/
.p-FeatureTeam {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 40px;
	margin-top: 81px;
}

.p-FeatureTeam_cluster {
	--_w: 518;
	--_h: 535;
	--_circle: 190;
	position: relative;
	min-width: 0;
	max-width: 518px;
	aspect-ratio: 518 / 535;
	margin-top: 21px;
	width: 518px;
	flex-shrink: 0;
}

.p-FeatureTeam_roles {
	position: absolute;
	inset: 0;
}

.p-FeatureTeam_role {
	position: absolute;
	top: calc(var(--_y) / var(--_h) * 100%);
	left: calc(var(--_x) / var(--_w) * 100%);
	display: grid;
	place-items: center;
	width: calc(var(--_circle) / var(--_w) * 100%);
	aspect-ratio: 1;
	border: 1px solid var(--color-primary);
	border-radius: 50%;
	color: var(--color-primary);
	font-size: 1.8rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.44;
	text-align: center;
}

.p-FeatureTeam_role.-doctor {
	--_x: 164;
	--_y: 0;
}

.p-FeatureTeam_role.-hygienist {
	--_x: 0;
	--_y: 80;
}

.p-FeatureTeam_role.-technician {
	--_x: 328;
	--_y: 80;
}

.p-FeatureTeam_role.-nutritionist {
	--_x: 0;
	--_y: 263;
}

.p-FeatureTeam_role.-assistant {
	--_x: 328;
	--_y: 263;
}

.p-FeatureTeam_role.-coordinator {
	--_x: 164;
	--_y: 345;
}

.p-FeatureTeam_logo {
	--_x: 184;
    --_y: 224.586;
    --_lw: 150;
	position: absolute;
	top: calc(var(--_y) / var(--_h) * 100%);
	left: calc(var(--_x) / var(--_w) * 100%);
	width: calc(var(--_lw) / var(--_w) * 100%);
}

.p-FeatureTeam_logoImg {
	width: 100%;
	height: auto;
	display: block;
}

.p-FeatureTeam_compare {
	display: flex;
	flex-direction: column;
	gap: 20px;
	width: 506px;
	margin-top: 20px;
}

.p-FeatureTeam_note {
	position: relative;
	padding: 47px 60px 57px;
	background: var(--color-white);
	border-radius: 10px;
}

.p-FeatureTeam_note.-primary::before {
	content: "";
	position: absolute;
	top: 50%;
	left: -22px;
	border-top: 17px solid transparent;
	border-bottom: 17px solid transparent;
	border-right: 22px solid var(--color-white);
	transform: translateY(-50%);
}

.p-FeatureTeam_note.-muted {
	background: rgba(255, 255, 255, 0.5);
}

.p-FeatureTeam_noteText {
	margin-top: 16px;
	font-weight: 500;
}

.p-FeatureTeam_em {
	color: var(--color-primary);
}

@media (max-width: 1023px) {
	.p-FeatureTeam {
		flex-direction: column;
		gap: 0;
		margin-top: 15px;
	}

	.p-FeatureTeam_compare {
		margin-top: 40px;
	}

	.p-FeatureTeam_note.-primary::before {
		top: -16px;
		left: 50%;
		border-right: 15px solid transparent;
		border-left: 15px solid transparent;
		border-top: 0;
		border-bottom: 17px solid var(--color-white);
		transform: translateX(-50%);
	}
}

@media (max-width: 767px) {
	.p-FeatureTeam {
		flex-direction: column;
		gap: 0;
		margin-top: 15px;
	}

	.p-FeatureTeam_cluster {
		width: 297px;
        margin-right: 28px;
	}

	.p-FeatureTeam_role {
		font-size: 1.2rem;
		letter-spacing: 0.05em;
		line-height: 1.33;
	}

	.p-FeatureTeam_logo {
		--_y: 219.586;
	}

	.p-FeatureTeam_role.-doctor {
		--_y: 4;
	}

	.p-FeatureTeam_role.-coordinator {
		--_y: 337;
	}

	.p-FeatureTeam_compare {
		width: 100%;
		gap: 14px;
	}

	.p-FeatureTeam_note {
		padding: 30px;
	}

	.p-FeatureTeam_note.-primary {
		margin-top: 16px;
	}

	.p-FeatureTeam_note.-primary::before {
		top: -16px;
        left: 46%;
		border-right: 15px solid transparent;
		border-left: 15px solid transparent;
		border-top: 0;
		border-bottom: 17px solid var(--color-white);
		transform: translateX(-50%);
	}

	.p-FeatureTeam_noteText {
		font-size: 1.6rem;
		letter-spacing: 0.04em;
		line-height: 1.7;
		margin-top: 15px;
	}
}

/**********************************************
* 
* p-Implant
*
***********************************************/
/* p-ImplantMerit
***********************************************/
.p-ImplantMerit {
	scroll-margin-top: var(--header-height);
	margin-bottom: 117px;
}

.p-ImplantMerit_intro {
	display: grid;
	grid-template-columns: minmax(0, clamp(229px, -17.588px + 32.108vw, 360px)) minmax(0, 1fr);
	grid-template-rows: auto auto 1fr;
	column-gap: clamp(30px, -101.765px + 17.157vw, 100px);
	align-items: start;
}

.p-ImplantMerit_figure {
	grid-column: 1;
	grid-row: 1 / -1;
	min-width: 0;
	overflow: hidden;
	border-radius: 10px;
}

.p-ImplantMerit_figure picture,
.p-ImplantMerit_figureImg {
	display: block;
	width: 100%;
	height: auto;
}

.p-ImplantMerit_intro .Title01_en,
.p-ImplantMerit_intro .Title01_ja,
.p-ImplantMerit_intro .Text {
	grid-column: 2;
}

.p-ImplantMerit_tableWrap {
	margin-top: 75px;
}

.p-ImplantMerit_table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	table-layout: fixed;
}

.p-ImplantMerit_corner {
	width: clamp(153px, -10.765px + 21.324vw, 240px);
	padding: 0;
	border: 0;
	background: transparent;
}

.p-ImplantMerit_head {
	padding: 0;
	color: var(--color-white);
	font-size: 1.7rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	text-align: center;
	vertical-align: bottom;
	background: transparent;
}

.p-ImplantMerit_headInner {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-end;
	gap: 5px;
    min-height: 75px;
    padding: 13px 12px 9px;
	border-radius: 10px 10px 0 0;
}

.p-ImplantMerit_head + .p-ImplantMerit_head .p-ImplantMerit_headInner {
	margin-left: 1px;
}

.p-ImplantMerit_head.-muted .p-ImplantMerit_headInner {
	background: #a5a5a5;
}

.p-ImplantMerit_head.-primary .p-ImplantMerit_headInner {
	background: var(--color-primary);
}

.p-ImplantMerit_headIcon {
	display: block;
	width: auto;
	height: 42px;
}

.p-ImplantMerit_label {
	width: clamp(153px, -10.765px + 21.324vw, 240px);
	padding: 24px 16px;
	color: var(--color-white);
	font-size: 1.7rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.4;
	text-align: left;
	vertical-align: middle;
	background: var(--color-primary);
}

.p-ImplantMerit_table tbody tr:first-child .p-ImplantMerit_label {
	border-radius: 10px 0 0 0;
	box-shadow: inset 0 -1px 0 #cbcbcb;
}

.p-ImplantMerit_table tbody tr:last-child .p-ImplantMerit_label {
	border-radius: 0 0 0 10px;
}

.p-ImplantMerit_cell {
	padding: 20px 20px 20px 20px;
	background: var(--color-white);
	border-left: 1px solid #cbcbcb;
	vertical-align: top;
}

.p-ImplantMerit_table tbody tr:first-child .p-ImplantMerit_cell {
	border-bottom: 1px solid #cbcbcb;
}

.p-ImplantMerit_table tbody tr:last-child .p-ImplantMerit_cell:last-child {
	border-radius: 0 0 10px 0;
}

.p-ImplantMerit_list {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.p-ImplantMerit_listItem {
	position: relative;
	padding-left: 16px;
	font-size: 1.6rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.5;
}

.p-ImplantMerit_listItem::before {
	content: "";
	position: absolute;
	top: 0.55em;
	left: 0;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--color-primary);
}

.p-ImplantMerit_tips {
	position: relative;
	margin-top: 80px;
	padding: 60px 60px 56px 70px;
	border-radius: 10px;
	overflow: hidden;
}

.p-ImplantMerit_tips::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background: #a5a5a5;
	border-radius: 10px;
	mix-blend-mode: color-burn;
	pointer-events: none;
	z-index: -1;
}

.p-ImplantMerit_tipsLabel {
	position: absolute;
	top: 30px;
	right: 24px;
	z-index: 1;
	margin: 0;
	color: var(--color-white);
	font-family: var(--font-en);
	font-size: 7rem;
	letter-spacing: 0.04em;
	line-height: 1;
	white-space: nowrap;
	writing-mode: vertical-rl;
	pointer-events: none;
}

.p-ImplantMerit_tipsInner {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, clamp(418px, -28.117px + 58.088vw, 655px));
	column-gap: clamp(20px, -17.647px + 4.902vw, 40px);
	align-items: start;
}

.p-ImplantMerit_tipsInner .Title02 {
	margin-top: 56px;
}

.p-ImplantMerit_tipsGraph {
	grid-column: 2;
	grid-row: 1;
	width: clamp(370px, -27.176px + 51.716vw, 581px);
	max-width: 100%;
	min-width: 0;
}

.p-ImplantMerit_tipsGraph picture,
.p-ImplantMerit_tipsGraphImg {
	display: block;
	width: 100%;
	height: auto;
}

.p-ImplantMerit_tipsText {
	grid-column: 1 / -1;
	margin-top: 47px;
	font-weight: 500;
}

@media (max-width: 1023px) {
	.p-ImplantMerit_tipsInner {
		display: flex;
        flex-direction: column;
        column-gap: 0;
	}

	.p-ImplantMerit_tipsInner .Title02 {
		margin-top: 0;
		margin-bottom: 30px;
	}

	.p-ImplantMerit_tipsGraph {
		width: 581px;
	}
}

@media (max-width: 767px) {
	.p-ImplantMerit {
		margin-bottom: 19px;
	}

	.p-ImplantMerit_intro {
		display: flex;
		flex-direction: column;
	}

	.p-ImplantMerit_tipsInner .Title02 {
		margin-top: 0;
		margin-bottom: 0;
		padding-left: 15px;
	}

	.p-ImplantMerit_figure {
		order: 3;
		width: 100%;
		margin-top: 39px;
	}

	.p-ImplantMerit_intro .Title01_en {
		order: 1;
	}

	.p-ImplantMerit_intro .Title01_ja {
		order: 2;
	}

	.p-ImplantMerit_intro .Text {
		order: 4;
		margin-top: 32px;
		padding-right: 10px;
	}

	.p-ImplantMerit_intro .Text_p + .Text_p {
		margin-top: 10px;
	}

	.p-ImplantMerit_tableWrap {
		margin-top: 38px;
		margin-right: calc(var(--gutter) * -1);
		margin-left: calc(var(--gutter) * -1);
		padding-right: var(--gutter);
		padding-left: var(--gutter);
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}

	.p-ImplantMerit_table {
		width: 909px;
		min-width: 909px;
	}

	.p-ImplantMerit_corner,
	.p-ImplantMerit_label {
		width: 98px;
	}

	.p-ImplantMerit_head {
		font-size: 1.5rem;
	}

	.p-ImplantMerit_headInner {
		gap: 3px;
		min-height: 64px;
		padding: 11px 8px 9px;
	}

	.p-ImplantMerit_headIcon {
		height: 32px;
	}

	.p-ImplantMerit_label {
		padding: 16px 8px;
		font-size: 1.5rem;
	}

	.p-ImplantMerit_cell {
		padding: 24px 12px 23px 18px;
	}

	.p-ImplantMerit_list {
		gap: 5px;
	}

	.p-ImplantMerit_listItem {
		padding-left: 14px;
		font-size: 1.4rem;
	}

	.p-ImplantMerit_listItem::before {
		width: 5px;
		height: 5px;
	}

	.p-ImplantMerit_tips {
		margin-top: 40px;
		padding: 27px 30px 34px 15px;
	}

	.p-ImplantMerit_tipsLabel {
		top: 16px;
		right: 12px;
		font-size: 4.8rem;
	}

	.p-ImplantMerit_tipsInner {
		display: flex;
		flex-direction: column;
		column-gap: 0;
	}

	.p-ImplantMerit_tipsGraph {
		order: 2;
		width: 100%;
		margin-top: 24px;
	}

	.p-ImplantMerit_tipsText {
		order: 3;
		margin-top: 24px;
		font-size: 1.4rem;
		letter-spacing: 0.05em;
		line-height: 1.71;
		padding-left: 14px;
	}
}

/* p-ImplantSafety
***********************************************/
.p-ImplantSafety {
	scroll-margin-top: var(--header-height);
	position: relative;
}

.p-ImplantSafety_approach {
	position: relative;
	z-index: 1;
	overflow: hidden;
	height: 120px;
	isolation: isolate;
	mix-blend-mode: color-burn;
	top: -77px;
	z-index: -1;
}

.p-ImplantSafety_approachText {
	display: flex;
	width: max-content;
	margin: 0;
	color: #a5a5a5;
	font-family: var(--font-en);
	font-size: 12rem;
	letter-spacing: 0.04em;
	line-height: 1;
	white-space: nowrap;
	height: 102px;
    overflow: hidden;
}

.p-ImplantSafety_approachText span {
	padding-right: 0.25em;
}


.p-ImplantSafety_intro {
	padding-top: 24px;
}

.p-ImplantSafety_list {
	margin-top: 76px;
}

.p-ImplantSafety_item + .p-ImplantSafety_item {
	margin-top: 50px;
}

.p-ImplantSafety_item {
	display: grid;
	grid-template-columns: minmax(0, clamp(229px, -17.588px + 32.108vw, 360px)) minmax(0, 1fr);
	column-gap: clamp(30px, -64.118px + 12.255vw, 80px);
	align-items: center;
}

.p-ImplantSafety_figure {
	min-width: 0;
	overflow: hidden;
	border-radius: 10px;
}

.p-ImplantSafety_figure picture,
.p-ImplantSafety_figureImg {
	display: block;
	width: 100%;
	height: auto;
}

.p-ImplantSafety_head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: clamp(12px, -10.588px + 2.941vw, 24px);
}

.p-ImplantSafety_body .Text{
	margin-top: 27px;
}

.p-ImplantSafety_title {
	min-width: 0;
}

.p-ImplantSafety_title .Title02 {
	min-width: 0;
	font-size: clamp(2.2rem, 1.071rem + 0.147vw, 2.8rem);
}

.p-ImplantSafety_num {
	flex-shrink: 0;
	margin: 13px clamp(16px, -59.294px + 9.804vw, 56px) 0 0;
	color: #717171;
	font-family: var(--font-en);
	font-size: clamp(6rem, 2.235rem + 0.490vw, 8rem);
	letter-spacing: 0.04em;
	line-height: 1;
	isolation: isolate;
	mix-blend-mode: color-burn;
	z-index: -1;
}

.p-ImplantSafety_card {
	grid-column: 1 / -1;
	display: grid;
	row-gap: 30px;
    margin-top: 40px;
    padding: 60px 59px 60px 70px;
	background: var(--color-white);
	border-radius: 10px;
}

.p-ImplantSafety_detail {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, clamp(153px, -10.765px + 21.324vw, 240px));
	column-gap: clamp(20px, -17.647px + 4.902vw, 40px);
    align-items: center;
}

.p-ImplantSafety_detailTitle {
	grid-column: 1;
	padding-bottom: 18px;
	border-bottom: 2px solid #cbcbcb;
	color: var(--color-text);
	font-size: 2.2rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1.36;
}

.p-ImplantSafety_detailImg {
	grid-column: 2;
	grid-row: 1 / 3;
	min-width: 0;
	overflow: hidden;
	border-radius: 10px;
}

.p-ImplantSafety_detailImg picture,
.p-ImplantSafety_detailImgEl {
	display: block;
	width: 100%;
	height: auto;
}

.p-ImplantSafety_detailText {
	grid-column: 1;
	margin-top: -2px;
	font-weight: 500;
}

@media (max-width: 767px) {
	.p-ImplantSafety {
		margin-bottom: -20px;
	}

	.p-ImplantSafety_approach {
		height: 53px;
        top: -18px;
	}

	.p-ImplantSafety_approachText {
		font-size: 6.1rem;
	}

	.p-ImplantSafety_intro {
		padding-top: 27px;
	}

	.p-ImplantSafety_intro .Text {
		margin-top: 38px;
		padding-right: 10px;
	}

	.p-ImplantSafety_list {
		margin-top: 57px;
	}

	.p-ImplantSafety_item + .p-ImplantSafety_item {
		margin-top: 60px;
	}

	.p-ImplantSafety_item {
		display: flex;
		flex-direction: column;
		column-gap: 0;
	}

	.p-ImplantSafety_body {
		display: contents;
	}

	.p-ImplantSafety_head {
		order: 1;
		gap: 12px;
	}

	.p-ImplantSafety_title .Title02 {
		font-size: 2rem;
	}

	.p-ImplantSafety_figure {
		order: 2;
		width: 100%;
		margin-top: 33px;
	}

	.p-ImplantSafety_item .Text {
		order: 3;
		margin-top: 32px;
		padding-right: 10px;
	}

	.p-ImplantSafety_card {
		order: 4;
		row-gap: 40px;
		margin-top: 21px;
		padding: 30px 30px 30px;
	}

	.p-ImplantSafety_head {
		position: relative;
		width: 100%;
	}

	.p-ImplantSafety_num {
		position: absolute;
		right: 14px;
        top: -13px;
		margin: 0;
		font-size: 5.2rem;
	}

	.p-ImplantSafety_detail {
		display: flex;
		flex-direction: column;
		column-gap: 0;
	}

	.p-ImplantSafety_detailTitle {
		padding-bottom: 9px;
		border-bottom-width: 1px;
		font-size: 1.8rem;
		line-height: 1.67;
		width: 100%;
		order: 1;
	}

	.p-ImplantSafety_detailImg {
		width: 100%;
		margin-top: 20px;
		order: 3;
	}

	.p-ImplantSafety_detailText {
		margin-top: 21px;
		font-size: 1.5rem;
		letter-spacing: 0.04em;
		line-height: 1.87;
		order: 2;
	}
}

/* p-ImplantBanner
***********************************************/
.p-ImplantBanner {
	--_banner-width: 1366px;
	--_image-width: 600px;
	--_body-width: calc(var(--_banner-width) - var(--_image-width));
	--_visual-start: 20px;
	--_symbol-inset: 75px;
	--_visual-center: calc((var(--_visual-start) + var(--_body-width) - var(--_symbol-inset)) / 2);
	container-type: inline-size;
	width: 100%;
	max-width: 1366px;
	margin-top: 22px;
	margin-inline: auto;
}

.p-ImplantBanner_link {
	position: relative;
	display: block;
	overflow: hidden;
	height: 300px;
	background-color: #baa582;
	color: var(--color-white);
	border-radius: calc(sign(100lvw - 100cqi) * 10px);
}

.p-ImplantBanner_link::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: max(0px, calc(50% - var(--_visual-center) - var(--_image-width)));
	width: var(--_image-width);
	background-image: url(../../images/implant/p-banner.png);
	background-repeat: no-repeat;
	background-position: left center;
	background-size: auto 100%;
	transition: transform 0.4s ease-in-out;
}

.p-ImplantBanner_body {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	width: var(--_body-width);
	max-width: calc(100% - var(--_image-width));
	height: 100%;
	margin-left: max(var(--_image-width), calc(50% - var(--_visual-center)));
	padding: 0 40px 0 var(--_visual-start);
}

.p-ImplantBanner_symbol {
	position: absolute;
	top: 59%;
	right: var(--_symbol-inset);
	width: 142px;
	height: 160px;
	pointer-events: none;
	transform: translateY(-50%);
}

.p-ImplantBanner_symbolImg {
	display: block;
	width: 100%;
	height: 100%;
}

.p-ImplantBanner_title {
	display: inline-flex;
	align-items: center;
	gap: 23px;
	font-size: 3rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1;
}

.p-ImplantBanner_text {
	margin-top: 28px;
	font-size: 2rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.6;
}

.p-ImplantBanner_arrow {
	position: relative;
	flex-shrink: 0;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--color-white);
}

.p-ImplantBanner_arrow::after {
	content: "";
	position: absolute;
	inset: 0;
	margin: auto;
	width: 7px;
	height: 12px;
	mask: url(../../images/common/icon-arrow.svg) no-repeat center / contain;
	background-color: #baa582;
}

@media (hover: hover) and (pointer: fine) {
	.p-ImplantBanner_link:hover::before {
		transform: scale(1.05);
	}
}

@media (max-width: 1023px) {
	.p-ImplantBanner_body {
		width: auto;
		max-width: none;
		margin-left: 460px;
		padding: 0 70px 0 20px;
	}
}

@media (max-width: 767px) {
	.p-ImplantBanner {
		margin-top: 27px;
	}

	.p-ImplantBanner_link {
		height: 150px;
	}

	.p-ImplantBanner_link::before {
		background-image: url(../../images/implant/p-banner_sp.png);
	}

	.p-ImplantBanner_body {
		--_body-pad-left: 136px;
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		justify-content: flex-start;
		width: auto;
		max-width: none;
		margin-left: 0;
		padding: 25px 20px 16px var(--_body-pad-left);
	}

	.p-ImplantBanner_symbol {
		top: auto;
		right: 16px;
		bottom: 0;
		width: 90px;
		height: 102px;
		transform: none;
	}

	.p-ImplantBanner_title {
		gap: 10px;
		font-size: 1.7rem;
		letter-spacing: 0.05em;
	}

	.p-ImplantBanner_text {
		margin-top: 11px;
		font-size: 1.3rem;
		line-height: 1.54;
	}

	.p-ImplantBanner_arrow {
		position: absolute;
		left: var(--_body-pad-left);
		bottom: 20px;
		width: 30px;
		height: 30px;
	}

	.p-ImplantBanner_arrow::after {
		width: 5.75px;
		height: 9.5px;
		mask: url(../../images/common/icon-arrow_medium.svg) no-repeat center / contain;
	}
}

/* p-ImplantCase
***********************************************/
.p-ImplantCase .l-container {
	position: relative;
}

.p-ImplantCase_intro {
	text-align: center;
}

.p-ImplantCase .Button.-articleIntro {
	width: 320px;
	margin-inline: auto;
}

@media (max-width: 767px) {
	.p-ImplantCase .Title01_ja {
		letter-spacing: 0.05em;
	}

	.p-ImplantCase .ArticleIntro_link {
		grid-template-areas:
			"img date"
			"img title"
			"tags tags";
	}

	.p-ImplantCase .Button.-articleIntro {
		width: 295px;
	}
}

/* p-ImplantFlow
***********************************************/
@media (max-width: 767px) {
	.p-ImplantFlow {
		margin-top: 80px;
	}
}

/* p-ImplantTable
***********************************************/
@media (max-width: 767px) {
	.p-ImplantTable {
		margin-top: -10px;
	}
}

/**********************************************
*
* p-Contact
*
***********************************************/
/* p-ContactAttention
***********************************************/
.p-ContactAttention {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	margin-top: -4px;
    margin-bottom: -20px;
	overflow-x: clip;
}

.p-ContactAttention_en {
	grid-area: 1 / 1;
	position: sticky;
	top: calc(var(--header-height) + 40px);
	align-self: start;
	justify-self: start;
	z-index: 0;
	width: fit-content;
	margin: -74px 0 0 calc(50% - (var(--contents-width-small) / 2) - 153px);
	color: var(--color-white);
	font-family: var(--font-en);
	font-size: 8rem;
	letter-spacing: 0.04em;
	line-height: 1;
	writing-mode: vertical-rl;
	pointer-events: none;
}

.p-ContactAttention .l-container-small {
	grid-area: 1 / 1;
}

.p-ContactAttention_inner {
	display: flex;
	flex-direction: column;
	gap: 56px;
}

.p-ContactAttention_block {
	display: flex;
	align-items: flex-start;
	gap: 30px;
	padding-bottom: 60px;
	border-bottom: 1px solid #cbcbcb;
}

.p-ContactAttention_block > .Title02 {
	--_title-width: clamp(180px, calc(180px + (100vw - 768px) * 50 / 432), 230px);
	flex: 0 0 var(--_title-width);
	width: var(--_title-width);
}

.p-ContactAttention_block:last-child {
	padding-bottom: 0;
	border-bottom: none;
}

.p-ContactAttention_body {
	flex: 1 1 auto;
	min-width: 0;
	margin-top: 9px;
}

.p-ContactAttention_text {
	margin: 0;
	font-weight: 500;
	line-height: 1.88;
}

.p-ContactAttention_note {
	margin-top: 16px;
	font-size: 1.2rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.4;
}

.p-ContactAttention_body .Button {
	margin-top: 40px;
}

.p-ContactAttention_cards {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
	margin-top: 37px;
	max-width: 740px;
}

.p-ContactAttention_card {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	column-gap: 20px;
	min-height: 100px;
	padding: 20px;
	border-radius: 10px;
	background: var(--color-primary);
	color: var(--color-white);
	transition: background-color 0.4s ease-in-out;
}

.p-ContactAttention_card.-reserve {
	grid-column: 1 / -1;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	column-gap: 0;
	row-gap: 16px;
}

.p-ContactAttention_card.-reserve .p-ContactAttention_cardIcon {
	flex-shrink: 0;
	margin-right: 75px;
}

.p-ContactAttention_card.-reserve .p-ContactAttention_cardText {
	flex: 0 1 auto;
	min-width: 0;
}

.p-ContactAttention_card.-reserve .p-ContactAttention_cardNote {
	flex: 0 0 200px;
	width: 200px;
	min-width: 200px;
	margin-left: auto;
	margin-right: auto;
	box-sizing: border-box;
}

.p-ContactAttention_card.-otherTel {
	grid-column: 1 / -1;
	grid-template-columns: auto max-content max-content auto;
	column-gap: 0;
	justify-content: flex-start;
	max-width: 740px;
	margin-top: 30px;
}

.p-ContactAttention_card.-otherTel .p-ContactAttention_cardIcon {
	margin-right: 20px;
}

.p-ContactAttention_card.-otherTel .p-ContactAttention_cardTel {
	margin-top: 0;
	margin-left: 26px;
}

.p-ContactAttention_card.-otherTel .p-ContactAttention_cardNote {
	margin-left: 26px;
	min-width: 260px;
	font-size: 1.3rem;
	padding: 6px 12px 6px 8px;
}

.p-ContactAttention_cardIcon {
	position: relative;
	display: grid;
	place-items: center;
	width: 60px;
	height: 60px;
	flex-shrink: 0;
}

.p-ContactAttention_cardIcon::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 50%;
	background: var(--color-white);
	opacity: 0.2;
}

.p-ContactAttention_cardIcon::after {
	content: "";
	position: relative;
	z-index: 1;
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
}

.p-ContactAttention_cardIcon.-iphone::after {
	width: 18px;
	height: 30px;
	background-image: url(../../images/common/icon-iphone.svg);
}

.p-ContactAttention_cardIcon.-phone::after {
	width: 22px;
	height: 22px;
	background-image: url(../../images/common/icon-phone.svg);
}

.p-ContactAttention_cardIcon.-mail::after {
	width: 24px;
	height: 18px;
	background-image: url(../../images/common/icon-mail.svg);
}

.p-ContactAttention_cardText {
	font-size: 2.4rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1.4;
}

.p-ContactAttention_cardLabel {
	font-size: 1.8rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1.44;
}

.p-ContactAttention_cardTel {
	font-family: var(--font-num);
	font-size: 3.4rem;
	letter-spacing: 0.02em;
	line-height: 1;
}

.p-ContactAttention_cardNote {
	display: inline-flex;
	align-items: baseline;
	justify-content: center;
	gap: 8px;
	min-width: 200px;
	padding: 6px 16px;
	border-radius: 9999px;
	background: var(--color-white);
	color: var(--color-primary);
	font-size: 1.5rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1;
	white-space: nowrap;
	transition: color 0.4s ease-in-out;
}

.p-ContactAttention_cardHours {
	font-family: var(--font-num);
	font-weight: 500;
	letter-spacing: 0.05em;
}

.p-ContactAttention_cardExcept {
	font-weight: 700;
}

.p-ContactAttention_cardArrow {
	position: relative;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--color-white);
}

.p-ContactAttention_cardArrow::after {
	content: "";
	position: absolute;
	inset: 0;
	margin: auto;
	width: 10px;
	height: 10px;
	border-right: 2px solid var(--color-primary);
	border-bottom: 2px solid var(--color-primary);
	transform: rotate(45deg) translate(-1px, -1px);
	transition: border-color 0.4s ease-in-out;
}

.p-ContactAttention_alert {
	position: relative;
	display: flex;
	align-items: center;
	gap: 18px;
	margin-top: 17px;
	padding: 10px 10px 10px 20px;
}

.p-ContactAttention_alert::before {
	content: "";
	position: absolute;
	inset: 0;
	background-color: #a5a5a5;
	mix-blend-mode: color-burn;
	z-index: -1;
	border-radius: 10px;
}

.p-ContactAttention_alertIcon {
	display: grid;
	place-items: center;
	flex-shrink: 0;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--color-primary);
	color: var(--color-white);
	font-family: var(--font-en);
	font-size: 2.6rem;
	letter-spacing: 0.04em;
	line-height: 1;
}

.p-ContactAttention_alertText {
	margin: 0;
	color: var(--color-text);
	font-size: 1.7rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1.5;
}

@media (hover: hover) and (pointer: fine) {
	.p-ContactAttention_card:hover {
		background-color: var(--color-accent);
	}

	.p-ContactAttention_card:hover .p-ContactAttention_cardNote {
		color: var(--color-accent);
	}

	.p-ContactAttention_card:hover .p-ContactAttention_cardArrow::after {
		border-color: var(--color-accent);
	}
}

@media (max-width: 1023px) {
	.p-ContactAttention_block {
		flex-direction: column;
		gap: 21px;
	}

	.p-ContactAttention_block > .Title02 {
		flex: none;
		width: auto;
		min-width: 0;
		max-width: none;
	}

	.p-ContactAttention_body {
		margin-top: 0;
	}
}

@media (max-width: 767px) {
	.p-ContactAttention {
		margin-bottom: 0;
	}

	.p-ContactAttention_en {
		display: none;
	}

	.p-ContactAttention_inner {
		gap: 20px;
		padding-left: 0;
	}

	.p-ContactAttention_block {
		padding-bottom: 48px;
		margin-top: 11px;
	}

	.p-ContactAttention_text {
		letter-spacing: 0.04em;
		line-height: 1.75;
		padding-right: 10px;
	}

	.p-ContactAttention_note {
		margin-top: 12px;
	}

	.p-ContactAttention_body .Button {
		display: flex;
		margin-top: 28px;
		margin-left: 0;
	}

	.p-ContactAttention_cards {
		grid-template-columns: 1fr;
		gap: 16px;
		margin-top: 28px;
		max-width: none;
	}

	.p-ContactAttention_card {
		grid-column: auto;
		min-height: 0;
		padding: 18px 20px;
	}

	.p-ContactAttention_card.-tel,
	.p-ContactAttention_card.-mail {
		column-gap: 16px;
		padding-right: 35px;
		padding: 19px 20px 20px;
	}

	.p-ContactAttention_card.-reserve {
		display: grid;
		grid-template-rows: auto auto;
		grid-template-columns: auto minmax(0, 1fr);
		padding-bottom: 0;
		row-gap: 0;
	}

	.p-ContactAttention_card.-reserve .p-ContactAttention_cardIcon {
		margin-right: 31px;
	}

	.p-ContactAttention_card.-reserve .p-ContactAttention_cardNote {
		grid-column: 1 / -1;
		width: calc(100% + 40px);
		min-width: 0;
		margin: 21px -20px 0;
		padding: 12px 16px;
		border-radius: 0 0 10px 10px;
		border: 1px solid var(--color-primary);
		border-top: none;
	}

	.p-ContactAttention_card.-otherTel {
		grid-template-columns: auto minmax(0, 1fr);
		grid-template-rows: auto auto auto;
		column-gap: 18px;
		row-gap: 0;
		align-items: center;
		max-width: none;
		margin-top: 14px;
		padding-bottom: 0;
	}

	.p-ContactAttention_card.-otherTel .p-ContactAttention_cardIcon {
		grid-column: 1;
		grid-row: 1 / span 2;
		margin-right: 0;
		align-self: center;
	}

	.p-ContactAttention_card.-otherTel .p-ContactAttention_cardLabel {
		grid-column: 2;
		grid-row: 1;
		font-size: 1.5rem;
		letter-spacing: 0.02em;
	}

	.p-ContactAttention_card.-otherTel .p-ContactAttention_cardTel {
		grid-column: 2;
		grid-row: 2;
		margin-left: 0;
		font-size: 2.8rem;
		text-align: left;
	}

	.p-ContactAttention_card.-otherTel .p-ContactAttention_cardNote {
		grid-column: 1 / -1;
		grid-row: 3;
		justify-self: stretch;
		width: calc(100% + 40px);
		min-width: 0;
		margin: 20px -20px 0;
		padding: 13px 10px 12px 20px;
		border-radius: 0 0 10px 10px;
		border: 1px solid var(--color-primary);
		border-top: none;
		font-size: 1.5rem;
		justify-content: flex-start;
		gap: 18px;
	}

	.p-ContactAttention_cardHours {
		letter-spacing: 0.08em;
	}

	.p-ContactAttention_cardIcon {
		width: 56px;
		height: 56px;
	}

	.p-ContactAttention_cardText {
		font-size: 2rem;
	}

	.p-ContactAttention_cardLabel {
		font-size: 1.6rem;
		letter-spacing: 0.05em;
	}

	.p-ContactAttention_cardArrow {
		width: 30px;
		height: 30px;
		margin-right: 15px;
		margin-top: -4px;
	}

	.p-ContactAttention_cardArrow::after {
		width: 8px;
		height: 8px;
	}

	.p-ContactAttention_alert {
		align-items: flex-start;
		gap: 16px;
		margin-top: 38px;
		padding: 20px 16px 20px 20px;
	}

	.p-ContactAttention_alertIcon {
		width: 30px;
		height: 30px;
		margin-top: 23px;
		font-size: 1.8rem;
	}

	.p-ContactAttention_alertText {
		font-size: 1.6rem;
		line-height: 1.625;
		padding-right: 10px;
	}
}

/* p-ContactPhone
***********************************************/
.p-ContactPhone {
	scroll-margin-top: calc(var(--header-height) + 20px);
	margin: 20px;
	border-radius: 10px;
	background: var(--color-white);
}

.p-ContactPhone_inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 40px;
	padding: 77px 0 70px;
}

.p-ContactPhone_inner .Title01 {
	flex-shrink: 0;
}

.p-ContactPhone_inner .Title01_en {
	margin-bottom: 18px;
}

.p-ContactPhone_tel {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 23px;
	margin-right: 37px;
}

.p-ContactPhone_number {
	display: inline-flex;
	align-items: center;
	gap: 20px;
	color: var(--color-primary);
	transition: color 0.4s ease;
}

.p-ContactPhone_icon {
	position: relative;
	display: grid;
	place-items: center;
	width: 60px;
	height: 60px;
	flex-shrink: 0;
}

.p-ContactPhone_icon::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 50%;
	background: var(--color-primary);
	transition: background-color 0.4s ease;
}

.p-ContactPhone_icon::after {
	content: "";
	position: relative;
	z-index: 1;
	width: 22px;
	height: 22px;
	background: url(../../images/common/icon-phone.svg) no-repeat center / contain;
}

.p-ContactPhone_telText {
	font-family: var(--font-num);
	font-size: 5rem;
	letter-spacing: 0.02em;
	line-height: 1;
}

.p-ContactPhone_hours {
	display: inline-flex;
	align-items: baseline;
	justify-content: center;
	min-width: 360px;
	margin: 0;
	padding: 11px 22px 12px 32px;
	border-radius: 9999px;
	background: linear-gradient(223deg, #fbebe4 0%, #e4efef 100%);
	color: var(--color-primary);
	font-size: 1.6rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1;
}

.p-ContactPhone_hoursLabel {
	margin-right: 21px;
}

.p-ContactPhone_hoursTime {
	font-family: var(--font-num);
	font-weight: 500;
	margin-left: 10px;
}

@media (hover: hover) and (pointer: fine) {
	.p-ContactPhone_number:hover {
		color: var(--color-accent);
	}

	.p-ContactPhone_number:hover .p-ContactPhone_icon::before {
		background-color: var(--color-accent);
	}
}

@media (max-width: 767px) {
	.p-ContactPhone_inner {
		flex-direction: column;
		align-items: stretch;
		gap: 28px;
		padding: 31px 10px 34px;
	}

	.p-ContactPhone_inner .Title01_en {
		margin-bottom: 13px;
	}

	.p-ContactPhone_inner .Title01_ja {
		font-size: 2.1rem;
	}

	.p-ContactPhone_tel {
		margin-right: 0;
	}

	.p-ContactPhone_number {
		gap: 16px;
	}

	.p-ContactPhone_icon {
		width: 56px;
		height: 56px;
	}

	.p-ContactPhone_telText {
		font-size: 3.6rem;
	}

	.p-ContactPhone_hours {
		flex-wrap: wrap;
		row-gap: 6px;
		min-width: 0;
		width: 100%;
		max-width: 265px;
		padding: 14px 20px;
		border-radius: 34px;
	}

	.p-ContactPhone_hoursLabel {
		width: 100%;
		text-align: center;
		margin-right: 0;
	}
}

/* p-ContactMail
***********************************************/
.p-ContactMail {
	margin-top: 120px;
	padding-bottom: 120px;
	scroll-margin-top: calc(var(--header-height) + 20px);
}

.p-ContactMail .Text {
	margin-top: 31px;
}

.p-ContactMail_alert {
	display: flex;
	align-items: center;
	gap: 18px;
	margin-top: 36px;
	padding: 10px 20px;
	position: relative;
}

.p-ContactMail_alert::before {
	content: "";
	position: absolute;
	inset: 0;
	background-color: #a5a5a5;
	mix-blend-mode: color-burn;
	z-index: -1;
	border-radius: 10px;
}

.p-ContactMail_alertIcon {
	display: grid;
	place-items: center;
	flex-shrink: 0;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--color-primary);
	color: var(--color-white);
	font-family: var(--font-en);
	font-size: 2.6rem;
	letter-spacing: 0.04em;
	line-height: 1;
}

.p-ContactMail_alertText {
	margin: 0;
	color: var(--color-text);
	font-size: 1.7rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1.5;
}

.p-ContactMail .Form {
	margin-top: 80px;
}

.p-ContactMail_privacy {
	margin-top: 57px;
	text-align: center;
	font-weight: 500;
	line-height: 1.88;
}

.p-ContactMail_privacyLink {
	color: var(--color-accent);
	font-weight: 700;
	text-decoration: underline;
}

.p-ContactMail_submit {
	display: flex;
	justify-content: center;
	margin-top: 48px;
}

@media (max-width: 767px) {
	.p-ContactMail {
		padding-bottom: 71px;
		margin-top: 66px;
	}

	.p-ContactMail .Text {
		margin-top: 27px;
		padding-right: 10px;
	}

	.p-ContactMail_alert {
		align-items: flex-start;
		gap: 16px;
		margin-top: 28px;
		padding: 19px 30px 19px 20px;
	}

	.p-ContactMail_alertIcon {
		width: 30px;
		height: 30px;
		margin-top: 24px;
		font-size: 1.8rem;
	}

	.p-ContactMail_alertText {
		font-size: 1.6rem;
		line-height: 1.625;
	}

	.p-ContactMail .Form {
		margin-top: 30px;
		padding-bottom: 38px;
	}

	.p-ContactMail_privacy {
		margin-top: 49px;
		text-align: center;
		letter-spacing: 0.04em;
		line-height: 1.75;
	}

	.p-ContactMail_submit {
		margin-top: 28px;
		margin-top: 49px;
	}

	.p-ContactMail_submit .Button {
		width: 100%;
		max-width: 295px;
	}
}

/**********************************************
*
* p-Thanks
*
***********************************************/
.p-Thanks .FormFlow {
	max-width: 952px;
}

.p-Thanks .Title01 {
	margin-top: 80px;
}

.p-Thanks .Title01_en {
	display: block;
}

.p-Thanks .Text {
	margin-top: 40px;
}

.p-Thanks_button {
	display: flex;
	justify-content: center;
	margin-top: 50px;
}

@media (max-width: 767px) {
	.p-Thanks .Title01 {
		margin-top: 48px;
		text-align: center;
	}

	.p-Thanks .Title01_en {
		margin-bottom: 12px;
	}

	.p-Thanks .Title01_ja {
		line-height: 1.5;
	}

	.p-Thanks .Text {
		margin-top: 28px;
	}

	.p-Thanks_button {
		margin-top: 40px;
	}

	.p-Thanks_button .Button {
		width: 100%;
		max-width: 295px;
	}
}

/**********************************************
*
* p-NotFound
*
***********************************************/
.p-NotFound {
	text-align: center;
}

.p-NotFound_code {
	margin: 0;
	color: var(--color-primary);
	font-family: var(--font-num);
	font-size: 12rem;
	font-weight: 500;
	letter-spacing: 0.04em;
	line-height: 1;
}

.p-NotFound .Title01 {
	margin-top: 24px;
}

.p-NotFound .Title01_en {
	display: block;
}

.p-NotFound .Text {
	max-width: 720px;
	margin-top: 40px;
	margin-right: auto;
	margin-left: auto;
}

.p-NotFound_buttons {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 20px 24px;
	margin-top: 50px;
}

@media (hover: hover) and (pointer: fine) {
	.p-NotFound_link:hover {
		color: var(--color-primary);
	}
}

@media (max-width: 767px) {
	.p-NotFound {
		text-align: left;
	}

	.p-NotFound_code {
		font-size: 8rem;
		text-align: center;
	}

	.p-NotFound .Title01 {
		margin-top: 20px;
		text-align: center;
	}

	.p-NotFound .Title01_en {
		margin-bottom: 12px;
	}

	.p-NotFound .Title01_ja {
		line-height: 1.5;
	}

	.p-NotFound .Text {
		margin-top: 28px;
	}

	.p-NotFound_buttons {
		flex-direction: column;
		align-items: center;
		margin-top: 40px;
	}

	.p-NotFound_buttons .Button {
		width: 100%;
		max-width: 295px;
	}
}

/**********************************************
*
* p-Policy
*
***********************************************/
.p-Policy {
	margin-top: -23px;
}

.p-Policy_lead {
	font-weight: 500;
}

.p-Policy_list {
	margin-top: 72px;
}

.p-Policy_item + .p-Policy_item {
	margin-top: 74px;
}

.p-Policy_text {
	margin-top: 28px;
	font-weight: 500;
}

.p-Policy_box {
	margin-top: 46px;
	padding: 40px 50px;
	border-radius: 10px;
	background-color: var(--color-white);
}

.p-Policy_boxItem {
	position: relative;
	padding-left: 16px;
	font-size: 1.6rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.5;
}

.p-Policy_boxItem::before {
	content: "";
	position: absolute;
	top: 0.55em;
	left: 0;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background-color: var(--color-primary);
}

.p-Policy_boxItem + .p-Policy_boxItem {
	margin-top: 8px;
}

.p-Policy_contact {
	--_contact-gutter: clamp(30px, -66px + 12.5vw, 81px);
	display: flex;
	align-items: center;
	gap: var(--_contact-gutter);
	margin-top: 44px;
	padding: 37px clamp(30px, -45.294px + 9.804vw, 70px);
	border-radius: 10px;
	background-color: var(--color-white);
}

.p-Policy_contactLogo {
	flex: 0 1 clamp(226px, 0.118px + 29.412vw, 346px);
	width: clamp(226px, 0.118px + 29.412vw, 346px);
	min-width: 0;
}

.p-Policy_contactLogoImg {
	display: block;
	width: 100%;
	height: auto;
}

.p-Policy_contactBody {
	position: relative;
	flex: 1 1 auto;
	min-width: 0;
	padding-left: var(--_contact-gutter);
	margin-top: 4px;
}

.p-Policy_contactBody::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	width: 1px;
	height: 144px;
	transform: translateY(-50%);
	background-color: #cbcbcb;
	border-radius: 0.5px;
}

.p-Policy_contactName {
	font-size: 1.6rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1.5;
}

.p-Policy_contactAddress {
	margin-top: 10px;
	font-size: 1.6rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.75;
}

@media (max-width: 767px) {
	.p-Policy {
		margin-top: 3px;
	}

	.p-Policy_lead {
		letter-spacing: 0.04em;
		line-height: 1.75;
		padding-right: 10px;
	}

	.p-Policy_titleIndent {
		text-indent: 0.6em;
        margin-left: -0.6em;
	}

	.p-Policy_list {
		margin-top: 52px;
	}

	.p-Policy_item + .p-Policy_item {
		margin-top: 41px;
	}

	.p-Policy_text {
		letter-spacing: 0.04em;
		line-height: 1.75;
		margin-top: 16px;
		padding-right: 10px;
	}

	.p-Policy_box {
		margin-top: 28px;
		padding: 29px 15px 30px 30px;
	}

	.p-Policy_boxItem {
		padding-left: 14px;
		font-size: 1.5rem;
		line-height: 1.6;
	}

	.p-Policy_boxItem::before {
		width: 5px;
		height: 5px;
	}

	.p-Policy_boxItem + .p-Policy_boxItem {
		margin-top: 8px;
	}

	.p-Policy_contact {
		flex-direction: column;
		align-items: flex-start;
		gap: 0;
		margin-top: 28px;
		padding: 30px 30px;
	}

	.p-Policy_contactLogo {
		flex: none;
		width: 100%;
		max-width: 254px;
	}

	.p-Policy_contactLogoImg {
		max-width: 254px;
	}

	.p-Policy_contactBody {
		width: 100%;
		margin-top: 21px;
        padding-top: 21px;
		padding-left: 0;
	}

	.p-Policy_contactBody::before {
		top: 0;
		left: 0;
		width: 100%;
		height: 1px;
		transform: none;
	}

	.p-Policy_contactName {
		font-size: 1.6rem;
		line-height: 1.5;
	}

	.p-Policy_contactAddress {
		margin-top: 9px;
		font-size: 1.5rem;
		line-height: 1.7;
	}

	.p-Policy_contactAddressText {
		line-height: 1.6;
		display: inline-block;
	}

	.p-Policy_contactAddressTel {
		margin-top: 4px;
        display: inline-block;
	}
}

/**********************************************
*
* p-Faq
*
***********************************************/
.p-Faq .l-container {
	position: relative;
	z-index: 1;
}

.p-Faq_inner {
	display: grid;
	grid-template-columns: clamp(260px, 184.706px + 9.804vw, 300px) minmax(0, 1fr);
	column-gap: clamp(30px, -64.118px + 12.255vw, 80px);
	align-items: start;
	padding-right: 13px;
}

.p-Faq_nav {
	position: sticky;
	top: calc(var(--header-height) + 40px);
}

.p-Faq_navList {
	display: flex;
	flex-direction: column;
	margin-top: -10px;
}

.p-Faq_navLink {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 15px 0;
	border-bottom: 1px solid #cbcbcb;
	color: var(--color-text);
	font-size: clamp(1.4rem, 1.024rem + 0.490vw, 1.6rem);
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.4;
	transition: color 0.4s;
}

.p-Faq_navLink::after {
	content: "";
	flex-shrink: 0;
	width: 8px;
	height: 8px;
	border-right: 2px solid var(--color-primary);
	border-bottom: 2px solid var(--color-primary);
	transform: rotate(45deg);
}

.p-Faq_section + .p-Faq_section {
	margin-top: 100px;
}

.p-Faq_heading {
	margin-bottom: 40px;
	color: var(--color-text);
	font-size: clamp(2.8rem, 0.918rem + 2.451vw, 3.8rem);
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1.4;
}

@media (hover: hover) and (pointer: fine) {
	.p-Faq_navLink:hover {
		color: var(--color-primary);
	}
}

@media (max-width: 767px) {
	.p-Faq_inner {
		grid-template-columns: 1fr;
		row-gap: 63px;
		padding-right: 0;
	}

	.p-Faq_nav {
		position: static;
	}

	.p-Faq_navLink {
		padding: 15px 26px 15px 0;
	}

	.p-Faq_section + .p-Faq_section {
		margin-top: 70px;
	}

	.p-Faq_heading {
		margin-bottom: 40px;
		font-size: 2.4rem;
		line-height: 1.5;
	}
}

/**********************************************
*
* p-Sitemap
*
***********************************************/
.p-Sitemap {
	margin-top: -16px;
}

.p-Sitemap_inner {
	display: grid;
	grid-template-columns: minmax(0, 1.69fr) minmax(0, 1fr) minmax(0, 1fr);
	gap: 50px 40px;
}

.p-Sitemap_title {
	padding-bottom: 18px;
	border-bottom: 1px solid var(--color-primary);
	color: var(--color-primary);
	font-size: 1.8rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1;
}

.p-Sitemap_cols {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 8px;
	margin-top: 26px;
}

.p-Sitemap_group:not(.-about) .p-Sitemap_list {
	margin-top: 26px;
}

.p-Sitemap_list {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.p-Sitemap_link {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: var(--color-text);
	font-size: 1.6rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.4;
}

.p-Sitemap_link::before {
	content: "";
	display: block;
	width: 7px;
	height: 12px;
	background: url(../../images/common/icon-arrow.svg) no-repeat center / contain;
	flex-shrink: 0;
}

@media (hover: hover) and (pointer: fine) {
	.p-Sitemap_link:hover {
		color: var(--color-primary);
	}
}

@media (max-width: 1023px) {
	.p-Sitemap_inner {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 50px 24px;
	}

	.p-Sitemap_cols {
		grid-template-columns: 1fr;
		gap: 2px;
	}
}

@media (max-width: 767px) {
	.p-Sitemap {
		margin-top: 9px;
	}
	
	.p-Sitemap_inner {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.p-Sitemap_title {
		padding-bottom: 18px;
	}

	.p-Sitemap_cols {
		grid-template-columns: 1fr;
		gap: 2px;
		margin-top: 16px;
	}

	.p-Sitemap_group:not(.-about) .p-Sitemap_list {
		margin-top: 15px;
	}

	.p-Sitemap_list {
		gap: 2px;
	}
}

/**********************************************
* 
* p-Esthetic
*
***********************************************/
/* p-EstheticCrown
***********************************************/
.p-EstheticCrown {
	scroll-margin-top: var(--header-height);
}

.p-EstheticCrown_intro {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, clamp(229px, -17.588px + 32.108vw, 360px));
	grid-template-rows: auto auto;
	column-gap: clamp(30px, -101.765px + 17.157vw, 100px);
	align-items: start;
}

.p-EstheticCrown_figure {
	grid-column: 2;
	grid-row: 1 / -1;
	overflow: hidden;
	border-radius: 10px;
}

.p-EstheticCrown_figure picture,
.p-EstheticCrown_figureImg {
	display: block;
	width: 100%;
	height: auto;
}

.p-EstheticCrown_intro .Title01,
.p-EstheticCrown_intro .Text {
	grid-column: 1;
}

.p-EstheticCrown_intro .Title01 {
	margin-top: 17px;
}

.p-EstheticCrown_intro .Text {
	margin-top: 17px;
}

.p-EstheticCrown_cards {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(16px, 8.471px + 0.980vw, 20px);
	margin-top: clamp(40px, -35.294px + 9.804vw, 80px);
}

.p-EstheticCrown_card {
	--_icon-base: 140px;
	--_icon: clamp(90px, -4.118px + 12.255vw, var(--_icon-base));
	display: grid;
	grid-template-columns: var(--_icon) minmax(0, 1fr);
	grid-template-areas:
		"title title"
		"icon meta"
		"text text"
		"note note";
	column-gap: clamp(16px, -10.353px + 3.431vw, 30px);
	align-items: start;
	align-content: start;
	padding: clamp(32px, 5.647px + 3.431vw, 46px) clamp(30px, -7.647px + 4.902vw, 50px);
	border-radius: 10px;
	background: var(--color-white);
}

.p-EstheticCrown_cardTitle {
	grid-area: title;
	margin: 0 0 32px;
}

.p-EstheticCrown_icon {
	grid-area: icon;
	display: grid;
	place-items: center;
	width: var(--_icon);
	height: var(--_icon);
	overflow: hidden;
	border-radius: 10px;
	background: var(--color-bg);
}

.p-EstheticCrown_icon.-end {
	justify-items: end;
}

.p-EstheticCrown_iconImg {
	display: block;
	transform: scale(calc(var(--_icon) / var(--_icon-base)));
	transform-origin: center;
}

.p-EstheticCrown_icon.-end .p-EstheticCrown_iconImg {
	width: calc(var(--_icon) * 119 / 140);
	height: auto;
	transform: none;
}

.p-EstheticCrown_cardMeta {
	grid-area: meta;
	min-width: 0;
	margin-top: 6px;
}

.p-EstheticCrown_price {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 2px;
	margin: 0;
	padding-bottom: 19px;
	border-bottom: 1px solid #cbcbcb;
}

.p-EstheticCrown_priceNum {
	color: var(--color-text);
	font-family: var(--font-num);
	font-size: 2.8rem;
	letter-spacing: 0.03em;
	line-height: 1;
}

.p-EstheticCrown_priceUnit {
	color: var(--color-text);
	font-size: 1.6rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1;
}

.p-EstheticCrown_points {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 33px 0 0;
	padding: 0;
	list-style: none;
}

.p-EstheticCrown_point {
	position: relative;
	padding-left: 16px;
	color: var(--color-text);
	font-size: 1.6rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.2;
}

.p-EstheticCrown_point::before {
	content: "";
	position: absolute;
	top: 0.45em;
	left: 0;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--color-primary);
}

.p-EstheticCrown_cardText {
	grid-area: text;
	margin-top: 28px;
}

.p-EstheticCrown_note {
	grid-area: note;
	display: flex;
	align-items: flex-start;
	gap: 6px;
	margin: 13px 0 0;
	color: var(--color-text);
	font-size: 1.2rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.85;
}

.p-EstheticCrown_noteMark {
	flex-shrink: 0;
}

@media (max-width: 767px) {
	.p-EstheticCrown_intro {
		display: flex;
		flex-direction: column;
		margin-top: -17px;
	}

	.p-EstheticCrown_figure {
		order: 3;
		width: 100%;
		margin-top: 40px;
	}

	.p-EstheticCrown_intro .Title01 {
		order: 1;
	}

	.p-EstheticCrown_intro .Text {
		order: 4;
		margin-top: 32px;
		padding-right: 10px;
	}

	.p-EstheticCrown_cards {
		grid-template-columns: 1fr;
		gap: 23px;
		margin-top: 32px;
	}

	.p-EstheticCrown_card {
		grid-template-columns: minmax(0, 1fr) 61px;
		grid-template-areas:
			"title icon"
			"meta meta"
			"text text"
			"note note";
		column-gap: 5px;
		padding: 29px 30px;
	}

	.p-EstheticCrown_cardTitle {
		margin: 0;
		align-self: center;
	}

	.p-EstheticCrown_icon {
		width: 61px;
		height: 61px;
	}

	.p-EstheticCrown_iconImg {
		max-width: 63%;
		max-height: 46%;
		height: auto;
		object-fit: contain;
		transform: none;
	}

	.p-EstheticCrown_icon.-end .p-EstheticCrown_iconImg {
		width: auto;
		max-width: 83%;
		max-height: 66%;
		padding-top: 2px;
	}

	.p-EstheticCrown_cardMeta {
		margin-top: 21px;
	}

	.p-EstheticCrown_price {
		padding-bottom: 14px;
	}

	.p-EstheticCrown_priceNum {
		font-size: 2.4rem;
	}

	.p-EstheticCrown_priceUnit {
		font-size: 1.4rem;
	}

	.p-EstheticCrown_points {
		gap: 10px;
		margin-top: 11px;
	}

	.p-EstheticCrown_point {
		padding-left: 14px;
		font-size: 1.4rem;
	}

	.p-EstheticCrown_point::before {
		width: 5px;
		height: 5px;
	}

	.p-EstheticCrown_cardText {
		margin-top: 17px;
	}

	.p-EstheticCrown_note {
		margin-top: 10px;
		line-height: 1.5;
		gap: 2px;
	}
}

/* p-EstheticGummy
***********************************************/
.p-EstheticGummy {
	scroll-margin-top: var(--header-height);
	margin-top: -27px;
}

.p-EstheticGummy_intro .Text {
	margin-top: 30px;
	padding-right: 10px;
}

.p-EstheticGummy .l-container {
	position: relative;
	z-index: 1;
}

.p-EstheticGummy_intro .Text {
	max-width: 1126px;
}

.p-EstheticGummy_list {
	display: flex;
	flex-direction: column;
	gap: clamp(24px, -6.118px + 3.922vw, 40px);
	margin-top: clamp(38px, -29.765px + 8.824vw, 74px);
}

.p-EstheticGummy_card {
	--_figure: clamp(220px, -5.882px + 29.412vw, 340px);
	display: grid;
	grid-template-columns: var(--_figure) minmax(0, 1fr);
	grid-template-areas:
		"head head"
		"figure text"
		"figure foot";
	column-gap: clamp(20px, -38.353px + 7.598vw, 51px);
	row-gap: 0;
	align-items: start;
	padding: clamp(32px, -1.882px + 4.412vw, 50px) clamp(36px, -26.118px + 8.088vw, 69px) clamp(40px, 2.353px + 4.902vw, 60px) clamp(36px, -28px + 8.333vw, 70px);
	border-radius: 10px;
	background: var(--color-white);
}

.p-EstheticGummy_head {
	grid-area: head;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: clamp(16px, -8.471px + 3.186vw, 29px);
	margin-bottom: clamp(20px, -8.235px + 3.676vw, 35px);
}

.p-EstheticGummy_badge {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	margin: 0;
	padding: 8px 20px;
	border-radius: 9999px;
	background: var(--color-primary);
	color: var(--color-white);
	font-size: 1.6rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.4;
	text-align: center;
}

.p-EstheticGummy_figure {
	grid-area: figure;
	overflow: hidden;
	width: 100%;
	border-radius: 10px;
}

.p-EstheticGummy_figureImg {
	display: block;
	width: 100%;
	height: auto;
}

.p-EstheticGummy_cardTitle {
	margin: 0;
	color: var(--color-text);
	font-size: clamp(2.2rem, 1.071rem + 1.471vw, 2.8rem);
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1.4;
}

.p-EstheticGummy_cardSub {
	font-size: 1.8rem;
	letter-spacing: 0.1em;
}

.p-EstheticGummy_cardText {
	grid-area: text;
	margin-top: 0;
}

.p-EstheticGummy_specs,
.p-EstheticGummy_action {
	grid-area: foot;
}

.p-EstheticGummy_action {
	margin-top: 29px;
}

.p-EstheticGummy_specs {
	display: flex;
	flex-wrap: nowrap;
	gap: clamp(8px, -16.471px + 3.186vw, 21px);
	border-bottom: 1px solid #cbcbcb;
	padding-bottom: 16px;
	margin-top: 23px;
}

.p-EstheticGummy_spec {
	display: flex;
	align-items: center;
	flex-shrink: 1;
	min-width: 0;
	gap: clamp(6px, -10.941px + 2.206vw, 15px);
	margin: 0;
	white-space: nowrap;
}

.p-EstheticGummy_specLabel {
	display: grid;
	place-items: center;
	flex-shrink: 0;
	width: clamp(36px, 11.529px + 3.186vw, 49px);
	height: clamp(38px, 15.529px + 2.941vw, 50px);
	margin: 0;
	border-radius: 4px;
	background: var(--color-text);
	color: var(--color-white);
	font-size: clamp(1.1rem, 0.535rem + 0.735vw, 1.4rem);
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.2;
	text-align: center;
}

.p-EstheticGummy_specValue {
	display: flex;
	align-items: baseline;
	flex-wrap: nowrap;
	margin: 0;
	white-space: nowrap;
}

.p-EstheticGummy_specNum {
	color: var(--color-text);
	font-family: var(--font-num);
	font-size: clamp(1.8rem, -0.082rem + 2.451vw, 2.8rem);
	letter-spacing: 0.03em;
	line-height: 1;
}

.p-EstheticGummy_specUnit {
	color: var(--color-text);
	font-size: clamp(1.2rem, 0.447rem + 0.980vw, 1.6rem);
	font-weight: 500;
	letter-spacing: 0.04em;
	line-height: 1;
}

.p-EstheticGummy_action .Button {
	min-width: 320px;
}

@media (max-width: 767px) {
	.p-EstheticGummy_list {
		gap: 24px;
		margin-top: 38px;
	}

	.p-EstheticGummy_card {
		display: flex;
		flex-direction: column;
		padding: 30px;
		align-items: stretch;
	}

	.p-EstheticGummy_head {
		display: contents;
	}

	.p-EstheticGummy_badge {
		align-self: center;
		margin-bottom: 13px;
		padding: 6px 16px;
		min-height: 0;
		font-size: 1.3rem;
	}

	.p-EstheticGummy_cardTitle {
		margin: 0 auto 20px;
		font-size: 2rem;
		text-align: center;
	}

	.p-EstheticGummy_cardSub {
		display: block;
		margin-top: 8px;
		font-size: 1.4rem;
	}

	.p-EstheticGummy_figure {
		order: 3;
		margin-bottom: 24px;
	}

	.p-EstheticGummy_cardText {
		order: 4;
	}

	.p-EstheticGummy_specs,
	.p-EstheticGummy_action {
		order: 5;
		margin-top: 14px;
	}

	.p-EstheticGummy_action {
		margin-top: 27px;
		margin-bottom: 10px;
	}

	.p-EstheticGummy_specs {
		flex-direction: column;
		padding-top: 0;
		border-top: none;
		gap: 12px;
		border-bottom: 0;
		padding-bottom: 2px;
	}

	.p-EstheticGummy_spec {
		gap: 13px;
	}

	.p-EstheticGummy_specLabel {
		width: 78px;
		height: 32px;
	}

	.p-EstheticGummy_specLabelText br {
		display: none;
	}

	.p-EstheticGummy_specNum {
		font-size: 2.4rem;
	}

	.p-EstheticGummy_specUnit {
		font-size: 1.4rem;
	}

	.p-EstheticGummy_action .Button {
		width: 100%;
		min-width: 0;
		padding: 13px 65px 14px 30px;
	}

	.p-EstheticGummy_specValue {
		gap: 2px;
	}
}

/* p-RootEquipment
***********************************************/
.p-EstheticCounseling {
	margin-bottom: 140px;
}

@media (max-width: 767px) {
	.p-EstheticCounseling {
		margin-bottom: 70px;
	}
}

/* p-RootEquipment
***********************************************/
.p-RootEquipment {
	scroll-margin-top: var(--header-height);
	margin-top: 119px;
}

.p-RootEquipment_intro .Text {
	margin-top: 51px;
}

.p-RootEquipment .NumberedList {
	margin-top: 77px;
}

@media (max-width: 767px) {
	.p-RootEquipment {
		margin-top: 66px;
	}

	.p-RootEquipment_intro .Text {
		margin-top: 38px;
		padding-right: 10px;
	}

	.p-RootEquipment .NumberedList {
		margin-top: 57px;
	}
}

/* Whitening
***********************************************/
.p-WhiteningList {
	margin-top: 73px;
	border-top: 1px solid #cbcbcb;
}

.p-WhiteningList_item {
	padding: 56px 0;
	border-bottom: 1px solid #cbcbcb;
}

.p-WhiteningList_item .NoticeBox {
	margin-top: 55px;
}

@media (max-width: 767px) {
	.p-WhiteningList {
		margin-top: 37px;
	}

	.p-WhiteningList_item {
		padding: 39px 0;
	}

	.p-WhiteningList_item .NoticeBox {
		margin-top: 39px;
	}
}

/* p-PeriodontalAging
***********************************************/
.p-PeriodontalAging {
	scroll-margin-top: var(--header-height);
	margin-top: 113px;
}

.p-PeriodontalAging_intro {
	margin-bottom: 36px;
}

.p-PeriodontalAging_flow {
	--chevron: 28px;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 24px 0;
	padding: 0;
	list-style: none;
	margin-left: 40px;
    margin-right: -30px;
}

.p-PeriodontalAging_item {
	position: relative;
	flex: 0 1 calc((100% - 36px) / 3);
	min-width: 0;
}

.p-PeriodontalAging_itemInner {
	position: relative;
	height: 100%;
	padding: 23px clamp(45px, -2.059px + 6.127vw, 70px) 25px 24px;
}

.p-PeriodontalAging_itemInner::before {
	content: "";
	position: absolute;
	inset: 0;
	left: -8%;
    width: 100%;
	z-index: 0;
	background: var(--color-white);
	clip-path: polygon(
		0% 0%,
		calc(100% - var(--chevron)) 0%,
		100% 50%,
		calc(100% - var(--chevron)) 100%,
		0% 100%,
		var(--chevron) 50%
	);
}

.p-PeriodontalAging_age {
	position: relative;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 56px;
	height: 29px;
	padding: 0 12px;
	border-radius: 14.5px;
	background: var(--color-primary);
	color: var(--color-white);
	font-size: 1.5rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1;
}

.p-PeriodontalAging_text {
	position: relative;
	z-index: 1;
	margin-top: 15px;
	color: var(--color-text);
	font-size: 1.5rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1.8;
}

@media (max-width: 767px) {
	.p-PeriodontalAging {
		margin-top: 64px;
	}

	.p-PeriodontalAging_intro {
		margin-bottom: 32px;
	}

	.p-PeriodontalAging_flow {
		flex-direction: column;
		flex-wrap: nowrap;
		align-items: center;
		gap: 0;
		max-width: 325px;
		margin-left: 0;
		margin-right: 0;
	}

	.p-PeriodontalAging_item {
		flex: 0 1 auto;
		width: 100%;
	}

	.p-PeriodontalAging_item + .p-PeriodontalAging_item {
		margin-top: calc(var(--chevron) * -1);
	}

	.p-PeriodontalAging_itemInner {
		padding: 47px 30px 48px;
		text-align: center;
	}

	.p-PeriodontalAging_itemInner::before {
		left: 0;
		height: 98%;
		clip-path: polygon(
			0% 0%,
			50% var(--chevron),
			100% 0%,
			100% calc(100% - var(--chevron)),
			50% 100%,
			0% calc(100% - var(--chevron))
		);
	}

	.p-PeriodontalAging_text {
		margin-top: 7px;
		text-align: left;
		line-height: 1.6;
	}
}

/* p-PeriodontalBeforeCavity
***********************************************/
.p-PeriodontalBeforeCavity {
	scroll-margin-top: var(--header-height);
	margin-top: 24px;
}

.p-PeriodontalBeforeCavity_intro .Text {
	margin-top: 53px;
}

.p-PeriodontalBeforeCavity_subtitle {
	margin-top: 71px;
}

@media (max-width: 767px) {
	.p-PeriodontalBeforeCavity {
		margin-top: -13px;
	}

	.p-PeriodontalBeforeCavity_intro .Text {
		margin-top: 38px;
		padding-right: 10px;
	}

	.p-PeriodontalBeforeCavity_subtitle {
		margin-top: 32px;
	}
}

/* p-PeriodontalTreatment
***********************************************/
.p-PeriodontalTreatment {
	scroll-margin-top: var(--header-height);
	margin-top: 119px;
}

.p-PeriodontalTreatment_intro .Text {
	margin-top: 52px;
}

.p-PeriodontalTreatment .NumberedList {
	margin-top: 77px;
}

@media (max-width: 767px) {
	.p-PeriodontalTreatment {
		margin-top: -24px;
	}

	.p-PeriodontalTreatment_intro .Text {
		margin-top: 38px;
		padding-right: 10px;
	}

	.p-PeriodontalTreatment .NumberedList {
		margin-top: 57px;
	}
}

/* p-PeriodontalPrice
***********************************************/
.p-PeriodontalPrice {
	margin-top: 132px;
}

.p-PeriodontalPrice .Table {
	max-width: 822px;
}

.p-PeriodontalPrice .Table_body {
	margin-top: 60px;
}

@media (max-width: 767px) {
	.p-PeriodontalPrice {
		margin-top: -28px;
	}

	.p-PeriodontalPrice .Table {
		padding-bottom: 0;
	}

	.p-PeriodontalPrice .Table_body {
		margin-top: 39px;
	}

	.p-PeriodontalPrice .Table_td {
		padding: 16px 24px 16px 15px;
	}

	.p-PeriodontalPrice .Table_yen {
		font-size: 1.3rem;
		margin-top: 4px;
	}

	.p-PeriodontalPrice .Table_yen.-part {
		margin-right: 29px;
	}
}

/* p-PeriodontalCaseStudy
***********************************************/
@media (max-width: 767px) {
	.p-PeriodontalCaseStudy {
		margin-top: -32px;
	}
}

/* p-RootCoverageTreatment
***********************************************/
.p-RootCoverageTreatment {
	--table-head-width: 59%;
	margin-top: 119px;
}

.p-RootCoverageTreatment .MediaBlock_content {
	grid-template-columns: minmax(0, 1fr) minmax(0, clamp(254px, -20.824px + 35.784vw, 400px));
	column-gap: clamp(30px, -64.118px + 12.255vw, 80px);
}

.p-RootCoverageTreatment .MediaBlock_text {
	padding-right: 10px;
}

.p-RootCoverageTreatment .Table_frame {
	width: 100%;
	max-width: 626px;
	margin-top: 32px;
}

.p-RootCoverageTreatment .Table_th {
	padding: 16px clamp(15px, -13.235px + 3.676vw, 30px);
	font-size: clamp(1.4rem, 0.835rem + 0.735vw, 1.7rem);
}

.p-RootCoverageTreatment .Table_name {
	white-space: nowrap;
}

.p-RootCoverageTreatment .Table_td {
	padding: 16px clamp(15px, -13.235px + 3.676vw, 30px);
}

.p-RootCoverageTreatment .Table_price {
	flex-wrap: nowrap;
	padding-right: clamp(12px, -21.882px + 4.412vw, 30px);
}

.p-RootCoverageTreatment .Table_num {
	min-width: 7ch;
	font-size: clamp(1.6rem, 0.847rem + 0.980vw, 2rem);
}

.p-RootCoverageTreatment .Table_yen {
	font-size: clamp(1.5rem, 0.935rem + 0.735vw, 1.8rem);
}

@media (max-width: 767px) {
	.p-RootCoverageTreatment {
		--table-head-width: 210px;
		margin-top: 66px;
	}

	.p-RootCoverageTreatment .MediaBlock_content {
		grid-template-columns: 1fr;
	}

	.p-RootCoverageTreatment .Table_frame {
		margin-top: 38px;
	}

	.p-RootCoverageTreatment .Table_th {
		padding: 16px 0px 16px 15px;
	}

	.p-RootCoverageTreatment .Table_td {
		padding: 16px 15px 16px 0;
	}

	.p-RootCoverageTreatment .Table_price {
		gap: 2px;
	}

	.p-RootCoverageTreatment .Table_name {
		white-space: normal;
	}
}

/* p-RootCoveragePrevention
***********************************************/
.p-RootCoveragePrevention {
	scroll-margin-top: var(--header-height);
	margin-top: 20px;
}

.p-RootCoveragePrevention_intro .Text {
	margin-top: 51px;
}

.p-RootCoveragePrevention_list {
	margin-top: 77px;
    padding-top: 76px;
	border-top: 1px solid #cbcbcb;
}

.p-RootCoveragePrevention_list .NumberedList_item + .NumberedList_item {
	margin-top: 83px;
    padding-top: 80px;
	border-top: 1px solid #cbcbcb;
}

.p-RootCoveragePrevention_list .CheckList {
	grid-column: 1 / -1;
	width: 100%;
	margin-top: 40px;
}

.p-RootCoveragePrevention_action {
	margin-top: 34px;
}

.p-RootCoveragePrevention .Button {
	min-width: 358px;
}

@media (max-width: 767px) {
	.p-RootCoveragePrevention {
		margin-top: -8px;
	}

	.p-RootCoveragePrevention_intro .Text {
		margin-top: 38px;
        padding-right: 10px;
	}

	.p-RootCoveragePrevention_list {
		margin-top: 38px;
        padding-top: 39px;
	}

	.p-RootCoveragePrevention_list .NumberedList_item + .NumberedList_item {
		margin-top: 41px;
        padding-top: 38px;
	}

	.p-RootCoveragePrevention_list .CheckList {
		order: 4;
		margin-top: 24px;
	}

	.p-RootCoveragePrevention_action {
		margin-top: 32px;
		order: 5;
	}

	.p-RootCoveragePrevention_action .Button {
		min-width: 100%;
	}
}

/* p-Allon4Intro
***********************************************/
.p-Allon4Intro .PageIntro_outline {
	grid-template-columns: minmax(0, clamp(153px, -10.765px + 21.324vw, 240px)) minmax(0, 1fr);
	column-gap: clamp(30px, -64.118px + 12.255vw, 80px);
}

.p-Allon4Intro .PageIntro_figure {
	width: 100%;
	border-radius: 0;
}

.p-Allon4Intro .PageIntro_content + .PageIntro_content {
	margin-top: 50px;
	padding-top: 33px;
	border-top: 1px solid #cbcbcb;
}

.p-Allon4Intro .PageIntro_list {
	grid-template-columns: 1fr;
}

.p-Allon4Intro .PageIntro_index {
	padding-top: 50px;
	border-top: 1px solid #cbcbcb;
}

.p-Allon4Intro_movieSection {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 2.12fr);
	column-gap: clamp(20px, -55.294px + 9.804vw, 60px);
	align-items: center;
}

.p-Allon4Intro_movieSection .Title02 {
	min-width: 0;
	font-size: clamp(1.8rem, -0.082rem + 2.451vw, 2.8rem);
}

.p-Allon4Intro_movieList {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
	max-width: 724px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.p-Allon4Intro_movieItem {
	min-width: 0;
}

.p-Allon4Intro_movie {
	position: relative;
	width: 100%;
	aspect-ratio: 352 / 198;
	background: #f4f4f4;
}

.p-Allon4Intro_movieEmbed {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}

@media (max-width: 1023px) {
	.p-Allon4Intro_movieSection {
		display: block;
	}

	.p-Allon4Intro_movieList {
		max-width: none;
		margin-top: 24px;
	}
}

@media (max-width: 767px) {
	.p-Allon4Intro .PageIntro_outline {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 124px;
		column-gap: 12px;
		align-items: start;
		padding-bottom: 0;
		margin-bottom: 0;
		border-bottom: 0;
	}

	.p-Allon4Intro .PageIntro_outlineEn {
		grid-column: 1;
		grid-row: 1;
		order: 0;
		width: auto;
	}

	.p-Allon4Intro .PageIntro_title {
		grid-column: 1;
		grid-row: 2;
		order: 0;
		width: auto;
		padding-right: 0;
	}

	.p-Allon4Intro .PageIntro_figure {
		grid-column: 2;
		grid-row: 1 / 3;
		order: 0;
		float: none;
		width: 95px;
		margin: 0;
		align-self: center;
	}

	.p-Allon4Intro .PageIntro_text {
		grid-column: 1 / -1;
		grid-row: 3;
		order: 0;
		margin-top: 21px;
	}

	.p-Allon4Intro .PageIntro_content  {
		margin-top: 5px;
	}

	.p-Allon4Intro .PageIntro_content + .PageIntro_content {
		margin-top: 32px;
		padding-top: 0;
		border-top: 0;
	}

	.p-Allon4Intro .PageIntro_index {
		padding-top: 32px;
	}

	.p-Allon4Intro .PageIntro_checks.-col3 {
		margin-top: 14px;
	}

	.p-Allon4Intro .PageIntro_check {
		min-height: 63px;
        padding: 13px 16px;
	}

	.p-Allon4Intro_movieSection {
		display: block;
	}

	.p-Allon4Intro_movieList {
		grid-template-columns: 1fr;
		gap: 18px;
		margin-top: 24px;
	}
}

/* p-Allon4TrafficBanner
***********************************************/
.p-Allon4TrafficBanner {
	margin-top: 80px;
}

.p-Allon4TrafficBanner_link {
	display: block;
	color: var(--color-white);
	text-decoration: none;
}

.p-Allon4TrafficBanner_link picture,
.p-Allon4TrafficBanner_img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 10px;
}

.p-Allon4TrafficBanner_inner {
	position: relative;
	display: block;
	overflow: hidden;
	container-type: inline-size;
	width: 100%;
	height: auto;
	aspect-ratio: 1126 / 175;
	border-radius: 10px;
	background: linear-gradient(231deg, #e29768 0%, #e29869 50.5%, #ffddc7 100%);
	box-shadow: 6px 6px 20px rgba(128, 163, 198, 0.3);
}

.p-Allon4TrafficBanner_inner > *,
.p-Allon4TrafficBanner_inner::before {
	--_u: calc(100cqi / 1126);
}

.p-Allon4TrafficBanner_inner::before {
	content: "";
	position: absolute;
	top: calc(-22 * var(--_u));
	left: calc(-54 * var(--_u));
	z-index: 1;
	width: calc(220 * var(--_u));
	height: calc(220 * var(--_u));
	border-radius: 50%;
	background: var(--color-white);
	opacity: 0.4;
	pointer-events: none;
}

.p-Allon4TrafficBanner_inner::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	border-radius: inherit;
	background: linear-gradient(231deg, #ffddc7 0%, #e29869 49.5%, #e29768 100%);
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.4s;
}

.p-Allon4TrafficBanner_photo {
	position: absolute;
    left: calc(22 * var(--_u));
    top: calc(38 * var(--_u));
    z-index: 1;
    width: calc(112 * var(--_u));
    height: calc(101 * var(--_u));
	overflow: visible;
}

.p-Allon4TrafficBanner_photoImg {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	transform-origin: top left;
}

.p-Allon4TrafficBanner_badge {
	position: absolute;
	left: calc(200 * var(--_u));
	top: calc(28 * var(--_u));
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	width: calc(318 * var(--_u));
	height: calc(48 * var(--_u));
	border-radius: calc(24 * var(--_u));
	background: var(--color-text);
	font-size: calc(16 * var(--_u));
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: 1;
	text-align: center;
	white-space: nowrap;
}

.p-Allon4TrafficBanner_badge::before,
.p-Allon4TrafficBanner_badge::after {
	content: "";
	position: absolute;
	top: calc(9 * var(--_u));
	width: calc(4 * var(--_u));
	height: calc(4 * var(--_u));
	border-radius: 50%;
	background: var(--color-white);
}

.p-Allon4TrafficBanner_badge::before {
	left: calc(87 * var(--_u));
}

.p-Allon4TrafficBanner_badge::after {
	left: calc(105 * var(--_u));
}

.p-Allon4TrafficBanner_body {
	position: absolute;
	left: calc(210 * var(--_u));
	top: calc(28 * var(--_u));
	right: calc(80 * var(--_u));
	z-index: 1;
}

.p-Allon4TrafficBanner_title {
	display: block;
	margin-left: calc(328 * var(--_u));
	font-size: calc(28 * var(--_u));
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: calc(48 / 28);
	white-space: nowrap;
}

.p-Allon4TrafficBanner_text {
	display: block;
	margin-top: calc(19 * var(--_u));
	font-size: calc(17 * var(--_u));
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: calc(26 / 17);
	white-space: nowrap;
}

.p-Allon4TrafficBanner_arrow {
	position: absolute;
	top: calc(30 * var(--_u));
	right: calc(40 * var(--_u));
	z-index: 1;
	width: calc(40 * var(--_u));
	height: calc(40 * var(--_u));
	border-radius: 50%;
	background: var(--color-white);
}

.p-Allon4TrafficBanner_arrow::after {
	content: "";
	position: absolute;
	inset: 0;
	margin: auto;
	width: calc(10 * var(--_u));
	height: calc(10 * var(--_u));
	border-right: calc(2 * var(--_u)) solid #d19696;
	border-bottom: calc(2 * var(--_u)) solid #d19696;
	transform: rotate(-45deg) translate(-1px, -1px);
}

@media (hover: hover) and (pointer: fine) {
	.p-Allon4TrafficBanner_link:hover .p-Allon4TrafficBanner_inner::after {
		opacity: 1;
	}
}

@media (max-width: 767px) {
	.p-Allon4TrafficBanner {
		margin-top: 18px;
	}

	.p-Allon4TrafficBanner_inner {
		aspect-ratio: 325 / 215;
		border-radius: calc(10 / 325 * 100cqi);
	}

	.p-Allon4TrafficBanner_inner > *,
	.p-Allon4TrafficBanner_inner::before {
		--_u: calc(100cqi / 325);
	}

	.p-Allon4TrafficBanner_inner::before {
		top: calc(-99 * var(--_u));
		left: calc(-110 * var(--_u));
		width: calc(214 * var(--_u));
		height: calc(213 * var(--_u));
	}

	.p-Allon4TrafficBanner_inner::after {
		background: linear-gradient(231deg, #ffddc7 0%, #e29869 49.5%, #e29768 100%);
	}

	.p-Allon4TrafficBanner_photo {
		left: calc(0 * var(--_u));
        top: calc(26 * var(--_u));
        width: calc(75 * var(--_u));
        height: calc(67 * var(--_u));
	}

	.p-Allon4TrafficBanner_badge {
		left: calc(61 * var(--_u));
		top: calc(13 * var(--_u));
		width: calc(247 * var(--_u));
		height: calc(35 * var(--_u));
		border-radius: calc(17.5 * var(--_u));
		transform: none;
		font-size: calc(14 * var(--_u));
		letter-spacing: 0.02em;
	}

	.p-Allon4TrafficBanner_badge::before,
	.p-Allon4TrafficBanner_badge::after {
		top: calc(5 * var(--_u));
		width: calc(3 * var(--_u));
		height: calc(3 * var(--_u));
	}

	.p-Allon4TrafficBanner_badge::before {
		left: calc(65 * var(--_u));
	}

	.p-Allon4TrafficBanner_badge::after {
		left: calc(78 * var(--_u));
	}

	.p-Allon4TrafficBanner_body {
		inset: 0;
	}

	.p-Allon4TrafficBanner_title {
		position: absolute;
		left: calc(103 * var(--_u));
		top: calc(56 * var(--_u));
		margin-left: 0;
		padding-right: 0;
		font-size: calc(18 * var(--_u));
		letter-spacing: 0;
		line-height: calc(26 / 18);
		white-space: normal;
	}

	.p-Allon4TrafficBanner_text {
		position: absolute;
		left: calc(20 * var(--_u));
		right: calc(16 * var(--_u));
		top: calc(120 * var(--_u));
		margin-top: 0;
		font-size: calc(14 * var(--_u));
		font-weight: 500;
		letter-spacing: 0.05em;
		line-height: calc(20 / 14);
		white-space: normal;
	}

	.p-Allon4TrafficBanner_arrow {
		top: calc(66 * var(--_u));
		right: calc(20 * var(--_u));
		width: calc(31 * var(--_u));
		height: calc(31 * var(--_u));
	}
}

/* p-Allon4Merit
***********************************************/
.p-Allon4Merit {
	scroll-margin-top: var(--header-height);
	margin-top: 116px;
	margin-bottom: 118px;
}

.p-Allon4Merit_list {
	margin-top: 55px;
}

.p-Allon4Merit_item {
	position: relative;
	padding: 60px 70px 56px;
	border-radius: 10px;
}

.p-Allon4Merit_item::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 10px;
	background: #a5a5a5;
	mix-blend-mode: color-burn;
	pointer-events: none;
	z-index: -1;
}

.p-Allon4Merit_item + .p-Allon4Merit_item {
	margin-top: 28px;
}

.p-Allon4Merit_num {
	position: absolute;
	top: 31px;
    right: 36px;
	margin: 0;
	color: var(--color-white);
	font-family: var(--font-en);
	font-size: 8rem;
	letter-spacing: 0.04em;
	line-height: 1;
	pointer-events: none;
}

.p-Allon4Merit_body .Title02 {
	margin: 0;
	padding-right: 100px;
}

.p-Allon4Merit_body .Text {
	margin-top: 24px;
	font-size: 1.7rem;
	letter-spacing: 0.05em;
	line-height: 1.88;
}

.p-Allon4Merit_body .Text_p + .Text_p {
	margin-top: 16px;
}

.p-Allon4Merit_tableWrap {
	margin-top: 36px;
}

.p-Allon4Merit_table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	table-layout: fixed;
}

.p-Allon4Merit_corner {
	width: 240px;
	padding: 0;
	border: 0;
	background: transparent;
}

.p-Allon4Merit_head {
	padding: 0;
	color: var(--color-white);
	font-size: 1.7rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	text-align: center;
	vertical-align: bottom;
	background: transparent;
}

.p-Allon4Merit_headInner {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 54px;
	padding: 11px 12px;
	border-radius: 10px 10px 0 0;
}

.p-Allon4Merit_head + .p-Allon4Merit_head .p-Allon4Merit_headInner {
	margin-left: 1px;
}

.p-Allon4Merit_head.-muted .p-Allon4Merit_headInner {
	background: #a5a5a5;
}

.p-Allon4Merit_head.-primary .p-Allon4Merit_headInner {
	background: var(--color-primary);
}

.p-Allon4Merit_label {
	width: 240px;
	padding: 16px 20px;
	color: var(--color-white);
	font-size: 1.7rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.4;
	text-align: left;
	vertical-align: middle;
	background: var(--color-primary);
}

.p-Allon4Merit_table tbody tr:first-child .p-Allon4Merit_label {
	border-radius: 10px 0 0 0;
	box-shadow: inset 0 -1px 0 #cbcbcb;
}

.p-Allon4Merit_table tbody tr:not(:last-child) .p-Allon4Merit_label {
	box-shadow: inset 0 -1px 0 #cbcbcb;
}

.p-Allon4Merit_table tbody tr:last-child .p-Allon4Merit_label {
	border-radius: 0 0 0 10px;
}

.p-Allon4Merit_cell {
	padding: 16px 20px;
	background: var(--color-white);
	border-left: 1px solid #cbcbcb;
	color: var(--color-text);
	font-size: 1.6rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.5;
	text-align: center;
	vertical-align: middle;
}

.p-Allon4Merit_table tbody tr:first-child .p-Allon4Merit_cell {
	border-bottom: 1px solid #cbcbcb;
}

.p-Allon4Merit_table tbody tr:not(:last-child) .p-Allon4Merit_cell {
	border-bottom: 1px solid #cbcbcb;
}

.p-Allon4Merit_table tbody tr:last-child .p-Allon4Merit_cell:last-child {
	border-radius: 0 0 10px 0;
}

@media (max-width: 767px) {
	.p-Allon4Merit {
		margin-top: 66px;
		margin-bottom: 11px;
	}

	.p-Allon4Merit_list {
		margin-top: 39px;
	}

	.p-Allon4Merit_item {
		padding: 30px;
	}

	.p-Allon4Merit_item + .p-Allon4Merit_item {
		margin-top: 21px;
	}

	.p-Allon4Merit_num {
		top: 20px;
        right: 22px;
		font-size: 4.8rem;
	}

	.p-Allon4Merit_body .Title02 {
		padding-right: 60px;
	}

	.p-Allon4Merit_body .Text {
		margin-top: 20px;
		font-size: 1.6rem;
		line-height: 1.75;
	}

	.p-Allon4Merit_tableWrap {
		margin-top: 40px;
		margin-right: calc(var(--gutter) * -1);
		margin-left: calc(var(--gutter) * -1);
		padding-right: var(--gutter);
		padding-left: var(--gutter);
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}

	.p-Allon4Merit_table {
		width: 575px;
		min-width: 575px;
	}

	.p-Allon4Merit_corner,
	.p-Allon4Merit_label {
		width: 138px;
	}

	.p-Allon4Merit_head {
		font-size: 1.5rem;
	}

	.p-Allon4Merit_headInner {
		min-height: 54px;
		padding: 12px 8px;
	}

	.p-Allon4Merit_label {
		padding: 16px 12px;
		font-size: 1.5rem;
	}

	.p-Allon4Merit_cell {
		padding: 16px 12px;
		font-size: 1.5rem;
	}
}

/* p-Allon4Proposal
***********************************************/
.p-Allon4Proposal {
	position: relative;
	scroll-margin-top: var(--header-height);
}

.p-Allon4Proposal .Text {
	margin-top: 32px;
}

.p-Allon4Proposal_approach {
	position: relative;
	z-index: 1;
	overflow: hidden;
	height: 120px;
	isolation: isolate;
	mix-blend-mode: color-burn;
	top: -77px;
}

.p-Allon4Proposal_approachText {
	display: flex;
	width: max-content;
	margin: 0;
	color: #a5a5a5;
	font-family: var(--font-en);
	font-size: 12rem;
	letter-spacing: 0.04em;
	line-height: 1;
	white-space: nowrap;
	height: 102px;
	overflow: hidden;
}

.p-Allon4Proposal_approachText span {
	padding-right: 0.25em;
}

.p-Allon4Proposal .l-container-xlarge {
	position: relative;
	z-index: 1;
}

.p-Allon4Proposal_intro {
	padding-top: 24px;
}

.p-Allon4Proposal_flow {
	padding-bottom: 0;
}

.p-Allon4Proposal_flow .Title02 {
	margin-top: 73px;
}

.p-Allon4Proposal_flow .Flow_list {
	margin-top: 31px;
}

@media (max-width: 767px) {
	.p-Allon4Proposal_approach {
		height: 51px;
		top: -16px;
	}

	.p-Allon4Proposal .Text {
		margin-top: 40px;
		padding-right: 10px;
	}

	.p-Allon4Proposal_approachText {
		font-size: 6.1rem;
	}

	.p-Allon4Proposal_intro {
		padding-top: 31px;
	}

	.p-Allon4Proposal_flow .Title02 {
		margin-top: 62px;
	}

	.p-Allon4Proposal_flow .Flow_list {
		margin-top: 40px;
	}
}

/* p-Allon4Price
***********************************************/
.p-Allon4Price {
	padding-bottom: 0;
}

.p-Allon4Price .Table_caption {
	text-align: left;
	margin-top: 35px;
}

.p-Allon4Price .Table_price:has(.Table_prefix) {
	gap: 0;
}

.p-Allon4Price .Table_prefix + .Table_num {
	min-width: 0;
}

@media (max-width: 767px) {
	.p-Allon4Price {
		margin-top: -39px;
	}
	
	.p-Allon4Price .Title01 {
		text-align: center;
	}

	.p-Allon4Price .Table_th {
		padding: 16px 0 16px 15px;
	}
	.p-Allon4Price .Table_td {
		padding: 16px 8px 16px 0;
	}

	.p-Allon4Price .Table_price {
		flex-wrap: nowrap;
		gap: 1px;
		padding-right: 4px;
		white-space: nowrap;
	}

	.p-Allon4Price .Table_caption {
		margin-top: 10px;
	}
}

/* p-Allon4MonitorBanner
***********************************************/
.p-Allon4MonitorBanner {
	margin-top: 61px;
	margin-bottom: 102px;
}

.p-Allon4MonitorBanner_link {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 38px 46px 38px 48px;
	border-radius: 10px;
	color: var(--color-text);
	text-decoration: none;
	transition: background-color 0.4s;
}

.p-Allon4MonitorBanner_link::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 10px;
	background: #a5a5a5;
	mix-blend-mode: color-burn;
	pointer-events: none;
	z-index: -1;
}

.p-Allon4MonitorBanner_text {
	font-size: 1.7rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.88;
}

.p-Allon4MonitorBanner_arrow {
	position: relative;
	flex-shrink: 0;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--color-primary);
}

.p-Allon4MonitorBanner_arrow::after {
	content: "";
	position: absolute;
	inset: 0;
	margin: auto;
	width: 8px;
	height: 8px;
	border-right: 2px solid var(--color-white);
	border-bottom: 2px solid var(--color-white);
	transform: rotate(-45deg) translate(-1px, -1px);
}

@media (hover: hover) and (pointer: fine) {
	.p-Allon4MonitorBanner_link:hover {
		background: var(--color-white);
	}
}

@media (max-width: 767px) {
	.p-Allon4MonitorBanner {
		margin-top: 34px;
		margin-bottom: 60px;
	}

	.p-Allon4MonitorBanner_link {
		flex-direction: column;
		align-items: center;
		padding: 30px 39px 30px;
		text-align: center;
		gap: 10px;
	}

	.p-Allon4MonitorBanner_text {
		font-size: 1.6rem;
		line-height: 1.75;
	}
}

/* p-GeneralIntro
***********************************************/
.p-GeneralIntro .Title01_en,
.p-GeneralIntro .Title01_ja {
	text-align: left;
	width: 100%;
}

/* p-GeneralTreatment
***********************************************/
.p-GeneralTreatment {
	scroll-margin-top: var(--header-height);
	margin-top: 116px;
	margin-bottom: 117px;
}

.p-GeneralTreatment_intro .Text {
	margin-top: 32px;
}

.p-GeneralTreatment_list {
	margin-top: 80px;
}

.p-GeneralTreatment_item + .p-GeneralTreatment_item {
	margin-top: 50px;
}

.p-GeneralTreatment_inner {
	display: grid;
	grid-template-columns: minmax(0, clamp(220px, -24.706px + 31.863vw, 350px)) minmax(0, 1fr);
	grid-template-rows: 1fr auto auto 1fr;
	column-gap: clamp(30px, -64.118px + 12.255vw, 80px);
	align-items: center;
}

.p-GeneralTreatment_figure {
	position: relative;
	grid-column: 1;
	grid-row: 1 / -1;
	overflow: hidden;
	border-radius: 10px;
}

.p-GeneralTreatment_figure::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 10px;
	background: #a5a5a5;
	mix-blend-mode: color-burn;
	pointer-events: none;
	z-index: -1;
}

.p-GeneralTreatment_figure picture,
.p-GeneralTreatment_figureImg {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
}

.p-GeneralTreatment_head {
	display: flex;
	align-items: center;
	gap: 19px;
	grid-column: 2;
	grid-row: 2;
}

.p-GeneralTreatment_category {
	flex-shrink: 0;
	display: grid;
	place-items: center;
	min-width: 62px;
	height: 32px;
	padding: 0 12px;
	border-radius: 16px;
	background: var(--color-accent);
	color: var(--color-white);
	font-size: 1.8rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1;
}

.p-GeneralTreatment_title {
	margin: 0;
	gap: 0;
	line-height: 1.5;
}

.p-GeneralTreatment_title::before {
	content: none;
}

.p-GeneralTreatment_content {
	grid-column: 2;
	grid-row: 3;
	min-width: 0;
}

.p-GeneralTreatment_content .Text {
	margin-top: clamp(20px, -0.706px + 2.696vw, 31px);
}

.p-GeneralTreatment_btn {
	margin-top: 30px;
}

.p-GeneralTreatment_vpt {
	margin-top: 36px;
	padding: 36px 48px;
	border-radius: 10px;
	background: var(--color-white);
}

.p-GeneralTreatment_vptHead {
	display: flex;
	align-items: center;
	gap: 30px;
	padding-bottom: 16px;
}

.p-GeneralTreatment_vptIcon {
	flex-shrink: 0;
	display: grid;
	place-items: center;
	width: 80px;
	height: 80px;
	border-radius: 50%;
	background: var(--gradient);
}

.p-GeneralTreatment_vptIconImg {
	display: block;
	width: 37px;
	height: auto;
}

.p-GeneralTreatment_vptTitle {
	display: block;
	width: 100%;
	margin: 0;
	color: var(--color-text);
	font-size: 2.2rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1.5;
	border-bottom: 2px solid #cbcbcb;
    padding-bottom: 15px;
}

.p-GeneralTreatment_vpt .Text {
	margin-top: 0;
}

@media (max-width: 767px) {
	.p-GeneralTreatment {
		margin-top: 30px;
		margin-bottom: 82px;
	}

	.p-GeneralTreatment_intro .Text {
		margin-top: 40px;
        padding-right: 10px;
	}

	.p-GeneralTreatment_list {
		margin-top: 40px;
	}

	.p-GeneralTreatment_item + .p-GeneralTreatment_item {
		margin-top: 39px;
	}

	.p-GeneralTreatment_inner {
		grid-template-columns: 115px minmax(0, 1fr);
		grid-template-rows: auto auto;
		column-gap: 16px;
		row-gap: 0;
		align-items: start;
	}

	.p-GeneralTreatment_figure {
		grid-column: 1;
		grid-row: 1;
	}

	.p-GeneralTreatment_head {
		flex-direction: column;
		align-items: flex-start;
		gap: 4px;
		grid-column: 2;
		grid-row: 1;
		align-self: center;
	}

	.p-GeneralTreatment_category {
		min-width: 42px;
		height: 24px;
		padding: 0 8px;
		border-radius: 12px;
		font-size: 1.4rem;
	}

	.p-GeneralTreatment_title {
		line-height: 1.6;
	}

	.p-GeneralTreatment_content {
		grid-column: 1 / -1;
		grid-row: 2;
	}

	.p-GeneralTreatment_content .Text {
		margin-top: 20px;
		padding-right: 10px;
	}

	.p-GeneralTreatment_btn {
		margin-top: 23px;
	}

	.p-GeneralTreatment_vpt {
		margin-top: 23px;
        padding: 28px 29px;
	}

	.p-GeneralTreatment_vptHead {
		gap: 16px;
		padding-bottom: 0;
		border-bottom: 1px solid #cbcbcb;
	}

	.p-GeneralTreatment_vptIcon {
		width: 57px;
		height: 57px;
		margin-top: -16px;
	}

	.p-GeneralTreatment_vptIconImg {
		width: 27px;
	}

	.p-GeneralTreatment_vptTitle {
		flex: 1;
		min-width: 0;
		width: auto;
		font-size: 1.8rem;
		line-height: 1.67;
		border-bottom: 0;
	}

	.p-GeneralTreatment_vpt .Text {
		margin-top: 15px;
        font-size: 1.5rem;
        line-height: 1.87;
	}
}

/* p-GeneralPain
***********************************************/
.p-GeneralPain {
	scroll-margin-top: var(--header-height);
	position: relative;
}

.p-GeneralPain_approach {
	position: relative;
	z-index: 1;
	overflow: hidden;
	height: 120px;
	isolation: isolate;
	mix-blend-mode: color-burn;
	top: -77px;
	z-index: -1;
}

.p-GeneralPain_approachText {
	display: flex;
	width: max-content;
	margin: 0;
	color: #a5a5a5;
	font-family: var(--font-en);
	font-size: 12rem;
	letter-spacing: 0.04em;
	line-height: 1;
	white-space: nowrap;
	height: 102px;
	overflow: hidden;
}

.p-GeneralPain_approachText span {
	padding-right: 0.25em;
}

.p-GeneralPain_intro {
	position: relative;
	z-index: 1;
	padding-top: 24px;
}

.p-GeneralPain_intro .Text {
	margin-top: 32px;
}

.p-GeneralPain_list {
	margin-top: clamp(40px, -35.294px + 9.804vw, 80px);
}

.p-GeneralPain_item + .p-GeneralPain_item {
	margin-top: clamp(30px, -0.118px + 3.922vw, 46px);
}

.p-GeneralPain_item {
	display: grid;
	grid-template-columns: minmax(0, clamp(254px, -20.824px + 35.784vw, 400px)) minmax(0, 1fr);
	column-gap: clamp(30px, -64.118px + 12.255vw, 80px);
	align-items: center;
	position: relative;
}

.p-GeneralPain_figure {
	overflow: hidden;
	border-radius: 10px;
}

.p-GeneralPain_figure picture,
.p-GeneralPain_figureImg {
	display: block;
	width: 100%;
	height: auto;
}

.p-GeneralPain_head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 24px;
}

.p-GeneralPain_title {
	min-width: 0;
	margin: 0;
}

.p-GeneralPain_num {
	position: absolute;
    top: -15px;
    right: 16px;
	flex-shrink: 0;
	margin: 24px 0 0;
	color: #717171;
	font-family: var(--font-en);
	font-size: 8rem;
	letter-spacing: 0.04em;
	line-height: 1;
	mix-blend-mode: color-burn;
	z-index: -1;
}

.p-GeneralPain_body .Text {
	margin-top: 24px;
}

@media (max-width: 767px) {
	.p-GeneralPain_approach {
		height: 52px;
		top: -17px;
	}

	.p-GeneralPain_approachText {
		font-size: 6.1rem;
	}

	.p-GeneralPain_intro {
		padding-top: 28px;
	}

	.p-GeneralPain_intro .Text {
		margin-top: 40px;
        padding-right: 10px;
	}

	.p-GeneralPain_list {
		margin-top: 60px;
	}

	.p-GeneralPain_item + .p-GeneralPain_item {
		margin-top: 60px;
	}

	.p-GeneralPain_item {
		display: flex;
		flex-direction: column;
	}

	.p-GeneralPain_body {
		display: contents;
	}

	.p-GeneralPain_head {
		order: 1;
		gap: 12px;
		width: 100%;
	}

	.p-GeneralPain_figure {
		order: 2;
		width: 100%;
		margin-top: 29px;
	}

	.p-GeneralPain_body .Text {
		order: 3;
		margin-top: 31px;
        padding-right: 10px;
	}

	.p-GeneralPain_num {
		margin-top: -1px;
		font-size: 5.2rem;
	}
}

/* p-GeneralBanner
***********************************************/
.p-GeneralBanner {
	overflow: hidden;
	height: 400px;
	position: relative;
}

.p-GeneralBanner_picture {
	display: block;
	margin: 0;
	position: absolute;
	top: -50%;
	left: 0;
	width: 100%;
	height: 180%;
}

.p-GeneralBanner_img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center bottom;
	will-change: transform;
}

@media (max-width: 767px) {
	.p-GeneralBanner {
		height: 140px;
		margin-top: -17px;
	}
}

/* p-GeneralAftercare
***********************************************/
.p-GeneralAftercare {
	scroll-margin-top: var(--header-height);
}

.p-GeneralAftercare_intro .Text {
	max-width: 750px;
	margin: 32px auto 0;
	text-align: center;
}

.p-GeneralAftercare_list {
	margin-top: 55px;
}

.p-GeneralAftercare_card {
	position: relative;
	padding: 36px 51px 55px;
	border-radius: 10px;
}

.p-GeneralAftercare_card::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 10px;
	background: #a5a5a5;
	mix-blend-mode: color-burn;
	pointer-events: none;
	z-index: -1;
}

.p-GeneralAftercare_card + .p-GeneralAftercare_card {
	margin-top: 30px;
}

.p-GeneralAftercare_card.-mouthpiece {
	padding: 0;
}

.p-GeneralAftercare_card.-mouthpiece::before {
	display: none;
}

.p-GeneralAftercare_cardMain {
	position: relative;
	padding: 36px 50px 50px;
}

.p-GeneralAftercare_cardMain::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 10px 10px 0 0;
	background: #a5a5a5;
	mix-blend-mode: color-burn;
	pointer-events: none;
	z-index: -1;
}

.p-GeneralAftercare_head {
	display: flex;
	align-items: center;
	gap: 30px;
}

.p-GeneralAftercare_icon {
	display: grid;
	place-items: center;
	flex-shrink: 0;
	width: 80px;
	height: 80px;
	border-radius: 50%;
	background: var(--gradient);
}

.p-GeneralAftercare_iconImg {
	display: block;
	width: 38px;
	height: auto;
}

.p-GeneralAftercare_iconImg.-mouthpiece {
	width: 41px;
}

.p-GeneralAftercare_cardTitle {
	margin: 0;
	color: var(--color-text);
	font-size: clamp(2rem, 0.494rem + 1.961vw, 2.8rem);
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1.5;
}

.p-GeneralAftercare_card .Text,
.p-GeneralAftercare_cardMain .Text {
	margin-top: 12px;
    padding-left: 109px;
}

.p-GeneralAftercare_btn {
	margin-top: 36px;
	padding-left: 100px;
}

.p-GeneralAftercare_types {
	background: var(--color-white);
	border-radius: 0 0 10px 10px;
}

.p-GeneralAftercare_typesTrigger {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	width: 100%;
	padding: 38px 63px;
	border: none;
	background: transparent;
	color: var(--color-text);
	font-family: var(--font-ja);
	font-size: 2.2rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1.5;
	text-align: left;
	cursor: pointer;
}

.p-GeneralAftercare_typesTrigger[aria-expanded="true"] {
	padding: 38px 63px 38px;
}

.p-GeneralAftercare_typesTriggerText {
	min-width: 0;
}

.p-GeneralAftercare_typesIcon {
	position: relative;
	flex-shrink: 0;
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--color-primary);
}

.p-GeneralAftercare_typesIcon::before,
.p-GeneralAftercare_typesIcon::after {
	content: "";
	position: absolute;
	width: 10px;
	height: 2px;
	border-radius: 1px;
	background: var(--color-white);
}

.p-GeneralAftercare_typesIcon::after {
	transform: rotate(90deg);
	transition: opacity 0.4s ease, transform 0.4s ease;
}

.p-GeneralAftercare_typesTrigger[aria-expanded="true"] .p-GeneralAftercare_typesIcon::after {
	opacity: 0;
	transform: rotate(90deg) scaleY(0);
}

.p-GeneralAftercare_typesPanel {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows 0.35s ease;
}

.p-GeneralAftercare_typesPanel[aria-hidden="false"] {
	grid-template-rows: 1fr;
}

.p-GeneralAftercare_typesBody {
	overflow: hidden;
	min-height: 0;
	padding: 0 63px;
	opacity: 0;
	transition: opacity 0.25s ease, padding-bottom 0.35s ease;
}

.p-GeneralAftercare_typesBody::before {
	content: "";
	display: block;
	border-top: 2px solid #cbcbcb;
	margin-bottom: 26px;
}

.p-GeneralAftercare_typesPanel[aria-hidden="false"] .p-GeneralAftercare_typesBody {
	padding-bottom: 60px;
	opacity: 1;
}

.p-GeneralAftercare_typesBody .Text {
	padding-left: 0;
}

.p-GeneralAftercare_typesBody > .Text {
	margin-top: 0;
}

.p-GeneralAftercare_typesList {
	margin: 46px 0 0;
	padding: 0;
	list-style: none;
}

.p-GeneralAftercare_typesItem {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 240px;
	column-gap: 46px;
	align-items: center;
}

.p-GeneralAftercare_typesItem + .p-GeneralAftercare_typesItem {
	margin-top: 31px;
}

.p-GeneralAftercare_typesTitle {
	position: relative;
	margin: 0;
	padding-left: 20px;
	color: var(--color-primary);
	font-size: 2rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1.5;
}

.p-GeneralAftercare_typesTitle::before {
	content: "";
	position: absolute;
	top: 0.7em;
	left: 0;
	width: 10px;
	height: 2px;
	border-radius: 1px;
	background: var(--color-primary);
}

.p-GeneralAftercare_typesContent .Text {
	margin-top: 24px;
	font-size: 1.6rem;
	letter-spacing: 0.02em;
	line-height: 1.88;
}

.p-GeneralAftercare_typesFigure {
	overflow: hidden;
	border-radius: 10px;
}

.p-GeneralAftercare_typesFigure picture,
.p-GeneralAftercare_typesImg {
	display: block;
	width: 100%;
	height: auto;
}

@media (max-width: 767px) {
	.p-GeneralAftercare_intro .Text {
		margin-top: 32px;
		text-align: left;
	}

	.p-GeneralAftercare_list {
		margin-top: 46px;
	}

	.p-GeneralAftercare_card {
		padding: 40px 24px;
	}

	.p-GeneralAftercare_card + .p-GeneralAftercare_card {
		margin-top: 40px;
	}

	.p-GeneralAftercare_cardMain {
		padding: 40px 24px 25px;
	}

	.p-GeneralAftercare_head {
		flex-direction: column;
		align-items: center;
		gap: 20px;
	}

	.p-GeneralAftercare_icon {
		position: absolute;
        top: -26px;
		width: 52px;
		height: 52px;
		margin: 0;
	}

	.p-GeneralAftercare_iconImg {
		width: 30px;
	}

	.p-GeneralAftercare_iconImg.-mouthpiece {
		width: 27px;
	}

	.p-GeneralAftercare_cardTitle {
		font-size: 2rem;
		line-height: 1.6;
		text-align: center;
	}

	.p-GeneralAftercare_btn {
		margin-top: 32px;
		text-align: center;
		padding-left: 0;
	}

	.p-GeneralAftercare_typesTrigger {
		padding: 24px;
		font-size: 1.8rem;
	}

	.p-GeneralAftercare_typesIcon {
		width: 27px;
		height: 27px;
	}

	.p-GeneralAftercare_typesIcon::before,
	.p-GeneralAftercare_typesIcon::after {
		width: 7px;
	}

	.p-GeneralAftercare_typesBody {
		padding: 0 24px;
	}

	.p-GeneralAftercare_typesBody::before {
		margin-bottom: 24px;
		border-top: 1px solid #cbcbcb;
	}

	.p-GeneralAftercare_typesPanel[aria-hidden="false"] .p-GeneralAftercare_typesBody {
		padding-bottom: 40px;
	}

	.p-GeneralAftercare_typesList {
		margin-top: 26px;
	}

	.p-GeneralAftercare_typesItem {
		display: flex;
		flex-direction: column;
	}

	.p-GeneralAftercare_typesItem + .p-GeneralAftercare_typesItem {
		margin-top: 25px;
	}

	.p-GeneralAftercare_typesTitle {
		font-size: 1.6rem;
		padding-left: 18px;
	}

	.p-GeneralAftercare_typesContent .Text {
		margin-top: 12px;
		font-size: 1.5rem;
		letter-spacing: 0.04em;
	}

	.p-GeneralAftercare_typesFigure {
		width: 100%;
		margin-top: 20px;
	}

	.p-GeneralAftercare_typesTrigger[aria-expanded="true"] {
		padding: 24px;
	}

	.p-GeneralAftercare_card .Text {
		margin-top: 16px;
		padding-left: 5px;
		padding-right: 10px;
	}

	.p-GeneralAftercare_btn {
		margin-top: 24px;
	}

	.p-GeneralAftercare_btn .Button {
		min-width: 0;
		width: 100%;
		padding: 13px 60px 14px 30px;
	}

	.p-GeneralAftercare_btn .Button_arrow {
		right: 21px;
		width: 32px;
		height: 32px;
	}
}

/* p-GeneralPrevention
***********************************************/
.p-GeneralPrevention {
	margin-top: 120px;
}

.p-GeneralPrevention .MediaBlock_content {
	column-gap: clamp(30px, -82.941px + 14.706vw, 90px);
}

@media (max-width: 767px) {
	.p-GeneralPrevention {
		margin-top: 69px;
	}
}

/* p-PreventionIntro
***********************************************/
.p-PreventionIntro .PageIntro_list {
	grid-template-columns: 1fr;
}

.p-PreventionIntro .PageIntro_content {
	margin-top: 79px;
}

.p-PreventionIntro .PageIntro_index {
	padding-top: 50px;
	border-top: 1px solid #cbcbcb;
}

.p-PreventionIntro_compare {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, clamp(288px, 37.5vw, 441px));
	column-gap: clamp(30px, -47.176px + 10.049vw, 71px);
	align-items: start;
}

.p-PreventionIntro_compareBody .Text {
	margin-top: 24px;
}

.p-PreventionIntro_compareFigure {
	min-width: 0;
	overflow: hidden;
	border-radius: 10px;
	background: var(--color-bg);
}

.p-PreventionIntro_compareFigure picture,
.p-PreventionIntro_compareImg {
	display: block;
	width: 100%;
	height: auto;
}

@media (max-width: 767px) {
	.p-PreventionIntro .PageIntro_content {
		margin-top: 29px;
	}

	.p-PreventionIntro .PageIntro_index {
		padding-top: 32px;
	}

	.p-PreventionIntro_compare {
		display: flex;
		flex-direction: column;
	}

	.p-PreventionIntro_compareFigure {
		width: 100%;
		margin-top: 11px;
	}

	.p-PreventionIntro_compareBody .Text {
		margin-top: 20px;
	}
}

/* p-PreventionCleaning
***********************************************/
.p-PreventionCleaning {
	scroll-margin-top: var(--header-height);
	margin-top: 114px;
}

.p-PreventionCleaning_intro .Text {
	margin-top: 52px;
}

.p-PreventionCleaning .NumberedList {
	margin-top: 80px;
}

.p-PreventionCleaning .NumberedList_item {
	grid-template-columns: minmax(0, clamp(254px, -20.824px + 35.784vw, 400px)) minmax(0, 1fr);
}

.p-PreventionCleaning .NumberedList_item + .NumberedList_item {
	margin-top: clamp(30px, -3.882px + 4.412vw, 48px);
}

.p-PreventionCleaning .NumberedList_num {
	right: 39px;
    top: -4px;
}

@media (max-width: 767px) {
	.p-PreventionCleaning {
		margin-top: 65px;
	}

	.p-PreventionCleaning_intro .Text {
		margin-top: 38px;
        padding-right: 10px;
	}

	.p-PreventionCleaning .NumberedList {
		margin-top: 60px;
	}

	.p-PreventionCleaning .NumberedList_item + .NumberedList_item {
		margin-top: 60px;
	}

	.p-PreventionCleaning .NumberedList_num {
		right: 13px;
		top: -15px;
	}
}

/* p-PreventionCheckup
***********************************************/
@media (max-width: 767px) {
	.p-PreventionCheckup .MediaBlock_figure{
		margin-top: 40px;
	}

	.p-PreventionCheckup .Text {
		margin-top: 0;
	}
}

/* p-PreventionCase
***********************************************/
.p-PreventionCase {
	margin-bottom: 120px;
}

@media (max-width: 767px) {
	.p-PreventionCase {
		margin-bottom: 70px;
	}
}

/* p-CorrectTreatment
***********************************************/
.p-CorrectTreatment {
	scroll-margin-top: var(--header-height);
	margin-top: 116px;
}

.p-CorrectTreatment_intro .Text {
	margin-top: 40px;
	margin-top: 50px;
}

.p-CorrectTreatment_list {
	margin-top: 80px;
	border-top: 1px solid #cbcbcb;
}

.p-CorrectTreatment_list .Title02::before {
    top: 10px;
}

.p-CorrectTreatment_item {
	padding: 80px 0;
	border-bottom: 1px solid #cbcbcb;
}

.p-CorrectTreatment_item .MediaDetail {
	grid-template-columns: minmax(0, clamp(254px, -20.824px + 35.784vw, 400px)) minmax(0, 1fr);
	column-gap: clamp(30px, -64.118px + 12.255vw, 80px);
}

.p-CorrectTreatment_item .MediaDetail + .MediaDetail {
	margin-top: 30px;
}

.p-CorrectTreatment_heading {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}

.p-CorrectTreatment_label {
	font-size: 2.2rem;
	letter-spacing: 0.1em;
	line-height: 1.5;
}

.p-CorrectTreatment_name {
	font-size: clamp(2.4rem, 0.894rem + 1.961vw, 3.2rem);
	letter-spacing: 0.1em;
	line-height: 1.4;
	margin-left: -15px;
}

.p-CorrectTreatment_item .CampaignBanner,
.p-CorrectTreatment_banner {
	margin-top: 33px;
}

.p-CorrectTreatment_banner picture,
.p-CorrectTreatment_bannerImg {
	display: block;
	width: 100%;
	height: auto;
}

.p-CorrectTreatment_button {
	display: flex;
	justify-content: center;
	margin-top: 36px;
}

.p-CorrectTreatment_item .CompareTable_cellInner {
	min-height: 25px;
}

@media (max-width: 767px) {
	.p-CorrectTreatment {
		margin-top: 66px;
	}

	.p-CorrectTreatment_intro .Text {
		margin-top: 36px;
        padding-right: 10px;
	}

	.p-CorrectTreatment_list {
		margin-top: 40px;
	}

	.p-CorrectTreatment_item {
		padding: 39px 0;
	}

	.p-CorrectTreatment_label {
		font-size: 1.6rem;
	}

	.p-CorrectTreatment_name {
		font-size: 2rem;
	}

	.p-CorrectTreatment_item .CampaignBanner,
	.p-CorrectTreatment_banner {
		margin-top: 32px;
	}

	.p-CorrectTreatment_button {
		margin-top: 32px;
	}

	.p-CorrectTreatment_button .Button {
		width: 100%;
		min-width: 0;
	}

	.p-CorrectTreatment_item .Text {
        margin-top: 34px;
        padding-right: 10px;
	}
}

/* p-CorrectTable
***********************************************/
.p-CorrectTable {
	padding-bottom: 105px;
	border-bottom: 1px solid #cbcbcb;
}

.p-CorrectTable .CompareTable {
	margin-top: 80px;
}

.p-CorrectTable .CompareTable_cell  {
	padding: 15px 16px;
}

.p-CorrectTable .CaptionList {
	text-align: right;
}

@media (max-width: 767px) {
	.p-CorrectTable .CompareTable {
		margin-top: 44px;
	}

	.p-CorrectTable .CompareTable_colHead {
		padding: 16px 12px 15px;
	}

	.p-CorrectTable .CompareTable_corner, .p-CorrectTable .CompareTable_rowHead {
		width: 140px;
	}

	.p-CorrectTable .CaptionList {
		margin-top: 14px;
		text-align: left;
	}
}

/* p-CorrectPrice
***********************************************/
.p-CorrectPrice {
	--table-head-width: 501px;
	padding-bottom: 0;
}

.p-CorrectPrice .Table_sep {
	font-size: 1.4rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1;
}

.p-CorrectPrice_banner {
	margin-top: 50px;
}

.p-CorrectPrice_banner picture,
.p-CorrectPrice_bannerImg {
	display: block;
	width: 100%;
	height: auto;
}

@media (max-width: 767px) {
	.p-CorrectPrice {
		--table-head-width: 293px;
		--table-min-width: 525px;
		margin-top: -34px;
	}

	.p-CorrectPrice .Table_sep {
		font-size: 1.5rem;
	}

	.p-CorrectPrice_banner {
		margin-top: 40px;
	}
}

/* p-CorrectFlow
***********************************************/
.p-CorrectFlow {
	padding-bottom: 0;
}

.p-CorrectFlow .Title01_en,
.p-CorrectFlow .Title01_ja {
	width: 100%;
	text-align: left;
}

.p-CorrectFlow  .Flow_list {
	margin-top: 31px;
}

.p-CorrectFlow .Flow_button {
	margin-top: 27px;
}

@media (max-width: 767px) {
	.p-CorrectFlow {
		margin-top: -21px;
	}

	.p-CorrectFlow .Flow_button {
		margin-top: 20px;
	}

	.p-CorrectFlow .Flow_button .Button {
		width: 100%;
		min-width: 0;
		padding: 16px 53px 11px 23px;
	}

	.p-CorrectFlow .Flow_list {
		margin-top: 57px;
	}

	.p-CorrectFlow .Button_arrow {
		width: 30px;
		height: 30px;
	}
}

/* p-FiestVisitFlow
***********************************************/
.p-FiestVisitFlow {
	padding-top: 80px;
	margin-top: -34px;
}

.p-FiestVisitFlow_cards {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(16px, 8.471px + 0.980vw, 20px);
	margin-top: clamp(24px, 1.412px + 2.941vw, 36px);
}

.p-FiestVisitFlow_card {
	--_icon: clamp(48px, 25.412px + 2.941vw, 60px);
	display: grid;
	grid-template-columns: var(--_icon) minmax(0, 1fr);
	grid-template-rows: auto auto;
	column-gap: clamp(12px, -3.059px + 1.961vw, 20px);
    row-gap: 10px;
	align-items: start;
	min-height: clamp(90px, 52.353px + 4.902vw, 110px);
	padding: clamp(18px, 2.941px + 1.961vw, 26px) 20px 16px clamp(24px, -6.118px + 3.922vw, 40px);
	border-radius: 10px;
	background: var(--color-primary);
	color: var(--color-white);
	text-decoration: none;
	transition: background-color 0.4s ease-in-out;
}

.p-FiestVisitFlow_cardIcon {
	position: relative;
	display: grid;
	place-items: center;
	grid-row: 1 / -1;
	width: var(--_icon);
	height: var(--_icon);
	flex-shrink: 0;
}

.p-FiestVisitFlow_cardIcon::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 50%;
	background: var(--color-white);
	opacity: 0.2;
}

.p-FiestVisitFlow_cardIconImg {
	position: relative;
	z-index: 1;
	width: calc(var(--_icon) * 18 / 60);
	height: calc(var(--_icon) * 30 / 60);
}

.p-FiestVisitFlow_cardIconImg.-phone {
	width: calc(var(--_icon) * 22 / 60);
	height: calc(var(--_icon) * 22 / 60);
}

.p-FiestVisitFlow_cardBody {
	display: flex;
	grid-column: 2;
	grid-row: 1;
	flex-direction: column;
	justify-content: center;
	min-width: 0;
}

.p-FiestVisitFlow_card.-tel .p-FiestVisitFlow_cardBody {
	flex-direction: row;
	justify-content: flex-start;
}

.p-FiestVisitFlow_cardText {
	font-size: clamp(1.8rem, 0.671rem + 1.471vw, 2.4rem);
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1;
	white-space: nowrap;
}

.p-FiestVisitFlow_cardLabel {
	flex-shrink: 0;
	width: clamp(42px, 19.412px + 2.941vw, 54px);
	font-size: clamp(1.6rem, 0.847rem + 0.980vw, 2rem);
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1;
	align-self: center;
}

.p-FiestVisitFlow_cardTel {
	font-family: var(--font-num);
    font-size: clamp(2.2rem, 1.071rem + 1.471vw, 2.8rem);
    letter-spacing: 0.028em;
    line-height: 1;
    white-space: nowrap;
    margin-top: -2px;
}

.p-FiestVisitFlow_cardNote {
	display: flex;
	grid-column: 2;
	grid-row: 2;
	align-items: center;
	justify-content: center;
	gap: 12px;
	width: clamp(160px, 84.706px + 9.804vw, 200px);
	height: clamp(26px, 18.471px + 0.980vw, 30px);
	border-radius: 15px;
	background: var(--color-white);
	color: var(--color-primary);
	font-size: clamp(1.3rem, 0.924rem + 0.490vw, 1.5rem);
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1;
	align-self: flex-end;
	transition: color 0.4s ease-in-out;
	white-space: nowrap;
}

.p-FiestVisitFlow_cardHours {
	font-family: var(--font-num);
	font-weight: 500;
	letter-spacing: 0.05em;
}

.p-FiestVisitFlow_gallery {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
	margin-top: 27px;
	padding: 0;
	list-style: none;
}

.p-FiestVisitFlow_galleryImg {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 10px;
}

.p-FiestVisitFlow_split {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 325px);
	gap: 50px;
	align-items: center;
}

.p-FiestVisitFlow_figure {
	width: 100%;
	max-width: 325px;
	margin: 0;
	justify-self: end;
}

.p-FiestVisitFlow_figureImg {
	display: block;
	width: 100%;
	height: 280px;
	object-fit: cover;
	border-radius: 10px;
}

.p-FiestVisitFlow_notice {
	margin-top: 41px;
	padding: 30px 60px 25px 63px;
	border-radius: 10px;
	background: #e5efef;
}

.p-FiestVisitFlow_noticeTitle {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	color: var(--color-text);
	font-size: 2.2rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1.45;
}

.p-FiestVisitFlow_noticeMark {
	position: relative;
	flex-shrink: 0;
	width: 12px;
	height: 12px;
	margin-top: 10px;
	border-radius: 50%;
	background: #d19696;
	overflow: hidden;
}

.p-FiestVisitFlow_noticeMark::after {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	width: 50%;
	height: 100%;
	background: var(--color-primary);
}

.p-FiestVisitFlow_noticeText {
	margin-top: 10px;
	color: var(--color-text);
	font-size: 1.5rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 2;
}

@media (hover: hover) and (pointer: fine) {
	.p-FiestVisitFlow_card:hover {
		background-color: var(--color-accent);
	}

	.p-FiestVisitFlow_card:hover .p-FiestVisitFlow_cardNote {
		color: var(--color-accent);
	}
}

@media (max-width: 1023px) {
	.p-FiestVisitFlow_cards {
		grid-template-columns: 1fr;
	}

	.p-FiestVisitFlow_split {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 0;
	}

	.p-FiestVisitFlow_splitMain {
		display: contents;
	}

	.p-FiestVisitFlow_split .Flow_heading {
		order: 1;
	}

	.p-FiestVisitFlow_figure {
		order: 2;
		max-width: 325px;
		width: 100%;
		margin-top: 23px;
		margin-left: auto;
		margin-right: auto;
	}

	.p-FiestVisitFlow_split .Flow_text {
		order: 3;
	}

	.p-FiestVisitFlow_figureImg {
		height: auto;
	}
}

@media (max-width: 767px) {
	.p-FiestVisitFlow {
		padding-top: 54px;
		padding-bottom: 55px;
	}

	.p-FiestVisitFlow_cards {
		grid-template-columns: 1fr;
		gap: 14px;
		margin-top: 20px;
	}

	.p-FiestVisitFlow_card {
		grid-template-columns: 46px minmax(0, 1fr);
		grid-template-rows: 1fr auto;
		column-gap: 14px;
		row-gap: 0;
		min-height: 119px;
		padding: 18px 20px 0;
		overflow: hidden;
	}

	.p-FiestVisitFlow_cardIcon {
		grid-row: 1;
		width: 46px;
		height: 46px;
	}

	.p-FiestVisitFlow_cardIconImg {
		width: 14px;
		height: 24px;
	}

	.p-FiestVisitFlow_cardIconImg.-phone {
		width: 18px;
		height: 18px;
	}

	.p-FiestVisitFlow_card.-tel .p-FiestVisitFlow_cardBody {
		flex-direction: column;
		align-items: flex-start;
	}

	.p-FiestVisitFlow_cardText {
		font-size: 1.6rem;
		line-height: 1.375;
		white-space: normal;
	}

	.p-FiestVisitFlow_cardLabel {
		width: auto;
		font-size: 1.6rem;
		letter-spacing: 0.02em;
		align-self: flex-start;
		margin-top: -5px;
	}

	.p-FiestVisitFlow_cardTel {
		margin-top: 7px;
		font-size: 2.2rem;
	}

	.p-FiestVisitFlow_cardNote {
		grid-column: 1 / -1;
		gap: 18px;
		width: auto;
		height: auto;
		margin: 16px -20px 0;
		padding: 10px 8px 12px;
		border: 1px solid var(--color-primary);
		border-top: 0;
		border-radius: 0 0 10px 10px;
		font-size: 1.4rem;
	}

	.p-FiestVisitFlow_cardHours {
		font-size: 1.5rem;
	}

	.p-FiestVisitFlow_gallery {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
		margin-top: 20px;
	}

	.p-FiestVisitFlow_galleryItem:first-child {
		grid-column: 1 / -1;
	}

	.p-FiestVisitFlow_figure {
		max-width: none;
		margin-left: 0;
		margin-right: 0;
	}

	.p-FiestVisitFlow_notice {
		margin-top: 21px;
		padding: 20px 20px 18px;
	}

	.p-FiestVisitFlow_noticeTitle {
		gap: 10px;
		font-size: 1.6rem;
		line-height: 1.5;
	}

	.p-FiestVisitFlow_noticeMark {
		width: 6px;
		height: 6px;
		margin-top: 8px;
	}

	.p-FiestVisitFlow_noticeText {
		margin-top: 15px;
		font-size: 1.4rem;
		line-height: 1.71;
	}
}

/* p-DoctorStaffIntro
***********************************************/
.p-DoctorStaffIntro {
	padding: 68px clamp(30px, -199.647px + 29.902vw, 152px);
}

.p-DoctorStaffIntro .PageIntro_index {
	display: block;
}

.p-DoctorStaffIntro .PageIntro_list {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	column-gap: 30px;
	row-gap: 16px;
}

@media (max-width: 767px) {
	.p-DoctorStaffIntro {
		padding: 35px var(--gutter) 30px;
	}

	.p-DoctorStaffIntro .PageIntro_list {
		grid-template-columns: 1fr;
		row-gap: 0;
	}
}

/* p-DoctorStaffDirector
***********************************************/
.p-DoctorStaffDirector {
	padding: 120px 0 121px;
}

.p-DoctorStaffDirector_top {
	display: grid;
	grid-template-columns: minmax(0, clamp(348px, -24.706px + 48.529vw, 546px)) minmax(0, 1fr);
	grid-template-rows: auto auto;
	column-gap: clamp(30px, -101.765px + 17.157vw, 100px);
	row-gap: 0;
	align-items: start;
}

.p-DoctorStaffDirector_visual {
	grid-column: 1;
	grid-row: 1;
	min-width: 0;
}

.p-DoctorStaffDirector_history {
	grid-column: 2;
	grid-row: 1;
	width: 100%;
	max-width: 500px;
	margin-top: 1px;
}

.p-DoctorStaffDirector_profile {
	grid-column: 1 / -1;
	grid-row: 2;
}

.p-DoctorStaffDirector_role {
	margin-top: 34px;
	color: var(--color-text);
	font-size: 2.2rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1;
}

.p-DoctorStaffDirector_name {
	margin: 0;
	color: var(--color-text);
	font-size: 3.2rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1;
}

.p-DoctorStaffDirector_nameRow {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px 18px;
	margin-top: 13px;
}

.p-DoctorStaffDirector_birth {
	position: relative;
	display: inline-flex;
	margin: 0;
	padding: 10px 24px;
	border-radius: 10px;
}

.p-DoctorStaffDirector_birth::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 10px;
	background: #a5a5a5;
	mix-blend-mode: color-burn;
	pointer-events: none;
	z-index: -1;
}

.p-DoctorStaffDirector_birthText {
	position: relative;
	color: var(--color-text);
	font-size: 1.6rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1;
}

.p-DoctorStaffDirector_en {
	margin: 0;
	color: var(--color-primary);
	font-family: var(--font-en);
	font-size: 1.6rem;
	letter-spacing: 0.04em;
	line-height: 1;
}

.p-DoctorStaffDirector_lead {
	margin-top: 42px;
	color: var(--color-text);
	font-size: 1.7rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.88;
}

.p-DoctorStaffDirector_visualPicture {
	display: block;
	overflow: hidden;
	border-radius: 10px;
	width: 100%;
}

.p-DoctorStaffDirector_visualImg {
	display: block;
	width: 100%;
	height: auto;
}

.p-DoctorStaffDirector_historyRow {
	display: grid;
	grid-template-columns: 70px minmax(0, 1fr);
	align-items: start;
	padding: 14px 0px 10px;
	border-top: 1px solid #cbcbcb;
}

.p-DoctorStaffDirector_historyRow:last-child {
	border-bottom: 1px solid #cbcbcb;
}

.p-DoctorStaffDirector_historyDate {
	color: var(--color-text);
	font-family: var(--font-num);
	font-size: 1.6rem;
	letter-spacing: 0.05em;
	line-height: 1.5;
}

.p-DoctorStaffDirector_historyText {
	margin: 0;
	color: var(--color-text);
	font-size: 1.5rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.5;
}

.p-DoctorStaffDirector_societies {
	margin-top: 36px;
}

.p-DoctorStaffDirector_societiesBox {
	position: relative;
	padding: clamp(35px, -2.647px + 4.902vw, 55px) clamp(25px, -40.882px + 8.578vw, 60px) clamp(30px, -2px + 4.167vw, 47px) clamp(25px, -46.529px + 9.314vw, 63px);
	border-radius: 10px;
}

.p-DoctorStaffDirector_societiesBox::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 10px;
	background: #a5a5a5;
	mix-blend-mode: color-burn;
	pointer-events: none;
	z-index: -1;
}

.p-DoctorStaffDirector_societiesTitle {
	position: relative;
	display: flex;
	align-items: flex-start;
	gap: 15px;
	margin: 0;
}

.p-DoctorStaffDirector_societiesMark {
	position: relative;
	flex-shrink: 0;
	width: 12px;
	height: 12px;
	margin-top: 10px;
	border-radius: 50%;
	background: #d19696;
	overflow: hidden;
}

.p-DoctorStaffDirector_societiesMark::after {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	width: 50%;
	height: 100%;
	background: var(--color-primary);
}

.p-DoctorStaffDirector_societiesTitleText {
	color: var(--color-text);
	font-size: clamp(2rem, 0.494rem + 1.961vw, 2.8rem);
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: calc(3.2em / 2.8);
}

.p-DoctorStaffDirector_societiesBody {
	position: relative;
	display: grid;
	grid-template-columns: 30.5% 33.7% minmax(0, 1fr);
	column-gap: clamp(0px, 43.235px - 3.676vw, 15px);
	margin-top: 27px;
}

.p-DoctorStaffDirector_societiesGroup + .p-DoctorStaffDirector_societiesGroup {
	margin-top: 6px;
}

.p-DoctorStaffDirector_societiesItem,
.p-DoctorStaffDirector_societiesSubItem {
	position: relative;
	padding-left: 16px;
	color: var(--color-text);
	font-size: 1.5rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.5;
}

.p-DoctorStaffDirector_societiesItem + .p-DoctorStaffDirector_societiesItem {
	margin-top: 10px;
}

.p-DoctorStaffDirector_societiesItem + .p-DoctorStaffDirector_societiesSubItem,
.p-DoctorStaffDirector_societiesSubItem + .p-DoctorStaffDirector_societiesSubItem {
	margin-top: 0;
}

.p-DoctorStaffDirector_societiesItem::before,
.p-DoctorStaffDirector_societiesSubItem::before {
	content: "";
	position: absolute;
	top: 0.55em;
	left: 0;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--color-primary);
}

.p-DoctorStaffDirector_societiesSubItem {
	padding-left: 38px;
    line-height: 1.5;
}

.p-DoctorStaffDirector_societiesSubItem::before {
    top: 11px;
    left: 18px;
	width: 10px;
	height: 2px;
	border-radius: 1px;
	background: var(--color-text);
}

.p-DoctorStaffDirector_links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 40px;
	margin-top: 40px;
}

@media (max-width: 767px) {
	.p-DoctorStaffDirector {
		padding: 72px 0 70px;
	}

	.p-DoctorStaffDirector_top {
		display: flex;
		flex-direction: column;
		gap: 0;
	}

	.p-DoctorStaffDirector_visual {
		order: 1;
	}

	.p-DoctorStaffDirector_profile {
		order: 2;
	}

	.p-DoctorStaffDirector_history {
		order: 3;
		max-width: none;
		margin-top: 38px;
	}

	.p-DoctorStaffDirector_nameRow {
		display: grid;
		grid-template-columns: max-content auto;
		align-items: flex-end;
		column-gap: 25px;
		row-gap: 10px;
		margin-top: 10px;
	}

	.p-DoctorStaffDirector_role {
		margin-top: 21px;
		font-size: 1.5rem;
	}

	.p-DoctorStaffDirector_name {
		grid-column: 1;
		grid-row: 1;
		font-size: 2.4rem;
		letter-spacing: 0.05em;
	}

	.p-DoctorStaffDirector_en {
		grid-column: 1;
		grid-row: 2;
		font-size: 1.3rem;
	}

	.p-DoctorStaffDirector_birth {
		grid-column: 2;
		grid-row: 1 / span 2;
		width: max-content;
		max-width: 100%;
		justify-self: start;
		padding: 6px 16px;
	}

	.p-DoctorStaffDirector_birthText {
		font-size: 1.4rem;
	}

	.p-DoctorStaffDirector_lead {
		margin-top: 25px;
		font-size: 1.6rem;
		line-height: 1.75;
		letter-spacing: 0.04em;
		padding-right: 12px;
	}

	.p-DoctorStaffDirector_historyRow {
		grid-template-columns: 60px minmax(0, 1fr);
		column-gap: 8px;
		padding: 10px 10px 10px 15px;
	}

	.p-DoctorStaffDirector_historyDate {
		font-size: 1.4rem;
	}

	.p-DoctorStaffDirector_historyText {
		font-size: 1.4rem;
		line-height: 1.57;
	}

	.p-DoctorStaffDirector_societies {
		margin: 33px -10px 0;
	}

	.p-DoctorStaffDirector_societiesBox {
		padding: 33px;
	}

	.p-DoctorStaffDirector_societiesTitle {
		gap: 8px;
	}

	.p-DoctorStaffDirector_societiesTitleText {
		font-size: 2rem;
		line-height: 2.3rem;
	}

	.p-DoctorStaffDirector_societiesMark {
		width: 10px;
		height: 10px;
		margin-top: 7px;
	}

	.p-DoctorStaffDirector_societiesBody {
		grid-template-columns: 1fr;
		row-gap: 0;
		margin-top: 20px;
	}

	.p-DoctorStaffDirector_societiesList + .p-DoctorStaffDirector_societiesList {
		margin-top: 6px;
	}

	.p-DoctorStaffDirector_societiesGroup + .p-DoctorStaffDirector_societiesGroup {
		margin-top: 8px;
	}

	.p-DoctorStaffDirector_societiesItem,
	.p-DoctorStaffDirector_societiesSubItem {
		padding-left: 13px;
		font-size: 1.4rem;
		line-height: 1.57;
	}

	.p-DoctorStaffDirector_societiesItem + .p-DoctorStaffDirector_societiesItem {
		margin-top: 6px;
	}

	.p-DoctorStaffDirector_societiesSubItem {
		padding-left: 33px;
		line-height: 2.2rem;
	}

	.p-DoctorStaffDirector_societiesSubItem::before {
		top: 0.7em;
		left: 17px;
		width: 9px;
	}

	.p-DoctorStaffDirector_links {
		flex-direction: column;
		align-items: center;
		gap: 15px;
		margin-top: 40px;
	}
}

/* p-DoctorStaffRole
***********************************************/
.p-DoctorStaffRole {
	overflow: hidden;
}

.p-DoctorStaffRole_inner {
	--_role-img: clamp(344px, -24.941px + 48.039vw, 540px);
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, var(--_role-img));
	column-gap: clamp(30px, -58.471px + 11.520vw, 77px);
	align-items: center;
	padding: 80px 0 76px;
	border-top: 1px solid #cbcbcb;
}

.p-DoctorStaffRole_heading {
	position: relative;
}

.p-DoctorStaffRole_en {
	--_en-hang: -65px;
	--_en-edge: max(var(--gutter), calc((100vw - var(--contents-width-small)) / 2));
	--_en-outset: max(var(--_en-hang), calc(-1 * var(--_en-edge)));
	position: absolute;
	top: 70px;
	bottom: 0;
	left: var(--_en-outset);
	margin: auto;
	height: max-content;
	display: flex;
	flex-direction: column;
	color: #a5a5a5;
	font-family: var(--font-en);
	letter-spacing: 0.04em;
	mix-blend-mode: color-burn;
	pointer-events: none;
	z-index: -1;
	white-space: nowrap;
    transform: translateY(-100%);
}

.p-DoctorStaffRole_en.-sizeXl {
	--_en-hang: -40px;
	font-size: clamp(9rem, 5.147rem + 0.502vw, 12rem);
	line-height: 1;
}

.p-DoctorStaffRole_en.-sizeLg {
	--_en-hang: -48px;
	font-size: clamp(8rem, 4.147rem + 0.502vw, 11rem);
	line-height: 0.73;
}

.p-DoctorStaffRole_en.-sizeMd {
	--_en-hang: -55px;
	font-size: clamp(7.2rem, 3.604rem + 0.468vw, 10rem);
	line-height: 0.8;
}

.p-DoctorStaffRole_en.-sizeSm {
	--_en-hang: -65px;
	font-size: clamp(6rem, 2.789rem + 0.418vw, 8.5rem);
	letter-spacing: 0.025em;
	line-height: 0.94;
}

.p-DoctorStaffRole_title {
	position: relative;
	z-index: 1;
	color: var(--color-text);
	font-size: clamp(3.2rem, 2.071rem + 1.471vw, 3.8rem);
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1.16;
}

.p-DoctorStaffRole_title.-row2 {
	line-height: 1.447;
}

.p-DoctorStaffRole_visual {
	overflow: hidden;
	border-radius: 10px;
	min-width: 0;
}

.p-DoctorStaffRole_visual picture,
.p-DoctorStaffRole_visualImg {
	display: block;
	width: 100%;
}

.p-DoctorStaffRole_visualImg {
	aspect-ratio: 540 / 320;
	height: auto;
	object-fit: contain;
}

.p-DoctorStaffRole_text {
	margin: 0;
	color: var(--color-text);
	font-size: 1.7rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.88;
}

.p-DoctorStaffRole_text + .p-DoctorStaffRole_text {
	margin-top: 32px;
}

.p-DoctorStaffRole_heading {
	grid-column: 1;
	grid-row: 1;
}

.p-DoctorStaffRole_visual {
	grid-column: 2;
	grid-row: 1;
}

.p-DoctorStaffRole_body {
	grid-column: 1 / -1;
	grid-row: 2;
	margin-top: 47px;
}

:where(.p-DoctorStaffRole.-reverse) .p-DoctorStaffRole_inner {
	grid-template-columns: minmax(0, var(--_role-img)) minmax(0, 1fr);
}

:where(.p-DoctorStaffRole.-reverse) .p-DoctorStaffRole_visual {
	grid-column: 1;
	grid-row: 1;
}

:where(.p-DoctorStaffRole.-reverse) .p-DoctorStaffRole_heading {
	grid-column: 2;
	grid-row: 1;
}

:where(.p-DoctorStaffRole.-reverse) .p-DoctorStaffRole_body {
	grid-column: 1 / -1;
	grid-row: 2;
	margin-top: 50px;
}

:where(.p-DoctorStaffRole.-reverse) .p-DoctorStaffRole_en {
	left: auto;
	right: var(--_en-outset);
	text-align: right;
}

@media (max-width: 767px) {
	.p-DoctorStaffRole:last-of-type {
		margin-bottom: 26px;
	}

	.p-DoctorStaffRole_inner,
	:where(.p-DoctorStaffRole.-reverse) .p-DoctorStaffRole_inner {
		display: flex;
		flex-direction: column;
		gap: 0;
		padding: 77px 0 37px;
		position: relative;
	}

	.p-DoctorStaffRole_inner.-spHigh {
		padding-top: 107px;
	}

	.p-DoctorStaffRole_inner.-spMid {
		padding-top: 81px;
	}

	.p-DoctorStaffRole_heading {
		order: 1;
		text-align: center;
		position: static;
	}

	.p-DoctorStaffRole_visual {
		order: 2;
		margin-top: 44px;
	}

	.p-DoctorStaffRole_body {
		order: 3;
		margin-top: 31px;
	}

	.p-DoctorStaffRole_en {
		font-size: 5.3rem;
		line-height: 0.83;
		align-items: center;
		top: 47px;
		bottom: auto;
		transform: none;
	}

	.p-DoctorStaffRole_en.-sizeXl,
	.p-DoctorStaffRole_en.-sizeLg,
	.p-DoctorStaffRole_en.-sizeMd,
	.p-DoctorStaffRole_en.-sizeSm {
		font-size: 5.3rem;
		line-height: 0.83;
		letter-spacing: 0.04em;
		left: 0;
		right: 0;
		text-align: center;
	}

	.p-DoctorStaffRole_title {
		margin-top: -8px;
		font-size: 2.4rem;
		line-height: 1.17;
	}

	.p-DoctorStaffRole_visualImg {
		aspect-ratio: 325 / 215;
	}

	.p-DoctorStaffRole_text {
		font-size: 1.6rem;
		letter-spacing: 0.04em;
		line-height: 1.75;
        padding: 0 10px;
	}

	.p-DoctorStaffRole_text + .p-DoctorStaffRole_text {
		margin-top: 28px;
	}
}