@charset "utf-8";

:root {
	--color-blue: #3d3dff;
	--color-darkblue: #004986;
	--color-red: #e7edf3;
	--color-yellow: #fff45c;
	--color-orange: #ff9700;
	--color-green: #27ba40;
	--bgcolor-blue: #e8f7ff;
	--textcolor-blue: #1faee5;
	--weight-3: 300;
	--weight-4: 400;
	--weight-5: 500;
	--weight-5: 500;
	--weight-6: 600;
	--weight-7: 700;
	--weight-8: 800;
}

html { scroll-behavior: smooth;}
html,
body {
	width: 100%;
	height: 100%;
}

body {
	font-family: 'Noto Sans Japanese', "游ゴシック", "Yu Gothic", YuGothic, 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro W3', Meiryo, 'メイリオ', Osaka, 'MS PGothic', arial, helvetica, sans-serif;
	font-weight: normal;
	line-height: 1;
	overflow-x: hidden;
	color: #535353;
	line-break: strict;
}

img {
	max-width: 100%;
	height: auto;
	vertical-align: bottom;
	font-size: 0;
	line-height: 0;
	border: 0;
}

.elps {
	width: 100%;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
}

.clamp {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow: hidden;
}

.clamp_2 {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow: hidden;
}
/*policy*/
section.policy_content {
    padding-bottom: 10rem;
}
/* form
-----------------------------------------------------------------------------------*/
input[type="text"],
input[type="tel"],
input[type="email"],
input[type="number"],
select,
textarea {
	width: 80%;
	padding: 2px 10px;
	border: solid 2px rgb(220, 220, 220);
	font-size: 16px;
	border-radius: 5px;
	box-sizing: border-box;
	font-size: 20px;
}

.select_box-inner {
	width: 80%;
	position: relative;
}

.select_box-inner select {
	width: 100%;
	padding: 6px 10px;
}

.select_box-inner::after {
	position: absolute;
	top: 30%;
	right: 15px;
	width: 10px;
	height: 10px;
	border-top: 3px solid #0068b7;
	border-right: 3px solid #0068b7;
	-webkit-transform: rotate(135deg);
	transform: rotate(135deg);
	pointer-events: none;
	content: "";
}

textarea {
	height: 150px;
}

.hissu {
	background: #e60012;
	text-align: center;
	color: #fff;
	font-size: 14px;
	padding: 3px 5px;
	border-radius: 1px;
	margin-left: 5px;
	line-height: initial;
	border-radius: 5px;
}

.any {
	background: #959595;
	text-align: center;
	color: #fff;
	font-size: 14px;
	padding: 3px 5px;
	border-radius: 1px;
	margin-left: 5px;
	line-height: initial;
	border-radius: 5px;
}

button {
	display: block;
	width: 60%;
	background: var(--color-orange);
	text-align: center;
	color: #fff;
	font-size: 1.4vw;
	margin: 0 auto;
	padding: 20px 0;
	cursor: pointer;
	border-radius: 5px;
	border: none;
}

button.send_ok {
	color: #fff;
}

.gray_btn {
	width: 45%;
	background: #ccc;
	text-align: center;
	color: #999;
	font-size: 1.2vw;
	font-weight: bold;
	border: none;
	margin: 0 auto;
	padding: 15px 0;
	border-radius: 40px;
}

#form input,
#form textarea {
	box-sizing: border-box;
	width: 100%;
	padding: 0.5vw;
	font-size: 16px;
}

#form button {
	-moz-appearance: none;
	appearance: none;
	width: 60%;
	padding: 15px 0;
	background: #e53081;
	border: none;
	border-radius: 100px;
	color: #fff;
	font-size: 20px;
	font-weight: bold;
	text-align: center;
	display: block;
	margin: 0 auto;
}

#form button:disabled {
	background: #dcdcdc;
	color: #333;
}

::placeholder {
	color: #999;
}

.recaptcha_policy {
	color: #999;
	padding-top: 5px;
	font-size: 1rem;
	text-align: center;
}
.recaptcha_policy a:link,
a:visited,
a:hover,
a:active {
	color: #00f;
}

/* モーダル
-----------------------------------------------------------------------------------*/
#thanks {
	z-index: 30;
	max-width: 100%;
}

.inner_thanks {
	padding: 3vw 20vw 0 20vw;
}

.inner_thanks p {
	text-align: center;
	font-size: 20px;
	padding-bottom: 15px;
}

.inner_thanks .inner_thanks02 {
	text-align: center;
	padding-bottom: 15px;
	font-size: 20px;
	line-height: initial;
}
.inner_thanks .comp {
	font-size: 26px;
}
.inner_thanks .txt {
	text-align: left;
	line-height: initial;
}

.close_btn a {
	width: 40%;
	margin: 20px auto 0 auto;
	font-size: 1.2vw;
	font-weight: bold;
	border: 2px solid #fff;
	border-radius: 30px;
	padding: 1.5rem 0;
	color: #fff;
	display: block;

}

.changed {
	display: none !important;
}

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

footer

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

.footer__copyright {
	text-align: center;
	display: block;
	font-size: 12px;
	padding-bottom: 30px;
}

.footer.sec_com h2 {
	font-size: 3rem;
}
#p-checkbox {
	margin-right: 10px;
	transform: scale(1.5);
}
@media screen and (min-width: 770px) {
:root {
	--size-32: 3.2rem;
	--size-38: 3.8rem;
	--size-48: 4.8rem;
}
	.pc {
		display: none !important;
	}
	.sp_foot-tel a {
	pointer-events: none;
}
}

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

