@charset "UTF-8";

/*
@media ( max-width: 767px ){
　スマホレイアウト、VW指定
}
@media ( min-width: 768px ){
　タブレット・PC（1140px）レイアウト
　min(1.5385vw, 20px)　⇒　min(タブレット、PC）
}
*/

/* =Reset
-------------------------------------------------------------- */
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;word-wrap:break-word;overflow-wrap:break-word;}
article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section {display: block;}
table{border-collapse:collapse;border-spacing:0;}
fieldset,img{border:0;}
address,caption,cite,code,dfn,em,th,var{font-style:normal;font-weight:normal;}
li{list-style:none;}
caption,th{text-align:left;}
h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:inherit;}
q:before,q:after{content:'';}
abbr,acronym{border:0;font-variant:normal;}
sup{vertical-align:super;}
sub{vertical-align:text-bottom;}
input,textarea,select,button{font-family:inherit;font-size:inherit;font-weight:inherit;}
legend{color:#000;}
img {vertical-align:top;}
input[type="radio"],input[type="checkbox"] {vertical-align: -2px;}
label {cursor: pointer;}


/* =Common
-------------------------------------------------------------- */
body {
	text-align: center;
	line-height: 1;
	-webkit-text-size-adjust: 100%;
}
img {
	max-width: 100%;
	height: auto;
}
input[type="submit"], input[type="reset"] {
	appearance: none;
	cursor: pointer;
}
@font-face {
	font-family: 'Noto Sans JP';
	src: local(''), url('font/NotoSansJP.woff2') format('woff2');
	font-weight: 100 900;
	font-style: normal;
	font-display: swap;
}
.tt-commons-pro {
	font-family: "tt-commons-pro", sans-serif;
	font-weight: 600;
	font-style: normal;
}
.toppan-bunkyu-gothic {
	font-family: toppan-bunkyu-gothic-pr6n, serif;
	font-weight: 400;
	font-style: normal;
}
.toppan-bunkyu-midashi {
	font-family: toppan-bunkyu-midashi-go-std, sans-serif;
	font-weight: 900;
	font-style: normal;
}

/* =Styles 
-------------------------------------------------------------- */
body {
	font-family: toppan-bunkyu-gothic-pr6n, serif;
	font-weight: 400;
	color: var(--navy);
	background: #f0f0f0;
}
a {
	text-decoration: none;
	color: var(--navy);
}
@media ( min-width: 1060px ){
	.sptab {
		display: none !important;
	}
}
@media ( min-width: 768px ){
	body {
		font-size: min(1.4035vw, 16px);
	}
	.sp {
		display: none !important;
	}
	.inner {
		max-width: 1140px;
		padding: 0 min(4vw, 70px);
		margin: 0 auto;
	}
	a[href*="tel:"] {
		pointer-events: none;
		cursor: default;
		text-decoration: none;
	}
}
@media ( max-width: 767px ){
	body {
		font-size: 3.9801vw;
	}
	.pc,
	.pctab {
		display: none !important;
	}
	.inner {
		padding: 0 4.9751vw;
	}
}

:root {
	--navy: #3965A4;
}

/* header */
.header .menu ul {
	text-align: left;
	font-weight: 700;
}
.header .menu ul li a {
	font-family: "tt-commons-pro", sans-serif;
	font-weight: 600;
	color: transparent;
	background: linear-gradient(to right, #eb5872 50%, var(--navy) 50%) 100%;
	background-clip: text;
	background-size: 200% 100%;
	transition: background-position 0.3s;
}
.header .menu ul li a:hover {
	background-position: 0 100%;
}
.fixed-header {
	width: 100%;
	position: fixed;
	left: 0;
	transition: all 0.3s ease-in-out;
	visibility: hidden;
	z-index: 998;
}
.fixed-header .inner {
	box-sizing: border-box;
	display: flex;
	justify-content: space-between;
	align-items: center;
	position: relative;
}
.fixed-header.is-show {
	top: 0;
	visibility: visible;
}
.menu-trigger {
	position: relative;
	border-radius: 50%;
	background-color: var(--navy);
	cursor: pointer;
	transition: transform 0.3s ease;
	z-index: 998;
}
.menu-trigger::before {
	content: "";
	position: absolute;
	inset: 0; /* top, right, bottom, left を0に */
	border-radius: 50%;
	background-color: var(--navy);
	transition: transform 0.3s ease;
	z-index: -1;
}
@media (hover: hover) {
	.menu-trigger:hover::before {
		transform: scale(1.6);
	}
}

.menu-trigger .bar {
	position: absolute;
	background-color: #fff;
	transform: translate(-50%, -50%) scale(0);
	transition: transform 0.3s ease;
	transform-origin: center;
	opacity: 0;
}
.menu-trigger .bar1 {
	transform: translate(-50%, -50%) rotate(45deg) scale(0);
}
.menu-trigger .bar2 {
	transform: translate(-50%, -50%) rotate(-45deg) scale(0);
}
.menu-trigger.active .bar {
	opacity: 1;
}	
.menu-trigger.active .bar1 {
	transform: translate(-50%, -50%) rotate(45deg) scale(1);
}	
.menu-trigger.active .bar2 {
	transform: translate(-50%, -50%) rotate(-45deg) scale(1);
}	
.sp_menu {
	display: none;
	position: fixed;
	width: 100%;
	height: 100vh;
	z-index: 995;
	background: var(--navy);
	top: 0;
	left: 0;
}
.sp_menu .gnav_sp {
	display: block;
}
.sp_menu .gnav_sp ul li {
	opacity: 0;
	transition: opacity 0.4s ease;
}
.sp_menu .gnav_sp ul li a {
	font-family: "tt-commons-pro", sans-serif;
	font-weight: 600;
	display: block;
	letter-spacing: 0.1em;
	color: #fff;
	opacity: 1;
	transition: opacity 0.3s ease-in-out;
}
@media (hover: hover) {
	.sp_menu .gnav_sp ul li a:hover {
		opacity: 0.3;
	}
}

@media ( min-width: 768px ){
	/* header */
	.header .inner {
		box-sizing: border-box;
		display: flex;
		justify-content: space-between;
		max-width: 100%;
		padding: min(3.5088vw, 40px);
	}
	.header .inner .menu-trigger {
		display: none;
	}
	.header .menu {
		display: flex;
		justify-content: space-between;
		width: 260px;
	}
	.header .menu ul {
		font-size: 12px;
		line-height: 2;
	}
	.fixed-header {
		top: -80px;
	}
	.fixed-header .inner {
		max-width: 100%;
		height: 80px;
		padding: min(3.5088vw, 40px);
	}
	.menu-trigger {
		width: 15px;
		height: 15px;
	}
	.menu-trigger .bar {
		width: 30px;
		height: 2px;
		top: 10px;
	}
	.sp_menu .gnav_sp {
		padding: 15vh 0 0;
	}
	.sp_menu .gnav_sp ul li a {
		display: inline-block;
		font-size: 30px;
		line-height: 2.2;
	}
}
@media ( max-width: 767px ){
	/* header */
	.header {
		position: fixed;
		width: 100%;
		background-color: rgba(240, 240, 240, 0.7);
		z-index: 996;
	}	
	.fixed .header {
		background-color: rgba(240, 240, 240, 0);
	}	
	.header .inner {
		padding: 4.9751vw 4.9751vw;
	}
	.header .logo {
		width: 43.0896vw;
		margin: 0 auto;
	}
	.header .inner .menu-trigger {
		position: absolute;
		right: 4.9751vw;
		top: 4.9751vw;
	}
	.header .menu {
		display: none;
	}
	.fixed-header {
		display: none;
	}
	.menu-trigger {
		width: 2.9851vw;
		height: 2.9851vw;
	}
	.menu-trigger .bar {
		width: 7.4627vw;
		height: 0.4975vw;
		top: 2vw;
	}
	.sp_menu .gnav_sp {
		padding: 20vh 0 0;
	}
	.sp_menu .gnav_sp ul li a {
		font-size: 7.4627vw;
		line-height: 2.2;
	}
}

/* fv */
body #fv {
	cursor: none;
}
#cursor{
	display: none;
	position: fixed;
	z-index: 996;
	pointer-events: none;
}
.fv .content {
	font-feature-settings: "palt";
}
.fv .content .text_box .title {
	font-family: toppan-bunkyu-midashi-go-std, sans-serif;
	font-weight: 900;
	line-height: 1.5;
	white-space: nowrap;
}
.fv .content .text_box p {
	font-family: "tt-commons-pro", sans-serif;
	font-weight: 600;
	line-height: 1.4;
}
#fv .title span,
#fv .text_box p,
#fv .img_box {
	opacity: 0;
}

