/*--------------------------------
General
--------------------------------*/

html, body {
	width: 100%;
	max-width: 100%;
}
body {
	padding-top: 99px;
}

:root {
	--tp-color-brown: #351604;
	--tp-color-green: #345e4c;
	--tp-color-accent: #84b128;
	--tp-color-orange: #F39C12;
	--tp-font-script: "Allura", cursive, serif;
	--tp-font-serif: "Times New Roman", Times, serif;
	--tp-transition-fast: 0.32s ease;

	--safe-bottom: env(safe-area-inset-bottom, 0px);
}

/*--------------------------------
Utility
--------------------------------*/

a.hover-v2:link {
	transition: 0.4s;
}
a.hover-v2:hover,
a.hover-v2:active {
	opacity: 0.7;
}
/* for screen reader */
.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
.ft-bold {
	font-weight: bold !important;
}

/*--------------------------------
Component
--------------------------------*/

.btn-reserve {
	--btn-reserve-width: auto;
	--btn-reserve-height: 100%;
	--btn-reserve-padding-inline: 15px;
	--btn-reserve-gap: 0;
	--btn-reserve-label-second-margin: 0;
	--btn-reserve-shadow: none;
	--btn-reserve-label-first-size: 14px;
	--btn-reserve-label-second-size: 16px;
	--btn-reserve-label-first-gap: 4px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	line-height: 1;
	width: var(--btn-reserve-width);
	height: var(--btn-reserve-height);
	padding-inline: var(--btn-reserve-padding-inline);
	gap: var(--btn-reserve-gap);
	box-shadow: var(--btn-reserve-shadow);
	background-color: var(--tp-color-orange);
}
.btn-reserve .label-first {
	color: #fff;
	font-weight: bold;
	font-size: var(--btn-reserve-label-first-size);
	display: inline-flex;
	align-items: center;
	gap: var(--btn-reserve-label-first-gap);
}
.btn-reserve .label-second {
	color: #fff;
	font-weight: bold;
	font-size: var(--btn-reserve-label-second-size);
	margin-bottom: var(--btn-reserve-label-second-margin);
}
.btn-reserve .label-square {
	display: grid;
	grid-template-columns: auto auto;
	grid-template-rows: auto auto;
	column-gap: 0;
	row-gap: 0;
	align-items: center;
	justify-items: center;
	width: 34px;
	height: 34px;
	color: #fff;
	font-weight: bold;
	border: 1px solid #F5F5F5;
	--label-square-baseline-offset: 1px;
	--label-square-top-offset: -1px;
}
.label-square .num {
	grid-row: 1;
	grid-column: 1;
	align-self: baseline;
	justify-self: end;
	font-size: 13px;
	transform: translateY(var(--label-square-baseline-offset));
}
.label-square .unit {
	grid-row: 1;
	grid-column: 2;
	align-self: baseline;
	justify-self: start;
	font-size: 12px;
	transform: translateY(var(--label-square-baseline-offset));
}
.label-square .word {
	grid-row: 2;
	grid-column: 1 / 3;
	align-self: start;
	font-size: 13px;
	transform: translateY(var(--label-square-top-offset));
}

