@charset "UTF-8";
/* ******************************************************************
 *	File name		: style.css
 * ******************************************************************
 */

:root {
	--spacing-1: 8px;
	--spacing-2: 16px;
	--spacing-3: 24px;
	--spacing-4: 32px;
	--spacing-6: 48px;
	--spacing-8: 64px;
	--spacing-10: 80px;
	--spacing-12: 96px;
	--spacing-14: 112px;
	--spacing-16: 128px;
	--spacing-20: 160px;
	
	--box-shadow-1: 8px 8px 10px rgba(0, 0, 0, 0.2);
	
	--color-body: #393E40;
/*	--color-primary: #D0251C;*/
/*	--color-secondary-1: #8D190B;*/
/*	--color-secondary-2: #6E1106; */
	--color-primary: #3366FF;
	--color-secondary-1: #66CCFF;
	--color-secondary-2: #9999FF;
	
	--color-white: #fff;
	--color-gray-l: #DAE2E6;
	--color-gray-d: #676F73;
	
	--font-size-btn: 1.3rem;
	--font-size-text-s: 1.3rem;
	--font-size-text-m: 1.6rem;
	--font-size-text-l: 1.8rem;
	--font-size-title-s: 2rem;
	--font-size-title-m: 2.4rem;
	--font-size-title-l: 3.2rem;
	--font-size-title-service-sp: 4.8rem;
	--font-size-title-service-pc: 8rem;
	
	--line-height-text-s: 2.7rem;
	--line-height-text-m: 3.2rem;
	
	--font-family-title: "toppan-bunkyu-midashi-go-std", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
	
	--background-arrow: url(../image/base/arrow.svg) no-repeat center;
}



html {
	font-size: 62.5%;
}
body {
	font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
	font-weight: 400;
	font-style: normal;
	font-size: var(--font-size-text-m);
	color: var(--color-body);
}
img {
	width: 100%;
	max-width: 100%;
	display: block;
}
a {
	color: var(--color-body);
	text-decoration: none;
	transition-duration: 0.2s;
}
a:hover {
	opacity: 0.8;
}
li {
	list-style: none;
}
*::selection {
    background: var(--color-primary);
	color: #fff;
}
.container {
	width: 100%;
	max-width: 1280px;
	margin: 0 auto;
}
main {
	margin-top: 130px;
}
.arrow {
	display: block;
	width: 32px;
	height: 32px;
	background-image: url("../image/base/arrow.svg");
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
}
.link {
	color: var(--color-gray-d);
	text-decoration: underline;
	word-wrap: break-word;
}
/* .box */
.box {
	margin-bottom: var(--spacing-6);
	line-height: 1.8;
}
.box:last-child {
	margin-bottom: 0;
}
.box h3 {
	margin-bottom: var(--spacing-1);
	border-bottom: 1px solid var(--color-gray-l);
	font-size: var(--font-size-title-s);
}
.box p {
	margin-bottom: var(--spacing-3);
}
.box_list {
	margin-top: var(--spacing-2);
}
.box_list li {
	margin-bottom: var(--spacing-1);
	padding: var(--spacing-2);
	background: #F2F5F6;
}
.box_list span {
	font-weight: bold;
}
.box_box {
	margin-top: var(--spacing-2);
	padding: var(--spacing-3);
	background: #F2F5F6;
}
.box_box p:first-child {
	margin-bottom: var(--spacing-1);
}

/* 文字のアニメーション */
.anime_title {
	display: inline-block;
	position: relative;
	overflow: hidden;
	z-index: 0;
}
.anime_title_rect {
	position: absolute;
	top: 0;
	left: 0;
	content: "";
	display: block;
	background: var(--color-primary);
	width: 100%;
	height: 100%;
	transform: translateX(-101%);
	z-index: 1;
}

