@charset "UTF-8";
:root {
	scroll-padding-top: 30px;
	scroll-behavior: smooth;
}
@media screen and (max-width: 1032px) {
	html {
		font-size: 1.55vw;
	}
}
@media screen and (max-width: 750px) {
	:root {
		scroll-padding-top: 42px;
	}
	html {
		font-size: 4.8vw;
	}
}

body {
	margin: 0;
	padding: 0;
	line-height: 1.8;
	color: #333;
	font-family: 'Noto Sans JP', sans-serif;
	font-weight: 400;
	font-feature-settings: "palt";
}
/* ------------------------- */

a {
	color: #ea659b;
	text-decoration: none;
}
a:hover {
    text-decoration: none;
    filter: alpha(opacity=7);
    -moz-opacity: 0.7;
    opacity: 0.7;
    transition: all 300ms ease-in-out 0s;
}
a img:hover {
	opacity: 0.8;
}
figcaption {
	font-size: 0.9em;
	color: initial;
	line-height: 1.5;
	margin: 0.5em 0.1em;
}
@media screen and (max-width: 750px) {
	figcaption {
		font-size: 0.7em;
	}
}
@media (min-width: 751px) {
	a[href*="tel:"] {
	pointer-events: none;
	cursor: default;
	text-decoration: none;
	}
}

