@charset "utf-8";

/*
Theme Name: ichimujin2023
*/
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;700&family=Noto+Sans+JP:wght@300;400;500;700;900&display=swap');


/* 
html5doctor.com Reset Stylesheet
v1.6.1
Last Updated: 2010-09-17

*/
html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
    margin:0;
    padding:0;
    border:0;
    outline:0;
    font-size:100%;
    vertical-align:baseline;
    background:transparent;
	box-sizing: border-box;
}

body {
    line-height:1;
}

article,aside,details,figcaption,figure,
footer,header,hgroup,menu,nav,section { 
	display:block;
}

ul,ol {
    list-style:none;
}

blockquote, q {
    quotes:none;
}

blockquote:before, blockquote:after,
q:before, q:after {
    content:'';
    content:none;
}

a {
    margin:0;
    padding:0;
    font-size:100%;
    vertical-align:baseline;
    background:transparent;
}

/* change colours to suit your needs */
ins {
    background-color:#ff9;
    color:#000;
    text-decoration:none;
}

/* change colours to suit your needs */
mark {
    background-color:#ff9;
    color:#000; 
    font-style:italic;
    font-weight:bold;
}

del {
    text-decoration: line-through;
}

abbr[title], dfn[title] {
    border-bottom:1px dotted;
    cursor:help;
}

table {
    border-collapse:collapse;
    border-spacing:0;
}

/* 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 {
    vertical-align:middle;
}
img{
	vertical-align:bottom;
	max-width: 100%;
 height: auto;
}

*{
 box-sizing: border-box;
}
/************** layout base ********************/

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




a{color:#000;
	text-decoration:none;
	-webkit-transition: 0.2s ease-in-out;  
       -moz-transition: 0.2s ease-in-out;  
         -o-transition: 0.2s ease-in-out;  
            transition: 0.2s ease-in-out; 
}
a::after,a::before{
	-webkit-transition: 0.2s ease-in-out;  
       -moz-transition: 0.2s ease-in-out;  
         -o-transition: 0.2s ease-in-out;  
            transition: 0.2s ease-in-out;}
a:hover{
}
a:visited{}

/*ボタンrollover*/
main a:hover{
-moz-opacity:0.60;
opacity:0.60;
/*cursor: url("img/common/c-point.webp"),pointer*/
}

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 !important;
}
.txtRight{
text-align:right;
}
.txtCenter{
text-align:center;
}
@media screen and (min-width: 769px) {
  .pcTxtCenter{
    text-align:center;
  }
}/* //end for PC */

.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;}

.txtRed{ color:#D80000;}
.note{ color:#666666; font-size:12px;}

.fLeft{ float:left;}
.fRight{ float:right;}
.fNon{
	float:none !important;
}

.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;}

.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;}
.mBtm60{ margin-bottom:60px !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;}
.pBtm60{ padding-bottom:60px !important;}


.flex{	
 display: -webkit-box;
	display: -webkit-flex;
	display: -ms-flex;
	display: flex;
 flex-flow: row wrap;
}
.inner{
 padding: 0 4%;
 max-width: 1000px;
 margin: 0 auto;
 box-sizing: content-box;
}
@media screen and (min-width: 769px) {
.pcFlex{
 display: -webkit-box;
	display: -webkit-flex;
	display: -ms-flex;
	display: flex;
 flex-flow: row wrap;
justify-content: space-between;
 }
.spOnly{ display:none; }

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

}/*spOnly*/

/************** layout base ********************/
body{
 position: relative;
background:#fff;
text-align:center;
		font-family: 'Noto Sans JP',"游ゴシック", YuGothic, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
line-height:1.2;
 font-weight: 400;
}
:root{
 --basegr:#9ecc6b;
 --basebl:#0067b2;
 --basegray:#edf4f7;
}/*var(--basegr)*/

div,p,dl{
text-align:left;
}

