@charset "utf-8";
/* CSS Document */


.pcOnlyB{
	display:none;
}

.pcOnlyI{
	display:none;
}

/* トップページ */
.top__mvMovie{
	position: fixed;
	top: 8.5rem;
	left: 0;
	width: 100%;
	z-index: -1;
}

.top__mvMovie video{
	width: 100%;
	height: calc(100vh - 8.5rem);
	object-fit: cover;
}

.top__container{
	overflow: unset;
	background:linear-gradient(to bottom, rgba(255,255,255,0) 0px, rgba(255,255,255,0) 4000px, rgba(255,255,255,1) 4300px);
	padding-bottom: 7rem;
}

.top__logo{
	height: 100vh;
	width: 100%;
	box-sizing: border-box;
	/*padding-top: calc(calc(50svh - 4.25rem) - 4.5rem);*/
	text-align: center;
	padding-bottom: 10svh;
}



.top__logo__inner{
	width: 27rem;
	height: 9rem;
	/* position: sticky;*/
	position: absolute;
	top:calc(50svh - 0.25rem);
	left: calc(50vw - 13.5rem);
	
	margin: 0 auto;
	opacity: 0;
	transition: opacity 600ms ease;
}

.top__logo__inner.inView{
	opacity: 1;
}


.top__logo>img{
	width: 27rem;
	height: 9rem;
	object-fit: contain;
}

.top__read{
	padding: 0 2rem;
	color: #FFF;
	font-size: 1.5rem;
	margin-bottom: 100svh;
	opacity: 0;
	transition: opacity 1500ms ease;
	& .minLetter{
		letter-spacing: -0.15em;
	}

	& .minLetter2{
		letter-spacing: -0.1em;
	}
}

.top__read.inView{
	opacity: 1;
}

.top__read__head{
	font-size: 3.5rem;
	letter-spacing: 0.05em;
	line-height: 1.4;
	font-weight: normal;
	color: #FFF;
	margin-bottom: 1rem;
}

@font-face {
	/* ローカル環境用 */
  font-family: 'TestFont';
  src: local('RyuminPr6-Regular');
}


.top__sion{
	font-family: Ryumin Regular KL, 'リュウミン R-KL', 'TestFont', sans-serif;
	color: #FFF;
	font-size: 1.7rem;
	margin-bottom: 100svh;
}

.top__sion_dl{
	width: fit-content;
	margin: 0 auto;
}

.top__sion_dl>dt{
	position: relative;
	text-align: center;
	width: fit-content;
	margin:0 auto 0 auto;
	overflow: hidden;
	width: 12.5rem;
	height: 0;
	padding-top: 4.6rem;
	background:no-repeat center center;
	background-size: auto 2rem;
}

.top__sion_dl>dt:before{
	display: block;
	position: absolute;
	left:-100%;
	top: 0;
	width: 100%;
	height: 100%;
	background-color: #FFF;
	content: "";	
}

.inView .top__sion_dl>dt:before{
	animation: slide 800ms ease forwards;
}

.top__sion_dl>dt:after{
	display: block;
	position: absolute;
	left:0;
	top: 0;
	width: 100%;
	height: 100%;
	background:no-repeat center center;
	background-size: auto 1.3rem;
	content: "";
	clip-path: inset(0 100% 0 0);
}

.inView .top__sion_dl>dt:after{
	animation: text-reveal 800ms ease forwards;
}

.top__sion_dl>dt.missionHead{
	background-image:url(../img/top/top_mission_w.svg);
}

.top__sion_dl>dt.missionHead:after{
	background-image:url(../img/top/top_mission.svg);
}

.top__sion_dl>dt.visionHead{
	background-image:url(../img/top/top_vision_w.svg);
}

.top__sion_dl>dt.visionHead:after{
	background-image:url(../img/top/top_vision.svg);
}

.top__sion_dl>dd{
	margin-bottom: 3rem;
	width: 100%;
}

.top__sion_dl>dd>span{
	display: block;
	width: 100%;
	box-sizing: border-box;
	margin:-0.4em auto 0 auto ;
	position: relative;
	padding:0.8em 1.5em;
	line-height: 1;
	text-align: center;
	overflow: hidden;
}

.top__sion_dl>dd>span.mission2,
.top__sion_dl>dd>span.vision2{
	margin-top: -0.8em;
}

.top__sion_dl>dd>span:before{
	display: block;
	position: absolute;
	left:-100%;
	top: 0;
	width: 100%;
	height: 100%;
	background-color: #FFF;
	content: "";
}