/* common */
.fade-in {
	opacity: 0;
	transform: translateY(60px);
	transition: all 0.6s ease-out;
}
.fade-in.inview {
	opacity: 1;
	transform: translateY(0);
}
.js-fadeUp {
	opacity: 0;
	transform: translateY(60px);
	transition: opacity .4s, transform .4s;
}
.js-fadeUp.v2 {
	transform: translateY(30px);
}
.js-fadeUp.is-inview {
	opacity: 1;
	transform: translateY(0);
	transition-delay: .4s;
}
.js-fadeUp.v3 {
	transform: translateY(30px);
	transition: opacity .8s, transform .8s;
}
.js-fadeUp.v3.is-inview {
	transform: translateY(0);
	transition-delay: 0.3s;
}
.sec_title {
	font-family: toppan-bunkyu-midashi-go-std, sans-serif;
	font-weight: 900;
	line-height: 1.3;
	text-align: left;
}
.fv .content .text_box p {
	letter-spacing: 0.05em;
}
.sec_title span {
	font-family: "tt-commons-pro", sans-serif;
	font-weight: 600;
	display: block;
	letter-spacing: 0.08em;
}

@media ( min-width: 768px ){
	/* fv */
	.fv .content {
		display: flex;
		flex-direction: row-reverse;
		justify-content: space-between;
		align-items: center;
		padding: min(3.5088vw, 10px) 0 min(12.2807vw, 140px);
	}
	.fv .content .img_box {
		width: min(505px, 44.2982vw);
		max-height: 75vh;
	}
	.fv .content .img_box img {
		width: 100%;
		height: 100%;
		object-fit: contain;
	}
	.fv .content .text_box .title {
		font-size: min(3.5088vw, 40px);
		margin: 0 0 min(2.6316vw, 30px);
	}
	.fv .content .text_box p {
		font-size: min(1.2281vw, 14px);
	}
	/* common */
	.sec_title {
		font-size: min(4.2105vw, 48px);
		margin: 0 0 min(5.2632vw, 60px);
	}
	.sec_title span {
		font-size: 12px;
		margin: 0 0 min(1.7544vw, 20px);
	}	
}
@media ( max-width: 767px ){
	/* fv */
	.fv .content {
		padding: 18.4577vw 0 30vw;
	}
	.fv .content .img_box {
		width: 74.3781vw;
		margin: 0 auto 8.4577vw;
	}
	.fv .content .text_box .title {
		font-size: 6.2189vw;
		margin: 0 0 4.9751vw;
	}
	.fv .content .text_box p {
		font-size: 2.9851vw;
	}
	/* common */
	.sec_title {
		font-size: 8.9552vw;
		margin: 0 0 12.4378vw;
	}
	.sec_title span {
		font-size: 2.9851vw;
		margin: 0 0 2.9751vw;
	}
}