/* -----------------------------------------------------------------
#work
----------------------------------------------------------------- */
#work {
	padding-bottom: var(--spacing-8);
	background-color: var(--color-gray-l);
	background-image: radial-gradient(#C3D2D9 15%, transparent 15%);
 	background-size: 10px 10px;
}
.work_container {
	position: relative;
	padding-top: var(--spacing-8);
	align-items: center;
	justify-items: center;

}
.work_title {
	position: absolute;
	top: -20px;
	width: 100%;
	font-size: var(--font-size-title-l);
	font-family: var(--font-family-title);
	line-height: 1.2;
	text-align: center;
}
.work_box_container {
	display: flex;
	margin-bottom: var(--spacing-3);
}
.work_box {
	position: relative;
	width: calc(100% / 3 - 16px);
	margin-right: 24px;
	padding: var(--spacing-3);
	border-top: 4px solid var(--color-primary);
	box-shadow: var(--box-shadow-1);
	background: #fff;
	transition: 0.2s;
}
.work_box:hover {
	opacity: 0.7!important;
}
.work_box:nth-child(3n) {
	margin-right: 0;
}
.work_box_text {
	margin-bottom: var(--spacing-1);
	font-size: var(--font-size-title-m);
	font-family: var(--font-family-title);
	text-align: center;
}
.work_box_list {
	height: 300px;
	padding-top: var(--spacing-1);
	overflow-y: scroll;
	overflow-x: hidden;
	border-top: 1px solid var(--color-gray-l);
	color: var(--color-gray-d);
	font-size: 1.4rem;
}
.work_box_list p{
	margin: 0 0 var(--spacing-1);
	font-size: var(--font-size-text-s);
	color: inherit;
}
.work_box_img {
	position: relative;
	height: 240px;
	box-shadow: var(--box-shadow-1);
	object-fit: cover;
}
.work_box::after {
	content: "";
	display: block;
	position: absolute;
	right: -16px;
	bottom: 47%;
	width: 32px;
	height: 32px;
/*	background: var(--background-arrow);*/
}
.work_client_list {
	padding: var(--spacing-4);
	border-top: 4px solid var(--color-primary);
	background: #fff;
	box-shadow: var(--box-shadow-1);
	line-height: 1.8;
	transition: 0.2s;
	text-align: center;

}
.work_client_list p {
	margin-bottom: var(--spacing-2);
	padding-bottom: var(--spacing-2);
	border-bottom: 1px solid var(--color-gray-l);
	
}
.work_client_list p:last-child {
	margin-bottom: 0;
	padding-bottom: 0;
	border: none;
}
.work_client_list::after {
	content: "";
	display: block;
	position: absolute;
	right: -16px;
	bottom: 47%;
	width: 32px;
	height: 32px;
/*	background: var(--background-arrow);*/
}
.work_client_list:hover {
	opacity: 0.7!important;
}

/* .work_sample */
.work_sample .work_box {
	width: calc(100% / 4 - 16px);
	padding: 0;
	border: none;
	box-shadow: var(--box-shadow-1);
	background: #fff;
}
.work_sample .work_box:nth-child(3n) {
	margin-right: 24px;
}
.work_sample .work_box:nth-child(4n) {
	margin-right: 0;
}
.work_sample .work_box::after {
	content: none;
}
.work_sample .work_box_img {
	height: 170px;
	box-shadow: none;
}
.work_box_description {
	padding: var(--spacing-2);
}
.work_box_text_title {
	margin-bottom: 16px;
	line-height: 1.5;
	font-weight: bold;
}
.work_box_text_title span {
	display: block;
	margin-top: 5px;
	color: var(--color-gray-d);
	font-size: var(--font-size-text-s);
}
.work_box_text_category {
	position: absolute;
	right: 16px;
	bottom: 8px;
	display: block;
	color: var(--color-gray-d);
	font-size: 1rem;
	text-align: right;
}
.work_sample_img-only {
	display: flex;
	flex-wrap: wrap;
	width: 100%;
}
.work_sample_img-only img {
	width: calc(100% / 3);
}

