@charset "UTF-8";

/*** The new CSS reset - version 1.11.3 (last updated 25.8.2024) ***/
*:where(:not(html,iframe,canvas,img,svg,video,audio):not(svg *,symbol *)){all:unset;display:revert}*,*::before,*::after{box-sizing:border-box}html{-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none}a,button{cursor:revert}ol,ul,menu,summary{list-style:none}ol{counter-reset:revert}img{max-inline-size:100%;max-block-size:100%}table{border-collapse:collapse}input,textarea{-webkit-user-select:auto}textarea{white-space:revert}meter{-webkit-appearance:revert;appearance:revert}:where(pre){all:revert;box-sizing:border-box}::placeholder{color:unset}:where([hidden]){display:none}:where([contenteditable]:not([contenteditable="false"])){-moz-user-modify:read-write;-webkit-user-modify:read-write;overflow-wrap:break-word;-webkit-line-break:after-white-space;-webkit-user-select:auto}:where([draggable="true"]){-webkit-user-drag:element}:where(dialog:modal){all:revert;box-sizing:border-box}::-webkit-details-marker{display:none}

/* change border colour to suit your needs */
hr {
    display:block;
    height:1px;
    border:0;   
    border-top:1px solid #cccccc;
    margin:1em 0;
    padding:0;
}
input,select,textarea {
 all: revert;
 vertical-align:middle;
}
select,textarea,
input:not([type=checkbox]):not([type=radio]){
  border-radius: 0.23em;
 border: 1px #ccc solid;
 padding: 10px;
 width: 100%;
 max-width: 100%;
}

img{
	line-height:1;
	vertical-align:bottom;
}



/************** layout base ********************/

.clearfix{
overflow:hidden;
}
.clear:after{
	content:"";
	display:block;
	height:0;
	clear:both;
	visibility:hidden;
}