.btn-reserve--horizontal {
	display: grid;
	grid-template-columns: 1fr auto;
	grid-template-rows: auto auto;
	column-gap: 12px;
	row-gap: 8px;
	align-items: center;
}
.btn-reserve--nav {
	--btn-reserve-gap: 5px;
	--btn-reserve-label-second-margin: 5px;
}
.btn-reserve--wide {
	--btn-reserve-width: 290px;
	--btn-reserve-height: 73px;
	--btn-reserve-padding-inline: 35px 16px;
	--btn-reserve-shadow: 0px 1px 12px rgba(0, 0, 0, 0.25);
}
.btn-reserve--bottom {
	display: grid;
	grid-template-columns: auto 1fr;
	grid-template-rows: auto auto;
	column-gap: 7px;
	row-gap: 2px;
	align-items: center;
	justify-items: start;
	--btn-reserve-width: 100%;
	--btn-reserve-padding-inline: 8px;
	--btn-reserve-label-second-size: clamp(14px, 4vw, 16px);
	background: transparent; /* 背景は親で指定 */
}
.btn-reserve--bottom .label-square {
	grid-column: 1;
	grid-row: 1 / span 2;
	align-self: center;
}
.btn-reserve--bottom .label-first {
	grid-column: 2;
	grid-row: 1;
	align-self: end;
	text-align: left;
	--btn-reserve-label-first-size: 12px;
}
.btn-reserve--bottom .label-second {
	grid-column: 2;
	grid-row: 2;
	align-self: start;
	text-align: left;
}
.btn-reserve--horizontal .label-first {
	--btn-reserve-label-first-gap: 2px;
	grid-column: 1;
	grid-row: 1;
	align-self: end;
	justify-self: start;
	text-align: left;
}
.btn-reserve--horizontal .label-second {
	grid-column: 1;
	grid-row: 2;
	align-self: start;
	justify-self: start;
	text-align: left;
}
.btn-reserve--horizontal > svg:last-of-type {
	grid-column: 2;
	grid-row: 1 / span 2;
	align-self: center;
}

.nav-call {
	--nav-call-gap: 3px;
	--nav-call-label-color: #501313;
	--nav-call-width: auto;
	--nav-call-height: 100%;
	--nav-call-label-size: 16px;
	--nav-call-num-width: 159px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	line-height: 1;
	width: var(--nav-call-width);
	height: var(--nav-call-height);
	gap: var(--nav-call-gap);
}
.nav-call:active,
.nav-call:hover {
	opacity: unset;
}
.nav-call__label {
	color: var(--nav-call-label-color);
	font-weight: bold;
	font-size: var(--nav-call-label-size);
	white-space: nowrap;
}
.nav-call__num {
	width: var(--nav-call-num-width);
}

/*--------------------------------
Header ヘッダー（スクロール追従）
--------------------------------*/
.tp-header {
	background: #fff;
}
.tp-header__bar {
	position: fixed;
	top: 0;
	right: 0;
	left: 0;
	z-index: 20;
	display: flex;
	align-items: stretch;
	justify-content: space-between;
	height: 99px;
	background: #fff;
	transition: height 0.3s ease, box-shadow 0.3s ease;
}
.tp-header__logo {
	display: flex;
	flex-direction: column;
	padding-block: 5px;
	padding-left: 3%;
	transition: padding 0.3s ease;
}
.tp-header__title {
	transition: opacity 0.18s ease-in, max-height 0.28s ease, margin 0.28s ease-in-out;
	max-height: 48px;
	overflow: hidden;
	line-height: 2.5;
	font-weight: 400;
	font-size: 14px;
	white-space: nowrap;
}
.tp-header__logo-link {
	display: inline-flex;
	align-self: flex-start;
	width: auto;
	max-width: 100%;
	transition: transform 0.18s ease-out;
	will-change: transform;
}
.tp-header__logo-img {
	display: block;
	width: 318px;
	padding: 5px;
	transform-origin: left center;
	transition: transform 0.18s ease-out;
	will-change: transform;
}