/* -----------------------------------------------------------------
#contact
----------------------------------------------------------------- */
#contact {
	padding: var(--spacing-14) 0;
	background-color: var(--color-body);
	color: #fff;

}
#contact .container {
	display: flex;
	justify-content: center;
}
.contact_text {
	text-align: center;
}
.contact_text_title {
	font-size: var(--font-size-title-l);
	line-height: 1.1;
	font-family: var(--font-family-title);
}
.contact_text::after {
	content: "";
	display: block;
	margin: var(--spacing-6) 0;
	border-top: 1px solid #fff;
}
.contact_text_text {
	margin-top: var(--spacing-2);
	text-align: left;
	font-size: var(--font-size-title-s);
}
.contact_contact {
	display: flex;
	justify-content: space-around;
	align-items: center;
}
.contact_contact_phone {
	font-size: var(--font-size-title-l);
	font-family: var(--font-family-title);
	letter-spacing: 2px;
}
.contact_contact_phone::before {
	content: url("../image/top/contact_phone.png");
	margin-right: var(--spacing-2);
}
.contact_contact_mail {
	display: flex;
	text-align: center;
	letter-spacing: 1px;
}
.contact_contact_mail::before {
/*	content: url("../image/top/contact_mail.png");*/
	margin-right: var(--spacing-2);
	padding-top: 4px;
}
.contact_contact_mail a {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 240px;
	padding: var(--spacing-2);
	margin-bottom: var(--spacing-1);
	border-radius: 50px;
	box-shadow: var(--box-shadow-1);
	background-color: var(--color-primary);
	color: #fff;
	transition: 0.2s;
}
.contact_contact_mail a:hover {
	background-color: var(--color-secondary-2);
}
.contact_contact_mail a::before {
/*	content: url("../image/top/contact_mail.png");*/
	margin-right: var(--spacing-2);
	padding-top: 4px;
}

/* -----------------------------------------------------------------
#footer
----------------------------------------------------------------- */
.footer_banner {
	display: flex;
	height: 96px;
	text-align: center;
	line-height: 96px;
}
.footer_banner a {
	position: relative;
	width: 100%;
	color: #fff;
	font-size: var(--font-size-text-l);
	font-family: var(--font-family-title);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	transition: 0.2s;
}
.footer_banner a::after {
	position: absolute;
	right: 32px;
	top: 32px;
	content: "";
	display: block;
	width: 32px;
	height: 32px;
	background: var(--background-arrow);
}
.footer_banner_company {
	background-image: url("../image/top/bg_company.jpg");
}
.footer_banner_tso {
	background-image: url("../image/top/bg_tokyo.jpg");
}
.footer_banner_access {
	background-image: url("../image/top/bg_access.jpg");
}
.footer_banner_recruit {
	background-image: url("../image/top/bg_recruit.jpg");
}
#footer .container {
	padding-top: var(--spacing-6);
	padding-bottom: var(--spacing-6);
}
.footer_container {
	display: flex;
	justify-content: space-between;
}
.footer_info_containar {
	width: 40%;
}
.footer_logo {
	width: 120px;
	margin-bottom: var(--spacing-4);
}
.footer_info_address {
	font-size: var(--font-size-text-s);
	margin-bottom: var(--spacing-4);
}
.footer_info_address span {
	font-weight: bold;
}
.footer_nav {
	width: 60%;
}
.footer_nav_container {
	display: flex;
	justify-content: space-between;
}
.footer_nav_group {
	margin-right: var(--spacing-3);
}
.footer_nav_group:last-child {
	margin-right: 0;
}
.footer_nav_l {
	display: block;
	margin-bottom: var(--spacing-2);
	font-weight: bold;
}
.footer_nav_s {
	display: block;
	margin-bottom: var(--spacing-2);
	color: var(--color-gray-d);
	font-size: var(--font-size-text-s);
}
.footer_nav_l:hover,.footer_nav_s:hover {
	color: var(--color-primary);
	opacity: 1;
}
.footer_copy {
	display: flex;
	justify-content: space-between;
	width: 100%;
	border-top: 1px solid var(--color-gray-l);
	padding-top: var(--spacing-4);
	color: var(--color-gray-d);
	font-size: var(--font-size-text-s);
}
.footer_copy a {
	text-decoration: underline;
}

/* -----------------------------------------------------------------
page
----------------------------------------------------------------- */
.page_content {
	margin-bottom: var(--spacing-10);
}

/* パンくずリスト */
.breadcrumb {
	margin-bottom: var(--spacing-2);
	font-size: var(--font-size-text-s);
}