/* 共通
------------------------------------- */
.bg-gray {background-color: #ECECEC !important;}
.bg-white {background-color: #fff !important;}
.bg-c01 {background-color: #F5EFE7 !important;}
.bg-c02 {background-color: #FCECD8 !important;}
.bg-grad01 {background: linear-gradient(90deg, rgb(240, 177, 2) 0%, rgb(237, 122, 1) 100%) !important;}
.text-c01 {color: #E63650 !important;}
.text-c02 {color: #7D4697 !important;}
.marker01 {background:linear-gradient(transparent 65%, #FCF101 65%) !important;}

.indent1 {
	padding-left: 1em;
	text-indent: -1em;
}
.indent2 {
	padding-left: 2em;
	text-indent: -2em;
}
.text-center {
	text-align: center;
}
.font-sans {
	font-family: sans-serif;
}
.font-serif {
	font-family: 'Noto Serif JP', serif;
}
.font-bolder {
	font-weight: bolder;
}
.font-ita {
	font-style: italic;
}
.mb-0 {
	margin-bottom: 0 !important
}
.mb-15 {
	margin-bottom: 1.5em !important
}
#pagetop {
	opacity: 0;
	transition: opacity 0.3s ease-in-out;
}
#pagetop a {
	width: 60px;
	height: 90px;
	position: fixed;
	bottom: 40px;
	right: 12px;
	background-image: url(/images/pagetop.svg);
	background-repeat: no-repeat;
	text-indent: 110%;
	white-space: nowrap;
	overflow: hidden;
	z-index: 999;
}
#pagetop a:hover {
	filter: brightness(110%);
}
@media screen and (max-width: 750px) {
	#pagetop a {
		bottom: 5vw;
	}
}
/* ------------------------- */

.shadow-top {
	box-shadow: 0px 10px 25px -14px rgba(10,10,10,0.2) inset;
}
.shadow-bottom {
	box-shadow: 0px -10px 25px -14px rgba(10,10,10,0.2) inset;
}
.dropshadow {
	filter: drop-shadow(0px 5px 5px rgba(0,0,0,0.3));
}
.boxshadow {
	box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.1);
}

/* ------------------------- */
hr {
	box-sizing: content-box;
	height: 0;
	overflow: visible;
	margin: 1em 0;
	border: 0;
	border-top: 2px solid #56B9E6;
}
hr.dashed {
	border-top: 2px dashed #56B9E6;
}
hr.dotted {
	border-top: 2px dotted #56B9E6;
}
hr.gray {
	border-top: 1px solid #999;
}
/* ------------------------- */
.arrow_top {
	position: relative;
}
.arrow_top::before {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	margin: 0 auto;
	content: '';
	width: 0;
	height: 0;
	border-style: solid;
	border-right: 15rem solid transparent;
	border-left: 15rem solid transparent;
	border-top: 2.5rem solid #fff;
	border-bottom: 0;
}
@media screen and (max-width: 750px) {
	.arrow_top::before {
		border-right: 33vw solid transparent;
		border-left: 33vw solid transparent;
		border-top: 5.3vw solid #fff;
	}
}
/* ------------------------- */
@media screen and (min-width: 751px) {
	.sp_only {
		display: none !important;
	}
}
@media screen and (max-width: 750px) {
	.pc_only {
		display: none !important;
	}
}
/* ------------------------- */
.lum-gallery-button {
	display: none !important;
}

/* ボタン
------------------------------------- */
a.btn.disabled,
a.btn:disabled {
	opacity: .65
}
a.btn:not(:disabled):not(.disabled) {
	cursor: pointer
}
a.btn.disabled,
fieldset:disabled a.btn {
	pointer-events: none
}
a.btn {
	position: relative;
	display: inline-flex;
	justify-content: center;
	align-items: center;
	padding: 0;
	border: none;
	border-radius: 0;
	font-size: 24px;
	font-family: 'Noto Sans JP', sans-serif;
	font-weight: 600;
	line-height: 1.2;
	transition: all 0.1s;
	text-decoration: none;
	background-color: #eee;
}
/* ------------------------- */
a.btn-1 {
	height: 3em;
	padding: 0 2.5em 0 2em;
	font-size: 1.25rem;
	line-height: 1.2;
	text-align: center;
	color: #fff;
	border-radius: 100vh;
	font-feature-settings: normal;
}
a.btn-1.c01 {background-color: #E60012;}
a.btn-1.c02 {background-color: #E63650;}
a.btn-1.c03 {background-color: #7D4697;}
a.btn-1.c04 {background-color: #EA4E62;}

a.btn-1.c04.blue {background-color: #3e60cd;}
a.btn-1.c01.orng {background-color: #ff6d06;}

a.btn-1::after {
	position: absolute;
	content: '';
	top: 0;
	bottom: 0;
	right: 0.8em;
	margin: auto;
	width: 1em;
	height: 1em;
	background-image: url(/images/chevron_right.svg);
	background-size: contain;
	background-repeat: no-repeat;
}
a.btn-1:hover {
	opacity: 0.7;
}
@media screen and (max-width: 750px) {
	a.btn-1 {
		height: auto;
		padding: 0.6em 2em 0.6em 1.5em;
		font-size: 4.2vw;
		line-height: 1.3;
		text-align: center;
		color: #fff;
		border-radius: 100vh;
	}
	a.btn-1::after {
		width: 0.8em;
		height: 0.8em;
	}
}

/* ------------------------- */

a.btn-2 {
	padding: 0.9em 2em 0.9em 1.5em;
	font-size: 1rem;
	line-height: 1.3;
	text-align: center;
	color: #E80331;
	background-color: #fff;
	border-radius: 100vh;
	border: 0.15em solid #E80331;
}
a.btn-2::after {
	position: absolute;
	content: '';
	top: 0;
	bottom: 0;
	right: 0.8em;
	margin: auto;
	width: 1em;
	height: 1em;
	background-image: url(/images/chevron_right_red.svg);
	background-size: contain;
	background-repeat: no-repeat;
}
a.btn-2:hover {
	opacity: 0.7;
}
@media screen and (max-width: 750px) {
	a.btn-2 {
		font-size: 3.7vw;
	}
}

/* ------------------------- */

.btn_block {
	text-align: center;
}
.btn_block .btn_block_inner {
	display: inline-flex;
	align-items: center;
	column-gap: 1em;
	padding: 0.3em 0.5em 0.3em 2em;
	font-size: 1.25em;
	line-height: 1.3;
	color: #333;
	text-align: center;
	background-color: #fff;
	border: 0.13em solid #E80331;
	border-radius: 100vh;
	font-weight: 500;
}
.btn_block.line3 .btn_block_inner {font-size: 1rem;}
.btn_block.c03 .btn_block_inner {border-color: #7D4697;}
.btn_block.c04 .btn_block_inner {border-color: #EA4E62;}

.btn_block.c04.blue .btn_block_inner {border-color: #3e60cd;}
.btn_block.orng .btn_block_inner {border: 0.13em solid #ff6d06;}

.btn_block .btn_block_inner a:first-child {
	color: #333;
	text-decoration: underline;
}
.btn_block .btn_block_inner a:first-child:hover {
	color: #666;
}
@media screen and (max-width: 750px) {
	.btn_block .btn_block_inner {
		width: 100%;
		flex-direction: column;
		row-gap: 0.8em;
		padding: 0.6em 1.5em 0.8em;
		font-size: 4.2vw;
		border-radius: 0.5em;
	}
	.main_visual .btn_block .btn_block_inner {
		border: none;
		background-color: rgba(255, 255, 255, 0.7);
	}
	.btn_block.line3 .btn_block_inner {
		padding: 0.8em 1.5em 0.8em;
		font-size: 4vw;
		line-height: 1.4;
	}
}


/* 見出し
------------------------------------- */

.cont_txtbx {
    max-width: 1100px;
    width: 98%;
    margin: 25px auto 40px;
}
.cont_txtbx .textbx {
    width: 66.7%;
    margin: 0 auto;
    font-size: 1.3rem;
    line-height: 1.7;
    text-align: justify;
}
.textbx a.link:before {
    content: ">";
    background-color: #dedede;
    border-radius: 50%;
    width: 24px;
    text-align: center;
    color: #fff;
    position: relative;
    font-size: 14px;
    font-weight: 200;
    margin: -2px 5px 2px 12px;
    display: inline-block;
    transform: scale(1, 1.5);
    line-height: 1;
    padding: 0 0 2px 2px;
    vertical-align: middle;
}
.cont01 {
	padding: 3.5rem 0 2.5rem;
    text-align: center;
    font-size: 1.2rem;
    line-height: 1.6;
}
.cont01.pnk {
    background-color: #fff8ed;
}
.cont01.blu {
    /*background-color: #d5efff;*/
    background: linear-gradient(0deg, #f4f4f4, #c1e2f6);
}
.cont02, .cont03 {
    padding: 20px 0;
    text-align: center;
}
.cont04, .cont05 {
    padding: 3rem 1.5rem;
    text-align: center;
}
.cont01 h2, .cont02 h2, .cont03 h2 {
    margin-bottom: 0.9em;
    font-size: 2.5rem;
    line-height: 1.5;
    position: relative;
}
.cont01 h2 span {
    display: block;
    font-size: 1.5rem;
}
.cont04 h2 {
    display: inline-block;
    margin-bottom: 1.5em;
    padding: 0.25em 1.2em;
    font-size: 1.9rem;
    line-height: 1.4;
    text-align: center;
    font-weight: 600;
    color: #E63650;
    border: 0.1em solid #E63650;
    border-radius: 0.2em;
}
.cont01 h4 {
    display: inline-block;
    margin: 1.2em 0 0;
    font-size: 1.6rem;
    line-height: 1.4;
    text-align: center;
    font-weight: 600;
    color: #E63650;
}
.cont01 .cont_inner {
	display: flex;
    max-width: 1000px;
    margin: 0 auto 1.75em;
    width: 90%;
}
.cont01 .content_qa {
    max-width: 800px;
    margin: 0 auto 1.75em;
    width: 90%;
    text-align: left;
}
.cont02 .cont_inner,.cont03 .cont_inner {
    width: 96%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 2.5rem 1.5rem;
    text-align: center;
    border-radius: 1rem;
    border: 5px solid #f9bfcd;
    background: url(/kotoba/images/back01.jpg) no-repeat center center;
    background-size: cover;
}
.cont02.img2 .cont_inner {
    background: url(/kotoba/images/back03.jpg) no-repeat center center;
}
.cont02 .cont_inner.mb60 {
    margin-bottom: 60px;
}
.cont03 .cont_inner {
    background: url(/kotoba/images/back02.jpg) no-repeat center center;
    background-size: cover;
}
.cont04 .cont_inner {
    width: 100%;
    max-width: 1044px;
    margin: 0 auto 3.5rem;
    text-align: left;
    position: relative;
}
.cont01 .cont_inner div {
    width: 50%;
    margin: 0 1%;
    text-align: justify;
    line-height: 1.7;
}
.cont01 .cont_inner div img {
    border: 5px solid #f9bfcd;
    border-radius: 10px;
    padding: 9px;
    background-color: #fff;
}
.cont01 .cont_inner div p {
    margin-bottom: 1rem;
}
.cont01 .cont_inner .box6bx {
	display: flex;
    flex-wrap: wrap;
    margin: 0 auto;
    width: 100%;
}
.cont01 .cont_inner .box6bx div {
    margin: 0 1% 25px;
    width: 31.25%;
    padding: 0;
    border: 5px solid #168cd2;
    border-radius: 10px;
    background-color: #168cd2;
}
.cont01 .cont_inner .box6bx div img {
    margin: 0 0 20px;
    width: 100%;
    border: 0;
    padding: 0;
    border-radius: 5px 5px 0 0;
}
.cont01 .cont_inner .box6bx div h3 {
    padding: 0 10px 10px;
    color: #fff;
    font-size: 1.6rem;
}
.cont01 .cont_inner.mvbx {
    width: 66.7%;
}
.cont01 .cont_inner.mvbx figure {
    width: 100%;
}
h3.head_txt {
    position: relative;
    display: inline-block;
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.4;
    text-align: center;
}
h3.head_txt::before,
h3.head_txt::after {
	content: '';
	position: absolute;
	top: 50%;
	display: inline-block;
	width: 1.7em;
	height: 0.05em;
	background-color: #333;
}
h3.head_txt::before {
	transform: rotate(65deg);
	left: -1.8em;
}
h3.head_txt::after {
	transform: rotate(-65deg);
	right: -1.8em;
}
.cont02 .cont_inner .textbx {
	width: 76.5%;
    margin: 0 auto 20px;
    font-size: 1.3rem;
    line-height: 1.7;
    text-align: justify;
}
.cont02 .cont_inner img.w600 {
    max-width: 600px;
    width: 90%;
}
.cont02 .cont_inner img.w800 {
    max-width: 800px;
    width: 90%;
}
.cont03 .cont_inner .img_l {
	display: flex;
    flex-wrap: wrap;
    margin: 0 auto;
    width: 76.5%;
}	
.cont03 .cont_inner .img_l img {
    width: 40%;
}
.cont03 .cont_inner .img_l .textbx {
	width: 50%;
    margin: 0 auto 20px;
    font-size: 1.3rem;
    line-height: 1.7;
    text-align: justify;
}
.cont04 .cont_inner img {
    width: 60%;
    left: 2rem;
    position: relative;
}
.cont04 .cont_inner .textbx {
    width: 32em;
    font-size: 1.3rem;
    line-height: 1.6;
    text-align: justify;
    border: 5px solid #f9bfcd;
    padding: 1.5em 1.5em 1.2em 1.5em;
    border-radius: 14px;
    position: absolute;
    top: 0;
    right: 0;
    background-color: rgba(255, 255, 255, 0.8);
}
.cont04 .cont_inner .text p {
    margin-bottom: 0.75em;
}
.cont01 .content_qa ul {
    margin-bottom: 25px;
    background-color: #fff;
    border-radius: 15px;
    padding: 1em;
}
.cont01 .content_qa li.qa_q {
    list-style: none;
    font-size: 1.75rem;
    width: 100%;
    line-height: 1.2;
    border-bottom: 2px dotted #9ec9e4;
    padding-bottom: 10px;
}
.cont01 .content_qa li.qa_q:before {
    content: "Q";
    font-size: 44px;
    font-family: impact, Arial, Helvetica, "sans-serif";
    background-color: #168cd2;
    margin-right: 16px;
    margin-left: -46px;
    font-weight: 400;
    line-height: 1;
    color: #fff;
    border-radius: 50%;
    width: 57px;
    display: inline-block;
    padding: 6px;
    text-align: center;
}
.cont01 .content_qa li.qa_a {
    list-style: none;
    font-size: 1.25rem;
    width: 98%;
    line-height: 1.7;
    border-radius: 22px;
    margin: 0;
    padding: 0;
    text-align: justify;
}
.cont01 .content_qa li.qa_a:before {
    content: "A";
    font-size: 39px;
    font-family: impact, Arial, Helvetica, "sans-serif";
    color: #f896ae;
    margin-right: 10px;
    margin-left: -0.75em;
    vertical-align: bottom;
    margin-bottom: -15px;
    display: inline-block;
    font-weight: 200;
}
label.qanda_wk {
    width: 96%;
}
label.qanda_wk:hover {
    text-decoration: none;
    color: #337ab7;
    filter: alpha(opacity=70);
    -moz-opacity: 0.7;
    opacity: 0.7;
    transition: all 300ms ease-in-out 0s;
}
.content_qa input.fm_check {
    display: none;
}
.content_qa li.fm_show {
    height: 0;
    padding: 5px;
    overflow: hidden;
    opacity: 0;
    transition: 0.8s;
}
.content_qa input:checked ~ li.fm_show {
    height: auto;
    opacity: 1;
    margin: 0;
    text-align: justify;
    padding: 32px 60px;
}
.content_qa::after {
    content: "";
}
.cont05 h2 {
    margin-bottom: 0.7em;
    font-size: 2rem;
    line-height: 1.5;
    position: relative;
}
.cont05 .cont_inner {
    max-width: 900px;
    margin: 0 auto;
    font-size: 1rem;
    line-height: 1.4;
}
.cont05 h3 {
    margin-bottom: 0.5em;
    font-size: 1.5rem;
    line-height: 1.5;
    text-align: left;
    border-top: 2px dotted #ccc;
    padding: 10px 0 0;
    margin-top: 1rem;
}
.cont05 h3:before {
    content: "◎";
    font-size: 1.5rem;
    color: #168cd2;
    display: inline-block;
}
.cont05 h3:first-child {
    border-top: 0;
    padding: 0 0 0;
    margin-top: 0;
}
.cont05 .cont_inner .jikanwari {
    display: flex;
    column-gap: 1rem;
    align-items: flex-start;
    margin-right: 25px;
}
.cont05 .cont_inner th:not(.jikanwari th) {
	font-weight: normal;
	padding: 0.7em 0.5em;
	border-bottom: 0.1em solid #333;
	width: 20%;
	text-align: center;
}
.cont05 .cont_inner td:not(.jikanwari td) {
	padding: 0.7em 0.5em;
	border-bottom: 0.1em solid #333;
	text-align: left;
}
.cont05 .cont_inner td.cycle span {
	background-color: #333;
	color: #fff;
	margin-right: 0.5em;
	padding: 0 0.3em;
}
.cont05 .cont_inner .table {
    display: flex;
}
.cont05 .cont_inner .jikanwari table {
	line-height: 1.4;
	border: 0.15em solid #333;
}
.cont05 .cont_inner .jikanwari thead td {
	text-align: center;
	padding: 0 0.5em;
	color: #fff;
	background-color: #333;
}
.cont05 .cont_inner .jikanwari thead td:nth-child(n+3) {
	border-left: 1px solid #fff;
}
.cont05 .cont_inner .jikanwari tbody th {
	font-weight: normal;
	padding: 0.2em 0.8em;
	border: 0.1em solid #333;
}
.cont05 .cont_inner .jikanwari tbody tr:nth-child(odd) th {
	background-color: #F1F1F1;
}
.cont05 .cont_inner .jikanwari tbody td {
	padding: 0.25em 0.5em;
	border: 0.1em solid #333;
}
.cont05 .cont_inner .jikanwari tbody tr:first-child td {
	background-color: #168cd2;
    color: #fff;
}
.cont05 .cont_inner p {
    text-align: left;
}
.cont05 .cont_inner .note {
    text-align: left;
    padding-left: 1em;
    text-indent: -1em;
}
.cont05 .cont_inner .note li {
    padding: 0 0 3px 1em;
}
.cont05 .cont_inner .note li::before {
    content: "●";
    font-size: 0.7rem;
    color: #ccc;
    display: inline-block;
    margin: -1px 2px 0px 0;
    vertical-align: middle;
}
.heading_1::after {
    position: absolute;
    content: '';
    bottom: -0.36em;
    left: 0;
    right: 0;
    margin: 0 auto 0;
    width: 7.5em;
    height: 0.16em;
    background-image: linear-gradient(90deg, rgb(241 68 100) 50%, rgb(22 140 210) 50%);
}
.heading_2::after {
    position: absolute;
    content: '';
    bottom: -0.36em;
    left: 0;
    right: 0;
    margin: 0 auto 0;
    width: 3.5em;
    height: 0.16em;
    background-image: linear-gradient(90deg, rgb(244 134 154) 50%, rgb(136 160 173) 50%);
}
.line_1 {
    position: relative;
    display: inline-block;
    text-align: center;
}
.line_1::before,
.line_1::after {
	content: '';
	position: absolute;
	top: 50%;
	display: inline-block;
	width: 1.7em;
	height: 0.05em;
	background-color: #333;
}
.line_1::before {
	transform: rotate(65deg);
	left: -1.8em;
}
.line_1::after {
	transform: rotate(-65deg);
	right: -1.8em;
}
h2.line_1 br {
    display: none;
}



@media screen and (max-width: 750px) {
    .cont01 .cont_inner {
        margin: 0 auto 0.75em;
        flex-wrap: wrap;
    }
    .cont01 .cont_inner div {
        width: 98%;
        margin: 0 0 25px;
        font-size: 4vw;
    }
    .cont01 .cont_inner .box6bx div {
        margin: 0 auto 25px;
        width: 100%;
    }
    .cont01 .cont_inner.mvbx {
        width: 94%;
    }
    .cont_txtbx .textbx {
        width: 88%;
        font-size: 4vw;
    }
    .cont01 .cont_inner .box6bx div h3 {
        font-size: 4vw;
    }
    .cont02 .cont_inner, .cont03 .cont_inner {
        padding: 1.25rem 1.5rem;
    }
    .cont02 .cont_inner img.w600 {
        width: 100%;
    }
    .cont03 .cont_inner .img_l {
        width: 98%;
    }
    .cont01 h2, .cont02 h2, .cont03 h2 {
        font-size: 4.75vw;
    }
    .cont01 h2 span  {
        font-size: 3.5vw;
    }
    .cont04 h2 {
        font-size: 5vw;
    }
    .cont02 .cont_inner .textbx {
        width: 98%;
        font-size: 4vw;
    }
    .cont03 .cont_inner .img_l img {
        width: 80%;
        margin: 0 auto 20px;
        display: block;
    }
    .cont03 .cont_inner .img_l .textbx {
        width: 98%;
        font-size: 4vw;
    }
    .cont04 .cont_inner img {
        width: 90%;
        left: auto;
        margin: 0 auto 20px;
        display: block;
    }
    .cont04 .cont_inner .textbx {
        position: relative;
        width: 100%;
        font-size: 4vw;
    }
    .cont01 .content_qa li.qa_q {
        font-size: 4vw;
    }
    .cont01 .content_qa li.qa_a {
        font-size: 3.5vw;
    }
    .content_qa input:checked ~ li.fm_show {
        padding: 25px 30px 0;
    }
    .cont05 h2, h3.head_txt {
        font-size: 5vw;
    }
    .cont05 h3 {
        font-size: 4vw;
    }
    .cont05 h3:before {
        font-size: 0.8rem;
    }
    .cont05 .cont_inner {
        font-size: 2.5vw;
    }
    .cont05 .cont_inner .table {
        flex-direction: column;
        row-gap: 0.5rem;
        margin-bottom: 0.5rem;
    }
    .cont05 .cont_inner .note {
        font-size: 3.7vw;
    }
    .cont01 h4 {
        font-size: 4.5vw;
    }
	.heading-1 {
		font-size: 5vw;
	}
	.area02 .heading-1 {
		line-height: 1.2;
		font-size: 6.9vw;
		padding: 0;
		font-feature-settings: normal;
	}
	.area02 .heading-1 span {
		display: block;
		margin-top: 0.2em;
	}
	.heading-1 span img {
		height: 1.45em;
	}
	.area02 .heading-1::before,
	.area02 .heading-1::after {
		display: none;
	}
	.heading-1::before {
		transform: rotate(75deg);
		width: 3em;
		left: -2em;
		height: 0.05em;
	}
	.heading-1::after {
		transform: rotate(-75deg);
		width: 3em;
		right: -2em;
		height: 0.05em;
	}
    .cont01 .content_qa li.qa_q:before {
        font-size: 37px;
        width: 52px;
    }
    label.qanda_wk {
        width: 90%;
    }
    h2.line_1 br {
        display: block;
    }
}

/* ------------------------- */

@media screen and (max-width: 750px) {
	.heading-3 {
		font-size: 5.1vw;
	}
	.heading-3::before {
		transform: rotate(75deg);
		left: -2em;
		width: 2.5em;
		height: 0.05em;
	}
	.heading-3::after {
		transform: rotate(-75deg);
		right: -2em;
		width: 2.5em;
		height: 0.05em;
	}
}



/* フッター
------------------------------------- */
footer {
	padding: 1.5rem 0;
	text-align: center;
}
footer .logo img {
	height: 1.9rem;
}
@media screen and (max-width: 750px) {
	footer {
		padding: 0.7rem 0 1.5rem;
		text-align: center;
	}
	footer .logo img {
		height: 7vw;
	}
}


/* コンテンツ
------------------------------------- */
.main_visual_ft {
	background-image: url(/images/main_visual_bg.png);
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center top;
	text-align: center;
	margin-bottom: 1.5rem;
}
.main_visual_ft .pc_only {
	display: block;
	height: 400px;
	object-fit: cover;
    margin: 0 auto;
    margin: 0 auto;
}
.main_visual_ft .main_visual_inner {
	position: relative;
	max-width: 1200px;
	margin: 0 auto;
}
.main_visual .main_visual_inner .logo {
	position: absolute;
    top: 0;
    width: 100%;
    background-color: rgba(255, 255, 255, 0.75);
    padding: 10px 10%;
}
.main_visual .main_visual_inner .logo img {
    left: calc(50% - 30rem);
    position: relative;
    width: 210px;
}
.main_visual .main_visual_inner .snav {
	width: 29rem;
	position: absolute;
	top: 1.25rem;
	left: 50%;
	display: inline-flex;
	justify-content: flex-end;
	column-gap: 0.5em;
}
.main_visual .main_visual_inner .mainlogo {
    position: absolute;
    bottom: 15%;
    right: 0;
    width: 50%;
    top: 140px;
}
.main_visual .main_visual_inner .mainlogo img {
    width: 75%;
    margin: 0 25% 30px 0;
}
.main_visual .main_visual_inner .mainlogo p {
    width: 80%;
    margin-right: 20%;
    font-size: 2.5rem;
    text-align: justify;
    font-weight: 900;
    color: #000;
    line-height: 1.4;
    text-shadow: 0px 0px 15px rgba(255, 255, 255, 0.7);
}




@media screen and (max-width: 1060px) {
	.main_visual .pc_only {
		height: 66vw;
        width: auto;
        object-fit: cover;
	}
    .main_visual_ft .pc_only {
        height: 250px;
    }
}
@media screen and (max-width: 750px) {
	.main_visual_ft {
		background-image: none;
		margin-bottom: 4vw;
	}
	.main_visual .main_visual_inner .logo {
		/*top: 1vw;
		left: auto;
		right: 3vw;
		width: 28vw;*/
		padding: 0 0 10px;
	}
    .main_visual .main_visual_inner .logo img {
        /*left: 0;*/
	    display: none;
    }
    .main_visual .main_visual_inner .mainlogo {
        bottom: auto;
        right: auto;
        width: 100%;
        top: 90px;
        margin: 0 auto 30px;
        text-align: center;
    }
    .main_visual .main_visual_inner .mainlogo img {
        width: 90%;
        max-width: 430px;
        margin: 0 auto;
    }
    .main_visual .main_visual_inner .mainlogo p {
        width: 89%;
        margin-right: 0;
        font-size: 4.25vw;
        margin: 0 auto;
    }
	.main_visual .main_visual_inner .btn_block {
		top: 76.5%;
		bottom: auto;
		left: 0;
		width: 100%;
	}
	.main_visual .main_visual_inner .snav {
		position: static;
		margin-top: 0;
		width: 100%;
		justify-content: center;
	}
    a.btn-2 {
        font-size: 1.8vw;
    }
}

/* ------------------------- */

.area01 {
	padding: 0 1.5rem;
	text-align: center;
	font-size: 1.2rem;
	line-height: 1.6;
	margin-bottom: 2rem;
}
.area01 h2 {
	margin-top: 1rem;
}
.area01 .media_text {
	margin: 0 auto;
	display: flex;
	align-items: center;
	column-gap: 2rem;
	justify-content: center;
}
.area01 .media_text .media {
	width: 13em;
}
.area01 .media_text .text {
	width: 20em;
	font-size: 1.7rem;
	text-align: left;
	line-height: 1.4;
	font-weight: 500;
}
.area01 .tokucho {
	margin-bottom: 1.5rem;
	padding-top: 2rem;
	display: flex;
	justify-content: center;
	column-gap: 2rem;
}
.area01 .tokucho li {
	position: relative;
	width: 14.3rem;
	font-size: 1rem;
	counter-increment: list-counter;
}
.area01 .tokucho li h3 {
	display: block;
	margin-bottom: 0;
	padding: 0.5em;
	border-radius: 1rem 1rem 0 0;
	font-size: 1.4em;
	color: #fff;
	font-weight: 600;
	background: rgb(238, 129, 74);
	background-image: linear-gradient(90deg, rgb(230, 54, 80) 0%, rgb(238, 129, 74) 100%) ;
	z-index: 0;
}
.area01 .tokucho li p {
	display: block;
	padding: 0.5em;
	border-left: 0.13rem solid #E63650;
	border-bottom: 0.13rem solid #E63650;
	border-right: 0.13rem solid #E63650;
	border-radius: 0 0 1rem 1rem;
	background-color: #fff;
}
.area01  .tokucho li::before {
	position: absolute;
	top: -0.1em;
	left: 0.2em;
	transform: translate(-50%, -50%);
	color: #333;
	content: "特徴" attr(data-text);
	font-size: 1em;
	background-color: #fff;
	font-weight: 700;
	width: 3.6em;
	height: 3.6em;
	padding-top: 0.2em;
	border-radius: 100vh;
	border: 0.15em solid #E63650;
}
.area01 .tokucho li::after {
	content: counter(list-counter);
	position: absolute;
	top: -0.45em;
	left: -0.6em;
	font-size: 1.8em;
	margin-left: 0.4em;
	font-family: "Roboto", sans-serif;
	color: #333;
}
.area01 .bnr {
	display: none;
	max-width: 1000px;
	margin: 0 auto 1.5rem;
}
@media screen and (max-width: 750px) {
	.area01 {
		font-size: 3.8vw;
		padding: 0 5vw;
	}
	.area01_text {
		text-align: left;
	}
	.area01 h2 {
		margin-top: 2vw;
	}
	.area01 .media_text {
		flex-direction: column;
		font-size: 4.3vw;
	}
	.area01 .media_text .media {
		width: 80%;
	}
	.area01 .media_text .text {
		width: 100%;
		font-size: 4.4vw;
		text-align: center;
	}
	.area01 .tokucho {
		flex-direction: column;
		row-gap: 1.7rem;
		padding: 2.5rem 0.3rem 0 1.2rem;
	}
	.area01 .tokucho li {
		width: 100%;
		font-size: 3.8vw;
	}
	.area01 .tokucho li h3 {
		padding: 0.4em;
		font-size: 1.3em;
		border-radius: 0.7rem 0.7rem 0 0;
	}
	.area01 .tokucho li p {
		padding: 0.4em;
		line-height: 1.4;
		border-radius: 0 0 0.7rem 0.7rem;
	}
}

/* ------------------------- */

.area02 {
	padding: 3.5rem 0 1.5rem;
	text-align: center;
	font-size: 1.2rem;
	line-height: 1.6;
	background-color: #FCEFDD;
}
.area02 h2 {
	margin-bottom: 0.7em;
}
.area02 .logo {
	margin-bottom: 0.8em;
}
.area02 .logo img {
	height: 3rem;
}
.area02 ul.content {
	display: flex;
	justify-content: center;
	column-gap: 1.5em;
	margin: 0 auto 1.7rem;
}
.area02 ul.content li {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 12em;
	padding: 0.7em 0 0.8em;
	font-size: 1.3rem;
	line-height: 1.5;
	font-weight: 500;
	background-color: #fff;
	box-shadow: 5px 5px 0px 0px rgba(0,0,0,0.15);
}
.area02 .button {
	display: flex;
	justify-content: center;
	column-gap: 1.5em;
}
@media screen and (max-width: 750px) {
	.area02 {
		padding: 2rem 1rem 1.5rem;
		font-size: 1.2rem;
	}
	.area02 .logo {
		margin-bottom: 0.5em;
	}
	.area02 .logo img {
		height: 11vw;
	}
	.area02 ul.content {
		flex-direction: column;
		margin: 0 auto 1.2rem;
	}
	.area02 ul.content li {
		width: 100%;
		font-size: 4.4vw;
		padding: 0.3em 0.3em;
	}
	.area02 ul.content li:first-child {
		padding-top: 0.8em;
	}
	.area02 ul.content li:last-child {
		padding-bottom: 1em;
	}
	.area02 .button {
		flex-direction: column;
		row-gap: 1rem;
	}
}

/* ------------------------- */

.area_taiken {
	padding: 2rem 0;
}
@media screen and (max-width: 750px) {
	.area_taiken {
		padding: 1rem 1.5rem;
	}
}

/* ------------------------- */

.area_access {
	padding: 2rem 0;
	background-color: #E5F3FF;
	text-align: center;
}
.area_access ul {
	display: grid;
	grid-template-columns: 1fr 180px;
	column-gap: 30px;
	max-width: 660px;
	margin: 0 auto;
	line-height: 1.5;
}
.area_access ul .map {
	grid-row: 1/3;
	grid-column: 2/3;
}
.area_access .ttl h2 {
	margin-bottom: 0.3em;
	font-size: 30px;
	font-weight: 600;
}
.area_access .ttl p {
	background-color: #fff;
	padding: 0.2em;
	font-size: 16px;
}
.area_access .address {
	font-size: 14px;
	line-height: 1.3;
}
.area_access .address .tel {
	margin: 0.5em 0 0;
	font-size: 28px;
	font-family: "Roboto", sans-serif;
}
.area_access .address .tel a {
	color: #333;
}
@media screen and (max-width: 750px) {
	.area_access {
		padding: 1rem 0.7rem 1.2rem;
	}
	.area_access ul {
		grid-template-columns: 1fr 43%;
		gap: 0.6rem 0.4em;
		line-height: 1.5;
	}
	.area_access ul .ttl {
		grid-row: 1/2;
		grid-column: 1/3;
	}
	.area_access .ttl h2 {
		font-size: 5.5vw;
	}
	.area_access .ttl p {
		font-size: 4vw;
	}
	.area_access ul .address {
		grid-row: 2/3;
		grid-column: 1/2;
		font-size: 3.5vw;
	}
	.area_access .address .tel {
		margin: 0.2em 0 0;
		font-size: 5.5vw;
	}
	.area_access ul .map {
		grid-row: 2/3;
		grid-column: 2/3;
	}
}

/* ------------------------- */

.area03 {
	padding: 3rem 1.5rem;
	background-image: url(/images/area03_bg.png);
	background-size: contain;
	background-repeat: repeat-x;
	background-position: center top;
	background-color: #F7D0AC;
}
.area03 .content {
	width: 100%;
	max-width: 1044px;
	margin: 0 auto 2rem;
	padding: 2.5rem 1.5rem;
	text-align: center;
	background-color: #fff;
	border-radius: 1rem;
}
.area03 .content .media_text-1 {
	margin: 0 auto 2.5rem;
	display: flex;
	align-items: center;
	column-gap: 1.5rem;
	justify-content: center;
}
.area03 .content .media_text-1 .media {
	width: 13em;
}
.area03 .content .media_text-1 .text {
	width: 33em;
	font-size: 1.15rem;
	line-height: 1.6;
}
.area03 .content .tokucho {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 1.7em 1em;
	counter-reset: list-counter;
	margin-bottom: 2rem;
}
.area03 .content .tokucho li {
	position: relative;
	counter-increment: list-counter;
	font-size: 1.1rem;
	line-height: 1.5;
	font-weight: 600;
	border: 0.15em solid #E63650;
	border-radius: 1em;
	padding: 1.4em 0.8em 0.8em;
	background-color: #FBEBED;
}
.area03 .content .tokucho li::before {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translate(-50%, -50%);
	color: #fff;
	content: "特徴" attr(data-text);
	font-size: 0.9rem;
	background-color: #E63650;
	padding: 0.3em 2em 0.3em 0.6em;
	border-radius: 100vh;
}
.area03 .content .tokucho.gren li {
	border: 0.15em solid #359479;
}
.area03 .content .tokucho.gren li::before {
	background-color: #359479;
}
.area03 .content .tokucho li::after {
	content: counter(list-counter);
	position: absolute;
	top: -0.75em;
	left: 50%;
	font-size: 1.6rem;
	margin-left: 0.4em;
	font-family: "Roboto", sans-serif;
	color: #fff;
}
.area03 .content .tokucho li:nth-child(even) {
	border: 0.15em solid #EE8106;
	background-color: #FDF2E5;
}
.area03 .content .media_text-2 {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 2rem;
	margin: 0 auto;
	max-width: 794px;
}
.area03 .content .media_text-2 .text {
	text-align: left;
	font-size: 1.15rem;
	line-height: 1.6;
}
@media screen and (max-width: 1340px) {
	.area03 {
		background-size: cover;
	}
}
@media screen and (max-width: 750px) {
	.area03 {
		padding: 0.8rem;
		background-size: cover;
	}
	.area03 .content {
		margin-bottom: 1rem;
		padding: 0.8rem 0.8rem 1.3rem;
		border-radius: 0.5rem;
	}
	.area03 .content .media_text-1 {
		margin: 0 auto 1.5rem;
		flex-direction: column;
	}
	.area03 .content .media_text-1 .media {
		width: 60%;
		margin-bottom: 0.8rem;
	}
	.area03 .content .media_text-1 .text {
		width: 100%;
		font-size: 4.2vw;
	}
	.area03 .content .tokucho {
		grid-template-columns: 1fr;
		gap: 1.4em 1em;
	}
	.area03 .content .tokucho li {
		font-size: 4.1vw;
		border-radius: 0.8em;
		padding: 1.1em 0.6em 0.8em;
	}
	.area03 .content .tokucho li::before {
		font-size: 3.5vw;
		padding: 0.3em 2em 0.3em 0.6em;
	}
	.area03 .content .tokucho li::after {
		font-size: 6.57vw;
		margin-left: 0.3em;
	}
	.area03 .content .media_text-2 {
		grid-template-columns: 1fr;
	}
	.area03 .content .media_text-2 .media {
		width: 80%;
		margin: 0 auto 0.5rem;
	}
	.area03 .content .media_text-2 .text {
		font-size: 3.7vw;
	}
}

/* ------------------------- */

.area03.purple {
	padding: 3rem 1.5rem;
	background-image: url(/images/area03-purple_bg.png);
	background-color: #CAADFC;

}
.area03.purple .heading-2 {
	color: #7D4697;
	border-color: #7D4697;
}
.area03.purple .content .media_text-1 .text {
	width: 28em;
}
.area03.purple .screenshot {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 1.5rem;
	max-width: 834px;
	margin: 0 auto 1.5rem;
}
.area03.purple .screenshot li {
	padding: 1rem 0.5rem ;
	border: 0.14em solid #7D4697;
	border-radius: 1rem;
}
.area03.purple .screenshot li h4 {
	font-size: 1.5rem;
	font-weight: 600;
	line-height: 1.3;
	color: #7D4697;
}
.area03.purple .screenshot p {
	font-size: 1.15rem;
	text-align: left;
	line-height: 1.5;
	padding: 0.5em 1em;
}
.area03.purple .area03_text {
	max-width: 834px;
	margin: 0 auto;
	font-size: 1.1rem;
	line-height: 1.6;
}
@media screen and (max-width: 750px) {
	.area03.purple {
		padding: 0.8rem;
	}
	.area03.purple .content .media_text-1 .text {
		width: 100%;
	}
	.area03.purple .screenshot {
		grid-template-columns: 1fr;
		row-gap: 1rem;
		margin-bottom: 0.6rem;
	}
	.area03.purple .screenshot li h4 {
		font-size: 4.5vw;
	}
	.area03.purple .screenshot p {
		font-size: 3.5vw;
		padding: 0 0.8em;
	}
	.area03.purple .area03_text {
		font-size: 3.7vw;
		text-align: left;
	}
	.area03.purple .btn_block .btn_block_inner {
		padding: 1em 1.5em;
	}
}

/* ------------------------- */

.area04 {
	padding: 2rem 1.5rem;
	text-align: center;
	font-size: 1.5rem;
	line-height: 1.3;
	background-color: #FCEFDD;
}
.area04 .logo {
	margin-bottom: 0.5em;
}
.area04 .logo img {
	height: 3.4rem;
}
.area04 .text {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 2em;
	max-width: 870px;
	margin: 1rem auto 2rem;
	text-align: left;
	font-size: 1.1rem;
	line-height: 1.6;
}
.area04 .text li {
	padding-left: 1em;
	text-indent: -1em;
}
.area04 .taiken_schedule {
	line-height: 1.4;
	width: 100%;
	max-width: 900px;
	font-size: 1.1rem;
	margin: 0 auto 1.5rem;
}
.area04 .taiken_schedule th {
	font-weight: 400;
	padding: 0.4em 1em;
	color: #fff;
	background-color: #333;
	border: 0.1em solid #333;
}
.area04 .taiken_schedule td {
	padding: 0.4em 1.5em;
	background-color: #fff;
	border: 0.1em solid #333;
	text-align: left;
}
.area04 .taiken_schedule td .note {
	font-size: 0.9em;
	text-align: right;
}
.area04 .contact {
	max-width: 900px;
	margin: 0 auto;
	padding: 1.2rem;
	background-color: #fff;
	font-size: 1.25rem;
}
.area04 .contact .heading-4 {
	margin-bottom: 1em;
}
.area04 .contact ul {
	display: grid;
	grid-template-columns: 1fr 8.3rem;
	column-gap: 2rem;
	margin: 1rem auto 0;
	max-width: 600px;
	align-items: center;
}
.area04 .contact ul .tel {
	border: 0.14em solid #4DA6FF;
	border-radius: 0.5em;
	font-size: 0.9rem;
	padding: 0.5em 1em;
}
.area04 .contact ul .button a.btn-1 {
	height: 5em;
	width: 100%;
}
.area04 .contact ul .tel .ttl {
	font-size: 1.1em;
	color: #4DA6FF;
	font-weight: 600;
}
.area04 .contact ul .tel .num {
	margin: 0.2em 0 0.1em;
	font-size: 1.7em;
	font-family: "Roboto", sans-serif;
}
.area04 .contact ul .tel .num a {
	color: #333;
}
@media screen and (max-width: 750px) {
	.area04 {
		padding: 1.5rem 1rem;
		font-size: 5.4vw;
	}
	.area04 .logo img {
		height: 11vw;
	}
	.area04 .text {
		grid-template-columns: 1fr;
		row-gap: 1em;
		margin: 0.6rem auto 1rem;
		font-size: 3.75vw;
	}
	.area04 .taiken_schedule {
		font-size: 3.8vw;
	}
	.area04 .taiken_schedule th,
	.area04 .taiken_schedule td {
		text-align: center;
		display: block;
		width: 100%;
	}
	.area04 .taiken_schedule td {
		padding: 0.6em 1em;
		border-top: none;
	}
	.area04 .taiken_schedule td .note {
		margin-top: 0.5em;
		text-align: center;
	}
	.area04 .contact {
		padding: 1.2rem;
		font-size: 4vw;
	}
	.area04 .contact .illust {
		width: 60%;
		margin: 0 auto 0.5rem;
	}
	.area04 .contact ul {
		grid-template-columns: 1fr;
		margin: 1rem auto 0;
		row-gap: 1rem;
	}
	.area04 .contact ul .tel {
		font-size: 3.7vw;
		padding: 0.5em 1em;
	}
	.area04 .contact ul .button a.btn-1 {
		height: 3em;
		width: 100%;
		font-feature-settings: "palt";
	}
	.area04 .contact ul .tel .ttl {
		font-size: 1.1em;
		color: #4DA6FF;
		font-weight: 600;
	}
}

/* ------------------------- */

.area05 {
	padding: 2rem 1.5rem;
	text-align: center;
	font-size: 1.5rem;
	line-height: 1.3;
}
.area05 .logo {
	margin-bottom: 0.5em;
}
.area05 .logo img {
	height: 3.4rem;
}
.area05 .gaiyou {
	max-width: 900px;
	margin: 0 auto;
	font-size: 1rem;
}
.area05 .gaiyou {
	line-height: 1.4;
	border-top: 0.1em solid #333;
}
.area05 .gaiyou .note {
	text-align: left;
	padding-left: 1em;
	text-indent: -1em;
}
.area05 .gaiyou .jikanwari {
	display: flex;
	column-gap: 1rem;
	align-items: flex-start;
}
.area05 .gaiyou th:not(.jikanwari th) {
	font-weight: normal;
	padding: 0.7em 0.5em;
	border-bottom: 0.1em solid #333;
	width: 20%;
	text-align: center;
}
.area05 .gaiyou td:not(.jikanwari td) {
	padding: 0.7em 0.5em;
	border-bottom: 0.1em solid #333;
	text-align: left;
}
.area05 .gaiyou td.cycle span {
	background-color: #333;
	color: #fff;
	margin-right: 0.5em;
	padding: 0 0.3em;
}
.area05 .gaiyou .jikanwari table {
	line-height: 1.4;
	border: 0.15em solid #333;
}
.area05 .gaiyou .jikanwari thead td {
	text-align: center;
	padding: 0 0.5em;
	color: #fff;
	background-color: #333;
}
.area05 .gaiyou .jikanwari thead td:nth-child(n+3) {
	border-left: 1px solid #fff;
}
.area05 .gaiyou .jikanwari tbody th {
	font-weight: normal;
	padding: 0.2em 0.8em;
	border: 0.1em solid #333;
}
.area05 .gaiyou .jikanwari tbody tr:nth-child(odd) th {
	background-color: #F1F1F1;
}
.area05 .gaiyou .jikanwari tbody td {
	padding: 0.2em 0.4em;
	border: 0.1em solid #333;
}
@media screen and (max-width: 750px) {
	.area05 {
		padding: 1.5rem 1rem;
	}
	.area05 .logo img {
		height: 11vw;
	}
	.area05 .gaiyou {
		font-size: 3.7vw;
	}
	.area05 .gaiyou th:not(.jikanwari th),
	.area05 .gaiyou td:not(.jikanwari td) {
		text-align: center;
		display: block;
		width: 100%;
	}
	.area05 .gaiyou .jikanwari {
		flex-direction: column;
		row-gap: 0.5rem;
		margin-bottom: 0.5rem;
	}
	.area05 .gaiyou th:not(.jikanwari th) {
		padding: 0.7em 0.5em 0.3em;
		font-weight: bolder;
		border-bottom: none;
		font-size: 1.1em;
	}
	.area05 .gaiyou td:not(.jikanwari td) {
		padding: 0 0.5em 0.7em;
	}
	.area05 .gaiyou td.cycle {
		line-height: 1.8;
		text-align: left !important;
		padding-left: 2em !important;
	}
}