/*--------------------------------
Global Navigation ヘッダー内グローバルナビ
--------------------------------*/
.tp-globalnav {
	position: static;
	display: flex;
	flex: 1 1 auto;
	transition: padding 0.3s ease, height 0.3s ease;
	align-items: center;
	width: auto;
	height: 100%;
}
.tp-globalnav__list {
	width: 100%;
	height: 100%;
	display: flex;
	justify-content: end;
	gap: 0 31px;
}
.tp-globalnav__item {
	position: relative;
	text-align: center;
}
.tp-globalnav__item--services {
	position: static;
}
.tp-globalnav__subgroup {
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	display: flex;
	align-items: stretch;
	width: 100%;
	padding: 22px 50px;
	background-color: #EAF0DD;
	background-image: var(--tp-globalnav-bg-image, url("/common/img/bg_globalnav_megamenu.webp"));
	background-repeat: no-repeat;
	background-size: auto 100%;
	background-position: left center;
	box-shadow: 0px 4px 20px rgba(0, 0, 0, 0.09);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateY(-10px);
	transition: opacity var(--tp-transition-fast), transform var(--tp-transition-fast), visibility var(--tp-transition-fast);
	z-index: 25;
	will-change: transform, opacity;
}
.tp-globalnav__item--services.is-open .tp-globalnav__subgroup {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateY(0);
}
.tp-globalnav__subgroup > * {
	position: relative;
	z-index: 1;
}
.tp-globalnav__subtitle {
	display: flex;
	flex: 1 1 0;
	flex-direction: column-reverse;
	align-items: center;
	justify-content: center;
	text-align: center;
}
.tp-globalnav__subtitle-jp {
	color: #501313;
	font-weight: bold;
	font-size: 34px;
}
.tp-globalnav__subtitle-en {
	color: #501313;
	font-size: 20px;
	font-family: var(--tp-font-script);
}
.tp-globalnav__submenu.services_boxes {
	flex: 0 0 987px;
	width: 987px;
	margin: 0;
}

.tp-globalnav__reserve {
	flex: 0 0 auto;
	transition: opacity var(--tp-transition-fast), width var(--tp-transition-fast), max-width var(--tp-transition-fast), margin var(--tp-transition-fast), padding var(--tp-transition-fast);
	transform-origin: right center;
	max-width: 999px;
	width: auto;
	margin-left: 33px;
}
.tp-globalnav__btn {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	line-height: 1;
	height: 100%;
	gap: 3px;
}
.tp-globalnav__btn:active,
.tp-globalnav__btn:hover {
	opacity: unset;
	cursor: pointer;
}
.tp-globalnav__btn:active .tp-globalnav__label,
.tp-globalnav__btn:hover .tp-globalnav__label {
	color: var(--tp-color-green);
}
.tp-services-btn svg {
	transition: transform var(--tp-transition-fast);
	transform-origin: center;
}
.tp-services-btn:hover svg,
.tp-services-btn:focus-visible svg,
.tp-globalnav__item--services.is-open .tp-services-btn svg {
	transform: rotate(-180deg);
}
.tp-globalnav__label {
	color: #501313;
	font-weight: bold;
	font-size: 16px;
	white-space: nowrap;
}
.tp-globalnav__en {
	color: var(--tp-color-accent);
	font-size: 18px;
	font-family: var(--tp-font-script);
}


/* グローバルヘッダー内のweb予約ボタン調整 */
.tp-globalnav__reserve-wrap {
	position: relative;
	height: 100%;
	transition: transform var(--tp-transition-fast), opacity var(--tp-transition-fast);
}
.tp-globalnav__reserve-badge:before {
	content: "";
	position: absolute;
	display: block;
	width: 54px;
	height: 54px;
	background-color: #786459;
	border-radius: 50%;
	z-index: 1;
	transition: transform var(--tp-transition-fast), opacity var(--tp-transition-fast);
}
.tp-globalnav__reserve-badge {
	position: absolute;
	top: 14px;
	left: -32px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	line-height: 1;
	color: #fff;
	font-weight: bold;
	font-size: 12px;
	z-index: 2;
	transition: transform var(--tp-transition-fast), opacity var(--tp-transition-fast);
}
.tp-globalnav__reserve-badge .num {
	font-size: 16px;
}
.tp-globalnav__reserve-badge > span {
	position: relative;
	z-index: 2;
}
.tp-hide-sp {
	display: block;
}
.tp-header.is-shrunk .tp-header__title {
	opacity: 0;
	max-height: 0;
	margin: 0;
}
.tp-header.is-shrunk .tp-header__bar {
	height: 80px;
	box-shadow: 0 10px 26px rgba(0, 0, 0, 0.12);
}
.tp-header.is-shrunk .tp-header__logo {
	justify-content: center;
}
.tp-header.is-shrunk .tp-header__logo-link {
	transform: translate3d(0, -2px, 0);
}