/*page_title */
.page_title {
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
	height: 240px;
	margin-bottom: var(--spacing-10);
	background-image: url("../image/page/bg_service.jpg"), radial-gradient(#333 30%, transparent 30%);
	background-position: center;
	background-color: rgba(255,255,255,0.5);
	background-size: cover, 4px 4px;
	background-repeat: no-repeat;
}
#company .page_title {
	background-image: url("../image/top/bg_company.jpg");
}
#access .page_title {
	background-image: url("../image/top/bg_access.jpg");
}
#work_page .page_title {
	background-image: url("../image/page/bg_work.jpg")
}
#info .page_title {
	background-image: url("../image/page/bg_info.jpg")
}
#recruit .page_title {
	background-image: url("../image/top/bg_recruit.jpg")
}
#tso .page_title {
	background-image: url("../image/top/bg_tokyo.jpg")
}
#privacy .page_title {
	background-image: url("../image/top/bg_company.jpg")
}
.page_title h2 {
	z-index: 0;
	padding: 0 8%;
	color: #fff;
	font-size: 4.8rem;
	line-height: 1.2;
	font-family: var(--font-family-title);
	letter-spacing: 2px;
	text-align: center;
}
.page_title h2::after {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;
	width: 100%;
	height: 100%;
	background-color: rgba(0,0,0,0.5);
	background-image: radial-gradient(#333 30%, transparent 30%);
	background-size: 4px 4px;
}

/* page_nav */
.page_nav_list {
	display: flex;
	flex-wrap: wrap;
	padding: var(--spacing-6) 0 ;
}
.page_nav_list li {
	width: calc(25% - 12px);
	margin: 4px 16px 4px 0;
	border-left: 4px solid var(--color-primary);
	box-shadow: var(--box-shadow-1);
	background: #fff;
	font-size: var(--font-size-text-s);
}
.page_nav_list li:nth-child(4n) {
	margin-right: 0;
}
.page_nav_list li a {
	display: block;
	width: 100%;
	height: 100%;
	padding: 16px 0 16px 20px;
}
.page_nav_list li:hover {
	opacity: 0.6;
	transition-duration: 0.4s;
}

.content {
	margin-bottom: var(--spacing-16);
}

/* -----------------------------------------------------------------
top / main visual
----------------------------------------------------------------- */
.mv {
	margin-bottom: var(--spacing-4);
}
.mv_title {
	display: flex;
	margin-bottom: var(--spacing-6);
}
.mv_title_main {
	margin-right: var(--spacing-10);
}
.mv_title_sub {
	z-index: 1;
	margin-bottom: var(--spacing-3);
	font-family: var(--font-family-title);
	font-size: var(--font-size-title-s);
	line-height: 1.6;
	text-align: center;
}
.btn_university {
	display: block;
	width: 240px;
	padding: 20px;
	border-radius: 100px;
	background-color: var(--color-primary);
	color: var(--color-white);
	font-family: var(--font-family-title);
	text-align: center;
}
.mv_img {
	z-index: -1;
	position: relative;
	height: 480px;
}
.mv_img_arrow {
	position: absolute;
	top: -8vw;
	right: -3vw;
	width: 50vw;
	max-width: 720px;
}
.mv_img_movie {
	position: absolute;
	z-index: -9999;
	overflow: hidden;
	width: 100%;
	height: 480px;
	float: right;
}
.mv_img_movie video {
	position: absolute;
	top: 50%;
	left: 50%;
	min-width: 100%;
	min-height: 100%;
	transform: translate(-50%, -50%);
}
.mv_img_movie::after {
	content:'';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(255,255,255,0.5);
	background-image: radial-gradient(#333 30%, transparent 30%);
	background-size: 4px 4px;
	background-position: 0 0, 2px 2px;
}

/* -----------------------------------------------------------------
top / #info
----------------------------------------------------------------- */
#info {
	margin-bottom: var(--spacing-20);
}
#info h2 {
	margin-bottom: var(--spacing-1);
}
.info_box {
	display: flex;
	align-items: center;
	padding-bottom: var(--spacing-2);
	margin-bottom: var(--spacing-2);
	border-bottom: 1px solid var(--color-gray-l);
}
.info_box:last-child {
	margin-bottom: 0;
}
.info_box time {
	margin-right: var(--spacing-4);
	color: var(--color-gray-d);
	font-size: var(--font-size-text-s);
	font-weight: bold;
}

