@charset "UTF-8";


/* reset */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}:where([hidden]:not([hidden='until-found'])){display:none!important}:where(html){-webkit-text-size-adjust:none;color-scheme:dark light;tab-size:2;scrollbar-gutter:stable}:where(html:has(dialog:modal[open])){overflow:clip}@media (prefers-reduced-motion:no-preference){:where(html:focus-within){scroll-behavior:smooth}}:where(body){line-height:1.5;font-family:system-ui,sans-serif;-webkit-font-smoothing:antialiased}:where(button){all:unset}:where(input,button,textarea,select){font:inherit;color:inherit}:where(textarea){resize:vertical;resize:block}:where(button,label,select,summary,[role='button'],[role='option']){cursor:pointer}:where(:disabled){cursor:not-allowed}:where(label:has(>input:disabled),label:has(+input:disabled)){cursor:not-allowed}:where(a){color:inherit;text-underline-offset:.2ex}:where(ul,ol){list-style:none}:where(img,svg,video,canvas,audio,iframe,embed,object){display:block}:where(img,picture,svg,video){max-inline-size:100%;block-size:auto}:where(p,h1,h2,h3,h4,h5,h6){overflow-wrap:break-word;font-weight:500}:where(h1,h2,h3){line-height:calc(1em + 0.5rem);text-wrap:balance}:where(hr){border:none;border-block-start:1px solid;color:inherit;block-size:0;overflow:visible}:where(dialog){border:none;background:none;inset:unset;max-width:unset;max-height:unset}:where(dialog:not([open])){display:none!important}:where(:focus-visible){outline:3px solid CanvasText;box-shadow:0 0 0 5px Canvas;outline-offset:1px}:where(:focus-visible,:target){scroll-margin-block:8vh}:where(.visually-hidden:not(:focus-within,:active)){clip-path:inset(50%)!important;height:1px!important;width:1px!important;overflow:hidden!important;position:absolute!important;white-space:nowrap!important;border:0!important}

