@charset "utf-8";
#MainVisual{
	position: sticky;
	width: 100%;
	height: 100vh;
	min-height: 100vh;
	top: 0;
	left: 0;
	right: 0;
	font-feature-settings: "palt";
}
#MainVisual #backgroundSlide{
	position: absolute;
	top: 0px;
	left: 0px;
	width: 100%;
	height: 100%;
}
#MainVisual #backgroundSlide:after{
	content: "";
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	position: absolute;
	display: block;
	background-color: transparent;
	background-image: linear-gradient(#2c3ca0, #202538);
	opacity: 0.7;
}
#MainVisual .message {
	position: absolute;
	/*top: 0;*/
	bottom: 0;
	left: 0px;
	width: 100%;
	height: 100%;
	/*transform: translate(0,-50%);*/
	padding: 2vw;
	color: #FFF;
	text-align: center;
	display: flex;
	align-items: flex-end;
	flex-wrap: wrap;
	
	animation: fadeOut 1s linear both;
	animation-timeline: view();
	animation-range: contain 0% cover 100%;
}
#MainVisual .message h2 {
	color: #FFF;
	font-size: 7vw;
	font-weight: 700;
	line-height: 1.3em;
	letter-spacing: 0.1em;
	font-feature-settings: "palt";
	font-style: normal;
	position: relative;
	display: inline-block;
	text-align: left;
	opacity: 0;
}
#MainVisual .message.show h2{
	opacity: 1;
}
#MainVisual .message h2 span{
	display:inline-block;
	opacity:0;
	transform:translateY(30px);
}

#MainVisual .message.show h2 span{
	animation:textIn .7s cubic-bezier(.25,.8,.25,1) forwards;
	animation-delay:5s;
}


#MainVisual .message p{
	font-size: 2vw;
	line-height: 1.5em;
	letter-spacing: 0.24em;
	position: absolute;
	font-feature-settings: "palt";
	text-align: left;
	top: 50%;
	left: 2vw;
	transform: translate(0,-50%);
	opacity: 0;
	filter: blur(8px);
	
}
#MainVisual .message.show p{
	animation: catchFocus 1s ease forwards;
}
#MainVisual .message p:after{
	content: "";
	height: 2px;
	width: 0;
	background: #cc2a3e;
	display: block;
	margin-top: 1em;
	max-width: calc(100vw - 4vw);
}

#MainVisual .message.show p:after{
	animation: lineGrow .8s ease forwards;
	animation-delay: .6s;
}
.vegas-animation-kenburns {
    animation: kenburns linear;
}

@keyframes kenburns {
    0% {
        transform: scale(1.1);
    }
    100% {
        transform: scale(1);
    }
}



#messages {
	/*backdrop-filter:blur(10px);*/
	position: relative;

}
#messages:before{
	content: "";
	background-color: #c5cdff77;
	height: 100vh;
	width: 100%;
	display: block;
	animation: scrollBigY 1s linear both;
	animation-timeline: view();
	transform-origin: bottom center;
	animation-range: cover 0% cover 100%;
	backdrop-filter:blur(10px);	
}
@keyframes scrollBigY {
    0% {
        transform: scaleY(0);
    }
    100% {
        transform: scaleY(1);
    }
}

#messages .rightBox {
	background-color:hsla(227,26%,17%,0.64);