/* -----------------------------------------------------------------
service
----------------------------------------------------------------- */
#service {
	margin-bottom: var(--spacing-14);
}
.service_group_l, .service_group_m, .service_group_s {
	display: flex;
	color: var(--color-body);
	transition: 0.2s;
}
.service_group_l {
	justify-content: space-between;
	align-items: center;
	margin-bottom: var(--spacing-8);
}
.service_group_l:first-child {
	margin-bottom: var(--spacing-2);
}
.service_group_l .service_content {
	width: 40%;
}
.service_group_l img {
	z-index: -1000;
	max-width: 55%;
	height: 100%;
}
.service_title {
	position: relative;
	display: block;
	z-index: 1000;
	width: 100%;
	margin-bottom: var(--spacing-1);
	padding: 0 0 var(--spacing-2) 40px;
	border-bottom: solid 1px var(--color-gray-l);
	font-family: var(--font-family-title);
	font-feature-settings: "palt";
	letter-spacing: 1px;
	text-align:center;

}

.service_aboutus {
	color: var(--color-body);
	text-align: center;
	line-height: 1.4;
	margin: 0 auto var(--spacing-6);
	font-size: 2vw;
	font-family: var(--font-family-title);
	margin-top: var(--spacing-8);
}


.service_title:hover {
	color: var(--color-primary);
}
.service_title_flex {
	display: flex;
	justify-content: space-between;

}
.service_title_flex::before {
	content: "";
	position: absolute;
	display: block;
	left: 0;
	width: 16px;
	height: calc(100% - var(--spacing-2));
	background-color: var(--color-primary);
}
.service_title_flex_left {
	width: calc(100% - 40px);
}
.service_title_main {
	font-size: var(--font-size-title-l);
	line-height: 1;
}
.service_group_l .service_title_main {
	font-size: 8rem;
}
.service_title_sub {
	margin-top: var(--spacing-1);
	color: var(--color-gray-d);
	font-size: 2.4rem;
	line-height: 1.3;
}
.service_title_aboutus {
	font-size: var(--font-size-title-m);
	line-height: 1;
}

.service_list {
	display: flex;
	flex-wrap: wrap;
	list-style: none;
}
.service_list li {
	display: flex;
	align-items: center;
	width: calc(50% - 20px);
	margin-bottom: 0.5rem;
	font-size: 1.4rem;
}
.service_list li:nth-child(odd) {
	margin-right: 20px;
}
.service_list li::before {
	content: "";
	display: block;
	width: 3.2rem;
	height: 3.2rem;
	margin-top: -0.4rem;
	margin-right: var(--spacing-1);
	background-size: 9.6rem;
	background-repeat: no-repeat;
}
.service_web .service_list li::before {
	background-image: url("../image/top/icon_web.png");
}
.service_movie .service_list li::before {
	background-image: url("../image/top/icon_movie.png");
}
.service_graphic .service_list li::before {
	background-image: url("../image/top/icon_graphic.png");
}
.service_streaming .service_list li::before {
	background-image: url("../image/top/icon_streaming.png");
}
.service_list li:nth-child(2)::before {
	background-position: top center;
}
.service_list li:nth-child(3)::before {
	background-position: top right;
}
.service_list li:nth-child(4)::before {
	background-position: bottom left;
}
.service_list li:nth-child(5)::before {
	background-position: bottom center;
}
.service_list li:nth-child(6)::before {
	background-position: bottom right;
}
.service_group_container {
	display: flex;
	justify-content: space-between;
}
.service_group_m {
	flex-direction: column;
	width: calc(50% - 32px);
	margin-bottom: var(--spacing-10);
}
.service_group_m img {
	height: 240px;
	object-fit: cover;
}
.service_group_m .service_content {
	width: 100%;
	margin-top: var(--spacing-2);
}
.service_group_s img {
	width: 328px;
	height: 160px;
	object-fit: cover;
	margin-right: var(--spacing-4);
}

/* service_box */
.service_box_m_container {
	display: flex;
	justify-content: space-between;
	margin-bottom: var(--spacing-4);
}
.service_box_m {
	display: block;
	width: calc(50% - var(--spacing-2));
	box-shadow: var(--box-shadow-1);
	background-color: var(--color-white);
	transition: 0.2s;
}
.service_box_m_img {
	height: 240px;
	object-fit: cover;
}
.service_box_m_content {
	position: relative;
	margin: var(--spacing-4);
}
.service_box_m_title {
	font-size: var(--font-size-title-l);
	line-height: 1.2;
}
.service_box_m_text {
	max-width: 450px;
}