.inView .top__sion_dl>dd>span:before{
	animation: slide 800ms ease forwards;
}

.top__sion_dl>dd>span:after{
	display: block;
	position: absolute;
	left:0;
	top: 0;
	width: 100%;
	height: 100%;
	background:no-repeat center center;
	background-size: auto 2rem;
	content: attr(data-text);
	clip-path: inset(0 100% 0 0);
	color: var(--color1);
	padding:0.8em 1.5em;
	box-sizing: border-box;
}

.inView .top__sion_dl>dd>span:after{
	animation: text-reveal 800ms ease forwards;
}

.top__sion_dl>dd>span.mission1:before,
.top__sion_dl>dd>span.mission1:after{
	animation-delay: 200ms;
}

.top__sion_dl>dd>span.mission2:before,
.top__sion_dl>dd>span.mission2:after{
	animation-delay: 400ms;
}

.top__sion_dl>dt.visionHead:before,
.top__sion_dl>dt.visionHead:after{
	animation-delay: 1200ms;
}

.top__sion_dl>dd>span.vision1:before,
.top__sion_dl>dd>span.vision1:after{
	animation-delay: 1400ms;
}

.top__sion_dl>dd>span.vision2:before,
.top__sion_dl>dd>span.vision2:after{
	animation-delay: 1600ms;
}

/* アニメーション用の帯 */
.reveal-text::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: var(--color1);
  animation: slide 2s ease forwards;
}

/* 文字色のマスクアニメーション */
.reveal-text::after {
  content: attr(data-text);
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  color: #FFF;
  clip-path: inset(0 100% 0 0);
  animation: text-reveal 2s ease forwards;
}

/* アニメーション定義 */
@keyframes slide {
  0% {
    left: -100%;
  }
  100% {
    left: 0;
  }
}

@keyframes text-reveal {
  0% {
    clip-path: inset(0 100% 0 0);
  }
  100% {
    clip-path: inset(0 0 0 0);
  }
}


.top__illust{
	padding: 0 4rem;
	height: 150vh;
	margin-bottom: 4rem;
}

.top__illust__inner{
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-template-rows: 1fr 1fr;
	gap: 1rem 0;
	opacity: 0;
	transition: opacity 1500ms 200ms ease;
	position: sticky;
	top: 50vw;
}

.top__illust__inner>.item3{
	grid-column: 1/3;
	grid-row: 2/3;
}

.inView .top__illust__inner{
	opacity: 1;
}

.top__project{
	padding: 0 3rem;
}

.top__project__head{
	text-align: center;
	font-size: 2.23rem;
	font-weight: 700;
	font-family: var(--font-en);
	margin-bottom: 3rem;
}

.top__project a{
	opacity: 1;
	text-decoration: none;
}

.top__project a:hover{
	color: var(--color2);
}

.top__project__item{
	margin-bottom: 4rem;
}

.top__project__item img{
	width: 100%;
	height: auto;
	aspect-ratio: 1/1;
	object-fit: cover;
}

a .top__project__item .image{
	position: relative;
}

a .top__project__item .image:after{
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	position: absolute;
	left: 0;
	top: 0;
	box-sizing: border-box;
	border: solid 0.3rem var(--color2);
	opacity: 0;
	transition: opacity 500ms;
}

a:hover .top__project__item .image:after{
	opacity: 1;
}


.top__project__item .text{
	line-height: 1.4;
	margin-top: 0.5em;
}


/* TOPICS
--------------------------------------
*/

.topics__mv img{
	width: 100%;
	height: auto;
}

.topics__container{
	padding:5rem 3rem;
}

.topics__header{
	margin-bottom: 3rem;
}

.topics__header__meta{
	font-family: var(--font-en);
	font-size: 1.3rem;
	display: flex;
	line-height: 1;
	margin-bottom: 3rem;
}

.topics__header__meta>.category{
	padding-left: 1rem;
	margin-left: 1rem;
	border-left:solid 1px var(--color1);
}

.topics__header__title{
	font-size: 3rem;
	font-weight: normal;
	line-height: 1.4;
}

.topics__header__subTitle{
	font-size: 1.3rem;
}

/* グーテンベルグ */
.topics__body{
	line-height: 2;
	margin-bottom: 4rem;
}

.topics__body p{
	margin-bottom: 4rem;
}

.topics__body figure{
	margin-bottom: 4rem;
}

.topics__body figure:has(+figure){
	margin-bottom: 2rem;
}