PC

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

html {
	font-size: 62.5%;
}

body {
	font-size: 1.5rem;
}

a:hover {
	opacity: 0.7;
	transition: .2s;
}

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

PC common

======================================= */
.title {
	font-size: 28px;
	margin-bottom: 20px;
	font-weight: 600;
	line-height: 1.3;
}

.inner {
	margin: 0 auto;
	padding: 70px 30px;
	max-width: 1140px;
}

.size-32 {
	font-size: var(--size-32);
}

.size-48 {
	font-size: var(--size-48);
}

.blue {
	color: var(--textcolor-blue);
}

.darkblue {
	color: var(--textcolor-darkblue);
}

.orage {
	background: var(--color-orange);
}

.green {
	background: var(--color-green);
}

.weight-7 {
	font-weight: var(--weight-7);
}

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

PC support

======================================= */
.support picture {
	text-align: center;
	display: block;
}
.support .title {
	text-align: center;
	font-size: var(--size-38);
}
.support_inner {
	background: var(--bgcolor-blue);
	margin-top: -110px;
}

.support_inner .inner {
	padding: 100px 10px;
	max-width: 930px;
}

.support_content {
	font-size: var(--size-32);
	font-weight: 600;
	text-align: center;
}

.support_sentence {
	margin-bottom: 20px;
	line-height: 1.2;
}

.support_txt {
	background: var(--color-yellow);
	padding: 15px 10px;
	border-radius: 50px;
	font-weight: var(--weight-6);
	line-height: 1.3;
}

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

PC room

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

.room_content {
	display: flex;
	align-items: center;
	margin-bottom: 70px;
}

.room_avatar {
	max-width: 250px;
	padding: 0 40px 0 20px;
}

.room_detail {
	flex: 1;
}

.room_lead {
	font-size: 38px;
	font-weight: 600;
	margin-bottom: 40px;
	text-decoration: underline;
	text-decoration-thickness: 0.5em;
	text-decoration-color: #fff45c;
	text-underline-offset: -0.2em;
	text-decoration-skip-ink: none;
	line-height: initial;
}

.room_list-item::before {
	content: "";
	display: inline-block;
	background: url(/images/icon_check.png) no-repeat;
	width: 44px;
	height: 40px;
	vertical-align: middle;
	margin-right: 10px;
	background-size:contain;
}

.room_list-item {
	font-size: 23px;
	font-weight: 500;
	text-indent: -2em;
	padding-left: 2em;
}

.room_list-color {
	font-size: 26px;
}

.room_list-item:not(:last-child) {
	margin-bottom: 15px;
}

.gallery {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 10px;
	gap: 0 20px;
}

.gallery_list-ttl {
	font-size: 24px;
	text-align: center;
	font-weight: 600;
	margin-bottom: 15px;
}

.gallery_list-note {
	text-align: right;
	font-size: 12px;
}
/* =======================================

PC campaign

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

.campaign {
	background: url(/images/campaign_bg.jpg) no-repeat;
	background-size: cover;
	text-align: center;
	padding: 40px 0;
}

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

PC consult

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

.consult {
	background: var(--bgcolor-blue);
}

.consult .title {
	text-align: center;
	font-size: 24px;
	margin-bottom: 30px;
}

.consult .title span {
	font-size: var(--size-48);
}

.consult_content {
	background: #fff;
	display: flex;
	align-items: center;
	padding: 45px 40px;
	gap: 0 20px;
}

.consult_detail-ttl {
	font-size: 26px;
	font-weight: 600;
	margin-bottom: 20px;
	line-height: 1.3;
}

.consult_detail-sentence {
	font-size: 16px;
	line-height: initial;
}

.consult_detail-tel a {
	font-size: 36px;
	font-weight: 900;
	color: #000;
	pointer-events: none;
}

.consult_detail-tel a::before {
	display: inline-block;
	content: "";
	width: 40px;
	height: 40px;
	background: url(/images/icon-tel.png) no-repeat;
	vertical-align: middle;
}

.consult_detail-hours {
	font-size: 14px;
	margin-bottom: 15px;
}

.contact_cv {
	display: flex;
	align-items: center;
	gap: 0px 10px;
}

.contact_cv .contact-item {
	width: 100%;
}

.contact_cv .contact-item.contact-right a {
	padding: 13px 30px;
}

.contact_cv .contact-item>span {
	display: block;
	font-size: 14px;
}

.contact_cv .contact-item a:not(.contact_tel),
.contact_cv .contact-item .green {
	color: #fff;
	display: block;
	border-radius: 5px;
	box-shadow: 2px 3.464px 4px 0px rgba(0, 0, 0, 0.15);
	text-align: center;
	padding: 15px 20px;
	font-size: 20px;
	line-height: 1.4;
	white-space: nowrap;
}


.contact_cv .contact-item em {
	font-weight: 600;
}

.contact_cv .contact-mail::before {
	content: "";
	display: inline-block;
	width: 31px;
	height: 21px;
	background: url(/images/icon_mail.png) no-repeat;
	vertical-align: text-bottom;
	margin-right: 5px;
}

.contact_cv .contact-line::before {
	content: "";
	display: inline-block;
	width: 28px;
	height: 28px;
	background: url(/images/icon_line.png) no-repeat;
	vertical-align: middle;
	margin-right: 5px;
}

.contact_cv .contact-mail+span {
	font-size: 14px;
	display: block;
}

.line_txt span {
	background: #fff;
	color: var(--color-green);
	border-radius: 5px;
	display: inline-block;
	padding: 0px 10px;
}

.line_txt {
	font-size: 15px;
	text-align: right;
}

.tiny {
	font-size: 11px;
}

.consult_detail.consult_detail-right {
	flex: 1;
}

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

PC work

======================================= */
.work_head {
	text-align: center;
}