p,dt,dd,li,td,th{
color:#000000;
font-size:15px;
line-height:2.3;
 letter-spacing: 0.05em;
}
h1,h2,h3,h4,h5,h6{
color:#000000;
font-weight: 700;
text-align: left;
letter-spacing: 0.1em;
}
h2{
 color: var(--basebl);
font-size:35px;
}
.fontG{
		font-family: 'Noto Sans JP',"游ゴシック", YuGothic, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
}
.fontMin{
	font-family: "游明朝" , "Yu Mincho" , "游明朝体" , "YuMincho" , "ヒラギノ明朝 Pro W3" , "Hiragino Mincho Pro" , "HiraMinProN-W3" , "HGS明朝E" , "ＭＳ Ｐ明朝" , "MS PMincho" , serif;	
}
.fontM{font-family: 'Montserrat', sans-serif;}
.txtV{-ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
}



@media screen and (max-width: 768px) {
	body{
		font-family: 'Noto Sans JP', Roboto, “Droid Sans”, "游ゴシック", YuGothic, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;	
-webkit-text-size-adjust: 100%;
	}
img{
	height: auto;}

p,dt,dd,li,td,th{
font-size:14px;
line-height:2;
}
h2{
font-size:25px;
}
}/*-sp end-*/
/*------------------ 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: fixed;
	left: 0;
	top: 0;
 display: flex;
 justify-content: space-between;
 align-items: center;
 width: 100%;
 height: 93px;
 padding: 0 45px;
 z-index: 9999;
}
header.scroll{
 background: #fff;
}
#logo{
 max-width: 313px;
 line-height: 0;
}
#logo img{ 
  transition: 0.2s ease-in-out; 
 }
.scroll #logo{
  background: url("img/logo_blue.webp") no-repeat left top/100% auto;
}
.scroll #logo img{
  opacity: 0;
 }

@media screen and (max-width: 768px) {/*----SP header----*/	
header{
 height: 62px;
 padding: 0 3.7%;
}
#logo{
 position: relative;
 width: 64.5%;
 max-width: 223px;
 z-index: 1;
}

 header.active #logo{
  background: url("img/logo_blue.webp") no-repeat left top/100% auto;
 }
 header.active #logo img{
  opacity: 0;
 }

#spMenu{
 position: relative;
	width:25px;
	height:21px;
 z-index: 2;
}
 #spMenu::before,
 #spMenu span::before,
 #spMenu span::after{
   content: "";
   display: block;
   background: #fff;
   width: 100%;
   height: 2px;
   position: absolute;
   top: 50%;
   left: 0;
   right: 0;
   margin: auto;
   -webkit-transition: 0.2s ease-in-out;  
       -moz-transition: 0.2s ease-in-out;  
         -o-transition: 0.2s ease-in-out;  
            transition: 0.2s ease-in-out; 
 }
 #spMenu::before{
  margin-top: -1px;
 }
 .scroll #spMenu::before,
 .scroll #spMenu span::before,
 .scroll #spMenu span::after{
   background: var(--basebl);
 }
 #spMenu span::before{
  top: 0;
 }
 #spMenu span::after{
  top: auto;
  bottom: 0;
 }
 #spMenu span{
  display: block;
 }
 #spMenu.active{
 }
 #spMenu.active::before{
  opacity: 0;
 }
 #spMenu.active span::before,
 #spMenu.active span::after{
  background: var(--basebl);
  top: 50%;
  bottom: auto;
 }
 #spMenu.active span::before{
  -webkit-transform: rotate(40deg);
transform: rotate(40deg);
 }
 #spMenu.active span::after{
  -webkit-transform: rotate(-40deg);
transform: rotate(-40deg);
 }
 #gNavi{
  position: absolute;
  top: -100vh;
  left: 0;
  background:#fff;
  width: 100%;
  min-height: 100vh;
 max-height: 100vh ;
  padding: 62px 0 1px;
 overflow-y: auto;
 opacity: 0;
  -webkit-transition: 0.2s ease-in-out;  
       -moz-transition: 0.2s ease-in-out;  
         -o-transition: 0.2s ease-in-out;  
            transition: 0.2s ease-in-out;
 }
 .active #gNavi{
  height: auto;
 top:0;
  opacity: 1;
 }
}/*-SP-*/

/**  navi **/
#gNavi{
}
#gNavi ul{
 }