background-image:
radial-gradient(at 95% 67%, hsla(231,56%,40%,0.58) 0px, transparent 50%),
radial-gradient(at 53% 1%, hsla(231,56%,40%,0.68) 0px, transparent 50%),
radial-gradient(at 40% 20%, hsla(228,55%,21%,0.87) 0px, transparent 50%),
radial-gradient(at 0% 0%, hsla(231,56%,40%,1) 0px, transparent 50%);
	width: 100%;
	min-height: 50vh;
	color: #FFF;
	text-align: center;
	padding-top: 25vh;
	padding-bottom: 25vh;
	backdrop-filter:blur(20px);
}
#messages .rightBox:before{
	content: "";
	width: 25vw;
	height: 50%;
	position: absolute;
	background: url("../../img/pic001.jpg?20260323");
	background-position: center center;
	background-repeat: no-repeat;
	background-size: cover;
	left: 0;
	top:40%;
	transform: translate(0,-50%);
	
	border-radius: 0.2em;
	
	animation: photoMove 1s linear both;
	animation-timeline: view();
	animation-range: entry 0% exit 120%;
}
#messages .rightBox:after{
	content: "";
	width: 20vw;
	height: 20vw;
	position: absolute;
	background: url("../../img/pic014.jpg?20260522");
	background-position: center center;
	background-repeat: no-repeat;
	background-size: cover;
	right: 0;
	top:50%;
	transform: translate(0,-50%);
	border-radius: 0.2em;
	
	animation: photoMove2 1s linear both;
	animation-timeline: view();
	animation-range: entry 0% exit 120%;
	animation-direction: reverse;
}

#messages .rightBox .leftJustified{
	width: 90%;
	max-width: calc(90% - 45vw);
	margin: 0 auto;
	text-align: left;
	padding-left: 5vw
}
#messages .rightBox .leftJustified p span{
	display: inline-block;
}
#messages .rightBox h2 {
	font-size: 2.5vw;
	font-weight: 900;
	line-height: 2.5em;
	letter-spacing: 0.12em;
	font-feature-settings: "palt";
	font-style: normal;
	margin-bottom: 1em;
}
#messages .rightBox h2:after{
	content: "";
	width: 6em;
	height: 2px;
	background: #cc2a3e;
	display: block;
	margin-left: 0;
	margin-right: auto;
}
#messages .rightBox .big{
	font-size: 1.4em;
}
#messages .rightBox .message {
	font-size: 1.1em;
	font-weight: 400;
	line-height: 3em;
	letter-spacing: 0.04em;
	font-style: normal;
	font-weight: 300;
}

.engH2{
	font-size: 5em;
	color: #202538;
	font-weight: 700;
	position: relative;
}

.w920{
	max-width: 920px;
	margin-right: auto;
	margin-left: auto;
}
#ourWork{
	padding-bottom: 7em;
	padding-top: 5em;
	background-image: url("../../img/pic001.jpg?20260323");
	background-position: right center;
	background-size: cover;
	background-repeat: no-repeat;
	position: relative;
	text-align: center;
	background-attachment: fixed;
}
#ourWork:before{
	content: "";
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	/*background-image: linear-gradient(270deg, rgba(250, 250, 250, 0.95) 0%, rgb(250, 250, 250) 72%);*/
	background: #5c5d65DD;
	z-index: 1;
}
#ourWork *{
	z-index: 2;
	position: relative;
}
#ourWork .engH2{
	color: #FFFFFFF0;text-align: left;
}
h2.redLineH2 {
	font-size: 2.5em;
	letter-spacing: 0.16em;
	text-align: left;
	padding-bottom: 1em;
	font-feature-settings: "palt";
	position: relative;
	z-index: 2;
	font-weight: 700;
	width: 100%;
	color: #FFF;
}

h2.redLineH2:before{
	content: "";
    width: calc((100vw - 920px) / 2);
    height: 2px;
    display: block;
    position: absolute;
    left: 0;
    bottom: 0px;
    background-color: #cc2a3e;
	transform: translate(-100%,0);
}
h2.redLineH2:after{
	content: "";
    width: 4.5em;
    height: 2px;
    display: block;
    position: absolute;
    left: 0;
    bottom: 0px;
    background-color: #cc2a3e;
}
h2.redLineH2.js-anime:before{
	transform: translate(-100%,0) scaleX(0);
	transition: all 2s ease-in 0s;
	transform-origin: left center;
}
h2.redLineH2.js-anime:after{
	transition: all 1.5s ease-out 2s;
	transform: scaleX(0);
	transform-origin: left center;
}
h2.redLineH2.show:before{
	transform: translate(-100%,0) scaleX(1);
}
h2.redLineH2.show:after{
	transform: scaleX(1);
}

