@charset "UTF-8";
/*

Poppins:wght@500;600&family=Prompt&family=Shippori+Mincho+B1:wght@500

font-family: 'Poppins', sans-serif;
font-family: 'Prompt', sans-serif;
font-family: 'Shippori Mincho B1', serif;
*/
body,
select {
  font-family: YakuHanJP, 'Noto Sans JP', YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";
  font-weight: 400;
  letter-spacing: 0.15rem;
  font-feature-settings: "palt";
  color: #262253;
}
.mincho { font-family: 'Shippori Mincho B1', serif;}
.en,.tel,
.date, .copy, .time {
  font-family: 'Poppins', sans-serif;
  letter-spacing: 0.2rem;
  font-weight: 500;
}
#gnav a { font-weight: 400;}

.jp strong, strong.jp { font-weight: 600;}

#body {
  opacity: 0;
  position: fixed;
  pointer-events: none;
  transition: opacity 0.5s ease;
  min-width: 1280px;
  display: flow-root;
}
body.loaded #body {
  opacity: 1;
  position: relative;
  pointer-events: auto;
}
body.loading #body { display: none;}

/*				reset
====================================================*/
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, dialog, figure, footer, header, hgroup, menu, nav, section, time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  vertical-align: baseline;
  background: transparent;
}
html, body {
  font-size: 62.5%;
}
body {
  line-height: 1;
  background: #fff;
}

#body {
  font-size: 1.6rem;
  line-height: 2;
}
sup.supText {
	font-size: 70%;
	vertical-align: top;
	position: relative;
	top: 0.2em;
}
.contents sup:not(.supText) {
	font-size: 70%;
	vertical-align: top;
	position: relative;
	top: 0;
}

main, article, aside, dialog, figure, footer, header, hgroup, nav, section {
  display: block;
}

nav ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

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

a {
  margin: 0;
  padding: 0;
  border: 0;
  vertical-align: baseline;
  background: transparent;
  color: #262253;
  text-decoration: none;
  transition: color 0.5s ease;
}
main a { transition: all 0.5s ease;}
#menu-btn:hover,
#gnav a:hover,
main a:hover,
footer a:hover {
  text-decoration: none;
  /*animation: flash 0.5s ease;*/
}

main a:hover .zoom,
main .zoom a:hover,
main a.zoom:hover { animation: none;}


ins {
  background-color: #ff9;
  color: #000;
  text-decoration: none;
}

mark {
  background-color: #ff9;
  color: #000;
  font-style: italic;
}

del {
  text-decoration: line-through;
}

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

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

hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #4a4846;
  margin: 6rem 0 3rem;
  padding: 0;
}


h1, h2, h3, h4, h5, h6 {
  font-weight: normal;
  font-size: 1.4rem;
}

li {
  list-style: none;
}

img { vertical-align:top;}

*, *::before, *::after {
    box-sizing: content-box;
}
*, *::before, *::after {
    box-sizing: content-box;
}


.sp { display: none;}

img { max-width: 100%;}
p { margin-top:2.2rem; }

br.mt15 { content:""; line-height: 0; display:block; margin-top:15px;}

@keyframes flash {
	 0% { opacity: 1; }
    10% { opacity: 0.6; }
	100% { opacity: 1; }
}
.flash:hover{ animation: flash 1s 1 ease; text-decoration: none;}

@keyframes bright {
	 0% { filter: brightness(115%); }
	100% { filter: brightness(100%); }
}
.bright:hover{ animation: bright 1s 1 ease; text-decoration: none;}

@keyframes bright2 {
	 0% { filter: brightness(130%); }
	100% { filter: brightness(100%); }
}
.bright2:hover{ animation: bright2 1s 1 ease; text-decoration: none;}

.inline-block {
	display: inline-block;
}
#bgAnim { 
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 200vh;
  overflow: hidden;
  background: url("../img/bg_body_basic.jpg") no-repeat center 0px / 100% auto;
  /*background-attachment: fixed;*/
  transition: background-size 3s linear, opacity 5s ease;
}
body.scrolling #bgAnim {
  background-size: 105% auto;
  opacity: 0.5;
}
/*
#bgAnim.moving {
  animation: fadeout 2s linear;
}
@keyframes fadeout {
	 
	100% { opacity: 0.2;}
}
*/
@media only screen and (max-width: 782px) {
	body { overflow-y: auto; min-width: inherit; }
	.pc { display: none;}
	.sp { display: block;}
	span.sp { display: inline;}
  
  #body { font-size: 1.3rem; line-height: 1.8;}
  #bgAnim { background-image: url("../img/bg_body_basic-sp.jpg");}
  p { margin-top: 1.7rem; }
    .the-content p,
    .the-content figure { margin-top:1.8em;}
  
  a {
    transition: none;
  }
  main a { transition: none;}
  #menu-btn { display: block;}
  #menu-btn:hover,
  #gnav a:hover,
  main a:hover,
  footer a:hover {
    animation: none;
  }
}