#gNavi ul li a{
 display: block;
 font-size: 14px;
}
#gNavi li span{
 font-family: 'Montserrat', sans-serif;
 font-size: 12px;
}
#gNavi .contact{
 width: 177px;
}
#gNavi .contact a{
 position: relative;
 border-radius: 27px;
 display: flex;
 align-items: center;
 justify-content: center;
 border: 1px var(--basegr) solid;
 background: var(--basegr);
 height: 53px;
 padding: 0 13px 0 0;
 color: #fff;
 font-size: 15px;
 font-weight: 700;
}
#gNavi .contact a::after{
 content: "";
 display: block;
 background: url("img/ic_mail_wt.webp") no-repeat left top/100% auto;
 width: 18px;
 height: 14px;
 position: absolute;
 top: 0;
 bottom: 0;
 right: 20px;
 margin: auto;
}

@media screen and (min-width: 769px) {
 #gNavi{
 }
#gNavi >ul{
  flex-flow: row nowrap;
 justify-content: flex-end;
 align-items: center;
 }
#gNavi >ul>li:not(.contact){
 width: 10.3vw;
 max-width: 148px;
}
#gNavi >ul>li>a{
 position: relative; 
 display: flex;
 flex-flow: column;
 justify-content: center;
 align-items: center;
 height: 100%;
 padding:3px 5px;
 color: #fff;
 font-size: 14px;
 font-weight: 700;
 line-height: 1.7;
}
 #gNavi >ul>li + li:not(.contact){
  border-left: 1px #fff solid;
 }
 
 .scroll #gNavi >ul>li:not(.contact)>a{
  color: var(--basebl);
 }
 .scroll #gNavi >ul>li + li:not(.contact){
  border-color: #edf4f7;
 }
 }/*-PC only-*/

@media screen and (max-width: 768px) {/*----SP gnavi----*/
 #gNavi{
 }
 #gNavi>ul{
  overflow: hidden;
  margin: 4vh 4vw 0;
 }

 #gNavi>ul>li:not(.contact){
  border-bottom: 1px #edf4f7 solid;
 }
#gNavi li a{
 display: block;
 padding: 2.5vh 0;
 color: var(--basebl);
 font-weight: 700;
 text-align: left;
}
 #gNavi li a span{
  display: none;
 }
#gNavi .contact{
 width: 250px;
 margin: 7.7vh auto 8.7vh;
}
 #gNavi p{
  font-size: 13px;
  text-align: center;
 }

 
}/*-SP-*/

/*****************  footer ***********************/
#pageTop {
 position: fixed;
 left: 50px;
 bottom: 60px;
 font-size: 15px;
 font-weight: 700;
 z-index: 100;
 line-height: 1;
 cursor: pointer;
}
@media screen and (min-width: 769px) {
#pageTop span{
 -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
}

}/*-PC only-*/
#pageTop::before,
#pageTop::after{ 
	content: "";
	display: block;
 background: #000;
	width: 1px;
	height: 54px;
 margin: 0 auto 12px;
}
#pageTop::after{
 position: absolute;
 top: 0;
 left: 50%;
 height: 8px;
 margin: 0;
	-webkit-transform: rotate(45deg);
transform: rotate(45deg);
 transform-origin: left top;
}

/**/
footer{
 position: relative;
 background: #000000;
 padding: 52px 4% 46px;
}
footer *{
 color: #fff;
}
footer ul{
 font-size: 0;
 text-align: center;
}
footer ul li{
 display: inline-block;
}
footer ul li::after{
 content: "|";
}
footer ul li:last-child::after{
 content: "";
}
footer ul li a{
 padding: 0 1em;
}
footer ul li:first-child a{
 padding-left: 0;
}
footer ul li:last-child a{
 padding-right: 0;
}