/* グローバルメニュー内、セカンダリのメガメニュー */
.tp-globalnav .services_boxes {
	display: grid;
	grid-template-columns: repeat(6, 142px);
	grid-template-rows: repeat(2, 142px);
	grid-auto-rows: 142px;
	column-gap: 27px;
	row-gap: 11px;
	justify-content: center;
	width: unset;
	margin: unset;
	filter: drop-shadow(0px 4px 10px rgba(0, 0, 0, 0.2));
}
.tp-globalnav .services_box {
	width: 142px;
	height: 142px;
	margin: 0;
	padding: 0;
}
.tp-globalnav .services_name {
	font-size: 15px !important;
}
.tp-globalnav .services_box--implant-case .services_name {
	font-size: 14px !important;
}


/*--------------------------------
Main Visual / the First Visual
--------------------------------*/
.mainvisual {
	margin-top: unset !important; /* override */
}
.mainvisual .icon-scroll {
	position: absolute;
	left: 50%;
	bottom: -26px;
	transform: translateX(-50%);
}

/*--------------------------------
Fixed Banner 固定バナー
--------------------------------*/

/* PC専用・左固定 */
.banner-fixed-side {
	position: fixed;
	top: 50%;
	left: 0;
	z-index: 20;
	transform: translateY(-50%);
}
.banner-fixed-side li:not(:first-child) {
	margin-top: 13px;
}
.banner-portrait {
	display: flex;
	align-items: center;
	gap: 5px;
  	width: 44px;
	padding-inline: 14px;
	font-weight: bold;
	writing-mode: vertical-rl;
	box-shadow: 0 0 10px rgba(0,0,0,.3);
}
.banner-portrait.campaign {
	color: #5E4231;
	background-color: #A5D349;
}
.banner-portrait.exam {
	color: #fff;
	background-color: #45A6DE;
}

/* SP専用・下部固定 */
.banner-fixed-bottom {
	position: fixed;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 20;
	display: flex;
	align-items: stretch;
	padding-bottom: var(--safe-bottom);
	background: transparent;
}
.banner-fixed-bottom > li {
	flex: 1;
	position: relative;
	display: flex;
    height: max(50px, 9vh);

	/* default */
	--cell-bg: #fff;
	background: var(--cell-bg);
}
.banner-fixed-bottom li:has(> a.btn-reserve) {
	--cell-bg: var(--tp-color-orange);
}
/* safe-bottom 分の高さを増やす */
.banner-fixed-bottom > li::after{
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: calc(-1 * var(--safe-bottom, 0px));
	height: var(--safe-bottom, 0px);
	background: var(--cell-bg);
	pointer-events: none;
}
.banner-fixed-bottom > li > a {
	width: 100%;
	height: 100%;
}
.banner-fixed-bottom .nav-call {
	--nav-call-width: 100%;
	--nav-call-label-size: 12px;
	background: transparent;
}
.banner-fixed-bottom .nav-call__num {
	--nav-call-num-width: min(159px, 85%);
}