.work_head .lead {
	font-size: 24px;
	font-weight: 600;
}

.title_lead {
	font-size: 30px;
}

.lead_large {
	font-size: var(--size-48);
}

.lead2 {
	font-size: 20px;
	font-weight: 500;
}
.swiper-slide {
	box-sizing: border-box;
}
.work .swiper {
	padding: 2.5rem 0 5rem;
}

.swiper-slide {
	max-width: 640px;
	height: auto;
	opacity: .4;
	transform: scale(.94) !important;
	transition: all .3s cubic-bezier(.455, .03, .515, .955) 0s;
	font-size: 16px;
}

.swiper-slide-inner {
	display: flex;
	padding: 20px;
	border-radius: 10px;
	box-shadow: 0 0 1rem .5rem rgba(27, 27, 27, .2);
	max-width: 640px;
}

.swiper .swiper-button-next,
.swiper .swiper-button-prev {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 10;
	border-radius: 1rem;
	color: #fff;
}

.work .swiper-button-prev::after,
.swiper-rtl .swiper-button-next::after {
	content: "";
}

.work .swiper-button-next::after,
.swiper-rtl .swiper-button-prev::after {
	content: "";
}

.swiper .swiper-wrapper .swiper-slide-active {
	opacity: 1;
	padding: 0 1rem;
	transform: scale(1) !important;
	z-index: 9;
}

.swiper .swiper-button-prev {
	left: calc(48% - 320px - 1.5rem);
	width: auto;
}

.swiper .swiper-button-next {
	right: calc(48% - 320px - 1.5rem);
	width: auto;
}

.swiper .swiper-pagination-bullet {
	height: 1.5rem;
	width: 1.5rem;
}

.swiper .swiper-pagination-bullet {
	background-color: #b5b5b5;
	height: 1rem;
	margin: 0 .25rem;
	opacity: 1;
	width: 1rem;

}

.swiper .swiper-pagination-bullet-active {
	background-color: #66b9da;
}

.work_inner {
	flex: 1;
}

.work_thumb,
.work_inner {
	padding-left: 1rem;
	padding-right: 1rem;
}

.work_inner .ttl {
	font-size: 20px;
	text-align: center;
	background: var(--bgcolor-blue);
	padding: 10px;
	margin-bottom: 15px;
	color: var(--textcolor-blue);
	font-weight: var(--weight-7);
}

.work_list-item::before {
	content: "";
	display: inline-block;
	background: url(/images/icon_check.png) no-repeat;
	width: 28px;
	height: 24px;
	vertical-align: middle;
	background-size: contain;
}

.work_list-item:not(:last-child) {
	margin-bottom: 10px;
}

.work_list {
	border-bottom: dotted 2px #ccc;
	margin-bottom: 20px;
	padding-bottom: 20px;
	font-size: 15px;
}

.work_flex {
	display: flex;
	font-size: 16px;
	font-weight: var(--weight-5);
	align-items: first baseline;
	margin-bottom:10px;
}

.work_ttl {
	color: var(--color-darkblue);
	margin-right: 20px;
	min-width: 20%;
}
.work_ttl+p {
	line-height: 1.4;
}

.license_head {
	line-height: 1.3;
	margin-bottom: 30px;
}

.license_content .lead {
	font-size: 24px;
	font-weight: 600;
}

.license_content .lead_large {
	font-size: 36px;
	font-weight: 600;
}

.license_content {
	text-align: center;
}

.cate_list {
	display: flex;
	gap: 0 15px;
	margin-bottom: 50px;
}

.cate_list-item {
	background: var(--textcolor-blue);
	color: #fff;
	width: calc(100% / 4);
	text-align: center;
	padding: 15px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: clamp(1.063rem, 0.903rem + 0.8vw, 2.4rem);
	border-radius: 10px;
}

.reference a {
	display: inline-block;
	font-size: 24px;
	color: #fff;
	text-align: center;
	padding: 20px 50px 20px 20px;
	border-radius: 40px;
	font-weight: 600;
	position: relative;
	box-shadow: 2px 3.464px 4px 0px rgba(0, 0, 0, 0.15);
}

.reference a::before {
	display: block;
	content: "";
	position: absolute;
	top: 50%;
	right: 12px;
	width: 25px;
	height: 25px;
	border-radius: 50%;
	background: #fff;
	transform: translateY(-50%);
}

.reference a::after {
	display: block;
	content: "";
	position: absolute;
	top: 50%;
	right: 13px;
	width: 0;
	height: 0;
	border: 6px solid transparent;
	border-left-color: transparent;
	border-left-style: solid;
	border-left-width: 5px;
	border-left: 11px solid var(--color-orange);
	transform: translateY(-50%);
}

.reference {
	text-align: center;
}

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

PC feature

======================================= */
.feature_head {
	text-align: center;
	margin-bottom: 60px;
	line-height: initial;
}

.feature_head .title {
	font-size: 36px;
}

.feature_lead {
	font-size: 24px;
	font-weight: var(--weight-6);
}

.feature {
	background: var(--bgcolor-blue);
}

.feature_list {
	display: flex;
	flex-wrap: wrap;
	gap: 40px;
	margin-bottom: 80px;
}