.zoom figure img,
 figure.zoom img{ transition: transform 0.5s ease;}
.zoom figure,
 figure.zoom{ overflow: hidden;}
.zoom:hover figure img,
figure.zoom:hover img { transform: scale(1.05);}


@media only screen and (max-width: 782px) {

  #body { min-width: inherit; width: 100%;padding-top:0;}
}


@media only screen and (max-width: 782px) {
}


.show-menu #body { position: fixed !important; width:100%; height: 100%; z-index: 6;}

#abs-logo { position: fixed; right: 0px; top: 60px; width: 200px; z-index: 999; transition: filter 0.5s ease;}
/*body:not(.show-menu) #abs-logo { mix-blend-mode: multiply;}*/
#abs-logo.fullWhite { filter: brightness(100)}

#abs-logo a {
  display: flex;
  justify-content: center;
  flex-direction: column;
  align-items: center;
}
#abs-logo a:hover { animation: flash 0.5s ease;}
#abs-logo .white { display: none;}
#abs-logo.white .black { display: none;}
#abs-logo.white .white { display: block;}
#abs-logo a .pc { margin-top: 30px; transition: opacity 0.5s ease;}
#abs-logo.white a .pc { filter: brightness(100);}

@media only screen and (max-width: 1280px) {
  #abs-logo { left: 1080px; right: auto;}
  #abs-menu-btn {left: 1080px; right: auto;}
  #pagetop {left: 1080px; right: auto;}
}
@media only screen and (max-width: 782px) {
  #abs-logo {
    top: 0;
    width: 100%;
    height: 50px;
    background: #fff;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    padding-left: 3%;
    left: 0;
    transition: background 0.5s ease;
  }
  .show-lnav #abs-logo { background: transparent;}
  .sp-abs-logo-nobg #abs-logo { background:transparent;}
  #abs-logo a picture { height: 25px;}
  #abs-logo a img { height: 25px; width: auto;}
  #abs-logo .text {
    margin-left: 3%;
    width: calc(97% - 140px);
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
  }
  #abs-logo .text .en {
    display: inline-block;
    margin-left: 1rem;
    font-size: 7px;
  }
  #abs-logo.white .white { filter: brightness(200);}
}
#abs-menu-btn {
  position: fixed; 
  width: 200px; right: 0px; top: 500px;
  box-sizing: border-box;
  z-index: 9999;
  display: flex;
  justify-content: center;
  transition: opacity 0.5s ease;
}
@media only screen and (min-width: 783px) {
  #abs-menu-btn.hide-pc {
    opacity: 0;
    pointer-events: none;
  }
  body:not(.show-menu) #abs-menu-btn { mix-blend-mode: multiply;}
}


#menu-btn {
  position: relative;
  cursor: pointer;
  width: 60px;
  height: 60px;
}


@media only screen and (max-width: 782px) {
  #abs-menu-btn {
    position: fixed; 
    width: 50px; right: 0px; top: 0px; left: auto;
  }
  #menu-btn {
    width: 50px;
    height: 50px;
    background: #41bdce;
    border-radius: 0 0 0 10px;
    left: auto;
    right: 0;
  }
  .show-menu #menu-btn {background: #fff554;}
  .show-menu #abs-logo {
    opacity: 1 !important;
    pointer-events: none;
    background: none;
    z-index: 9999;
  }
  .show-menu #abs-logo a { pointer-events: auto;}
  .show-menu #abs-logo .text { color: #fff;}

}


.show-menu #abs-logo img {
  filter: brightness(100);
}

#menu {
  background: #41bdce;
  opacity: 0; pointer-events: none;
  transform: translateX(200px);
  position: fixed;
  right: 0;
    top: 0;
  z-index: 998;
  border-radius: 60px 0 0 60px;
  transition: opacity 0.5s ease, transform 1s ease;
}
.show-menu #menu { opacity: 1; pointer-events: auto;transform: translateX(0px);}

#menu .flexPc {
  display: flex;
}
#menu .flexPc ul:first-child { margin-right: 80px;}
#menu .gnav li { margin: 5px 0;}
#menu .gnav li.hasSub { margin-bottom: 15px;}
#menu .gnav li a {
  color: #fff;
  font-weight: bold;
  font-size: 24px;
}
#menu .gnav li a .en {
  color: #262253;
  font-size: 10px;
  display: block;
  margin-top: -7px;
}
#menu .sub li a {
  font-size: 18px;
  padding-left: 20px;
  position: relative;
  display: block;
}
#menu .sub li a::before {
  content: "";
  width: 6px;
  height: 6px;
  border-top: #fff 2px solid;
  border-right: #fff 2px solid;
  transform: rotate(45deg);
  position: absolute;
  top: calc(50% - 4px);
  left: 5px;
  box-sizing: border-box;
}
#menu .gnav .tel { font-size: 21px; color: #fff; font-weight: bold; margin-top: 4rem;}
.tel { padding-left: 35px; background: url("../img/tel@2x.png") no-repeat left 50% / 26px auto;}
#menu .gnav .time { font-size: 14px; color: #fff;  margin-top: 0; font-weight: bold;}