/*--------------------------------
RESERVATION 予約
--------------------------------*/
.tp-reserve {
	position: relative;
	padding-block: 88px;
	background-color: #ecf3de;
}
.tp-reserve__decoration {
	position: absolute;
	right: 3px;
	bottom: -27px;
	width: min(75%, 380px);
	max-width: 100%;
	overflow: hidden;
}
.tp-reserve__decoration img {
	width: 100%;
	rotate: 15deg;
}
.tp-reserve__inner {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 50px 45px;
	max-width: 1013px;
	margin-inline: auto;
}
.tp-reserve__head,
.tp-reserve__actions {
	grid-column: 1 / -1;
}
.tp-reserve__head {
	position: relative;
	display: flex;
	flex-direction: column-reverse;
	align-items: center;
	color: var(--tp-color-green);
}
.tp-reserve__title-jp {
	font-size: 30px;
}
.tp-reserve__title-en {
	font-family: var(--tp-font-serif);
	font-weight: bold;
	font-size: 65px;
}
.tp-reserve__leaf {
	position: absolute;
	right: 80px;
	bottom: -29px;
}
.tp-reserve__actions {
	display: flex;
	justify-content: center;
	align-items: center;
	column-gap: 105px;
	padding-block: 50px 40px;
	background-color: #fff;
}
.tp-reserve__tel,
.tp-reserve__web {
	text-align: center;
}
.tp-reserve__tel .nav-call__label {
	--nav-call-label-size: 20px;
}
.tp-reserve__tel .nav-call__num {
	--nav-call-num-width: 297px;
}
.tp-reserve__web-label {
	margin-bottom: 4px;
	color: var(--tp-color-brown);
	font-weight: bold;
	font-size: 19px;
}
.tp-reserve__web-label span {
	font-size: 25px;
}
.tp-reserve__subtitle {
	margin-bottom: 27px;
	padding-left: 20px;
	border-left: 6px solid var(--tp-color-brown);
	color: var(--tp-color-brown);
	font-size: 30px;
}

/* 診察時間表 */
.table-hours {
	width: 100%;
	background-color: #fff;
}
.table-hours tr th:first-child {
	width: 1%;
	padding-inline: 25px 16px;
	text-align: left;
	white-space: nowrap;
}
.table-hours th,
.table-hours td {
	padding: 18px 0;
	border: 1px solid #9ea6af;
	text-align: center;
	vertical-align: middle;
	color: #333;
}
.table-hours thead th {
	font-size: 20px;
}
.table-hours tbody th {
	font-size: 18px;
}
.table-hours tbody td {
	color: #5E4231;
}
/* 状態を変える場合はこれらの属性を使う
.table-hours [data-status="reserve"] {}
.table-hours [data-status="sat-special"] {}
.table-hours [data-status="sun-limited"] {}
.table-hours [data-status="closed"] {} */

.table-hours__notes {
	margin-top: 20px;
}
.table-hours__notes p:not(:first-child) {
	margin-top: 10px;
}
.table-hours__closed {
	color: #bc1a3a;
	font-weight: bold;
}

/* アクセス情報 */
.tp-reserve__row {
	display: flex;
	align-items: center;
	column-gap: 7px;
}
.tp-reserve__row-text {
	color: var(--tp-color-brown);
	font-size: 18px;
}
.tp-reserve__btn,
.tp-reserve__btn .front_link_btn {
	width: 100%;
}
.tp-reserve__btn .front_link_btn {
	margin: unset;
}
.tp-reserve__row:not(:first-of-type),
.tp-reserve__btn {
	margin-top: 18px;
}

/*--------------------------------
POLICY 当院の特徴
--------------------------------*/
.features_ttl {
	padding-top: 160px;
	text-align: center;
	position: relative;
}
.leaf01 {
	position: absolute;
	top: 65px;
	right: 50%;
	transform: translate(-41%, 0px);
}
.policies_wrap {
	display: flex;
	justify-content: center;
	margin: 30px auto;
	flex-wrap: wrap;
	justify-items: center;
	align-items: flex-end;
}
.policies_wrap img {
	padding: 0px 50px;
}
.features_catch {
	text-align: center;
	margin-bottom: 100px;
}
.features_catch .txt01 {
	margin-top: 50px;
}
.features_catch .txt02 {
	margin-top: 23px;
}
.features_catch .txt02 .strong {
	font-size: 30px;
	color: var(--tp-color-accent);
	font-weight: 500;
}

.f_box_nav {
	position: -webkit-sticky;
	position: sticky;
	top: 99px;
	right: 0;
	bottom: 0;
	display: flex;
	justify-content: center;
	width: 6.7%;
}
.f_box_nav img {
	margin: 0 auto;
}
.f_box_nav li {
	margin: 0 0 21px;
}
.f_box_nav li:first-child {
	margin: 0 0 24px;
}
.f_box_nav a {
	font-family: "Cormorant Garamond", serif;
	font-weight: 500;
	font-style: normal;
	color: var(--tp-color-brown);
	width: 27px;
	height: 27px;
	display: block;
	transition: 0.3s ease-out;
	text-align: center;
	border-radius: 50%;
}
.f_box_nav a.current {
	background: var(--tp-color-brown);
	color: #fff;
}