.feature_list-thumb {
	margin-bottom: 50px;
}

.feature_list-item {
	background: #f9fdff;
	text-align: center;
	padding: 50px 30px;
	width: calc(100% / 2 - 20px);
	box-sizing: border-box;
	border-radius: 20px;
	position: relative;
}
.feature_point {
	position: absolute;
	left: 20px;
	top: 20px;
	padding: 5px 20px;
	font-size: 20px;
}

.feature_list-ttl {
	font-size: var(--size-32);
	color: var(--textcolor-blue);
	font-weight: 600;
	margin-bottom: 20px;
}

.feature_list-sentence {
	font-size: 18px;
	text-align: left;
	padding: 0 10px;
	line-height: initial;
}

.feature_bt .title {
	font-size: var(--size-38);
	text-align: center;
}

.feature_sentence {
	font-size: 18px;
	line-height: 1.6;
}

.feature_sentence span {
	font-weight: 600;
}


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

PC flow

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

.flow_head {
	text-align: center;
	margin-bottom: 60px;
}

.flow_head .title {
	font-size: 36px;
}

.flow_head .lead {
	font-size: 24px;
	font-weight: 600;
}

.flow_list-item {
	border: 3px solid #e1f0f8;
	padding: 30px;
	display: flex;
	align-items: center;
	position: relative;
}

.flow_list-item::after {
	content: "";
	display: inline-block;
	width: 34px;
	height: 46px;
	background: url(/images/flow-arrow.png) no-repeat;
	position: absolute;
	left: 70px;
	bottom: -35px;
	z-index: 1;
}

.flow_list-item.flow_list-item--last::after {
	content: none;
}

.flow_list {
	display: flex;
	flex-direction: column;
	gap: 20px 0;
}


.flow_list-num {
	font-size: 18px;
	font-weight: var(--weight-8);
	text-align: center;
	margin-bottom: 15px;
}

.flow_list-num span {
	font-size: 28px;
	font-weight: 900;
}

.flow_list-el {
	background: var(--textcolor-blue);
	color: #fff;
	text-align: center;
	padding: 20px 30px;
	border-radius: 50px;
	font-size: 24px;
}

.flow_list-right {
	flex: 1;
}

.flow .contact_cv .contact-item {
	width: initial;
}

.flow_list_left {
	width: 11%;
	margin-right: 50px;
}


.flow_list-ttl {
	font-size: 24px;
	font-weight: var(--weight-6);
	margin-bottom: 5px;
	line-height: 1.4;
}

.flow_list-lead {
	font-size: 16px;
	margin-bottom: 20px;
	font-weight: var(--weight-5);
}

.contact-item .contact_tel {
	color: #000;
	font-size: 36px;
	font-weight: 900;
	pointer-events: none;
	white-space: nowrap;
}

.flow .contact-item .contact_tel::before {
	display: inline-block;
	content: "";
	width: 40px;
	height: 40px;
	background: url(/images/icon-tel.png) no-repeat;
	vertical-align: middle;
}

.contact-item.contact-item-tel {
	margin-left: 10px;
}

.situation_list {
	display: flex;
	align-items: center;
	gap: 0 10px;
	margin-top: 20px;
}

.situation_list-item {
    width: calc(100% / 5);
    background: var(--color-red);
    text-align: center;
    color: var(--textcolor-blue);
    padding: 10px;
    border-radius: 5px;
    font-weight: var(--weight-6);
    font-size: 17px;
}

.flow_list-item.flow_list-item--last .flow_list-el {
	background: #004986;
}

.flow_list-item.flow_list-item--last {
	border: 3px solid #004986;
}

.flow_list-item.flow_list-item--last .flow_list-num .blue,
.flow_list-item.flow_list-item--last .flow_list-ttl {
	color: #004986;
}

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

PC voice

======================================= */
.voice .title {
    text-align: center;
    margin-bottom: 50px;
    font-size: var(--size-38);
}

.voice {
	background: var(--bgcolor-blue);
}

.voice_list {
	display: flex;
	flex-wrap: wrap;
	gap: 30px;
	justify-content: center;
}

.voice_list-item {
	width: calc(100% / 3 - 20px);
	background: #fff;
	padding: 20px;
	box-sizing: border-box;
	border-radius: 20px;
}

.avator {
	text-align: center;
	margin-bottom: 20px;
}

.avator img {
	margin-bottom: 10px;
}

.voice_content-ttl {
	background: var(--color-yellow);
	font-size: 18px;
	padding: 10px 5px;
	font-weight: var(--weight-6);
	margin-bottom: 20px;
	line-height: 1.3;
	border-radius: 10px;
	position: relative;
}

.voice_content-ttl::before {
	content: "";
	position: absolute;
	border: 12px solid transparent;
	border-bottom-color: transparent;
	border-bottom-style: solid;
	border-bottom-width: 12px;
	border-bottom: 12px solid var(--color-yellow);
	bottom: 100%;
	left: 50%;
	transform: translateX(-50%);
}

.voice_content-sentence {
	line-height: initial;
	font-size: 16px;
}



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

PC footer

======================================= */
.copyrights {
	background: #29363c;
	color: #fff;
	text-align: center;
	padding: 50px 0;
}

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

PC footer

======================================= */
.footer .inner {
	padding: 80px 0;
}

.f_logo {
	margin-bottom: 50px;
}

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

PC contact

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

.contact_head {
	text-align: center;
}

.contact_head .title {
	font-size: 36px;
	margin-bottom: 50px;
}