/* -----------------------------------------------------------------
top / #university
----------------------------------------------------------------- */
.university_main {
	padding: var(--spacing-8) 0 var(--spacing-4);
	background-color: var(--color-secondary-1);
	background-image: radial-gradient(var(--color-secondary-2) 15%, transparent 15%);
 	background-size: 10px 10px;
	margin-bottom: var(--spacing-10);

}
.university_main_title_1_container {
	width: 100%;
	margin-bottom: -1vw;
	overflow: hidden;
	color: var(--color-secondary-1);
	line-height: 1;
	font-family: var(--font-family-title);
	font-feature-settings: "palt";
	letter-spacing: 2px;
	text-align: center;
	white-space: nowrap;
}

.university_main_title_1 {
	font-size: 5vw;
}
.university_main_title_1_en {
	margin-bottom: 1rem;
	font-size: 2vw;
	text-align: center;
}
.university_main_title_2 {
	color: var(--color-white);
	text-align: center;
	line-height: 1.4;
	margin: 0 auto var(--spacing-6);
	font-size: 2vw;
	font-family: var(--font-family-title);
}
.university_main_title_2 span {
	font-size: var(--font-size-title-l);
	font-family: var(--font-family-title);
	font-size: 3vw;
}
.university_sub {
	padding: var(--spacing-10) 0;
	background-color: var(--color-secondary-2);
	color: var(--color-white);
	text-align: center;
}
.university_sub_title {
	font-size: var(--font-size-title-m);
	font-family: var(--font-family-title);
	margin-bottom: var(--spacing-4);
}
.university_sub_group_container {
	display: flex;
	justify-content: center;
	margin-bottom: var(--spacing-6);
}
.university_sub_group {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 280px;
	font-weight: bold;
}
.university_sub_group_img {
	width: 160px;
	margin-bottom: var(--spacing-1);
}
.service_box_s_container {
	display: flex;
	justify-content: space-between;
}
.university_title_anime {
	max-width: 1000px;
	margin: 0 auto var(--spacing-2);
}
.service_box_s {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: calc(100% /3 - var(--spacing-3));
	padding:  var(--spacing-3) var(--spacing-2);
	box-shadow: var(--box-shadow-1);
	background-color: #fff;
	transition: 0.2s;
}
.service_box_s p{
	position: relative;
	width: calc(100% - 32px);
	padding-left: var(--spacing-3);
	color: var(--color-body);
	font-size: var(--font-size-title-s);
	font-family: var(--font-family-title);
	line-height: 1.2;
	text-align: left;
}
.service_box_s p::before {
	content: "";
	position: absolute;
	display: block;
	top: 0;
	left: 0;
	width: 16px;
	height: 100%;
	background-color: var(--color-primary);
}



/* -----------------------------------------------------------------
top / #strength
----------------------------------------------------------------- */
#strength {
	padding: 0 0 var(--spacing-16);
	text-align: center;
}
.strength_title {
	font-size: var(--font-size-title-l);
	font-family: var(--font-family-title);
}
.strength_box_container {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	max-width: 1000px;
	margin: var(--spacing-6) auto 0;
}
.strength_box_container_inner {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	margin-bottom: var(--spacing-4);
}
.strength_box_container_inner:last-child {
	margin-bottom: none;
}
.strength_box {
	display: flex;
	flex-direction: column;
	align-items: center;
	font-weight: bold;
}
.strength_box_number {
	margin-bottom: var(--spacing-2);
	color: var(--color-primary);
	font-size: 50px;
	line-height: 1;
	font-family: var(--font-family-title);
}
.strength_box_img {
	margin-bottom: var(--spacing-2);
}
.strength_anime {
	max-width: 1000px;
	margin: 0 auto var(--spacing-2);
}