#footLogo{
 max-width: 74px;
 margin: 48px auto 10px;
 text-align: center;
 line-height: 1;
}
footer small{
	display: block;
	font-size: 13px;
 letter-spacing: 0.05em;
 text-align: center;
}
@media screen and (max-width: 768px) {/*SP footer*/
#pageTop {
 position:relative;
 left: 0;
 bottom: 0;
 background: #edf4f7;
 padding: 0 0 18px;
 text-align: center;
}
#pageTop::before{ 
	height: 21px;
 margin: 0 auto 5px;
}
#pageTop::after{
 height: 8px;
}
/**/
footer{
 padding-top: 65px;
 padding-bottom: 60px;
}
 footer ul li{
  font-size: 13px;
 }
#footLogo{
 margin: 30px auto 18px;
}
footer small{
 font-size: 11px;
}
}/*-SP only-*/


/*****************  common layout ***********************/
main{
 overflow: hidden;
}
section{
 position: relative;
}
section:not(#topMv) h2{
 background: url("img/ic_ttl.webp") no-repeat left center/35px auto;
 padding-left: 48px;
 line-height: 35px;
}
/*title*/
.pageTitle{}
/*btn*/
.btnBase{
 position: relative;
 border-radius: 33px;
 display: flex;
 justify-content: center;
 align-items: center;
 border: 1px var(--basegr) solid;
 background: var(--basegr);
 width: 100%;
 max-width: 250px;
 height:65px ;
 color: #fff;
 font-weight: 700;
 text-align: center;
}
.btnBase[target="_blank"]{
 padding-right: 8px;
}
.btnBase[target="_blank"]::after{
 content: "";
 display: block;
 background: url("img/ic_window_wt.webp") no-repeat left top/100% auto;
 width: 16px;
 height: 16px;
 position: absolute;
 right: 28px;
 top: 50%;
 margin-top: -8px;
}

.btnBase.pdf::after{
 background: url("img/ic_pdf_wt.webp") no-repeat left top/100% auto;
 width: 16px;
 height: 20px;
 margin-top: -10px;
}

@media screen and (max-width: 768px) {/*SP btn*/

}/*-SP only-*/


/*****************  TOP ***********************/
#topMv{
 position: relative;
 background: url("img/mv_bg_txt.webp") no-repeat left -1px bottom -2px/calc(100% + 1px) auto,url("img/mv_bg.webp") no-repeat center bottom/cover;
 height: 900px;
 padding-top: 100px;
}
#topMv .inner{
 max-width: 1120px;
}
@media screen and (min-width: 1440px) {
 #topMv figure{
 position: fixed;
 top: 100px;
 left: 50%;
 width: 62vw;
 max-width: 893px;
  margin-left: -683px;
 /*margin-left: -5.5%;
 margin-right: -14.6%*/
}
}
@media screen and (min-width: 769px) and (max-width: 1439px){
#topMv figure{
 position: fixed;
 top: 100px;
 left: 50%;
 width: 62vw;
 max-width: 893px;
 margin-left: -47vw;
 /*margin-left: -5.5%;
 margin-right: -14.6%*/
}
}/*-PC only-*/
@media screen and (min-width: 769px) {
 #topMv .inner{
  align-items: flex-start;
  justify-content: flex-end;
 }
 #topMv .txt{
  width: 39.5%;
  max-width: 440px;
  padding: 190px 0 0;
 }

}/*-PC only-*/

#topMv figure.fixed{
 position: fixed;

}
#topMv figure img{
 -webkit-transition: 0.2s ease-in-out;  
       -moz-transition: 0.2s ease-in-out;  
         -o-transition: 0.2s ease-in-out;  
            transition: 0.2s ease-in-out; 
}
#topMv figure.change{
 position: absolute;
 top: calc(100% + 100px);
 background: url("img/about_img.webp") no-repeat left top/100% auto;
}
#topMv figure.change img{
 opacity: 0;
}

#topMv .txt *{
 color: #fff;
}
#topMv .txt h2{
 margin-bottom: 45px;
 line-height: 1;
}
#topMv .txt h3{
 display: flex;
 align-items: center;
 margin-bottom: 25px;
 font-size: 24px;
 white-space: nowrap;
}
#topMv .txt h3::after{
 content: "";
 display: block;
 background: #ffffff;
 height: 1px;
 width: calc(100% - 12em - 24px);
 margin-left: 24px;
}
#topMv .txt p{
 font-size: 18px;
 font-weight: 700;
 line-height: 2;
}

