body {
	background: #fff;
	font-family: "Zen Kaku Gothic New", sans-serif;
}

html {
	background: #fff;
}

.u-desktop {
	display: none;
}

/* リキッドレイアウト対応 */

:root {
	--section-padding-x: 3rem;
}

html {
	font-size: 10px;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

/* Remove default padding */

ul,
ol {
	padding: 0;
}

/* Remove default margin */

body,
h1,
h2,
h3,
h4,
p,
ul,
ol,
figure,
blockquote,
dl,
dd {
	margin: 0;
}

/* Set core root defaults */

html {
	background-color: #f5f5f5;
	min-height: 100vh;
	min-height: 100dvh;
	overflow-x: hidden;
	width: 100%;
}

/* Set core body defaults */

body {
	line-height: 1.5;
	margin: 0 auto;
	max-width: 100%;
	min-height: 100vh;
	min-height: 100dvh;
	text-rendering: optimizeLegibility;
	width: 100%;
}

/* Remove list styles on ul, ol elements with a class attribute */

ul,
ol {
	list-style: none;
}

/* A elements that don't have a class get default styles */

a:not([class]) {
	-webkit-text-decoration-skip: ink;
	text-decoration-skip-ink: auto;
}

/* Make images easier to work with */

img {
	display: block;
	max-width: 100%;
	width: 100%;
}

/* Natural flow and rhythm in articles by default */

article > * + * {
	margin-top: 1em;
}

/* Inherit fonts for inputs and buttons */

input,
button,
textarea,
select {
	font: inherit;
}

/* Blur images when they have no alt attribute */

img:not([alt]) {
	filter: blur(10px);
}

/* フォームリセット */

input,
button,
select,
textarea {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background: transparent;
	border: none;
	border-radius: 0;
	font: inherit;
	outline: none;
}

textarea {
	resize: vertical;
}

input[type=checkbox],
input[type=radio] {
	display: none;
}

input[type=submit],
input[type=button],
label,
button,
select {
	cursor: pointer;
}

select::-ms-expand {
	display: none;
}

/* ホバー */

a {
	-webkit-text-decoration: none;
	color: inherit;
	text-decoration: none;
	transition: opacity 0.3s;
}

.access {
	background-color: #fff;
	color: #111;
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	padding: 80px 3rem 250px;
	padding: 80px var(--section-padding-x) 250px;
	position: relative;
	width: 100%;
}

.section-header-text.access__header-text {
	top: -110px;
}

.access__header-text-label {
	color: #111;
	font-size: 24px;
	font-weight: 700;
	letter-spacing: 2px;
	text-orientation: upright;
	writing-mode: vertical-rl;
}

.access__header-text-line {
	background-color: #333;
	height: 1px;
	margin-top: 10px;
	width: 60px;
}

.access__inner {
	gap: 45px;
	position: relative;
	z-index: 2;
}

.access__map {
	aspect-ratio: 257/244;
	border: none;
	display: block;
	height: auto;
	margin-top: 34px;
	max-width: 100%;
	overflow: hidden;
	padding-right: 30px;
	width: 88%;
}

.access__info {
	font-size: 18px;
}

.access__clinic-name {
	color: #333;
	font-size: 24px;
	font-weight: 700;
	letter-spacing: 0.13em;
	margin: 0;
	margin-top: 55px;
}

.access__address {
	color: #333;
	font-size: 18px;
	font-weight: 500;
	line-height: 2;
	margin: 0;
	margin-top: 5px;
}

.access__parking {
	align-items: center;
	color: #333;
	display: flex;
	font-size: 18px;
	font-weight: 500;
	gap: 8px;
	line-height: 1.6;
	margin: 0;
	margin-top: 10px;
}

.access__parking-icon {
	background: #335dad;
	color: #fff;
	flex-shrink: 0;
	line-height: 1;
	padding: 5px 8px;
}

.access__method-header {
	align-items: center;
	background: #eaf4fa;
	display: flex;
	gap: 13px;
	margin-top: 32px;
	padding: 5px;
}

.access__method-header.first {
	margin-top: 55px;
}

.access__method-icon {
	-o-object-fit: contain;
	flex-shrink: 0;
	height: 24px;
	object-fit: contain;
	width: 26px;
}

.access__method-title {
	color: #333;
	font-size: 18px;
	font-weight: 500;
	margin: 0;
}

.access__method-content {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.access__method-table {
	border-collapse: collapse;
	margin: 0;
	margin-top: 10px;
	table-layout: auto;
	width: auto;
}

.access__method-table tr {
	display: table-row;
}

.access__method-table td {
	line-height: 2;
	padding: 0;
	vertical-align: top;
}

.access__method-label {
	color: #333;
	font-size: 18px;
	font-weight: 500;
	line-height: 1.6;
	white-space: nowrap;
}

.access__method-text {
	color: #333;
	font-size: 18px;
	font-weight: 500;
	line-height: 2;
	line-height: 1.6;
	margin: 0;
}

.access__calendar {
	-o-object-fit: contain;
	height: auto;
	margin-top: 60px;
	object-fit: contain;
	width: 100%;
}

.appointment-decoration {
	display: block;
	height: auto;
	margin-top: -150px;
	overflow: hidden;
	pointer-events: none;
	position: relative;
	width: 100%;
	z-index: 3;
}

.appointment-decoration img {
	display: block;
	height: auto;
	width: 100%;
}

.appointment-decoration::after {
	-webkit-clip-path: polygon(-15% 0%, 100% 28%, 100% 0%);
	background-color: #335dad;
	bottom: -19px;
	clip-path: polygon(-15% 0%, 100% 28%, 100% 0%);
	content: "";
	height: 100%;
	left: 0;
	pointer-events: none;
	position: absolute;
	width: 100%;
	z-index: 1;
}

.appointment {
	--appointment-padding-x: var(--section-padding-x);
	background-color: #fff;
	background-image: url("../images/appointment-bg.jpg");
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	color: #fff;
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	padding: 120px 3rem 103px;
	padding: 120px var(--section-padding-x) 103px;
	position: relative;
	width: 100%;
}

.section-header-text.appointment__header-text {
	top: -125px;
}

.appointment__label {
	-o-object-fit: contain;
	height: auto;
	object-fit: contain;
	position: absolute;
	right: 20px;
	top: 0;
	width: 33px;
	z-index: 1;
}

.appointment__inner {
	position: relative;
	z-index: 2;
}

.appointment__title {
	margin-bottom: 20px;
}

.appointment__subtitle {
	color: #003599;
	font-size: 25px;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.4;
	margin-top: 36px;
}

.appointment__text-wrapper {
	border-bottom: 1px solid #111;
	border-top: 1px solid #111;
	margin-top: 20px;
	padding-bottom: 30px;
	padding-top: 30px;
	position: relative;
}

.appointment__decoration {
	-o-object-fit: contain;
	height: auto;
	left: 0;
	object-fit: contain;
	position: absolute;
	top: 10px;
	width: 20px;
}

.appointment__text {
	color: #333;
	font-size: 18px;
	font-weight: 500;
	line-height: 2;
	margin: 0;
	text-align: justify;
}

.appointment__methods {
	display: flex;
	flex-direction: column;
	gap: 30px;
	margin-top: 100px;
}

.appointment__method {
	background-color: #eaf4fa;
	border: 2px solid #fff;
	padding: 80px 23px 63px;
	text-align: center;
}

.appointment__method-header {
	align-items: center;
	border-bottom: solid #111 1px;
	display: flex;
	gap: 12px;
	justify-content: center;
	padding-bottom: 10px;
}

.appointment__method-icon {
	align-items: center;
	display: flex;
	flex-shrink: 0;
	justify-content: center;
}

.appointment__method-icon img {
	-o-object-fit: contain;
	height: 34px;
	object-fit: contain;
	width: 34px;
}

.appointment__method-title {
	color: #003599;
	font-size: 23px;
	font-weight: 700;
	margin: 0;
}

.appointment__method-tel {
	color: #333;
	font-family: "Jost", sans-serif;
	font-size: 29px;
	font-style: italic;
	font-weight: 500;
	letter-spacing: 2px;
	margin: 0;
	margin-top: 20px;
}

.appointment__method-time {
	color: #333;
	font-family: "Jost", sans-serif;
	font-size: 20px;
	font-weight: 500;
	margin: 0;
	margin-top: 10px;
}

.appointment__method-time-sp {
	display: inline-block;
	font-size: 18px;
	margin-left: 5px;
}

.appointment__method-account {
	color: #333;
	font-size: 17px;
	font-weight: 500;
	margin: 20px 0;
	text-align: center;
}

.appointment__method-qr {
	display: flex;
	justify-content: center;
	margin-top: 20px;
}

.appointment__method-qr img {
	-o-object-fit: contain;
	height: auto;
	object-fit: contain;
	width: 150px;
}

.clinic-tour {
	background: #eaf4fa;
	color: #fff;
	display: flex;
	flex-direction: column;
	margin: 0;
	min-height: 100vh;
	padding: 232px 3rem 185px;
	padding: 232px var(--section-padding-x) 185px;
	position: relative;
	width: 100%;
	z-index: 4;
}

.clinic-tour::before {
	-webkit-clip-path: polygon(100% 0, 100% 5%, 0% 0);
	background-color: #fff;
	clip-path: polygon(100% 0, 100% 5%, 0% 0);
	content: "";
	height: 100%;
	pointer-events: none;
	position: absolute;
	right: 0;
	top: 0;
	width: 100%;
	z-index: 0;
}

.clinic-tour::after {
	-webkit-clip-path: polygon(100% 100%, 100% 97.5%, 0 100%);
	background-color: #335dad;
	bottom: -0.3px;
	clip-path: polygon(100% 100%, 100% 97.5%, 0 100%);
	content: "";
	height: 100%;
	pointer-events: none;
	position: absolute;
	right: 0;
	width: 100%;
	z-index: 0;
}

.section-header-text.clinic-tour__header-text {
	top: 0px;
	z-index: 50;
}

.clinic-tour__header-icon {
	-o-object-fit: contain;
	height: auto;
	object-fit: contain;
	position: absolute;
	right: 20px;
	top: 40px;
	width: 33px;
	z-index: 1;
}

.clinic-tour__inner {
	display: flex;
	flex-direction: column;
	position: relative;
	z-index: 2;
}

.clinic-tour__header-text-label {
	color: #111;
	font-size: 24px;
	font-weight: 700;
	letter-spacing: 2px;
	text-orientation: upright;
	writing-mode: vertical-rl;
}

.clinic-tour__header-text-line {
	background-color: #111;
	height: 1px;
	margin-top: 10px;
	width: 60px;
}

.clinic-tour__cards {
	display: flex;
	flex-direction: column;
	gap: 26px;
	margin-top: 80px;
}

.clinic-tour__card {
	background-color: #fff;
	display: flex;
	flex-direction: column;
}

.clinic-tour__card-image {
	-o-object-fit: cover;
	aspect-ratio: 323/195;
	height: auto;
	object-fit: cover;
	width: 100%;
}

.clinic-tour__card-title {
	align-items: center;
	color: #335dad;
	display: flex;
	font-size: 22px;
	font-weight: 700;
	gap: 10px;
	letter-spacing: 0.08em;
	line-height: 1.4;
	margin: 0;
}

.clinic-tour__card-title::before {
	-webkit-background-clip: text; /* Safari向けにこちらを優先 */
	-webkit-text-fill-color: transparent;
	background: linear-gradient(90deg, #1e9cd7 0%, #1eb6b7 15%, #1e9cd7 66%, #0075be 100%);
	background-clip: text;
	color: transparent;
	content: "▶︎";
	display: inline-block; /* 必須 */
	font-size: 16px; /* 万が一のための余白調整（クリップ切れ防止） */
	padding-right: 0.1em;
}

.clinic-tour__card-block {
	min-height: 276px;
	padding: 60px 37px 45px;
}

.clinic-tour__card-text {
	color: #333;
	font-size: 18px;
	font-weight: 500;
	line-height: 2;
	margin: 0;
	margin-top: 26px;
	text-align: justify;
}

.director {
	background-color: #fff;
	color: #111;
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	padding: 300px 3rem 100px;
	padding: 300px var(--section-padding-x) 100px;
	position: relative;
	width: 100%;
}

.section-header-text.director__header-text {
	top: -200px;
}

.director__header-text-label {
	color: #111;
	font-size: 24px;
	font-weight: 900;
	letter-spacing: 2px;
	text-orientation: upright;
	writing-mode: vertical-rl;
}

.director__header-text-line {
	background-color: #111;
	height: 1px;
	margin-top: 10px;
	width: 60px;
}

.director__inner {
	display: flex;
	flex-direction: column;
	position: relative;
	z-index: 2;
}

.director__info {
	display: flex;
	flex-direction: column;
	letter-spacing: 0.15em;
}

.director__clinic-name {
	color: #333;
	font-size: 18px;
	font-weight: 700;
}

.director__position {
	color: #333;
	font-size: 20px;
	font-weight: 700;
}

.director__name {
	color: #333;
	font-size: 24px;
	font-weight: 700;
	line-height: 1.4;
	margin-top: 20px;
}

.director__name-en {
	color: #003599;
	font-family: "Jost", sans-serif;
	font-size: 14.5px;
	font-style: italic;
	font-weight: 500;
	letter-spacing: 2px;
	margin-top: 10px;
}

.director__content {
	display: flex;
	flex-direction: column;
	gap: 52px;
	margin-top: 60px;
}

.director__profile {
	align-items: flex-start;
	display: flex;
	flex-direction: row;
	gap: 0px;
	justify-content: space-between;
	margin-top: 50px;
}

.director__image-wrapper {
	align-items: center;
	border-radius: 50%;
	display: flex;
	flex-shrink: 0;
	height: 140px;
	justify-content: flex-end;
	overflow: hidden;
	width: 140px;
}

.director__image {
	-o-object-fit: cover;
	-o-object-position: -1px -5px;
	height: 100%;
	object-fit: cover;
	object-position: -1px -5px;
	transform: scale(1.3);
	width: 100%;
}

.director__introduction {
	color: #333;
	font-size: 18px;
	font-weight: 500;
	line-height: 2;
	text-align: justify;
}

.director__sections {
	display: flex;
	flex-direction: column;
	gap: 52px;
}

.director__section {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.director__section-title {
	color: #003599;
	font-size: 22px;
	font-weight: 700;
	line-height: 1.4;
	margin: 0;
}

.director__section-list {
	display: flex;
	flex-direction: column;
	gap: 5px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.director__section-item {
	color: #333;
	font-size: 18px;
	font-weight: 500;
	line-height: 1.8;
	padding-left: 20px;
	position: relative;
}

.director__section-item::before {
	background-color: #003599;
	border-radius: 50%;
	content: "";
	height: 10px;
	left: 0;
	position: absolute;
	top: 12px;
	width: 10px;
}

.director__section-note {
	color: #333;
	font-size: 14px;
	font-weight: 500;
	margin-left: 4px;
}

.faq {
	background: #335dad;
	color: #fff;
	display: flex;
	flex-direction: column;
	margin-top: -100px;
	overflow: visible;
	padding: 200px 3rem 225px;
	padding: 200px var(--section-padding-x) 225px;
	position: relative;
	width: 100%;
}

.section-header-text.faq__header-text {
	top: 80px;
	z-index: 50;
}

.faq__header-faq {
	align-items: flex-end;
	display: flex;
	flex-direction: column;
	margin-left: 20px;
	position: relative;
}

.faq__header-faq-text {
	color: #fff;
	font-size: 24px;
	font-weight: 700;
	letter-spacing: 2px;
	text-orientation: upright;
	writing-mode: vertical-rl;
}

.faq__header-faq-line {
	background-color: #fff;
	height: 1px;
	margin-top: 10px;
	width: 60px;
}

.faq__inner {
	display: flex;
	flex-direction: column;
	position: relative;
	z-index: 2;
}

.faq__items {
	display: flex;
	flex-direction: column;
	gap: 23px;
	margin-top: 58px;
}

.faq__item {
	background-color: #fff;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
	padding: 40px 32px 55px;
}

.faq__question {
	align-items: flex-start;
	color: #335dad;
	display: flex;
	flex-direction: column;
	font-weight: 700;
	gap: 10px;
	padding-bottom: 10px;
}

.faq__question-icon {
	align-items: center;
	background: linear-gradient(90deg, #1eb6b7 0%, #1e9cd7 56%, #0075be 86%, #005b97 100%);
	border-radius: 50%;
	display: flex;
	flex-shrink: 0;
	font-family: "Jost", sans-serif;
	height: 40px;
	justify-content: center;
	width: 40px;
}

.faq__question-icon-text {
	color: #fff;
	font-size: 20px;
	font-weight: 500;
}

.faq__question-text {
	color: #003599;
	flex: 1;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.95;
	margin: 0;
}

.faq__answer {
	align-items: flex-start;
	border-top: 1px solid #003599;
	display: flex;
	flex-direction: column;
	gap: 5px;
	padding-top: 20px;
}

.faq__answer-label {
	color: #111;
	flex-shrink: 0;
	font-family: "Jost", sans-serif;
	font-size: 22px;
	font-style: italic;
	font-weight: 500;
}

.faq__answer-text {
	color: #333;
	flex: 1;
	font-size: 18px;
	font-weight: 500;
	line-height: 2;
	margin: 0;
	text-align: justify;
}

.flow {
	background-color: #eaf4fa;
	color: #111;
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	overflow: hidden;
	padding: 150px 3rem 110px;
	padding: 150px var(--section-padding-x) 110px;
	position: relative;
	width: 100%;
	z-index: 1;
}

.flow::before {
	-webkit-clip-path: polygon(100% 0, 100% 5%, 0% 0);
	background-color: #fff;
	clip-path: polygon(100% 0, 100% 5%, 0% 0);
	content: "";
	height: 100%;
	pointer-events: none;
	position: absolute;
	right: 0;
	top: 0;
	width: 100%;
	z-index: 0;
}

.flow::after {
	-webkit-clip-path: polygon(100% 100%, 100% 96.5%, 0 100%);
	background-color: #fff;
	bottom: -1px;
	clip-path: polygon(100% 100%, 100% 96.5%, 0 100%);
	content: "";
	height: 100%;
	pointer-events: none;
	position: absolute;
	right: 0;
	width: 100%;
	z-index: 0;
}

.section-header-text.flow__header-text {
	top: 15px;
}

.flow__inner {
	position: relative;
	z-index: 2;
}

h2.flow__title {
	font-size: 31px;
}

.flow__intro {
	color: #333;
	font-size: 18px;
	font-weight: 500;
	line-height: 1.8;
	margin: 0;
	margin-top: 35px;
	max-width: 218px;
	width: 100%;
}

.flow__steps {
	display: flex;
	flex-direction: column;
	gap: 22px;
	margin-top: 85px;
}

.flow__step {
	display: flex;
	flex-direction: column;
	gap: 20px;
	position: relative;
}

.flow__step::before {
	background-color: #003599;
	bottom: 0;
	content: "";
	left: 24px;
	opacity: 0.5;
	position: absolute;
	top: 80px;
	width: 1.3px;
}

.flow__step:last-child::before {
	display: none;
}

.flow__step-header {
	align-items: center;
	display: flex;
	gap: 16px;
}

.flow__step-content {
	display: flex;
	flex-direction: column;
	gap: 18px;
	margin-left: 65px;
	padding-bottom: 50px;
}

.flow__step-number {
	align-items: center;
	background: linear-gradient(90deg, #1eb6b7 0%, #1e9cd7 56%, #0075be 86%, #005b97 100%);
	border-radius: 50%;
	color: #fff;
	display: flex;
	flex-shrink: 0;
	font-family: "Jost", sans-serif;
	font-size: 22px;
	font-style: italic;
	font-weight: 500;
	height: 48px;
	justify-content: center;
	letter-spacing: 1px;
	width: 48px;
}

.flow__step-title {
	color: #003599;
	font-size: 30px;
	font-weight: 700;
	line-height: 1.4;
	margin: 0;
}

.flow__step-description {
	color: #333;
	font-size: 18px;
	font-weight: 700;
	line-height: 2;
	margin: 0;
	text-align: justify;
}

.flow__step-image {
	-o-object-fit: cover;
	height: auto;
	object-fit: cover;
	width: 100%;
}

.flow__step-image {
	aspect-ratio: 260/175;
}

.flow__step-note {
	color: #666666;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.7142857143;
	margin: 0;
	text-align: justify;
}

.footer-btn {
	background-color: #fff;
	border-bottom: 1px solid #e5e5e5;
	bottom: 0;
	box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.1);
	display: flex;
	left: 50%;
	max-width: 100%;
	position: fixed;
	transform: translateX(-50%);
	width: 100%;
	z-index: 999;
}

.footer-btn__item {
	-webkit-text-decoration: none;
	align-items: center;
	border-right: 1px solid #e5e5e5;
	color: #111;
	display: flex;
	flex: 1;
	gap: 8px;
	justify-content: center;
	padding: 16px;
	text-decoration: none;
	transition: background-color 0.3s ease;
	width: 50%;
}

.footer-btn__item:last-child {
	border-right: none;
}

.footer-btn__item:hover {
	background-color: #f5f5f5;
}

.footer-btn__item:active {
	background-color: #e5e5e5;
}

.footer-btn__icon {
	-o-object-fit: contain;
	flex-shrink: 0;
	object-fit: contain;
	width: 30px;
}

.footer-btn__icon--tel {
	width: 15px;
}

.footer-btn__text {
	font-size: 16px;
	font-weight: 500;
	white-space: nowrap;
}

.footer {
	background-color: #335dad;
	color: #fff;
	margin: 0 auto 50px;
	max-width: 100%;
	padding: 30px 3rem 70px;
	padding: 30px var(--section-padding-x) 70px;
	width: 100%;
}

.footer__inner {
	width: 100%;
}

.footer__nav {
	width: 100%;
}

.footer__nav-list {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.footer__nav-item {
	border-bottom: 1px solid rgba(255, 255, 255, 0.4);
}

.footer__nav-item:last-child {
	border-bottom: none;
}

.footer__nav-item a {
	-webkit-text-decoration: none;
	color: #fff;
	display: block;
	font-size: 18px;
	font-weight: 500;
	padding: 16px 0;
	text-decoration: none;
	transition: opacity 0.3s ease;
}

.footer__nav-item a:hover {
	opacity: 0.7;
}

.footer__access {
	font-size: 18px;
	margin-top: 40px;
}

.footer__access-title {
	font-size: 25px;
	font-weight: 700;
}

.footer__access-text {
	color: #fff;
	font-size: 18px;
	font-weight: 500;
	letter-spacing: 0.095em;
	line-height: 1.6;
	margin: 0;
	margin-top: 10px;
}

.footer__copy {
	align-items: flex-end;
	display: flex;
	font-size: 9px;
	font-weight: 500;
	justify-content: space-between;
	margin-top: 30px;
}

.footer__copy-text {
	margin: 0;
}

.footer__copy-icon {
	-o-object-fit: contain;
	flex-shrink: 0;
	object-fit: contain;
	width: 29px;
}

.fv {
	background: #fff;
	color: #111;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	padding: 200px 3rem 100px;
	padding: 200px var(--section-padding-x) 100px;
	position: relative;
	width: 100%;
}

.fv__right {
	-o-object-fit: contain;
	-o-object-position: center top;
	height: 145px;
	object-fit: contain;
	object-position: center top;
	position: absolute;
	right: -1px;
	top: 0;
	width: 190px;
	z-index: 2;
}

.fv__background-image {
	-o-object-fit: contain;
	-o-object-position: center top;
	height: auto;
	left: 0;
	mix-blend-mode: multiply;
	object-fit: contain;
	object-position: center top;
	position: absolute;
	top: 0;
	width: 100%;
	z-index: 1;
}

.fv__top-image {
	display: block;
	margin: 0 auto;
	max-width: 260px;
	position: relative;
	width: 60%;
	z-index: 5;
}

.fv__inner {
	font-weight: 700;
	margin-top: 120px;
	padding: 0;
	position: relative;
	width: 100%;
}

.fv__background-decoration {
	-o-object-fit: contain;
	bottom: 10px;
	height: auto;
	object-fit: contain;
	pointer-events: none;
	position: absolute;
	right: 0;
	width: 88%;
	z-index: 5;
}

.fv__badges {
	display: flex;
	flex-direction: column;
	gap: 12px;
	letter-spacing: 1px;
	margin-left: -36px;
}

.fv__badge {
	display: inline-block;
	padding: 1px 7px 1px 16px;
	position: relative;
	width: -moz-fit-content;
	width: fit-content;
}

.fv__badge::before {
	background-image: linear-gradient(90deg, #1eb6b7 0%, #0075be 86%, #005b97 100%);
	content: "";
	height: 100%;
	left: 0;
	mix-blend-mode: multiply;
	position: absolute;
	top: 0;
	width: 100%;
}

.fv__badge-text {
	color: #fff;
	font-size: 17px;
	font-weight: 700;
	letter-spacing: 0.15em;
	position: relative;
	z-index: 1;
}

.fv__badge--light {
	--badge-multiply-opacity: 0.85;
}

.fv__badge--dark {
	--badge-multiply-opacity: 0.95;
}

.fv__badge-helper {
	font-size: 16px;
}

.fv__main-message {
	margin-top: 29px;
}

.fv__main-text {
	color: #003599;
	font-size: 32px;
	font-weight: 700;
	letter-spacing: 0.03em;
	line-height: 1.5;
	margin: 0;
}

.fv__main-text.--first {
	transform: translateX(-20px);
}

.fv__conditions {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-top: 24px;
}

.fv__condition {
	color: #003599;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.4;
	margin: 0;
}

.fv__triangle {
	-o-object-fit: contain;
	height: 69px;
	left: -1px;
	object-fit: contain;
	position: absolute;
	top: 124px;
	width: 90px;
	z-index: 2;
}

header {
	background-color: transparent;
	left: 50%;
	max-width: 100%;
	position: fixed;
	top: 0;
	transform: translateX(-50%);
	transition: background-color 0.3s ease;
	width: 100%;
	z-index: 1000;
}

header.is-scrolled {
	background-color: transparent;
}

.header__inner {
	align-items: center;
	display: flex;
	justify-content: space-between;
	margin: 0 auto;
	padding: 22px 24px 26px;
	transition: background-color 0.3s ease;
	width: 100%;
}

header.is-scrolled .header__inner {
	background-color: #fff;
}

.header__logo {
	width: 190px;
	z-index: 1001;
}

.header__logo a {
	color: #111;
	transition: opacity 0.3s;
}

.header__logo a:hover {
	opacity: 0.7;
}

.header__right {
	align-items: center;
	display: flex;
	gap: 20px;
	z-index: 10000;
}

.header__tel {
	align-items: center;
	display: flex;
	justify-content: center;
	transition: opacity 0.3s;
}

.header__tel:hover {
	opacity: 0.7;
}

.header__tel-icon {
	-o-object-fit: contain;
	height: 24px;
	object-fit: contain;
	width: 24px;
}

.header__hamburger {
	align-items: center;
	background: transparent;
	border: none;
	cursor: pointer;
	display: flex;
	height: 22px;
	justify-content: center;
	padding: 0;
	position: relative;
	width: 28px;
	z-index: 10000;
}

.header__hamburger span {
	background-color: #fff;
	border-radius: 2px;
	display: block;
	height: 1px;
	left: 50%;
	position: absolute;
	transform: translateX(-50%);
	transition: all 0.3s ease;
	width: 100%;
}

.header__hamburger span:nth-child(1) {
	top: 0;
}

.header__hamburger span:nth-child(2) {
	top: 50%;
	transform: translate(-50%, -50%);
}

.header__hamburger span:nth-child(3) {
	bottom: 0;
}

.header__hamburger.is-active span:nth-child(1) {
	background-color: #fff !important;
}

.header__hamburger.is-active span:nth-child(1) {
	top: 50%;
	transform: translate(-50%, -50%) rotate(45deg);
}

.header__hamburger.is-active span:nth-child(2) {
	opacity: 0;
}

.header__hamburger.is-active span:nth-child(3) {
	background-color: #fff !important;
}

.header__hamburger.is-active span:nth-child(3) {
	bottom: 50%;
	transform: translate(-50%, 50%) rotate(-45deg);
}

header.is-scrolled .header__hamburger:not(.is-active) span {
	background-color: #335dad !important;
}

.header__hamburger.is-active span:nth-child(1),
.header__hamburger.is-active span:nth-child(3) {
	background-color: #fff !important;
}

.header__nav {
	background-color: #335dad;
	height: 100vh;
	left: 0;
	max-width: 100%;
	opacity: 0;
	padding-left: 3rem;
	padding-left: var(--section-padding-x);
	padding-right: 3rem;
	padding-right: var(--section-padding-x);
	padding-top: 80px;
	position: fixed;
	top: 0;
	transition: opacity 0.3s ease, visibility 0.3s ease;
	visibility: hidden;
	width: 100%;
	z-index: 9999;
}

.header__nav.is-active {
	opacity: 1;
	visibility: visible;
}

.header__nav-list {
	display: flex;
	flex-direction: column;
	gap: 0;
	padding: 0;
	width: 100%;
}

.header__nav-item {
	border-bottom: 1px solid #fff;
}

.header__nav-item:last-child {
	border-bottom: none;
}

.header__nav-item a {
	-webkit-text-decoration: none;
	color: #fff;
	display: block;
	font-size: 18px;
	font-weight: 500;
	padding: 16px 0;
	text-decoration: none;
	transition: opacity 0.3s ease;
}

.header__nav-item a:hover {
	opacity: 0.7;
}

.header__nav-access {
	font-size: 18px;
	margin-top: 40px;
}

.header__nav-access-title {
	color: #fff;
	font-size: 25px;
	font-weight: 700;
	margin: 0;
}

.header__nav-access-text {
	color: #fff;
	font-size: 18px;
	font-weight: 500;
	letter-spacing: 0.095em;
	line-height: 1.6;
	line-height: 1.6;
	margin: 0;
}

.header__nav-copy {
	align-items: center;
	display: flex;
	font-size: 9px;
	font-weight: 500;
	justify-content: space-between;
	margin-top: 30px;
	padding: 0;
}

.header__nav-copy-text {
	color: #fff;
	margin: 0;
}

.header__nav-copy-icon {
	-o-object-fit: contain;
	flex-shrink: 0;
	object-fit: contain;
	width: 27px;
}

.header__overlay {
	background-color: rgba(0, 0, 0, 0.5);
	height: 100vh;
	left: 0;
	opacity: 0;
	position: fixed;
	top: 0;
	transition: all 0.3s ease;
	visibility: hidden;
	width: 100%;
	z-index: 999;
}

.header__overlay.is-active {
	opacity: 1;
	visibility: visible;
}

body.is-menu-open {
	overflow: hidden;
}

.inner {
	margin-left: auto;
	margin-right: auto;
	padding-left: 3rem;
	padding-left: var(--section-padding-x);
	padding-right: 3rem;
	padding-right: var(--section-padding-x);
	width: 100%;
}

.insight-area {
	position: relative;
	width: 100%;
}

.insight {
	background-color: #fff;
	color: #111;
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	padding: 260px 3rem 0px;
	padding: 260px var(--section-padding-x) 0px;
	position: relative;
	width: 100%;
	z-index: 2;
}

.insight__inner {
	margin-top: 30px;
	position: relative;
	z-index: 2;
}

h2.insight__title {
	font-size: 31px;
}

.section-header-text.insight__header-text {
	top: 25px;
	z-index: 50;
}

.insight__key-statement {
	color: #003599;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.9;
	margin: 0;
	margin-top: 45px;
}

.insight__marker {
	-webkit-box-decoration-break: clone; /* 1. グラデーション自体の定義（rgba でマーカーだけ薄く。文字は親の色のまま） */
	background-image: linear-gradient(90deg, rgba(30, 182, 183, 0.28) 0%, rgba(30, 156, 215, 0.28) 56%, rgba(0, 117, 190, 0.28) 86%, rgba(0, 91, 151, 0.28) 100%); /* 4. 位置の指定：左(0)から、下(100%)へ配置 */
	background-position: 0 100%; /* 2. 背景のリピートを防ぐ */
	background-repeat: no-repeat; /* 3. サイズの指定：横100%、縦40%（ここで太さを調整） */
	background-size: 100% 40%;
	box-decoration-break: clone; /* 改行時もマーカーが途切れないようにする魔法のプロパティ */
	display: inline;
	font-weight: 700;
	mix-blend-mode: multiply;
	padding: 0 4px;
}

.insight__paragraph {
	color: #333;
	font-size: 18px;
	font-weight: 500;
	line-height: 2;
	margin: 0;
	margin-top: 30px;
	position: relative;
	text-align: justify;
	z-index: 1;
}

.insight__section-title {
	color: #003599;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.85;
	margin: 0;
	margin-top: 58px;
}

.insight-bg-block {
	margin-bottom: -80px;
	margin-top: -160px;
	position: relative;
	width: 100%;
	z-index: 2;
}

.insight__background-image {
	-o-object-fit: contain;
	display: block;
	height: auto;
	margin: 0 auto 0 0;
	object-fit: contain;
	pointer-events: none;
	width: 250px;
}

.insight__bottom-image {
	-o-object-fit: contain;
	bottom: 0;
	height: auto;
	left: 0;
	object-fit: contain;
	pointer-events: none;
	position: absolute;
	width: auto;
	z-index: 1;
}

.insight__clinic-info {
	align-items: flex-end;
	color: #333;
	display: flex;
	flex-direction: column;
	font-size: 18px;
	font-weight: 500;
	gap: 16px;
	margin-top: 46px;
	position: relative;
	z-index: 10;
}

.insight__clinic-name {
	margin: 0;
}

.insight__director {
	margin: 0;
}

.main-title {
	color: #003599;
	font-size: 30px;
	font-weight: 700;
	letter-spacing: 2px;
	line-height: 1.4;
	margin: 0;
}

.main-title--white {
	color: #fff;
}

.pc-sidebar {
	display: none;
}

.main-wrapper {
	overflow-x: hidden;
	width: 100%;
}

.price {
	background: #335dad;
	color: #fff;
	display: flex;
	flex-direction: column;
	padding: 140px 3rem 160px;
	padding: 140px var(--section-padding-x) 160px;
	position: relative;
	width: 100%;
}

.price::before {
	-webkit-clip-path: polygon(100% 0, 100% 10.5%, 0% 0);
	background-color: #fff;
	clip-path: polygon(100% 0, 100% 10.5%, 0% 0);
	content: "";
	height: 100%;
	pointer-events: none;
	position: absolute;
	right: 0;
	top: -0.3px;
	width: 100%;
	z-index: 0;
}

.price::after {
	-webkit-clip-path: polygon(100% 100%, 100% 90%, 0 100%);
	background-color: #fff;
	bottom: -0.3px;
	clip-path: polygon(100% 100%, 100% 90%, 0 100%);
	content: "";
	height: 100%;
	pointer-events: none;
	position: absolute;
	right: 0;
	width: 100%;
	z-index: 0;
}

.section-header-text.price__header-text {
	top: -90px;
	z-index: 50;
}

.price__inner {
	display: flex;
	flex-direction: column;
	position: relative;
	z-index: 2;
}

.price__content-box {
	background-color: #fff;
	display: flex;
	flex-direction: column;
	margin-top: 32px;
	max-width: 276px;
	padding: 30px 27px 31px 3rem;
	padding: 30px 27px 31px var(--section-padding-x);
	width: 100%;
}

.price__item {
	display: flex;
	flex-direction: column;
}

.price__item-label {
	color: #111;
	font-size: 18px;
	font-weight: 700;
	letter-spacing: 0.06em;
	margin: 0;
}

.price__item-label-sub {
	font-size: 16px;
}

.price__item-value-wrapper {
	align-items: baseline;
	display: flex;
	justify-content: flex-end;
}

.price__item-value-wrapper--treatment {
	align-items: flex-end;
	flex-direction: column;
}

.price__item-value {
	color: #111;
	font-size: 30px;
	font-weight: 700;
	line-height: 1.4;
	margin: 0;
	text-align: right;
}

.price__item-value.--free {
	margin-top: 10px;
}

.price__item-value-number {
	color: #111;
	display: inline-block;
	font-family: "Jost", sans-serif;
	font-size: 37px;
	font-style: italic;
	font-weight: 500;
	letter-spacing: 2px;
	line-height: 1;
	margin: 0;
	margin-right: 5px;
}

.price__item-value--treatment {
	font-size: 21px;
}

.price__item-tax {
	color: #111;
	font-size: 14px;
	font-weight: 500;
	margin-left: 8px;
}

.price__item-value-wrapper--treatment .price__item-tax {
	font-size: 10px;
	margin-left: 0;
}

.price__item-divider {
	background-color: #335dad;
	height: 1px;
	margin: 20px 0;
	width: 100%;
}

.price__item-note {
	color: #335dad;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.6666666667;
	margin-top: 20px;
}

.price__notes {
	display: flex;
	flex-direction: column;
	gap: 5px;
	margin-top: 30px;
}

.price__note {
	color: #fff;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.6;
	margin: 0;
}

.section-decoration {
	overflow: visible;
	position: relative;
	width: 100%;
	z-index: 5;
}

.section-decoration__triangles {
	isolation: isolate;
	mix-blend-mode: multiply;
	opacity: 0.9;
	pointer-events: none;
	position: relative;
	width: 100%;
	z-index: 5;
}

.section-decoration__triangle::before {
	background: linear-gradient(90deg, rgba(30, 135, 120, 0.72) 0%, rgba(18, 90, 120, 0.6) 48%, rgba(3, 20, 40, 0.5) 100%);
	mix-blend-mode: multiply; /* 重ね合わせの透け具合を調整 */
}

.section-decoration__triangle {
	-o-object-fit: contain;
	height: auto;
	mix-blend-mode: multiply;
	object-fit: contain;
	overflow: hidden;
	position: absolute;
	width: auto;
	width: 100%;
	z-index: 4;
}

.section-decoration__triangle--left-top {
	right: -1px;
	top: -29px;
	width: 217px;
	z-index: 2;
}

.section-decoration__triangle--left-bottom {
	bottom: -60px;
	right: -0.4px;
	width: 382px;
}

.section-decoration__triangle--right-top {
	left: -5px;
	top: -20px;
	width: 202px;
}

.section-decoration__triangle--right-bottom {
	left: -2px;
	top: 130px;
	width: 90px;
}

.section-decoration__triangle--left-short {
	left: -12px;
	width: 168px;
}

.section-decoration__triangle--director2 {
	right: -1px;
	top: -15px;
	width: 216px;
	z-index: 2;
}

.section-decoration__triangle--director3 {
	left: -4px;
	top: -120px;
	width: 187px;
}

.section-decoration__triangle--left-bottom.--small {
	bottom: -10px;
	right: -1px;
	width: 150px;
	z-index: 30;
}

.section-decoration__triangle--left-bottom.--medical {
	bottom: -10px;
	right: 0;
	width: 151px;
	z-index: 30;
}

.section-decoration__triangle--left-bottom.--clinic-tour {
	bottom: -100px;
	right: -1px;
	width: 150px;
	z-index: 30;
}

.section-decoration__triangles.--appointment {
	left: calc(0px * -1);
	left: calc(var(--appointment-padding-x, 0px) * -1);
	position: absolute;
	width: calc(100% + 0px * 2);
	width: calc(100% + var(--appointment-padding-x, 0px) * 2);
}

.section-decoration__triangles.--appointment .section-decoration__triangle--right-top {
	left: -2px;
	top: 40px;
	width: 115px;
}

.section-decoration__triangles.--appointment .section-decoration__triangle--right-bottom {
	left: -2px;
	top: 120px;
	width: 50px;
}

.section-decoration__triangles.--voice {
	top: -70px;
}

.section-decoration__triangles.--price {
	top: -90px;
}

.section-header-text {
	position: absolute;
	right: 35px;
	top: 35px;
	width: 33px;
	z-index: 15;
}

.section-header-text img {
	-o-object-fit: contain;
	height: auto;
	object-fit: contain;
	width: auto;
}

.section-header-text--right-30 {
	right: 30px;
}

.section-header-text--width-33 {
	width: 33px;
}

.voice {
	background-color: #fff;
	color: #111;
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	padding: 200px 0 253px;
	position: relative;
	width: 100%;
}

.voice__title {
	padding: 0 3rem;
	padding: 0 var(--section-padding-x);
}

.voice__header-text {
	top: -30px;
}

.voice__inner {
	display: flex;
	flex-direction: column;
	position: relative;
	z-index: 2;
}

.voice__intro {
	color: #333;
	font-size: 18px;
	font-weight: 500;
	line-height: 2;
	margin: 20px 0 0 0;
	padding: 0 3rem;
	padding: 0 var(--section-padding-x);
	text-align: justify;
}

.voice__cards {
	display: flex;
	flex-direction: column;
	gap: 165px;
	margin-top: 137px;
}

.voice__card {
	position: relative;
}

.voice__card-image-wrapper {
	aspect-ratio: 295/198;
	left: 0;
	position: absolute;
	top: -80px;
	width: 295px;
}

.voice__card-image {
	-o-object-fit: cover;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.voice__card-overlay {
	align-items: center;
	border-radius: 50%;
	display: flex;
	flex-direction: column;
	gap: 3px;
	height: 90px;
	justify-content: center;
	padding: 2px;
	position: absolute;
	right: -40px;
	top: -40px;
	width: 90px;
	z-index: 1;
}

.voice__card-overlay::before {
	background: linear-gradient(90deg, rgba(30, 182, 183, 0.9) 0%, rgba(30, 156, 215, 0.9) 56%, rgba(0, 117, 190, 0.9) 86%, rgb(0, 91, 151) 100%);
	border-radius: 50%;
	bottom: 0;
	content: "";
	left: 0;
	mix-blend-mode: multiply;
	position: absolute;
	right: 0;
	top: 0;
	z-index: 0;
}

.voice__card-overlay-label {
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	margin: 0;
	position: relative;
	z-index: 1;
}

.voice__card-overlay-label-no {
	font-size: 9px;
}

.voice__card-overlay-number {
	color: #fff;
	font-family: "Jost", sans-serif;
	font-size: 25px;
	font-style: italic;
	font-weight: 500;
	letter-spacing: 2px;
	line-height: 1;
	margin: 0;
	position: relative;
	z-index: 1;
}

.voice__card-content {
	background-color: #eaf4fa;
	display: flex;
	flex-direction: column;
	gap: 16px;
	margin-left: 3rem;
	margin-left: var(--section-padding-x);
	padding: 145px 3rem 50px;
	padding: 145px var(--section-padding-x) 50px;
}

.voice__card-headline {
	color: #003599;
	display: inline-block;
	font-size: clamp(18px, 15px + 1vw, 23px);
	font-weight: 700;
	line-height: 1.8;
	margin: 0;
	width: 100%;
}

.voice__card-headline span {
	display: inline-block;
}

.voice__card-patient {
	color: #333;
	font-size: 16px;
	font-weight: 500;
	margin: 0;
}

.voice__card-divider {
	background-color: #335dad;
	height: 1px;
	margin: 8px 0;
	width: 100%;
}

.voice__card-text {
	color: #333;
	font-size: 18px;
	font-weight: 500;
	line-height: 1.8;
	margin: 0;
	text-align: justify;
}

@media screen and (min-width: 375px) and (max-width: 392px) {

.section-header-text.price__header-text {
	right: 20px;
}

}

@media screen and (min-width: 768px) {

.u-desktop {
	display: block;
}

.u-mobile {
	display: none;
}

html {
	font-size: 0.9090909091vw;
}

.director__profile > .director__info,
.director__profile > .director__image-wrapper {
	flex: 1 1 50%;
}

.director__image-wrapper {
	aspect-ratio: 1/1;
	height: auto;
	width: 100%;
}

.flow::before {
	-webkit-clip-path: polygon(100% 0, 100% 5%, 0% 0);
	clip-path: polygon(100% 0, 100% 5%, 0% 0);
	top: -1px;
}

.footer-btn {
	left: 0;
	margin-left: auto;
	margin-right: auto;
	max-width: 393px;
	right: 0;
	transform: none;
	width: 100%;
}

.fv {
	padding: 200px 3rem 50px;
	padding: 200px var(--section-padding-x) 50px;
}

.fv__background-image {
	max-width: 393px;
}

header {
	left: 0;
	margin-left: auto;
	margin-right: auto;
	max-width: 393px;
	right: 0;
	transform: none;
	width: 100%;
}

header.is-scrolled .header__inner {
	background-color: #fff !important;
}

header {
	z-index: 9998 !important;
}

header.is-scrolled .header__hamburger:not(.is-active) span {
	background-color: #335dad !important;
}

.header__hamburger {
	z-index: 10000 !important;
}

.header__right {
	z-index: 10000 !important;
}

.header__nav {
	z-index: 9999 !important;
}

.header__nav-list {
	margin: 0 auto;
	max-width: var(--phone-width);
	width: var(--phone-width);
}

.header__nav-access {
	margin-left: auto;
	margin-right: auto;
	max-width: var(--phone-width);
	width: var(--phone-width);
}

html {
	--phone-width: 393px;
	--phone-left: max(0px, calc((100% - var(--phone-width)) / 2));
	--sidebar-gap: 36px;
	--sidebar-left-width: 230px;
	--sidebar-right-width: 338px;
	min-height: 100vh;
	min-height: 100dvh;
	overflow-x: hidden;
	overscroll-behavior-y: none;
}

.pc-sidebar {
	display: flex;
}

body {
	margin: 0 !important;
	max-width: 100% !important;
	padding: 0 !important;
	width: 100% !important;
}

body {
	background: #003599;
	background-attachment: fixed;
	background-image: url("../images/photos/bg-pc.webp");
	background-position: left top;
	background-repeat: no-repeat;
	background-size: cover;
	box-sizing: border-box;
	isolation: isolate;
	min-height: 100vh;
	min-height: 100dvh;
	overflow-x: hidden;
	position: relative;
}

.main-wrapper {
	background-color: #fff;
	box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
	margin-left: auto;
	margin-right: auto;
	max-width: 393px;
	overflow: hidden;
	position: relative;
	width: 100%;
	z-index: 0;
}

.pc-sidebar--left {
	align-items: flex-start;
	display: flex;
	flex-direction: column;
	justify-content: center;
	left: calc(var(--phone-left) - var(--sidebar-gap) - var(--sidebar-left-width));
	max-height: calc(100vh - 48px);
	overflow: auto;
	padding: 24px 20px;
	position: fixed;
	top: 50%;
	transform: translateY(-50%);
	width: var(--sidebar-left-width);
	z-index: 1;
}

.pc-sidebar__logo {
	line-height: 0;
}

.pc-sidebar__logo a {
	display: block;
}

.pc-sidebar__logo-img {
	-o-object-fit: contain;
	display: block;
	height: auto;
	max-width: 190px;
	object-fit: contain;
	width: 100%;
}

.pc-sidebar__nav {
	margin-top: 40px;
	width: 100%;
}

.pc-sidebar__nav-list {
	display: flex;
	flex-direction: column;
	gap: 20px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.pc-sidebar__nav-item {
	text-align: left;
}

.pc-sidebar__nav-item a {
	-webkit-text-decoration: none;
	color: #fff;
	display: block;
	font-size: clamp(16px, 13px + 0.65vw, 21px);
	font-weight: 500;
	line-height: 1.6;
	text-decoration: none;
	transition: opacity 0.3s ease;
}

.pc-sidebar__nav-item a:hover {
	opacity: 0.7;
}

.pc-sidebar--right {
	align-items: flex-start;
	display: flex;
	justify-content: center;
	left: calc(var(--phone-left) + var(--phone-width) + var(--sidebar-gap));
	max-height: calc(100vh - 48px);
	max-width: 300px;
	overflow: auto;
	padding: 24px 0;
	position: fixed;
	top: 50%;
	transform: translateY(-50%);
	width: var(--sidebar-right-width);
	z-index: 1;
}

.pc-sidebar__reservation {
	display: flex;
	flex-direction: column;
	gap: 65px;
	max-width: 100%;
	width: 100%;
}

.pc-sidebar__reservation-item {
	-webkit-text-decoration: none;
	display: block;
	text-decoration: none;
	transition: background-color 0.3s ease;
}

.pc-sidebar__reservation-header {
	align-items: center;
	display: flex;
	gap: 15px;
	margin-bottom: 10px;
}

.pc-sidebar__reservation-icon {
	-o-object-fit: contain;
	flex-shrink: 0;
	height: 23px;
	object-fit: contain;
	width: 23px;
}

.pc-sidebar__reservation-item:first-child .pc-sidebar__reservation-icon {
	display: block;
	transform: rotate(-12deg);
	transform-origin: center;
}

.pc-sidebar__reservation-title {
	color: #fff;
	font-size: 23px;
	font-weight: 700;
	margin: 0;
}

.pc-sidebar__reservation-divider {
	background-color: #fff;
	height: 1px;
	margin: 10px 0;
	width: 100%;
}

.pc-sidebar__reservation-tel {
	color: #fff;
	font-family: "Jost", sans-serif;
	font-size: 32px;
	font-style: italic;
	font-weight: 500;
	letter-spacing: 2px;
	margin: 0;
	margin-top: 10px;
}

.pc-sidebar__reservation-time {
	color: #fff;
	font-family: "Jost", sans-serif;
	font-size: 19px;
	margin: 0;
	margin-top: 5px;
}

.pc-sidebar__reservation-time-note {
	font-size: 17px;
	margin-left: 5px;
}

.pc-sidebar__reservation-account {
	color: #fff;
	font-size: 18px;
	font-weight: 500;
	margin: 10px 0;
}

.pc-sidebar__reservation-qr {
	display: flex;
	margin-top: 20px;
}

.pc-sidebar__reservation-qr img {
	-o-object-fit: contain;
	height: auto;
	object-fit: contain;
	width: 120px;
}

}

@media (min-width: 768px) {

body {
	margin: 0 auto;
	max-width: 375px;
}

}

@media screen and (min-width: 768px) and (max-width: 1024px) {

.director__image-wrapper {
	justify-content: center;
}

}

@media screen and (min-width: 768px) and (min-width: 1024px) {

html {
	--sidebar-gap: 72px;
	--sidebar-right-width: 326px;
}

}

@media screen and (min-width: 768px) and (max-width: 1023px) {

.pc-sidebar--left,
.pc-sidebar--right {
	display: none;
}

}

@media screen and (min-width: 768px) and (hover: none) and (pointer: coarse) {

body {
	background-attachment: scroll;
}

}

@media screen and (min-width: 768px) and (hover: none) and (pointer: coarse) and (min-width: 768px) {

body {
	background-image: none;
}

body::before {
	background-image: url("../images/photos/bg-pc.webp");
	background-position: left top;
	background-repeat: no-repeat;
	background-size: cover;
	bottom: 0;
	content: "";
	left: 0;
	position: fixed;
	right: 0;
	top: 0;
	z-index: -1;
}

}

@media screen and (min-width: 768px) and (max-width: 1182px) {

.pc-sidebar--right {
	box-sizing: border-box;
	left: calc(var(--phone-left) + var(--phone-width) + var(--sidebar-gap));
	width: min(var(--sidebar-right-width), 100vw - var(--phone-left) - var(--phone-width) - var(--sidebar-gap) - 20px);
}

.pc-sidebar__reservation {
	box-sizing: border-box;
	gap: 40px;
	max-width: 100%;
	min-width: 0;
	padding-right: 4px;
	width: 100%;
}

.pc-sidebar__reservation-item {
	min-width: 0;
}

.pc-sidebar__reservation-header {
	flex-wrap: nowrap;
	gap: 10px;
	margin-bottom: 6px;
	min-width: 0;
}

.pc-sidebar__reservation-icon {
	height: 24px;
	width: 24px;
}

.pc-sidebar__reservation-title {
	font-size: 20px;
	white-space: nowrap;
}

.pc-sidebar__reservation-tel {
	font-size: 26px;
	letter-spacing: 1px;
	white-space: nowrap;
}

.pc-sidebar__reservation-time {
	font-size: 17px;
	white-space: nowrap;
}

.pc-sidebar__reservation-time-note {
	font-size: 13px;
	white-space: nowrap;
}

.pc-sidebar__reservation-account {
	font-size: 15px;
	white-space: nowrap;
}

.pc-sidebar__reservation-qr img {
	width: 92px;
}

}

@media screen and (min-width: 768px) and (min-width: 1025px) and (max-width: 1182px) {

.pc-sidebar__reservation {
	gap: 56px;
}

.pc-sidebar__reservation-title {
	font-size: 21px;
}

.pc-sidebar__reservation-tel {
	font-size: 27px;
}

.pc-sidebar__reservation-time {
	font-size: 17px;
}

.pc-sidebar__reservation-time-note {
	font-size: 15px;
}

.pc-sidebar__reservation-account {
	font-size: 16px;
}

.pc-sidebar__reservation-qr img {
	width: 110px;
}

}

@media (min-width: 1100px) {

html {
	font-size: 10px;
}

}

@media screen and (max-width: 915px) {

.fv__inner {
	margin-top: 180px;
}

.fv__badges {
	margin-left: -25px;
}

}

@media screen and (max-width: 767px) {

.fv__badges {
	margin-left: -30px;
}

}

@media (max-width: 375px) {

html {
	font-size: 2.6666666667vw;
}

}


/*# sourceMappingURL=style.css.map */