/* -----------------------------------------------------------------
service
----------------------------------------------------------------- */
/*page_title */
.page_service {
	display: flex;
	justify-content: flex-start;
	flex-direction: column;
	position: relative;
	height: auto;
	margin-bottom: var(--spacing-10);
}
#graphic .page_service,
#archive .page_service,
#elearning .page_service {
	margin-bottom: 0;
}
.page_service::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 800px;
	background-image: url("../image/page/service_web.jpg");
	background-position: center top;
	background-color: var(--color-primary);
	background-size: cover;
	background-repeat: no-repeat;
}
.page_service::after {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 800px;
	background-image: radial-gradient(#333 30%, transparent 30%);
	background-size: 4px 4px;
	background-color: rgba(208,37,28,0.8);
}
#archive .page_service::before, #archive .page_service::after {
	height: 600px;
}
#movie .page_service::before  {
	background-image: url("../image/page/service_movie.jpg");
}
#graphic .page_service::before  {
	background-image: url("../image/page/service_graphic.jpg");
}
#streaming .page_service::before  {
	background-image: url("../image/page/service_streaming.jpg");
}
#archive .page_service::before  {
	background-image: url("../image/page/service_archive.jpg");
}
#elearning .page_service::before  {
	background-image: url("../image/page/service_elearning.jpg");
}
#symposium .page_service::before  {
	background-image: url("../image/page/service_symposium.jpg");
}
.page_service_container {
	z-index: 1;
	margin-top: var(--spacing-10);
}
.page_service_container h2 {
	margin-bottom: var(--spacing-6);
	color: #fff;
	font-size: 4.8rem;
	font-family: var(--font-family-title);
	line-height: 1.2;
	text-align: center;
	letter-spacing: 2px;
}
.page_title_service {
	max-width: 800px;
}
.page_title_service_l {
	width: 100%;
	margin-bottom: var(--spacing-2);
	text-align: center;
}
.page_title_service_l span {
	display: inline-block;
	width: 100%;
	margin-bottom: 8px;
	padding: 0 16px;
	background: #fff;
	color: var(--color-primary);
	font-size: var(--font-size-title-m);
	font-family: var(--font-family-title);
}
.page_title_service_s {
	margin-bottom: var(--spacing-8);
	color: #fff;
}
.page_service_list_outer {
	z-index: 1;
	max-width: 1280px;
	margin: 0 auto;
	padding: var(--spacing-4);
	border-radius: 24px;
	background: #fff;
}
.page_service_list_inner {
	display: flex;
	flex-wrap: wrap;
}
.page_service_list_box {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	width: calc(100% / 3);
	padding: var(--spacing-2) var(--spacing-1) var(--spacing-3);
	border-right: 1px solid var(--color-gray-l);
	border-bottom: 1px solid var(--color-gray-l);
	color: var(--color-body);
	text-align: center;
}
.page_service_list_box:nth-child(3n) {
	border-right: none;
}
.page_service_list_box:nth-last-child(3),.page_service_list_box:nth-last-child(2),.page_service_list_box:nth-last-child(1) {
	border-bottom: none;
}
.page_service_list_box strong {
	font-size: var(--font-size-text-l);
	line-height: 1.2;
}
.page_service_list_icon {
	width: 112px;
	height: 112px;
	margin: 0 auto;
}

/* -----------------------------------------------------------------
company
----------------------------------------------------------------- */
.company_list_container {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
.company_list {
	width: calc(50% - 12px);
	height: 84px;
	margin-bottom: var(--spacing-3);
	padding: 0 24px;
	border-left: 4px solid var(--color-primary);
	box-shadow: var(--box-shadow-1);
	background-color: #fff;
	font-size: var(--font-size-title-s);
	font-family: var(--font-family-title);
}
.company_list a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	line-height: 84px;
}
.company_concept {
	margin-bottom: var(--spacing-8);
	text-align: center;
	line-height: 2;
}
.company_concept_title {
	margin-bottom: var(--spacing-3);
	color: var(--color-primary);
	font-size: var(--font-size-title-l);
	line-height: 1.5;
	font-family: var(--font-family-title);
}

/* -----------------------------------------------------------------
company / outline
----------------------------------------------------------------- */
.outline {
	max-width: 1000px;
}
.outline dl {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	margin-bottom: var(--spacing-8);
	border-top: 4px solid var(--color-gray-l);
}
.outline dt {
	width: 20%;
	padding: var(--spacing-3) 0;
	border-bottom: 1px solid var(--color-gray-l);
	color: var(--color-gray-d);
	font-weight: bold;
}
.outline dd {
	width: 80%;
	padding: var(--spacing-3) 0 var(--spacing-3) 16px;
	border-bottom: 1px solid var(--color-gray-l);
}
.outline dd p:first-of-type {
	margin-bottom: 24px;
}
.map_link a {
	margin-left: 16px;
	padding: 4px 8px;
	border-radius: 4px;
	background-color: var(--color-gray-l);
	color: var(--color-gray-d);
	font-size: 1rem;
	text-decoration: underline;
}

