@charset "utf-8";
/*
	Last Update:2024/08/13
	Auther: yt
*/

#main_image .slick-track .unit {
	max-height: 70vh;
	background-position: center center;
}
#mainImage {
	width: 100%;
}
.wrapper2 {
	position: relative;
}
@media (max-width: 991px) {
	.wrapper2 {
		padding-top: 30px;
		padding-bottom: 30px;
	}
}
@media (min-width: 992px) {
	.wrapper2 {
		padding-top: 60px;
		padding-bottom: 60px;
	}
}

#area .btn_wrap .btn {
	border: 1px solid #49246B;
	padding: 8px 23px;
	border-radius: 3px;
	margin: 0 5px 15px 5px;
	cursor: pointer;
	color: #49246B;
	letter-spacing: 2px;
}
#area .title_text {
	letter-spacing: 2px;
}
#area .btn_wrap .btn.active {
	background-color: #49246B;
	color: white;
}
#area .flow {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
}
#area .flow_wrap {
	padding-right: 20px;
	margin-bottom: 20px;
	position: relative;
	width: 20%;
	min-width: 192px;
}
#area .flow_wrap::after {
	content: '';
	position: absolute;
	top: 50%;
	right: 5px;
	transform: translateY(-50%);
	width: 0;
	height: 0;
	border-top: 8px solid transparent;
	border-bottom: 8px solid transparent;
	border-left: 10px solid rgb(73, 36, 107, 0.2);
}
#area .flow_wrap:last-of-type {
	padding-right: 0px;
	width: calc(20% - 20px);
	min-width: 172px;
}
#area .flow_wrap:last-of-type::after {
	display: none;
}
#area .flow_wrap .number {
	position: absolute;
	top: -15px;
	left: -10px;
	background-color: #49246B;
	width: 40px;
	height: 40px;
	text-align: center;
	font-size: 20px;
	border-radius: 20px;
	color: white;
	padding-top: 1px;
}
#area .unit_flow {
	background-color: white;
	padding-top: 20px;
	box-shadow: 0px 1px 3px rgb(0, 0, 0, 0.16);
	border-radius: 10px;
	min-height: 240px;
}
#area .unit_flow .unit_circle {
	background-color: #F8F8F8;
	border-radius: 100px;
	width: 120px;
	height: 120px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto;
}
#area .unit_flow .flow_text {
	display: flex;
	min-height: 95px;
	justify-content: center;
	align-items: center;
}
.unit_col {
	background-color: #F6F7F8;
}
.unit_text_col {
	color: #4D4D4D !important;
}
#area .unit_sod {
	box-shadow: 0px 1px 3px rgb(0, 0, 0, 0.16);
}
#area .wrap-mb {
	margin: 0 10px;
}
#area a.button._type2 {
	border-radius: 5px;
}
.table-container {
	overflow-x: auto;
	width: 100%;
}
.unit_space {
	padding-left: 30px;
	padding-right: 30px;
}
#area .price2 {
	text-align: center;
	font-weight: bold;
	font-size: 1.6em;
	color: #333;
	line-height: 140%;
}
#area .price2 span {
	font-size: 13px;
	margin: 0 10px;
	color: #333;
}

#slider_table .slick-prev, .slick-next {
	font-size: 0;
	width: 40px;
	height: 40px;
}
#slider_table .slick-prev {
	background-color: #49246B;
	background-size: contain;
	top: calc(35% + 5px);
}
#slider_table .slick-next {
	background-color: #49246B;
	background-size: contain;
	top: calc(35% + 5px);
}
#slider_table .slick-prev:before,
#slider_table .slick-next:before {
	font-size: 18px;
	opacity: 1;
}
#slider_table .slick-dots li.slick-active button:before {
	color: #49246B;
}

#slider_gallery {
	position: relative;
	z-index: 1;
}
#slider_gallery .unit {
	margin: 0 10px;
}
#slider_gallery .unit img,
#slider_gallery .unit source {
	object-fit: cover;
	width: 100%;
	height: 100%;
}