h2.wp-block-heading{
	font-size: 2.8rem;
	font-weight: normal;
	margin-bottom: 4rem;
	line-height: 1.4;
	border-bottom: solid 1px var(--color1);
	padding-bottom: 0.2em;
	width: fit-content;
	margin-left:0;
}

h2.wp-block-heading.has-text-align-center{
	margin-left:auto;
	margin-right:auto;
}

h2.wp-block-heading.has-text-align-right{
	margin-left:auto;
	margin-right:0;
}

h3.wp-block-heading{
	font-size: 2.8rem;
	font-weight: normal;
	margin-bottom: 4rem;
	line-height: 1.4;
}

h4.wp-block-heading{
	font-size: 2rem;
	font-weight: normal;
	margin-bottom: 4rem;
	line-height: 1.4;
}

h5.wp-block-heading{
	font-size: 2rem;
	font-weight: normal;
	margin-bottom: 4rem;
	line-height: 1.4;
	font-family: var(--font-en);
}

ul.wp-block-list{
	list-style-type: disc;
	margin-bottom:4rem;
	line-height:1.4;
}

ul.wp-block-list>li{
	list-style-type: disc;
	margin-left:1em;
	padding-bottom:0.3em;
}

.wp-block-list>li .wp-block-list{
	margin-bottom:0;
}

ul.wp-block-list>li>ul>li{
	list-style-type:circle;
}

ol.wp-block-list{
	margin-bottom:4rem;
	line-height:1.4;
}

ol.wp-block-list>li{
	list-style-type: decimal;
	margin-left:1em;
	padding-bottom:0.3em;
}

ol.wp-block-list>li>ul>li{
	list-style-type:circle;
}

.wp-block-buttons,
.wp-block-cover{
	margin-bottom:4rem;
}

.wp-block-table table,
.wp-block-table table td,
.wp-block-table table th{
	border-left:0;
	border-right:0;
	border-color:var(--color1);
}

.topics__body .wp-block-cover p{
	margin-bottom:0;
}

/* TOPICS-INDEX
--------------------------------------
*/

.topicsNav{
	padding: 2rem 1.7rem;
}

.topicsNav__list{
	display: flex;
	gap: 2rem;
}

.topicsNav__list>li>a{
	display: inline-block;
	padding-bottom: 0.2em;
	line-height: 1;
	text-decoration: none;
	font-family: var(--font-en);
	font-size: 1.4rem;
	color: var(--color1);
}

.topicsNav__list>li>a:hover{
	color: var(--color2);
}

.topicsNav__list>li.active>a{
	border-bottom: solid 1px var(--color1);
}

.topicsIdx__container{
	margin-bottom: 6rem;
}

.topicsIdx__head{
	font-size: 2.5rem;
	font-weight: 600;
	font-family: var(--font-en);
	line-height: 1;
	padding: 0 1.7rem 2rem 1.7rem;
}

.topicsIdx__list{
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem;
}

.topicsIdx__list li{
	--topics-color:#00b2db;
	opacity: 0;
}

.topicsIdx__list li:nth-of-type(10n+1){
	--topics-color:#00b2db;

}
.topicsIdx__list li:nth-of-type(10n+2){
	--topics-color:#7b99ac;
}
.topicsIdx__list li:nth-of-type(10n+3){
	--topics-color:#00c8bc;
}
.topicsIdx__list li:nth-of-type(10n+4){
	--topics-color:#6ba5db;
}
.topicsIdx__list li:nth-of-type(10n+5){
	--topics-color:#00949d;
}
.topicsIdx__list li:nth-of-type(10n+6){
	--topics-color:#0098d5;
}
.topicsIdx__list li:nth-of-type(10n+7){
	--topics-color:#2d6692;
}
.topicsIdx__list li:nth-of-type(10n+8){
	--topics-color:#4d78ce;
}
.topicsIdx__list li:nth-of-type(10n+9){
	--topics-color:#007991;
}
.topicsIdx__list li:nth-of-type(10n+10){
	--topics-color:#007bd0;
}


@keyframes topicsLoad {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}



.topicsIdx__list a{
	text-decoration: none;
	color: var(--color1);
}

.topicsIdx__list a:hover{
	color: var(--topics-color);
	opacity: 1;
}

.topicsIdx__list__image{
	background-color:var(--topics-color);
	padding-bottom: 1rem;
	position: relative;
}

.topicsIdx__list__image:after{
	border: solid 0.3rem var(--topics-color);
	opacity: 0;
	content: "";
	display: block;
	position: absolute;
	inset: 0;
	transition: opacity 500ms;
}