a{text-decoration:none; color:#000000;}
a:hover{text-decoration: none;}
a:link{}

a:visited{color:#0d5bab;}
/* ボタンrollover */
a:hover{
   opacity:0.8;
}

sup {
	line-height: 100%;
	font-size:10px;
	vertical-align: 0.4em;
}
sub{
	line-height: 100%;
	font-size:10px;
	vertical-align: -0.1em;
}

.txtLeft{
text-align:left;
}
.txtRight{
text-align:right;
}
.txtCenter{
text-align:center;
}

.fw{font-weight:bold !important;}
.f10{ font-size:10px !important;}
.f11{ font-size:11px !important;}
.f12{ font-size:12px !important;}
.f13{ font-size:13px !important;}
.f14{ font-size:14px !important;}
.f15{ font-size:15px !important;}
.f16{ font-size:16px !important;}
.f17{ font-size:17px !important;}
.f18{ font-size:18px !important;}
.f20{ font-size:20px !important;}
.f22{ font-size:22px !important;}
.f24{ font-size:24px !important;}

.txtRed{ color:#D80000;}

.fLeft{ float:left;}
.fRight{ float:right;}

.mTop0{ margin-top:0 !important;}
.mTop5{ margin-top:5px !important;}
.mTop10{ margin-top:10px !important;}
.mTop15{ margin-top:15px !important;}
.mTop20{ margin-top:20px !important;}
.mTop25{ margin-top:25px !important;}
.mTop30{ margin-top:30px !important;}
.mTop35{ margin-top:35px !important;}
.mTop40{ margin-top:40px !important;}
.mTop45{ margin-top:45px !important;}
.mTop50{ margin-top:50px !important;}
.mTop55{ margin-top:55px !important;}
.mTop60{ margin-top:60px !important;}

.mBtm0{ margin-bottom:0 !important;}
.mBtm5{ margin-bottom:5px !important;}
.mBtm10{ margin-bottom:10px !important;}
.mBtm15{ margin-bottom:15px !important;}
.mBtm20{ margin-bottom:20px !important;}
.mBtm25{ margin-bottom:25px !important;}
.mBtm30{ margin-bottom:30px !important;}
.mBtm35{ margin-bottom:35px !important;}
.mBtm40{ margin-bottom:40px !important;}
.mBtm45{ margin-bottom:45px !important;}
.mBtm50{ margin-bottom:50px !important;}
.mBtm55{ margin-bottom:55px !important;}
.mBtm60{ margin-bottom:60px !important;}
.mBtm70{ margin-bottom:70px !important;}
.mBtm80{ margin-bottom:80px !important;}
.mBtm90{ margin-bottom:90px !important;}
.mBtm100{ margin-bottom:100px !important;}

.pTop0{ padding-top:0 !important;}
.pTop5{ padding-top:5px !important;}
.pTop10{ padding-top:10px !important;}
.pTop15{ padding-top:15px !important;}
.pTop20{ padding-top:20px !important;}
.pTop25{ padding-top:25px !important;}
.pTop30{ padding-top:30px !important;}
.pTop35{ padding-top:35px !important;}
.pTop40{ padding-top:40px !important;}
.pTop45{ padding-top:45px !important;}
.pTop50{ padding-top:50px !important;}

.pBtm0{ padding-bottom:0 !important;}
.pBtm5{ padding-bottom:5px !important;}
.pBtm10{ padding-bottom:10px !important;}
.pBtm15{ padding-bottom:15px !important;}
.pBtm20{ padding-bottom:20px !important;}
.pBtm25{ padding-bottom:25px !important;}
.pBtm30{ padding-bottom:30px !important;}
.pBtm35{ padding-bottom:35px !important;}
.pBtm40{ padding-bottom:40px !important;}
.pBtm45{ padding-bottom:45px !important;}
.pBtm50{ padding-bottom:50px !important;}
.pBtm55{ padding-bottom:55px !important;}
.pBtm60{ padding-bottom:60px !important;}

.flex{
	display: flex;
	flex-wrap: wrap;
}
@media screen and (min-width: 901px) {
.pcFlex{
	display: flex;
justify-content: space-between;
 }
.spOnly{ display:none; }

}/*-PC only-*/
@media screen and (max-width: 900px) {
.pcOnly{ display:none;}

}/*spOnly*/

/************** layout base ********************/
:root{
  scroll-padding-top: 78px;
}
@media screen and (max-width: 900px) {/* SP */
 :root{
	scroll-padding-top: 50px;
}
}/*-SP only-*/
html {font-size: 62.5%;scroll-behavior: smooth;}
body{
background:var(--beige);
text-align:center;
		font-family: "Noto Sans JP","游ゴシック", YuGothic, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
line-height:1.2;
 font-weight: 500;
}
#top{
 background: #fff;
}
div,p,dl{
text-align:left;
}

p,dt,dd,li,td,th{
font-size:16px;
line-height:1.6;
}
h1,h2,h3,h4,h5,h6{
font-size:16px;
 text-align: left;
 line-height: 1.4;
}

a {
  -webkit-transition: 0.3s;
  transition: 0.3s;
	color: var(--base);
}

.inner{
 max-width: 1100px;
 width: 95%;
 margin-inline: auto;
}
@media screen and (max-width: 900px) {
 .inner{
  width: 90%;
 }
}/*-SP only-*/

/*色
========================================== */
:root {
	--base: #333333;
	--bk: #000;
	--wh: #fff;
 --beige:#e6d6c2;
 --red:#a82754;
	--blue: #2e58b3;
  --Lblue: #e0f7fd;
  --yellow: #fedd36;
}
/*フォントファミリー
========================================== */
.fontMin{
 font-family: "Noto Serif JP", serif;
}
.fontNt{
 font-family: "Noto Sans JP", sans-serif;
}
.fontZ{
  font-family: "Zen Kaku Gothic New", sans-serif;
}
/*------------------ list style----------------*/
.numberList{
	padding:0 0 0 18px;	
}
.numberList li{
	list-style:decimal outside;
	padding:0 0 5px 0;
}


.discList{
	padding:0 0 0 18px;
}
.discList li{
	list-style:disc outside;
	padding:0 0 2px 0;
}

.indentList li{
	padding-left:1em;
	text-indent:-1em;
}

/*****************  head ***********************/
header{
 position: absolute;
 top: 0;
 left: 0;
 width: 100%;
 z-index: 100;
}
header .inner{
 height: 78px;
 justify-content: space-between;
 align-items: center;
}
 #logo{
  max-width: 381px;
}
#logo img{
 height: auto;
}
@media screen and (max-width: 900px) {/**/
header .inner{
  height: 50px;
 }
 #logo{
  width: 50vw;
 }
 