/* --------------------
   COMMON
-------------------- */
a { transition: .25s all;}
:where(html) { color-scheme: #fff;}
html {
  scroll-behavior: smooth;
  font-size: 100%;
  overflow-x: hidden;}
body {
  margin: 0;
  padding: 0;
  background: #fff;
  font-family: "Zen Old Mincho", serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
  color: #091D41;
  font-size: 100%;
  -webkit-font-smoothing: antialiased;}
.f-gothic{
  font-family: "Zen kaku Gothic New", serif;
  font-optical-sizing: auto;
  font-style: normal;
  -webkit-font-smoothing: antialiased;
}
a {
  color: #091D41;
  text-decoration: none;}
img { max-width: 100%;}
.main-bg{
  background-image: url(asset/img/common/main-bg.jpg);
  background-position: center;
  background-size: cover;
  position: fixed;
  top: 0;
  width: 100%;
  height: 100vh;
  z-index: -1;
}
.main-bg:before{
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  opacity: .16;
  background: linear-gradient(
    140deg,
    #020814,
    #0a1633,
    #1a2f5c,
    #0a1633,
    #020814
  );
  background-size:400% 400%;
  animation: gradientMove 18s ease-in-out infinite;
}

@media screen and (max-width: 480px){
  body { letter-spacing: normal;}}

@media screen and (max-width: 768px){
  .main-bg:before{
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    background-color: rgba(0, 0, 0, .2);
  }
}
@media screen and (max-width: 1280px){
  body.active,html.active { overflow-y: hidden;}}


/*フェードイン*/
.fade-inblock{
	opacity: 0;
	padding-top: 30px;
	transition: .75s;
}
.fade-inblock.fadeIn{
	padding-top: 0;
	opacity: 1;
}
@media screen and (max-width: 768px){
  .fade-inblock{
    transition: 1s;
  }
}
/* text */
p { font-size: 1rem; line-height: 1.8;}

.txs-12 { font-size: 0.75rem; }
.txs-13 { font-size: 0.8125rem; }
.txs-14 { font-size: 0.875rem; }
.txs-16 { font-size: 1rem; }
.txs-18 { font-size: 1.125rem; }
.txs-20 { font-size: 1.25rem; }
.txs-22 { font-size: 1.375rem; }
.txs-24 { font-size: 1.5rem; }
.txs-28 { font-size: 1.75rem; }
.txs-32 { font-size: 2rem; }
.txs-36 { font-size: 2.25rem; }
.txs-40 { font-size: 2.5rem; }
.txs-42 { font-size: 2.625rem; }
.txs-44 { font-size: 2.75rem; }
.txs-48 { font-size: 3rem; }
.txs-54 { font-size: 3.375rem; }
.txs-62 { font-size: 3.875rem; }
.txs-64 { font-size: 4rem; }

.l-1 { line-height: 1;}
.l-15 { line-height: 1.5;}
.l-18 { line-height: 1.8;}

.w-r { font-weight: 400;}
.w-m { font-weight: 500;}

.center { text-align: center;}
.right { text-align: right;}
.left { text-align: left;}

@media screen and (max-width: 768px){
  .txs-14 { font-size: 0.875rem;}
  .txs-16 { font-size: 1rem;}
  .txs-18 { font-size: 1.125rem;}
  .txs-20 { font-size: 1.125rem;}
  .txs-22 { font-size: 1.25rem;}
  .txs-24 { font-size: 1.375rem;}
  .txs-28 { font-size: 1.5rem;}
  .txs-32 { font-size: 1.75rem;}
  .txs-36 { font-size: 2rem;}
  .txs-40 { font-size: 1.5rem;}
  .txs-42 { font-size: 2rem;}
  .txs-44 { font-size: 2.25rem;}
  .txs-48 { font-size: 2.5rem;}
  .txs-54 { font-size: 2rem;}
  .txs-62 { font-size: 2rem;}
  .txs-64 { font-size: 2rem;}}

/* --------------------
   ALL
-------------------- */
.wrap {
  margin: 0 auto;
  max-width: 1180px;
  width: 100%;}
.contents {
  padding: 0 50px;
  position: relative;
  margin: 0 auto;
  width: 100%;}
.contents2 {
  padding: 0 6vw;
  position: relative;
  width: 100%;}
.pc { display: block;}
.pd { display: none;}
.sp { display: none;}

body .bg-wrap{
  color: #091D41;
  background-color: #F6F6F6;
}

@media screen and (max-width: 1280px){
  body { width: 100%; overflow: hidden;}}
@media screen and (max-width: 768px){
  .pc { display: none;}
  .pd { display: block;}
  .sp { display: none;}}
@media screen and (max-width: 480px){
	.contents { padding: 0 5vw;}
  .pc { display: none;}
  .pd { display: block;}
  .sp { display: block;}}

/* --------------------
   PARTS
-------------------- */
@media screen and (max-width: 480px){
}

/* --------------------
   HEADER
-------------------- */
#header{
  background-color: #F6F6F6;
  position: fixed;
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  padding: 0 0 0 3vw;
  z-index: 4;
}

#header .main-text_menu{
  display: none;
}
.head-right{
  gap: 2vw;
  display: flex;
  align-items: center;
}
.head-right_inner{
}
#header .main-links{
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 5vw;
}
#header .main-links .tell{
  padding-top: .125em;
  display: flex;
  gap: .5625em;
}
#header .main-links .tell p{
  text-align: center;
}
#header .main-links .tell i{
  width: 2em;
  padding-top: .25em;
}
#header .main-links .tell i img{
  width: 100%;
}
#header .main-links .tell strong{
  font-size: 2em;
  line-height: .75;
  display: block;
}
#header .main-links .tell span{ 
  position: relative;
  font-family: "Zen kaku Gothic New", serif;
  font-optical-sizing: auto;
  font-style: normal;
  margin-top: -0.5em;
  text-align: center;
  font-size: 0.8125em;
  display: inline-block;
}
#header .main-links .tell span:before{
  content: "[";
  position: absolute;
  left: -1em;
  top: 0;
  bottom: 0;
  margin: auto;
}
#header .main-links .tell span:after{
  content: "]";
  position: absolute;
  right: -1em;
  top: 0;
  bottom: 0;
  margin: auto;
}
#header .main-links .mail{
  display: flex;
  background-color: #091D41;
  color: #fff;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  gap: 0.5em;
  padding: .25em .5em;
  width: auto;
}
#header{
  transition: .2s;
}
@media screen and (min-width: 769px){
  #header h1{
    width: 20vw;
  }
}
@media screen and (min-width: 1024px){
  #header h1{width: auto;}
}