.features_main {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
}
.features_main_scroll {
	position: relative;
	left: 50%;
	background: #fff;
	max-width: 1013px;
	transform: translateX(-50%);
	flex: 0 0 auto;
}
.features_main_scroll::-webkit-scrollbar {
	display: none;
}
.features_subttl_jp {
	color: var(--tp-color-green);
	font-size: 24px;
}
.features_main_item {
	display: grid;
	grid-template-columns: 411px 1fr;
	grid-template-rows: auto auto;
  	row-gap: 28px;
	column-gap: 23px;
	padding-block: 96px;
	border-top: dotted 1px #59493f;
	scroll-margin-top: 80px;
}
.features_main_item#s01 {
	scroll-margin-top: 100px;
}
.features_main_item:first-of-type {
	border-top: unset;
	padding-top: unset;
}
.features_main_item:last-of-type {
	padding-bottom: unset;
}
.features_main_head {
	grid-column: 1 / -1;
	grid-row: 1;
	padding-left: 26px;
	border-left: 6px solid #3A7B5F;
	text-align: left;
}
.features_main_img {
	grid-column: 1;
	grid-row: 2;
}
.features_main_txt {
	grid-column: 2;
	grid-row: 2;
	align-self: center;
}

/* for laptops */
@media screen and (min-width:897px) and (max-width:1280px){
	.tp-header__logo {
		padding-left: clamp(1vw, 2vw, 3%);
	}
	.tp-header__title {
		font-size: clamp(10px, calc(5.32px + 0.522vw), 12px);
	}
	.tp-header__logo-img {
		width: clamp(240px, calc(57.3px + 20.37vw), 318px);
	}
	.tp-globalnav__list {
		column-gap: clamp(13.5px, calc(-27.6px + 4.58vw), 31px);
	}
	.tp-globalnav__label {
		font-size: clamp(13px, calc(6.0px + 0.78vw), 16px);
	}
	.tp-globalnav__en {
		font-size: clamp(13px, calc(1.3px + 1.31vw), 18px);
	}
	.nav-call__label {
		--nav-call-label-size: clamp(12px, calc(0.6px + 1.04vw), 16px);
	}
	.nav-call__num {
		--nav-call-num-width: clamp(130px, calc(62px + 7.58vw), 159px);
	}
	.tp-globalnav__reserve {
		margin-left: clamp(18px, calc(-17.3px + 3.93vw), 33px);
	}
	.btn-reserve--nav {
		--btn-reserve-padding-inline: clamp(9px, calc(-5.2px + 1.58vw), 15px);
		--btn-reserve-label-first-size: clamp(12px, calc(7.3px + 0.52vw), 14px);
		--btn-reserve-label-second-size: clamp(14px, calc(9.3px + 0.52vw), 16px);
	}
	.tp-globalnav__reserve-badge {
		font-size: clamp(10px, calc(5.3px + 0.52vw), 12px);
	}
	.tp-globalnav__reserve-badge:before {
		width:  clamp(44px, calc(20.6px + 2.61vw), 54px);
		height: clamp(44px, calc(20.6px + 2.61vw), 54px);
	}
	.tp-globalnav__reserve-badge .num {
		font-size: clamp(14px, calc(9.3px + 0.52vw), 16px);
	}
	.tp-globalnav .services_boxes {
		--box: clamp(120px, calc(51.5px + 7.63vw), 142px);
		grid-template-columns: repeat(6, var(--box));
		grid-template-rows: repeat(2, var(--box));
		grid-auto-rows: var(--box);
		column-gap: clamp(16px, calc(-5.4px + 2.39vw), 27px);
		row-gap:    clamp(8px,  calc(1.1px + 0.77vw), 11px);
	}
	.tp-globalnav .services_name {
		font-size: clamp(13px, calc(7.8px + 0.58vw), 15px);
	}
	.tp-globalnav .services_box--implant-case .services_name {
		font-size: clamp(12px, calc(6.6px + 0.58vw), 14px);
	}
	.tp-globalnav__subtitle-jp {
		font-size: clamp(26px, calc(12.4px + 1.51vw), 34px);
	}
	.tp-globalnav__subtitle-en {
		font-size: clamp(16px, calc(8.6px + 0.83vw), 20px);
	}
}

