/******************************************************************
Theme Name: CUBE GAMMA THEME
Theme URI: http://cube096.com
Description: CUBEが自信をもってお届けするレスポンシブウェブデザインテーマ
Author: CUBE CO.,LTD.
Author URI: http://cube096.com
Version: beta
Tags: fluid-layout, responsive-layout, accessibility-ready, translation-ready, microformats, rtl-language-support
*/
*,
*::before,
*::after {
	box-sizing: border-box;
}
* {
	margin: 0;
}
html,
body {
	height: 100%;
}
img,
picture,
video,
canvas,
svg {
	display: block;
	max-width: 100%;
}
input,
button,
textarea,
select {
	font: inherit;
}
p,
h1,
h2,
h3,
h4,
h5,
h6 {
	overflow-wrap: break-word;
}
#root,
#__next {
	isolation: isolate;
}
ol,
ul {
	list-style-type: none;
	margin: 0;
}
legend,
menu,
ol,
ul {
	padding: 0
}
a {
	text-decoration: none;
	color: #111;
}
p {
	overflow-wrap: break-word;
	text-align: justify;
}
body {
	/*--- ▼ゴシック ---*/
	font-family: "Noto Sans JP", "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
	/*--- ▼明朝 ---*/
	/*font-family: "Noto Serif JP", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝";*/
	line-height: 1.8;
	-webkit-font-smoothing: antialiased;
	-webkit-text-size-adjust: 100%;
	color: #111;
	font-weight: 400;
	font-style: normal;
	font-size: 16px;
}
body img {
	max-width: 100%;
	height: auto;
}
h1,
h2,
h3,
h4,
h5,
h6 {
	/*--- ▼英字見出し、数字 ---*/
	/*font-family: 'Cinzel', serif;*/
	/*font-family: 'Open Sans', sans-serif;*/
	/*font-family: 'Lato', sans-serif;*/
	/*font-family: 'Gilda Display', serif;*/
	/*font-family: 'Cinzel', serif;*/
	/*--- ▼日本語見出し ---*/
	/*font-family: 'Noto Sans JP', sans-serif;*/
	/*font-family: 'Noto Serif JP', serif;*/
	/*font-family: 'Zen Maru Gothic', sans-serif;*/
	/*font-family: 'Zen Old Mincho', serif;*/
	font-weight: 400;
	line-height: 1.3;
	font-style: normal;
}
table {
	border-collapse: collapse;
}
/* recaptcha badge
----------------------------------------------------------- */
.grecaptcha-badge {
	z-index: 10000;
	bottom: 75px !important;
}
/* ページネーション
----------------------------------------------------------- */
/*アーカイブ用*/
.nav-links {
	display: -webkit-flex;
	display: flex;
	align-items: flex-end;
	justify-content: center;
}
.nav-links .page-numbers {
	display: block;
	width: 45px;
	height: 45px;
	line-height: 45px;
	text-align: center;
	background-color: #fff;
	transition: all ease 0.5s;
	border-radius: 3px;
	border: 1px solid #D5D5D5;
	margin: 0 5px;
}
.nav-links .page-numbers.current,
.nav-links .page-numbers:hover {
	background-color: #F2F2F2;
}
.nav-below {
	display: -webkit-flex;
	display: flex;
	justify-content: center;
}
.next.page-numbers,
.prev.page-numbers {
	padding: 0 5px;
}
/*シングル用*/
.single .nav-below {
	display: inherit;
	margin-top: 45px;
}
.single .nav-below:after {
	content: "";
	display: block;
	height: 0;
	font-size: 0;
	clear: both;
	visibility: hidden;
}
.single .nav-below a {
	background-color: #FFF;
	text-decoration: none;
	padding: 5px;
	font-size: 0.9em;
	line-height: 1.5;
	transition: all ease 0.5s;
	border: 1px solid #D5D5D5;
}
.single .nav-below a:hover {
	background-color: #fff8f0;
}
.single .nav-below .prev {
	padding-left: 65px;
	position: relative;
}
.single .nav-below .next {
	padding-right: 65px;
	position: relative;
}
.single .nav-below .prev::before,
.single .nav-below .next::before {
	content: "";
	width: 40px;
	height: 40px;
	background-color: #2CA3C4;
	border-radius: 20px;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
}
.single .nav-below .prev::before {
	left: 10px;
}
.single .nav-below .next::before {
	right: 10px;
}
.single .nav-below .prev::after,
.single .nav-below .next::after {
	content: "";
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 0;
	height: 0;
	border-style: solid;
	border-top: 5px solid transparent;
	border-bottom: 5px solid transparent;
}
.single .nav-below .prev::after {
	left: 25px;
	border-right: 7px solid #fff;
	border-left: 0;
}
.single .nav-below .next::after {
	right: 25px;
	border-left: 7px solid #fff;
	border-right: 0;
}
.prev {
	width: 48%;
	float: left;
}
.next {
	width: 48%;
	float: right;
	text-align: right;
}
.prev_title,
.next_title {
	font-size: 12px;
}
.next p {
	text-align: right;
}
.next p,
.prev p {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	line-height: 1;
	margin-top: 5px;
}
.prev img {
	float: left;
	margin-right: 10px;
}
.next img {
	float: right;
	margin-left: 10px;
}
.prevAndNextLeft a:before {
	content: "\f053";
	margin-right: 5px;
	font-family: FontAwesome;
}
.prevAndNextRight a:after {
	content: "\f054";
	margin-left: 10px;
	font-family: FontAwesome;
}
.prevAndNextLeft {
	width: 50%;
	float: left;
}
.prevAndNextRight {
	width: 50%;
	float: left;
}
.prevAndNextLeft {
	text-align: left;
}
.prevAndNextRight {
	text-align: right;
}
/* 
 animation
----------------------------------------------------------- */
.fadein {
	opacity: 0.1;
	transition: all ease 1s;
	-webkit-transition: all ease 1s;
	-moz-transition: all ease 1s;
}
.on .fadein,
.on.fadein {
	opacity: 1;
}
.totop {
	opacity: 0.1;
	transform: translateY(30px);
	transition: all 1s;
}
.on .totop,
.on.totop {
	opacity: 1;
	transform: translateY(0);
}
.fadeinleft {
	opacity: 0.1;
	-webkit-transform: translateX(-50px);
	transform: translateX(-50px);
	transition: all ease 1s;
	-webkit-transition: all ease 1s;
	-moz-transition: all ease 1s;
}
.on .fadeinleft,
.on.fadeinleft {
	opacity: 1;
	-webkit-transform: translateX(0);
	transform: translateX(0);
}
.fadeinright {
	opacity: 0.1;
	-webkit-transform: translateX(50px);
	transform: translateX(50px);
	transition: all ease 1s;
	-webkit-transition: all ease 1s;
	-moz-transition: all ease 1s;
}
.on .fadeinright,
.on.fadeinright {
	opacity: 1;
	-webkit-transform: translateX(0px);
	transform: translateX(0px);
}
.no2 {
	transition-delay: .3s;
}
.no3 {
	transition-delay: 0.6s;
}
.no4 {
	transition-delay: 0.9s;
}
.no5 {
	transition-delay: 1.2s;
}
/* 
 Head
----------------------------------------------------------- */
.header {
	width: 100%;
}
/* 
 gNavi
----------------------------------------------------------- */
.navwrap {
	width: 95%;
	-webkit-backface-visibility: hidden;
	-webkit-backdrop-filter: blur(15px) brightness(130%);
	backdrop-filter: blur(15px) brightness(130%);
	backface-visibility: hidden;
	will-change: backdrop-filter;
	background: rgba(255, 255, 255, 0.8);
	border-radius: 10px;
	position: fixed;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	align-items: center;
	top: 20px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 998;
	transition: all ease 0.5s;
	padding: clamp(10px, 1vw, 20px) clamp(20px, 2vw, 40px);
}
.navwrap p img,
.navwrap h1 img {
	height: clamp(40px, 3.1vw, 60px);
	width: auto;
}
.navwrap > ul {
	display: flex;
	justify-content: flex-end;
	flex-wrap: wrap;
	align-items: center;
}
.navwrap > ul > li {
	text-align: center;
	transition: all ease 0.5s;
	position: relative;
}
.navwrap > ul > li:not(:last-child) {
	margin-right: clamp(20px, 2vw, 40px);
}
.navwrap > ul > li:nth-last-child(-n+3) {
	margin-right: 10px;
}
.navwrap > ul > li:not(:nth-last-child(-n+3))::before {
	content: "";
	position: absolute;
	bottom: 5px;
	left: 50%;
	transform: translateX(-50%);
	height: 8px;
	width: 8px;
	border-radius: 4px;
	background-image: linear-gradient(to bottom, #75CE3E, #2CC49B, #2CA3C4);
	transition: all ease 0.5s;
	opacity: 0;
	display: block;
}
.navwrap > ul > li:not(:nth-last-child(-n+3)):hover::before {
	opacity: 1;
}
.navwrap > ul > li:not(:nth-last-child(-n+3)) a,
.navwrap > ul > li:not(:nth-last-child(-n+3)) p {
	display: block;
	padding: clamp(10px, 0.94vw, 18px) 0;
}
.navwrap > ul > li:nth-last-child(-n+3) a {
	display: block;
	transition: all ease 0.5s;
	padding: clamp(8px, 0.8vw, 15px) clamp(10px, 1vw, 20px);
	border-radius: 50px;
	font-size: 14px;
}
.navwrap > ul > li:nth-last-child(3) a {
	border: 2px solid #555;
	background-color: #555;
	color: #fff;
}
.navwrap > ul > li:nth-last-child(3) a:hover {
	background-color: rgba(255, 255, 255, 0.5);
	color: #555;
}
.navwrap > ul > li:nth-last-child(2) a {
	display: block;
	position: relative;
	border: 2px solid #2CA3C4;
	color: #fff;
	overflow: hidden;
}
.navwrap > ul > li:nth-last-child(2) a::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	transition: all ease 0.5s;
	background-image: linear-gradient(to right bottom, #75CE3E, #2CC49B, #2CA3C4);
	z-index: -1;
}
.navwrap > ul > li:nth-last-child(2) a:hover {
	color: #2CA3C4;
	background-color: rgba(255, 255, 255, 0.5);
}
.navwrap > ul > li:nth-last-child(2) a:hover::before {
	opacity: 0;
}
.navwrap > ul > li:nth-last-child(1) {
	background: linear-gradient(to right bottom, #75CE3E, #2CC49B, #2CA3C4);
	border-radius: 50px;
	position: relative;
	padding: 2px;
	margin-right: 0;
}
.navwrap > ul > li:nth-last-child(1) a {
	display: block;
	color: #4BB48A;
	font-size: clamp(16px, 0.94vw, 18px);
	font-family: "Montserrat", sans-serif;
	font-weight: 500;
	background-color: rgba(255, 255, 255, 0.9);
	z-index: 1;
}
.navwrap > ul > li:nth-last-child(1) a:hover {
	background-color: transparent;
	color: #fff;
}
.navwrap > ul > li a i {
	margin-right: 5px;
}
.navwrap * {
	transition: all ease 0.5s;
}
.top_back {
	height: 45px;
	width: 45px;
	border-radius: 25px;
	background-color: #2CA3C4;
	position: fixed;
	right: 15px;
	bottom: 15px;
	display: grid;
	place-content: center;
	z-index: 10000;
	opacity: 0;
	transition: all ease 0.5s;
}
.top_back.view {
	opacity: 1;
}
.top_back img {
	height: 13px;
	width: auto;
}
/* パンくずリスト
----------------------------------------------------------- */
.breadcrumb__list {
	display: flex;
	width: min(90%, 1200px);
	margin-inline: auto;
	flex-wrap: wrap;
	font-size: 13px;
	padding: 5px 0;
}
.breadcrumb__item:not(:last-child)::after {
	content: '>';
	margin: 0 0.3rem;
	color: #999;
}
.breadcrumb__item a {
	color: #999;
	text-decoration: underline;
}
.breadcrumb__item:last-child a {
	color: #333;
}
/* 
共通
----------------------------------------------------------- */
.pc {
	display: block;
}
br.pc {
	display: inherit;
}
.sp {
	display: none;
}
br.sp {
	display: none;
}
.pc1100 {
	display: block;
}
br.pc1100 {
	display: inherit;
}
.sp1100 {
	display: none;
}
br.sp1100 {
	display: none;
}
.pc640 {
	display: block;
}
br.pc640 {
	display: inherit;
}
.sp640 {
	display: none;
}
br.sp640 {
	display: none;
}
.inner {
	width: min(90%, 1200px);
	margin-inline: auto;
	padding: clamp(50px, 6.8vw, 130px) 0;
}
.flex {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
.flex .img img {
	width: 100%;
	height: auto;
}
#main {
	overflow: hidden;
}
#container {
	position: relative;
}
.more_btn {
	display: block;
	background-color: #333;
	width: min(100%, 450px);
	color: #fff;
	transition: all ease 0.5s;
	text-align: center;
	padding: 20px;
	position: relative;
	line-height: 1.3;
	font-size: 18px;
	border-radius: 60px;
}
.more_btn::before {
	content: '';
	display: block;
	width: 42px;
	height: 42px;
	border-radius: 21px;
	position: absolute;
	background-image: linear-gradient(to right bottom, #75CE3E, #2CC49B, #2CA3C4);
	top: 50%;
	right: 12px;
	transform: translateY(-50%);
	transition: all ease 0.5s;
}
.more_btn::after {
	content: '';
	display: block;
	width: 20px;
	height: 20px;
	border-radius: 10px;
	position: absolute;
	background-color: #fff;
	top: 50%;
	right: 23px;
	transform: translateY(-50%);
	transition: all ease 0.5s;
}
.more_btn:hover::after {
	transform: translateY(-50%) scale(0);
}
.anchor {
	padding-top: clamp(80px, 7.8vw, 150px);
	margin-top: calc(clamp(80px, 7.8vw, 150px) * -1);
}
.tac {
	text-align: center;
}
.tal {
	text-align: left;
}
.tar {
	text-align: right;
}
.taj {
	text-align: justify;
}
.linkbox {
	position: relative;
	z-index: 5;
}
.linkbox.tac a {
	margin: 0 auto;
}
.linkbox.tar a {
	margin: 0 0 0 auto;
}
.no_link {
	pointer-events: none !important;
}
.pt0 {
	padding-top: 0 !important;
}
.pb0 {
	padding-bottom: 0 !important;
}
.txt_only {
	width: 100% !important;
}
.txt_link {
	text-decoration: underline;
	transition: all ease 0.5s;
}
.txt_link:hover {
	opacity: 0.7;
}
.img_hover {
	overflow: hidden;
}
.img_hover img {
	transition: all ease 0.5s;
}
.img_hover:hover img {
	transform: scale(1.2, 1.2);
}
.js-accordion > li {
	position: relative;
}
.js-accordion > li .ttl {
	position: relative;
}
.js-accordion > li .btn {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	cursor: pointer;
	z-index: 1;
}
.js-accordion .box {
	display: none;
}
.js-modal {
	display: none;
	position: fixed;
	top: 0;
	right: 0;
	width: 100%;
	height: 100%;
	z-index: 10005;
	backface-visibility: hidden;
}
.js-modal .wrap {
	width: 100%;
	height: 100%;
}
.js-modal .wrap_box {
	height: 100%;
	width: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	background: rgba(57, 53, 42, 0.7);
}
.js-modal .scloll_area {
	transform: scale(.5);
	transition: all ease 1s;
}
.js-modal.open .scloll_area {
	transform: scale(1);
}
.js-modal .content {
	width: 100%;
	height: auto;
	height: 85vh;
	padding: 60px 100px;
	position: relative;
	overflow-y: auto;
	overflow-x: hidden;
	background-color: #fff;
}
.js-modal .js-sclollarea {
	width: min(90%, 1200px);
	margin: 30px;
	max-height: 90%;
	position: relative;
}
.js-modal .js-modalclose {
	cursor: pointer;
	z-index: 100000;
	position: absolute;
	top: 30px;
	right: 30px;
	line-height: 1;
}
.js-tabcontent {
	display: none;
}
/* 
 TOP
----------------------------------------------------------- */
.home .linkbox {
	margin-top: clamp(30px, 3.1vw, 60px);
}
.top_h2 {
	font-size: clamp(23px, 1.7vw, 33px);
	padding: clamp(30px, 2.9vw, 55px) 0;
	position: relative;
	z-index: 1;
	font-weight: 700;
	text-align: center;
	max-width: 100vw;
	overflow: hidden;
}
.top_h2.white {
	color: #fff;
}
.top_h2.tal {
	text-align: left;
}
.top_h2::before {
	content: "";
	position: absolute;
	left: 50%;
	bottom: clamp(15px, 2vw, 40px);
	transform: translateX(-50%);
	height: 4px;
	width: clamp(50px, 6.8vw, 130px);
	background-image: linear-gradient(to right bottom, #75CE3E, #2CC49B, #2CA3C4);
}
.top_h2.white::before {
	background-color: #fff;
	background-image: none;
}
.top_h2.tal::before {
	left: 0;
	transform: translateX(0);
}
.top_h2 span {
	position: absolute;
	z-index: -1;
	left: 50%;
	top: 50%;
	font-family: "Montserrat", sans-serif;
	font-size: clamp(70px, 6.8vw, 130px);
	color: rgba(0, 0, 0, 0.05);
	font-weight: 500;
	white-space: nowrap;
	opacity: 0;
	transform: translate(calc(50% + 100px), -50%);
}
.top_h2 span.on {
	animation: slideInBgText 0.5s ease-out forwards;
}
@keyframes slideInBgText {
	0% {
		opacity: 0;
		transform: translate(calc(50% + 50px), -50%);
	}
	100% {
		opacity: 1;
		transform: translate(-50%, -50%);
	}
}
.top_h2.tal span {
	left: 0;
	transform: translate(calc(100% + 50px), -50%);
}
.top_h2.tal span.on {
	animation: slideInBgTextLeft 0.5s ease-out forwards;
}
@keyframes slideInBgTextLeft {
	0% {
		opacity: 0;
		transform: translate(calc(100% + 50px), -50%);
	}
	100% {
		opacity: 1;
		transform: translate(0, -50%);
	}
}
.top_h2.white span {
	color: rgba(255, 255, 255, 0.15);
}
.fv {
	position: fixed;
	top: 0;
	left: -1px;
	height: 100vh;
	width: 101%;
	pointer-events: none;
	transition: all ease 0.5s;
	overflow: hidden;
	object-fit: cover;
	z-index: -2;
	background-color: #111;
}
.fv::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
	background-color: rgba(0, 0, 0, 0.5);
}
.fv video {
	object-fit: cover;
	position: absolute;
	top: 50%;
	left: 50%;
	display: block;
	height: 100%;
	width: 100%;
	transform: translate(-50%, -50%);
}
.fv_wrap {
	height: 100vh;
	width: 100%;
	position: relative;
	z-index: 100;
	display: grid;
	place-content: center;
	place-items: center center;
	padding: 100px 5% 0;
}
.fv_wrap span img {
	height: clamp(25px, 1.6vw, 30px);
	width: auto;
	margin-bottom: 10px;
}
.fv_wrap h1 {
	color: #fff;
	width: fit-content;
	font-weight: 700;
	font-size: clamp(26px, 2.9vw, 45px);
	padding: 0 clamp(50px, 4.1vw, 80px);
	position: relative;
	text-align: center;
}
.fv_wrap h1 span {
	display: inline-block;
}
.fv_wrap h1::before,
.fv_wrap h1::after {
	content: "";
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	height: 1px;
	width: clamp(40px, 3.4vw, 65px);
	background-color: #fff;
}
.fv_wrap h1::before {
	left: 0;
}
.fv_wrap h1::after {
	right: 0;
}
.top_logo {
	padding: 0 5% clamp(70px, 8.3vw, 160px);
	margin-top: calc(clamp(60px, 6.2vw, 120px) * -1);
	background: linear-gradient(180deg, transparent 0%, transparent clamp(60px, 6.2vw, 120px), #fff clamp(60px, 6.2vw, 120px), #fff 100%);
}
.top_logo .box {
	background-color: #fff;
	border-radius: 10px;
	box-shadow: 10px 10px 30px 0px rgba(0, 0, 0, 0.1);
	padding: clamp(15px, 1.7vw, 33px) 0;
	overflow: hidden;
	position: relative;
}
.top_logo .box > ul:not(:last-child) {
	margin-bottom: clamp(15px, 1.7vw, 33px);
}
.logo_list {
	display: flex;
	list-style: none;
	padding: 0;
	margin: 0;
	white-space: nowrap;
	animation: scroll-left 40s linear infinite;
}
.logo_list.rtl {
	animation: scroll-right 40s linear infinite;
}
.logo_list li {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	padding: 0 clamp(10px, 1.7vw, 33px);
	height: clamp(60px, 4.1vw, 80px);
}
.logo_list.rtl li {
	height: clamp(40px, 3.1vw, 60px);
}
.logo_list li img {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
	display: block;
}
@keyframes scroll-left {
	from {
		transform: translateX(0%);
	}
	to {
		transform: translateX(-100%);
	}
}
@keyframes scroll-right {
	from {
		transform: translateX(-100%);
	}
	to {
		transform: translateX(0%);
	}
}
.top_production {
	background-color: #fff;
	padding-bottom: clamp(50px, 6.8vw, 130px);
}
.top_production_list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	border-top: 1px solid #F0F0F0;
}
.top_production_list li {
	padding: 8px 8px clamp(15px, 1.7vw, 33px);
	border-right: 1px solid #F0F0F0;
	border-bottom: 1px solid #F0F0F0;
}
.top_production_list li:nth-child(3n) {
	border-right: 0;
}
.top_production_list li .img {
	position: relative;
	margin-bottom: clamp(10px, 0.8vw, 15px);
}
.top_production_list li .img::before {
	content: "";
	position: absolute;
	z-index: 1;
	left: 0;
	top: 0;
	height: 100%;
	width: 100%;
	background-image: linear-gradient(to right bottom, rgba(117, 206, 62, 0.5), rgba(44, 196, 155, 0.5), rgba(44, 163, 196, 0.5));
	opacity: 0;
	transition: all ease 0.5s;
}
.top_production_list li .img:hover::before {
	opacity: 1;
}
.top_production_list li .img::after {
	content: "";
	position: absolute;
	z-index: 2;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: clamp(50px, 4.1vw, 80px);
	height: clamp(50px, 4.1vw, 80px);
	background-image: url('./library/images/movie_btn.svg');
	background-size: contain;
	background-position: center center;
	background-repeat: no-repeat;
}
.top_production_list li .img.nolink::before,
.top_production_list li .img.nolink::after {
	display: none;
}
.cat span {
	color: #fff;
	padding: 3px 10px;
	font-size: 14px;
	white-space: nowrap;
	margin: 3px 5px 3px 0;
	font-weight: normal;
	transition: all ease 0.5s;
	display: inline-block;
	line-height: 1.3;
	background-image: linear-gradient(to right bottom, #75CE3E, #2CC49B, #2CA3C4);
	border-radius: 3px;
}
.cat_sub span {
	color: #555;
	padding: 3px 10px;
	font-size: 12px;
	white-space: nowrap;
	margin: 3px 5px 3px 0;
	font-weight: normal;
	transition: all ease 0.5s;
	display: inline-block;
	line-height: 1.3;
	background-color: #fff;
	border-radius: 3px;
	border: 1px solid #BBBBBB;
}
.youtube {
	width: 100%;
	aspect-ratio: 16 / 9;
	position: relative;
	padding-top: 56.25%;
}
.youtube iframe {
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
}
.top_production_list li .txt {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
.top_production_list li .txt > div {
	width: calc(100% - clamp(40px, 2.6vw, 50px));
}
.top_production_list li .txt > p {
	width: clamp(30px, 2vw, 40px);
	border-radius: 3px;
	background-color: #555;
	display: grid;
	place-content: center;
	place-items: center center;
	font-weight: 500;
	color: #fff;
	transition: all ease 0.5s;
	writing-mode: vertical-rl;
}
.top_production_list li .txt:hover > p {
	background-color: #FB0234;
}
.top_production_list li .txt h3 {
	font-size: clamp(16px, 1vw, 20px);
	font-weight: 700;
	margin: 7px 0;
}
.top_production_list .production_modal .content {
	padding: 10px;
	height: auto;
}
.top_production_list .production_close {
	font-size: 25px;
	color: #FFF;
	top: 0;
	right: -30px;
}
.top_rateplans {
	background-image: url('./library/images/top_rateplans_bg.jpg');
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
}
.top_rateplans .inner {
	width: min(90%, 1500px);
}
.top_rateplans .comp_txt {
	text-align: right;
	color: #fff;
	margin-bottom: 1rem;
}
.plans_list {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 8px;
}
.plans_list > li {
	border-radius: 5px;
	background-color: #fff;
	padding: 10px 10px clamp(10px, 0.8vw, 15px);
	position: relative;
	display: grid;
	grid-template-rows: subgrid;
	grid-row: span 4;
	gap: 10px;
}
.plans_list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: clamp(60px, 4.9vw, 95px);
	height: 1px;
	width: 100%;
	background-color: #2CA3C4;
}
.plans_list li h3 {
	text-align: center;
	height: clamp(40px, 3.9vw, 75px);
	display: grid;
	place-content: center;
	place-items: center center;
	font-size: clamp(16px, 1vw, 20px);
	font-weight: 700;
	color: #3CA4A7;
	position: relative;
}
.plans_list li .fee {
	height: clamp(50px, 4.4vw, 85px);
	border-radius: 5px;
	background-image: linear-gradient(to bottom, #2CC49B, #2CA3C4);
	color: #fff;
	text-align: center;
	display: grid;
	place-content: center;
	place-items: center center;
	margin-top: 5px;
}
.plans_list li:nth-child(4) .fee {
	background-image: linear-gradient(to bottom, #D859DD, #7239CE);
}
.plans_list li:nth-child(5) .fee {
	background-image: linear-gradient(to bottom, #F2E22D, #ED8B37);
}
.plans_list li .fee p {
	font-size: 15px;
}
.plans_list li .fee p span {
	padding: 0 10px;
	font-size: clamp(23px, 1.8vw, 35px);
	font-family: "Montserrat", sans-serif;
	font-weight: 700;
}
.plans_list li > ul li {
	background-color: #F5F5F5;
	border-radius: 3px;
	padding: 10px;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
.plans_list li > ul li:nth-child(even) {
	background-color: #fff;
}
.plans_list li > ul li span {
	font-size: 15px;
	color: #555;
	width: 115px;
}
.plans_list li > ul li p {
	font-size: 15px;
	width: calc(100% - 115px);
	text-align: center;
}
.plans_list li .box {
	border: 2px solid #2CA3C4;
	border-radius: 3px;
	padding: clamp(15px, 1.3vw, 25px) clamp(10px, 0.8vw, 15px);
	line-height: 1.5;
	height: 100%;
}
.plans_list li:nth-child(4) .box {
	border: 2px solid #803DD0;
}
.plans_list li:nth-child(5) .box {
	border: 2px solid #ED8B3F;
}
.plans_list li .box .ttl {
	text-align: center;
	color: #0C7795;
	font-size: 15px;
	margin-bottom: 5px;
}
.plans_list li .box .check {
	font-size: 15px;
	padding-left: 16px;
	position: relative;
}
.plans_list li .box .check i {
	position: absolute;
	left: 0;
	top: 7px;
	color: #2CA3C4;
}
.plans_list li .bgbox {
	background-color: #FDF3EA;
	border-radius: 3px;
	padding: 15px;
	display: grid;
	place-content: center;
	place-items: center center;
}
.plans_list li .bgbox p:not(.ttl) {
	text-align: center;
	font-size: 15px;
	line-height: 1.5;
}
.plans_list li .bgbox p.ttl {
	font-weight: 700;
	padding: 0 5px;
	color: #ED8837;
	background: linear-gradient(transparent 50%, #FCD7B8 50%, #FCD7B8 100%);
	margin-bottom: 10px;
}
.plans_list li:nth-child(4) h3,
.plans_list li:nth-child(4) .box .ttl,
.plans_list li:nth-child(4) .box .check i {
	color: #803DD0;
}
.plans_list li:nth-child(5) h3,
.plans_list li:nth-child(5) .box .ttl,
.plans_list li:nth-child(5) .box .check i {
	color: #ED8A36;
}
.top_bgarea {
	height: clamp(200px, 20.8vw, 400px);
}
.top_review {
	background-image: url('./library/images/top_review_bg.jpg');
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
}
.top_review .top_h2 {
	margin-bottom: clamp(20px, 3.4vw, 65px);
}
.top_review .ttl {
	width: 35%;
}
.top_review ul {
	width: 60%;
}
.top_review .ttl h3 {
	font-size: clamp(23px, 2.6vw, 50px);
	font-weight: 700;
	line-height: 1.5;
	color: #2CA3C4;
	margin-bottom: clamp(20px, 1.7vw, 33px);
}
.top_review ul li:not(:first-child) {
	margin-top: 20px;
}
.top_review ul li a {
	background-image: linear-gradient(to right bottom, #75CE3E, #2CC49B, #2CA3C4);
	border-radius: 10px;
	position: relative;
	z-index: 1;
	padding: clamp(20px, 1.6vw, 30px);
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
.top_review ul li a::before {
	content: "";
	position: absolute;
	left: 2px;
	top: 2px;
	width: calc(100% - 4px);
	height: calc(100% - 4px);
	background-color: #fff;
	border-radius: 20px;
	z-index: -1;
	transition: all ease 0.5s;
}
.top_review ul li a:hover::before {
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	border-radius: 10px;
}
.top_review ul li .img {
	width: 105px;
}
.top_review ul li .txt {
	width: calc(100% - 125px);
}
.top_review ul li span {
	display: block;
	border-radius: 10px 0 10px 0;
	background-image: linear-gradient(to right bottom, #75CE3E, #2CC49B, #2CA3C4);
	padding: 5px clamp(40px, 2.6vw, 50px) 5px clamp(10px, 1vw, 20px);
	color: #fff;
	line-height: 1.5;
	font-size: 14px;
	font-weight: 700;
	position: absolute;
	right: 0;
	bottom: 0;
	transition: all ease 0.5s;
}
.top_review ul li span::before {
	content: "";
	position: absolute;
	right: clamp(8px, 0.8vw, 15px);
	bottom: 5px;
	padding: 10px 14px;
	background-image: url('./library/images/arrow_white.svg');
	background-size: contain;
	background-position: center center;
	background-repeat: no-repeat;
}
.top_review ul li .txt h4 {
	color: #2CA3C4;
	line-height: 1.5;
	font-weight: 700;
	margin: 3px 0 8px;
	font-size: clamp(19px, 1.1vw, 22px);
}
.top_review ul li .txt .sub_txt {
	font-size: 14px;
	color: #555;
}
.top_service {
	padding: clamp(50px, 6.8vw, 130px) 2.5%;
	background-color: #49BBDB;
}
.top_service .inner {
	width: 100%;
	padding: clamp(35px, 4.9vw, 95px) 2.5%;
	background-color: #2CA3C4;
	border-radius: 10px;
	background-image: url('./library/images/top_service_bg.png');
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
}
.top_service .flex {
	align-items: flex-start;
	margin-bottom: clamp(30px, 4.9vw, 95px);
}
.top_service .flex > h2 {
	width: 45%;
}
.top_service .flex > div {
	width: 50%;
}
.top_service .flex > div h3 {
	color: #91E7FF;
	font-weight: 600;
	font-size: clamp(23px, 1.8vw, 35px);
	line-height: 1.5;
	margin-bottom: clamp(20px, 2.6vw, 50px);
}
.top_service .flex > div h3 span {
	color: #00FFBA;
}
.top_service .flex > div p {
	color: #fff;
}
.top_service .inner > ul {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: clamp(15px, 1.6vw, 30px);
}
.top_service .inner > ul > li {
	background-color: #fff;
	border-radius: 15px;
	padding: clamp(40px, 5.2vw, 100px) clamp(15px, 1.6vw, 30px) clamp(15px, 1.6vw, 30px);
	box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.16);
	position: relative;
	background-image: url('./library/images/top_service_bga.png');
	background-size: clamp(50px, 4.9vw, 95px);
	background-position: right top;
	background-repeat: no-repeat;
	margin-top: clamp(35px, 3.6vw, 70px);
	display: flex;
	flex-direction: column;
}
.top_service .inner > ul > li:nth-child(2) {
	background-image: url('./library/images/top_service_bgi.png');
}
.top_service .inner > ul > li:nth-child(3) {
	background-image: url('./library/images/top_service_bgs.png');
}
.top_service .inner > ul > li:nth-child(5) {
	background-image: url('./library/images/top_service_bgs.png');
}
.top_service .inner > ul > li > img {
	width: clamp(70px, 7.3vw, 140px);
	height: auto;
	position: absolute;
	left: 50%;
	top: calc(clamp(35px, 3.6vw, 70px) * -1);
	transform: translateX(-50%);
}
.top_service .inner > ul > li > span {
	text-align: center;
	color: #2CC49B;
	font-weight: 600;
	margin: 0 auto 5px;
	font-size: clamp(20px, 1.3vw, 25px);
	display: block;
}
.top_service .inner > ul > li > h4 {
	text-align: center;
	font-weight: 600;
	margin-bottom: clamp(15px, 1.6vw, 30px);
	font-size: clamp(18px, 1vw, 20px);
}
.top_service .inner > ul > li .box {
	background-image: linear-gradient(to bottom, #D1FFF3, #C4F2FF);
	padding: clamp(15px, 1.3vw, 25px) clamp(20px, 2vw, 40px);
	border-radius: 5px;
	height: 100%;
}
.maru_list li {
	padding-left: clamp(15px, 0.94vw, 18px);
	position: relative;
	line-height: 1.5;
	font-weight: 700;
	color: #27A1C4;
}
.maru_list li:not(:last-child) {
	margin-bottom: 5px;
}
.maru_list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 9px;
	width: 10px;
	height: 10px;
	border-radius: 5px;
	background-color: #fff;
	border: 2px solid #27A1C4;
}
.top_thoughts {
	background-image: url('library/images/top_thoughts_bg.jpg');
	background-attachment: fixed;
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
	color: #fff;
	position: relative;
	z-index: 1;
}
.top_thoughts::before {
	content: "";
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.95);
	position: absolute;
	z-index: -1;
}
.top_thoughts.on0 {
	background-image: url('library/images/top_thoughts_bg_member.jpg');
}
.top_thoughts.on1 {
	background-image: url('library/images/top_thoughts_bg_company.jpg');
}
.top_thoughts.on2 {
	background-image: url('library/images/top_thoughts_bg_recruit.jpg');
}
.top_thoughts .inner {
	width: min(90%, 1500px);
}
.top_thoughts h2 {
	color: #2CA3C4;
	line-height: 1.5;
	margin-bottom: clamp(20px, 2.6vw, 50px);
	font-size: 16px;
}
.top_thoughts h2 span {
	display: block;
	color: rgba(255, 255, 255, 0.06);
	font-family: "Montserrat", sans-serif;
	font-size: clamp(60px, 4.9vw, 95px);
	line-height: 1;
	font-weight: 500;
}
.top_thoughts .flex .txt {
	width: 460px;
}
.top_thoughts .flex ul {
	width: 58%;
	max-width: calc(95% - 460px);
}
.top_thoughts .flex .txt h3 {
	font-weight: 600;
	font-size: clamp(25px, 2.5vw, 48px);
	;
	line-height: 1.5;
	margin-bottom: clamp(15px, 1.7vw, 33px);
}
.top_thoughts .flex ul li:not(:last-child) {
	margin-bottom: 6px;
}
.top_thoughts .flex ul li a {
	padding: clamp(15px, 2.9vw, 55px) clamp(20px, 3.4vw, 65px);
	border: 1px solid #363636;
	border-radius: 5px;
	color: #fff;
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.top_thoughts .flex ul li a::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	height: 100%;
	width: 100%;
	border-radius: 5px;
	background-image: linear-gradient(to bottom, rgba(44, 196, 155, 0.7), rgba(44, 163, 196, 0.7));
	z-index: -1;
	transition: all ease 0.5s;
	opacity: 0;
}
.top_thoughts .flex ul li a:hover::before {
	opacity: 1;
}
.top_thoughts .flex ul li a::after {
	content: "Member";
	position: absolute;
	right: clamp(80px, 7vw, 135px);
	top: 50%;
	transform: translateY(-50%);
	color: rgba(255, 255, 255, 0.06);
	font-family: "Montserrat", sans-serif;
	font-size: clamp(40px, 4.9vw, 95px);
	font-weight: 500;
}
.top_thoughts .flex ul li:nth-child(2) a::after {
	content: "Company";
}
.top_thoughts .flex ul li:nth-child(3) a::after {
	content: "Recruit";
}
.top_thoughts .flex ul li a span {
	display: block;
	width: 42px;
	height: 42px;
	background-image: linear-gradient(to right bottom, #75CE3E, #2CC49B, #2CA3C4);
	border-radius: 25px;
	position: relative;
	z-index: 1;
}
.top_thoughts .flex ul li a span::before {
	content: "";
	display: block;
	width: 20px;
	height: 20px;
	background-color: #E3E3E3;
	border-radius: 10px;
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	transition: all ease 0.5s;
}
.top_thoughts .flex ul li a:hover span::before {
	transform: translate(-50%, -50%) scale(0);
}
/* 
 subpage共通
----------------------------------------------------------- */
.sub_ttl {
	padding: clamp(120px, 15.9vw, 305px) 0 clamp(50px, 9.6vw, 180px);
	background-color: #FAFAFA;
	background-image: url('./library/images/logo_w.svg');
	background-size: auto 74%;
	background-position: bottom right;
	background-repeat: no-repeat;
}
.sub_fv h1 {
	font-size: clamp(23px, 1.5vw, 28px);
	font-weight: 500;
	width: min(90%, 1200px);
	margin-inline: auto;
	position: relative;
	padding-left: clamp(20px, 2vw, 40px);
}
.sub_fv h1::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	height: 100%;
	width: 4px;
	background-image: linear-gradient(to bottom, #75CE3E, #2CC49B, #2CA3C4);
}
.sub_fv h1 span {
	display: block;
	color: #2CA3C4;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.1em;
	font-family: "Montserrat", sans-serif;
}
.sub_h2 {
	font-size: clamp(18px, 1vw, 20px);
	color: #777;
	display: flex;
	align-items: center;
	padding-left: 18px;
	position: relative;
	line-height: 1.3;
	margin-bottom: 15px;
	flex-wrap: wrap;
}
.sub_h2.white {
	color: #fff;
}
.sub_h2::before {
	content: "";
	position: absolute;
	left: 0;
	top: 13px;
	width: 8px;
	height: 8px;
	border-radius: 4px;
	background-image: linear-gradient(to bottom, #75CE3E, #2CC49B, #2CA3C4);
}
.sub_h2.white::before {
	background-color: #fff;
	background-image: none;
}
.sub_h2 span {
	display: block;
	font-size: clamp(20px, 1.3vw, 25px);
	padding-right: 45px;
	position: relative;
	font-family: "Montserrat", sans-serif;
	color: #111;
	width: fit-content;
}
.sub_h2.white span {
	color: #fff;
}
.sub_h2 span::before {
	content: "";
	position: absolute;
	right: 10px;
	top: 50%;
	transform: translateY(-50%);
	width: 25px;
	height: 1px;
	background-color: #999;
}
.sub_h2.white span::before {
	background-color: #fff;
}
.hyo {
	overflow-x: auto;
}
.hyo dl {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
.hyo dl dt {
	width: clamp(150px, 10.4vw, 200px);
	border-bottom: 1px solid #222;
	padding: clamp(10px, 1.6vw, 30px) 0;
}
.hyo dl:first-child dt {
	border-top: 1px solid #222;
}
.hyo dl dd {
	width: calc(100% - clamp(150px, 10.4vw, 200px));
	padding: clamp(10px, 1.6vw, 30px) 10px;
	border-bottom: 1px solid #E2E2E2;
	color: #555;
	font-size: 15px;
}
.hyo dl:first-child dd {
	border-top: 1px solid #E2E2E2;
}
.hyo2 {
	overflow-x: auto;
}
.hyo2 dl {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	border-bottom: 1px solid #D1D1D1;
}
.hyo2 dl:first-child {
	border-top: 1px solid #D1D1D1;
}
.hyo2 dl dt {
	width: clamp(150px, 15.6vw, 300px);
	padding: clamp(10px, 1.3vw, 25px) 0;
	background-color: #F5F5F5;
	text-align: center;
}
.hyo2 dl dd {
	width: calc(100% - clamp(150px, 15.6vw, 300px));
	padding: clamp(10px, 1.3vw, 25px) clamp(10px, 2.6vw, 50px);
	color: #555;
}
.hyo2 dl dd a {
	text-decoration: underline;
	color: #555;
	transition: all ease 0.5s;
}
.hyo2 dl dd a:hover {
	opacity: 0.7;
}
.maru_ttl {
	text-align: center;
	width: fit-content;
	line-height: 1.5;
	padding: 0 clamp(15px, 1.3vw, 25px);
	margin: 0 auto clamp(20px, 1.7vw, 33px);
	font-weight: 500;
	color: #2CA3C4;
	font-size: clamp(23px, 1.5vw, 28px);
	position: relative;
}
.maru_ttl.white {
	color: #fff;
}
.maru_ttl::before,
.maru_ttl::after {
	content: "";
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 6px;
	height: 6px;
	border-radius: 3px;
	background-color: #3CF5C3;
}
.maru_ttl.white::before,
.maru_ttl.white::after {
	background-color: #91E7FF;
}
.maru_ttl::before {
	left: 0;
}
.maru_ttl::after {
	right: 0;
}
.blue_box {
	background-color: #2CA3C4;
	border-radius: 10px;
	padding: clamp(20px, 3.4vw, 65px);
	color: #fff;
}
.white_box {
	border-radius: 5px;
	-webkit-backface-visibility: hidden;
	-webkit-backdrop-filter: blur(3px) brightness(150%);
	backdrop-filter: blur(3px) brightness(150%);
	backface-visibility: hidden;
	will-change: backdrop-filter;
	background: rgba(255, 255, 255, 0.7);
	padding: clamp(20px, 3.4vw, 65px) clamp(20px, 6.2vw, 120px);
}
.blue_ttl {
	font-weight: 700;
	text-align: center;
	color: #2CA3C4;
	margin-bottom: clamp(20px, 2.6vw, 50px);
	font-size: clamp(24px, 1.8vw, 35px);
}
.table {
	overflow-x: auto;
}
.table table {
	width: 100%;
	border-collapse: collapse;
}
.table thead th {
	padding: clamp(10px, 1vw, 20px);
	text-align: center;
	position: -webkit-sticky;
	position: sticky;
	top: 0;
	z-index: 1;
	background-color: #2CA3C4;
	border-right: 1px solid #D5D5D5;
	border-bottom: 1px solid #D5D5D5;
	color: #fff;
	font-size: 15px;
	font-weight: 400;
}
.table tbody th {
	padding: clamp(10px, 1vw, 20px);
	text-align: center;
	background-color: #2CA3C4;
	border-right: 1px solid #D5D5D5;
	border-bottom: 1px solid #D5D5D5;
	color: #fff;
	font-size: 15px;
	font-weight: 700;
}
.table tbody td {
	padding: clamp(10px, 1vw, 20px);
	background-color: #fff;
	border-right: 1px solid #D5D5D5;
	border-bottom: 1px solid #D5D5D5;
	text-align: center;
}
.table tbody tr:nth-of-type(odd) td {
	background-color: #EBFBFF;
}
.table thead th:first-child,
.table tbody td:first-child {
	border-left: 1px solid #D5D5D5;
}
.table tbody tr:first-of-type td {
	border-top: 1px solid #D5D5D5;
}
.line_ttl {
	font-size: clamp(20px, 1.3vw, 25px);
	position: relative;
	padding-bottom: clamp(10px, 0.8vw, 15px);
	margin-bottom: clamp(10px, 0.8vw, 15px);
	line-height: 1.5;
	font-weight: bold;
	color: #405671;
}
.line_ttl::before {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	height: 1px;
	width: 50px;
	background-image: linear-gradient(to right, #75CE3E, #2CC49B, #2CA3C4);
}
.line_ttl::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 60px;
	height: 1px;
	width: calc(100% - 60px);
	background-color: #CECECE;
}
.page_link li:not(:last-child) {
	margin-bottom: 10px;
}
.page_link a {
	display: block;
	padding: 3px clamp(10px, 1vw, 20px);
	background-color: #D7DEE0;
	border-radius: 3px;
	transition: all ease 0.5s;
	width: fit-content;
	line-height: 1.5;
}
.page_link a:hover {
	background-color: #405671;
	color: #fff;
}
.contact_list {
	background-color: #333333;
	position: relative;
	z-index: 1;
	margin-bottom: clamp(40px, 3.4vw, 65px);
}
.contact_list::before {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	height: clamp(120px, 9.9vw, 190px);
	width: 100%;
	background-image: url("./library/images/review_contact_bg.jpg");
	background-position: center center;
	background-repeat: no-repeat;
}
.contact_list p.tac {
	color: #fff;
	margin-bottom: clamp(30px, 3.4vw, 65px);
}
.contact_list ul {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px;
}
.contact_list ul li {
	position: relative;
	background-color: #FFFFFF;
	z-index: 1;
	border-radius: 5px;
	box-shadow: 3px 3px 30px 0px rgba(72, 50, 39, 0.1);
	padding: clamp(25px, 2.6vw, 50px) clamp(30px, 4.7vw, 90px);
	display: flex;
	flex-direction: column;
}
.contact_list ul li::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 0;
	transform: translateX(-50%);
	height: 4px;
	width: 80%;
	background-image: linear-gradient(to right, #2CC49B, #2CA3C4);
}
.contact_list ul li:nth-child(2)::before {
	background-image: linear-gradient(to right, #F2E22D, #ED8B37);
}
.contact_list ul li h2 {
	text-align: center;
	font-size: clamp(20px, 1.3vw, 25px);
	margin-bottom: clamp(8px, 0.8vw, 15px);
}
.contact_list ul li h2 small {
	font-size: 14px;
	display: block;
	width: fit-content;
	margin: 0 auto;
	color: #2CA3C4;
	position: relative;
	padding-left: 20px;
	font-family: "Montserrat", sans-serif;
	font-weight: 700;
}
.contact_list ul li:nth-child(2) h2 small {
	color: #ED8837;
}
.contact_list ul li h2 small::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 10px;
	height: 10px;
	border-radius: 5px;
	background-image: linear-gradient(to bottom, #75CE3E, #2CC49B, #2CA3C4);
}
.contact_list ul li:nth-child(2) h2 small::before {
	background-image: linear-gradient(to bottom, #F2E22D, #ED8B37);
}
.contact_list ul li img {
	margin: 0 auto clamp(8px, 0.8vw, 15px);
	height: clamp(20px, 1.6vw, 30px);
	width: auto;
}
.contact_list ul li p {
	margin-bottom: clamp(10px, 1vw, 20px);
}
.contact_list ul li a {
	width: min(100%, 300px);
	border-radius: 5px;
	border: 1px solid #2CA3C4;
	color: #fff;
	transition: all ease 0.5s;
	text-align: center;
	font-size: 16px;
	height: 50px;
	display: flex;
	justify-content: center;
	align-items: center;
	margin: auto auto 0;
	position: relative;
	overflow: hidden;
	z-index: 1;
}
.contact_list ul li a::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	background-image: linear-gradient(to right bottom, #2CC49B, #2CA3C4);
	z-index: -1;
	transition: all ease 0.5s;
}
.contact_list ul li a:hover {
	color: #2CA3C4;
}
.contact_list ul li a:hover::before {
	opacity: 0;
}
.contact_list ul li:nth-child(1) a::after {
	content: "→";
	position: absolute;
	top: 50%;
	right: clamp(10px, 1.6vw, 30px);
	transform: translateY(-50%);
}
.contact_list ul li:nth-child(2) a {
	border: 1px solid #F25A2D;
	font-size: clamp(20px, 1.1vw, 22px);
	font-family: "Montserrat", sans-serif;
	font-weight: 500;
}
.contact_list ul li:nth-child(2) a::before {
	background-image: linear-gradient(to right bottom, #F25A2D, #ED8B37);
}
.contact_list ul li:nth-child(2) a:hover {
	color: #F25A2D;
}
/* 
 production
----------------------------------------------------------- */
.production_wrap .inner {
	padding-top: clamp(40px, 4.9vw, 95px);
}
.production_wrap .sub_h2 {
	position: sticky;
	top: 100px;
}
.cat_box {
	background-color: #FAFAFA;
	padding: clamp(15px, 1.6vw, 30px) 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
.cat_box .ttl {
	width: 25%;
	text-align: center;
	border-right: 1px solid #E2E2E2;
	display: grid;
	place-content: center;
	place-items: center center;
}
.cat_box .cat_list {
	width: calc(75% - clamp(25px, 2.6vw, 50px));
}
.cat_list {
	display: flex;
	flex-wrap: wrap;
}
.cat_list li {
	margin: 5px 10px 5px 0;
	width: fit-content;
}
.cat_list li a {
	display: block;
	padding: 3px clamp(10px, 1vw, 20px);
	background-color: #D7DEE0;
	border-radius: 3px;
	transition: all ease 0.5s;
	width: fit-content;
	line-height: 1.5;
}
.cat_list li a:hover {
	background-color: #405671;
	color: #fff;
}
.production_wrap .cat_box {
	margin-bottom: 10px;
}
.production_list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	grid-column-gap: clamp(20px, 1.6vw, 30px);
	grid-row-gap: clamp(30px, 4.1vw, 80px);
	margin: clamp(40px, 4.9vw, 95px) 0 clamp(30px, 4.1vw, 80px);
}
.production_list li {
	display: flex;
	flex-direction: column;
}
.production_list .thumb img {
	width: 100%;
	height: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}
.production_list .txt {
	margin-top: 10px;
	height: 100%;
}
.production_list .txt a {
	height: 100%;
	display: flex;
	flex-direction: column;
}
.production_list .txt .flex {
	/* align-items: center; */
	flex-direction: column;
}
.production_list .txt .area {
	font-size: 14px;
	color: #555;
}
.production_list .txt h2 {
	font-size: 16px;
	font-weight: 700;
	margin: 7px 0;
}
.production_list .txt .cat_sub {
	margin-bottom: 5px;
}
.production_list .txt .more {
	padding: 8px;
	border-radius: 3px;
	background-color: #555;
	font-weight: 500;
	text-align: center;
	color: #fff;
	transition: all ease 0.5s;
	margin-top: 5px;
	margin-top: auto;
}
.production_list .txt:hover .more {
	background-color: #FB0234;
}
/* 
 production_single
----------------------------------------------------------- */
.production_singlewrap .inner {
	width: min(90%, 1000px);
}
.production_singlewrap .line_ttl {
	color: #111;
}
.production_singlewrap .company {
	margin-bottom: clamp(10px, 0.8vw, 15px);
}
.production_singlewrap .company i {
	color: #2CC49B;
	margin-right: 8px;
}
.production_singlewrap .thumb {
	border: 1px solid #D1D1D1;
}
.production_singlewrap .thumb img {
	width: 100%;
	height: auto;
}
.production_singlewrap .hyo2 {
	margin: clamp(25px, 2.6vw, 50px) 0;
}
.production_singlewrap .hyo2 dd span:not(:last-child)::after {
	content: '/';
	margin: 0 10px;
}
.production_singlewrap .box .ttl {
	padding: clamp(10px, 1vw, 20px);
	background-color: #2CA3C4;
	border-radius: 3px;
	margin-bottom: 4px;
}
.production_singlewrap .box .ttl p {
	color: #fff;
	font-size: clamp(17px, 1vw, 20px);
	width: fit-content;
	text-align: center;
	position: relative;
	padding-left: clamp(40px, 3.1vw, 60px);
	margin: 0 auto;
}
.production_singlewrap .box .ttl p::before {
	content: "";
	display: block;
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	height: clamp(30px, 2.6vw, 50px);
	width: clamp(30px, 2.6vw, 50px);
	background-image: url('./library/images/point_icn.svg');
	background-size: contain;
	background-position: center center;
	background-repeat: no-repeat;
}
.production_single .contact_list {
	margin-bottom: 0;
}
.production_singlewrap .box .txt {
	border: 1px solid #2CA3C4;
	border-radius: 3px;
	padding: clamp(20px, 1.7vw, 33px) clamp(20px, 2.6vw, 50px);
}
.production_singlelink .inner {
	padding: clamp(40px, 4.9vw, 95px) 0;
}
/* 
 member
----------------------------------------------------------- */
.member_wrap .inner {
	padding-top: clamp(40px, 4.9vw, 95px);
}
.member_wrap ul {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(20px, 1.6vw, 30px);
}
.member_wrap ul li {
	position: relative;
	z-index: 1;
}
.member_wrap ul li > span {
	display: block;
	position: absolute;
	right: 8px;
	top: 0;
	writing-mode: vertical-rl;
	padding-top: 40px;
	color: #525252;
	font-size: 14px;
}
.member_wrap ul li > span::before {
	content: "";
	position: absolute;
	top: 0;
	right: 13px;
	width: 1px;
	height: 32px;
	background-color: #707070;
	:
}
.member_wrap ul li .img img {
	width: 100%;
	height: 100%;
	aspect-ratio: 380 / 507;
	object-fit: cover;
}
.member_wrap ul li .txt {
	background-color: rgba(255, 255, 255, 0.95);
	padding: clamp(20px, 1.3vw, 25px) clamp(20px, 1.8vw, 35px);
	position: absolute;
	left: 50%;
	bottom: 20px;
	transform: translateX(-50%);
	width: calc(100% - 40px);
}
.member_wrap ul li .position {
	font-size: 12px;
	font-weight: 700;
	color: #2CA3C4;
	line-height: 1.5;
}
.member_wrap ul li h2 {
	font-size: clamp(17px, 1vw, 20px);
	line-height: 1.5;
}
.member_wrap ul li .romaji {
	font-size: 12px;
	font-weight: 700;
	color: #A5A5A5;
	line-height: 1.5;
	letter-spacing: 0.1em;
	font-family: "Montserrat", sans-serif;
}
.member_wrap ul li .message {
	margin-top: 10px;
	font-size: 14px;
}
/* 
 review
----------------------------------------------------------- */
#main.review {
	overflow: inherit;
}
.review_industry .inner {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	flex-wrap: wrap;
}
.review_industry .side {
	width: 300px;
	position: sticky;
	top: clamp(100px, 7.8vw, 150px);
}
.review_industry .contents {
	width: calc(95% - 300px);
}
.review_item:not(:last-child) {
	margin-bottom: clamp(40px, 3.4vw, 65px);
}
.review_list li:not(:last-child) {
	margin-bottom: 25px;
}
.review_list li {
	background-image: linear-gradient(to right bottom, #75CE3E, #2CC49B, #2CA3C4);
	border-radius: 10px;
	position: relative;
	z-index: 1;
	padding: clamp(20px, 1.6vw, 30px);
}
.review_list li:before {
	content: "";
	position: absolute;
	left: 2px;
	top: 2px;
	width: calc(100% - 4px);
	height: calc(100% - 4px);
	background-color: #fff;
	border-radius: 20px;
	z-index: -1;
	transition: all ease 0.5s;
}
.review_list li h4 {
	color: #2CA3C4;
	line-height: 1.5;
	font-weight: 700;
	margin: 3px 0 10px;
	font-size: clamp(19px, 1.1vw, 22px);
}
.review_list li .box {
	background-color: #F4F4F4;
	border-radius: 5px;
	padding: 20px;
}
/* 
 service
----------------------------------------------------------- */
.service_read {
	background-image: url('./library/images/service_read_bgl.png'), url('./library/images/service_read_bgr.png');
	background-size: auto 100%;
	background-position: center left, center right;
	background-repeat: no-repeat;
}
.service_read .blue_ttl span {
	animation: AnimationTitle 5s ease infinite;
	background: linear-gradient(to right, #75CE3E, #2CC49B, #2CA3C4);
	background-size: 200% 100%;
	background-clip: text;
	-webkit-background-clip: text;
	color: transparent;
}
@keyframes AnimationTitle {
	0% {
		background-position: 0% 50%;
	}
	50% {
		background-position: 100% 50%;
	}
	100% {
		background-position: 0% 50%;
	}
}
.service_read .inner > p {
	text-align: center;
}
.service_approach {
	background-image: url('./library/images/service_approach_bg.jpg');
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
	color: #fff;
}
.service_approach .flex h3 {
	width: 50%;
	font-weight: 700;
	color: #fff;
	margin-bottom: clamp(20px, 2.6vw, 50px);
	font-size: clamp(24px, 1.8vw, 35px);
}
.service_approach .flex p {
	width: 50%;
}
.service_approach .flex p span {
	color: #91E7FF;
}
.service_approach ul {
	margin-top: clamp(30px, 4.1vw, 80px);
}
.service_approach ul li:not(:last-child) {
	margin-bottom: clamp(25px, 2.6vw, 50px);
}
.service_approach ul li {
	padding: clamp(25px, 1.6vw, 30px) clamp(20px, 5.2vw, 100px);
	-webkit-backdrop-filter: blur(8px) brightness(1.1);
	backdrop-filter: blur(8px) brightness(1.1);
	background: rgba(255, 255, 255, 0.1);
	border-radius: 5px;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
.service_approach ul li h4 {
	width: 35%;
	font-size: clamp(40px, 3.1vw, 60px);
	font-family: "Montserrat", sans-serif;
	font-weight: 500;
}
.service_approach ul li h4::first-letter {
	color: #3CF5C3;
}
.service_approach ul li h4 span {
	font-size: clamp(18px, 1vw, 20px);
	font-family: "Noto Sans JP", "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
}
.service_approach ul li .txt {
	width: 65%;
}
.service_approach ul li .txt .tag span {
	width: fit-content;
	padding: 1px 8px;
	border-radius: 3px;
	background: linear-gradient(to bottom, #2CC49B, #2CA3C4);
	font-weight: 500;
	margin-bottom: 5px;
	font-size: clamp(16px, 0.94vw, 18px);
}
.service_approach ul li .txt p:not(.tag) {
	font-size: clamp(16px, 1vw, 20px);
}
.service_approach ul li .txt p:not(.tag) span {
	color: #3CF5C3;
	font-weight: 600;
}
.service_aisas .flex,
.service_lineup .flex {
	margin-bottom: clamp(30px, 4.1vw, 80px);
}
.service_aisas .flex h3,
.service_lineup .flex h3 {
	width: 50%;
	text-align: justify;
}
.service_aisas .flex p,
.service_lineup .flex p {
	width: 45%;
}
.service_aisas ul {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(20px, 1.6vw, 30px);
}
.service_aisas ul li {
	border-radius: 5px;
	background-color: #fff;
	box-shadow: 1px 1px 10px 0px rgba(0, 0, 0, 0.1);
	display: grid;
	place-content: center;
	place-items: center center;
	padding: clamp(20px, 1.7vw, 33px);
}
.service_aisas ul li:nth-child(even) {
	background-color: #DCFAF8;
}
.service_aisas ul li > div {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	align-items: center;
}
.service_aisas ul li > div img {
	height: clamp(35px, 2.6vw, 50px);
	width: auto;
	margin-right: clamp(10px, 1vw, 20px);
}
.service_aisas ul li > div p {
	line-height: 1.5;
}
.service_aisas ul li > div p strong {
	font-size: clamp(20px, 1.3vw, 25px);
	font-weight: 600;
	color: #2CA3C4;
}
.service_aisas p.tac {
	margin-top: clamp(30px, 3.4vw, 65px);
}
.service_aisas p.tac span {
	font-size: clamp(20px, 1.3vw, 25px);
	font-weight: 600;
	color: #2CA3C4;
	background: linear-gradient(transparent 70%, #EAEA4C 70%, #EAEA4C 100%);
}
.service_lineup {
	background-image: url('./library/images/service_lineup_bg.jpg');
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
}
.service_lineup ul {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	grid-column-gap: clamp(15px, 1.1vw, 22px);
	grid-row-gap: clamp(20px, 1.5vw, 28px);
}
.service_lineup ul li {
	background-color: #fff;
	padding: clamp(15px, 1.3vw, 25px) clamp(20px, 1.6vw, 30px) clamp(15px, 1.3vw, 25px) clamp(25px, 2vw, 40px);
	border-left: 5px solid;
	border-image: linear-gradient(to bottom, #3ECEC8, #2CC49B, #2CA3C4) 1;
	display: grid;
	grid-template-rows: subgrid;
	grid-row: span 2;
	gap: 10px;
}
.service_lineup ul li h4 {
	line-height: 1.5;
	font-size: clamp(18px, 1vw, 20px);
	font-weight: 600;
}
.service_lineup ul li h4 small {
	display: block;
	font-size: 15px;
	font-weight: 400;
}
.service_lineup ul li p {
	padding-top: 10px;
	border-top: 1px solid #2CA3C4;
}
/* 
 rateplans
----------------------------------------------------------- */
.rateplans_read .inner > p {
	text-align: center;
	margin-bottom: clamp(20px, 2.6vw, 50px);
}
.rateplans_read ul {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
}
.rateplans_read ul li {
	width: min(100%, 550px);
}
.rateplans_read ul li:not(:last-child) {
	margin-right: clamp(20px, 2vw, 40px);
}
.rateplans_read ul li .footer_btn {
	border: 1px solid #2CA3C4;
}
.rateplans_planlist {
	background-color: #49BBDB;
}
.rateplans_planlist .inner {
	padding-bottom: 0;
	width: min(90%, 1500px);
	position: relative;
	z-index: 2;
}
.rateplans_planlist .flex {
	margin-bottom: 15px;
	align-items: flex-end;
}
.rateplans_planlist .sub_h2 {
	margin-bottom: 0;
}
.rateplans_planlist .flex p {
	color: #fff;
}
.rateplans_option {
	position: relative;
	z-index: 1;
	background-image: url('./library/images/rateplans_option_bg.jpg');
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
	margin-top: calc(clamp(35px, 3.4vw, 65px) * -1);
}
.rateplans_option::before {
	content: "";
	position: absolute;
	top: clamp(40px, 8.6vw, 165px);
	left: 0;
	width: 100%;
	height: clamp(80px, 8vw, 155px);
	background-image: url('./library/images/rateplans_option_txt.png');
	background-size: auto 100%;
	background-position: top right;
	background-repeat: repeat-x;
	animation: move_txt 60s infinite linear;
}
@keyframes move_txt {
	0% {
		background-position: bottom 5% right;
	}
	100% {
		background-position: bottom 5% right 3000px;
	}
}
.rateplans_option .inner {
	padding-top: clamp(80px, 12.7vw, 245px);
}
.rateplans_option .table thead th:first-of-type {
	background-color: transparent;
}
/* 
 recruit
----------------------------------------------------------- */
.recruit_read {
	background-image: url('./library/images/recruit_read_bg.png');
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
}
.recruit_read p {
	text-align: center;
}
.recruit_read span {
	text-align: center;
	width: fit-content;
	display: block;
	margin: clamp(15px, 1.7vw, 33px) auto 0;
	padding: 10px clamp(20px, 1.7vw, 33px);
	color: #fff;
	font-weight: 500;
	font-size: clamp(16px, 0.94vw, 18px);
	background-image: linear-gradient(to right bottom, #2CC49B, #2CA3C4);
	border-radius: 50px;
	line-height: 1.5;
}
.recruit_recruitment {
	background-image: url('./library/images/recruit_recruitment_bg.jpg');
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
}
.recruitment_list li {
	background-color: #F4F4F4;
	padding: clamp(20px, 2.3vw, 45px) clamp(20px, 3.6vw, 70px);
	position: relative;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
.recruitment_list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	background-color: #2CA3C4;
	width: 3px;
	height: clamp(40px, 3.6vw, 70px);
}
.recruitment_list li:not(:last-child) {
	margin-bottom: clamp(20px, 1.8vw, 35px);
}
.recruitment_list li h3 {
	width: 38%;
	font-size: 16px;
	color: #2CA3C4;
	line-height: 1.5;
	font-weight: 500;
}
.recruitment_list li h3 span {
	font-family: "Montserrat", sans-serif;
	font-size: clamp(30px, 2.6vw, 50px);
	display: block;
	color: #111;
	line-height: 1.3;
}
.recruitment_list li h3 span small {
	font-size: clamp(25px, 1.8vw, 35px);
	display: block;
}
.recruitment_list li .txt {
	width: 57%;
}
.recruitment_list li .txt h4 {
	width: fit-content;
	font-size: clamp(16px, 0.94vw, 18px);
	font-weight: 600;
	padding-bottom: 5px;
	border-bottom: 2px solid #111;
	margin-bottom: clamp(10px, 1vw, 20px);
}
.recruit_recruitment .blue_box {
	margin-top: clamp(30px, 3.4vw, 65px);
}
.recruit_recruitment .blue_box p {
	text-align: center;
}
.recruit_recruitment .blue_box > div:not(.linkbox) {
	padding: clamp(10px, 0.8vw, 15px) clamp(10px, 3.1vw, 60px);
	border-radius: 5px;
	background-color: #FAFAFA;
	margin: clamp(10px, 1vw, 20px) auto;
	width: fit-content;
}
.recruit_recruitment .blue_box > div:not(.linkbox) ul {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	color: #0C7795;
}
.recruit_recruitment .blue_box > div:not(.linkbox) ul li:not(:last-child) {
	margin-right: clamp(15px, 1.5vw, 28px);
}
.recruit_recruitment .blue_box .linkbox {
	margin-top: clamp(20px, 2.2vw, 42px);
}
/* 
 company
----------------------------------------------------------- */
.company_vision {
	background-image: url('./library/images/company_vision_bg.jpg');
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
}
.company_vision .inner {
	padding-bottom: clamp(50px, 4.9vw, 95px);
}
.company_vision .sub_h2 span::before {
	display: none;
}
.company_vision img {
	width: 100%;
	height: auto;
	filter: drop-shadow(10px 10px 20px rgba(0, 0, 0, 0.1));
}
.company_profile .inner {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	align-items: flex-start;
}
.company_profile .hyo {
	width: 58%;
	max-width: calc(95% - 305px);
}
/* 
 contact
----------------------------------------------------------- */
.contact_form .inner {
	width: min(90%, 1000px);
}
.contact_form .mb15 {
	margin-bottom: clamp(8px, 0.8vw, 15px);
}
.cont_list {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	margin-bottom: 60px;
}
.cont_list li {
	width: 32%;
	text-align: center;
	background-color: #BEBEBE;
	color: #FFF;
	padding: 10px;
	border-radius: 5px;
	font-weight: bold;
}
.cont_page {
	background-color: #2CA3C4 !important;
}
.cont_list li:nth-of-type(2) {
	margin: 0 2%;
}
.wpcf7 dl,
.mw_wrap dl {
	width: 100%;
	border-bottom: 1px solid #EDEDED;
	padding: clamp(15px, 1.3vw, 25px) clamp(20px, 5.2vw, 100px);
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
.wpcf7 dl:first-of-type,
.mw_wrap dl:first-of-type {
	border-top: 1px solid #EDEDED;
}
.wpcf7 dt,
.mw_wrap dt {
	width: 35%;
	margin-bottom: 3px;
}
.wpcf7 dt span,
.mw_wrap dt span {
	color: #fff;
	padding: 1px 5px;
	background-color: #C4322C;
	border-radius: 3px;
	font-size: 13px;
	margin-left: 10px;
}
.wpcf7 dd,
.mw_wrap dd {
	width: 65%;
}
.wpcf7 dl.form_sub,
.mw_wrap dl.form_sub {
	margin-bottom: 10px;
}
.wpcf7 dl.form_sub dt p,
.mw_wrap dl.form_sub dt p {
	font-size: 16px;
}
.wpcf7 dt.form_sub_ttl,
.mw_wrap dt.form_sub_ttl {
	margin-bottom: 5px;
}
.wpcf7-list-item {
	margin: 0 1em 0 0;
	margin-bottom: 5px;
}
.wpcf7-date {
	background-color: #FFF;
	max-width: 100%;
	border: 1px solid #D9E2E9;
	padding: 5px;
	font-size: 0.9rem;
	min-height: 38px;
}
.wpcf7 .subbtn,
.mw_wrap .subbtn {
	width: fit-content;
	margin: 30px auto 0;
}
.wpcf7 .flex,
.mw_wrap .flex {
	justify-content: center;
}
.wpcf7 .flex .subbtn,
.mw_wrap .flex .subbtn {
	margin: 30px 15px 0;
}
.subbtn input {
	width: 300px;
	padding: 10px;
	color: #FFF;
	border-style: none;
	background-image: linear-gradient(to right bottom, #2CC49B, #2CA3C4);
	border-radius: 5px;
	transition: all ease 0.5s;
}
.subbtn input:hover {
	opacity: 0.7;
}
.wpcf7 .flex .subbtn:first-of-type input,
.mw_wrap .flex .subbtn:first-of-type input {
	background-color: #fff8f0;
	color: #222;
}
.wpcf7-text,
.mw_txt {
	width: 100%;
	background-color: #FFF;
	max-width: 100%;
	border: 1px solid #D9E2E9;
	padding: 5px;
	font-size: 0.9rem;
	min-height: 38px;
	border-radius: 2px;
}
.wpcf7-text:focus,
.wpcf7-textarea:focus {
	background-color: #fafeff;
}
.wpcf7-select,
.mw_select,
.wpcf7-file,
.me_file {
	background-color: #FFF;
	max-width: 100%;
	border: 1px solid #D9E2E9;
	padding: 5px 10px;
	font-size: 0.9rem;
	min-height: 38px;
}
.wpcf7-textarea,
.mw_area {
	width: 100%;
	background-color: #FFF;
	max-width: 100%;
	border: 1px solid #D9E2E9;
	padding: 5px;
	border-radius: 2px;
	font-size: 0.9rem;
}
.wpcf7 dd .sub,
.mw_wrap dd .sub {
	font-size: 14px;
}
.shonin .wpcf7-list-item {
	margin: 15px auto 0;
	text-align: center;
	display: block;
	font-size: 14px;
}
.wpcf7 .flex,
.mw_wrap .flex {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
}
.wpcf7 .flex .subbtn,
.mw_wrap .flex .subbtn {
	margin: 30px 15px 0;
}
.wpcf7 .flex .subbtn:first-of-type input,
.mw_wrap .flex .subbtn:first-of-type input {
	background-color: #cccccc;
}
.priva {
	margin-top: clamp(15px, 1.3vw, 25px);
	font-size: 14px;
	padding: 0 clamp(20px, 5.2vw, 100px);
}
.priva p {
	text-align: left;
}
.priva h3 {
	font-size: 16px;
	margin-bottom: 8px;
}
.priva h3 span {
	font-size: 14px;
	margin-left: 15px;
	display: inline-block;
}
.priva ul {
	width: 100%;
	overflow-y: scroll;
	height: 250px;
	border: 1px solid #D9E2E9;
	background: #FFF;
	padding: clamp(20px, 1.6vw, 30px) clamp(20px, 2vw, 40px);
}
.priva li:not(:last-child) {
	margin-bottom: 20px;
}
.priva li h4 {
	margin-bottom: 5px;
	padding-bottom: 5px;
	border-bottom: 1px solid #2B1A02;
	font-size: 14px;
	font-weight: 500;
}
.privabtn {
	text-align: center;
	margin-top: 30px;
	font-weight: bold;
}
/* 
 news index-archives page（サイドバー無し）
----------------------------------------------------------- */
.archivetitle {
	font-size: clamp(20px, 1.6vw, 30px);
	margin: 0 auto clamp(8px, 0.8vw, 15px);
	width: 100%;
	font-weight: 500;
}
.archivetitle span {
	font-size: clamp(17px, 1vw, 20px);
	padding-right: clamp(8px, 0.8vw, 15px);
}
.g_list {
	width: min(100%, 1200px);
	margin: 0 auto clamp(25px, 2.6vw, 50px);
	display: flex;
	justify-content: flex-start;
	flex-wrap: wrap;
	padding: 10px 15px 10px 112px;
	background: #fff8f0;
	box-shadow: 0 3px 10px rgba(0, 0, 0, 0.05);
	position: relative;
}
.g_list p {
	padding: 10px 0;
	position: absolute;
	top: 10px;
	left: 15px;
	font-weight: bold;
	line-height: 1;
}
.g_list .box {
	padding: 5px;
}
.g_list .box a {
	color: #111;
	background: #FFF;
	padding: 3px 10px;
	font-size: 0.9rem;
	transition: all ease 0.5s;
	-webkit-transition: all ease 0.5s;
	-moz-transition: all ease 0.5s;
}
.g_list .box a:hover {
	background: #2CA3C4;
	color: #FFF;
}
.bcontwrap ul {
	display: grid;
	gap: clamp(25px, 2.6vw, 50px);
	grid-template-columns: repeat(3, 1fr);
	margin-bottom: clamp(30px, 2.3vw, 45px);
}
.bcontwrap ul li {
	position: relative;
	transition: all ease 0.5s;
	background-color: #fff8f0;
	display: grid;
}
.bcontwrap ul li > a {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
}
.bcontwrap ul li .img {
	overflow: hidden;
}
.bcontwrap ul li .img img {
	aspect-ratio: 5/3;
	object-fit: cover;
	width: 100%;
	height: 100%;
	transition: all ease 0.5s;
}
.bcontwrap ul li:hover .img img {
	transform: scale(1.2, 1.2);
}
.bcontwrap ul li .txt {
	padding: clamp(15px, 1.3vw, 25px);
	display: flex;
	flex-direction: column;
}
.bcontwrap ul li .txt span:first-of-type {
	font-size: 14px;
	margin-bottom: 5px;
	color: #999;
	line-height: 1.3;
}
.bcontwrap ul li .txt h3 {
	font-size: 16px;
	margin-bottom: 5px;
	font-weight: 600;
	transition: all ease 0.5s;
}
.bcontwrap ul li:hover .txt h3 {
	color: #2CA3C4;
}
.bcontwrap ul li .txt p:not(.more) {
	display: -webkit-box;
	overflow: hidden;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	color: #535353;
	font-size: 14px;
	line-height: 1.5;
	margin-bottom: 10px;
}
.bcontwrap ul li .txt .more {
	text-align: center;
	padding-top: 14px;
	margin-top: auto;
	line-height: 1.3;
	border-top: 1px solid #CECECE;
	font-size: 14px;
	color: #535353;
	transition: all ease 0.5s;
	display: block;
}
.bcontwrap ul li:hover .txt .more {
	color: #2CA3C4;
}
.bcontwrap ul li .txt .cat {
	margin-bottom: 15px;
}
.news_info {
	margin-bottom: 30px;
}
.news_info span:first-of-type {
	margin-right: 5px;
	font-weight: normal;
	font-size: 15px;
}
.cat a {
	color: #fff;
	padding: 3px 10px;
	font-size: 14px;
	white-space: nowrap;
	margin: 3px 5px 3px 0;
	font-weight: normal;
	transition: all ease 0.5s;
	display: inline-block;
	line-height: 1.3;
	background-color: #2CA3C4;
}
.cat a:hover {
	background-color: #2CA3C4;
	color: #fff;
}
.ttl_maru {
	font-size: 16px;
	font-weight: 600;
	margin-bottom: 10px;
	color: #2CA3C4;
	position: relative;
	padding-left: 23px;
}
.ttl_maru::before {
	content: "";
	position: absolute;
	left: 0;
	top: 3px;
	padding: 5px;
	border-radius: 10px;
	background-color: #fff;
	border: 4px solid #2CA3C4;
}
.list_wrap {
	display: flex;
	justify-content: flex-start;
	flex-wrap: wrap;
}
.l_cotent {
	width: 70%;
	margin-right: 5%;
}
.news_list {
	margin-bottom: clamp(30px, 2.3vw, 45px);
}
.news_list > li {
	background-color: #fff;
	padding: 20px;
	border: 1px solid #ccc;
	border-left: 9px solid #2CA3C4;
	margin-bottom: 20px;
	position: relative;
	transition: all ease 0.5s;
}
.news_list > li:hover {
	background-color: #fff8f0;
}
.news_list > li > a {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
}
.news_list .news_info {
	margin-bottom: 0;
}
/*アイキャッチなしの場合は削除*/
.news_list > li dl {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
.news_list > li dt {
	width: 30%;
}
.news_list > li dt img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
/*アイキャッチなしの場合は削除 ここまで*/
.news_list > li dd {
	width: 67%;
	/*▼アイキャッチなしの場合*/
	/*width: 100%;*/
}
.news_list > li dd a:hover {
	opacity: 0.7;
}
.news_list > li dd .news_info {
	padding-top: 5px;
	border-top: 1px solid #ccc;
	margin-bottom: 0;
}
.news_list > li dd h3 {
	font-size: 20px;
	background: none;
	padding-left: 0;
	text-align: justify;
	margin-bottom: 5px;
}
.news_list > li dd p {
	display: -webkit-box;
	overflow: hidden;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	margin-bottom: 10px;
	color: #555;
	font-size: 14px;
	line-height: 1.5;
}
.sidebar {
	width: 25%;
}
.widgettitle {
	padding: 0 0 5px 12px;
	margin-bottom: 10px;
	border-bottom: 1px solid #ccc;
	position: relative;
	padding-left: 15px;
}
.widgettitle::before {
	content: "";
	position: absolute;
	left: 0;
	top: 7px;
	padding: 5px;
	border-radius: 6px;
	background-color: #2CA3C4;
}
.widget ul:not(.children) {
	margin-bottom: 30px;
}
.widget ul li:not(:last-child) a {
	margin-bottom: 10px;
}
.widget ul li a {
	width: 100%;
	font-size: 0.9rem;
	display: block;
	padding-left: 25px;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
	position: relative;
	transition: all ease 0.5s;
	-webkit-transition: all ease 0.5s;
	-moz-transition: all ease 0.5s;
}
.widget ul li a::before {
	content: "▶";
	font-size: 10px;
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
}
.widget ul li a:hover {
	color: #2CA3C4;
}
#archives-dropdown-2 {
	width: 100%;
	font-size: 0.9rem;
	padding: 10px 15px;
	border: 0px;
	background-color: #F0F0F0;
}
/* news single page
----------------------------------------------------------- */
.stitle {
	font-size: 22px;
	font-weight: 500;
	line-height: 1.3;
	color: #2CA3C4;
	padding-bottom: 10px;
	margin-bottom: 10px;
	border-bottom: 1px solid #ccc;
	position: relative;
	text-align: justify;
}
.stitle::before {
	content: "";
	background-color: #2CA3C4;
	bottom: -1px;
	position: absolute;
	left: 0;
	width: 50px;
	height: 1px;
}
.singlecont a {
	text-decoration: underline;
	color: inherit;
	font-weight: inherit;
}
.singlecont h1,
.singlecont h2,
.singlecont h3,
.singlecont h4,
.singlecont h5,
.singlecont h6 {
	line-height: inherit;
	font-weight: bold;
}
/* 
 foot
----------------------------------------------------------- */
.footer .contact {
	width: 60%;
	padding: clamp(30px, 4.9vw, 95px);
	background-image: url('./library/images/footer_contact_bg.jpg');
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
	color: #fff;
}
.footer .info {
	width: 40%;
	background-color: #fff;
	padding: clamp(50px, 6.8vw, 130px) clamp(30px, 3.9vw, 75px) 10px;
	display: flex;
	flex-direction: column;
}
.footer .contact .tac {
	margin: clamp(15px, 1.7vw, 33px) 0 clamp(25px, 2.6vw, 50px);
	font-weight: 700;
}
.footer_btn {
	background-color: #fff;
	width: min(100%, 550px);
	height: clamp(100px, 6.8vw, 130px);
	transition: all ease 0.5s;
	text-align: center;
	position: relative;
	line-height: 1.3;
	border-radius: 70px;
	display: grid;
	place-content: center;
	place-items: center center;
}
.footer_btn:hover {
	background-color: #e9f9f5;
}
.footer_btn::before {
	content: '';
	display: block;
	width: 42px;
	height: 42px;
	border-radius: 21px;
	position: absolute;
	background-image: linear-gradient(to right bottom, #75CE3E, #2CC49B, #2CA3C4);
	top: 50%;
	right: 42px;
	transform: translateY(-50%);
}
.footer_btn::after {
	content: '';
	display: block;
	width: 20px;
	height: 20px;
	border-radius: 10px;
	position: absolute;
	background-color: #fff;
	top: 50%;
	right: 53px;
	transform: translateY(-50%);
	transition: all ease 0.5s;
}
.footer_btn:hover::after {
	transform: translateY(-50%) scale(0);
}
.footer_btn span {
	font-size: 14px;
}
.footer_btn .ttl {
	font-size: clamp(20px, 1.3vw, 25px);
	color: #2CA3C4;
	margin: 3px 0;
}
.footer_btn .ttl i {
	margin-right: 10px;
	font-size: 0.9em;
}
.footer .contact .footer_btn {
	margin: 0 auto;
}
.footer .contact .footer_btn:nth-of-type(1) {
	margin-bottom: clamp(15px, 1.7vw, 33px);
}
.footer .contact .footer_btn:nth-of-type(1) .ttl {
	font-size: clamp(22px, 1.5vw, 28px);
}
.footer .info .flex {
	margin-bottom: clamp(20px, 2.6vw, 50px);
}
.footer .info .flex img {
	height: clamp(50px, 3.1vw, 60px);
	width: auto;
}
.footer .info .flex ul {
	width: 250px;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
.footer .info .flex ul li {
	width: 100px;
}
.footer .info .flex ul li:not(:nth-child(-n+2)) {
	margin-top: clamp(10px, 1vw, 20px);
}
.footer .info .flex ul li a {
	transition: all ease 0.5s;
}
.footer .info .flex ul li a:hover {
	color: #2CA3C4;
}
.footer .info .copy {
	margin-top: auto;
	text-align: center;
	font-size: 14px;
}
.footer .info > .link_list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 8px;
	margin-bottom: clamp(20px, 2.6vw, 50px);
}
.footer .info > .link_list > li:nth-child(1) {
	grid-column: 1/2;
	grid-row: 1/2;
}
.footer .info > .link_list > li:nth-child(2) {
	grid-column: 2/3;
	grid-row: 1/2;
}
.footer .info > .link_list > li:nth-child(3) {
	grid-column: 1/3;
	grid-row: 2/3;
}
.footer .info > .link_list > li > a {
	display: block;
	border: 1px solid #D3D3D3;
	padding: clamp(15px, 1vw, 20px);
	font-size: 14px;
	transition: all ease 0.5s;
	text-align: center;
	position: relative;
	height: 100%;
	display: grid;
	place-content: center;
	place-items: center center;
}
.footer .info > .link_list > li > a::before {
	content: '';
	display: block;
	width: 0;
	height: 0;
	border-style: solid;
	border-color: transparent transparent #2CA3C4 transparent;
	border-width: 0px 0px 10px 10px;
	position: absolute;
	inset: auto 5px 5px auto;
}
.footer .info > .link_list > li > a:hover {
	background-color: #e9f9f5;
}
.footer .info > .link_list > li > a p {
	text-align: center;
}
.footer .info > .link_list > li > a span {
	text-decoration: underline;
}
.footer .address {
	display: flex;
	justify-content: flex-start;
	flex-wrap: wrap;
}
.footer .address p {
	font-size: 14px;
	color: #555;
}
.footer .address p:not(:last-of-type) {
	margin-right: clamp(20px, 3.4vw, 65px);
	margin-bottom: 15px;
}
.footer .address p a {
	text-decoration: underline;
	color: #555;
}
.footer .address p i {
	color: #2CA3C4;
	padding: 0 5px;
}
.footer .sns_list {
	display: flex;
	justify-content: flex-end;
	margin-top: clamp(20px, 2.6vw, 50px);
}
.footer .sns_list li img {
	height: 30px;
	width: auto;
}
.footer .sns_list li:not(:last-child) {
	margin-right: clamp(15px, 1vw, 20px);
}
/* 
 smartphone menu btn
----------------------------------------------------------- */
.spnavbtn {
	position: fixed;
	top: 4%;
	right: 2%;
	z-index: 999;
	text-align: center;
	padding: 12px 10px 5px 11px;
	cursor: pointer;
	display: none;
}
.nav-trigger,
.nav-trigger span {
	display: inline-block;
	transition: all ease 0.5s;
	box-sizing: border-box;
}
.nav-trigger {
	position: relative;
	width: 30px;
	height: 18px;
}
.nav-trigger span {
	position: absolute;
	left: 0;
	width: 100%;
	height: 2px;
	background-color: #2CA3C4;
	border-radius: 20px;
}
.nav-trigger span:nth-of-type(1) {
	top: 0;
}
.nav-trigger span:nth-of-type(2) {
	top: 8px;
}
.nav-trigger span:nth-of-type(3) {
	bottom: 0;
}
/* 
 smartphone menu btn click
----------------------------------------------------------- */
.spnavbtn .activete {
	font-size: 0.9em;
	opacity: 0;
}
.spnavbtn .activete:before {
	content: "";
}
.nav-trigger.active span:nth-of-type(1) {
	-webkit-transform: translateY(8px) rotate(-45deg);
	transform: translateY(8px) rotate(-45deg);
}
.nav-trigger.active span:nth-of-type(2) {
	left: 60%;
	opacity: 0;
	-webkit-animation: active-menu-bar02 .8s forwards;
	animation: active-menu-bar02 .8s forwards;
}
@-webkit-keyframes active-menu-bar02 {
	100% {
		height: 0;
	}
}
@keyframes active-menu-bar02 {
	100% {
		height: 0;
	}
}
.nav-trigger.active span:nth-of-type(3) {
	-webkit-transform: translateY(-8px) rotate(45deg);
	transform: translateY(-8px) rotate(45deg);
}
/* 
 smartphone menu btn click area
----------------------------------------------------------- */
.spnav {
	position: relative;
	z-index: 999;
}
.sp_close {
	position: fixed;
	left: 0;
	top: 0;
	width: 100%;
	height: 100vh;
	height: 100dvh;
	z-index: 998;
	display: none;
}
.sp_close.open {
	display: inherit;
}
.spnav .trigger {
	width: 300px;
	height: 100%;
	transition: all ease 0.5s;
	position: fixed;
	top: 0;
	left: -300px;
	color: rgba(255, 255, 255, 0);
	overflow-y: scroll;
}
.spnav .open {
	width: 300px;
	max-width: 80%;
	height: 100%;
	position: fixed;
	top: 0;
	left: 0;
	color: rgba(150, 150, 150, 1);
	overflow-y: scroll;
	-webkit-backdrop-filter: saturate(140%) blur(20px) brightness(130%);
	backdrop-filter: saturate(140%) blur(20px) brightness(130%);
	background: rgba(255, 255, 255, 0.7);
}
.spnav .trigger > p {
	width: 100%;
	padding: 15px;
	text-align: center;
}
.spnav .trigger > p img {
	height: 40px;
	width: auto;
	margin: 0 auto;
}
.spnav .trigger > ul > li {
	border-bottom: 1px solid rgba(44, 163, 196, 0.5);
	text-align: center;
	color: #231815;
	font-size: 0.9rem;
	transition: all ease 0.5s;
}
.spnav .trigger > ul > li:last-child {
	border-bottom: 1px solid rgba(44, 163, 196, 0.5);
}
.spnav .trigger > ul > li i {
	margin-right: 5px;
	color: #2CA3C4;
}
.spnav ul li a {
	display: flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	padding: 0 10px;
	height: 48px;
	transition: all ease 0.5s;
	line-height: 1.2;
}
.spnav ul li a:hover,
.spnav .navright:hover {
	background: #fff;
	color: #969696;
}
.spnav ul li.open_btn p {
	cursor: pointer;
	padding: 12px 0;
	text-align: center;
	font-size: 0.9rem;
}
.spnav ul li.open_btn span {
	font-size: 0.7em;
	position: relative;
	top: -1px;
	padding: 1em 0 1em 1em;
	color: #2CA3C4;
}
.spnav ul li ul {
	display: none;
}
.spnav ul li ul li {
	border-top: 1px solid rgba(44, 163, 196, 0.2);
}
.spnav ul li ul li:last-child {
	border-bottom: none;
}
@media screen and (max-width: 1600px) {
	/* 
	 header
	----------------------------------------------------------- */
}
@media screen and (max-width: 1400px) {
	/* 
	 header
	----------------------------------------------------------- */
	.navwrap {
		padding: 10px;
	}
	.navwrap > ul > li:not(:last-child) {
		margin-right: 15px;
	}
	.navwrap > ul > li:nth-last-child(-n+3) {
		margin-right: 10px;
	}
	.navwrap > ul > li a {
		font-size: 14px;
	}
	/* 
	 top
	----------------------------------------------------------- */
	.plans_list li .fee p span {
		padding: 0 5px;
	}
	/* 
	 rateplans
	----------------------------------------------------------- */
	.rateplans_read ul li {
		width: min(100%, 450px);
	}
	.rateplans_option::before {
		top: 80px;
	}
}
@media screen and (max-width: 1200px) {
	/* 
	 top
	----------------------------------------------------------- */
	.plans_list {
		grid-template-columns: repeat(3, 1fr);
	}
	.top_review ul li a {
		padding-bottom: 35px;
	}
	.top_service .inner > ul {
		grid-template-columns: repeat(3, 1fr);
	}
	.top_service .flex > h2 {
		width: 40%;
	}
	.top_service .flex > div {
		width: 55%;
	}
	/* 
	 footer
	----------------------------------------------------------- */
}
@media screen and (max-width: 1100px) {
	.pc1100 {
		display: none;
	}
	br.pc1100 {
		display: none;
	}
	.sp1100 {
		display: block;
	}
	br.sp1100 {
		display: inherit;
	}
	/* 
	 header
	----------------------------------------------------------- */
	.navwrap {
		height: 60px;
	}
	.navwrap ul {
		display: none;
	}
	/* 
	 top
	----------------------------------------------------------- */
	.top_thoughts {
		background-attachment: inherit;
	}
	.top_thoughts .flex .txt {
		width: 50%;
	}
	.top_thoughts .flex ul {
		width: 45%;
		max-width: none;
	}
	/* 
	 subpage共通
	----------------------------------------------------------- */
	/* 
	 member
	----------------------------------------------------------- */
	.member_wrap ul {
		grid-template-columns: repeat(2, 1fr);
	}
	/* 
	 service
	----------------------------------------------------------- */
	.service_approach .flex h3,
	.service_aisas .flex h3,
	.service_lineup .flex h3 {
		width: 100%;
	}
	.service_approach .flex p,
	.service_aisas .flex p,
	.service_lineup .flex p {
		width: 100%;
	}
	.service_approach ul li h4 {
		width: 100%;
		margin-bottom: 10px;
	}
	.service_approach ul li .txt {
		width: 100%;
	}
	.service_aisas ul {
		grid-template-columns: repeat(2, 1fr);
	}
	.service_aisas ul li:nth-child(3) {
		background-color: #DCFAF8;
	}
	.service_aisas ul li:nth-child(4) {
		background-color: #fff;
	}
	.service_lineup ul {
		grid-template-columns: repeat(2, 1fr);
	}
	/* 
	 rateplans
	----------------------------------------------------------- */
	.rateplans_read ul li {
		width: min(100%, 550px);
	}
	.rateplans_read ul li:not(:last-child) {
		margin-right: 0;
		margin-bottom: 15px;
	}
	.rateplans_option::before {
		top: 30px;
	}
	/* 
	 recruit
	----------------------------------------------------------- */
	.recruit_read p {
		text-align: justify;
	}
	.recruit_recruitment .blue_box p {
		text-align: justify;
	}
	/* 
	 company
	----------------------------------------------------------- */
	.company_profile .hyo {
		width: 100%;
		max-width: none;
	}
	/* 
	 news
	----------------------------------------------------------- */
	.news_list > li dd h3 {
		font-size: 18px;
	}
	.news_list > li dd p {
		margin-bottom: 15px;
	}
	.news_list > li dd .info {
		padding-top: 15px;
	}
	/* 
	 smartphone menu btn
	----------------------------------------------------------- */
	.navwrap {
		top: 10px;
	}
	.spnavbtn {
		top: 19px;
		right: 23px;
		padding: 10px 10px 5px 11px;
		display: block;
	}
	.nav-trigger {
		width: 30px;
	}
	/* 
	 footer
	----------------------------------------------------------- */
	.footer .contact {
		width: 100%;
		padding: clamp(30px, 4.9vw, 95px) 5%;
	}
	.footer .info {
		width: 100%;
		padding: clamp(50px, 6.8vw, 130px) 5% 10px;
	}
}
@media screen and (max-width:820px) {
	.pc {
		display: none;
	}
	br.pc {
		display: none;
	}
	.sp {
		display: block;
	}
	br.sp {
		display: inherit;
	}
	.flex-prev {
		display: none !important;
	}
	.flex-next {
		display: none !important;
	}
	body {
		font-size: 0.9rem;
	}
	/* 
	 top
	----------------------------------------------------------- */
	.fv,
	.fv_wrap {
		height: 50vh;
	}
	.fv_wrap {
		padding: 60px 5% 0;
	}
	.more_btn {
		width: min(100%, 350px);
		padding: 15px;
		font-size: 16px;
	}
	.more_btn::before {
		width: 35px;
		height: 35px;
	}
	.more_btn::after {
		width: 15px;
		height: 15px;
		right: 22px;
	}
	.top_production_list {
		grid-template-columns: repeat(2, 1fr);
	}
	.plans_list {
		grid-template-columns: repeat(2, 1fr);
	}
	.top_service .inner > ul {
		grid-template-columns: repeat(2, 1fr);
	}
	.top_review .ttl {
		width: 100%;
		margin-bottom: 30px;
	}
	.top_review ul {
		width: 100%;
	}
	.top_review .linkbox a {
		margin: 0 auto;
	}
	.top_service .flex > h2 {
		width: 100%;
	}
	.top_service .flex > div {
		width: 100%;
	}
	.top_thoughts .flex .txt {
		width: 100%;
		margin-bottom: 30px;
	}
	.top_thoughts .flex ul {
		width: 100%;
	}
	.top_thoughts .flex ul li a span {
		width: 35px;
		height: 35px;
	}
	.top_thoughts .flex ul li a span::before {
		width: 15px;
		height: 15px;
	}
	/* 
	 subpage共通
	----------------------------------------------------------- */
	.page_link a {
		font-size: 13px;
	}
	/* 
	 production
	----------------------------------------------------------- */
	.production_list {
		grid-template-columns: repeat(2, 1fr);
	}
	.cat_box .ttl {
		width: 100%;
		text-align: center;
		border-right: none;
		border-bottom: 1px solid #E2E2E2;
		padding-bottom: 5px;
		margin-bottom: 5px;
	}
	.cat_box .cat_list {
		width: 100%;
	}
	.cat_list li {
		font-size: 13px;
	}
	/* 
	 review
	----------------------------------------------------------- */
	.review_industry .side {
		width: 100%;
		position: inherit;
		margin-bottom: 40px;
	}
	.review_industry .contents {
		width: 100%;
	}
	.page_link {
		display: flex;
		flex-wrap: wrap;
	}
	.page_link li {
		margin-right: 10px;
	}
	/* 
	 service
	----------------------------------------------------------- */
	.service_approach ul li .txt .tag span {
		font-size: 15px;
	}
	/* 
	 recruit
	----------------------------------------------------------- */
	.recruitment_list li h3 {
		width: 100%;
		margin-bottom: 15px;
	}
	.recruitment_list li .txt {
		width: 100%;
	}
	/* 
	 contact
	----------------------------------------------------------- */
	.cont_list {
		margin-bottom: 30px;
	}
	.cont_list li {
		font-size: 0.9rem;
		padding: 5px;
		line-height: 25px;
	}
	.wpcf7 dl,
	.mw_wrap dl {
		width: 100%;
		display: block;
	}
	.wpcf7 dt,
	.mw_wrap dt {
		width: 100%;
	}
	.wpcf7 dd,
	.mw_wrap dd {
		width: 100%;
	}
	.mwform-tel-field input[type="text"],
	.mwform-zip-field input[type="text"] {
		display: inline-block;
		width: 26%;
	}
	.priva ul {
		font-size: 0.9rem;
	}
	.priva li p,
	.priva li h4 {
		font-size: 0.9rem !important;
	}
	/* 
	 news index-archives page
	----------------------------------------------------------- */
	.bcontwrap ul {
		grid-template-columns: repeat(2, 1fr);
	}
	/* news single page
	----------------------------------------------------------- */
	.l_cotent {
		width: 100%;
		margin: 0;
	}
	.sidebar {
		width: 100%;
		margin-top: 40px;
	}
	/* 
	 ページネーション
	----------------------------------------------------------- */
	.prev,
	.next {
		width: 100%;
		margin: 0 0 5px;
	}
	.next {
		float: right;
	}
	.single .nav-below {
		margin-top: 40px;
	}
	/* 
	 foot
	----------------------------------------------------------- */
	.footer_btn::before {
		width: 35px;
		height: 35px;
	}
	.footer_btn::after {
		width: 15px;
		height: 15px;
		right: 52px;
	}
}
@media screen and (max-width:640px) {
	.pc640 {
		display: none;
	}
	br.pc640 {
		display: none;
	}
	.sp640 {
		display: block;
	}
	br.sp640 {
		display: inherit;
	}
	.top_back {
		display: none;
	}
	.spnavbtn {
		top: 19px;
		right: 13px;
	}
	/* 
	 top
	----------------------------------------------------------- */
	.top_h2 span {
		font-size: 50px;
	}
	.top_production_list {
		grid-template-columns: repeat(1, 1fr);
	}
	.plans_list {
		grid-template-columns: repeat(1, 1fr);
	}
	.top_service .inner > ul {
		grid-template-columns: repeat(1, 1fr);
	}
	.top_review ul li .img {
		width: 80px;
		margin: 0 auto 10px;
	}
	.top_review ul li .txt {
		width: 100%;
	}
	.top_thoughts h2 span {
		font-size: 45px;
	}
	.top_service {
		padding: 50px 5%;
	}
	.top_service .inner {
		padding: 0px 20px 20px;
	}
	.top_rateplans .comp_txt {
		text-align: left;
	}
	/* 
	 subpage共通
	----------------------------------------------------------- */
	.sub_ttl {
		background-size: auto 66%;
	}
	.sub_h2 {
		display: block;
	}
	.sub_h2::before {
		top: 9px;
	}
	.hyo dl dt {
		width: 100%;
		padding: clamp(10px, 1.6vw, 30px) 10px;
	}
	.hyo dl dd {
		width: 100%;
	}
	.hyo dl dt {
		border-bottom: 1px solid #E2E2E2;
	}
	.hyo dl dd {
		border-bottom: 1px solid #222;
	}
	.hyo dl:first-child dd {
		border-top: none;
	}
	.hyo2 dl dt {
		width: 100%;
	}
	.hyo2 dl dd {
		width: 100%;
	}
	.contact_list ul {
		grid-template-columns: repeat(1, 1fr);
	}
	/* 
	 production
	----------------------------------------------------------- */
	.production_list {
		grid-template-columns: repeat(1, 1fr);
	}
	/* 
	 production_single
	----------------------------------------------------------- */
	.production_singlewrap .line_ttl {
		font-size: 18px;
	}
	/* 
	 member
	----------------------------------------------------------- */
	.member_wrap ul {
		grid-template-columns: repeat(1, 1fr);
	}
	/* 
	 service
	----------------------------------------------------------- */
	.service_read .inner > p {
		text-align: justify;
	}
	.service_aisas ul {
		grid-template-columns: repeat(1, 1fr);
	}
	.service_aisas ul li {
		background-color: #fff !important;
	}
	.service_aisas ul li:nth-child(even) {
		background-color: #DCFAF8 !important;
	}
	.service_lineup ul {
		grid-template-columns: repeat(1, 1fr);
	}
	/* 
	 rateplans
	----------------------------------------------------------- */
	.rateplans_read .inner > p {
		text-align: justify;
	}
	.rateplans_option .table table {
		width: 550px;
	}
	/* 
	 news
	----------------------------------------------------------- */
	.bcontwrap ul {
		grid-template-columns: repeat(1, 1fr);
	}
	.news_list > li dd h3 {
		font-size: 17px;
	}
	.news_list > li {
		padding: 15px;
	}
	.news_list > li dt {
		width: 100%;
		margin: 0 auto 15px;
	}
	.news_list > li dd {
		width: 100%;
	}
	.news_list > li dd p {
		margin-bottom: 10px;
	}
	.news_list > li dd .info {
		padding-top: 10px;
	}
	/* 
	 foot
	----------------------------------------------------------- */
	.footer .contact .tac {
		text-align: justify;
	}
	.footer_btn::before,
	.footer_btn::after {
		display: none;
	}
	.footer .info .flex ul {
		display: none;
	}
	.footer .info > .link_list > li:nth-child(1) {
		grid-column: 1/3;
		grid-row: 1/2;
	}
	.footer .info > .link_list > li:nth-child(2) {
		grid-column: 1/3;
		grid-row: 2/3;
	}
	.footer .info > .link_list > li:nth-child(3) {
		grid-column: 1/3;
		grid-row: 3/4;
	}
}