.scrollable {
  overflow-y: auto;
  box-sizing: border-box;
  -webkit-overflow-scrolling: touch;
  height: 100vh;
  z-index: 1;
  margin: 0;
  padding: 80px 240px 60px 100px;
  opacity: 0;
}
::-webkit-scrollbar-track {
   background: rgba(0,0,0,0);
}
.show-menu .scrollable { opacity: 1; transition: all 1s ease 0.3s;}

@media only screen and (max-width: 782px) {
  #menu {
    width: 100%;    
    height: 100%;
    transform: translate(0, 0);
    border-radius: 0;
    box-sizing: border-box;
    padding-top: 50px;
    z-index: 1000;
  }
  #menu .contactBox {
    margin: 30px 0;
    border: #fff 1px solid;
    border-radius: 10px;
    padding: 5vw;
    color: #fff;
    line-height: 1.5;
  }
  #menu .contactBox dt { font-size: 12px;}
  #menu .contactBox dd { display: flex; }
  #menu .contactBox p.tel { margin-top: 0; font-size: 15px; letter-spacing: 0.05rem; padding-left: 25px; background-size: 18px auto;}
  #menu .contactBox p.time { margin-top: 0; font-size: 9px;letter-spacing: 0.1rem;}
  #menu .contactBox .btn { margin-left: 3vw; margin-top: 0;}
  #menu .contactBox .btn a {
    position: relative;
    font-size: 10px;
    background: #fff554;
    color: #262253;
    border-radius: 6px;
    display: inline-block;
    padding: 10px 35px 10px 15px;
  }
  #menu .contactBox .btn a .arrow { right: -15px;}
  #menu .contactBox .btn a .arrow::before, #menu .contactBox .btn a .arrow::after {width:30px; background:#262253;}
  #menu .contactBox .btn a .arrow i.lt { border-color: #262253;}
  #menu .flexPc {
    display: block;
    border-top: #fff 1px solid;
  }
  #menu .flexPc ul:first-child { margin-right: 0px;}
  #menu .gnav li { margin: 0; border-bottom: #fff 1px solid;}
  #menu .gnav li.hasSub { margin-bottom: 0;}
  #menu .gnav li a {
    display: block;
    color: #fff;
    font-weight: bold;
    font-size: 15px;
    padding: 15px 35px 15px 10px;
    position: relative;
  }
  #menu .gnav li a.pc { display: none;}
  #menu .gnav li a .en {
    display: none;
  }
  #menu .gnav li.hasSub {
    transition: all 0.5s ease;
  }
  #menu .gnav li.hasSub > a::before,
  #menu .gnav li.hasSub > a::after {
    content: "";
    position: absolute;
    right: 10px;
    top: 30px;
    width: 15px;
    height: 1px;
    background: #fff;
    transition: transform 0.5s ease;
  }
  #menu .gnav li.hasSub > a::after {
    transform: rotate(90deg);
  }
  #menu .sub {
    height: 0;
    opacity: 0;
    pointer-events: none;
    transition: all 0.5s ease;
  }
  #menu .sub li {
    border-bottom: none;
  }
  #menu .sub li a {
    font-size: 12px;
    padding: 4px 0 4px 40px;
    font-weight: normal;
  }
  #menu .sub li a::before {
    content: "";
    width: 6px;
    height: 6px;
    border-top: #fff 1px solid;
    border-right: #fff 1px solid;
    transform: rotate(45deg);
    position: absolute;
    top: calc(50% - 4px);
    left: 25px;
    box-sizing: border-box;
  }
  #menu .show .sub {
    height: auto;
    opacity: 1;
    pointer-events: auto;
    padding-bottom: 15px;
  }
  #menu .gnav li.hasSub.show > a::before {transform: rotate(45deg);}
  #menu .gnav li.hasSub.show > a::after {transform: rotate(135deg);}
  #menu .gnav .tel { font-size: 21px; color: #fff; font-weight: bold; margin-top: 4rem;}
  .tel { padding-left: 35px; background: url("../img/tel@2x.png") no-repeat left 50% / 26px auto;}
  #menu .gnav .time { font-size: 14px; color: #fff;  margin-top: 0; font-weight: bold;}


  .scrollable {
    padding: 0 5% 25rem;
  }
}

