@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Shippori+Mincho&display=swap');

html,
body {
	line-height: 1.5;
	font-size: 16px;
	font-weight: 500;
	letter-spacing: .025em
}

body {
	position: relative;
	font-size: 1rem;
	font-family: "Noto Sans JP", sans-serif;
	color: var(--clr_blk);
}

img {
	-webkit-backface-visibility: hidden;
}

/*
 * Remove text-shadow in selection highlight:
 * https://twitter.com/miketaylr/status/12228805301
 *
 * Customize the background color to match your design.
 */

::-moz-selection {
	background: #b3d4fc;
	text-shadow: none;
}

::selection {
	background: #b3d4fc;
	text-shadow: none;
}

/*
 * A better looking default horizontal rule
 */

hr {
	display: block;
	height: 1px;
	border: 0;
	border-top: 1px solid #ccc;
	margin: 1em 0;
	padding: 0;
}

/*
 * Remove the gap between audio, canvas, iframes,
 * images, videos and the bottom of their containers:
 * https://github.com/h5bp/html5-boilerplate/issues/440
 */

audio,
canvas,
iframe,
img,
svg,
video {
	vertical-align: middle;
}

/*
 * Remove default fieldset styles.
 */

fieldset {
	border: 0;
	margin: 0;
	padding: 0;
}

/*
 * Allow only vertical resizing of textareas.
 */

textarea {
	resize: vertical;
}

/* ==========================================================================
   Commons styles
   ========================================================================== */
a {
	text-decoration: none;
	color: inherit
}

a:focus,
*:focus {
	outline: none;
}

a[href^="tel:"] {
	pointer-events: none;
	cursor: text;
}

img {
	border: 0px;
}

dd {
	margin: 0
}

p,
h1,
h2,
h3,
h4,
h5 {
	margin: 0;
	padding: 0
}

figure {
	margin: 0;
	padding: 0
}

ul,
li,
dl,
ol {
	margin: 0;
	padding: 0;
	list-style: none
}

.b {
	font-weight: bold
}

.fw_n {
	font-weight: normal
}

.tx_und {
	text-decoration: underline
}

.tx_cent {
	text-align: center
}

.tx_right {
	text-align: right
}

.tx_left {
	text-align: left !important
}

.disp_blk {
	display: block
}

.disp_inl_b {
	display: inline-block !important
}