/* for tablets */
@media screen and (max-width:896px) {
	/*--------------------------------
	General
	--------------------------------*/
	body {
		padding-top: unset;
	}

	/*--------------------------------
	Header
	--------------------------------*/
	.tp-header__bar {
		position: static;
		height: auto;
		padding: unset;
		box-shadow: unset;
	}
	.tp-header__logo {
		width: 50%;
		padding: 20px 3%;
	}
	.tp-header__logo-img {
		width: auto;
		padding: unset;
	}
	.tp-hide-sp {
		display: none !important;
	}

	/*--------------------------------
	RESERVATION 予約
	--------------------------------*/
	.tp-reserve__inner {
		grid-template-columns: 1fr;
		padding-inline: 3vw; /* ハンバーガーメニューの位置とちょうど合うサイズ */
	}
	.tp-reserve__leaf {
		width: 30vw;
		right: -3vw;
	}
	.tp-reserve__actions {
		flex-direction: column;
		row-gap: 30px;
	}

	/*--------------------------------
	POLICY 当院の特徴
	--------------------------------*/
	.features_ttl {
		padding-top: 30%;
	}
	.features_main {
		width: 93.3%;
	}
	.features_catch .txt02 {
		margin-top: 23px;
		text-align: left;
		padding: 0 3%;
	}
	.features_main {
		margin-block: 96px;
	}
	.features_main_item {
		grid-template-columns: 1fr;
		grid-template-rows: 1fr;
		gap: 0;
	}
	.features_main_head {
		grid-column: 1;
		margin-bottom: 2em;
	}
	.features_main_txt {
		grid-column: 1;
		grid-row: 3;
	}
}
/* for small screens */
@media screen and (max-width:480px){
	/*--------------------------------
	Header
	--------------------------------*/
	.tp-header__logo {
		width: auto;
		padding: unset;
	}
	.tp-header__logo-img {
        width: calc(100% - 50px);
		padding: 16px 3% 16px 3%;
	}

	.btn-reserve--wide {
		--btn-reserve-width: 75vw;
	}

	/*--------------------------------
	RESERVATION 予約
	--------------------------------*/
	.tp-reserve__title-en {
		font-size: 40px;
	}
	.table-hours tr th:first-child {
		padding-inline: 8px;
	}
	.table-hours th, .table-hours td {
		padding: 10px 0;
	}

	/*--------------------------------
	POLICY 当院の特徴
	--------------------------------*/

	.leaf01 {
		top: -15%;
		right: 50%;
		-webkit-transform: translate(-50%, 0px);
		transform: translate(-50%, 0px);
		width: 45%;
	}
	.features_ttl .ttl_en {
		width: 225px;
	}
	.features_subttl_jp {
		color: var(--tp-color-green);
		font-size: 5vw;
		line-height: 1.3em;
		margin-top: 2vw;
		display: block;
	}
	.features_catch .txt01 {
		margin-top: 25px;
		font-size: 22px;
		text-align: left;
		padding: 0 3%;
	}
	.policies_wrap {
		padding: 0 7% 0 0;
	}
	.policies_wrap img {
		padding: 7px;
		width: 33%;
	}
	.features_main {
		width: 100%;
		margin-block: 40px 80px;
		padding-left: unset;
	}
	.features_main_scroll {
		max-width: 100%;
	}
	.features_main_item {
		padding-block: 35px;
	}
	.features_txt {
		margin-bottom: 5px;
	}
}