#menu-btn-icon{
  display: block;
  position: absolute;
  top: 50%;
  left: 0px;
  z-index: 2;
  transition: none;
  width: 60px;
  height: 2px;
  background: #41bdce;
}
@media only screen and (max-width: 782px) {
  #menu-btn-icon{
     width: 20px;
    left: 15px;
    height: 1px;
    background: #fff;
  }
}
#menu-btn-icon::before, #menu-btn-icon::after{
  display: block;
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 2px;
  background: #41bdce;
  
  transition: transform 0.3s ease, margin-top 0.3s ease 0.3s;
}
#menu-btn-icon::before{
  margin-top: -15px;
  transform-origin: center center;
}
#menu-btn-icon::after{
  margin-top:14px;
  transform-origin: center center;
}
@media only screen and (min-width: 783px) {
  body:not(.show-menu) #abs-menu-btn.white { mix-blend-mode: normal;}
  body:not(.show-menu) #abs-menu-btn.white #menu-btn-icon,
  body:not(.show-menu) #abs-menu-btn.white #menu-btn-icon::before,
  body:not(.show-menu) #abs-menu-btn.white #menu-btn-icon::after { background: #fff;}
}
@media only screen and (max-width: 782px) {
  #menu-btn-icon::before, #menu-btn-icon::after{ background: #fff;height: 1px;}
  #menu-btn-icon::before{
    margin-top: -6px;
  }
  #menu-btn-icon::after{
    margin-top:5px;
  }
}
#menu-btn:hover { animation: flash 0.5s ease;}

.show-menu #menu-btn #menu-btn-icon {
  background: transparent;
}
.show-menu #menu-btn #menu-btn-icon::before,
.show-menu #menu-btn #menu-btn-icon::after{
  margin-top: 0;
  background: #fff;
  transition: margin-top 0.3s ease, transform 0.3s ease 0.3s;
}
.show-menu #menu-btn #menu-btn-icon::before{
  transform: rotate(-30deg);
  -webkit-transform: rotate(-30deg);
}
.show-menu #menu-btn #menu-btn-icon::after{
  transform: rotate(30deg);
  -webkit-transform: rotate(30deg);
}
@media only screen and (max-width: 782px) {
  .show-menu #menu-btn #menu-btn-icon::before{
    transform: rotate(-45deg);
    -webkit-transform: rotate(-45deg);
  }
  .show-menu #menu-btn #menu-btn-icon::after{
    transform: rotate(45deg);
    -webkit-transform: rotate(45deg);
  }
  .show-menu #menu-btn #menu-btn-icon::before, .show-menu #menu-btn #menu-btn-icon::after{ background: #41bdce;}
}
#cover { display: none;}
.show-menu #cover {
  display: block;
  backdrop-filter: blur(20px);
  z-index: 98;
  position: fixed;
  width: 100vw;
  height: 100vh;
  left: 0;
  top: 0;
}

.anchor {
  display: inline-block;
	margin-top:-120px;
	padding-top:120px;
}

a.tel,
.tel a { pointer-events: none;}
@media only screen and (max-width: 782px) {
	.anchor {
		margin-top:-5rem;
		padding-top:5rem;
	}
  a.tel, .tel a  { pointer-events: auto;}
  .sp-w100 { width: 100%;} 
}

.aligncenter,
div.aligncenter {
   display: block;
   margin-left: auto;
   margin-right: auto;
}

.alignleft {
   float: left;
   margin-bottom: 2em;
}

.alignright {
   float: right;
   margin-bottom: 2em;
}

.wp-caption {
   border: 1px solid #ddd;
   text-align: center;
   background-color: #f3f3f3;
   padding-top: 4px;
   margin: 10px;
   /* optional rounded corners for browsers that support it */
   -moz-border-radius: 3px;
   -khtml-border-radius: 3px;
   -webkit-border-radius: 3px;
   border-radius: 3px;
}

.wp-caption img {
   margin: 0;
   padding: 0;
   border: 0 none;
}

.wp-caption p.wp-caption-text {
   font-size: 86%;
   line-height: 17px;
   padding: 0 4px 5px;
   margin: 0;
}
.the-contents { word-break: break-all;}

.the-contents tbody,.the-contents tr,.the-contents td, .the-contents th { border:initial; border-style: solid;}
.the-contents img { height: auto;}
.the-contents p,
.the-contents figure { margin-top:2.5em;}
.the-contents p { line-height: 1.8;}