#topMv .scroll a{
 position: absolute;
 right: 50px;
 top: 50%;
 color: #fff;
 font-size: 15px;
 font-weight: bold;
 font-family: 'Montserrat', sans-serif;
 line-height: 1;
}
#topMv .scroll a::before,
#topMv .scroll a::after{
 content: "";
 display: inline-block;
 background: #fff;
 width: 1px;
 height: 54px;
 margin-top: 12px;
}
#topMv .scroll a::before{
 position: absolute;
 bottom: -0.5px;
 left: 50%;
 height: 8px;
 margin: 0;
 -webkit-transform: rotate(45deg);
transform: rotate(45deg);
 transform-origin: left bottom;
}
@media screen and (min-width: 769px) {
 #topMv .scroll a{
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
 }
}/*-PC only-*/

@media screen and (max-width: 768px) {
#topMv{
 position: relative;
 background: url("img/mv_bg_txt.webp") no-repeat left 53% /100% auto,url("img/mv_bg.webp") no-repeat center bottom/cover;
 min-height: 100vh;
 min-height: 100svh;
 height:auto;
 padding-top:calc(6.89vh + 116.7vw);
 padding-bottom: 60px;
}
#topMv figure{
 position: fixed;
 top: 6.89vh;
 left: 0;
 width: 113.99vw;
	z-index: 100	
}

#topMv figure.change{
 position: absolute;
 top: calc(100% + 90px);
 left: -4vw;
 right: 0;
 margin: auto;
 background: url("img/about_img_sp.webp") no-repeat left top/100% auto;
 width: 63.61vw;
} 
 
 #topMv .txt{
  margin-top: -26vw
 }
#topMv .txt h2{
 width: 63.5vw;
 margin-bottom: 3vh;
}
#topMv .txt h3{
 margin-bottom: 0.8vh;
 font-size: 19px;
}
#topMv .txt h3::after{
 margin-left: 16px;
}
#topMv .txt p{
 font-size: 16px;
}

#topMv .scroll a{
 position: absolute;
 right: auto;
 left:0;
 top: auto;
 bottom:2.3vh;
 width: 100%;
 text-align: center;
 font-size: 12px;
	z-index: 1
}
#topMv .scroll a::before,
#topMv .scroll a::after{
 content: "";
 display: block;
 background: #fff;
 width: 1px;
 height: 22px;
 margin: 7px auto 0;
}
#topMv .scroll a::before{
 position: absolute;
 bottom: -0.5px;
 left: 50%;
 height: 8px;
 margin: 0;
 -webkit-transform: rotate(45deg);
transform: rotate(45deg);
 transform-origin: left bottom;
}
}/*-SP only-*/

/*  about
---------------------*/
#about{
 padding: 185px 0 260px;
}
#about::before{
 content: "About us";
 color: #edf4f7;
 font-size: 190px;
 font-weight: 700;
 font-family: 'Montserrat', sans-serif;
 letter-spacing: 0.05em;
 line-height: 1;
 position: absolute;
 right: 0;
 top: 75px;
 z-index: -1;
}
#about .inner{
 max-width: 1150px;
}
#about h2{
 margin-bottom: 56px;
}
#about h3{
 display: flex;
 justify-content: space-between;
 align-items: center;
 margin-bottom: 15px;
 white-space: nowrap;
 font-size: 24px;
}
#about h3::after{
 content: "";
 display: block;
 background: #000;
 width: calc(100% - 12em - 12px);
 height: 1px;
}
#about p{
 font-size: 18px;
 font-weight: 700;
 line-height: 2.8;
}
#about p + p{
 margin-top: 2.8em;
}
@media screen and (min-width: 769px) {
 #about .inner{
  justify-content: flex-end;
 }
 #about .inner .txt{
  width: 38%;
  max-width:435px ;
 }
}/*-PC only-*/
@media screen and (max-width: 768px) {
#about{
 padding: 90px 0 150px;
}
#about::before{
 font-size: 65px;
 right: 0;
 top: 25px;
}

 /*#about figure{
  width: 63.6vw;
 }*/
 #about .txt{
  margin-top: 76.3vw;
 }