.marker_tp_1 {
	background: rgba(0, 0, 0, 0) linear-gradient(transparent 65%, #f5f20b 0%) repeat scroll 0 0;
}

.fc_wht {
	color: var(--clr_wht)
}

.fc_blk {
	color: var(--clr_blk)
}

.fc_blue {
	color: var(--clr_blue)
}

.gld_1 {
	background: #29ABE2;
	background: linear-gradient(90deg, rgba(41, 171, 226, 1) 0%, rgba(17, 137, 204, 1) 29%, rgba(0, 113, 188, 1) 100%);
}

.bg_clr_wht {
	background-color: var(--clr_wht)
}

.bg_clr_blk {
	background-color: var(--clr_blk)
}

/*-------------------------------------
色設定
--------------------------------------*/
:root {
	--clr_wht: #FFF;
	--clr_blk: #000;
	--clr_blue: #0071bc;
	--clr_blue2: #2b62a0;

}

.ff_min {
	font-family: "Shippori Mincho", serif;
}

.txs_12 {
	font-size: 12px;
}

.txs_13 {
	font-size: 13px;
}

.txs_14 {
	font-size: 14px;
}

.txs_16 {
	font-size: 16px;
}

.txs_17 {
	font-size: clamp(15px, 1.42vw, 17px);
}

.txs_24 {
	font-size: clamp(18px, 2vw, 24px);
}

.tx_sdw_1 {
	text-shadow: 2px 2px 0 #000, -2px 2px 0 #000, 2px -2px 0 #000, -2px -2px 0 #000;
}

.ls_ng_100 {
	letter-spacing: -.1em;
}

.ls_ng_55 {
	letter-spacing: -.055em !important;
}

.ls_ng_25 {
	letter-spacing: -.055em !important;
}

.ls_ng_15 {
	letter-spacing: -.015em !important
}

.ls_0 {
	letter-spacing: 0
}

.ls_25 {
	letter-spacing: .025em
}

.ls_35 {
	letter-spacing: .035em
}

.ls_5 {

	letter-spacing: .05em !important
}

.ls_75 {
	letter-spacing: .075em !important;
}

.ls_80 {
	letter-spacing: .08em
}

.ls_100 {
	letter-spacing: .1em !important
}

.ls_125 {
	letter-spacing: .125em
}

.ls_150 {
	letter-spacing: .15em
}

.ls_200 {
	letter-spacing: .2em
}

.fw_400 {
	font-weight: 400 !important
}

.fw_500 {
	font-weight: 500
}

.fw_550 {
	font-weight: 550
}

.fw_600 {
	font-weight: 600 !important
}

.fw_700 {
	font-weight: 700 !important
}

.fw_800 {
	font-weight: 800 !important
}

.fw_900 {
	font-weight: 900 !important
}

.lh_1 {
	line-height: 1
}

.lh_1_1 {
	line-height: 1.1
}

.lh_1_2 {
	line-height: 1.2
}

.lh_1_3 {
	line-height: 1.3
}

.lh_1_4 {
	line-height: 1.4
}

.lh_1_6 {
	line-height: 1.6
}

.lh_1_7 {
	line-height: 1.7
}

.lh_1_8 {
	line-height: 1.8
}

.lh_2 {
	line-height: 2
}

.lh_2_1 {
	line-height: 2.1
}

.lh_2_2 {
	line-height: 2.2
}

.lh_2_3 {
	line-height: 2.3
}

.mgn_t_10 {
	margin-top: 10px
}

.ls_non {
	letter-spacing: 0
}

.ls_nega {
	letter-spacing: -.075em !important
}

.flex_wrapper {
	display: -webkit-flex;
	display: -moz-flex;
	display: -ms-flex;
	display: -o-flex;
	display: flex;
}

.flex-wrap_par {
	flex-wrap: wrap;
	display: -webkit-flex;
	display: -moz-flex;
	display: -ms-flex;
	display: -o-flex;
	display: flex;
}

.flex-rev {
	flex-flow: row-reverse;
}

.jus_bet {
	justify-content: space-between
}

.jus_cent {
	justify-content: center
}

.an_stat {
	align-items: flex-start
}

.an_bl {
	align-items: baseline
}

.an_cent {
	align-items: center
}

.blok_link {
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 100
}

@media (hover: hover) {
	.hover {
		transition-property: all;
		transition: 0.15s linear;
	}

	.hover:hover {
		opacity: 0.70;
	}

	.brightness {
		transition: filter 0.3s ease;
		filter: brightness(1);
	}

	.brightness:hover {
		filter: brightness(1.2);
	}
}

.pc {
	display: block
}

.sp {
	display: none !important
}

.tab {
	display: none !important
}

*,
*:before,
*:after {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	-o-box-sizing: border-box;
	-ms-box-sizing: border-box;
	box-sizing: border-box;
}

.max_img {
	max-width: 100%;
	height: auto;
	display: block;
}

.img_w100 {
	width: 100%;
	height: auto
}

.img_w90 {
	width: 90%;
	height: auto
}

.img_w80 {
	width: 80%;
	height: auto
}

.img_w50 {
	width: 50%;
	height: auto
}

.img_w40 {
	width: 40%;
	height: auto
}

.img_w30 {
	width: 30%;
	height: auto
}

.img_w20 {
	width: 20%;
	height: auto
}

.centered {
	display: block;
	margin-left: auto;
	margin-right: auto;
}

.alignright {
	margin: 0 0 0 2%;
	display: inline;
}

.alignleft {
	margin: 0 2% 0 0;
	display: inline;
}

.alignright {
	float: right;
}

.alignleft {
	float: left;
}

.clear {
	clear: both
}

.pos_rel {
	position: relative
}

.inl_b {
	display: inline-block
}

.inl {
	display: inline
}

/*-------------------------------------
ラッパー
--------------------------------------*/
.wrap_1000 {
	max-width: 1000px;
	margin-inline: auto;
}

.wrap_1200 {
	max-width: 1200px;
	margin-inline: auto;
}

/*-------------------------------------
リスト
--------------------------------------*/
.list_type_mum li,
.list_type_1 li {
	position: relative;
	padding-left: 16px;
	margin-bottom: 1%;
}

.list_type_mum li:last-child,
.list_type_1 li:last-child {
	margin-bottom: 0;
}

.list_type_1 li::after {
	content: "・";
	position: absolute;
	top: 0;
	left: 0;
}

.list_type_mum {
	counter-reset: number 0;
}

.list_type_mum li {
	position: relative;
}

.list_type_mum li::before {
	position: absolute;
	top: 0;
	left: 0;
	counter-increment: number 1;
	content: counter(number) ".";
}

/*-------------------------------------
ボックス
--------------------------------------*/
.bx_tp_1 {}

/*-------------------------------------
ボタン
--------------------------------------*/
.btn_type_1 {}

/*-------------------------------------
見出し
--------------------------------------*/
.h_type_1 aside {
	font-family: "Shippori Mincho", serif;
	font-size: clamp(25px, 2.5vw, 30px);
	font-weight: 500;
	color: var(--clr_wht);
	text-align: center;
}

.h_type_1 .ttl {
	font-size: clamp(35px, 3.5vw, 42px);
	color: var(--clr_wht);
	text-align: center;
}

.h_type_1.blk .ttl,
.h_type_1.blk aside {
	color: var(--clr_blk);
}

/*-------------------------------------
other
--------------------------------------*/
.ggmap {
	position: relative;
	padding-bottom: 44.25%;
	padding-top: 30px;
	height: 0;
	overflow: hidden;
}

.ggmap iframe,
.ggmap object,
.ggmap embed {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

img.obj {
	position: absolute;
	display: block;
	height: auto;
	z-index: 0
}

.no_link {
	pointer-events: none;
	cursor: default;
	text-decoration: none;
}

.yaku {
	font-feature-settings: "palt";
}

.url_br {
	word-wrap: break-word;
	overflow-wrap: break-word;
}

/* ==========================================================================
   Author's custom styles
   ========================================================================== */

.menu {
	width: 100%;
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	display: flex;
	flex-direction: row;
	justify-content: space-around;
	padding: 30px 45px;
	margin: 0 auto;
	background-color: rgba(119, 119, 119, .75);
	z-index: 999;
}

.menu .column_inner {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.menu .info_btn {
	display: flex;
	flex-direction: row;
	width: auto;
	gap: 10px;
}

.menu .reservation_btn .reserve-link {
	background-color: var(--clr_blue);
	color: #fff;
	text-align: center;
	padding: 10px 20px;
	height: 64px;
	font-weight: 400;
	font-size: 1.25rem;
	display: flex;
	align-items: center;
	border: 1px solid #fff;
}


@media screen and (max-width: 480px) {
	.menu .reservation_btn .reserve-link {
		font-size: 1rem;
		height: 60px;
		font-weight: 500;
		line-height: 2.5;
	}
}

.menu .tel_no {
	height: 60px;
	width: auto;
	margin: 0 auto;
	padding: 10px 45px;
	background-color: rgb(0 113 188 / 75%);
}

.menu img {
	margin: 0 auto;
	width: 100%;
}

.contact_form {
	height: auto;
	width: 80%;
	max-width: auto;
	margin: 0 auto;
	padding: 20px 30px;
	background-color: rgb(0 113 188 / 75%);
}

.menu .contact_form {
	height: 60px;
	width: auto;
	padding: 20px;
}

@media screen and (max-width: 480px) {
	.menu {
		padding: 10px 5px;
		margin: 0 auto;
	}

	.menu .tel_no {
		height: 45px;
		padding: 10px 14px;
	}

	.contact_form {
		height: auto;
		width: 80%;
		padding: 25px 15px;
	}

	.menu .contact_form {
		height: 45px;
		padding: 15px 9px;
	}
}


header.general {
	/* position: absolute; */
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 9999;
}

header.general .in {
	padding: 32px 20px 24px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	transition: all 0.25s 0s ease;
	background-color: transparent;
}

header.general.fixed {
	background: linear-gradient(180deg, rgba(41, 171, 226, 1) 0%, rgba(17, 137, 204, 1) 29%, rgba(0, 113, 188, 1) 100%);
}

header.general .logo {
	padding-left: 20px
}

header.general .tp_info {
	display: flex;
	align-items: center;
	column-gap: 21px
}

header.general .tp_info .contact_tel {
	width: 48%;
}

@media screen and (max-width: 480px) {
	header.general .tp_info .contact_tel {
		width: 100%;
	}
}

.concerns {
	background: url("../img/note_bg.jpg");
}

.concerns .ttl {
	padding: 54px 0;
	font-size: clamp(31px, 5.08vw, 61px);
	font-weight: 600;
	color: var(--clr_wht);
	text-align: center;
	letter-spacing: 0;
	line-height: 1;
	font-feature-settings: "palt";
}

.dot-text {
	position: relative;
}

.dot-text::before {
	position: absolute;
	top: -15px;
	left: 0;
	right: 0;
	margin: auto;
	content: "";
	padding-top: 10px;
	background: radial-gradient(circle 10px, #FFF 50%, transparent 50%);
}

.solution {
	position: relative;
	background: url("../img/note_bg.jpg");
	padding: 40px 0 100px;
}

.solution .obj {
	width: min(72.83vw, 874px);
	bottom: 0;
	left: 0;
	z-index: 0
}

.solution .ttl {
	position: relative;
	z-index: 30;
}

.solution .leade {
	position: relative;
	z-index: 10;
	margin: 1.5% 0
}

.solution .bxs_row {
	position: relative;
	z-index: 10
}

.solution .bxs_row.no1 {
	margin: 3.65% 0 27px;
	position: relative;
}

.solution .bxs_row.no1::after {
	content: "";
	position: absolute;
	top: -284px;
	right: 0;
	width: 321px;
	height: 284px;
	background: url("../img/solution_human.png") no-repeat center / cover;
	z-index: 0
}

.solution .bxs_row .bx {
	width: 48.2%;
	padding: 47px 28px 30px;
	border-radius: 18px;
	border: 1px solid #84c5e8;
	background: rgba(255, 255, 255, .75)
}

.solution .bxs_row .bx .in_ttl {
	margin: 2% auto .8%;
	font-size: clamp(20px, 2.5vw, 30px);
	text-align: center;
	font-feature-settings: "palt";
	letter-spacing: .035em
}

.solution .bxs_row .bx .mn {
	margin: 1.2% auto .65%;
	font-size: clamp(17px, 1.67vw, 20px);
	font-feature-settings: "palt";
	letter-spacing: .075em
}

.merit .ttl_wrap {
	padding: 73px 80px;
	background: var(--clr_blue)
}

.merit .ttl_wrap .obj {
	width: min(36.75vw, 441px);
	top: 0;
	left: 0;
	right: 0;
	margin: auto;
	z-index: 0
}

.merit .ttl_wrap .h_type_1 {
	z-index: 10
}

.merit .stage {
	padding: 100px 0 144px;
}

.merit .stage .row {
	width: 100%;
	align-items: flex-end
}

.merit .stage .row .bx {
	width: 50%
}

.merit .stage .row .px {
	position: relative
}

.merit .stage .row .px::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	right: -76px;
	width: 76px;
	height: 319px;
	margin: auto;
	background: url("../img/shadow.png") no-repeat center / cover;
	z-index: -1
}

.merit .stage .row.flex-rev .px::before {
	right: unset;
	left: -76px;
	transform: scale(-1, 1)
}

.merit .stage .row .tx {
	padding-left: 3%;
	padding-bottom: 3%
}

.merit .stage .row.flex-rev .tx {
	padding-left: 0;
	padding-right: 3%;
}

.merit .stage .row .tx .ttl {
	font-size: clamp(22px, 2.67vw, 32px);
	font-weight: 500;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--clr_blue)
}

.merit .stage .row .tx .mn {
	margin-top: 10px;
	font-size: clamp(15px, 1.42vw, 17px);
	font-weight: 500;
	line-height: 1.8
}

.achievements {
	padding: 85px 0;
	background: url("../img/achievements_bg.jpg") no-repeat top / cover
}

.achievements .ttls {
	display: flex;
	align-items: flex-end;
	justify-content: center;
	column-gap: 5px
}

.achievements .ttls img {
	display: block;
	width: min(20.17vw, 242px);
	height: auto
}

.achievements .ttls .ttl {
	font-size: clamp(34px, 1.11vw, 48px);
}

.short_bar {
	width: 36px;
	height: 1px;
	background: var(--clr_blue);
	margin-inline: auto;
}

.achievements .short_bar {
	margin-top: 30px;
	margin-bottom: 40px;
}

.achievements .mn {
	font-size: clamp(16px, 1.83vw, 22px);
	line-height: 1.8
}

.invisalign {
	padding: 47px 0 94px
}

.invisalign .bxs {
	margin-top: 50px
}

.invisalign .bxs .row.no1 {
	margin-bottom: 20px
}

.invisalign .bxs .row.no2 {
	align-items: flex-end
}

.invisalign .bxs .row .bx {
	width: 47%;
}

.invisalign .bxs .row .tx {
	color: var(--clr_wht);
}

.invisalign .bxs .row .ttl {
	margin: 2% 0 2.5%;
	display: flex;
	align-items: center;
	column-gap: 2%;
}

.invisalign .bxs .row .ttl .num {
	font-size: clamp(43px, 4.75vw, 57px);
	font-weight: 600;
}

.invisalign .bxs .row .ttl .mn {
	font-size: clamp(22px, 2.42vw, 29px);
	font-weight: 600;
	line-height: 1.2
}

.invisalign .bxs .row .msg {
	font-size: clamp(15px, 1.67vw, 20px);
	line-height: 1.65
}

.cta {
	position: relative
}

.cta .in_wrap {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

.cta .in_wrap .cont {
	margin: min(13.17vw, 158px) 0 0 4.4%;
	max-width: 490px;
	color: #FFF;
	text-align: center
}

.cta .in_wrap .cont .row_2 {
	font-size: clamp(27px, 3vw, 36px);
	font-weight: 600;
}

/* .cta .in_wrap .cont .tel_no {
	margin: 7% auto
} */

.cta .contact_tel {
	max-width: 391px;
	background: var(--clr_blue);
	margin-inline: auto;
	margin-top: 24px;
	padding: 12px 0;
}

@media screen and (max-width: 768px) {
	.cta .contact_tel {
		padding: 0px 0;
	}
}

/* cta_reserve */
.cta_reserve {
	background: url("../img/note_bg.jpg");
}

.cta_reserve_wrap {
	margin-inline: auto;
	width: fit-content;
}

.cta .reservation_btn {
	margin-top: 24px;
}

@media (hover: hover) {
	.cta_reserve_wrap a {
		transition-property: all;
		transition: 0.15s linear;
	}
}

.cta_reserve_wrap img {
	width: 100%;
	max-width: 1000px;
	padding: 4vw;
}

.flow {
	padding: 68px 0 100px
}

.flow .blocks {
	margin-top: 80px;
	padding-right: 0.5%;
	padding-left: 0.5%;
}

.flow .block {
	display: flex;
	margin-bottom: 90px;
	position: relative;
}

.flow .block::after {
	content: "";
	position: absolute;
	bottom: -42px;
	left: 0;
	right: 0;
	width: 104px;
	height: 32px;
	margin: auto;
	background: url("../img/tra_1.png") no-repeat center / cover
}

.flow .block:last-of-type {
	margin-bottom: 0
}

.flow .block:last-of-type::after {
	display: none
}

.flow .block .px {
	width: 315px;
	position: relative;
}

.flow .block .px::after {
	content: "";
	position: absolute;
	bottom: -90px;
	left: 0;
	right: 0;
	width: 2px;
	height: 90px;
	margin: auto;
	background: url("../img/line.png") no-repeat center / cover
}

.flow .block:last-of-type .px::after {
	display: none
}

.flow .block .tx {
	width: calc(100% - 315px);
	padding-left: 5%;
}

.flow .block .tx header {
	color: var(--clr_blue2);
	font-weight: 600
}

.flow .block .tx header .sub {
	font-size: clamp(18px, 1.67vw, 20px);
}

.flow .block .tx header .ttl {
	font-size: clamp(28px, 2.92vw, 35px);
}

.flow .block .tx .msg {
	margin-top: 1%;
	font-size: clamp(16px, 1.67vw, 20px);
	line-height: 1.5;
	letter-spacing: .045em
}

.reason {
	background: #29ABE2;
	background: linear-gradient(180deg, rgba(41, 171, 226, 1) 0%, rgba(17, 137, 204, 1) 29%, rgba(0, 113, 188, 1) 100%);
}

.reason .bxs .row {
	margin-bottom: min(4.17vw, 50px)
}

.reason .bxs .row:last-of-type {
	margin-bottom: 0
}

.reason .bxs .row .bx {
	width: 48%;
	background: var(--clr_wht);
}

.reason .bxs .row .tx {
	padding: 6% 17px;
	color: var(--clr_blk)
}

.reason .bxs .row .ttl {
	margin: 0 0 2.5%;
	flex-wrap: wrap;
	column-gap: 0
}

.reason .bxs .row .ttl .num {
	display: block;
	width: 48px;
}

.reason .bxs .row .ttl .mn {
	width: calc(100% - 48px);
	padding-left: 4%;
	font-size: clamp(19px, 2.17vw, 26px);
	font-weight: 600;
	line-height: 1.2;
}

.reason .bxs .row.no2 {
	align-items: stretch
}

.greeting {
	padding: 80px 0;
	background: #fafaf2
}

.greeting .h_type_1 aside {
	color: #534741;
	font-size: 18px
}

.greeting .h_type_1 .ttl {
	color: #534741;
}

.greeting .bxs {
	margin-top: 75px
}

.greeting .bxs .in_ttl {
	font-size: 30px;
	padding-bottom: 12px;
	margin-bottom: 12px;
	position: relative
}

.greeting .bxs .in_ttl::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 48px;
	height: 1px;
	background: #000000
}

.greeting .bxs .sepa {
	margin-top: 2%
}

.greeting .bxs .sepa .tx {
	width: 60%;
	font-size: clamp(16px, 1.67vw, 20px);
	line-height: 2.1;
}

.greeting .bxs .sepa .px {
	padding-left: 4.7%;
	width: 40%
}

.greeting .bxs .sepa .px .row_1 {
	font-size: 25px;
	margin: 6% 0 0
}

.greeting .bxs .sepa .px .row_2 {
	font-size: 46px;
}

.greeting .bxs .sepa .px .row_3 {
	font-size: 21px;
	color: #808080
}

.greeting .bxs .row_px {
	margin: 46px 0 120px
}

.greeting .teach_bx {
	background: #FFF;
	padding: 30px 40px 30px 50px;
	display: flex;
}

.greeting .teach_bx .px {
	width: 22%;
}

.greeting .teach_bx .tx {
	width: 78%;
	padding-right: 5%;
}

.greeting .teach_bx .tx header {
	padding-bottom: 1%;
	border-bottom: 1px solid var(--clr_blk)
}

.greeting .teach_bx .tx header .row_1 {
	font-size: clamp(17px, 2.17vw, 26px);
}

.greeting .teach_bx .tx header .row_2 {
	margin-top: 5px;
	display: flex;
	align-items: center;
	column-gap: 20px
}

.greeting .teach_bx .tx header .row_2 .mn {
	font-size: 47px;
}

.greeting .teach_bx .tx header .row_2 .sub {
	font-size: 20px;
	color: #808080
}

.greeting .teach_bx .tx .msg {
	margin-top: 10px;
	line-height: 2;
	font-size: clamp(16px, 1.67vw, 20px);
}

.greeting .teach_bx .tx h4 {
	font-size: 21px;
	margin: 30px 0 15px;
	padding-bottom: 5px;
	border-bottom: 1px solid #000;
}

.price {
	padding: 150px 0
}

.price .bxs {
	margin-top: 50px;
	column-gap: 16px;
}

.price .bxs .tx .ttl {
	padding: 12px 0;
	font-size: clamp(21px, 2.83vw, 34px);
	font-weight: 600;
	line-height: 1;
	text-align: center;
	border-radius: 60px;
	margin-bottom: 12px;
	position: relative;
}

.price .in_tbl_wrap {
	margin-top: 26px;
}

.price .in_tbl_wrap h3 {
	font-size: 21px;
	text-align: left;
	margin-bottom: 10px;
}

.price-box {
	width: 100%;
	display: flex;
	flex-direction: row;
	justify-content: center;
	margin-bottom: 50px;
}

.price-box .price-menu,
.price-box .price-amount {
	width: 50%;
	border: solid 1px #CCC;
	font-size: 16px;
	font-weight: normal;
	text-align: center;
	line-height: 1.25;
	letter-spacing: 1px;
	padding: 20px;
}

.price-box .price-menu {
	background-color: #dcf0f7;
}

.price-box .price-menu span {
	font-size: 14px;
}

.price-box .price-amount {
	padding: 30px 20px;
}

.price-box .price-amount em {
	font-style: normal;
	font-weight: bold;
	color: #c1282c;
}

@media screen and (max-width: 480px) {
	.price-box {
		flex-direction: column;
		margin: 0 auto 50px;
	}

	.price-box .price-menu,
	.price-box .price-amount {
		width: 100%;
		margin: 0 auto;
		border: solid 1px #CCC;
		font-size: 16px;
		font-weight: normal;
		text-align: center;
		line-height: 1.25;
		letter-spacing: 1px;
		padding: 20px;
	}
}




.faq {
	padding: 80px 0;
	background: #fafaf2
}

.faq .obj {
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 0;
}

.faq .in {
	z-index: 10
}

.faq .block_wrap {
	margin-top: 64px;
	max-width: 874px;
	margin-inline: auto;
}

.faq .block_wrap .row {
	display: flex;
}

.faq .block_wrap .block {
	margin-bottom: 30px
}

.faq .block_wrap .block:last-child {
	margin-bottom: 0
}

.faq .block_wrap .row .en {
	width: 48px;
	height: 48px;
	font-family: "Shippori Mincho", serif;
	font-size: 30px;
	display: flex;
	justify-content: center
}

.faq .block_wrap .row .mn {
	width: calc(100% - 48px);
	padding-left: 1.5%;
}

.faq .block_wrap .row.q_box {
	background: #FFF;
	border-radius: 50px 0 0 50px
}

.faq .block_wrap .row.q_box .en {
	background: var(--clr_blue);
	color: #FFF;
	border-radius: 50%;
}

.faq .block_wrap .row.q_box .mn {
	padding-top: .78%;
	font-size: clamp(17px, 1.75vw, 21px);
}

.faq .block_wrap .row.a_box {
	margin-top: 30px
}

.faq .block_wrap .row.a_box .en {
	color: var(--clr_blue);
}

.faq .block_wrap .row.a_box .mn {
	font-size: 16px;
	line-height: 1.8
}

.ft_infos {
	padding: 70px 0;
	background: #333333
}

.ft_infos .in {
	max-width: 874px;
	margin-inline: auto;
	color: #FFF;
	column-gap: 1.5rem;
}

.ft_infos .in .col_1 {
	width: 44%;
}

.ft_infos .in .col_1 .adrs {
	margin: 5% auto
}

.ft_infos .in .col_2 {
	width: 56%;
}

.time_tbl .row {
	display: flex;
}

.time_tbl .row:first-of-type {
	margin-bottom: 10px;
	border-bottom: 1px solid #FFF
}

.time_tbl .row:first-of-type .cell {
	padding-bottom: 10px;
}

.time_tbl .row:nth-child(2) {
	margin-bottom: 10px;
}

.time_tbl .row:last-child {
	padding-bottom: 0;
}

.time_tbl .cell {
	font-size: clamp(12px, 1.42vw, 17px);
	font-weight: 200
}

.time_tbl .hd {
	width: 30%;
	text-align: center;
	padding-right: 3%
}

.time_tbl .bse {
	width: calc((100% - 30%) / 7);
	text-align: center;
}

.ft_infos .col_2 .msg_bx {
	margin: 5% 0 3%;
	padding: 11px 0;
	display: flex;
	justify-content: center;
	color: #4d4d4d;
	background: #FFF;
}

footer .ggmap {
	padding-bottom: 20.25%;
}








@media screen and (max-width:1210px) {
	.merit .stage .row .px::before {
		right: calc(min(6.33vw, 76px) * -1);
		width: min(6.33vw, 76px);
		height: min(26.58vw, 319px);
	}

	.merit .stage .row.flex-rev .px::before {
		left: calc(min(6.33vw, 76px) * -1);
	}

}

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

	/* ==========================================================================
   Commons styles
   ========================================================================== */
	.flex_wrapper,
	.flex-wrap_par {
		display: block;
	}

	.flex_sp {
		display: -webkit-flex !important;
		display: -moz-flex !important;
		display: -ms-flex !important;
		display: -o-flex !important;
		display: flex !important;
		flex-wrap: wrap !important;
	}

	.pc {
		display: none !important
	}

	.sp {
		display: block !important
	}

	a[href^="tel:"] {
		pointer-events: auto;
		cursor: pointer;
	}

	.wrap_1200,
	.wrap_1000 {
		width: 100%;
		max-width: 100%;
		height: auto;
		margin-inline: auto;
		/*padding-right: 0.8rem!important;
    padding-left: 0.8rem!important;*/
	}

	.sp_no_pad {
		padding-right: 0 !important;
		padding-left: 0 !important;
		margin-right: 0 !important;
		margin-left: 0 !important;
	}

	.sp_on_pad {
		padding-right: 0.8rem !important;
		padding-left: 0.8rem !important;
	}

	.sp_width {
		width: calc(100% - 1.6rem);
		margin-left: auto;
		margin-right: auto;
	}

	.sp_width_over {
		width: calc(100% + 1.6rem);
		margin-left: -0.8rem;
	}

	.sp_tx_cent {
		text-align: center
	}

	.sp_tx_left {
		text-align: left
	}

	.sp_txs_17 {
		font-size: 17px
	}

	.sp_yaku {
		font-feature-settings: "palt";
	}

	header.general .in {
		padding: 20px;
	}

	header.general .logo {
		padding-left: 5px;
	}

	header.general .contact img {
		width: 15vw
	}

	header.general .tp_info {
		column-gap: 5px;
	}

	.concerns .ttl {
		padding: 10vw 0;
		font-size: 6.25vw
	}

	.dot-text::before {
		position: absolute;
		top: -7px;
		left: 0;
		right: 0;
		margin: auto;
		content: "";
		padding-top: 5px;
		background: radial-gradient(circle 5px, #FFF 50%, transparent 50%);
	}

	.solution {
		position: relative;
		margin-top: 0;
		background: none;
		padding: 90px 0 5vw;
	}

	.solution .bxs_row.no1::after {
		top: -330px;
		width: 144px;
		height: 127px;
	}

	.solution .leade {
		margin: 6vw 0;
		line-height: 1.8
	}

	.solution .bxs_row .bx {
		width: 100%;
		padding: 6vw 0;
		border: none;
		background: rgba(255, 255, 255, .75);
	}

	.solution .bxs_row .bx .in_ttl {
		margin: 2vw auto;
		font-size: 7.5vw;
		text-align: center;
		font-feature-settings: "palt";
		letter-spacing: .035em;
	}

	.solution .bxs_row .bx .mn {
		margin: 1.2% auto .65%;
		font-size: 16px;
	}

	.solution .obj {
		display: none
	}

	.merit .ttl_wrap .obj {
		width: 90%;
	}

	.merit .ttl_wrap {
		padding: 11vw .8rem;
	}

	.h_type_1 .ttl {
		font-size: 8.75vw;
	}

	.merit .stage {
		padding: 6vw 0.8rem 10vw;
		overflow: hidden
	}

	.merit .stage .row {
		margin-bottom: 10vw
	}

	.merit .stage .row:last-child {
		margin-bottom: 0
	}

	.merit .stage .row .bx {
		width: 100%;
	}

	.merit .stage .row .tx,
	.merit .stage .row.flex-rev .tx {
		padding: 2.6vw 4vw 0
	}

	.achievements {
		padding: 21vw 0;
		background: url(../img/achievements_bg_sp.jpg) no-repeat top / cover;
	}

	.achievements .ttls {
		display: block;
	}

	.achievements .ttls img {
		width: 50vw;
		margin-inline: auto;
	}

	.achievements .ttls .ttl {
		margin-top: 2vw;
		font-size: 8.75vw;
	}

	.achievements .short_bar {
		margin-top: 5vw;
		margin-bottom: 6.5vw;
	}

	.invisalign {
		padding: 10vw 0;
	}

	.invisalign .h_type_1 .ttl {
		font-size: 8.35vw;
		letter-spacing: 0;
		font-feature-settings: "palt";
	}

	.invisalign .bxs {
		margin-top: 6.5vw;
		padding-right: 0.8rem;
		padding-left: 0.8rem;
	}

	.invisalign .bxs .row .bx {
		width: 100%;
		margin-bottom: 13vw;
	}

	.invisalign .bxs .row .bx:last-child {
		margin-bottom: 0;
	}

	.invisalign .bxs .row.no2 {
		margin-top: 13vw;
	}

	.invisalign .bxs .row.no2 .bx:first-child {
		margin-bottom: 0
	}

	.cta .in_wrap .cont {
		margin: 8vw 0;
		padding-right: 0.8rem;
		padding-left: 0.8rem;
		max-width: 100%;
	}

	.cta .in_wrap .cont .row_1 {
		font-size: 13px;
	}

	.cta .in_wrap .cont .tel_no {
		padding: 10px 20px;
		margin: 0 auto;
	}

	.contact_tel {
		background-color: rgb(0 113 188 / 75%);
		width: 100%;
		margin: 5.5vw auto 5vw;
	}

	.contact_tel_wrap {
		padding: 10px 20px;
	}


	.flow {
		padding: 12vw 0 10vw;
	}

	.flow .blocks {
		margin-top: 10vw;
		padding-right: 0.8rem;
		padding-left: 0.8rem;
	}

	.flow .block {
		display: block;
		margin-bottom: 90px;
	}

	.flow .block .px {
		width: 100%;
	}

	.flow .block .tx {
		width: 100%;
		padding: 3.5vw 0 0;
	}

	.flow .block .tx .msg {
		margin-top: 1%;
		line-height: 1.8;
	}

	.flow .block .px::after {
		display: none
	}

	.flow .block::after {
		bottom: -62px;
	}

	.reason .bxs .row .bx {
		margin-bottom: 5.5vw;
	}

	.greeting {
		padding: 10vw 0 15vw;
	}

	.greeting .bxs {
		margin-top: 7vw;
		padding-right: 0.8rem;
		padding-left: 0.8rem;
	}

	.greeting .bxs .sepa .px {
		padding: 0;
		width: 100%;
	}

	.greeting .bxs .in_ttl {
		margin-top: 8vw
	}

	.greeting .bxs .sepa .tx {
		width: 100%;
		line-height: 2.1;
	}

	.greeting .teach_bx {
		margin-top: 16vw;
		padding: 5vw;
		display: block;
	}

	.greeting .teach_bx .px,
	.greeting .teach_bx .tx {
		width: 100%;
	}

	.greeting .teach_bx .tx {
		padding: 4vw 0 0;
	}

	.greeting .teach_bx .tx header .row_2 {
		margin-top: 0;
		display: block;
		padding-bottom: 3vw
	}

	.greeting .teach_bx .tx header .row_2 .sub {
		display: block;
	}

	.greeting .teach_bx .tx .msg {
		margin-top: 3vw;
		line-height: 2;
		font-size: clamp(16px, 1.67vw, 20px);
	}

	.price {
		padding: 12vw 0;
	}

	.price .bxs {
		margin-top: 7vw;
		padding-right: 0.8rem;
		padding-left: 0.8rem;
	}

	.price .bxs .tx {
		width: 100%;
	}

	.price .in_tbl_wrap .row .cell {
		padding: 4vw;
	}

	.price .bxs .px {
		width: 100%;
		margin-top: 10vw
	}

	.price .bxs .px .msg {
		padding: 4vw 5vw;
	}




	.faq {
		padding: 12vw 0;
		background: #fafaf2;
	}

	.faq .block_wrap {
		margin-top: 10vw;
		padding-right: 0.8rem;
		padding-left: 0.8rem;
	}

	.faq .block_wrap .row.q_box {
		align-items: center;
	}

	.faq .block_wrap .row.q_box .mn {
		padding-top: 0;
		font-size: clamp(17px, 1.75vw, 21px);
		padding-left: 4vw
	}

	.faq .block_wrap .row.a_box .en {
		display: none
	}

	.faq .block_wrap .row.a_box .mn {
		width: 100%
	}

	.faq .block_wrap .block {
		margin-bottom: 12vw;
	}

	.ft_infos {
		padding: 15vw 0;
	}

	.ft_infos .in {
		padding-right: 0.8rem;
		padding-left: 0.8rem;
	}

	.ft_infos .in .col_1 {
		width: 100%;
	}

	.ft_infos .in .col_1 .adrs {
		margin: 5.5vw auto 4vw;
		line-height: 1.8
	}

	.ft_infos .in .col_2 {
		width: 100%;
		margin-top: 15vw
	}

	footer .ggmap {
		padding-bottom: 80.25%;
	}







}

/* ==========================================================================
   Helper classes
   ========================================================================== */

/*
 * Hide visually and from screen readers
 */

.hidden,
[hidden] {
	display: none !important;
}

/*
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 */

.visually-hidden {
	border: 0;
	clip: rect(0, 0, 0, 0);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	white-space: nowrap;
	width: 1px;
	/* 1 */
}

/*
 * Extends the .visually-hidden class to allow the element
 * to be focusable when navigated to via the keyboard:
 * https://www.drupal.org/node/897638
 */

.visually-hidden.focusable:active,
.visually-hidden.focusable:focus {
	clip: auto;
	height: auto;
	margin: 0;
	overflow: visible;
	position: static;
	white-space: inherit;
	width: auto;
}

/*
 * Hide visually and from screen readers, but maintain layout
 */

.invisible {
	visibility: hidden;
}

/*
 * Clearfix: contain floats
 *
 * The use of `table` rather than `block` is only necessary if using
 * `::before` to contain the top-margins of child elements.
 */

.clearfix::before,
.clearfix::after {
	content: "";
	display: table;
}

.clearfix::after {
	clear: both;
}

/* ==========================================================================
   EXAMPLE Media Queries for Responsive Design.
   These examples override the primary ('mobile first') styles.
   Modify as content requires.
   ========================================================================== */

@media only screen and (min-width: 35em) {
	/* Style adjustments for viewports that meet the condition */
}

@media print,
(-webkit-min-device-pixel-ratio: 1.25),
(min-resolution: 1.25dppx),
(min-resolution: 120dpi) {
	/* Style adjustments for high resolution devices */
}

/* ==========================================================================
   Print styles.
   Inlined to avoid the additional HTTP request:
   https://www.phpied.com/delay-loading-your-print-css/
   ========================================================================== */

@media print {

	*,
	*::before,
	*::after {
		background: #fff !important;
		color: #000 !important;
		/* Black prints faster */
		box-shadow: none !important;
		text-shadow: none !important;
	}

	a,
	a:visited {
		text-decoration: underline;
	}

	a[href]::after {
		content: " (" attr(href) ")";
	}

	abbr[title]::after {
		content: " (" attr(title) ")";
	}

	/*
   * Don't show links that are fragment identifiers,
   * or use the `javascript:` pseudo protocol
   */
	a[href^="#"]::after,
	a[href^="javascript:"]::after {
		content: "";
	}

	pre {
		white-space: pre-wrap !important;
	}

	pre,
	blockquote {
		border: 1px solid #999;
		page-break-inside: avoid;
	}

	tr,
	img {
		page-break-inside: avoid;
	}

	p,
	h2,
	h3 {
		orphans: 3;
		widows: 3;
	}

	h2,
	h3 {
		page-break-after: avoid;
	}
}


/*  */
.case {
	padding: 60px 0;
}

.case .splide__slide {
	margin-top: 60px;
	background: #FFF
}

.case .splide__slide .tit {
	font-family: "Shippori Mincho", serif;
	font-size: 27px;
	font-weight: 500;
	color: #ffffff;
	background: var(--clr_blue);
	text-align: center;
	padding: 15px 0;
	border-bottom: double #ffffff;
	margin-bottom: 20px;
}

.case .splide__arrow {
	opacity: 1;
	padding: 0;
	width: min(9.41vw, 100px);
	height: min(9.41vw, 100px);
}

.case .splide__arrow--prev {
	left: 0;
	background: var(--clr_blue);
	opacity: 0.9;
}

.case .splide__arrow--next {
	right: 0;
	background: var(--clr_blue);
	opacity: 0.9;
}

.case .splide__arrow img {
	width: 20%;
}

.case .in_case_box {
	background: #fafaf2;
	padding: 40px 80px;
}

.case .bxs {
	display: flex;
	column-gap: min(1.3vw, 25px);
}

.case .bx {
	width: 48%;
	padding: 0;
	margin-bottom: 20px;
}

.case .bx_arrow {
	width: 4%;
	padding-top: 60px;
	display: flex;
	justify-items: center;
	justify-content: center;
}

.case .bx img {
	display: block;
	width: 100%;
	height: auto;
	margin-inline: auto;
}

.case .bx .in_tit {
	font-family: "Shippori Mincho", serif;
	font-size: 20px;
	font-weight: 600;
	color: #333333;
	text-align: center;
	line-height: 44px;
	border: 2px solid #0071bc;
	border-radius: 22px;
	width: 170px;
	margin: 0 auto 20px;
}

.case .bx .in_tit.bg_white {
	color: var(--clr_blue);
	background: #ffffff;
}

.case .bx .in_tit.bg_blue {
	color: #ffffff;
	background: var(--clr_blue);
}

.case .in_tbl .row {
	display: flex;
	justify-content: space-between;
	margin-bottom: 4px;
}

.case .in_tbl .row:last-child {
	border-bottom: none;
}

.case .in_tbl .row .cel {
	padding: 12px 20px;
	font-weight: 500;
	line-height: 1.8
}

.case .in_tbl .row .cel.th {
	width: 200px;
	text-align: center;
	position: relative;
	margin-bottom: 4px;
	padding: 12px 20px;
	background: #d6ebf4;
	display: flex;
	justify-content: center;
	align-items: center;
}

.case .in_tbl .row .cel.th:before {
	content: "";
	position: absolute;
	top: 50%;
	left: 100%;
	margin-top: -8px;
	border: 8px solid transparent;
	border-left: 10px solid #d6ebf4;
}

.case .in_tbl .row .cel.td {
	width: calc(100% - 220px);
	background: #ffffff;
}

.case .in_tbl .row .cel.td_hi {
	min-height: 20vh;
	display: flex;
	align-items: center;
}

@media screen and (max-width:767px) {
	.case {
		padding: 40px 0;
	}

	.case .splide__slide {
		margin-top: 40px;
	}

	.case .splide__slide .tit {
		font-size: 23px;
		padding: 10px;
		margin-bottom: 10px;
	}

	.case .in_case_box {
		padding: 10px 0;
		background: #ffffff;
	}

	.case .bx_arrow {
		padding-top: 30px;
	}

	.case .splide__arrow {
		top: 55vw;
	}

	.case .splide__arrow--prev {
		left: 0;
		opacity: 0.8;
	}

	.case .splide__arrow--next {
		right: 0;
		opacity: 0.8;
	}

	.case .bx_arrow img {
		width: 10px;
		padding-top: 0;
	}

	.case .bx .in_tit {
		width: 80px;
		font-size: 15px;
		line-height: 30px;
		margin: 0 auto 10px;
	}

	.case .in_tbl .row .cel.th {
		width: 40%;
		padding: 10px 5px;
	}

	.case .in_tbl .row .cel.td {
		width: calc(60% - 10px);
		padding: 10px 5px;
	}

	.case .in_tbl .row .cel.td_hb {
		min-height: 110px;
		display: flex;
		align-items: center;
	}

	.case .in_tbl .row .cel.td_hi {
		min-height: 720px;
	}

}

.contact_btn {
	height: auto;
	/* padding: 12px 20px; */
	background-color: #C6AF7C;
	color: #fff;
	text-align: center;
	margin-inline: auto;
}

.reservation_btn.contact_btn {
	border: .8px solid #fff;
}

.contact_btn .reserve-link {
	display: block;
	width: 100%;
	padding: 12px 20px;
	background-color: var(--clr_blue);
	padding: 12px 20px;
}

.in_wrap .contact_btn {
	max-width: 392px;
}

.in_wrap .contact_btn .reserve-link {
	font-size: 18px;
}

.an_cent .contact_btn .reserve-link {
	padding: 24px 20px;
	font-size: 18px;
}

@media screen and (max-width:767px) {
	header .contact_btn {
		display: none;
	}

	.in_wrap .contact_btn .reserve-link,
	.an_cent .contact_btn .reserve-link {
		font-size: 16px;
	}

	.menu .reserve-link {
		font-weight: bold;
		color: #fff;
	}
}