.the-contents h1 { font-weight: bold; font-size: 2.5rem; color: #333; margin: 1em 0 !important; line-height: 1.7;}
.the-contents h2 { font-style: italic; font-weight: bold !important; font-size: 2.2rem !important; color: #333 !important; margin: 1em 0 !important; line-height: 1.7; white-space: normal;}
.the-contents h4 { font-weight: bold; font-size: 1.8rem; color: #333; margin: 1em 0 !important; line-height: 1.8;}
.the-contents pre { overflow: hidden;}
@media only screen and (max-width: 782px) {
  .the-contents h1 { font-size: 1.6rem;}
  .the-contents h2 { font-size: 1.5rem !important; padding: 0;}
  .the-contents h4 { font-size: 1.3rem; }
}



.hasInview { transition: opacity 1s ease, transform 1s ease;}
.hasInview.delay { transition-delay: 0.2s;}
.fade {
  transform: translateY(30px);
  opacity: 0;
}


img.hoverUp {
  transition: transform 0.5s ease, filter 0.5s ease;
}

@media only screen and (min-width: 783px) {
  a:hover img.hoverUp  {
    transform: translateY( -5px);
    filter: drop-shadow(0 5px 5px rgba(0,0,0,0.2));
  }
}

body.no-pager .pager { margin: 0; border: none;}

.hidden { display: none;}


@media only screen and (max-width: 782px) {

}


#footer { position: relative; z-index: 2;}



.myBtn a {
  color: #262253;
  font-weight: bold;
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  width: 240px;
  box-sizing: border-box;
  position: relative;
  transition: color 0.5s ease;
}
.myBtn.small a {width: 180px;}
.myBtn a span.jp { display: block; position: relative; z-index: 10; padding-left: 30px;padding-top: 15px;}
.myBtn.oneline a span.jp { padding-top: 15px; padding-bottom: 15px;}
.myBtn a span.en { font-size: 10px; display: block; margin-top: 1px; line-height: 1.4; position: relative; z-index: 10; padding-left: 30px;padding-bottom: 17px;}
.myBtn a .arrow { position: absolute; z-index: 10;}
.myBtn a i.bg { position: absolute; z-index: 1; width: 100%; height: 100%; border-radius: 10px; overflow: hidden; background: #38a4b6;}
.myBtn.blue a i.bg { background: #fff554;}
.myBtn a i.bg::before {
  content: "";
  position: absolute;
  z-index: 2;
  width: 440px;
  height: 440px;
  border-radius: 50%;
  background: #fff554;
  top: calc(50% - 220px);
  left: -50px;
  transition: left 1s ease;
}
.myBtn.blue a i.bg::before { background: #38a4b6;}
.myBtn.icon a {
  width: 480px;
  height: 120px;
}
.myBtn.icon a .icon {
  position: absolute;
  left: 20px;
  bottom: 20px;
  z-index: 3;
}
.myBtn.icon a span.en,
.myBtn.icon a span.jp { padding-left: 135px;}
.myBtn.icon a span.jp { font-size: 135%; letter-spacing: 0;}
.myBtn.icon a i.bg::before {
  width: 600px;
  height: 600px;
  top: calc(50% - 300px);
}
@media only screen and (min-width: 783px) {
  .myBtn a:hover { color: #fff;}
  .myBtn a:hover i.bg::before {
    left: calc(50% + 201px);
  }
  .myBtn.icon a:hover i.bg::before {
    left: calc(50% + 301px);
  }
}
@media only screen and (max-width: 782px) {
  .myBtn a { width: 180px;}
  .myBtn.small a {width: 135px; font-size: 11px;}
  .myBtn a span.jp { padding-left: 22px;padding-top: 10px;}
  .myBtn a span.en { font-size: 10px; padding-left: 22px;padding-bottom: 12px;}
  .myBtn a i.bg { background: #fff554;}
  .myBtn a i.bg::before { display: none;}
  .myBtn.icon { width: 100%;}
  .myBtn.icon a { height: auto; width: calc(100% - 20px);}
  .myBtn.icon a span.en,
  .myBtn.icon a span.jp { padding-left: 100px;}
  .myBtn.icon a span.jp { font-size: 114%;}
  .myBtn.icon a .icon { width: 70px; left: 15px; bottom: 10px;}
  .myBtn.icon a i.bg { background: #38a4b6;}
  .myBtn.blue a i.bg { background: #38a4b6;}
}
@media only screen and (max-width: 390px) {
  .myBtn.icon + .myBtn.icon a .icon { bottom: auto; top: calc(50% - 30px);}
}
@keyframes chijimu {
	 0% { transform: scaleX( 1); }
	 100% { transform: scaleX( 0); }
}
@keyframes nobiru {
	 0% { transform: scaleX( 0); }
	 100% { transform: scaleX( 1); }
}


@media only screen and (min-width: 783px) {
  .myBtn.vertical a:hover i.bg::before {
    top: calc(50% + 200px);
  }
  .myBtn.blue a:hover { color: #262253;}
}

a .arrow {
  text-align: right;
  position: absolute;
  color: #38a4b6;
  right: -30px;
  top: 50%;
}
a .arrow::before,
a .arrow::after {
    position: absolute;
    content: "";
    background: #38a4b6;
    width: 60px;
    height: 1px;
    right: 0;
    top: 50%;
}
.myBtn.blue a { color: #fff;}
.myBtn.blue a .arrow::before,
.myBtn.blue a .arrow::after { background: #fff554;}
a .arrow i.lt {
    position: absolute;
    right: -10px;
    top: calc(50% - 5px);
    width: 10px;
    height: 10px;
    border-top: #38a4b6 1px solid;
    border-right: #38a4b6 1px solid;
    transform: rotate(45deg);
}
.myBtn.blue a .arrow i.lt { border-color: #fff554;}

a .arrow::after { transform-origin: center right;}
a .arrow::before { transform: scaleX( 0); transform-origin: center left;}
a:hover .arrow::before { animation: nobiru 0.5s ease; animation-delay: 0.2s;}
a:hover .arrow::after { animation: chijimu 0.5s;}

a .arrow.vertical {
    transform: rotate(90deg);
    padding-right: 0;
    margin-top: -4vw;
}
a .arrow.vertical::before, a .arrow.vertical::after { width: 30px;}


@media only screen and (max-width: 782px) {
  a .arrow {
    right: -20px;
  }
  a .arrow::before,
  a .arrow::after {
      width: 44px;
  }
  a .arrow i.lt {
      right: -8px;
      top: calc(50% - 4px);
      width: 8px;
      height: 8px;
  }
}


.myBtn.vertical {
  text-align: center;
}
.myBtn.vertical a {
  width: min(540px, 90%);
}
.myBtn.vertical a span.jp { padding: 35px 10px 0;}
.myBtn.vertical a span.en { padding-bottom: 35px; padding-left: 0;}
.myBtn.vertical a i.bg::before {
  width: 880px;
  height: 880px;
  border-radius: 50%;
  background: #fff554;
  top: calc(50% - 240px);
  left: -170px;
  transition: top 1s ease;
}
.myBtn.vertical a .arrow {
  margin-top: 0;
  right: auto;
  top: auto;
  bottom: -15px;
  left: 50%;
}
@media only screen and (max-width: 782px) {

}



#footer {
  position: relative;
  background: #45bdcf;
  border-radius: 60px 60px 0 0;
  padding: 0.5px 0px 50px;
}
#yellow-contact-wrapper {
  position: relative;
  padding: 1px;
}
#yellow-contact {
  position: relative;
  margin: -100px auto 80px;
  height: 200px;
  background: #fff554;
  display: flex;
  justify-content: space-between;
  border-radius: 20px;
  width: 1160px;
  max-width: 85%;
  box-sizing: border-box;
  color: #262253;
  padding: clamp(30px, 8vw, 45px) clamp(2vw,8vw,110px) clamp(30px, 8vw, 45px) clamp(8.66vw,8.66vw,65px);
}

@media only screen and (max-width: 782px) {
  #yellow-contact { display: block; height: auto; margin: -150px auto 7.5vw;}
}
#yellow-contact h2 {
  display: flex;
  align-items: center;
}
#yellow-contact h2 .jp { font-size: clamp(18px,4.8vw,24px);}
#yellow-contact h2 .en { font-size: 10px; margin-left: 20px;}
#yellow-contact dt, #yellow-contact .time { font-size: clamp(11px,2.9vw,14px);}
#yellow-contact .tel { filter: brightness(0);font-size: clamp(20px,5.3vw,26px);}
@media only screen and (max-width: 782px) {
  #yellow-contact dl { margin-top: 15px;}
}
#yellow-contact .btn { margin-top: 5px;}
#yellow-contact .btn a {
  position: relative;
  font-size: clamp(12px,3.2vw,16px);
  background: #fff;
  color: #262253;
  border-radius: 6px;
  display: inline-block;
  padding: 10px 65px 10px 25px;
}

#yellow-contact .btn a .arrow::before, #yellow-contact .btn a .arrow::after { background:#262253;}
#yellow-contact .btn a .arrow i.lt { border-color: #262253;}


#footer p { margin-top: 0;}
#footer .finner {
  padding: 0 150px;
  color: #fff;
}
#footer .flex {
  display: flex;
  justify-content: space-between;
}
@media only screen and (max-width: 782px) {

  #footer .finner { padding: 0 7.5%;}
  #footer .flex { display: block;}
}
#footer .flex.finner { max-width: 1300px;}
#footer .logo img { filter: brightness(100);}
#footer .block h2 { margin-top: 25px; font-size: clamp(18px,5.1vw,24px); letter-spacing: -0.05rem;}
#footer .block { font-size: clamp(12px,3.2vw,14px); line-height: 1.6;}
#footer .block .tel { font-size: clamp(18px,5.1vw,24px);}
@media only screen and (max-width: 782px) {#footer .block .tel { margin: 8px 0;}}
#footer .gnav li { margin: 5px 0;}
#footer .gnav li.hasSub { margin-bottom: 15px;}
#footer .gnav li a {
  color: #fff;
  font-weight: bold;
  font-size: 20px;
}
#footer .sub li a {
  font-size: 17px;
  padding-left: 20px;
  position: relative;
  display: block;
  font-weight: normal;
  letter-spacing: 0;
}
#footer .sub li a::before {
  content: "";
  width: 6px;
  height: 6px;
  border-top: #fff 2px solid;
  border-right: #fff 2px solid;
  transform: rotate(45deg);
  position: absolute;
  top: calc(50% - 4px);
  left: 5px;
  box-sizing: border-box;
}

.iso { display: flex; align-items: flex-end; justify-content: flex-end; font-size: clamp(9px,2.4vw,12px);}
#footer .iso figure { margin-left: 15px;}
#footer .btm { margin-top: 25px; display: flex; justify-content: space-between; font-size: clamp(12px,3.2vw,14px);}
#footer .btm p.copy { margin: 0; font-size: clamp(8px,2.1vw,11px); letter-spacing: 0;}
#footer .btm a { color: #fff;}

@media only screen and (max-width: 782px) {
  #footer {
    border-radius: 40px 40px 0 0;
  }
  #footer .block { margin-bottom: 7.5vw;}
  #footer .gnav {
    width: calc(100% + 5vw);
    margin-left: -2.5vw;
  }
  #footer .gnav li { margin: 0; border-bottom: #fff 1px solid;}
  #footer .gnav li.hasSub { margin-bottom: 0;}
  #footer .gnav li a {
    display: block;
    color: #fff;
    font-size: 15px;
    padding: 12px 35px 12px 10px;
    position: relative;
  }
  #footer .gnav li a.pc { display: none;}
  #footer .gnav li.hasSub {
    transition: all 0.5s ease;
  }
  #footer .gnav li.hasSub > a::before,
  #footer .gnav li.hasSub > a::after {
    content: "";
    position: absolute;
    right: 10px;
    top: 30px;
    width: 15px;
    height: 1px;
    background: #fff;
    transition: transform 0.5s ease;
  }
  #footer .gnav li.hasSub > a::after {
    transform: rotate(90deg);
  }
  #footer .sub {
    height: 0;
    opacity: 0;
    pointer-events: none;
    transition: all 0.5s ease;
  }
  #footer .sub li {
    border-bottom: none;
  }
  #footer .sub li a {
    font-size: 12px;
    padding: 4px 0 4px 40px;
  }
  #footer .sub li a::before {
    content: "";
    width: 6px;
    height: 6px;
    border-top: #fff 1px solid;
    border-right: #fff 1px solid;
    transform: rotate(45deg);
    position: absolute;
    top: calc(50% - 4px);
    left: 25px;
    box-sizing: border-box;
  }
  #footer .show .sub {
    height: auto;
    opacity: 1;
    pointer-events: auto;
    padding-bottom: 15px;
  }
  #footer .gnav li.hasSub.show > a::before {transform: rotate(45deg);}
  #footer .gnav li.hasSub.show > a::after {transform: rotate(135deg);}
  
  #footer .iso { margin-top: 7.5vw; justify-content: center;}
  #footer .btm { margin-top: 5vw; display: block; text-align: center;}
  #footer .btm p.copy { margin-top: 5vw; }


}