/* about */
.about {
	position: relative;
	padding: min(26.3158vw, 300px) 0;
	color: #fff;
}
.about::before,
.about::after {
	content: "";
	width: 100%;
	height: min(26.3158vw, 300px);
	position: absolute;
	left: 0;
	z-index: 2;
}
.about::before {
	background: linear-gradient(
		to bottom,
		#f0f0f0 0%,
		transparent 100%
	);	
	top: 0;
}
.about::after {
	background: linear-gradient(
		to bottom,
		transparent 0%,
		#f0f0f0 100%
	);	
	bottom: 0;
}
.about .sec_in {
	position: relative;
}
.about .sec_in::before {
	content: '';
	position: absolute;
	inset: 0;
	background: url("img/about_bg.svg") no-repeat center 0 / cover;
	opacity: 0;
	transition: opacity 3s ease;
	z-index: 0;
	width: 100%;
	height: calc(100% + min(52.4561vw, 598px));
	top: 50%;
	transform: translateY(-50%);
}
.about.inview .sec_in::before {
	opacity: 1;
}
.about .sec_title {
	font-size: min(4.0351vw, 46px);
}
.about .description {
	max-width: 600px;
	line-height: 1.9;
	text-align: left;
}
.about .stats {
	position: relative;
	padding: 0 0 min(7.0175vw, 80px);
}
.about .stats .stats_in {
	display: flex;
	justify-content: center;
	margin: -20px 0 18px;
}
.about .stats .stats_in .stat {
	position: relative;
	width: min(32.193vw, 367px);
	height: min(32.193vw, 367px);
	background: url("img/stat_bg.png") no-repeat center / contain;
	margin: 0 -10px;
}
.about .stat .text_box {
	position: absolute;
	width: 100%;
	top: 50%;
	left: 50%;
	transform: translateY(-50%) translateX(-50%);
}
.about .stat .text_box .text1 {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.18em;
	margin: 0 0 10px;
}
.about .stat .text_box .text2 {
	font-size: 18px;
	font-weight: 600;
	letter-spacing: 0.18em;
	margin: 0 0 25px;
}
.about .stat .text_box .text3 {
	font-family: "tt-commons-pro", sans-serif;
	font-weight: 600;
	font-size: 20px;
	margin: 0 0 25px;
}
.about .stat .text_box .text3.num {
	font-size: min(4.386vw, 50px);
}
.about .stat .text_box .text3 span {
	font-size: min(7.5439vw, 75px);
	font-weight: 600;
}
.about .stat .text_box .text4 {
	font-size: min(1.2281vw, 14px);
	font-weight: 500;
}
.about .stats .reference {
	font-size: 10px;
	position: absolute;
	left: 50%;
}
.about .summary {
	text-align: left;
	line-height: 1.9;
	padding: 0 0 0 50%;
	margin: 0 0 10px;
}
.about .tbl_wrap {
	display: flex;
	flex-direction: row-reverse;
	padding: 0 min(3vw, 70px) 0 0;
	margin: 0 0 min(9.6491vw, 110px);
}
.about .tbl_wrap .tbl {
	width: min(59.1228vw, 674px);
}
.about .tbl table {
	width: 100%;
	margin: 0 0 12px;
	border-collapse:separate;
	border-spacing:0 1px;
}
.about .tbl table tr {
	margin: 1px 0 0;
}
.about .tbl table thead tr:nth-child(1) {
	background: url("img/tbl_bg_01.png") no-repeat bottom center / cover;
}
.about .tbl table tr:nth-child(1) {
	background: url("img/tbl_bg_02.png") no-repeat bottom center / cover;
}
.about .tbl table tr:nth-child(2) {
	background: url("img/tbl_bg_03.png") no-repeat bottom center / cover;
}
.about .tbl table tr:nth-child(3) {
	background: url("img/tbl_bg_04.png") no-repeat bottom center / cover;
}
.about .tbl table tr:nth-child(4) {
	background: url("img/tbl_bg_05.png") no-repeat bottom center / cover;
}
.about .tbl table tr:nth-child(5) {
	background: url("img/tbl_bg_06.png") no-repeat bottom center / cover;
}
.about .tbl table th {
	text-align: center;
	font-size: min(1.2281vw, 14px);
	padding: min(1.9737vw, 22.5px) 0;
}
.about .tbl table td {
	color: #ccc;
	font-size: min(1.2281vw, 14px);
	padding: min(1.9737vw, 22.5px) 0;
}
.about .tbl table .top td {
	color: #fff;
	font-size: min(1.4035vw, 16px);
}
.about .tbl table .top td.num {
	font-size: min(1.5789vw, 18px);
}
.about .tbl .reference {
	text-align: left;
	letter-spacing: 0.1em;
	font-size: 10px;
}
.about .stat .text_box .text4 {
	letter-spacing: 0.05em;
}
.about .conclusion {
	text-align: left;
	line-height: 1.9;
	max-width: 570px;
}
.about .conclusion .emphasis {
	font-family: toppan-bunkyu-midashi-go-std, sans-serif;
	font-weight: 900;
	font-size: min(3.3333vw, 38px);
	line-height: 1.5;
	margin: min(2.6316vw, 30px) 0 0;
}