#ourWork{
	text-align: left;
}
#ourWork .message{
	color: #FFF;
	font-size: 1.8em;
	font-weight: 500;
	padding-top: 1em;
	letter-spacing: 0.1em;
}
#ourWork .buttons{
	display: flex;
	gap: 2em;
	margin: 0;
	padding: 2em 0;
	list-style: none;
}

#ourWork .buttons li{
	flex: 1;
}

#ourWork .buttons a{
	display: flex;
	flex-direction: column;
	height: 100%;
	box-sizing: border-box;
	border: 1px solid rgba(255,255,255,0.82);
	border-radius: 0.2em;
	background: rgba(255,255,255,0.82);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	text-decoration: none;
	color: #333;
	overflow: hidden;
	box-shadow:
		0 0.3em 1em rgba(0,0,0,0.08),
		inset 0 1px 0 rgba(255,255,255,0.25);
	transition: all 0.3s ease;
	position: relative;
}

#ourWork .buttons a:hover{
	transform: translateY(-0.2em);
	background: rgba(255,255,255,0.90);
	box-shadow:
		0 0.6em 2em rgba(0,0,0,0.12),
		inset 0 1px 0 rgba(255,255,255,0.35);
}

#ourWork .buttons .pict{
	margin: 0;
	width: 100%;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	position: relative;
}

#ourWork .buttons .pict::after{
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to top,
		rgba(0,0,0,0.45),
		rgba(0,0,0,0)
	);
	z-index: 2;
}

#ourWork .buttons .pict img{
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

#ourWork .buttons p{
	margin: 0;
}

#ourWork .buttons p:not(.pict){
	padding: 0.3em 0em;
	text-align: center;
}

#ourWork .buttons .eng{
	position: absolute;
	left: 50%;
	bottom: 1.9em;
	font-size: 1.6em;
	font-weight: bold;
	line-height: 1;
	letter-spacing: 0.05em;
	text-align: center;
	color: #fff;
	text-shadow: 0 0.1em 0.5em rgba(0,0,0,0.35);
	transform: translate(-50%,0);
	z-index: 2;
}

#ourWork .buttons .jp{
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0.5em 2em;
	font-size: 1.2em;
	color: #192557;
	line-height: 1em;
	text-align: center;
	font-weight: 500;
}
#ourWork .buttons .jp::after{
	content: "";
	position: absolute;
	top: 50%;
	right: 0.8em;
	width: 0.45em;
	height: 0.45em;
	border-top: 1px solid #192557;
	border-right: 1px solid #192557;
	transform: translateY(-50%) rotate(45deg);
	transition: all 0.3s ease;
}
#ourWork .buttons a:hover .jp::after{
	right: 0.6em;
}





#access {
	padding-bottom: 7em;
	padding-top: 5em;
	background-image: url("../../img/pic001.jpg?20260323");
	background-position: right center;
	background-size: cover;
	background-repeat: no-repeat;
	position: relative;
	text-align: center;
	background-attachment: fixed;
}
#access:before{
	content: "";
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	/*background-image: linear-gradient(270deg, rgba(250, 250, 250, 0.95) 0%, rgb(250, 250, 250) 72%);*/
	background: #5c5d65DD;
	z-index: 1;
}
#access *{
	z-index: 2;
	position: relative;
}
#access h2 {
	font-size: 2.5em;
	letter-spacing: 0.16em;
	text-align: left;
	padding-bottom: 1em;
	font-feature-settings: "palt";
	position: relative;
	z-index: 2;
	font-weight: 700;
	width: 90%;
	max-width: 920px;
	margin-left: auto;
	margin-right: auto;
	color: #FFF;
}