a:hover .topicsIdx__list__image:after{
	opacity: 1;
}

.topicsIdx__list__image>img{
	width: 100%;
	height: auto;
	object-fit: cover;
	aspect-ratio: 16/9;
}

.topicsIdx__list__caption{
	padding: 1rem 1.7rem;
}

.topicsIdx__list__caption>.meta{
	font-family: var(--font-en);
	font-size: 1.3rem;
	display: flex;
	line-height: 1;
	margin-bottom: 0.4rem;
}

.topicsIdx__list__caption>.meta>.category{
	padding-left: 1rem;
	margin-left: 1rem;
	border-left:solid 1px var(--color1);
}

a:hover .topicsIdx__list__caption>.meta>.category{
	border-color: var(--topics-color);
}

.topicsIdx__list__caption>.title{
	font-size: 2rem;
	line-height: 1.3;
	margin-bottom: 0.2em;
}

.topicsIdx__list__caption>.subTitle{
	font-size: 1.3rem;
	line-height: 1.3;
}


.topicsPageList{
	padding: 2rem 1.7rem;
	font-family: var(--font-en);
}

.topicsPageList>ul{
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 1rem;
}

.topicsPageList>ul li{
	line-height: 1;
	font-size: 1.4rem;
}

.topicsPageList>ul li span.current{
	padding: 0.75em 1.1em;
	display: block;
	background-color: var(--color1);
	color: #FFF;
	border: solid 1px var(--color1);
}

.topicsPageList>ul li span.dots{
	padding: 0.75em 1.1em;
	display: block;
	border: solid 1px #FFF;
}


.topicsPageList>ul li>a{
	display: block;
	text-decoration: none;
	padding: 0.75em 1.05em;
	border: solid 1px var(--color1);
}

.topicsPageList>ul li>a:hover{
	color: #FFF;
	background-color: var(--color2);
	border-color: var(--color2);
}

/* ABOUT
--------------------------------------
*/

.about__container{
	padding: 3.7rem 0 7.4rem;
}

.about__read__header{
	margin-bottom: 2.5rem;
	text-align: center;
	line-height: 1;
	& img{
		width: 26rem;
	}
}

.about__read__text{
	text-align: center;
	font-size: 1.2rem;
}

.about__read__text>p{
	margin-bottom: 2.5rem;
}

.about__image{
	padding: 0 1.7rem;
	text-align: center;
	margin-bottom: 4.5rem;
}

.about__photo{
	padding: 0 3rem;
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
	margin-bottom: 4.5rem;
}

.about__company{
	padding: 0 3rem;
}

.about__company__dl{
	font-size: 1.7rem;
}

.about__company__dl>dt{
	width: fit-content;
	border-bottom: solid 1px var(--color1);
	line-height: 1.2;
	padding-bottom: 0.1em;
	margin-bottom: 2rem;
}

.about__company__dl>dd{
	margin-bottom: 6rem;
	line-height: 1.6;
}

.about__company__dl>dd .minfont{
	font-size: 1.4rem;
}

.about__compnay__office:not(:last-of-type){
	margin-bottom: 6rem;
}

.about__compnay__office h3{
	font-weight: normal;
	font-size: inherit;
}

.about__compnay__office address{
	font-style: normal;
	font-weight: normal;
	font-size: inherit;
	margin-bottom: 1rem;
}

.about__compnay__office .googlemap{
	&>iframe{
		width: 100%;
		height: 25rem;
	}
}

.about__compnay__office .linkType1{
	font-size: 1.4rem;
	font-weight: 600;
	font-family: var(--font-en);
}

.about__company__group:not(:last-of-type){
	margin-bottom: 4rem;
}

.about__company__group .head{
	font-size: inherit;
	font-weight: inherit;
	margin-bottom: 3rem;
}

.about__compnay__Gloup .linkType1{
	font-size: 1.4rem;
	font-family: var(--font-en);
}

/* RECRUIT
--------------------------------------
*/

.recruit__container{
	padding: 4rem 3rem 6rem 3rem;
}

.recruit__read{
	margin-bottom: 5rem;
}

.recruit__read__header{
	margin-bottom: 2rem;
}

.recruit__read__header>img{
	width: 23.6rem;
}

.recruit__read__text{
	line-height: 2;
	letter-spacing: -0.06em;
}

.recruit__photo{
	padding: 0 3rem;
	margin-bottom: 5rem;
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
}

/* CONTACT
--------------------------------------
*/

.contact__container{
	padding:4rem 3rem 7rem 3rem;
}