.contact_lead {
	font-size: 38px;
	color: var(--color-orange);
	font-weight: var(--weight-6);
	line-height: initial;
	margin-bottom: 20px;
}

.contact_lead span {
	font-size: 18px;
	display: block;
	color: initial;
}

.contact_tel::before {
	display: inline-block;
	content: "";
	width: 40px;
	height: 40px;
	background: url(/images/icon-tel.png) no-repeat;
	vertical-align: middle;
}

.contact .contact-item.contact-item-tel {
	margin-left: 0;
	width: initial;
	margin-right: 40px;
}

.contact .contact-item.contact-right {
	width: 27%;
}

.contact .contact_cv {
	justify-content: center;
	margin-bottom: 50px;
}

.flex_box.tbl_box.form {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 20px 0;
	align-items: center;
	margin-bottom: 30px;
}

.flex_box.tbl_box.form dt {
	width: 40%;
	text-align: right;
	padding-right: 20px;
	box-sizing: border-box;
}

.flex_box.tbl_box.form dd {
	width: 60%;
}

.cl-form .inner {
	max-width: 900px;
	margin: 0 auto;
}

.contact .note {
	display: block;
	margin-top: 10px;
	font-size: 13px;
}

.flex_box.tbl_box.form dt p {
	font-size: 20px;
	font-weight: var(--weight-5);
}

.radio_box {
	display: flex;
	gap: 0 10px;
}

.radio_box label {
	border: 2px solid rgb(220, 220, 220);
	padding: 8px 20px;
	font-size: 20px;
	display: flex;
	align-items: center;
	border-radius: 5px;
}

.radio_box label input {
	margin-right: 10px;
	transform: scale(1.2);
}

.contact {
	margin: 30px auto 0;
	max-width: 900px;
}

.privacy {
	text-align: center;
	margin-bottom: 30px;
	line-height: 2;
	font-size: 16px;
}

.privacy a {
	text-decoration: underline;
	color: #0068b7;
}

.p_from {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	border-left: 1px solid #cfcfcf;
	border-top: 1px solid #cfcfcf;
	border-right: 1px solid #cfcfcf;
}

.last_form {
	border-bottom: 1px solid #cfcfcf;
	margin-bottom: 50px;
}

.form__label {
	max-width: 55%;
	color: #000;
	background: #f6f6f6;
	padding: 0px 30px;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	font-weight: 200;
	border-right: 1px solid #cfcfcf;
	min-width: 35%;
	font-size: 15px;
}

.form__input.form__input--area {
	width: 95%;
}

.form__item.p_from.age_form input {
	width: 24%;
	margin-right: 20px;
}

.age_f {
	color: #000;
	font-weight: 100;
}

.c_align {
	text-align: center;
	font-weight: bold;
	margin-bottom: 95px;
}

.c_align {
	text-align: center;
	font-weight: bold;
	margin-bottom: 95px;
	font-size: 21px;
	line-height: 2.2;
}

.form__btn {
	color: #eb6877;
	text-align: center;
	border: 1px solid #eb6877;
	font-size: 20px;
	padding: 15px 10px;
	width: 45%;
	margin: 70px auto;
}

.last_form {
	border-bottom: 1px solid #cfcfcf;
}

.contact_area.contact_select {
	position: relative;
}

.contact_area.contact_select::before {
	content: "▼";
	position: absolute;
	left: 135px;
	top: 33px;
	display: inline-block;
	z-index: 99;
	pointer-events: none;
}

.contact_area {
	width: 100%;
	padding: 20px 30px;
	background: #fff;
}

.contact_area select {
	width: 24%;
	padding: 10px;
	border: solid 1px #cfcfcf;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}

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

PC policy

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

.header_inner.p_header .logo {
	max-width: 1140px;
	margin: 0 auto;
	padding: 10px;
}
.header_inner.p_header {
	box-shadow: 0 1px 4px rgba(0,0,0,.12);
}
.header_inner.p_header .logo img {
	max-width: 120px;
}
.p_ttl {
	margin: 4em 0 2em;
	font-size: 1.4em;
	font-weight: var(--weight-6);
	line-height: 1.3;
}
.p_txt {
	margin-bottom: 1em;
	line-height: initial;
}
.back {
	display: block;
	font-size: 20px;
	color: #fff !important;
	text-align: center;
	padding: 15px 0;
	border-radius: 40px;
	font-weight: 600;
	position: relative;
	box-shadow: 2px 3.464px 4px 0px rgba(0, 0, 0, 0.15);
	width: 20%;
	text-align: center;
	margin: 0 auto 40px;
}
.title.policy_ttl span {
	display: block;
	float: left;
	margin-bottom: -1px;
	padding: .25em .5em;
	border-bottom: solid 1px #000;
}
.title.policy_ttl::after {
	display: block;
	clear: both;
	height: 0;
	visibility: hidden;
	content: "";
}
.title.policy_ttl {
	position: relative;
	border-bottom: 1px solid #ccc;
}
@media screen and (min-width: 770px) {
.header_kv img {
	width: 100%;
}
#fixed {
	border-radius: 2rem;
	width: 100px;
	background-color: #fff;
	box-shadow: 0 0 1rem 0 rgba(27,27,27,.2);
	display: flex;
	flex-direction: row-reverse;
	justify-content: center;
	position: fixed;
	inset: auto 2rem 6rem auto;
	z-index: 999;
}

.sp_foot-mail {
	order: 2;
}
.sp_foot-tel {
	order: 3;
}
.sp_foot-line {
	order: 1;
}
.sp_foot {
	display: flex;
	flex-direction: column;
}
.sp_foot-line img {
	width: 85%;
}
.sp_foot-mail img {
	width: 60%;
}
.sp_foot li {
	text-align: center;
}
.sp_foot li a {
	display: block;
	padding: 1rem .25rem;
}
.sp_foot li:not(:first-child) {
	border-bottom: 1px solid #ccc;
}
}
@media screen and (min-width: 1000px) and (max-width: 1110px) {
.flow_list_left {
	width: 15%;
}
.contact_cv {
	flex-wrap: wrap;
	gap: 10px 10px;
}
}