#slider_gallery .slick-dots {
	position: absolute;
	bottom: -40px;
	list-style: none;
	display: block;
	text-align: center;
	padding: 0;
	margin: 0;
	width: 100%;
}
#slider_gallery .slick-dots li {
	position: relative;
	display: inline-block;
	padding: 0;
	cursor: pointer;
	height: auto;
	width: auto;
}
#slider_gallery .slick-dots li button {
	border: 0;
	background: transparent;
	display: block;
	height: 3px;
	width: 40px;
	margin: 0 10px;
	outline: none;
	line-height: 0px;
	font-size: 0px;
	color: transparent;
	cursor: pointer;
	background: #B7B7B7;
	padding: 0px;
}
#slider_gallery .slick-dots li.slick-active button {
	background: #4B1D87;
}
#slider_gallery .slick-dots li button:hover, .slick-dots li button:focus {
	outline: none;
}
#slider_gallery .slick-dots li button:hover:before, .slick-dots li button:focus:before {
	opacity: 0;
}
#slider_gallery .slick-dots li button:before {
	position: absolute;
	top: 0;
	left: 0;
	content: "";
	width: 20px;
	height: 20px;
	font-size: 13px;
	line-height: 20px;
	text-align: center;
	font-weight: bold;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
#slider_gallery .slick-dots li.slick-active button:before {
	color: #999;
	content: "";
}
.mb100 {
	margin-bottom: 100px;
}
.unit_access_wrap {
	margin: 1px;
	display: flex;
}
.unit_access {
	display: flex;
	align-items: center;
	justify-content: space-evenly;
	padding: 10px;
	border-radius: 5px;
}
.access_wrap {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-around;
}
.access_chunk1 {
	width: 16.6%;
}
.access_chunk2 {
	width: 41.5%;
	padding-left: 10px;
}
.access_text {
	background-color: #4B1D87;
	color: white;
	padding: 5px 0;
	text-wrap: nowrap;
	margin: 5px;
	display: block;
	width: 50px;
}
.unit_icon {
	width: 60px;
}
@media (min-width: 576px) and (max-width: 998px) {
	#area .unit_bottom {
		min-height: 65px;
		display: flex;
		justify-content: center;
		align-items: center;
	}
}
@media (max-width: 1024px) {
	.unit_access_wrap {
		margin: 1px;
	}
	.access_chunk1 {
		width: 100%;
	}
	.access_chunk2 {
		width: 50%;
		margin-bottom: 10px;
	}
}
@media (max-width:768px) {
	#area .flow_wrap {
		width: 20% !important;
		min-width: 170px !important;
	}
	#area .unit_flow {
		min-height: 200px;
	}
	#area .unit_flow .unit_circle {
		width: 100px;
		height: 100px;
	}
	#area .flow_wrap:last-of-type {
		padding-right: 0px;
		min-width: 152px;
	}
	.mb100 {
		margin-bottom: 40px;
	}
}
@media (max-width: 575px) {
	#top_1 .spot_list .unit .text .price2 {
		font-size: 15px;
	}
	.access_chunk2 {
		width: 100%;
	}
	.unit_access {
		padding: 10px;
	}
}
@media (max-width:425px) {
	#area .flow_wrap {
		width: 20%;
		min-width: 200px;
	}
	#area .unit_flow {
		min-height: 200px;
	}
	#area .unit_flow .unit_circle {
		width: 100px;
		height: 100px;
	}
	#area .flow_wrap:last-of-type {
		padding-right: 0px;
		min-width: 200px;
	}
	.unit_space {
		padding-left: 15px;
		padding-right: 15px;
	}
}
@media (max-width:369px) {
	#area .flow_wrap::after {
		border-top: none;
		border-bottom: none;
		border-left: none;
	}
	#area .flow_wrap {
		padding-right: 0px;
	}
}
@media (max-width: 767px) {
	.tbl_1 th, .tbl_1 td {
		padding: 17px 5px !important;
		min-width: 130px;
	}
}