@media ( max-width: 767px ){
	/* about */
	.about {
		padding: 37.3134vw 0 37.3134vw;
	}
	.about::before,
	.about::after {
		height: 37.3134vw;
	}
	.about .sec_in::before {
		background: url("img/about_bg_sp.png") no-repeat center 0 / cover;
		height: calc(100% + 72vw);
	}
	.about .description {
		max-width: none;
		margin: 0 0 7.4627vw;
	}
	.about .sec_title {
		font-size: 8.9vw;
	}
	.about .stats {
		padding: 0 0 17.4129vw;
	}
	.about .stats .stats_in {
		margin: 0 0 3.7313vw;
	}
	.about .stats .stats_in .stat {
		width: 46.7662vw;
		height: 46.7662vw;
		margin: 0 -1.4925vw;
	}
	.about .stat .text_box {
		position: absolute;
		width: 100%;
		top: 50%;
		left: 50%;
		transform: translateY(-50%) translateX(-50%);
	}
	.about .stat .text_box .text1 {
		font-size: 2.9851vw;
		margin: 0 0 2.4876vw;
	}
	.about .stat .text_box .text2 {
		font-size: 3.9801vw;
		margin: 0 0 3.7313vw;
	}
	.about .stat .text_box .text3 {
		font-size: 2.9851vw;
		margin: 0 0 3.7313vw;
	}
	.about .stat .text_box .text3.num {
		font-size: 6.4677vw;
	}
	.about .stat .text_box .text3 span {
		font-size: 9vw;
	}
	.about .stat .text_box .text4 {
		font-size: 2.4876vw;
		line-height: 1.5;
	}
	.about .stats .reference {
		font-size: 2.4876vw;
		position: relative;
		left: 0;
	}
	.about .summary {
		padding: 0;
		margin: 0 0 7.4627vw;
	}
	.about .tbl_wrap {
		display: block;
		padding: 0;
		margin: 0 0 19.9005vw;
	}
	.about .tbl_wrap .tbl {
		width: 100%;
	}
	.about .tbl table {
		margin: 0 0 3.7313vw;
	}
	.about .tbl table th {
		font-size: 2.4876vw;
		line-height: 1.3;
		padding: 3.4826vw 0;
	}
	.about .tbl table td {
		font-size: 2.4876vw;
		padding: 2.9851vw 0;
	}
	.about .tbl table .top td {
		font-size: 2.9851vw;
		padding: 2.9851vw 0;
	}
	.about .tbl table .top td.num {
		font-size: 3.4826vw;
	}
	.about .tbl .reference {
		text-align: right;
		font-size: 2.4876vw;
		line-height: 1.8;
	}
	.about .conclusion {
		line-height: 1.9;
		max-width: 570px;
	}
	.about .conclusion .emphasis {
		font-size: 6.2189vw;
		margin: 6.4677vw 0 0;
		font-feature-settings: "palt";
	}
}

/* business */
.business .projects {
	text-align: left;
}
.business .project .title {
	font-family: toppan-bunkyu-midashi-go-std, sans-serif;
	font-weight: 900;
	margin: 0 0 1em;
}
.business .project .title .num {
	display: inline-block;
	font-family: "tt-commons-pro", sans-serif;
	font-weight: 600;
}
.business .project p {
	line-height: 1.9;
}
@media ( min-width: 768px ){
	/* business */
	.business {
		padding: min(15.7895vw, 180px) 0 min(13.1579vw, 150px);
	}
	.business .sec_in {
		position: relative;
		display: flex;
		flex-direction: row-reverse;
		justify-content: space-between;
		gap: 0 min(4.386vw, 50px);
		align-items: flex-start;
	}
	.business .img_box {
		top: 0; 
		position: sticky;
		flex: 0 0 min(41.0526vw, 468px);
		width: min(41.0526vw, 468px);
		height: min(41.0526vw, 468px);
	}
	.business .img_box::before {
		content: "";
		background: url("img/business_img01.png") no-repeat 0 0 / contain;
		width: min(41.0526vw, 468px);
		height: min(41.0526vw, 468px);
		position: absolute;
		top: 0;
		left: 0;
		z-index: -1;
	}
	.business .project:not(:last-child) {
		margin: 0 0 min(3.5088vw, 40px);
	}
	.business .project .title {
		font-size: min(2.4561vw, 28px);
	}
	.business .project .title .num {
		font-size: min(4.2105vw, 48px);
		margin: 0 min(0.8772vw, 10px) 0 0;
	}
}
@media ( max-width: 767px ){
	/* business */
	.business {
		padding: 12.4378vw 0 37.3134vw;
	}
	.business .sec_title {
		text-align: left;
	}
	.business .project:not(:last-child) {
		margin: 0 0 12.4378vw;
	}
	.business .project .title {
		font-size: 6.9652vw;
		margin: 0 0 0.5em;
	}
	.business .project .title .num {
		font-size: 9.4527vw;
		margin: 0 2.4876vw 0 0;
	}
	.business .img_box {
		position: relative;
		width: 100%;
		height: 90.0498vw;
		margin: 0 0 12.4378vw;
	}
	.business .img_box::before {
		content: "";
		background: url("img/business_img01_sp.png") no-repeat 0 0 / contain;
		width: 100%;
		height: 90.0498vw;
		position: absolute;
		top: 0;
		left: 0;
	}
}

/* values */
.values .column {
	text-align: left;
}
.values .column dt {
	font-family: toppan-bunkyu-midashi-go-std, sans-serif;
	font-weight: 900;
	line-height: 1.3;
}
.values .column dd p {
	line-height: 1.9;
}