#pagetop {
  display: block;
  margin: 0 60px;
  text-align: center;
  font-size: 10px;
  line-height: 1.4;
  position: fixed;
  right: 0px;
  bottom: 60px;
  width: 80px;
  padding-bottom: 80px;
  cursor: pointer;
  z-index: 10;
  transition: filter 0.5s ease;
}
#pagetop.fullWhite { filter: brightness(100)}
#pagetop::before {
  content: "SCROLL";
  font-family: 'Poppins', sans-serif;
  letter-spacing: 0.1rem;
  font-weight: 500;
}
#pagetop.white::before { color: #fff;}
#pagetop .arrow {
  top: auto;
  bottom: 0;
  right: 50%;
  transition: transform 0.5s ease, padding 0.5s ease;
}
a#pagetop .arrow.vertical::before, a#pagetop .arrow.vertical::after { width: 60px;}

.show-pagetop #pagetop {
  padding-top: 80px;
  padding-bottom: 0px;
}
.show-pagetop #pagetop .arrow {
  transform: rotate(90deg) scaleX(-1) translateX(90px);
}
.show-pagetop #pagetop::before { content: "PAGE TOP";}

.show-pagetop #abs-logo a .pc { opacity: 0; height: 0;}

.relative-pagetop #pagetop {
  position: absolute;
  bottom: auto;
  top: -120px;
}