.contact__read{
	font-size: 1.7rem;
	text-align: center;
	margin-bottom: 4rem;
}

.contact__read>h1{
	font-weight: normal;
	display: inline;
	font-size: inherit;
}

.contact__form__dl{
	font-size: 1.7rem;
}

.contact__form__dl>dt{
	margin-bottom: 0.3em;
}

.contact__form__dl>dd{
	margin-bottom: 4rem;
}

.contact__form__dl>dd input[type="text"],
.contact__form__dl>dd input[type="email"]{
	border: none;
	border-left: solid 1px var(--color1);
	border-bottom: solid 1px var(--color1);
	width: 100%;
	box-sizing: border-box;
	font-size:16px;
	padding: 1rem;
	font-family: var(--font-jp);
	border-radius:0;
}

.contact__form__dl>dd select{
	border: none;
	border-left: solid 1px var(--color1);
	border-bottom: solid 1px var(--color1);
	width: 100%;
	box-sizing: border-box;
	font-size:16px;
	padding: 1rem;
	background-color: #FFF;
	font-family: var(--font-jp);
	border-radius:0;
}

.contact__form__dl>dd textarea{
	border: none;
	border-left: solid 1px var(--color1);
	border-bottom: solid 1px var(--color1);
	width: 100%;
	height: auto;
	aspect-ratio: 315/220;
	box-sizing: border-box;
	font-size:16px;
	padding: 1rem;
	font-family: var(--font-jp);
	border-radius:0;
}

.contact__form__dl>.submitBlock>dt{
	margin-bottom: 0.3em;
}

.contact__form__dl dd.plivacyBox{
	border: solid 1px var(--color1);
	padding: 1rem;
	box-sizing: border-box;
	width: 100%;
	height: auto;
	aspect-ratio: 315/245;
	overflow: auto;
	font-size: 1.3rem;
	margin-bottom: 8rem;
	counter-reset: plivacy-h2;
}

.contact__form__dl dd.plivacyCheck{
	text-align: center;
	margin-bottom: 8rem;
}

.contact__form__dl input[type="submit"]{
	border: solid 1px var(--color1);	
	text-align: center;
	background-color: #FFF;
	font-size: 2rem;
	letter-spacing: 1em;
	text-indent:1em ;
	padding: 0.6em 2em;
	line-height: 1;
	display: block;
	transition: all 200ms ease;
	margin-inline: auto;
	color:var(--color1);
	border-radius:0;
}

.contact__form__dl input[type="submit"]:disabled{
	opacity:0.4;
}

body .wpcf7-not-valid-tip{
	color: var(--color2);
}

.wpcf7 .wpcf7-response-output{
	background-color: var(--color2);
	text-align: center;
	color: #FFF;
	font-size: 120%;
	border: none;
	font-weight: bold;
	margin-inline: 0;
	margin: 4rem auto;
	line-height: 1.4;
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output{
	background-color: #ffb900;
	margin-inline: 0;
}

.wpcf7 form.sent .wpcf7-response-output{
	border-color: var(--color2);
}


.wpcf7-turnstile{
	margin-bottom:4rem;
	margin-inline: auto;
	width: fit-content;
}

.wpcf7-spinner{
	display:block;
	margin:1rem auto 0 auto;
}

.plivacyCheck .wpcf7-list-item{
	margin-left: 0;
}


.plivacyBox>h2{
	font-size: 1.7rem;
	font-weight: normal;
	margin-bottom: 2rem;
	line-height: 1.4;
	border-bottom: solid 1px var(--color1);
	padding-bottom: 0.2em;
	width: fit-content;
	display: flex;
	&:before{
		content: counter(plivacy-h2)'.';
		counter-increment:plivacy-h2;
		padding-right: 0.5em;
	}	
}

.plivacyBox>h3{
	font-size: 1.6rem;
	font-weight: normal;
	margin-bottom: 0.5rem;
}

.plivacyBox>p{
	margin-bottom: 2rem;
}

.plivacyBox>p:has(+h2){
	margin-bottom: 4rem;
}

.plivacyBox>table{
	border-top: solid 1px var(--color1);
	border-collapse: collapse;
	margin-bottom: 4em;
}

.plivacyBox>table th,
.plivacyBox>table td{
	padding: 1rem;
	width: calc(100% / 3);
	vertical-align: top;
	line-height: 1.4;
	border-bottom: solid 1px var(--color1);
	font-size: 1.2rem;
}

.plivacyBox>table th{
	font-weight: normal;
	font-size: 1.4rem;
}

/*test*/