#about h2{
 margin-bottom: 30px;
}
#about h3{
 display: flex;
 justify-content: space-between;
 align-items: center;
 margin-bottom: 15px;
 white-space: nowrap;
 font-size: 18px;
}
#about h3::after{
 content: "";
 display: block;
 background: #000;
 width: calc(100% - 12em - 12px);
 height: 1px;
}
#about p{
 font-size: 15px;
 line-height: 2.4;
}
#about p + p{
 margin-top: 2.4em;
}
}/*-SP only-*/



/*  service
---------------------*/
#service{
 border-radius: 150px 0 0 150px;
 background: #edf4f7;
 padding: 310px 0 150px;
 z-index: 1;
}
#service::before{
 content: "Service";
 display: block;
 border-radius: 0 50px 0 0;
 background: #edf4f7;
 padding: 30px 4.44vw 100px 0;
 color: #fff;
 font-size: 174px;
 font-weight: 700;
 font-family: 'Montserrat', sans-serif;
 letter-spacing: 0.05em;
 line-height: 1;
 position: absolute;
 left: 0;
 top: 175px;
 z-index: -1;
}
#service .img{
 border-radius: 50px 0 0 50px; 
 width: 65.5%;
 max-width: 943px;
 box-shadow: 30px 30px 25px 0 rgba(0,0,0,.05);
 position: absolute;
 top: -140px;
 right: 0;
 z-index: -2;
}
#service h2{
 margin-bottom: 35px;
}
#service h2 + p{
 max-width: 518px;
 font-size: 18px;
 font-weight: 700;
 line-height: 2.5;
}
#service ul{
 margin: 110px 0 0;
}
@media screen and (min-width: 769px) {
 #service ul{
  gap:80px 0;
 }
 #service ul li{
  width: 47.2%;
 }
}/*-PC only-*/
#service ul figure{
 border-radius: 15px;
 margin: 0 0 30px;
 box-shadow: 20px 20px 20px 0 rgba(0,0,0,.15);
}
#service ul h3{
 margin-bottom: 15px;
 color: var(--basebl);
 font-size: 25px;
}
#service ul h3::after{
 content: "";
 display: block;
 background: var(--basegr);
 width: 36px;
 height: 2px;
}
#service ul .btn{
 margin-top: 24px;
}

@media screen and (max-width: 768px) {
#service{
 border-radius: 50px 0 0 50px;
 padding: 120px 0 110px;
}
#service::before{
 border-radius: 0 15px 0 0;
 padding: 14px 18px 30vw 0;
 font-size: 65px;
 left: 4vw;
 top: 50px;
 z-index: -1;
}
#service .img{
 overflow: hidden;
 border-radius: 20px 0 0 20px; 
 width: 77.6%;
 box-shadow: 30px 30px 25px 0 rgba(0,0,0,.05);
 top: -80px;
}
#service h2{
 margin-bottom: 20px;
}
#service h2 + p{
 font-size: 15px;
 line-height: 2.4;
}
#service ul{
 margin: 35px 0 0;
}
 #service ul li + li{
  margin-top: 80px;
 }
#service ul figure{
 border-radius: 10px;
 margin: 0 9% 26px;
 box-shadow: 10px 10px 20px 0 rgba(0,0,0,.2);
}
#service ul h3{
 margin-bottom: 15px;
 font-size: 20px;
}
#service ul h3::after{
 width: 40px;
 margin-top: 10px;
}
#service ul .btn{
 margin-top: 16px;
}
 #service ul .btn a{
  margin: 0 auto;
 }
}/*-SP only-*/



/*  FAQ
---------------------*/
#faq{
 padding-top: 175px;
 padding-bottom: 150px;
}
#faq::before{
 content: "FAQ";
 color: #edf4f7;
 font-size: 190px;
 font-weight: 700;
 font-family: 'Montserrat', sans-serif;
 letter-spacing: 0.05em;
 line-height: 1;
 position: absolute;
 right: 0;
 top: 45px;
 z-index: -1;
}
#faq h2{
 margin-bottom: 35px;
}
#faq h2 + p{
 font-size: 18px;
 font-weight: 700;
}