.top_informations_wrap {
	overflow: hidden;
}


/* #plan office */
#plan .security-row{
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
}

#plan .security-row:before,
#plan .security-row:after{
	display: none;
}

#plan .security-row .security-item{
	display: flex;
	text-align: center;
}

#plan .security-card{
	background-color: #3F0B77;
	border-radius: 6px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 96px;
	padding: 12px 8px;
	width: 100%;
}

#plan .security-card .security-icon{
	display: block;
	width: auto;
	height: 54px;
	max-width: 100%;
	margin-bottom: 8px;

}

#plan .security-card .security-text{
	color: #FFFFFF;
	font-size: 14px;
	font-weight: bold;
	letter-spacing: 0.05em;
	line-height: 1.2;

}

@media (max-width: 767px) {
	#plan .security-card{
		min-height: 84px;
		padding: 10px 6px;
	}
	#plan .security-card .security-icon{
		height: 28px;
		width: auto;
		max-width: 100%;
		margin-bottom: 6px;
	}
	#plan .security-card .security-text{
		font-size: 12px;
		letter-spacing: 0.03em;
	}
}

#plan .benefit_banner{
	display: flex;
	flex: 1 1;
}

#plan .benefit_banner .img_wrap{
	width: 50%;
}

#plan .benefit_banner .img_wrap img{
	width: 100%;
	height: 100%;
	object-fit: cover;
}

#plan .benefit_banner .inner{
	width: 50%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 15px;
	background-color: #94CA14;
	color: #FFFFFF;
}

#plan .benefit_banner .inner .copy{
	background-color: #DA7E83;
	margin-left: 20px;
	margin-right: 20px;
	margin-bottom: 5px;
	padding: 8px;
	font-size: 14px;
	font-weight: bold;
	letter-spacing: 0.05em;
	line-height: 1.2;
	text-align: center;
}

#plan .benefit_banner .inner .main{
	font-size: 40px;
	font-weight: bold;
	letter-spacing: 0.05em;
	line-height: 1.2;
	text-align: center;
}

#plan .benefit_banner .inner .sub{
	font-size: 20px;
	font-weight: normal;
	line-height: 1.2;
	text-align: center;
	letter-spacing: 0.1em;
}

#plan .benefit_banner_plus{
	text-align: center;
	font-size: 46px;
	font-weight: bold;
	color: #BEBEBE;
	margin-bottom: 10px;
}
@media (max-width: 991px) {
	#plan .benefit_banner{
		display: flex;
		flex-direction: column;
	}
	#plan .benefit_banner .img_wrap{
		width: 100%;
	}
	#plan .benefit_banner .img_wrap img{
		height: auto;
	}
	#plan .benefit_banner .inner{
		width: 100%;
	}
}
@media (max-width: 768px) {
	#plan .benefit_banner .inner .main{
		font-size: 30px;
	}
	#plan .benefit_banner .inner .sub{
		font-size: 15px;
	}
	#plan .benefit_banner .inner .copy{
		font-size: 12px;
	}
}

@media (max-width: 320px) {
	#plan .benefit_banner .inner .main{
		font-size: 24px;
	}
	#plan .benefit_banner .inner .sub{
		font-size: 12px;
	}
	#plan .benefit_banner .inner .copy{
		font-size: 11px;
		margin-left: 0;
		margin-right: 0;
	}
}