#header .main-text_menu{
  transition: .2s;
}
#header.active-scroll .main-text_menu{
  opacity: 0;
  position: absolute;
  z-index: -1;
  visibility: hidden;
  height: 0;
  line-height: 0;
}

.hamburger{
  background-color: #091D41;
  width: 18vw;
  height: 18vw;
  display: flex;
  justify-content: center;
  align-items: center;
}
.hamburger .line{
  background-color: #FFFF43;
  height: 1px;
  position: relative;
  width: 30%;
  transition: .2s;
}
.hamburger .line:before,
.hamburger .line:after{
  content: "";
  display: block;
  position: absolute;
  transition: .2s;
  width: 100%;
  height: 100%;
  margin: auto;
  background-color: #FFFF43;
}
.hamburger .line:before{
  top: -1.5vw;
}
.hamburger .line:after{
  bottom: -1.5vw;
}
.sp-contactbana{
  position: fixed;
  z-index: 3;
  bottom: 0;
  display: flex;
  flex-wrap: wrap;
  background-color: rgba(255,255,255,.7);
}
.sp-contactbana a{
  display: block;
  width: 50%;
  position: relative;
}
.sp-contactbana a img{
  position: relative;
}

#header.active .hamburger .line{
  background-color: transparent;
}
#header.active .hamburger .line:before{
  top: 0;
  bottom: 0;
  margin: auto;
  transform: rotate(45deg);
}
#header.active .hamburger .line:after{
  top: 0;
  bottom: 0;
  margin: auto;
  transform: rotate(-45deg);
}
.sp-contactbana a:nth-child(2)::before{
  content: "";
  position: absolute;
  display: block;
  width: calc(100% - 3vw);
  height: calc(100% - 3vw);
  background-color: #091D41;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  border-radius: 6px;
}
@media screen and (max-width: 768px){
  #header .main-links .tell{
    font-size: .75rem;
  }
  #header h1{
    width: 40vw;
  }
  #header .main-links{
    display: none;
  }
}
@media screen and (min-width: 769px){
  #header .main-text_menu a:hover{
    opacity: .7;
  }
}
@media screen and (max-width: 1280px){}
@media screen and (min-width: 1281px){}
@media screen and (min-width: 1024px){
  #header .main-text_menu{
    margin-top: 10px;
    display: flex;
    gap: 1em 2em;
  }

  #header{
    padding: 14px 6vw;
  }
  .head-right{
    gap: 20px;
  }
  .hamburger{
    transition: .2s;
    opacity: 0;
    visibility: hidden;
    position: absolute;
  }
  #header.active-scroll{
    padding-top: 0;
    padding-right: 0;
    padding-bottom: 0;
  }
  #header.active-scroll .hamburger{
    opacity: 1;
    position: relative;
    visibility: visible;
  }
}

@media screen and (min-width: 769px){
  #header .main-links{
    gap: 20px;
  }
  #header .main-links .mail{
    width: 220px;
  }
  .hamburger{
    width: 88px;
    height: 88px;
  }
  .hamburger .line{
    width: 2px;
    width: 30px;
  }
  .hamburger .line:before{
    top: -10px;
  }
  .hamburger .line:after{
    bottom: -10px;
  }
  .sp-contactbana{
    display: none;
  }
}
@media screen and (max-width: 480px){}