.faqList{
 margin-top: 30px;
}
.faqList dt{
 position: relative;
 border-bottom: 1px #000 solid;
 padding: 20px 88px 24px 70px;
 font-size: 18px;
 font-weight: 700;
 letter-spacing: 0.15em;
 cursor: pointer;
}
.faqList dt::before{
 content: "Q";
 display:flex;
 align-items: center;
 justify-content: center;
 border-radius: 50%;
 background: var(--basebl);
 width: 40px;
 height: 40px;
 color: #fff;
 font-size: 21px;
 font-weight: bold;
 font-family: 'Montserrat', sans-serif;
 line-height: 1;
 position: absolute;
 left: 12px;
 top: 20px;
}
.faqList dt .ic{
 display: block;
 width: 26px;
 height: 26px;
 position: absolute;
 right: 32px;
 top: 29px;
}
.faqList dt .ic::before,
.faqList dt .ic::after{
 content: "";
 display: block;
 background: #000;
 width: 100%;
 height:1px;
 position: absolute;
 top: 0;
 bottom: 0;
 margin: auto;
 -webkit-transition: 0.2s ease-in-out;  
       -moz-transition: 0.2s ease-in-out;  
         -o-transition: 0.2s ease-in-out;  
            transition: 0.2s ease-in-out; 
}
.faqList dt .ic::after{
 -webkit-transform: rotate(90deg);
transform: rotate(90deg);
}
.faqList dt.active{
 border-bottom-color: #fff;
 color: var(--basebl);
}
.faqList dt.active .ic::after{
transform: rotate(0deg);
}

.faqList dd{
 position: relative;
 background:#edf4f7 ;
 padding: 20px 88px 20px 70px;
}
.faqList dd::before{
 content: "A";
 display:flex;
 align-items: center;
 justify-content: center;
 border-radius: 50%;
 background: var(--basegr);
 width: 40px;
 height: 40px;
 color: #fff;
 font-size: 21px;
 font-weight: bold;
 font-family: 'Montserrat', sans-serif;
 line-height: 1;
 position: absolute;
 left: 12px;
 top: 20px;
}

@media screen and (max-width: 768px) {
 #faq{
 padding-top: 80px;
 padding-bottom: 150px;
}
#faq::before{
 font-size: 65px;
 right: 0;
 top: 15px;
}
#faq h2{
 margin-bottom: 16px;
}
#faq h2 + p{
 font-size: 15px;
}

.faqList{
 margin-top: 30px;
 border-top: 1px #000 solid;
}
.faqList dt{
 position: relative;
 border-bottom: 1px #000 solid;
 padding: 16px 62px 15px 50px;
 font-size: 17px;
}
.faqList dt::before{
 content: "Q";
 width: 30px;
 height: 30px;
 font-size: 15px;
 left: 8px;
 top: 20px;
}
.faqList dt .ic{
 width: 22px;
 height: 22px;
 right: 12px;
 top:22px; 
}
.faqList dd{
 padding: 16px 28px 15px 50px;
}
.faqList dd::before{
 content: "A";
 width: 30px;
 height: 30px;
 font-size: 15px;
 left: 8px;
 top: 20px;
}

}/*-SP only-*/


/*  company
---------------------*/
#company{
 border-radius:0 150px 0 0;
 background: #edf4f7;
 padding: 315px 0 115px;
 z-index: 1;
 margin-top: 100px;/*FAQ コメントアウト時用*/
}
#company::before{
 content: "Company";
 display: block;
 color: #fff;
 font-size: 139px;
 font-weight: 700;
 font-family: 'Montserrat', sans-serif;
 letter-spacing: 0.05em;
 line-height: 1;
 position: absolute;
 right: 0;
 top: 175px;
 z-index: -1;
}
#company .img{
 overflow: hidden;
 border-radius:0 50px 50px 0;
 width: 45.5%;
 max-width: 650px;
 box-shadow: 15px 20px 80px 0 rgba(0,0,0,.1);
 position: absolute;
 top: 148px;
 left: 0;
 z-index: -2;
}
@media screen and (min-width: 769px) {
 #company .inner{
  position: relative;
  z-index: 1;
  padding-top: 90px;
 }
 #company .inner::before{
  content: "";
  display: block;
  border-radius: 50px 0 0 0;
  background: #edf4f7;
  width: 71%;
  max-width: 790px;
  height: 100%;
  position: absolute;
  top: 0;
  right: 4vw;
  z-index: -1;
 }
 #company h2{
  max-width: 686px;
  margin: 0 0 35px auto;
 }