#access h2:before{
	content: "";
    width: calc((100vw - 920px) / 2);
    height: 2px;
    display: block;
    position: absolute;
    left: 0;
    bottom: 0px;
    background-color: #cc2a3e;
	transform: translate(-100%,0);
}
#access h2:after{
	content: "";
    width: 4.5em;
    height: 2px;
    display: block;
    position: absolute;
    left: 0;
    bottom: 0px;
    background-color: #cc2a3e;
}
#access h3{
	position: relative;
	display: inline-block;
	color: #FFF;
	font-size: 1.3em;
	text-align: center;
	margin-left: auto;
	margin-right: auto;
	z-index: 3;
	padding: 0.1em 1em 0.2em 1em;
	background: #2e2e2e;
	letter-spacing: 0.1em;
}
table{
	width: 100%;
	max-width: 920px;
	margin-left: auto;
	margin-right: auto;
	text-align: left;
	background: #e8e9f1;
	margin-top: 3em;
	margin-bottom: 4em;
	display: block;
	padding: 1em 2em;
	position: relative;
	z-index: 20;
	color: #202538;
}

table *{
	z-index: 7;
	position: relative;
}
table tbody{
	display: table;
	width: 100%;
	max-width: 920px;
	border-collapse: separate;
	border-spacing: 0em 1em;
	margin-bottom: 0.5em;
}
table tr{
}
table th,table td{
	padding: 1em;
}
table th{
	/*border-bottom:1px #cc2a3e solid;*/
	background: #192557;
	color: #FFF;
	white-space: nowrap;
	font-weight: 700;
	letter-spacing: 0.2em;
}
table td{
	border-bottom:1px #192557 solid;
	line-height: 1.5em;
}
table span{
	display: inline-block;
	padding-right: 0.5em;
}
#access ul {
	margin-top: 3em;
	position: relative;
	z-index: 2;
	max-width: 1140px;
	margin-right: auto;
	margin-left: auto;
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	column-gap: 1em;
}
#access ul li {
	background-color: #FFF;
	padding: 2em;
	text-align: left;
	
    position: relative;
}
#access ul li:before{
    content: "";
    width: 50%;
    height: 2em;
    background: #CCC;
    position: absolute;
    top: 100%;
    left: 50%;
    display: block;
    transform: translate(-50%,-3em);
    filter: blur(20px);
    z-index: 5;
}
#access ul li:after{
    content: "";
    width: 100%;
    height: 100%;
    background: #FFF;
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    z-index: 6;
}
#access ul li *{
	z-index: 7;
}

#access ul li iframe {
	margin-bottom: 20px;
}
#access ul li h4 {
	font-size: 1.2em;
	font-weight: 600;
	margin-bottom: 20px;
}
#access ul li access {
	margin-bottom: 20px;
	display: block;
}
#access ul li p {
}
#access:after{
	content: "";
	width: 20vw;
	height: 20vw;
	background: #c5cdffA0;
	position: absolute;
	right: 10vw;
	bottom: 5vw;
	z-index: 1;
	
	animation: photoMove 1s linear both;
	animation-timeline: view();
	animation-range: entry 0% exit 120%;
}

#gallery2{
	width: 100%;
	height: 60vh;
	position: relative;
	background: url("../../img/pic010_trim.jpg?20260323");
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
	background-attachment: fixed;
}
#gallery2:before{
	content: "";
	width: 100%;
	height: 100%;
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	background: #c5cdff;
	position: relative;
	background-attachment: fixed;
	opacity: 0.8;
	/*mix-blend-mode:multiply;*/
}
#gallery2:after{
	content: "";
	width: 2em;
	height: 45vh;
	background: #cc2a3e;
	position: absolute;
	right: 3vw;
	bottom: 4vh;
	z-index: 10;
	
	animation: photoMove 1s linear both;
	animation-timeline: view();
	animation-range: entry 0% exit 120%;
}
#gallery2 .filterBlock{
	width: 100%;
	height: 100%;
	position: absolute;
	bottom: 0;
	left: 0;
	color: #FFF;
	z-index: 10;
	mix-blend-mode:multiply;
}
#gallery2 .filterBlock:before{
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	background: #3e445c;
	opacity: 0.9;
	position: absolute;
	z-index: 10;
	backdrop-filter:blur(10px);
	animation: scrollBigY 2s linear both;
	animation-timeline: view();
	transform-origin: bottom center;
	animation-range: contain 0% contain 120%;
}