.flow-line{
  bottom: 20px;
  right: 0;
  position: absolute;
}
@media screen and (max-width: 768px){
  .flow-line {
    bottom: 8.5vh;
  }
  .flow-line a{
    display: block;
    width: 42vw;
  }
}
@media screen and (min-width: 769px){
  .flow-line a:hover{
    opacity: .7;
  }
}



/* --------------------
   TITLE
-------------------- */

.main-title1{
  display: block;
}
.main-title1 .en{
  padding-bottom: .5em;
  opacity: 0.5;
  font-size: .5em;
  display: block;
}
.main-title1 .jp{
  padding-top: 0.375em;
  position: relative;
  display: block;
}
.main-title1 .jp:before{
  content: "";
  display: block;
  position: absolute;
  top: 0;
  background-color: #677389;
  width: 1em;
  height: 1px;
}



.main-title2{
  display: block;
}
.main-title2 .jp{
  padding-bottom: 0.375em;
  display: block;
}
.main-title2 .en{
  position: relative;
  padding-top: 1.5em;
  font-size: .58333em;
  display: block;
}
.main-title2 .en:before{
  content: "";
  border-top: dotted 3px #A1A6B0;
  display: block;
  position: absolute;
  top: 0;
  width: 1.5em;
}
@media screen and (min-width: 769px){
  .main-title2 .en{
    font-size: .875rem;
  }
}

.main-title3{
  display: block;
  padding-bottom: calc(.625em + 3px);
  position: relative;
}
.main-title3:after{
  content: "";
  display: block;
  width: 1.215em;
  position: absolute;
  left: 0;
  bottom: 0;
  border-top: dotted 3px #A1A6B0;
}
.main-title3.nomtitle{
  padding-left: 1.5em;
}
.main-title3.nomtitle:before{
  counter-increment: listnum;
	content: counter(listnum)"."; 
  position: absolute;
  left: 0;
  color: #677389;
}
@media screen and (min-width: 769px){}



.main-title4{
  display: block;
}
.main-title4 .jp{
  padding-bottom: 0.375em;
  position: relative;
  display: block;
}
.main-title4 .jp:after{
  content: "";
  display: block;
  position: absolute;
  bottom: 0;
  background-color: #677389;
  width: 1em;
  height: 1px;
}




/* --------------------
   LINK
-------------------- */
.main-button a{
  display: flex;
  flex-wrap: wrap;
  gap: .5625em;
  align-items: center;
}
.main-button .text{
  text-decoration: underline;
}
.main-button .arow{
  display: block;
  border-radius: 50%;
  width: 2.5em;
  height: 2.5em;
  background-color: #fff;
  position: relative;
}
.main-button .arow img{
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  width: 100%;
}
@media screen and (min-width: 769px){
  .main-button .arow{
    width: 3.75em;
    height: 3.75em;
  }
}


.f_line-bana{
  background-color: #fff;
  padding: 1.5vw;
}
.f_line-bana a{
  display: block;
  border-radius: 10px;
  padding: 10px;
  text-align: center;
  background-color: #06C755;
}
.f_line-bana a img{
  max-width: 100%;
  margin: auto;
}
@media screen and (min-width: 769px){
  .f_line-bana a:hover{
    background-color: #1a2f5c;
  }
  .f_line-bana{
    padding: 24px;
  }
}