/* -----------------------------------------------------------------
company / philosophy
----------------------------------------------------------------- */
.philosophy {
	display: flex;
}
.philosophy_title {
	width: 20%;
	padding-right: 24px;
	border-right: 1px solid var(--color-gray-l);
	font-size: var(--font-size-title-s);
	font-family: var(--font-family-title);
}
.philosophy_text {
	width: 80%;
	padding-left: 24px;
	line-height: 1.8;
}
.philosophy_text p {
	margin-bottom: var(--spacing-4);
}
.philosophy_text p:last-child {
	margin-bottom: 0;
}
.philosophy_text img {
	max-width: 500px;
}

/* -----------------------------------------------------------------
company / history
----------------------------------------------------------------- */
.history {
	max-width: 1000px;
	padding-left: var(--spacing-8);
	border-left: 4px solid var(--color-gray-l);
}
.history table {
	border-collapse: collapse;
}
.history th {
	width: 100px;
	border-bottom: 1px solid var(--color-gray-l);
	text-align: left;
}
.history .month {
	width: 64px;
	text-align: right;
}
.history td {
	padding: var(--spacing-2) 0 var(--spacing-2) var(--spacing-3);
	border-bottom: 1px solid var(--color-gray-l);
}

/* -----------------------------------------------------------------
company / access
----------------------------------------------------------------- */
.map {
	width: 100%;
	height: 500px;
}

/* -----------------------------------------------------------------
work
----------------------------------------------------------------- */
#work_page .work_container {
	position: inherit;
	margin-bottom: var(--spacing-4);
}
#work_page .work_container:last-child {
	margin-bottom: 0;
}
#work_page .work_title {
	display: block;
	position: inherit;
	margin-bottom: var(--spacing-3);
}
#work_page .work_client_list {
	margin-bottom: var(--spacing-8);
}
#work_page .work_client_list:hover {
	opacity: 1 !important;
}
#work_page .work_client_list::after {
	content: none;
}

/* -----------------------------------------------------------------
recruit
----------------------------------------------------------------- */
.email {
	float: left;
	width: 20px;
	margin-top: 4px;
	margin-right: 8px;
}

/* -----------------------------------------------------------------
tso
----------------------------------------------------------------- */
#tso .content img {
	width: auto;
}
#tso .tso_container {
	position:relative;
	margin:30px 0 0;
	padding:0px !important;
	font-size: var(--font-size-title-l);
	font-family: var(--font-family-title);
	text-align:left;
}
.tso_img {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	margin-bottom: var(--spacing-2);
	padding: var(--spacing-2);
	background: var(--color-primary);
	background-image: url("../image/page/tso_img_bg.jpg");
	background-repeat: no-repeat;
	background-size: cover
}
.tso_img img {
	margin: 0 var(--spacing-1) var(--spacing-1) 0;
}
.tso_img img:last-child {
	margin-bottom: 0;
}
.tso_float {
	float: left;
	margin-right: var(--spacing-3);
}
.tso_float_text {
	padding-top: 10px;
}
#tso .box h3 {
	position: relative;
	margin-left: 4px;
	padding:0 0 4px 32px;
	border-bottom: 3px solid var(--color-primary);
	line-height:1.35;
}
#tso .box h3::before {
	content: "";
	position: absolute;
	left: 0;
	bottom: -3px;
	width: 20px;
	height: 14px;
	margin-left: -4px;
	clip-path: polygon(100% 0, 100% 100%, 0 100%);
	background: var(--color-primary);
}
#tso .box_box h3 {
	margin-bottom: var(--spacing-1);
	padding-left: 0;
	border-bottom: 1px solid var(--color-gray-l);
	font-size: var(--font-size-title-s);
}
#tso .box_box h3::before {
	content: none;
}

/* -----------------------------------------------------------------
privacy
----------------------------------------------------------------- */
#privacy .content ol{
	padding-left: var(--spacing-4);
	line-height: 1.2;
}
#privacy .content ol li {
	padding: 0;
	list-style: upper-roman;
}