@media ( min-width: 768px ){
	.values {
		padding: 0 0 min(11.4035vw, 130px);
	}
	.values .columns {
		display: flex;
		justify-content: space-between;
	}
	.values .column {
		width: 31%;
	}
	.values .column dt {
		font-size: min(2.4561vw, 28px);
		margin: 0 0 min(1.7544vw, 20px);
	}
	.values .column dd .img_box {
		margin: 0 0 min(1.7544vw, 20px);
	}
}
@media ( max-width: 767px ){
	.values {
		padding: 0 0 37.3134vw;
	}
	.values .sec_title {
		font-size: 7.954vw;
	}
	.values .column:not(:last-child) {
		margin: 0 0 14.9254vw;
	}
	.values .column dt {
		font-size: 6.9652vw;
		margin: 0 0 6.9652vw;
	}
	.values .column dd .img_box {
		margin: 0 0 6.9652vw;
	}
}

/* works */
.works a.banner {
	background: #fff;
	overflow: hidden;
	display: flex;
	align-items: center;
	cursor: pointer;
}
.works a.banner .sec_title {
	text-align: center;
}
.works a.banner .arrow {
	display: inline-block;
	font-weight: 900;
	position: relative;
}
.works a.banner .arrow::after {
    content: "";
    background: url(img/arw01.svg) no-repeat center center / contain;
    position: absolute;
    top: 50%;
    transform: translateY(-50%) scale(1);
    transform-origin: center center;
    transition: transform 0.3s ease;	
}
.works a.banner:hover .arrow::after {
	transform: translateY(-50%) scale(1.2);
}.works a.banner .img_box {
    transition: 0.3s ease;	
}
.works a.banner:hover .img_box {
	opacity: 0.7;
}