.f_contact-bana{
  display: flex;
  flex-wrap: wrap;
  background-color: #fff;
}
.f_contact-bana a{
  display: flex;
  width: 50%;
  flex-wrap: wrap;
  color: #fff;
  text-align: center;
  gap: 0.3em;
  align-items: center;
  justify-content: center;
  padding: 1em 0.5em;
  font-size: 1.25rem;
}
.f_contact-bana a:nth-child(1){
  background-color: #677389;
}
.f_contact-bana a:nth-child(2){
  background-color: #1a2f5c;
}
.f_contact-bana a img{
  height: 2em;
}
@media screen and (min-width: 769px){
  .f_contact-bana a{
    padding: 1em;
    font-size: 1.875rem;
  }
  .f_contact-bana a:hover{
    background-color: #020814;
  }
}
@media screen and (min-width: 1024px){
    .f_contact-bana a{
    padding: 2em;
  }
}
footer{
  position: relative;
  color: #fff;
}
footer{
  padding-top: 10vw;
  padding-bottom: 25vw;
}
@media screen and (min-width: 769px){
  footer{
    padding-top: 80px;
    padding-bottom: 80px;
  }
}


footer {
  position: relative;
}
footer:before{
  content: "";
  display: block;
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  backdrop-filter: blur(10px); 
}
footer .tell{
  padding-top: .125em;
  display: flex;
  gap: .5625em;
}
footer .tell p{
  text-align: center;
}
footer .tell i{
  width: 1.625rem;
  padding-top: .125em;
}
footer .tell i img{
  width: 100%;
}
footer .tell strong{
  font-size: 1.625rem;
  line-height: .75;
  display: block;
}
footer .tell span{ 
  position: relative;
  font-family: "Zen kaku Gothic New", serif;
  font-optical-sizing: auto;
  font-style: normal;
  margin-top: -0.5em;
  text-align: center;
  font-size: 0.8125em;
  display: inline-block;
}
footer .tell span:before{
  content: "[";
  position: absolute;
  left: -1em;
  top: 0;
  bottom: 0;
  margin: auto;
}
footer .tell span:after{
  content: "]";
  position: absolute;
  right: -1em;
  top: 0;
  bottom: 0;
  margin: auto;
}
footer .foot-title a{
  color: #fff;
  text-decoration: underline;
}

footer .foot-2 {
  margin-top: 5vw;
}
footer .foot-2 .copy{
  font-size: .6875rem;
  opacity: .6;
}
footer .foot-2 a{
  color: #fff;
  text-decoration: underline;
}
@media screen and (max-width: 768px){
  footer .foot-2{
    text-align: center;
  }
  footer .foot-1 .tel{
    margin: auto;
    justify-content: center;
  }
  footer .foot-title{
    display: flex;
    flex-wrap: wrap;
    gap: .1em;
    justify-content: center;
    text-align: center;
    margin-bottom: 1em;
  }
  footer .tell{
    justify-content: center;
  }
}
@media screen and (min-width: 769px){
  footer .foot-title a:hover{
    text-decoration: none;
  }
  footer .foot-title{
    display: flex;
    gap: 1.5em;
  }
  footer .foot-2{
    margin-top: 70px;
    display: flex;
    flex-direction: row-reverse;
    align-items: center;
    justify-content: space-between;
  }

}
@media screen and (min-width: 1024px){
  footer .foot-1{
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
}


#hdnav {
  box-shadow: 0 0 10px rgba(0,100,149,0.5);
  transition: 2s;
  background: rgba(9,29,65,0.95);
  width: 100%;
  transition: .2s;
  max-width: 600px;
  height: 100%;
  position: fixed;
  justify-content: center;
  align-items: center;
  top: 0;
  overflow: scroll;
  right: 0;
  color: #fff;
  z-index: -1;
  opacity: 0;
  display: flex;
  visibility: hidden;
}
#hdnav a{
  color: #fff;
}
#hdnav.active {
  opacity: 1;
  visibility: visible;
  z-index: 3;
  -ms-filter: blur(0);
  filter: blur(0);}

  #hdnav li+li{
    margin-top: .5em;
  }
  #hdnav .contact-box .txs-54{
    line-height: 1;
    margin-top: 0.5em;
  }
  #hdnav .contact-box .txs-14{
    text-align: center;
    line-height: 1;
    margin-top: .5em;
  }


.dot-list li{
  position: relative;
  padding-left: 1em;
  line-height: 2;
}
.dot-list li:before{
  content: "・";
  position: absolute;
  left: 0;
}