#plan .feature-compare{
	background: #4d1f66;
	color: #fff;
	padding: 20px;
	height: 100%;
	display: flex;
	align-items: center;
}
#plan .feature-compare .feature-inner{
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
}
#plan .feature-side{
	display: flex;
	flex-direction: column;
	align-items: center;
	max-width: calc((100% - 60px) / 2);
}
#plan .feature-circle{
	background: #fff;
	border-radius: 50%;
	width: 200px;
	max-width: 100%;
	aspect-ratio: 1/1;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #4d1f66;
	margin: 0 auto 12px;
}
#plan .feature-circle .circle-text{
	text-align: center;
	font-weight: 700;
}
#plan .feature-circle .num{
	display: flex;
	justify-content: center;
	align-items: flex-end;
	font-size: 36px;
	line-height: 1.05;
}
#plan .feature-circle .kanji{
	font-size: 12px;
	margin-bottom: 2px;
}
#plan .feature-circle .namisen{
	font-size: 20px;
	margin-bottom: auto;
	margin-top: auto;
}
#plan .feature-circle .label{
	background-color: #4d1f66;
	color: white;
	border-radius: 20px;
	font-size: 16px;
	margin-top: 8px;
}
#plan .feature-circle .label_top{
	font-size: 22px;
	margin-top: 8px;
}
#plan .feature-large{
	font-size: 48px;
	font-weight: 700;
	color: #fff;
}
#plan .feature-sub{
	color: #fff;
	margin-top: 6px;
	text-align: center;
}
#plan .feature-labels{
	display: flex;
	align-items: center;
}
#plan .feature-bottom{
	line-height: 1.3;
}
#plan .feature-x-wrap{
	width: 60px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-top: auto;
	margin-bottom: auto;
}
#plan .feature-x{
	position: relative;
	display: block;
	width: .8em;
	height: .8em;
	font-size: 48px;
	color: #fff;
}
#plan .feature-x::before,
#plan .feature-x::after{
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 100%;
	height: 0.15em;
	background-color: currentColor;
	border-radius: 0.05em;
}
#plan .feature-x::before{
	transform: translate(-50%, -50%) rotate(45deg);
}
#plan .feature-x::after{
	transform: translate(-50%, -50%) rotate(-45deg);
}
#plan .feature-desc{
	margin-top: 8px;
	font-size: 18px;
	color: #fff;
	text-align: center;
}

@media (max-width: 768px) {
	#plan .feature-side{
		max-width: calc((100% - 40px) / 2);
		margin-bottom: 18px;
	}
	#plan .feature-x-wrap{
		width: 40px;
		margin: 6px 0;
	}
	#plan .feature-circle{
		width: 200px;
	}
	#plan .feature-large{
		font-size: 36px;
	}
	#plan .feature-x{
		font-size: 40px;
	}
	#plan .feature-circle .label{
		font-size: 14px;
		width: calc(100% - 30px);
		margin-left: auto;
		margin-right: auto;
	}
}

@media (max-width: 1200px) {
	#plan .feature-compare{
		padding: 16px;
	}
	#plan .feature-circle{
		width: 220px;
	}
	#plan .feature-circle .num{
		font-size: 32px;
	}
	#plan .feature-large{
		font-size: 44px;
	}
	#plan .feature-x{
		font-size: 44px;
		transform: translateY(10px);
	}
}
@media (max-width: 992px) {
	#plan .feature-compare{
		padding: 14px 0;
	}
	#plan .feature-circle{
		width: 200px;
	}
	#plan .feature-large{
		font-size: 36px;
	}
	#plan .feature-x{
		font-size: 40px;
		transform: translateY(10px);
	}
}
@media (max-width: 767px) {
	#plan .feature-compare{
		padding: 12px 0;
	}
	#plan .feature-circle{
		width: 160px;
	}
	#plan .feature-large{
		font-size: 28px;
	}
	#plan .feature-x{
		font-size: 36px;
		transform: translateY(8px);
	}
	#plan .feature-desc{
		font-size: 16px;
	}
}
@media (max-width: 480px) {
	#plan .feature-circle{
		width: 140px;
	}
	#plan .feature-circle .num{
		font-size: 28px;
	}
	#plan .feature-large{
		font-size: 22px;
	}
	#plan .feature-x{
		font-size: 30px;
		transform: translateY(6px);
	}
	#plan .feature-desc{
		font-size: 14px;
	}
	#plan .feature-sub{
		font-size: 14px;
	}
	#plan .feature-circle .label_top{
		font-size: 16px;
	}
	#plan .feature-circle .label{
		font-size: 12px;
	}
}