/* modal */
.modal {
    display: none;
    height: 100vh;
    position: fixed;
    width: 100%;
    top: 0;
    left: 0;
    z-index: 998;
}
.modal-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: #f0f0f0;
	background-size: cover;
    z-index: 998;
}
.modal__content {
	position: absolute;
	width: 100%;
	z-index: 999;
	height: 100vh;
	box-sizing: border-box;
	-webkit-overflow-scrolling: touch;
	bottom: -100px;
	opacity: 0;
	transition:
		bottom 0.6s cubic-bezier(0.25, 1, 0.5, 1),
		opacity 0.6s ease;
}
.modal.is-active .modal__content {
	bottom: 0;
	opacity: 1;
}
.modal__content .container {
    overflow-y: scroll;
    -webkit-overflow-scrolling: touch;
	height: 100vh;
	box-sizing: border-box;
}
.content_wrap .work_content {
	display: none;
	opacity: 0;
    transition: opacity .3s;
}
.content_wrap .work_content.show {
	display: block;
	opacity: 1;
}
.container .fix_close_btn {
	max-width: 100%;
	position: relative;
	display: flex;
	flex-direction: row-reverse;
}
.container .fix_close_btn a.js-modal-close {
	position: fixed;
	display: inline-block;
	background: url("img/btn_close.svg") no-repeat 0 0 / contain;
	cursor: pointer;
	z-index: 2;
	transition: transform 0.3s ease;
	transform-origin: center;
}
.container .fix_close_btn a.js-modal-close:hover {
	transform: scale(1.2);
}
.works .top_box {
	max-width: 800px;
	margin: 0 auto;
	text-align: left;
}
.works .top_box .work_title {
	font-family: toppan-bunkyu-midashi-go-std, sans-serif;
	font-weight: 900;
}
.works .top_box .tab_wrap {
	display: flex;
	align-items: center;
	border-top: 1px solid #DDDDDD;
	border-bottom: 1px solid #DDDDDD;
}
.works .top_box .tab_wrap .tab {
	flex: 1;
	align-items: center;
	box-sizing: border-box;
	position: relative;
}
.works .top_box .tab_wrap .tab::after {
	content: "";
	background: #DDDDDD;
	width: 1px;
	position: absolute;
	top: 50%;
	right: 0;
	transform: translateY(-50%);
}
.works .top_box .tab_wrap .tab:last-child::after {
	display: none;
}
.works .top_box .tab_wrap .tab .tab_in {
	display: flex;
	align-items: center;
	box-sizing: border-box;
	background: transparent;
	transition: 0.3s;
	cursor: pointer;	
}
.works .top_box .tab_wrap .tab.active .tab_in,
.works .top_box .tab_wrap .tab:hover .tab_in {
	background: var(--navy);
}
.works .top_box .tab_wrap .tab.active .text_box,
.works .top_box .tab_wrap .tab:hover .text_box {
	color: #fff;
}
.works .top_box .tab_wrap .tab .text_box span {
	display: block;
}
.works .top_box .tab_wrap .tab .text_box .name {
	font-family: toppan-bunkyu-midashi-go-std, sans-serif;
	font-weight: 900;
}
.works .work_content .sec_in {
	max-width: 800px;
	margin: 0 auto;
	text-align: left;
}
.work_content .sec_in .title {
	font-family: toppan-bunkyu-midashi-go-std, sans-serif;
	font-weight: 900;
}
.work_content .sec_in .case span {
	display: inline-block;
}
.work_content .sec_in .case span:nth-child(2) {
	border-left: 1px solid #CFCFCF;
	border-right: 1px solid #CFCFCF;
}
.work_content .interview {
	line-height: 2;
	letter-spacing: 0.05em;
	font-feature-settings: "palt";
}
.work_content .interview dt {
	font-family: toppan-bunkyu-midashi-go-std, sans-serif;
	font-weight: 900;
}
.work_content .workplace > dt {
	font-family: toppan-bunkyu-midashi-go-std, sans-serif;
	font-weight: 900;
	display: inline-block;
	color: #fff;
	background: var(--navy);
	position: relative;
}
.work_content .workplace > dt::after {
	content: "";
	background: var(--navy);
	clip-path: polygon(100% 0, 0 0, 50% 100%);
	position: absolute;
}
.work_content .workplace > dd {
	border-top: 1px solid #D9D9D9;
	border-bottom: 1px solid #D9D9D9;
}
.work_content .workplace .store_information {
	line-height: 1.9;
}
.work_content .workplace .store_information .name {
	font-family: toppan-bunkyu-midashi-go-std, sans-serif;
	font-weight: 900;
}
.work_content .workplace .store_information a {
	text-decoration: underline;
}
@media (hover: hover) {
	.work_content .workplace .store_information a:hover {
		text-decoration: none;
	}
}
.work_content .workplace .store_information .detail dl {
	display: flex;
}
.work_content .share dt {
	font-family: toppan-bunkyu-midashi-go-std, sans-serif;
	font-weight: 900;
}
.work_content .share dd a {
	display: inline-block;
	transition-duration: .3s;
}
@media ( min-width: 768px ){
	/* works */
	.works {
		padding: 0 0 min(13.1579vw, 150px);
	}
	.works a.banner {
		border-radius: min(1.4035vw, 16px);
	}
	.works a.banner .img_box {
		flex: 0 0 min(47.5439vw, 542px);
	}
	.works a.banner .text_box {
		padding: 0 0 0 min(5.8947vw, 100px);
	}
	.works a.banner .sec_title {
		margin: 0 0 min(3.9474vw, 45px);
	}
	.works a.banner .arrow::after {
		width: min(3.5088vw, 40px);
		height: min(3.5088vw, 40px);	
		right: max(-4.386vw, -50px);
	}
	
	/* modal */
	.container .fix_close_btn a.js-modal-close {
		width: min(3.5088vw, 40px);
		height: min(3.5088vw, 40px);
		top: min(1.7544vw, 20px);
		right: min(1.7544vw, 20px);
	}
	.works .top_box {
		padding: min(5.2632vw, 60px) 0 0;
	}
	.works .top_box .work_title {
		font-size: min(2.4561vw, 28px);
		margin: 0 0 min(3.5088vw, 40px);
	}
	.works .top_box .tab_wrap {
		padding: min(0.8772vw, 10px) 0;
	}
	.works .top_box .tab_wrap .tab {
		padding: 0 min(0.8772vw, 10px);
	}
	.works .top_box .tab_wrap .tab::after {
		height: min(3.5088vw, 40px);
	}
	.works .top_box .tab_wrap .tab .tab_in {
		border-radius: min(0.7018vw, 8px);
		padding: min(0.8772vw, 10px) min(1.7544vw, 20px);
	}
	.works .top_box .tab_wrap .tab .icon {
		flex: 0 0 min(4.386vw, 50px);
	}
	.works .top_box .tab_wrap .tab .text_box {
		padding: 0 0 0 min(0.8772vw, 10px);
	}
	.works .top_box .tab_wrap .tab .text_box .name {
		font-size: min(1.2281vw, 14px);
		margin: 0 0 min(0.614vw, 7px);
	}
	.works .top_box .tab_wrap .tab .text_box .cat {
		font-size: min(0.8772vw, 10px);
	}
	.work_content .sec_in .main_img {
		margin: 0 0 min(4.386vw, 50px);
	}
	.work_content .sec_in .title {
		font-size: min(2.4561vw, 28px);
		margin: 0 0 min(2.2807vw, 26px);
	}
	.work_content .sec_in .case {
		font-size: min(1.0526vw, 12px);
		margin: 0 0 min(3.1579vw, 36px);
	}
	.work_content .sec_in .case span:nth-child(2) {
		padding: 0 min(0.7895vw, 9px);
		margin: 0 min(0.7895vw, 9px);
	}
	.work_content .interview {
		margin: 0 0 min(4.386vw, 50px);
	}
	.work_content .interview dd {
		display: flex;
		justify-content: space-between;
		gap: 0 min(3.1579vw, 36px);
		margin: 0 0 min(3.5088vw, 40px);
	}
	.work_content .interview dd .img_box {
		flex: 0 0 min(33.3333vw, 380px);
		margin: min(0.7018vw, 8px) 0 0;
	}
	.work_content .workplace {
		margin: 0 0 min(2.6316vw, 30px);
		margin: 0 0 min(11.4035vw, 130px);
	}
	.work_content .workplace > dt {
		font-size: min(1.2281vw, 14px);
		padding: 10px 20px;
		margin: 0 0 -5px;
	}
	.work_content .workplace > dt::after {
		width: 12px;
		height: 9px;
		bottom: -8px;
		left: 15px;
	}
	.work_content .workplace > dd {
		display: flex;
		justify-content: flex-start;
		align-items: center;
		gap: 0 min(1.7544vw, 20px);
		padding: min(1.7544vw, 20px) 0;
	}
	.work_content .workplace .img_box {
		flex: 0 0 min(20.1754vw, 230px);
	}
	.work_content .workplace .store_information p,
	.work_content .workplace .store_information .detail {
		font-size: min(1.0526vw, 12px);
	}
	.work_content .workplace .store_information .detail dl dt {
		width: min(5.614vw, 64px);
	}
	.work_content .share {
		margin: 0 0 min(11.4035vw, 130px);
	}
	.work_content .share dt {
		font-size: min(1.5789vw, 18px);
		margin: 0 0 min(2.4561vw, 28px);
	}
	.work_content .share dd a {
		width: min(5.2632vw, 60px);
		height: min(5.2632vw, 60px);
	}
	.work_content .share dd a:not(:last-child) {
		margin: 0 min(1.7544vw, 20px) 0 0;
	}
	.work_content .share dd a.fb {
		background: url("img/icon_fb.svg") no-repeat 0 0 / min(5.2632vw, 60px) auto;
	}
	.work_content .share dd a.fb:hover {
		background: url("img/icon_fb_on.svg") no-repeat 0 0 / min(5.2632vw, 60px) auto;
	}
	.work_content .share dd a.pr {
		background: url("img/icon_pr.svg") no-repeat 0 0 / min(5.2632vw, 60px) auto;
	}
	.work_content .share dd a.pr:hover {
		background: url("img/icon_pr_on.svg") no-repeat 0 0 / min(5.2632vw, 60px) auto;
	}
	.work_content .share dd a.x {
		background: url("img/icon_x.svg") no-repeat 0 0 / min(5.2632vw, 60px) auto;
	}
	.work_content .share dd a.x:hover {
		background: url("img/icon_x_on.svg") no-repeat 0 0 / min(5.2632vw, 60px) auto;
	}
}
@media ( max-width: 767px ){
	/* works */
	.works {
		padding: 0 0 37.3134vw;
	}
	.works a.banner {
		border-radius: 4.9751vw;
		flex-direction: column;
	}
	.works a.banner .text_box {
		padding: 9.9502vw 0 13.6816vw;
	}
	.works a.banner .sec_title {
		margin: 0 0 6.9502vw;
	}
	.works a.banner .arrow {
		font-size: 3.2338vw;
		padding: 0 12.4378vw 0 0;
	}
	.works a.banner .arrow::after {
		width: 9.9502vw;
		height: 9.9502vw;	
		right: 0;
	}
	
	/* modal */
	.container .fix_close_btn a.js-modal-close {
		width: 9.9502vw;
		height: 9.9502vw;
		top: 4.9751vw;
		right: 4.9751vw;
	}
	.works .top_box {
		padding: 7.4627vw 0 0;
	}
	.works .top_box .work_title {
		font-size: 6.9652vw;
		margin: 0 0 7.4627vw;
	}
	.works .top_box .tab_wrap {
		padding: 2.4876vw 0;
	}
	.works .top_box .tab_wrap .tab .tab_in {
		flex-direction: column;
	}
	.works .top_box .tab_wrap {
		padding: 2.4876vw 0;
	}
	.works .top_box .tab_wrap .tab:not(:last-child) {
		padding: 0 2.4876vw 0 0;
		margin: 0 2.4876vw 0 0;
	}
	.works .top_box .tab_wrap .tab::after {
		height: 100%;
	}
	.works .top_box .tab_wrap .tab .tab_in {
		border-radius: 2.4876vw;
		padding: 2.4876vw 4.9751vw;
	}
	.works .top_box .tab_wrap .tab .icon {
		width: 9.9502vw;
	}
	.works .top_box .tab_wrap .tab .text_box {
		padding: 2.4876vw 0 0;
	}
	.works .top_box .tab_wrap .tab .text_box .name {
		font-size: 2.9851vw;
		margin: 0 0 1.7413vw;
	}
	.works .top_box .tab_wrap .tab .text_box .cat {
		font-size: 2.4876vw;
	}
	.work_content .sec_in .main_img {
		margin: 0 -4.9751vw 7.4627vw;
	}
	.work_content .sec_in .title {
		font-size: 6.9652vw;
		margin: 0 0 4.9751vw;
		line-height: 1.3;
	}
	.work_content .sec_in .case {
		font-size: 2.9851vw;
		margin: 0 0 8.9552vw;
	}
	.work_content .sec_in .case span:nth-child(2) {
		padding: 0 2.2388vw;
		margin: 0 2.2388vw;
	}
	.work_content .interview {
		margin: 0 0 12.4378vw;
	}
	.work_content .interview dt {
		margin: 0 0 0.5em;
	}
	.work_content .interview dd {
		margin: 0 0 12.4378vw;
	}
	.work_content .interview dd .img_box {
		margin: 3.7313vw 0 0;
	}
	.work_content .workplace {
		margin: 0 0 9.9502vw;
		margin: 0 0 12.4378vw;
	}
	.work_content .workplace > dt {
		font-size: 3.4826vw;
		padding: 10px 20px;
		margin: 0 0 -5px;
	}
	.work_content .workplace > dt::after {
		width: 12px;
		height: 9px;
		bottom: -8px;
		left: 15px;
	}
	.work_content .workplace > dd {
		padding: 7.4627vw 0;
	}
	.work_content .workplace .img_box {
		margin: 0 0 4.9751vw;
	}
	.work_content .workplace .store_information p,
	.work_content .workplace .store_information .detail {
		font-size: 2.9851vw;
	}
	.work_content .workplace .store_information .detail dl dt {
		flex: 0 0 16.6667vw;
	}
	.work_content .workplace .store_information .detail dl dd {
		word-wrap: break-word;
		overflow-wrap: break-word;
		min-width: 0;
	}
	.work_content .share {
		margin: 0 0 12.4378vw;
	}
	.work_content .share dt {
		font-size: 4.4776vw;
		margin: 0 0 6.9652vw;
	}
	.work_content .share dd a {
		width: 12.4378vw;
		height: 12.4378vw;
	}
	.work_content .share dd a:not(:last-child) {
		margin: 0 4.9751vw 0 0;
	}
	.work_content .share dd a.fb {
		background: url("img/icon_fb.svg") no-repeat 0 0 / 12.4378vw auto;
	}
	.work_content .share dd a.fb:hover {
		background: url("img/icon_fb_on.svg") no-repeat 0 0 / 12.4378vw auto;
	}
	.work_content .share dd a.pr {
		background: url("img/icon_pr.svg") no-repeat 0 0 / 12.4378vw auto;
	}
	.work_content .share dd a.pr:hover {
		background: url("img/icon_pr_on.svg") no-repeat 0 0 / 12.4378vw auto;
	}
	.work_content .share dd a.x {
		background: url("img/icon_x.svg") no-repeat 0 0 / 12.4378vw auto;
	}
	.work_content .share dd a.x:hover {
		background: url("img/icon_x_on.svg") no-repeat 0 0 / 12.4378vw auto;
	}
}