@media screen and (min-width: 770px) and (max-width: 1000px) {
	.tb {
		display: none;
	}
	button {
	font-size: 2.4vw;
}
	.consult_detail-tel {
	white-space: nowrap;
}
.feature_list-ttl {
	line-height: 1.3;
}
.contact_cv {
	gap: 20px;
	display: inline-flex;
	flex-wrap: wrap;
	width: 100%;
}
.feature_point {
	padding: 0;
}
.feature_list-thumb {
	max-width: 40%;
	margin: 50px auto 50px;
}
.flow_list_left {
	width: 20%;
	margin-right: 20px;
}
.situation_list {
	flex-wrap: wrap;
	gap: 10px;
	align-items: stretch;
}
.situation_list-item {
	display: flex;
	align-items: center;
	justify-content: center;
}
.voice_list-item {
	width: calc(100% / 2 - 20px);
}
.contact .contact-item.contact-right {
	width: 30%;
}
}


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

SP

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

@media screen and (max-width:769px) {
:root {
	--size-31: 4.5vw;
	--size-32: 5vw;
	--size-38: 5.5vw;
	--size-40: 6vw;
	--size-48: 7vw;
}
	html {
	}
	body {
		font-size: 4.0625vw;
	}

	.sp {
		display: none !important;
	}
/* =======================================

SP common

======================================= */
.title {
	font-size: var(--size-32);
	text-align: center;
}
.inner {
	margin: 0 auto;
	padding: 4rem 1rem;
	max-width: 1140px;
}

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

sp support

======================================= */
.support .inner {
	padding: 4rem 0;
}
.support_inner {
	margin-top: -6rem;
}
.support_sentence {
	line-height: initial;
}
.support_sentence span {
	display: block;
}
.support_txt {
	border-radius: 100px;
	line-height: 1.3;
}
.support_inner .inner {
	padding: 10rem 1rem 4rem;
}
.room_content {
	flex-direction: column;
}
.room_avatar {
	padding: 0;
	margin-bottom: 2rem;
	max-width:140px;
}
.room_lead {
	font-size: var(--size-48);
	text-align: center;
	line-height: initial;
}
.room_list-item {
	font-size: var(--size-32);
	text-indent: -2em;
	padding-left: 2em;
	line-height: 1.4;
}
.room_list-color {
	font-size: 5.5vw;
}
.room_list-item::before {
	width: 7vw;
	height: 7vw;
}
.gallery {
	flex-direction: column;
}
.gallery_list-item:not(:last-child) {
	margin-bottom: 3rem;
}
/* =======================================

SP .consult

======================================= */
.consult .title {
	font-size: var(--size-32);
}
.consult .title span {
	font-size: var(--size-48);
	display: block;
	margin-top: 2rem;
}
.consult_content {
	padding: 3rem 1rem;
	gap: 20px 0px;
	flex-direction: column;
}
.contact_cv {
	gap: 20px 0px;
	flex-direction: column;
}
.consult_detail-tel a {
	pointer-events: all;
}
.consult_detail-ttl {
	font-size: var(--size-38);
	margin-bottom: 20px;
	text-align: center;
}
.line_txt {
	text-align: center;
}
.line_txt span {
	color: var(--color-green);
	display: inline-block;
	margin-left: 3rem;
}
.consult_detail.consult_detail-right {
	width: 100%;
	text-align: center;
}
/* =======================================

SP work

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

.work_head .lead {
	font-size: var(--size-32);
}
.work_head .lead {
	font-size: var(--size-32);
	margin-bottom: 1rem;
}
.title_lead {
	font-size: var(--size-32);
}
.work .lead2 {
	font-size: var(--size-31);
	font-weight: 500;
	line-height: 1.4;
}
.license_content .lead {
	font-size: var(--size-32);
	margin-bottom: 2rem;
}
.license_content .lead_large {
	font-size: var(--size-48);
}
.cate_list {
	gap: 20px 0px;
	flex-direction: column;
}
.cate_list-item {
	width: 100%;
	font-size: var(--size-32);
	box-sizing: border-box;
}
.reference a {
	font-size: var(--size-38);
}
.swiper-slide-inner {
	padding: 2rem 0rem;
}
.work_inner .ttl {
	font-size: var(--size-31);
	padding: 1rem 0;
}
.work_inner {
	flex: auto;
	flex-basis: 100%;
}
.work_list-item::before {
	width: 23px;
	height: 20px;
}
.work_list-item {
	text-indent: -1.8em;
	padding-left: 1.8em;
	font-size: 3.5vw;
}
.work_thumb, .work_inner {
	padding-left: .8rem;
	padding-right: .8rem;
}
.work_thumb img {
	height: 100%;
	object-fit: cover;
}
.work_flex {
	font-weight: var(--weight-5);
}
.work_ttl {
	margin-right: 1.5rem;
	min-width: 25%;
}
.swiper .swiper-button-next {
	right: 0;
	width: calc(10% / 1);
}
.swiper .swiper-button-prev {
	left: 0;
	width: calc(10% / 1);
}
/* =======================================

SP feature

======================================= */
.feature_lead {
	font-size: var(--size-32);
	font-weight: var(--weight-6);
	margin-bottom: 1rem;
	letter-spacing: -1px;
}
.feature_head .title {
	font-size: var(--size-48);
}
.feature_list {
	flex-direction: column;
	margin-bottom: 6rem;
}
.feature_list-item {
	padding: 7rem 2rem 4rem;
	width: 100%;
	border-radius: 20px;
}
.feature_list-thumb {
	margin-bottom: 3rem;
}
.feature_list-sentence {
	font-size: var(--size-31);
	text-align: left;
	padding: 0 0px;
}
.feature_point {
	padding: 0 0px;
}
/* =======================================

SP flow

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

.feature_sentence {
	font-size: var(--size-31);
}

.flow_head .title {
	font-size: var(--size-48);
	line-height: 1.4;
}
.flow_list {
	flex-direction: column;
}
.flow_list-item {
	flex-direction: column;
	padding: 2rem;
}
.flow_list_left {
	width: auto;
	margin-right: 0;
	margin-bottom: 2rem;
}
.flow_list-ttl {
	font-size: var(--size-32);
	margin-bottom: 1rem;
	line-height: 1.3;
}
.flow_list-lead {
	font-size: var(--size-31);
	line-height: 1.3;
}
.flow .contact_cv .contact-item {
	width: 100%;
	text-align: center;
}
.flow_list-item::after {
	left: 50%;
	transform: translateX(-50%);
}
.situation_list {
	gap: 10px 0px;
	flex-direction: column;
}
.situation_list-item {
	width: 100%;
}
.flow_list-num {
	font-size: var(--size-40);
}
.flow_list-num span {
	font-size: 10vw;
}
.flow_list-el {
	padding: 20px 40px;
	font-size: var(--size-40);
}
/* =======================================

SP voice

======================================= */
.voice .title {
	font-size: var(--size-40);
}
.voice_list {
	flex-direction: column;
}
.voice_list-item {
	width: 100%;
	padding: 2rem 1rem;
}
.voice_content-ttl {
	font-size: var(--size-31);
	padding: 1rem;
}
.voice_content-sentence {
	font-size: var(--size-31);
}


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

SP footer

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

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

SP footer

======================================= */
	.footer {
		padding: 80px 0 10px;
		text-align: center;
	}

	.f_logo {
		margin-bottom: 50px;
	}

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

SP contact

======================================= */
	/* contact
-----------------------------------------------------------------------------------*/
.contact-item .contact_tel {
	pointer-events: auto;
}
.contact_head .title {
	font-size: var(--size-48);
	margin-bottom: 4rem;
}
.contact_lead {
	margin-bottom: 20px;
	font-size: var(--size-48);
}
.contact_lead span {
	font-size: var(--size-31);
}
.contact .contact-item.contact-item-tel {
	margin-right: 0;
}
.contact .contact-item.contact-right {
	width: 100%;
}
.flex_box.tbl_box.form dt p {
	font-size: 4vw;
	margin: 0;
	display: flex;
	align-items: center;
}
.flex_box.tbl_box.form {
	flex-direction: column;
}
.flex_box.tbl_box.form dt {
	width: 100%;
}
.flex_box.tbl_box.form dd {
	width: 100%;
}
.radio_box label {
	font-size: 4vw;
}
.contact .note {
	margin-top: 5px;
}
	dl.tbl_box {
		margin: 0.1rem auto 1.5rem auto;
	}

	dl.tbl_box dt p {
		text-align: center;
		margin: 0 0 0 15px;
	}
.flex_box.tbl_box.form dd {
	width: 100%;
	padding: 0;
	margin-bottom: 2rem;
}
	.flex_box.tbl_box.form {
	gap: 10px 0;
	}
	dl.tbl_box dd {
		width: 100%;
		background: #fff;
		border-top: none;
		border-bottom: none;
		box-sizing: border-box;
		padding: 1.2rem 5%;
		line-height: 1.7;
	}

	dl.tbl_box dd>p {
		position: relative;
		padding-left: 10px;
	}

	dl.tbl_box dd>p:before {
		content: "・";
		position: absolute;
		top: 0;
		left: -7px;
	}


	/* form
-----------------------------------------------------------------------------------*/
input[type="text"], input[type="tel"], input[type="email"] {
	width: 100%;
	padding: 1rem;
	font-size: var(--size-31);
}

	textarea {
		width:100%;
		padding: 8px 0 8px 5px;
		height: 150px;
		font-size: 0.95rem;
	}

.hissu {
	text-align: center;
	color: #fff;
	font-size: 2.5vw;
	padding: 2px 5px;
	border-radius: 5px;
	margin-left: 8px;
	line-height: initial;
}
.select_box-inner {
	width: 100%;
}
.any {
	font-size: 2.5vw;
	padding: 2px 5px;
}
.privacy {
	font-size: 3.5vw;
}
.privacy span {
	display: block;
	font-size: 3vw;
	width: 7%;
	margin: 0 auto 1rem;
}
button {
	width: 90%;
	font-size: var(--size-31);
}

button.send_ok {
	color: #fff;
	font-size: var(--size-31);
}

	.gray_btn {
		width: 100%;
		background: #ccc;
		text-align: center;
		color: #999;
		font-size: 1.2vw;
		font-weight: bold;
		border: none;
		margin: 1rem auto 0 auto;
		padding: 15px 0;
		border-radius: 40px;
	}

	#form input,
	#form textarea {
		box-sizing: border-box;
		width: 100%;
		padding: 0.5vw;
		font-size: 16px;
	}

	#form button {
		-moz-appearance: none;
		appearance: none;
		width: 60%;
		padding: 15px 0;
		background: #e53081;
		border: none;
		border-radius: 100px;
		color: #fff;
		font-size: 20px;
		font-weight: bold;
		text-align: center;
		display: block;
		margin: 0 auto;
	}

	#form button:disabled {
		background: #dcdcdc;
		color: #333;
	}

	::placeholder {
		color: #999;
		font-size:4vw;
	}

	.content__inner {
		padding: 4rem 0;
	}

	/* モーダル
-----------------------------------------------------------------------------------*/
	#thanks {
		z-index: 30;
		max-width: 100%;
	}

	.inner_thanks {
		padding: 2rem 2rem 0 2rem;
	}

	.inner_thanks p {
		text-align: center;
		font-size: 2rem;
		padding-bottom: 15px;
	}

	.inner_thanks .inner_thanks02 {
		text-align: left;
		font-size: 4vw;
		padding-bottom: 15px;
		line-height: initial;
	}

	.inner_thanks .txt {
		text-align: left;
		font-size: 4vw;
		line-height: initial;
	}

	.close_btn a {
		width: 75%;
		margin: 20px auto 0 auto;
		color: #fff;
		font-size: 4vw;
		font-weight: bold;
		border: 2px solid #fff;
		border-radius: 30px;
		padding: 1rem 0;
	}


	.changed {
		display: none !important;
	}

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

