@charset "UTF-8";

/*==========================

  00. multi-class
  01. key visual
  02. banner
  03. review
  04. information
  05. all in one
  06. ideal
  07. case	
  08. introduction
  09. message
  10. feature
  11. price
  12. needs
  13. loop
  14. consultation
  15. photo gallery
  16. guide
  17. news
  18. access

 00. multi-class
========================================================================== */
.idx, .idx dl, .idx dt, .idx dd, .idx ul,.idx li, .idx a, .idx span, .idx i, .idx div, .idx p, .idx h2, .idx h3, .idx section, .idx nav, .idx figure, .idx article, .idx aside, .idx h2 {
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}
.idx {
	font-size: max(calc((15 / 1400) * 100vw), calc(15px * 0.97));
	position: relative;
	color: #2e2e2e;
}
.idx img {
	width: 100%;
	max-width: 100%;
}
.idx_otr {
	position: relative;
}
.idx_inr {
	position: relative;
	display: block;
	margin: 0 auto;
}
.idx_box {
	display: block;
	position: relative;
}
.idx_ttl {
	position: relative;
}
.idx_lst {
	display: grid;
	gap: 0.5em;
}
.idx_lst li {
	position: relative;
	padding-left: 0.6em;
	background-repeat:no-repeat;
	background-position: 0 0.4em;
	background-size: 0.8em auto;
}
.idx_lst.idx_lst_dot li::before {
	content: "";
	display: block;
	position: absolute;
	width: 0.2em;
	aspect-ratio: 1 / 1;
	left: 0;
	top: 0.7em;
	background-color: #2e2e2e;
	border-radius: 50%;
}
.idx_lst.idx_lst_check li {
	padding-left: 1.2em;
	background-repeat:no-repeat;
	background-position: 0 0.4em;
	background-size: 0.8em auto;
}
.idx_lm {
	position: absolute;
	width: 100%;
	left: 0;
	top: 0;
	text-align:center;
}
.idx_lm span {
	display: inline-block;
	width: 5.067em;
}
.idx_lm span img {
    aspect-ratio: 76 / 69;
}
.idx_btn {
	text-align: center;
}
.idx_btn a {
	display: inline-block;
}
.idx_btn_arw a,
.idx_btn_arw span {
	position: relative;
	line-height: 1;
	padding: 0 0.5em 0.3em;
}
.idx_btn_arw a::before,
.idx_btn_arw a::after,
.idx_btn_arw span::before,
.idx_btn_arw span::after {
	content: "";
	display: block;
	position: absolute;
	height: 1px;
	background-color: #2e2e2e;
	right: 0;
	bottom: 0;
}
.idx_btn_arw a::before,
.idx_btn_arw span::before {
	width: 0.4em;
	transform: rotate(45deg);
	transform-origin: bottom right;
}
.idx_btn_arw a::after,
.idx_btn_arw span::after {
	width: 100%;
}
.brckts {
	display: inline-block;
	margin: 0 -0.4em;
	font-weight: inherit;
}
.kerning {
	font-feature-settings: 'palt';
}
.kntn {
	padding-top: 0.2em;
	background: top left / 1em 0.3em repeat-x radial-gradient(circle, #333 0.1em, rgba(0,0,0,0) 0.1em) ;
}
/* ------------------------------ slick */
.slide-arrow {
	z-index: 90;
	position: absolute;
	cursor: pointer;
	transition: 0.3s;
}
.slide-arrow:hover {
	opacity: 0.7;
}
/* ------------------------------ twentytwenty */
.twentytwenty-handle {
	width: 5em;
	height: 5em;
	margin-left: -2.5em;
	margin-top: -2.5em;
	border: 0 none;
	background: rgba(255,255,255,0.5);
}
.twentytwenty-horizontal .twentytwenty-handle::before, .twentytwenty-horizontal .twentytwenty-handle:after {
  width: 1px;
  margin-left: -0.5px;
}
.twentytwenty-horizontal .twentytwenty-handle::before {
  bottom: 0;
}
.twentytwenty-horizontal .twentytwenty-handle::after {
  top: 0;
}
.twentytwenty-left-arrow, .twentytwenty-right-arrow {
  width: 0.66em;
  height: 0.66em;
  border: 0.2em solid #505050;
	border-right: 0 none;
	border-bottom: 0 none;
  position: absolute;
}
.twentytwenty-left-arrow {
	margin-left: -1.6em;
	transform: rotate(-45deg);
}
.twentytwenty-right-arrow {
	margin-right: -1.6em;
	transform: rotate(135deg);
}

/*
    00. header, gnav
========================================================================== */
.idx_head .head_ttl {
  font-size: 97.2%;
  text-align: right;
  color: #686868;
}
.idx_gnav {
	margin: 0 0 4.6em;
}

/*
    01. key visual
========================================================================== */
.idx_kv {
	margin: 0 0 1.33em;
	padding: 7.8em 0 0;
	background-repeat: no-repeat;
	background-position: 0 0;
	background-size: cover;
	background-image: url("../images/top/kv_bg.jpg");
	aspect-ratio: 1400 / 909;
}
.idx_kv .idx_ttl {
	position: absolute;
	width: 11.8em;
	left: 6.6em;
	top: 5.8em;
}
.idx_kv .idx_ttl img {
	aspect-ratio: 177 / 157;
}
.idx_kv .idx_lead {
	text-align: center;
	padding-left: 12em;
}
.idx_kv .idx_lead span {
	display: inline-block;
	width: 11.8em;
}
.idx_kv .idx_lead img {
	aspect-ratio: 177 / 643;
}
.idx_kv .badge {
	position: absolute;
	z-index: 3;
	width: 14.73em;
	bottom: 1em;
	right: 26.86em;
}
.idx_kv .badge img {
	aspect-ratio: 221 / 220;
}
.idx_kv_sp {
	position: absolute;
	aspect-ratio: 372 / 690;
	width: 24.8em;
	top: 7.8em;
	right: 5.2em;
	background-repeat: no-repeat;
	background-position: 0 0;
	background-size: cover;
	background-image: url("../images/top/kv_sp_frame.png");
}
.idx_kv_sp::before {
	content: "";
	display: block;
	position: absolute;
	z-index: 5;
	width: 1.51em;
	aspect-ratio: 1 / 1;
	top: 15.4em;
	left: calc(50% - 0.75em);
	background-repeat: no-repeat;
	background-position: 0 0;
	background-size: cover;
	background-image: url("../images/top/kv_sp_arrow.png");
}
.idx_kv_slider {
	padding: 1em 1.36em 0 1.13em;
}
.idx_kv_slider li {
	overflow: hidden;
	border-top-left-radius: 3.2em;
	border-top-right-radius: 3.2em;
}
.idx_kv_slider img {
	aspect-ratio: 334 / 454;
}
.idx_kv_price {
	padding: 0.6em 2.7em 0;
}
.idx_kv_price dt {
	font-size: 150.5%;
	text-align: center;
	border-bottom: 1px solid #cfcfcf;
	margin: 0.5em auto;
	padding: 0 0.3em;
	width: fit-content;
}
.idx_kv_price dt span {
	font-size: 133%;
}
.idx_kv_price dt span em {
	font-size: 187%;
	font-style: italic;
	color: #c7963d;
	font-weight: bold;
	line-height: 1;
}
.idx_kv_price dd {
	display: grid;
	grid-template-columns: 2.35em 1fr;
	align-items: center;
	gap: 0.1em;
	margin: 0 auto;
	width: fit-content;
	position: relative;
}
.idx_kv_price dd span {
	display: block;
}
.idx_kv_price dd span:nth-child(1) {
	padding: 0.6em 0;
	color: #fff;
	background-color: #c6953c;
	text-align: center;
}
.idx_kv_price dd span:nth-child(1) i {
	font-size: 180%;
	line-height: 1;
}
.idx_kv_price dd span:nth-child(2) {
	font-size: 230%;
	color: #c7963d;
	position: relative;
}
.idx_kv_price dd span:nth-child(2) em {
	font-size: 225%;
	line-height: 0.8;
	font-style: italic;
	display: inline-block;
	margin-right: 0.1em;
	letter-spacing: -0.04em;
}
.idx_kv_price dd span:nth-child(2) i {
	position: absolute;
	font-size: 45.46%;
	right: 1.7em;
	top: 0.6em;
}
.idx_kv_price dd span:nth-child(3) {
	position: absolute;
	bottom: -0.6em;
	right: -0.3em;
	color: #c7963d;
	line-height: 1;
	font-size: 158%;
}

/*
    02. banner
========================================================================== */
.idx_banner {
	margin: 0 auto 9.7em;
	width: fit-content;
}
.idx_banner a {
	display: block;
	width: 80.67em;
}
.idx_banner a img {
	aspect-ratio: 1210 / 335;
}
.idx_banner_01 {
	margin: 0 auto 6.2em;
}
.idx_banner_01 img {
	width: 58.26em;
	aspect-ratio: 874 / 201;
}

/*
    03. review
========================================================================== */
.idx_review {
	margin: 0 0 8.8em;
	padding: 3.2em 6em 0;
	background-color: #fefbf0;
	background-repeat: no-repeat;
	background-position: 0 0;
	background-size: 100% auto;
	background-image: url("../images/top/review_bg.png");
	aspect-ratio: 1400 / 440;
	display: grid;
	align-content: start;
	grid-template-columns: 19.4em 1fr;
	color: #656352;
}
.idx_review .idx_ttl {
	position: absolute;
	width: 100%;
	left: 0;
	top: -2em;
	text-align: center;
}
.idx_review .idx_ttl span {
	display: inline-block;
	line-height: 1;
	font-family: 'Times New Roman', Times, serif;
	font-size: 388%;
	letter-spacing: 0.06em;
}
.idx_review .idx_lead {
	text-align: center;
	font-size: 120%;
	font-weight: 300;
	margin: 0 0 3em;
	grid-column: 1 / 3;
}
.idx_review .idx_desc {
	align-self: start;
	text-align: center;
	padding: 3em 0 6em;
	background-repeat: no-repeat;
	background-position: 50% 100%;
	background-size: 10.4em auto;
	background-image: url("../images/top/review_logo.png");
}
.idx_review .idx_desc p {
	font-size: 120%;
	font-weight: 300;
}

/*
    04. information
========================================================================== */
.idx_info {
	margin: 0 0 10.2em;
	padding: 10.2em 4.4em 0;
	min-height: 50.6em;
	background-repeat: no-repeat;
	background-position: 0 0;
	background-size: 66.86em auto;
	background-image: url("../images/top/info_bg.jpg");
}
.idx_info .idx_lm {
	top: -1.4em;
}
.idx_info .idx_ttl {
	position: relative;
	display: grid;
	grid-template-columns: 27.2em 1fr;
	align-items: end;
	padding: 0 0 0.4em;
	margin: 0 0 1em;
}
.idx_info .idx_ttl::before {
	content: "";
	display: block;
	position: absolute;
	width: 40.4em;
	height: 2px;
	left: -4.4em;
	bottom: 0;
	background-color: #737373;
}
.idx_info .idx_ttl span {
	display: block;
	line-height: 1;
}
.idx_info .idx_ttl .en {
	font-family: 'Times New Roman', Times, serif;
	font-size: 328%;
	letter-spacing: 0.05em;
}
.idx_info .idx_ttl .en::first-letter {
	color: #00d7d9;
	font-size: 121%;
}
.idx_info .idx_ttl .ja {
	font-size: 152.8%;
	padding-bottom: 0.4em;
}
.idx_info .idx_lead {
	margin: 0 0 1em;
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: end;
	width: fit-content;
}
.idx_info .idx_lead span {
	font-size: 180%;
}
.idx_info .idx_lead span:nth-of-type(1) {
	line-height: 1.2;
}
.idx_info .idx_lead span:nth-of-type(2) {
	position: relative;
	font-size: 180%;
	background: linear-gradient(to bottom, transparent 0, transparent 95%, #2bfdff 95%, #2bfdff 100%);
}
.idx_info .idx_lead span:nth-of-type(2) > i:nth-of-type(1) {
	display: inline-block;
	margin: 0 -0.4em;
}
.idx_info .idx_lead span:nth-of-type(2) > i:nth-of-type(2) {
	font-size: 67%;
	position: absolute;
	right: 0;
	bottom: -1.5em;
	color: #686868;
}
.idx_info .idx_lead span:nth-of-type(2) em {
	font-size: 180%;
	line-height: 1;
	color: #01b6c6;
}
.idx_info .idx_lead span:nth-of-type(2) em i {
	font-size: 151%;
}
.idx_info .idx_lst {
	gap: 0.3em 0;
}
.idx_info .idx_lst li {
	font-size: 222.2%;
	padding-left: 1.35em;
	line-height: 1.4;
	background-size: 1.02em auto;
	background-position: 0 0.32em;
	background-image: url("../images/top/info_check.png");
	letter-spacing: 0.06em;
}
.idx_info .idx_lst li i {
	font-size: 87.5%;
}
.idx_info .idx_lst li em {
	color: #00d7d9;
}
.idx_info .idx_lst li:nth-of-type(2) em {
	font-size: 120%;
	line-height: 1;
}
.idx_info .idx_lst li em i {
	font-size: 125%;	
	line-height: 1;
}
.idx_info_scroll {
	position: absolute;
	right: 0;
	top: 5em;
}
.idx_info .scroll_wrp {
  position: relative;
  overflow: hidden;
  width: 32.8em;
  height: 35.6em;
}
.idx_info .scroll_set {
  position: absolute;
  top: -7.5em;
  left: 9.7em;
  z-index: 1;
  overflow: hidden;
  display: flex;
  justify-content: space-between;
  gap: 0;
  transform: rotate(12.5deg);
  transform-origin: top left;
}
.idx_info .scroll_box {
  overflow: hidden;
}
.idx_info .scroll_lst {
  display: flex;
  list-style: none;
  padding: 0;
}
.idx_info .scroll_list + .scroll_list {
  margin-top: 0;
}
.idx_info .scroll_item {
  width: 16em;
}
.idx_info .scroll_item > img {
  width: 100%;
}
@keyframes infinity-scroll-left {
  from {
    transform: translateY(0);
  }
  to {
    transform: translateY(-100%);
  }
}
.idx_info .scroll_box_left .scroll_list {
  animation: infinity-scroll-left 50s infinite linear 0.5s both;
}
@keyframes infinity-scroll-right {
  from {
    transform: translateY(-100%);
  }
  to {
    transform: translateY(0%);
  }
}
.idx_info .scroll_box_right .scroll_list {
  animation: infinity-scroll-right 50s infinite linear 0.5s both;
}

/*
    05. all in one
========================================================================== */
.idx_aio {
	margin: 0 3em 15.6em;
}
.idx_aio::before {
	content: "";
	display: block;
	position: absolute;
	z-index: -1;
	top: -1.4em;
	right: 0;
	width: 21.33em;
	aspect-ratio: 320 / 289;
	background-repeat: no-repeat;
	background-position: 0 0;
	background-size: cover;
	background-image: url("../images/top/aio_deco.png");
}
.idx_aio .idx_ttl {
	text-align: center;
	width: fit-content;
	margin: 0 auto 2em;
	display: grid;
	grid-template-columns: 27.2em 1fr;
	align-items: center;
}
.idx_aio .idx_ttl span {
	line-height: 1;
	display: block;
	letter-spacing: 0.08em;
}
.idx_aio .idx_ttl span:nth-of-type(1) {
	font-size: 388%;
	font-family: 'Times New Roman', Times, serif;	
	text-align: left;
	letter-spacing: 0.04em;
}
.idx_aio .idx_ttl span:nth-of-type(2) {
	font-size: 138.9%;	
	position: relative;
}
.idx_aio .idx_ttl span:nth-of-type(2)::before,
.idx_aio .idx_ttl span:nth-of-type(2)::after {
	content: "";
	display: block;
	position: absolute;
	width: 1.3em;
	height: 1px;
	top: 50%;
	background-color: #2e2e2e;
}
.idx_aio .idx_ttl span:nth-of-type(2)::before {
	left: -2em;
}
.idx_aio .idx_ttl span:nth-of-type(2)::after {
	right: -2em;
}
.idx_aio .idx_lead {
	text-align: right;
}
.idx_aio .idx_lead span {
	display: block;
	font-size: 321%;
	line-height: 1.3;
	letter-spacing: -0.06em;
}
.idx_aio .idx_lead span > i {
	font-size: 114.6%;
}
.idx_aio .idx_lead span em {
	font-size: 125%;
	display: inline-block;
	margin: 0 -0.4em;
}
.idx_aio .idx_lead span em i {
	color: #5ab8cc;
	letter-spacing: -0.06em;
}
.idx_aio .idx_lead span:nth-of-type(1) {
	margin-right: 4em;
}
.idx_aio .idx_inr {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	align-content: start;
	gap: 0 0.5em;
}
.idx_aio .idx_box {
	padding: 29.4em 0 0;
	background-repeat: no-repeat;
	background-position: 0 0;
	background-size: 100% auto;
}
.idx_aio .idx_box::before {
	content: "";
	display: block;
	position: absolute;
	z-index: 5;
	width: 4.13em;
	aspect-ratio: 1 / 1;
	top: 7.2em;
	left: -1.73em;
	background-repeat: no-repeat;
	background-position: 0 0;
	background-size: cover;
	background-image: url("../images/top/aio_plus.png");
}
.idx_aio .idx_box .ttl {
	position: relative;
	margin: 0 0 1.2em;
	padding: 0 1.6em 0.8em;
}
.idx_aio .idx_box .ttl::before {
	content: "";
	display: block;
	position: absolute;
	width: 6.616em;
	aspect-ratio: 1 / 1;
	left: 0.8em;
	top: -1.6em;
	border-radius: 50%;
}
.idx_aio .idx_box .ttl::after {
	content: "";
	display: block;
	position: absolute;
	width: 100%;
	height: 1px;
	left: 0;
	bottom: 0;
	background-color: #2e2e2e;
}
.idx_aio .idx_box .ttl span {
	position: relative;
	z-index: 2;
	font-size: 277.8%;
	display: block;
	line-height: 1.1;
}.idx_aio .idx_box .desc {
	position: relative;
	z-index: 3;
	font-size: 138%;
	padding: 0 0.8em;
	line-height: 1.4;
}
/* --------------------------- 01 */
.idx_aio .bx_01 {
	transform: translate(0, -8em);
	background-image: url("../images/top/aio_01_bg.jpg");
}
.idx_aio .bx_01::before {
	display: none;
}
.idx_aio .bx_01 .fig {
	position: absolute;
	top: 17.3em;
	left: 3.7em;
	width: 21.46em;
}
.idx_aio .bx_01 .fig img {
	aspect-ratio: 322 / 128;
}
.idx_aio .bx_01 .ttl::before {
	background-color: #ffdfb6;
}
.idx_aio .bx_01 .desc {
	letter-spacing: -0.08em;
}
.idx_aio .bx_01 .desc em {
	color: #e79122;
}
/* --------------------------- 02 */
.idx_aio .bx_02 {
	background-image: url("../images/top/aio_02_bg.jpg");
}
.idx_aio .bx_02 .ttl::before {
	background-color: #fff2b6;
}
.idx_aio .bx_02 .desc {
	letter-spacing: 0.04em;
}
.idx_aio .bx_02 .desc em {
	color: #d2b21f;
}
.idx_aio .bx_02 .fig {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
    animation: fadeInOut 8s infinite;
}
@keyframes fadeInOut {
	0% {
		opacity: 1;
	}
	40% {
		opacity: 1;
	}
	50% {
		opacity: 0;
	}
	90% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}
/* --------------------------- 03 */
.idx_aio .bx_03 {
	transform: translate(0, 8em);
	background-image: url("../images/top/aio_03_bg.jpg");
}
.idx_aio .bx_03 .ttl::before {
	background-color: #e2f5af;
}
.idx_aio .bx_03 .desc {
	letter-spacing: -0.1em;
}
.idx_aio .bx_03 .desc em {
	color: #88b01c;
}

/*
    06. ideal
========================================================================== */
.idx_ideal {
	margin: 0 0 13.4em;
	min-height: 85em;
	background-repeat: no-repeat;
	background-position: 0 -4.5em;
	background-size: 100% auto;
	background-image: url("../images/top/ideal_bg.jpg");
	display: grid;
	grid-template-columns: 23em 1fr;
	align-items: start;
}
.idx_ideal .idx_head {
	text-align: center;
	padding: 4.6em 2.8em 0;
	color: #fff;
}
.idx_ideal .idx_ttl {
	margin: 0 0 2.4em;	
	border-bottom: 2px solid #fff;
	display: grid;
	gap: 1.2em 0;
	padding: 0 0 2.2em;
}
.idx_ideal .idx_ttl span {
	display: block;
	font-size: 433%;
	font-family: 'Times New Roman', Times, serif;
	line-height: 1;
	letter-spacing: 0.08em;
}
.idx_ideal .idx_ttl span:nth-of-type(2) {
	width: 2.22em;
	font-size: 100%;
	margin: 0 auto;
}
.idx_ideal .idx_lead {
	width: 9.66em;
	margin: 0 auto 2.4em;
}
.idx_ideal .idx_lead img {
	aspect-ratio: 145 / 573;
}
.idx_ideal .idx_inr {
	width: unset;
	max-width: unset;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2.2em 1em;
	margin: 0;
	padding: 10.53em 4.4em 0;
}
.idx_ideal .idx_badge {
	position: absolute;
	width: 9.8em;
	top: 0;
	left: 2.4em;
}
.idx_ideal .idx_badge img {
	aspect-ratio: 147 / 147;
}
.idx_ideal .idx_catch {
	grid-column: 1 / 4;
	padding: 0 0 0 3.2em;
	margin: 0 0 0.5em;
}
.idx_ideal .idx_catch span {
	display: block;
	line-height: 1.2;
	letter-spacing: 0.1em;
}
.idx_ideal .idx_catch p:nth-of-type(1) {
	font-size: 280%;
	margin: 0 0 0.5em;
}
.idx_ideal .idx_catch p:nth-of-type(1) span > i {
	font-size: 142%;
	display: inline-block;
	margin: 0 -0.5em;
}
.idx_ideal .idx_catch p:nth-of-type(1) span em {
	color: #20add6;
	line-height: 1.2;
	display: inline-block;
	border-bottom: 0.1em solid #9df2ff;
}
.idx_ideal .idx_catch p:nth-of-type(1) span em i {
	font-size: 90%;
}
.idx_ideal .idx_catch p:nth-of-type(2) {
	font-size: 188%;
}
.idx_ideal .idx_catch p:nth-of-type(2) i {
	font-size: 116.6%;
}
.idx_ideal .idx_catch p:nth-of-type(2) em {
	font-size: 133.3%;
	color: #20add6;
}
/* --------------------------- common */
.idx_ideal .idx_box {
	background-color: #fff;
	display: grid;
	grid-template-rows: subgrid;
	grid-row: span 4;
	padding-bottom: 1.2em;
	gap: 0;
}
.idx_ideal .idx_box::before {
	content: "";
	display: block;
	position: absolute;
	width: 1.8em;
	aspect-ratio: 27 / 23;
	clip-path: polygon(0 0, 100% 0, 50% 100%);
	background-color: #20add6;
	top: -0.6em;
	left: calc(50% - 0.9em);
}
.idx_ideal .idx_box .fig {
	display: grid;
	align-items: center;
	text-align: center;
	margin: 0 auto;
	padding: 0.5em 0 0;
}
.idx_ideal .idx_box .ttl {
	text-align: center;
	font-size: 138%;
	font-weight: 500;
	border-bottom: 1px solid #20add6;
	color: #20add6;
	margin: 0 0.7em 0.5em;
	padding: 0 0 0.1em;
}
.idx_ideal .idx_box .desc {
	font-size: 138%;
	font-weight: 300;
	margin: 0 1.5em 0.5em;
}
.idx_ideal .idx_box .idx_btn {
	margin: 0 1em;
	text-align: right;
	color: #20add6;
}
.idx_ideal .idx_box .idx_btn span::before,
.idx_ideal .idx_box .idx_btn span::after {
	background-color: #20add6;
}
/* --------------------------- 01 */
.idx_ideal .bx_01 .fig {
	width: 14.66em;
}
.idx_ideal .bx_01 .fig img {
	aspect-ratio: 220 / 73;
}
/* --------------------------- 02 */
.idx_ideal .bx_02 .fig {
	width: 15.46em;
}
.idx_ideal .bx_02 .fig img {
	aspect-ratio: 232 / 155;
}
/* --------------------------- 03 */
.idx_ideal .bx_03 .fig {
	width: 15.33em;
}
.idx_ideal .bx_03 .fig img {
	aspect-ratio: 230 / 128;
}
/* --------------------------- 04 */
.idx_ideal .bx_04 .fig {
	width: 14.66em;
	padding-top: 1em;
}
.idx_ideal .bx_04 .fig img {
	aspect-ratio: 220 / 147;
}
/* --------------------------- 05 */
.idx_ideal .bx_05 .fig {
	width: 13.26em;
}
.idx_ideal .bx_05 .fig img {
	aspect-ratio: 199 / 179;
}
/* --------------------------- 06 */
.idx_ideal .bx_06 .fig {
	width: 14.26em;
}
.idx_ideal .bx_06 .fig img {
	aspect-ratio: 214 / 147;
}

/*
    07. case	
========================================================================== */
.idx_case {
	height: 71.6em;
	margin: 0 0 7.2em;
	padding: 2.4em 5em;
	background-repeat: no-repeat;
	background-position: 0 0;
	background-size: cover;
	background-image: url("../images/top/case_bg.png");
}
.idx_case .idx_lm {
	top: -9.2em;
}
.idx_case .idx_desc {
	text-align: center;
	color: #3d3d3d;
	font-size: 106.6%;
	margin: 0 0 2.25em;
}
.idx_case .idx_inr {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2.6em 2.6em;
	margin: 0 0 2.6em;
}
.idx_case .idx_box {
	background-color: #fff;
	padding: 2.8em 2.4em;
	min-height: 27em;
	box-shadow: 0.5em 0.5em 0 rgba(128,128,128,0.1);
}
.idx_case .idx_box .nbr {
	position: absolute;
	top: 0;
	left: 0;
	width: 4.8em;
}
.idx_case .idx_box .nbr::before {
	content: "";
	display: block;
	position: absolute;
	width: 7.2em;
	aspect-ratio: 1 / 1;
	background-color: #66d9cd;
	clip-path: polygon(0 0, 100% 0, 0 100%);
}
.idx_case .idx_box:nth-of-type(2n) .nbr::before {
	background-color: #76d4e8;
}
.idx_case .idx_box .nbr span {
	position: relative;
	color: #fff;
	display: block;
	width: 100%;
	text-align: center;
	padding-top: 0.5em;
}
.idx_case .idx_box .nbr span i {
	display: block;
	font-family: 'Times New Roman', Times, serif;
	line-height: 1;
}
.idx_case .idx_box .nbr span i:nth-of-type(1) {
	font-size: 125%;
}
.idx_case .idx_box .nbr span i:nth-of-type(2) {
	font-size: 277.8%;
}
.idx_case .idx_box .ttl {
	text-align: center;
	font-size: 166.6%;
	line-height: 1;
	margin: 0 0 0.84em;
}
.idx_case_ba {
	margin: 0 0 1.2em;
}
.idx_case .idx_box .desc {
	font-size: 93.3%;
}
.idx_case .idx_btn a {
	width: 17.33em;
}
.idx_case .idx_btn a img {
	aspect-ratio: 260 / 46;
}

/*
    08. introduction
========================================================================== */
.idx_intro {
	padding: 6.6em 4.2em 10.2em;
	background-repeat: no-repeat;
	background-position: 0 0;
	background-size: cover;
	background-image: url("../images/top/intro_bg.jpg");
}
.idx_intro .idx_en {
	margin: 0 0 2.4em 31em;
}
.idx_intro .idx_en span {
	font-family: 'Times New Roman', Times, serif;
	font-size: 555%;
	font-style: italic;
	color: #adc4c7;
	opacity: 0.25;
	line-height: 1;
}
.idx_intro .idx_lead {
	margin: 0 0 6.2em 30.6em;
	display: grid;
	gap: 1.4em 0;
}
.idx_intro .idx_lead span {
	display: block;
	font-size: 250%;
	line-height: 1;
}
.idx_intro .idx_lead span:nth-of-type(1) {
	font-size: 287.2%;
	margin-bottom: 0.2em;
	letter-spacing: 0.04em;
}
.idx_intro .idx_lead span:nth-of-type(1) i {
	font-size: 110%;
}
.idx_intro .idx_lead span:nth-of-type(1) em {
	color: #42b8d1;
}
.idx_intro .idx_lead span:nth-of-type(3) {
	font-size: 361%;
	position: relative;
	margin-left: -0.7em;
	padding-bottom: 0.2em;
	width: fit-content;
}
.idx_intro .idx_lead span:nth-of-type(3)::before {
	content: "";
	display: block;
	position: absolute;
	width: calc(100% - 1.6em);
	height: 0.07em;
	background-color: #5ecae1;
	left: 0.8em;
	bottom: 0;
}
.idx_intro .idx_lead span:nth-of-type(3) i {
	font-size: 115%;
}
/* --------------------------- common */
.idx_intro .idx_inr {
	background-color: #fff;
}
.idx_intro .bx_pos {
	font-size: 138.8%;
	line-height: 1;
	margin: 0 0 0.8em;
}
.idx_intro .bx_ttl {
	display: grid;
	grid-template-columns: 11.2em 1fr;
	gap: 0 1.5em;
	align-items: center;
	margin: 0 0 1.2em;
}
.idx_intro .bx_ttl span {
	display: block;
	line-height: 1;
}
.idx_intro .bx_ttl span:nth-of-type(1) {
	background-color: #5ecae1;
	color: #fff;
	text-align: center;
	font-size: 222.2%;
	padding: 0.4em 0 0.5em;
}
.idx_intro .bx_ttl span:nth-of-type(2) {
	font-size: 416%;
}
.idx_intro .bx_en {
	font-size: 416%;
	line-height: 1;
	font-family: 'Times New Roman', Times, serif;
	font-style: italic;
	opacity: 0.1;
	margin: 0 0 0.4em;
}
.idx_intro .bx_award {
	display: grid;
	grid-template-columns: 14em 14em 14em;
	gap: 0 1.5em;
	margin: 0 0 1.7em;
}
.idx_intro .bx_award li {
	aspect-ratio: 211 / 194;
	display: grid;
	align-items: center;
	text-align: center;
	background-repeat: no-repeat;
	background-position: 0 0;
	background-size: cover;
	background-image: url("../images/top/intro_award.png");
}
.idx_intro .bx_award li span {
	display: block;
	width: 100%;
	color: #b79230;
	font-size: 156%;
	line-height: 1.4;
}
.idx_intro .bx_award li span:nth-of-type(1) {
	color: #616161;
	font-size: 130%;
}
.idx_intro .bx_award li:nth-of-type(1) span:nth-of-type(2) {
	font-size: 258%;
	line-height: 1;
}
.idx_intro .bx_award li:nth-of-type(1) span:nth-of-type(2) i {
	font-size: 144%;
}
.idx_intro .bx_award li:nth-of-type(3) span:nth-of-type(2) {
	font-size: 182%;
	line-height: 1;
}
.idx_intro .bx_award li:nth-of-type(3) span:nth-of-type(2) i {
	font-size: 152%;
	display: inline-block;
	letter-spacing: -0.04em;
}
.idx_intro .bx_career {
	display: grid;
	grid-template-columns: 21.7em 1fr;
}
.idx_intro .bx_career dl {
	font-size: 111%;
}
.idx_intro .idx_inr .fig {
	position: absolute;
	width: 33.33em;
	outline: 0.66em solid #fff;
	box-shadow: 0.6em 0.6em 0.9em rgba(133,133,133,0.3);
}
.idx_intro .idx_inr .fig img {
	aspect-ratio: 500 / 750;
}
/* --------------------------- 01 */
.idx_intro_01 {
	margin: 0 0 9.4em;
	padding: 2.5em 3.2em 2.2em;
}
.idx_intro_01 .fig {
	top: -1.8em;
	right: 0;
}
.idx_intro_01 .bx_award li:nth-of-type(2) span:nth-of-type(2) {
	font-size: 195%;
}
/* --------------------------- 02 */
.idx_intro_02 {
	padding: 4.4em 0 4.4em 37em;
}
.idx_intro_02 .fig {
	top: -6em;
	left: 0;
}
.idx_intro_02 .bx_award li:nth-of-type(2) span:nth-of-type(2) {
	font-size: 166%;
	line-height: 1.1;
}

/*
    09. message 
========================================================================== */
.idx_msg {
	margin: 0 0 6.2em;
	padding: 3.6em 0 0;
	aspect-ratio: 1400 / 1025;
	background-color: #f2f4f6;
	background-repeat: no-repeat;
	background-position: 50% 100%;
	background-size: cover;
	background-image: url("../images/top/msg_bg.jpg");
	display: grid;
	justify-content: center;
	width: 100%;
}
.idx_msg .idx_inr {
	-ms-writing-mode: tb-rl;
	writing-mode: vertical-rl;
	justify-self: center;
}
.idx_msg .ttl {
	margin: 0 0 0 5.6em;
}
.idx_msg .ttl span {
	display: block;
	font-size: 240%;
	height: fit-content;
	letter-spacing: 0.1em;
	line-height: 1.2;
	background: linear-gradient(to right, transparent 0, transparent 80%, rgba(113,212,224, 0.2) 80%, rgba(113,212,224, 0.2) 100%);
	font-weight: 500;
}
.idx_msg .ttl span:nth-of-type(2) {
	margin: 2em 0.6em 0 0;
}
.idx_msg .idx_inr p {
	font-size: 138%;
	letter-spacing: 0.2em;
}
.idx_msg .desc {
	display: grid;
	gap: 2.4em 0;
	margin-left: 3em;
}
.idx_msg .desc p {
	line-height: 2;
}
.idx_msg .desc p em {
	color: #33a5bd;
}
.idx_msg .desc p i {
	display: inline-block;
	transform: translate(0.3em, 0);
}
.idx_msg .idx_inr .sign {
	margin-top: 8em;
}

/*
    10. feature
========================================================================== */
.idx_feat {
	margin: 13.4em 0 6.2em;
	padding: 4.2em 0 0;
	background-repeat: no-repeat;
	background-position: 0 0;
	background-size: 100% auto;
	background-image: url("../images/top/feat_bg.jpg");
}
.idx_feat .idx_lm {
	top: -4.6em;
}
.idx_feat .idx_ttl {
	width: 11.53em;
	margin: 0 auto 3.8em;
}
.idx_feat .idx_ttl img {
	aspect-ratio: 173 / 615;
}
.idx_feat .idx_inr {
	margin: 0 4.8em 4em;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 3.2em 3.8em;
}
/* --------------------------- common */
.idx_feat .idx_box {
	display: grid;
	grid-template-columns: 1fr 12em;
	gap: 0 2em;
}
.idx_feat .idx_box .fig,
.idx_feat .idx_box .ttl {
	grid-column: 1 / 3;
}
.idx_feat .idx_box .ttl {
	display: grid;
	grid-template-columns: 7.8em 1fr;
	gap: 0 1.2em;
	align-items: center;
	border-bottom: 1px solid #2e2e2e;
	padding: 0 0 0.2em;
	margin: 0 0 0.8em;
}
.idx_feat .idx_box .ttl p {
	font-family: 'Times New Roman', Times, serif;
	line-height: 1;
	font-size: 555.6%;
	text-align: right;
}
.idx_feat .idx_box .ttl h3 span {
	display: block;
	line-height: 1.4;
	font-size: 166.6%;
	letter-spacing: 0.1em;
}
.idx_feat .idx_box .ttl h3 span i {
	font-size: 116.7%;
	line-height: 1;
}
.idx_feat .idx_box .desc {
	font-size: 138.8%;
	align-self: center;
	line-height: 1.4;
	padding-left: 2em;
	letter-spacing: -0.04em;
}
.idx_feat .idx_box .sfig {
	width: 9.33em;
}
.idx_feat .idx_box .sfig img {
	aspect-ratio: 1 / 1;
}
.idx_feat .idx_desc {
	font-size: 111%;
	padding: 2em 7.2em;
	background-color: #f7f7f8;
}
/* --------------------------- 01 */
.idx_feat .bx_01 .desc em,
.idx_feat .bx_01 .ttl p {
	color: #45d1c0;
}
.idx_feat .bx_01 .ttl em {
	color: #0db9a4;
}
/* --------------------------- 02 */
.idx_feat .bx_02 .desc em,
.idx_feat .bx_02 .ttl p {
	color: #47c0d5;
}
.idx_feat .bx_02 .ttl em {
	color: #20a2b9;
}
/* --------------------------- 03 */
.idx_feat .bx_03 .desc em,
.idx_feat .bx_03 .ttl em {
	color: #1e9be2;
}
.idx_feat .bx_03 .ttl p {
	color: #3facea;
}
/* --------------------------- 04 */
.idx_feat .bx_04 .ttl p {
	color: #a59de0;
}
.idx_feat .bx_04 .ttl em {
	color: #8a81cf;
}
.idx_feat .bx_04 .desc em {
	color: #867bd3;
}
.idx_feat .bx_04 .desc span {
	display: block;
	font-size: 90%;
	margin-top: 0.8em;
}

/*
    11. price 
========================================================================== */
.idx_prc {
	margin: 0 0 7.8em;
	padding: 8em 0 0;
}
.idx_prc .idx_lm {
	top: 0;
}
.idx_prc .idx_ttl {
	margin: 0 0 3.4em;
	text-align: center;
}
.idx_prc .idx_ttl span {
	display: block;
	line-height: 1.3;
	letter-spacing: 0.06em;
}
.idx_prc .idx_ttl .en {
	font-family: 'Times New Roman', Times, serif;
	font-size: 388%;
}
.idx_prc .idx_ttl .ja {
	font-size: 194%;
}
.idx_prc .idx_inr {
	padding: 2em 3.2em 3em;
	background-repeat: no-repeat;
	background-position: 0 0;
	background-size: cover;
	background-image: url("../images/top/prc_bg.png");
}
.idx_prc .prc_catch {
	margin: 0 0 0.8em;
}
/* --------------------------- zero */
.idx_prc .prc_zero {
	padding: 2.8em 11.46em 4.4em;
	margin: 0 0 4em;
	background-color: #f9f6f3;
}
.idx_prc .prc_zero .ttl {
	margin: 0 0 0.7em;
	font-size: 305%;
	line-height: 1;
	text-align: center;
	font-weight: 500;
}
.idx_prc .prc_zero .ttl * {
	font-weight: 500;
}
.idx_prc .prc_zero .ttl i {
	font-size: 118%;
}
.idx_prc .prc_zero .ttl em {
	color: #4cb0b9;
}
.idx_prc .prc_zero .lead {
	font-size: 138.8%;
	margin: 0 0 1.5em;
	text-align: center;
	line-height: 1;
	color: #606060;
}
.idx_prc .prc_zero .prc_lst {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.8em 1.8em;
	padding-bottom: 5.8em;
	background-repeat: no-repeat;
	background-position: 50% 100%;
	background-size: 1.6em auto;
	background-image: url("../images/top/prc_arrow.png");
}
.idx_prc .prc_zero .prc_count {
	text-align: center;
	margin: 0 0 1.8em;
}
.idx_prc .prc_zero .prc_count * {
	font-weight: bold;
}
.idx_prc .prc_zero .prc_count span {
	font-size: 833%;
	color: #ff7132;
	line-height: 1;
}
.idx_prc .prc_zero .prc_count i {
	font-size: 416%;
	line-height: 1;
}
.idx_prc .prc_zero .prc_note {
	font-size: 125%;
	text-align: center;
	line-height: 1;
	color: #606060;
}
.idx_prc .idx_lead {
	text-align: center;
	font-size: 222.2%;
	font-weight: bold;
	color: #2e2e2e;
	padding: 0 0 1.6em;
	margin: 0 0 1.36em;
	background-repeat: no-repeat;
	background-position: 50% 100%;
	background-size: 2.46em auto;
	background-image: url("../images/top/prc_lead_tri.png");
}
.idx_prc .idx_lead em {
	font-weight: bold;
	color: #4cb0b9;
}
/* --------------------------- prc_set */
.idx_prc .prc_set {
	display: grid;
	gap: 0 2em;
}
.idx_prc .prc_set_01 {
	grid-template-columns: 1fr 1fr;
	margin-bottom: 2em;
}
.idx_prc .prc_set_02 {
	grid-template-columns: 1fr 1fr 1fr;
	margin: 0 0 3em;
}
.idx_prc .prc_set .idx_box {
	text-align: center;
	background-color: #fff;
	box-shadow: 0.1em 0.1em 0.2em rgba(76,176,185,0.5);
}
.idx_prc .prc_set_01 .idx_box {
	padding: 1.6em 4.2em;
}
.idx_prc .prc_set_02 .idx_box {
	padding: 0.8em 1.6em 1.6em;
}
.idx_prc .prc_set .nbr {
	position: absolute;
	width: 7.6em;
	top: 0;
	left: 0;
}
.idx_prc .prc_set .nbr img {
	aspect-ratio: 114 / 105;
}
.idx_prc .prc_set_01 .idx_box .ttl {
	font-size: 222.2%;
	margin: 0 0 0.45em;
}
.idx_prc .prc_set_02 .idx_box .ttl {
	display: grid;
	align-items: center;
	height: 6em;
}
.idx_prc .prc_set_02 .idx_box .ttl span i {
	display: block;
	font-size: 194.4%;
	line-height: 1.2;
}
.idx_prc .prc_set_02 .idx_box .ttl span i:nth-of-type(2) {
	font-size: 138.8%;
}
.idx_prc .prc_set .val {
	font-weight: 500;
	font-size: 210%;
}
.idx_prc .prc_set .val em {
	font-weight: 500;
	font-size: 157%;
	color: #d7271d;
}
.idx_prc .prc_set .note {
	font-size: 150%;
}
.idx_prc .prc_set_02 .note {
	line-height: 1;
}
/* --------------------------- payment */
.idx_prc .prc_pay {
	display: grid;
	grid-template-columns: 48.13em 1fr;
	gap: 0 1.4em;
}
.idx_prc .prc_pay dl {
	background-color: #fff;
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: center;
}
.idx_prc .prc_pay dt {
	background-color: #4cb0b9;
	color: #fff;
	font-size: 166.6%;
	line-height: 1.2;
	padding: 1em 0.6em;
	text-align: center;
	display: grid;
	align-items: center;
	height: 100%;
}
.idx_prc .prc_pay dl:nth-of-type(1) dd {
	padding: 0 1em;
}
.idx_prc .prc_pay dl:nth-of-type(2) dd {
	position: relative;
	padding: 0 1em;
	font-size: 152.8%;
	height: 100%;
	background-repeat: no-repeat;
	background-position: calc(100% - 1em) 50%;
	background-size: 3.88em auto;
	background-image: url("../images/top/prc_graph.png");
}
.idx_prc .prc_pay dl:nth-of-type(2) dd em {
	color: #4cb0b9;
	font-size: 131%;
}

/*
    12. needs
========================================================================== */
.idx_needs {
	margin: 13.8em 0 9.6em;
	padding: 10.8em 0 0;
	background-repeat: no-repeat;
	background-position: 0 0;
	background-size: 100% auto;
	background-image: url("../images/top/needs_bg.jpg");
}
.idx_needs .idx_lm {
	top: -8.2em;
}
.idx_needs .idx_ttl {
	width: 38.66em;
	margin: 0 auto 13em 9.8em;
}
.idx_needs .idx_ttl img {
	aspect-ratio: 580 / 480;
}
.idx_needs .idx_desc {
	font-size: 111%;
	margin: 0 7.26em 2.58em;
	line-height: 1.5;
	color: #333333;
}
.idx_needs .idx_inr {
	background-color: #f8f8f5;
	padding: 4.2em 6em 5em;
}
.idx_needs .grp_ttl {
	grid-column: 1 / 4;
	width: 45em;
	margin: 0 auto 4.3em;
	padding: 0.5em 0 0.7em;
	text-align: center;
}
.idx_needs .grp_01 .grp_ttl {
	background-color: #39a7cd;
}
.idx_needs .grp_02 .grp_ttl {
	background-color: #5cc1ad;
}
.idx_needs .grp_03 .grp_ttl {
	background-color: #a4b966;
}
.idx_needs .grp_ttl span {
	font-size: 222.2%;
	line-height: 1;
	color: #fff;
}
.idx_needs .grp_ttl span i {
	font-size: 112.5%;
}
/* --------------------------- common */
.idx_needs .idx_grp {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0 2.4em;
	margin: 0 0 4.2em;
}
.idx_needs .idx_grp .idx_box {
	background-color: #fff;
	padding: 1.8em 1.6em 2em;
	box-shadow: 0.1em 0.1em 0.2em rgba(51,51,51,0.15);
	display: grid;
	grid-template-rows: subgrid;
	grid-row: span 4;
}
.idx_needs .idx_grp .idx_box::before {
	content: "";
	display: block;
	position: absolute;
	width: 2em;
	aspect-ratio: 1 / 1;
	bottom: 0;
	right: 0;
	clip-path: polygon(100% 0, 100% 100%, 0 100%);
}
.idx_needs .grp_01 .idx_box::before {
	background-color: #39a7cd;
}
.idx_needs .grp_02 .idx_box::before {
	background-color: #5cc1ad;
}
.idx_needs .grp_03 .idx_box::before {
	background-color: #a4b966;
}
.idx_needs .idx_grp .idx_box .nbr {
	position: absolute;
	width: 100%;
	left: 0;
	top: -2em;
	text-align: center;
}
.idx_needs .grp_01 .idx_box .nbr {
	color: #39a7cd;
}
.idx_needs .grp_02 .idx_box .nbr {
	color: #5cc1ad;
}
.idx_needs .grp_03 .idx_box .nbr {
	color: #a4b966;
}
.idx_needs .idx_grp .idx_box .nbr span {
	line-height: 1;
	font-size: 388%;
	font-family: 'Times New Roman', Times, serif;
}
.idx_needs .idx_grp .idx_box .fig {
	margin: 0 0 1.4em;
}
.idx_needs .idx_grp .idx_box .fig img {
	aspect-ratio: 336 / 258;
}
.idx_needs .idx_grp .idx_box .ttl {
	font-size: 208%;
	text-align: center;
	line-height: 1;
	padding: 0 0 0.4em;
	margin: 0 0.48em 0.4em;
	border-bottom: 1px solid #868686;
}
.idx_needs .idx_grp .bx_09 .ttl {
	letter-spacing: -0.04em;
}
.idx_needs .idx_grp .idx_box .desc {
	font-size: 125%;
	margin: 0 auto 0.5em;
	width: fit-content;
	font-weight: 300;
	line-height: 1.4;
}
.idx_needs .idx_grp .idx_box .idx_lst {
	margin: 0 auto;
	width: 100%;
	padding: 0.8em 1.4em;
}
.idx_needs .grp_01 .idx_box .idx_lst {
	background-color: #f2fcff;
}
.idx_needs .grp_02 .idx_box .idx_lst {
	background-color: #f0fdfa;
}
.idx_needs .grp_03 .idx_box .idx_lst {
	background-color: #f6f9eb;
}
.idx_needs .idx_grp .idx_box .idx_lst li {
	font-size: 125%;
	font-weight: 300;
	padding-left: 1.1em;
	line-height: 1.2;
	background-image: url("../images/top/needs_check.png");
}
/* --------------------------- 03b */
.idx_needs .idx_grp.grp_03b {
	margin: 5em 0 0;
	grid-template-columns: repeat(2, 1fr);
}
.idx_needs .idx_grp.grp_03b .idx_box {
	padding: 1.8em 1.6em 2em;
	grid-template-columns: 16em 1fr;
	grid-template-rows: unset;
	grid-row: unset;
	align-items: start;
	gap: 0 0.8em;
}
.idx_needs .grp_03b .idx_box .fig {
	grid-row: 1 / 4;
	margin: 0;
}
.idx_needs .grp_03b .idx_box .fig img {
	aspect-ratio: 240 / 238;
}
.idx_needs .grp_03b .idx_box .ttl {
	text-align: left;
	line-height: 1.1;
	padding: 0 0.5em 0.3em;
}
.idx_needs .grp_03b .idx_box .desc {
	width: 100%;
	padding: 0 1.5em;
}
.idx_needs .grp_03 .idx_box .idx_lst {
	gap: 0.3em;
}

/*
    13. loop
========================================================================== */
.idx_loop {
	overflow: hidden;
	background-color: #e9e9e9;
	padding: 2.4em 0;
	margin: 0 0 10.6em;
}
.idx_loop img {
	width: unset;
	max-width: unset;
	height: 13.66em;
}

/*
    14. consultation
========================================================================== */
.idx_consult {
	margin: 0 auto 10.8em;
	padding: 3.4em 0 0;
	width: 86.67em;
	aspect-ratio: 1300 / 561;
	background-repeat: no-repeat;
	background-position: 0 0;
	background-size: cover;
	background-image: url("../images/top/consult_bg.jpg");
	text-align: center;
}
.idx_consult .idx_lm {
	top: -7em;
}
.idx_consult .idx_lead {
	margin: 0 0 1.5em;
}
.idx_consult .idx_lead span {
	display: block;
	line-height: 1;
}
.idx_consult .idx_lead span:nth-of-type(1) {
	font-size: 277.8%;
	color: #56b1c4;
	margin-bottom: 0.4em;
}
.idx_consult .idx_lead span:nth-of-type(2) {
	font-size: 166.6%;
	color: #3a3a3a;
}
.idx_consult .idx_ttl {
	margin: 0 auto 1.1em;
	width: fit-content;
	background-color: #5ab8cc;
	color: #fff;
} 
.idx_consult .idx_ttl span {
	display: block;
	line-height: 1;
}
.idx_consult .idx_ttl .en {
	font-family: 'Times New Roman', Times, serif;
	font-size: 166.6%;
	letter-spacing: 0.1em;
	padding: 0.5em;
}
.idx_consult .idx_ttl .ja {
	font-size: 180%;
	padding: 0.6em 1em 0.7em;
	border-top: 1px solid #fff;
	position: relative;
	font-weight: 200;
}
.idx_consult .idx_ttl .ja::before,
.idx_consult .idx_ttl .ja::after {
	content: "";
	display: block;
	position: absolute;
	width: 1.8em;
	height: 1px;
	top: 0;
	background-color: #5ab8cc;
}
.idx_consult .idx_ttl .ja::before {
	left: -1.8em;
}
.idx_consult .idx_ttl .ja::after {
	right: -1.8em;
}
.idx_consult .idx_desc {
	display: grid;
	gap: 0.5em 0;
	margin: 0 0 1.4em;
}
.idx_consult .idx_desc p {
	font-size: 138.8%;
	line-height: 1.4;
}
.idx_consult .idx_btn a {
	width: 17.33em;
}
.idx_consult .idx_btn a img {
	aspect-ratio: 260 / 38;
}

/*
    15. photo gallery
========================================================================== */
.idx_gallery {
	margin: 0 0 7.2em;
	padding: 3.2em 9.8em 3.6em;
	background-color: #f0f4f6;
}
.idx_gallery .idx_ttl {
	margin: 0 0 3.2em;
	text-align: center;
}
.idx_gallery .idx_ttl span {
	font-family: 'Times New Roman', Times, serif;
	line-height: 1;
	font-size: 333%;
	letter-spacing: 0.1em;
}
/* ------------------------------- main */
.idx_gallery_fig {
	position: relative;
	margin: 0;
	padding: 0 0 4em;
	border: 0 none;
	overflow: hidden;
}
.idx_gallery_fig li img {
	aspect-ratio: 1200 / 660;
}
/* ---------------------------------- dot */
.idx_gallery_fig .slick-dots {
	position: absolute;
	width: 100%;
	bottom: -3.6em;
	right: 0;
	margin: 0;
	padding: 0;
	text-align: center;
}
.idx_gallery_fig .slick-dots li {
	display: inline-block;
    width: 0.6em;
    height: 0.6em;
    margin: 0 0.8em;
    padding: 0;
}
.idx_gallery_fig .slick-dots li button:before {
	font-size: max(calc((11 / 1400) * 100vw), calc(13px * 0.97));
	background-color: transparent;
	background-repeat: no-repeat;
	background-size: 50% auto;
	background-position: 50% 0;
	background-image: url("../images/top/gallery_dot.png");
	opacity: 1;
	color: transparent;
}
.idx_gallery_fig .slick-dots li.slick-active button:before {
	background-image: url("../images/top/gallery_dot_act.png");
}
/* ------------------------------- thumbnail */
.idx_gallery_thumb {
	overflow: hidden;
	position: relative;
	margin: 0 auto;
	width: 73em;
}
.idx_gallery_thumb .slick-list {
	width: 138.8em !important;
	width: 154em !important;
	left: -2em;
}
.idx_gallery_thumb .slick-track {
	transform: unset !important;
	margin: 0 !important;
	display: flex !important;
	flex-wrap: wrap !important;
	justify-content: space-between;
}
.idx_gallery_thumb_box {
	width: 17.06em !important;
	cursor: pointer;
}
.idx_gallery_thumb_box img {
	opacity: 1;
	transition: 0.3s;
	aspect-ratio: 256 / 178;
}

/*
    16. guide
========================================================================== */
.idx_guide {
	padding: 5.4em 6.2em 4.2em;
	margin: 0 0 8em;
	background-repeat: no-repeat;
	background-position: 50% 0;
	background-size: cover;
	background-image: url("../images/top/guide_bg.jpg");
}
.idx_guide .idx_ttl {
	margin: 0 0 3.8em;
	text-align: center;
}
.idx_guide .idx_ttl span {
	display: block;
	line-height: 1;
}
.idx_guide .idx_ttl .en {
	font-size: 266.6%;
	font-family: 'Times New Roman', Times, serif;
	letter-spacing: 0.1em;
	margin: 0 0 0.6em;
}
.idx_guide .idx_ttl .ja {
	font-size: 133%;
}
.idx_guide .idx_inr {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 0 2.4em;
}
.idx_guide .idx_box {
	padding: 1.6em 3.8em;
	background-color: #fff;
}
.idx_guide .idx_box .bx_ttl {
	text-align: center;
	line-height: 1;
	padding: 0 0 4.8em;
	margin: 0 0 1.3em;
	background-repeat: no-repeat;
	background-position: 50% 100%;
	background-size: 3.6em auto;
	background-image: url("../images/top/guide_ico.png");
}
.idx_guide .idx_box .bx_ttl span {
	font-size: 166%;
	font-weight: bold;
}
.idx_guide .idx_box .bx_desc {
	font-size: 133%;
	line-height: 1.45;
}
.idx_guide .idx_box .idx_btn {
	text-align: right;
}

/*
    17. news
========================================================================== */
.idx_news {
	width: 86.2em;
	margin: 0 auto 6.4em;
	padding: 3.6em 2.6em 4.2em;
	border: 1px solid #ccc;
}
.idx_news .idx_ttl {
	border-bottom: 4px double #2e2e2e;
	margin: 0 0 2.8em;
	padding: 0 0 0.8em;
	display: flex;
	justify-content: space-between;
	align-items: end;
	line-height: 1;
}
.idx_news .idx_ttl .en {
	font-family: 'Times New Roman', Times, serif;
	font-size: 258%;
	letter-spacing: 0.1em;
}
.idx_news .idx_ttl .ja {
	font-size: 133%;
	font-weight: 300;
}
.idx_news .idx_inr {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
}
.idx_news .idx_box {
	display: grid;
	grid-template-columns: 12em 1fr;
	gap: 0 1.6em;
	margin: 0 0 2.6em;
}
.idx_news .fig {
	grid-row: 1 / 3;
}
.idx_news .date {
	align-self: end;
	font-size: 120%;
	color: #79c4d4;
}
.idx_news .sbj {
	font-size: 106.7%;
	font-weight: 300;
	align-self: start;
}
.idx_news .idx_btn {
	text-align: right;
}
.idx_news .idx_btn a {
	display: inline-block;
	width: 13.13em;
}
.idx_news .idx_btn a img {
	aspect-ratio: 197 / 41;
}

/*
    18. access
========================================================================== */
.idx_accs {
	margin: 0 3.4em 3.8em;
	color: #2e2e2e;
}
.idx_accs .idx_ttl {
   text-align: center;
   font-family: 'Garamond', 'Times New Roman', Times, serif;
   margin: 0 0 3.4em;
   line-height: 1;
   position: relative;
   z-index: 4;
}
.idx_accs .idx_ttl::before {
	content: "";
	display: block;
	position: absolute;
	width: 1px;
	height: 4.2em;
	background-color: #2e2e2e;
	bottom: -4.8em;
	left: calc(50% - 0.5px);
}
.idx_accs .idx_ttl span {
   font-size: 266%;
   line-height: 1;
   letter-spacing: 0.1em;
}
.idx_accs .gmap {
	width: 100%;
	margin: 0 auto 1em;
	position: relative;
}
.idx_accs .gmap iframe {
	width: 100%;
   aspect-ratio: 1300 / 500;
}
.idx_accs .idx_btn {
	text-align: right;
	margin: 0 0 2.4em;
}
.idx_accs .idx_btn a {
	display: inline-block;
	font-size: 120%;
	font-weight: 200;
	line-height: 1;
	padding-right: 1.5em;
	background-repeat: no-repeat;
	background-position: 100% 50%;
	background-size: 1em auto;
	background-image: url("../images/top/access_arrow.png");
}
.idx_accs_seo {
	font-size: 97.2%;
	line-height: 1.4;
	color: #333333;
	margin: 0 3.4em;
}