/* #plan virtual */
#plan .cheer-text{
	position: relative;
	display: inline-block;
	color: #F47AAC;
	font-size: 70px;
	letter-spacing: 0.1em;
	font-weight: bold;
	font-family: serif;
}

#plan .cheer-text-label{
	--label-ratio: 0.43;
	position: absolute;
	left: 10%;
	top: 0;
	transform: translate(-50%, -110%);
	font-size: 0.43em;
	padding: 0.01em 0.6em;
	color: white;
	background-color: #F47AAC;
	border-radius: 0.2em;
	letter-spacing: 0.1em;
	font-family: sans-serif;
	white-space: nowrap;
}

#plan .cheer-text-label::after{
	content: "";
	position: absolute;
	left: 50%;
	top: 100%;
	transform: translateX(-50%);
	font-size: calc(1em / var(--label-ratio));
	background-color: #F47AAC;
	width: 0.9em;
	height: 0.6em;
	clip-path: polygon(49% 80%, 22% 0, 62% 0);
}

@media (max-width: 991px) {
	#plan .cheer-text{
		font-size: 50px;
	}
}
@media (max-width: 767px) {
	#plan .cheer-text{
		font-size: 40px;
		letter-spacing: 0.05em;
	}
}
@media (max-width: 480px) {
	#plan .cheer-text{
		font-size: 28px;
		letter-spacing: 0;
	}
	#plan .cheer-text-label{
		--label-ratio: 0.54;
		left: 12%;
		font-size: 0.54em;
		padding: 0.18em 0.5em;
	}
}

#plan .tbl_compare thead th{
	background: white;
	color: #49256b;
	padding-top: 10px;
	padding-bottom: 10px;
}

#plan .tbl_compare tbody th{
	background-color: white;
	width: 120px;
}

#plan .tbl_compare tbody td{
	border-left: 1px solid #ccc;
}

#plan .virtual-solution .arrow_down{
	color: #F677AD;
	font-size: 50px;
	text-align: center;
}

#plan .cheer-text2{
	color: #F677AD;
	font-size: 60px;
	font-weight: bold;
	font-family: serif;
	line-height: 1.3;
}

@media (max-width: 991px) {
	#plan .cheer-text2{
		font-size: 50px;
	}
}

@media (max-width: 768px) {
	#plan .cheer-text2{
		font-size: 28px;
		line-height: 1.15;
	}
}

@media (max-width: 480px) {
	#plan .cheer-text2{
		font-size: 22px;
	}
	#plan .virtual-solution .arrow_down{
		font-size: 40px;
	}
	#plan .tbl_compare tbody th{
		width: auto;
	}
	#plan .tbl_compare tbody td{
		text-align: left;
	}
}

#plan .virtual-solution .virtual-solution-row{
	align-items: stretch;
}

#plan .virtual-solution .virtual-solution-row > [class*="col-"]{
	display: flex;
	flex-direction: column;
}

#plan .virtual-solution .virtual-solution-row > [class*="col-"] > .mb30{
	flex: 1;
	display: flex;
	flex-direction: column;
	width: 100%;
}

#plan .virtual-solution .virtual-solution-unit{
	flex: 1;
	display: flex;
	flex-direction: column;
	width: 100%;
}

#plan .virtual-solution .virtual-solution-unit > img,
#plan .virtual-solution .virtual-solution-unit > .virtual-security-panel{
	flex-shrink: 0;
	width: 100%;
}

#plan .virtual-solution .virtual-solution-unit > img{
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

#plan .virtual-solution .virtual-security-panel{
	aspect-ratio: 1 / 1;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	background-color: #fdf5f8;
	padding: 3%;
	text-align: center;
}