#pagetop-sp { display: none;}
@media only screen and (max-width: 782px) {
  #pagetop { display: none;}
  #pagetop-sp {
    display: block;
    margin: 20px auto 180px;
    text-align: center;
    font-size: 10px;
    line-height: 1.4;
    position: relative;
    width: 40px;
    padding-top: 60px;
    letter-spacing: 0.1rem;
  }
  #pagetop-sp .arrow {
    transform: rotate(270deg);
    top: 45px;
    right: 50%;
  }
  a#pagetop-sp .arrow.vertical::before, a#pagetop-sp .arrow.vertical::after { width: 25px;}
}

main { position: relative; z-index: 1;}

#crumb {
  position: absolute;
  top: 105px;
  right: 260px;
  width: calc(100% - 700px);
  z-index: 2;
}
#crumb ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  font-size: 12px;
}
#crumb ul li { position: relative;}
#crumb ul li + li {
  padding-left: 35px;
}
#crumb ul li + li::before {
  content: "";
  position: absolute;
  left: 10px;
  top: 8px;
  width: 8px;
  height: 8px;
  border-top: #262253 1px solid;
  border-right: #262253 1px solid;
  box-sizing: border-box;
  transform: rotate(45deg);
}
#crumb ul li a:hover { text-decoration: underline;}