/* company */
.company .dl_wrap {
	text-align: left;
}
.company .dl_wrap dl dt {
	font-weight: 700;
}
.company .dl_wrap dl dd {
	line-height: 1.6;
}
.company .dl_wrap dl:last-child dd {
	line-height: 2.2;
}
.company .dl_wrap dl dd span {
	display: inline-block;
	margin: 0 0 0 1em;
}
.company .dl_wrap dl dd .map_link {
	display: inline-block;
}
.company .dl_wrap dl dd .map_link:hover {
	text-decoration: underline;
}
.company .dl_wrap dl dd .company_link {
	display: inline-block;
	text-decoration: underline;
	transition-duration: .3s;
	position: relative;
}
.company .dl_wrap dl dd .company_link::after {
	content: "";
	background: url("img/arw02.svg") no-repeat 0 0 / contain;
	position: absolute;
	right: 0;
	top: 50%;
	transform: scale(1) translateY(-50%);
	transition: transform 0.3s ease;
}
.company .dl_wrap dl dd .company_link:hover::after {
	transform: scale(1.3) translateY(-50%);
}
@media ( min-width: 768px ){
	/* company */
	.company {
		padding: 0 0 min(13.3333vw, 152px);
	}
	.company .sec_in {
		display: flex;
		justify-content: space-between;
	}
	.company .dl_wrap {
		width: min(65.5263vw, 747px);
	}
	.company .dl_wrap dl {
		font-family: 'Noto Sans JP', sans-serif;
		display: flex;
		align-items: center;
		border-bottom: 1px solid #ddd;
		padding: min(1.9737vw, 22.5px) 0;
	}
	.company .dl_wrap dl dt {
		width: min(17.0175vw, 194px);
	}
	.company .dl_wrap dl dd span {
		font-size: 10px;
	}
	.company .dl_wrap dl dd .map_link {
		padding: 0 20px 0 0;
		background: url("img/icon_map.svg") no-repeat 100% center / 12px auto;
	}
	.company .dl_wrap dl dd .company_link {
		padding: 0 min(2.193vw, 25px) 0 0;
	}
	.company .dl_wrap dl dd .company_link::after {
		width: min(1.7544vw, 20px);
		height: min(1.7544vw, 20px);
	}
}
@media ( max-width: 767px ){
	/* company */
	.company {
		padding: 0 0 24.8756vw;
	}
	.company .sec_title {
        margin: 0 0 4vw;
	}
	.company .dl_wrap dl {
		padding: 5.4726vw 0;
	}
	.company .dl_wrap dl:not(:last-child) {
		border-bottom: 1px solid #ddd;
	}
	.company .dl_wrap dl dt {
		margin: 0 0 2.4876vw;
	}
	.company .dl_wrap dl dd span {
		font-size: 2.7363vw;
	}
	.company .dl_wrap dl dd .map_link {
		padding: 0 4.9751vw 0 0;
		background: url("img/icon_map.svg") no-repeat 100% center / 2.9851vw auto;
	}
	.company .dl_wrap dl dd .company_link {
		padding: 1.2438vw 6.2189vw 1.2438vw 0;
	}
	.company .dl_wrap dl dd .company_link::after {
		width: 4.9751vw;
		height: 4.9751vw;
	}
}