#plan .virtual-solution .virtual-security-grid{
	flex: none;
	width: 100%;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 10px;
	margin-bottom: 10px;
}

#plan .virtual-solution .virtual-security-item{
	display: flex;
}

#plan .virtual-solution .virtual-security-card{
	background-color: #8cc63f;
	border-radius: 10px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 72px;
	padding: 8px 8px 6px;
	width: 100%;
	box-sizing: border-box;
}

#plan .virtual-solution .virtual-security-icon{
	display: block;
	width: auto;
	height: 48px;
	max-width: 100%;
	margin-bottom: 8px;
}

#plan .virtual-solution .virtual-security-text{
	color: #fff;
	font-size: clamp(10px, 2.8vw, 14px);
	font-weight: bold;
	line-height: 1.3;
	letter-spacing: 0.05em;
}

#plan .virtual-solution .virtual-security-note{
	margin: 0;
	width: 100%;
	color: #333;
	font-size: clamp(10px, 2.6vw, 14px);
	line-height: 1.4;
	font-weight: normal;
}

@media (max-width: 575px) {
	#plan .virtual-solution .virtual-security-panel{
		aspect-ratio: auto;
		height: auto;
	}
}

#plan .virtual-solution .img_caption{
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 1 1 auto;
	min-height: 80px;
	background-color: #FE84BB;
	text-align: center;
	padding: 10px 0;
	color: white;
	font-family: serif;
	font-weight: bold;
	font-size: 18px;
}

@media (max-width: 768px) {
	#plan .virtual-solution .img_caption{
		font-size: 13px;
	}
	#plan .virtual-solution .virtual-security-card{
		min-height: 60px;
		padding: 6px 6px 4px;
	}
	#plan .virtual-solution .virtual-security-icon{
		height: 36px;
		margin-bottom: 6px;
	}
}

@media (max-width: 480px) {
	#plan .virtual-solution .img_caption{
		font-size: 15px;
	}
}

/* service/branding */
/* Branding badge for service/branding (generated) */
#service .branding-badge{
	width: 250px;
	max-width: 100%;
	aspect-ratio: 1 / 1;
	height: auto;
	border-radius: 50%;
	background: #DA7E81;
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-shadow: inset 0 0 0 4px rgba(255,255,255,0.06), 0 2px 6px rgba(0,0,0,0.08);
}
#service .branding-badge::before,
#service .branding-badge::after{
	content: "";
	position: absolute;
	border-radius: 50%;
	pointer-events: none;
}
#service .branding-badge::before{
	inset: 6px;
	border: 3px solid rgba(255,255,255,0.12);
}
#service .branding-badge::after{
	inset: 12px;
	border: 6px solid rgba(255,255,255,0.04);
}
#service .branding-badge-inner{
	text-align: center;
	color: #fff;
	font-weight: 500;
	font-family: "Noto Sans JP", "Hiragino Mincho ProN", "Yu Mincho", "Meiryo", sans-serif;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	line-height: 1;
	padding: 6px 8px;
	text-shadow: 0 1px 0 rgba(0,0,0,0.12);
}
#service .branding-badge .bb-line{
	display: block;
	font-size: 20px;
	letter-spacing: 0.02em;
}
#service .branding-badge .bb-plus{
	display: block;
	position: relative;
	width: 1em;
	height: 1em;
	margin: 4px 0;
	font-size: 50px;
	color: #fff;
}

#service .branding-badge .bb-plus::before,
#service .branding-badge .bb-plus::after{
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	background-color: currentColor;
	transform: translate(-50%, -50%);
}

#service .branding-badge .bb-plus::before{
	width: .725em;
	height: 0.115em;
}

#service .branding-badge .bb-plus::after{
	width: 0.115em;
	height: .725em;
}
@media (max-width: 768px) {
	#service .branding-badge{ width: 160px; }
	#service .branding-badge .bb-line{ font-size: 12px; }
	#service .branding-badge .bb-plus{ font-size: 22px; }
}