#abs-lnav {
  position: fixed;
  left: 120px;
  top: 0;
  width: calc(100% - 440px);
  box-sizing: border-box;
  padding: 0 50px 0 60px;
  height: 90px;
  background: #45bdcf;
  border-radius: 0 0 40px 40px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  z-index: 999;
  z-index: 97;
  transition: transform 0.5s ease;
  transform: translateY(-90px);
}
.show-lnav #abs-lnav { 
  transform: translateY(0px);
}
@media only screen and (max-width: 1380px) {
  #abs-lnav { left: 60px; width: calc(100% - 260px);}
}
@media only screen and (max-width: 1280px) {
  #abs-lnav { left: 60px; width: 1000px;}
}
@media only screen and (max-width: 782px) {
  #abs-lnav {
    left: 0;
    width: 100%;
    height: 50px;
    border-radius: 0 0 0 10px;
    padding-left: 70px;
    z-index: 999;
  }
}
#abs-lnav h3 { display: flex; align-items: center;}
#abs-lnav h3 .mincho {
  color: #fff;
  font-size: 26px;
  line-height: 1;
}
#abs-lnav h3 .en {font-size: 13px; margin: 5px 0 0 2rem;}
#lnavToggle { display: none;}
@media only screen and (max-width: 782px) {
  #abs-lnav h3,
  #abs-lnav a,
  #abs-lnav h3 .mincho { font-weight: bold; color: #fff; font-size: 12px; font-family: YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";}
  #lnavToggle {
    position: absolute;
    left: 0;
    top: 0;
    width: 50px;
    height: 50px;
    display: block;
    transition: background 0.5s ease;
  }
  #lnavToggle::before {
    content: "";
    width: 8px;
    height: 8px;
    border-bottom: #fff 1px solid;
    border-right: #fff 1px solid;
    transform: rotate(45deg);
    position: absolute;
    left: 20px;
    top: 20px;
    box-sizing: border-box;
    display: block;
  }
  .open-lnav #lnavToggle {
    background: #fff554;
    border-radius: 0 0 10px 0;
  }
  .open-lnav #lnavToggle::before { border-color: #45bdcf;transform: rotate(225deg);top: 23px;}
}

.lnav {
  display: flex;
  align-items: center;
}
.lnav > li > a {
  font-size: 15px;
  padding: 10px 25px;
  border-radius: 60px;
  line-height: 1.5;
  color: #fff;
  transition: color 0.5s ease;
  font-weight: bold;
  display: inline-flex;
  justify-content: center;
  text-align: center;
  align-items: center;
}
.lnav > li.on > a {
  background: #fff554;
  color: #262253;
}
.lnav > li > a:hover { color: #262253;}
@media only screen and (max-width: 782px) {
  .lnav {
    transition: opacity 0.5s ease;
    width: 0;
    overflow: hidden;
    pointer-events: none;
    opacity: 0;
    position: absolute;
    left: 0;
    top: 50px;
    background: #45bdcf;
    display: block;
  }
  .open-lnav .lnav {
    pointer-events: auto;
    opacity: 1;
    width: 100%;
    overflow: visible;
    padding: 20px 0;
  }
  .lnav > li > a {
    padding: 10px 5vw 10px 50px;
    position: relative;
    display: block;
    color: #fff;
  }
  .lnav > li.on > a { background: none;}
  .lnav > li > a::before {
    content: "";
    position: absolute;
    width: 5px;
    height: 5px;
    border-top: #fff 1px solid;
    border-right: #fff 1px solid;
    transform: rotate(45deg);
    left: 25px;
    top: calc(50% - 4px);
  }
}