/* contact */
.contact a.card {
	display: block;
	transition: background-color 0.3s ease;
}
.contact p {
	text-align: left;
}
.contact p .ja {
	font-family: toppan-bunkyu-midashi-go-std, sans-serif;
	font-weight: 900;
	position: relative;
}
.contact p .en {
	font-family: "tt-commons-pro", sans-serif;
	font-weight: 600;
	display: block;
	letter-spacing: 0.05em;
}
.contact a.card:hover {
	background: var(--navy);
}
.contact a.card:hover p {
	color: #fff;
}
.footer {
	font-family: 'Noto Sans JP', sans-serif;
}
@media ( min-width: 768px ){
	/* contact */
	.contact {
		padding: 0 0 min(4.386vw, 50px);
	}
	.contact a.card {
		background: #fff url("img/contact_bg.png") no-repeat 0 center / cover;
		padding: min(9.2982vw, 106px) min(5.0877vw, 58px);
		border-radius: min(1.7544vw, 20px);
	}
	.contact p .ja {
		font-size: min(4.2105vw, 48px);
	}
	.contact p .en {
		font-size: min(1.7544vw, 20px);
		margin: 0 0 min(1.7544vw, 20px);
	}
	/* footer */
	.footer {
		padding: 20px 0;
	}
	.footer .copy {
		font-size: 10px;
	}
}
@media ( max-width: 767px ){
	/* contact */
	.contact {
		padding: 0 0 12.4378vw;
	}
	.contact a.card {
		background: #fff url("img/contact_bg_sp.png") no-repeat 0 center / cover;
		padding: 19.403vw 2vw 19.403vw 4.9751vw;
		border-radius: 4.9751vw;
	}
	.contact p .ja {
		font-size: 5.7214vw;
	}
	.contact p .en {
		font-size: 2.9851vw;
		margin: 0 0 3.7313vw;
	}
	/* footer */
	.footer {
		padding: 4.9751vw 0;
	}
	.footer .copy {
		font-size: 2.4876vw;
	}
}