/* 
	SP .menu
==================================== */
.menu {
 position: relative;
  /*position: absolute;
  right: 0px;
  top: 5px;*/
  width: 30px;
  height: 30px;
  cursor: pointer;
  z-index: 101;
}
.menu span {
      position: absolute;
      left: 0px;
      width: 30px;
      height: 1px;
      background-color: var(--base);
      transition: all 0.6s;
      border-radius: calc(infinity * 1px);
}

.menu span.menuLine01 {
      top: 8px;
}
.menu span.menuLine02{
      top: 13px;
}
.menu span.menuLine03{
      top: 18px;
}
 .menu.active span{
  background-color: #fff;
 }
.menu.active span.menuLine01{
      transform: rotate(45deg);
      top: 10px;
}
.menu.active span.menuLine02{
      width: 0;
      left: 50%;
}
.menu.active span.menuLine03 {
      transform: rotate(-45deg);
      top: 10px;
} 

.menuBg {
  position: fixed;
  left: 0;
  top: 0;
  width: 100vw;
  height: 100vh;
  z-index: 99;
  background-color: #000;
  opacity: 0;
  visibility: hidden;
  transition: all 0.6s;
  cursor: pointer;
}
.menuBg.active {
    opacity: 0.8;
    visibility: visible;
}
}/*-SP only-*/

/*****************  navi ***********************/
#gNavi a{
 display: block;
}
@media screen and (min-width: 901px) {
 #gNavi ul{
  gap:0 min(2.7vw,30px);
 }
 #gNavi li {
  font-size: min(2.2vw,24px);
 }
 #gNavi li a{
  color: transparent;
  /*background: linear-gradient(to right, #fc6819 50%, #000 50%) 100%;*/
  background: linear-gradient(to right,  rgba(252,104,25,1) 0%,rgba(225,51,62,1) 10%,rgba(98,55,94,1) 21%,rgba(34,124,141,1) 38%,rgba(16,60,90,1) 49%,rgba(0,0,0,1) 50%,rgba(0,0,0,1) 50%) 100%;

  background-clip: text;
  background-size: 200% 100%;
  transition: background-position 0.3s ease-out;
 }
 #gNavi li a:hover{background-position: 0 100%;}
}/*-PC only-*/

@media screen and (max-width: 900px) {/*SP gnavi*/
 #gNavi{
  position: fixed;
  right: -100vw;
  top: 0;
  width: 100vw;
  height: 100vh;
 padding: 0 0 40px;
  transition: all 0.6s;
  z-index: 100;
  overflow-y: auto;
   background:rgba(46,88,179,0.78)
 }
#gNavi.active{
  right: 0;
}
  #gNavi ul{
    margin: 80px 40px 0;
  }
 #gNavi li a{
  color: #fff;
   padding: .5em;
   border-bottom: 1px solid #fff;
   
 }
}/*-SP only-*/

/*****************  foot ***********************/
footer{
 background: var(--yellow);
 padding:30px 0 37px;
}
footer .inner{
 background: #fff;
 border-radius: 8px;
 align-items: center;
 padding: 52px 0 34px;
}
footer .footLogo{
 color: #005ba2;
 font-size: 30px;
 font-weight: 700;
}
footer .footLogo a{
 color: #005ba2;
}
footer p{
 font-size: 18px;
 line-height: 1.3;
}
@media screen and (min-width: 901px) {
 footer .footLogo{
  padding-left: 5.45%;
 }
 footer p{
  padding-right: 7.36%;
 }
}/*-PC only-*/