#company dl{
 max-width: 686px;
 margin: 0 0 0 auto;
}
}/*-PC only-*/
#company dl{
 display: flex;
 flex-flow: row wrap;
}
 #company dl dt{
  border-bottom: 1px #fff solid;
  width: 154px;
  padding: 20px 0 20px 6px;
  color: var(--basebl);
  font-size: 16px;
  font-weight: 700;
}
 #company dl dd{
  width: calc(100% - 154px);
  border-bottom: 1px #fff solid;
  padding: 22px 5px 22px 0px;
}
#company dl dt:last-of-type,
#company dl dd:last-of-type{
 border-bottom: none;
}
#company dl dd ul li{
 position: relative;
 padding: 0 0 0 20px;
 line-height: 2.1;
}
#company dl dd ul li + li{
 margin-top: 8px;
}
#company dl dd ul li::before{
 content: "■";
 position: absolute;
 top: 0;
 left: 0;
}

@media screen and (max-width: 768px) {
#company{
 border-radius:0 50px 0 0;
 padding: 130px 0 20px;
}
#company::before{
 border-radius: 15px 0 0 0;
 background: #edf4f7;
 padding: 18px 4vw 30vw 30px;
 font-size: 46px;
 right: 0;
 top: 50px;
}
#company .img{
 border-radius:0 20px 20px 0;
 width: 77.6%;
 box-shadow: 10px 10px 20px 0 rgba(0,0,0,.1);
 top: -80px;
}
 #company h2{
  max-width: 245px;
  margin: 0 0 20px auto;
 }
 #company dl{
  border-radius: 15px;
 background: #edf4f7;
}
 #company dl dt{
  width: 110px;
  padding: 20px 0 20px 6px;
  font-size: 16px;
}
 #company dl dd{
  width: calc(100% - 110px);
  padding: 20px 5px 20px 0px;
}
#company dl dd ul li{
 line-height: 2.2;
}
}/*-SP only-*/


/*  access
---------------------*/
#access{
 background: url("img/access_bg.webp") no-repeat left top/cover;
 padding: 135px 0 140px;
 z-index: 0;
}
#access::before{
 content: "Access";
 display: block;
 opacity: .1;
 color: #fff;
 font-size: 190px;
 font-weight: 700;
 font-family: 'Montserrat', sans-serif;
 letter-spacing: 0.05em;
 line-height: 1;
 position: absolute;
 right: 0;
 top: 137px;
 z-index: -1;
}
section#access h2{
 background-image: url("img/ic_ttl02.webp");
 margin-bottom: 25px;
 color: #fff;
}
#access p,
#access p a{
 color: #fff;
}
#access p span{
 font-size: 17px;
 font-weight: 700;
}
#access .map{
 margin-top: 25px;
 line-height: 1;
}

@media screen and (max-width: 768px) {
#access{
 padding: 90px 0 100px;
}
#access::before{
 font-size: 65px;
 right: 0;
 top: 18px;
}
#access h2{
 margin-bottom: 25px;
}
#access .map{
 margin-top: 25px;
 line-height: 1;
}
 #access .map iframe{
  height: 93.6vw;
  max-height: 450px;
 }

}/*-SP only-*/

/*--------------------*/
.js-txtanime span{
 display: inline-block;opacity: 0;}
.js-txtanime.appeartext span{ animation:text_anime_on 0.5s ease-out forwards; }
@keyframes text_anime_on {
  0% {opacity:0;
 transform: translate(0, 80%);}
  100% {opacity:1;
 transform: translate(0, 0);}
}