SP footer

======================================= */
	.sp_footbox {
		background: #fff;
	}

.sp_foot {
	display: flex;
	text-align: center;
	font-size: 3.5vw;
	padding: 1rem 5px;
	gap: 0 5px;
}
.sp_foot-tel a {
	display: flex;
	background: #000;
	color: #fff;
	border-radius: 5px;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
}
.pc.fixed_tel em {
	display: block;
}

.sp_foot-tel {
	width: 25%;
	background: #000;
	border-radius: 5px;
}
.pc.fixed_tel span {
	display: block;
	font-size: 2.5vw;
}
.pc.fixed_tel {
	line-height: 1.3;
}
.sp_foot-mail {
	width: 25%;
	background: var(--color-orange);
	border-radius: 5px;
	line-height: 1.3;
}
.sp_foot-mail a {
	display: flex;
	background: var(--color-orange);
	border-radius: 5px;
	color: #fff;
	width: 100%;
	height: 100%;
	align-items: center;
	justify-content: center;
}
.sp_foot-line {
	flex: 1;
}
.fixed_line-info {
	flex: 1;
}
.pc.fixed_mail em {
	display: block;
}
.pc.fixed_mail span {
	display: block;
	font-size: 2.5vw;
	white-space: nowrap;
}

.sp_foot-line a {
	display: block;
	background: var(--color-green);
	border-radius: 5px;
	padding: 0.5rem;
	color: #fff;
	line-height: 1.25;
}