@media screen and (max-width: 900px) {/*SP footer*/
 footer .inner{
  display: flex;
  flex-flow: column;
  align-items: center;
  gap:20px 0;
 padding: 30px 0 20px;

 }
footer .footLogo{
 font-size: min(5.2vw,30px);
}
footer p{
 font-size: 16px;
 line-height: 1.4;
}

}/*-SP only-*/
/*****************  contents ***********************/
.pageTitle{
 position: relative;
 display: flex;
 align-items: center;
 background: url("../images/bg_title.svg") no-repeat left top/100% auto;
 height: 302px;
 padding-top: 78px;
}
.pageTitle::before{
 content: "";
 display: block;
 background: rgba(255,255,255,.51);
 width: 100%;
 height: 224px;
 position: absolute;
 bottom: 0;
 left: 0;
}
.pageTitle h1{
 position: relative;
 color: var(--blue);
 font-size: 54px;
 font-weight: 900;
 line-height: 1;
}
.pageTitle h1 span{
 display: block;
 margin-top: 5px;
 font-size: 18px;
 font-weight: 700;
}
@media screen and (max-width: 900px) {
.pageTitle{
 background-size:100% 150%;
 height: 45vw;
 padding-top: 50px;
}
.pageTitle::before{
 height:calc(45vw - 50px);
}
.pageTitle h1{
 font-size: min(10vw,54px);
}
.pageTitle h1 span{
 margin-top: 5px;
 font-size: 16px;
}
}/*-SP only-*/

.box{
 border-radius: 20px;
 background: #fff;
 padding: 30px 50px 36px;
 box-shadow: 0 -9px 0 0 var(--yellow);
 margin-bottom: 77px;
}
.box h2{
 border-left: 12px var(--yellow) solid;
 padding-left: 19px;
 margin-left: -13px;
 margin-bottom: 45px;
 color: var(--blue);
 font-size: 36px;
 font-weight: 700;
 line-height: 1;
}
.box h2 span{
 display: block;
 padding-top: 5px;
 font-size: 16px;
 font-weight: 500;
}
@media screen and (max-width: 900px) {
.box{
 padding: 30px 5% 36px;
 margin-bottom: 40px;
}
.box h2{
 border-left: 8px var(--yellow) solid;
 padding-left: 12px;
 margin-left: 0;
 margin-bottom: 30px;
 font-size: min(7vw,36px);
}

}/*-SP only-*/
/*----------------------------------------------
              top
---------------------------------------------*/
#mv{
 position: relative;
}
#mv::before{
 content: "";
 display: block;
 background: url("../images/mv_bg.png") no-repeat left top/100% auto;
 width: 100%;
 aspect-ratio:1400/841;
}
#mv p{
 position: absolute;
 left:0;
 right: 0;
 top: 27.8%;
 margin: auto;
 width: min(49.8vw,548px);
 text-align: center;
}

#topLead.inner{
 background: url("../images/top_bg_lead.svg") no-repeat right center;
 padding: 0 0 80px;
}
#topLead h2{
 margin-bottom: 75px;
 color: var(--red);
 font-size: 54px;
 font-weight: 900;
 line-height: 1.3;
}
#topLead p{
 margin-bottom: 1em;
 font-size: 24px;
 line-height: 2;
}
@media screen and (min-width: 901px) {

#topLead p{
 max-width: 577px;
}
}/*-PC only-*/

@media screen and (max-width: 900px) {
#topLead.inner{
 background: url("../images/top_bg_lead.svg") no-repeat right bottom 10%/90% auto;
 padding: 0 0 40px;
}

#topLead h2{
 margin-bottom:min(10vw,75px);
 font-size:min(8vw,54px) ;
}
#topLead p{
 font-size: min(4.6vw,24px);
 line-height:1.8;
}
}/*-SP only-*/


/*----------------------------------------------
              works
---------------------------------------------*/
.box .pcFlex{}
.box .pcFlex .txts p{
 font-weight: 400;
 line-height: 1.875;
}
@media screen and (min-width: 901px) {
 .box .pcFlex{
  padding-inline: 70px;
  gap:0 59px;
 }
 .box .pcFlex h2{
  margin-left: -30px;
 }
 .box .pcFlex .txts{
  width: calc(100% - min(38.5%,288px) - 59px);
  padding: 16px 0 0;
 }
 .box .pcFlex figure{
  width:min(38.5%,288px) ;
 }
}/*-PC only-*/
@media screen and (max-width: 900px) {
 .box .pcFlex figure{
  max-width: 288px;
  margin: 30px auto 0;
 }
}/*-SP only-*/