#recruit{
	padding-top: 7em;
	padding-bottom: 7em;
	/*border-top: #2dc3a8 solid 7em;*/
	position: relative;
	background: #FFF;
	background-image:
radial-gradient(at 12% 70%, hsla(232,100%,93%,0.53) 0px, transparent 50%),
radial-gradient(at 70% 100%, hsla(232,41%,87%,1) 0px, transparent 50%);
}
#recruit .rhBlock{
	position: relative;
}
#recruit .rhBlock:after{
	content: "";
	width: calc(((100% - 920px) / 2) + 10em);
	height: calc(100% - 5em);
	position: absolute;
	background: url("../../img/pic009.jpg?20260323");
	background-position: center center;
	background-repeat: no-repeat;
	background-size: cover;
	right: 0;
	top:5em;
	box-shadow: -3em -3em 0px 0px #2c3ca0;
	display:block;
	will-change: transform;
	border-radius: 0.1em;
	
	animation: shadowMove 1s linear both;
	animation-timeline: view();
	animation-range: cover 0% cover 100%;
}


#recruit h2 {
	font-size: 2.5em;
	letter-spacing: 0.16em;
	text-align: left;
	padding-bottom: 1em;
	font-feature-settings: "palt";
	position: relative;
	z-index: 2;
	font-weight: 700;
	width: 90%;
	max-width: 920px;
	margin-left: auto;
	margin-right: auto;
}

#recruit h2:before{
	content: "";
    width: calc((100vw - 920px) / 2);
    height: 2px;
    display: block;
    position: absolute;
    left: 0;
    bottom: 0px;
    background-color: #cc2a3e;
	transform: translate(-100%,0);
}
#recruit h2:after{
	content: "";
    width: 4.5em;
    height: 2px;
    display: block;
    position: absolute;
    left: 0;
    bottom: 0px;
    background-color: #cc2a3e;
}
#recruit .message{
	font-feature-settings: "palt";
	width: 90%;
	max-width: 920px;
	margin-left: auto;
	margin-right: auto;
	text-align: left;
	margin-top: 5em;
	margin-bottom: 5em;
	line-height: 2em;
	font-size: 1.2em;
	letter-spacing: 0.2em;
	color: #202538;
	font-weight: 600;
	position: relative;
	padding-bottom: 3em;
}
#recruit .message h3{
	font-size: 2em;
	font-weight: 900;
	margin-bottom: 1.5em;
	color: #2c3ca0;
	letter-spacing: 0.5em;
	line-height: 2em;
}
#recruit .message p{
}

#recruit .data{
	font-feature-settings: "palt";
	width: 90%;
	max-width: 920px;
	margin-left: auto;
	margin-right: auto;
	text-align: left;
	margin-top: 5em;
	margin-bottom: 5em;
	line-height: 2em;
	font-size: 1em;
	color: #202538;
	font-weight: 400;
	position: relative;
}
#recruit .data h3{
	font-size: 2em;
	font-weight: 600;
	position: relative;
	line-height: 1em;
	margin-top: 2em;
}
#recruit .data h3:before{
	position: absolute;
	content: "";
	width: 0.3em;
	height: 0.3em;
	background: #cc2a3e;
	left: 0;
	top: 0;
	transform: translate(calc(-100% - 0.5em),0.15em);
}
#recruit table{
	background: #FFF;
}
#recruit table tbody{
	margin-bottom: 0px;
}
#recruit p.button{
	padding-top: 1em;
}
#recruit p.button a{
	display: inline-block;
	border: 1px #3e445c solid;
	position: relative;
	padding: 0.8em 1.3em;
	padding-right: 5em;
	text-decoration: none;
	font-weight: 700;
	font-size: 1.1em;
	border-radius: 0.2em;
	color: #192557;
}
#recruit p.button a:after{
	content: "";
	background: #2c3ca0;
	width: 1.55em;
	height: 1.55em;
	position: absolute;
	right: 0.6em;
	top: 50%;
	transform: translate(0,-50%);
	font-size: 1.1em;
	background-image: url("../img/yazirushi.svg");
	background-repeat: no-repeat;
	background-position: center center;
	background-size: 0.9em 0.9em;
	border-radius: 0.1em;
}