.pc.fixed_line {
	display: flex;
	align-items: center;
}
.fixed_line-bt {
	background: #fff;
	border-radius: 5px;
	font-size: 2vw;
	color: var(--color-green);
}
.fixed_line-icon {
	max-width: 25%;
}
.fixed_line-bt {
	background: #fff;
	border-radius: 5px;
	font-size: 3vw;
	color: #27ba40;
	padding: 0 .5rem;
	white-space: nowrap;
	box-sizing: border-box;
}
.fixed_line-bt .tiny {
	font-size: 2.5vw;
}
.fixed_line-txt {
	font-size: 4vw;
	margin-bottom: .2rem;
	display: inline-block;
}
.fixed_line-bt span {
	display: inline-block;
	vertical-align: middle;
}
	#fixed {
		display:none;
		position: fixed;
		bottom: 0;
		background: rgba(0, 0, 0, 0.7);
		width: 100%;
		z-index: 2;
	}
	#fixed.active {
		display: block;
	}
	.footer__copyright {
		text-align: center;
		display: block;
		font-size: 3vw;
	}

	/* reCAPTCHA v3　表示位置 */
	.grecaptcha-badge {
		margin-bottom: 60px;
	}
/**********************************************

SP policy

************************************************/
.header_inner.p_header .logo img {
	max-width: 100px;
}
.back {
	font-size: 5vw;
	width: 80%;
}

}

.confirm .flex_box.tbl_box.form{
	flex-direction: inherit;
	margin-bottom: 10px;
	justify-content: inherit;
}

.confirm .flex_box.tbl_box.form dt{
	width: 40%;
}

.confirm .flex_box.tbl_box.form dd{
	text-align: left;
	width: inherit;
	margin-bottom: 0;
}

.confirm .c-form__button-group{
	display: flex;
	gap: 20px;
}

.confirm .c-form__button-group .submit--back{
	background: #cecfcf;
}

.error .inner_thanks .txt {
	text-align: center;
}

.error .close_btn a, .thanks .close_btn a {
	width: 40%;
	margin: 20px auto 0 auto;
	font-size: 1.2vw;
	font-weight: bold;
	border: 2px solid #fff;
	border-radius: 30px;
	padding: 1.5rem 0;
	color: #fff;
	display: block;
	background: var(--color-orange);
}

.required .error{
	color: #e60012;
	margin-top: 5px;
}