#works01{
 margin-top: 35px;
}
/*----------------------------------------------
              profile
---------------------------------------------*/
#profileArea{
 padding: 70px 0 0;
}
#profileArea figure img{
 filter: grayscale(1)
}
@media screen and (min-width: 901px) {
 #profileArea .txts{
  width: 50.3%;
 }
 #profileArea .txts p{
  font-size: 24px;
  line-height: 2;
 }
 #profileArea .txts p + p{
  margin-top: 1.0em;
 }
 #profileArea figure{
  width: 46.5%;
  max-width: 512px;
  padding-top: 10px;
 }
}/*-PC only-*/

@media screen and (max-width: 900px) {
#profileArea{
 padding: 40px 0 0;
}
 #profileArea .txts p{
  line-height: 1.8;
 }
 #profileArea .txts p + p{
  margin-top: 1.5em;
 }
 #profileArea figure{
  max-width: 512px;
  margin: 30px auto 0;
 }

}/*-SP only-*/

#company{
 margin-top: 100px;
}
.bdTable{
  border-top: 1px #cdcdcd solid;
}
@media screen and (min-width: 901px) {
.bdTable{
 display: flex;
 flex-flow: row wrap;
}
 .bdTable dt{
  border-bottom: 1px #cdcdcd solid;
  width: 18%;
  padding: 14px 0;
  font-size: 24px;
  line-height: 1.55;
 }
 .bdTable dd{
  border-bottom: 1px #cdcdcd solid;
  width: 82%;
  padding: 14px 0;
  font-size: 24px;
  line-height: 1.55;
 }
}/*-PC only-*/
@media screen and (max-width: 900px) {
#company{
 margin-top: 60px;
}
 .bdTable dt{
  padding: 10px 0 5px;
 } 
.bdTable dd{
  border-bottom: 1px #cdcdcd solid;
 padding: 0 0 10px;
}

}/*-SP only-*/

/*----------------------------------------------
              recruit
---------------------------------------------*/



/*----------------------------------------------
              contact
---------------------------------------------*/
.basicTable{
  border-top: 1px #cdcdcd solid;
}
.basicTable dt,
.basicTable dd{
 position: relative;
}
.hissu {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  background-color: var(--red);
  border-radius: 4px;
  padding: 2px 4px 4px 4px;
  color: #fff;
  font-size: 11px;
  font-weight: bold;
 line-height: 1;
}

.submitBtns{
  gap:30px;
  justify-content: center;
  margin-top: 20px
}

.submitBtns input{
  width: 40% !important;
  
}

@media screen and (min-width: 901px) {
.basicTable{
 display: flex;
 flex-flow: row wrap;
}
 .basicTable dt{
  display: flex;
  flex-flow: column;
  justify-content: center;
  border-bottom: 1px #cdcdcd solid;
  width: 23%;
  padding: 15px 0;
  font-size: 18px;
  line-height: 1.4;
 }
 .basicTable dd{
  border-bottom: 1px #cdcdcd solid;
  width: 77%;
  padding: 15px 20px;
  font-size: 18px;
  line-height: 1.4;
 }
}/*-PC only-*/
@media screen and (max-width: 900px) {
 .basicTable dt{
  padding: 10px 0 5px;
 } 
.basicTable dd{
  border-bottom: 1px #cdcdcd solid;
 padding: 0 0 10px;
}

}/*-SP only-*/

.formArea label{
 display: block;
 margin-bottom: 8px;
}
.formArea textarea{
 width: 100% !important;
 height: 200px !important;
}
.formFoot{
 margin-top: 40px;
 text-align: center;
}
.formFoot input.btn{
 border: none;
 border-radius: 10px;
 background:#fc6819;
 padding: 15px 0 15px;
 color: #fff;
 max-width: 400px;
 font-size: 24px;
 font-weight: 700;
 cursor: pointer;
}
.formFoot input.btn:hover{
 opacity: .7;
}