#recruit dl{
	display:table;
	padding: 0px;
	margin-bottom: 0.5em;
	border-collapse:collapse;
}
#recruit dl div{
	display:table-row;
	margin-inline-start: 0;
}
#recruit dl div.border{
	position: relative;
	border-top: 1px #CCC solid;
}
#recruit dt,#recruit dd{
	display: table-cell;
	margin-inline-start: 0;
	padding-bottom: 0.3em;
}
#recruit dt{
	padding-right: 1em;
	white-space: nowrap;
	padding-bottom: 0.3em;
}
#recruit dt span.smpBR{
	display: inline-block;
	font-feature-settings: "palt";
}



/*
------------------------------------------------------------*/
@media screen and (max-width:1024px){
#MainVisual .message {
	padding: 2vw;
	display: grid;
	grid-template-columns: 1fr;
	align-content: center;
}
	#MainVisual .message p{
		position: static;
	}
#MainVisual .message h2 {
	font-size: 2.3em;
}
#messages .rightBox:before{
	width: 90%;
	height: 20vh;
	top: -5vh;
	}
#messages .rightBox .leftJustified{
	max-width: none;
}
#messages .rightBox:after{
	width: 50%;
	height: 25vh;
	bottom: 8vh;
	top: auto;
	background-position: center center;
	z-index: -1;
}
	
	.w920{
		padding-left: 2em;
		padding-right: 2em;
	}
	.w920 .engH2:before{
	width: 2em;
	transform: translate(calc(-100% - 0.2em),0);
}
	
h2.redLineH2:before{
    width: 2em;
}

	#ourWork .buttons{
	display: flex;
		flex-direction: column;
}

#gallery2{
	height: 50vh;
}
#gallery2 .filterBlock:before{
	height: 50%;
	bottom: 0;
}
#recruit{
	padding-right: 2em;
	padding-left: 2em;
}
#recruit h2{
	width: 100%;
}
#recruit h2:before{
	width: 100%;
}
#recruit .message{
	max-width: 68vw;
	margin-left: 0;
}
#recruit .rhBlock:after{
	width: 32vw;
}
}


@media screen and (max-width:767px){
#MainVisual .message h2 {
	font-size: 8.7vw;
}
#MainVisual .message p{	
	font-size: 3vw;
	}
#messages .rightBox .leftJustified{
	padding-left: 0;
}
#messages .rightBox h2{
	font-size: 5.5vw;
}
#messages .rightBox h2 span{
	display: inline-block;
}
#access:after{
	width: 20vh;
	height: 20vh;
	right: 2vw;
}
#recruit .rhBlock:after{
		
}
#recruit .message{
	width: 100%;
	max-width: 100%;
	margin-bottom: 0px;
}
#recruit .message h3{
	letter-spacing: 0.2em;
	font-feature-settings: "palt";
}
	#recruit .rhBlock:after {
        width: 100%;
        position: static;
        height: 40vh;
    }
	#recruit .message p{
		transform: translate(0px, 0);
		padding-top: 2em;
	}
	#recruit .data{
		width: 100%;
	}
	
table{
  width:100%;
}

table thead{
  display:none;
}

table tr{
  display:block;
  margin-bottom:1.5em;
  border-bottom:1px solid #ddd;
}

table th,
table td{
  display:block;
  width:100%;
}

}

/* スマートフォン 横(ランドスケープ) */
@media only screen and (max-width:640px){







}

/* スマートフォン 縦(ポートレート) */
@media only screen and (max-width:480px){

}

@media (orientation: landscape) and (max-height: 450px) {

	
}

