@charset "UTF-8";
/*  Web Fonts
=========================================================================== */
@import url('//fonts.googleapis.com/css?family=Barlow:400,700');

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}
body{line-height:1}
article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}
nav ul{list-style:none}
blockquote,q{quotes:none}
blockquote:before,blockquote:after,q:before,q:after{content:none}
a{margin:0;padding:0;font-size:100%;vertical-align:baseline;background:transparent}
ins{background-color:#ff9;color:#000;text-decoration:none}
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}
hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0}
input,select{vertical-align:middle}

/*

  structure

=========================================================================== */
html{
  color: #0a0a0a;
  overflow: auto;
  font-size: 62.5%;
}
body{
  font-family: 'Noto Serif JP', 'Spectral', "Yu Gothic Medium", YuGothic,"游ゴシック Medium","游ゴシック体", sans-serif;
}
input{
  font-family: 'Noto Serif JP', 'Spectral', "Yu Gothic Medium", YuGothic,"游ゴシック Medium","游ゴシック体", sans-serif;
}
/*a:hover{
  opacity: .8;
}*/
a:hover, a:hover img{
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}
@media screen and (min-width: 768px) {
  body{
    min-width: 1200px;
  }
}
@media screen and (min-width: 768px) and (max-width: 1200px) {
  body{
    min-width: auto;
  }
}
@media screen and (max-width: 767px) {
  /* fixed header */
}


/*

  module

=========================================================================== */
@media screen and (max-width: 767px) {
}

/*

  header

=========================================================================== */
/*  spmenu  ---------- */
header .spmenu{ display: none;}

/*  logos  ---------- */
header .logos{
  position: relative;
  height: auto;
  max-width: 331px;
}
header .logos .item1{
  padding: 0px 0 0 51px;
  width: 100%;
}
header .logos .item1 img, header .logos .item1 svg{
  width: 100%;
}
header .logos .item2{
  position: absolute;
  top: 50%;
  left: 50%;
  -ms-transform: translate(-50%,-50%);
  transform: translate(-50%,-50%);
  text-align: center;
  display: none;
}
header .logos .item2 .sub{
  color: #053250;
  display: block;
  font-size: 1.2rem;
  margin: 0 0 20px;
  letter-spacing: 0.1em;
}
header .logos .item2 img{
  max-width: 100%;
  width: 348px;
}

.header{
  box-shadow: 0px 3px 6px 0px rgba(222,222,222,0.6);
  z-index: 1000;
  position: relative;
}
/*  gnav  ---------- */
.header_inner{
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 0;
}
header #gnav{
  border-top: none;
  text-align: center;
}
header #gnav .gnav_inner{
  max-width: none;
  padding: 0px 42px 0 20px;
  margin: 0 auto;
  min-width: auto;
}
header #gnav ul li{
  width: auto;
  margin: 0 34px 0 0;
}
header #gnav ul li:last-child{
  margin-right: 0px;
}
header #gnav ul li a{
  letter-spacing: 0.6px;
  font-size: 1.2rem;
  color: #0A0A0A;
  padding: 25px 0 15px;
  margin: 0 0 5px;
}
header #gnav ul li a:after{
  content: "";
  background-color: #000000;
  position: absolute;
  top: auto;
  bottom: 0px;
}
header #gnav ul li a:hover:after{
  width: 30px;
}
header #gnav ul li a > span + span{
  margin: 7px 0 0;
  white-space: nowrap;
}
header #gnav ul li a .on_row{
  font-size: 1.8rem;
  font-weight: normal;
  text-transform: none;
  line-height: 1.5;
  letter-spacing: 1.44px;
  text-align: center;
  font-family: 'Spectral', 'Noto Serif JP', "Yu Gothic Medium", YuGothic,"游ゴシック Medium","游ゴシック体", sans-serif;
}

@media screen and (max-width: 999px) {
}
/*  gnav hover & current  ---------- */
@media screen and (min-width: 768px) {
  header #gnav{
    display: block!important;
  }
  header #gnav ul li a:hover{
    color: #0A0A0A;
    opacity: 1;
  }

  header #gnav ul li.cur a{
    color: #0A0A0A;
    opacity: 1;
  }
  header #gnav ul li.cur a:after{
    width: 30px;
  }
}
@media screen and (min-width: 768px) and (max-width: 1200px) {
  header .header_inner{
    padding: 10px 0 10px;
  }
  header .logos {
    height: auto;
    width: 22%;
    display: inline-block;
  }
  header .logos .item1 {
    width: 100%;
    display: inline-block;
    padding: 0 0 0 20px;
  }
  header .logos .item1 > a {
    width: 100%;
    display: inline-block;
  }
  header .logos .item1 > a img {
    width: 100%;
  }
  header #gnav{
    width: 80%;
  }

  header #gnav ul li {
    margin: 0 3% 0 0;
  }
  header #gnav .gnav_inner{
    padding: 0 20px 0 20px;
  }
  header #gnav .gnav_inner > ul{
    display: flex;
    justify-content: flex-end;
  }
  header #gnav ul li{
    float: none;
  }
  header #gnav ul li a {
    font-size: 1rem;
  }
  header #gnav ul li a .on_row {
    font-size: 1.6rem;
  }
}
@media screen and (min-width: 768px) and (max-width: 900px) {
  header .logos {
    width: 20%;
  }

  header #gnav{
    width: 85%;
  }
  header #gnav ul li {
    margin: 0 2% 0 0;
  }
  header #gnav ul li a {
    font-size: 1rem;
  }
  header #gnav ul li a .on_row {
    font-size: 1.4rem;
  }
}
@media screen and (max-width: 767px) {
  header{
    background-color: #fff;
    position: fixed!important;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 20;
    box-shadow: 0px 3px 6px 0px rgba(222 222 222 / 60%);
    height: 70px;
    display: flex;
    justify-self: center;
    align-items: center;
  }

  header .logos .item1 img{
    width: 174px;
  }
  /*  spmenu  ---------- */
  header .spmenu{
    display: block;
    position: absolute;
    top: 0;
    right: 0;
  }
  header .spmenu a{
    display: block;
    position: relative;
    width: 70px;
    height: 70px;
    padding: 27px 20px 0;
  }
  header .spmenu a:before,
  header .spmenu a:after,
  header .spmenu a span{
    display: block;
    background-color: #C5C5C5;
    width: 30px;
    height: 2px;
    transition: all .3s ease;
  }
  header .spmenu a:before,
  header .spmenu a:after{
    content: "";
    position: absolute;
  }
  header .spmenu a:before{
    top: 23px;
  }
  header .spmenu a:after{
    top: 45px;
  }
  header .spmenu a span{
    text-indent: -9999px;
    top: 34px;
    position: absolute;
  }
  /*  menu open  ---------- */
  header .spmenu a.open{
    background-color: inherit;
    padding: 27px 20px 0;
  }
  header .spmenu a.open:before,
  header .spmenu a.open:after,
  header .spmenu a.open span{
    transition-delay: .1s;
    width: 30px;
    background-color: #fff;
  }
  header .spmenu a.open:before{
    -webkit-transform: translateY(6px) rotate(-45deg);
    transform: translateY(6px) rotate(-45deg);
    top: 28px;
  }
  header .spmenu a.open:after{
    -webkit-transform: translateY(-6px) rotate(45deg);
    transform: translateY(-6px) rotate(45deg);
    top: 40px;
  }
  header .spmenu a.open span{
    opacity: 0;
  }

  .header_inner{
    margin: 0 auto;
  }
  /*  logos  ---------- */
  header .logos{
    height: 100%;
    width: 100%;
    max-width: none;
  }
  header .logos .item1{
    display: block!important;
    margin: 0 auto;
    padding: 0;
  }
  header .logos .item1 img{
    /* width: 112px; */
  }
  header .logos .item2 .sub{
    margin: 0 0 7px;
  }
  header .logos .item2 img{
    width: 220px;
  }

  /*  gnav  ---------- */
  header #gnav{
    display: none;
    border-top: none;
    background-color: rgba(0, 0, 0, .85);
    padding: 0 20px;
    position: fixed;
    top: 0;
    left: 0;
    overflow-y: auto;
    width: 100%;
    height: 100%;
  }
  header #gnav .gnav_inner{
    max-width: 100%;
    padding: 0;
    margin: 0 auto;
    height: 100%;
    position: relative;
  }
  header #gnav ul{
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%,-50%);
    transform: translate(-50%,-50%);
    width: 70%;
  }
  header #gnav ul li{
    float: none;
    padding: 10% 0 7%;
    width: 100%;
  }
  header #gnav ul li:nth-child(7){
    margin: 0;
  }
  header #gnav ul li a{
    color: #fff;
    margin: 0;
    padding: 0;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 1.76px;
    text-align: center;
    color: #ffffff;
  }
  header #gnav ul li a:after{
    display: none;
  }
  header #gnav ul li a > span{
    display: block;
  }
  header #gnav ul li a > span + span{
    margin: 2px 0 0;
    font-size: 1.2rem;
    line-height: 1.42;
    letter-spacing: 0.6px;

  }
  header #gnav ul li a .on_row{
    font-size: 2.2rem;
    line-height: 1.5;
    letter-spacing: 1.76px;
  }
}


/*

  footer

=========================================================================== */
@media screen and (min-width: 768px) {
}

footer{
  text-align: center;
  margin: 60px 0 0;
}
footer .footer_copy{
  background-color: #3e3e3e;
  height: 80px;
  font-size: 1.3rem;
  line-height: 1.54;
  letter-spacing: 1.56px;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #ffffff;
  padding: 0;
}
@media screen and (max-width: 767px) {
  footer{
    text-align: center;
    margin: 39px 0 0;
  }
  footer .footer_copy{
    font-size: 1.1rem;
    line-height: 1.55;
    letter-spacing: 1.32px;
    height: 77px;
  }
}


/*

  main_visual

=========================================================================== */
#main_visual{
  background-color: #000;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  height: auto;
  min-height: 275px;
  text-align: center;
  overflow: hidden;
  position: relative;
  color: #fff;
  padding: 56px 0 53px;
}
#main_visual:after{
  content: '';
  padding: 0;
  background-color: rgba(5, 50, 80, .7);
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  opacity: 0.86;
  background-color: #ffffff;
}
#main_visual .title{
  position: relative;
  left: auto;
  top: auto;
  width: 100%;
  z-index: 1;
  font-size: 1.6rem;
  line-height: 1.44;
  letter-spacing: 0.8px;
  text-align: center;
  color: #0a0a0a;
  font-weight: normal;
  padding: 0;
}
#main_visual .title > strong{
  display: block;
  margin: 0 0 9px;
  font-size: 3.0rem;
  line-height: 1.53;
  letter-spacing: 3.6px;
  text-align: center;
  color: #0a0a0a;
  font-weight: normal;
  font-family: 'Spectral', 'Noto Serif JP', "Yu Gothic Medium", YuGothic,"游ゴシック Medium","游ゴシック体", sans-serif;
}
#main_visual .txt{
  position: relative;
  width: 100%;
  z-index: 1;
  font-size: 1.4rem;
  line-height: 1.44;
  letter-spacing: 0.8px;
  text-align: center;
  color: #0a0a0a;
  max-width: 1130px;
  padding: 20px 15px 10px;
  margin: 0 auto;
}

@media screen and (max-width: 767px) {
  #main_visual{
    margin: 70px 0 0;
    height: 220px;
    min-height: 220px;
    height: auto;
    padding: 40px 0 29px;
  }
  #main_visual .title{
    padding: 0;
    font-size: 1.6rem;
    line-height: 1.44;
    letter-spacing: 0.8px;
  }
  #main_visual .title > strong{
    margin: 0;
    font-size: 2.4rem;
    line-height: 1.5;
    letter-spacing: 2.88px;
  }
  #main_visual .txt{
    font-size: 1.4rem;
    padding: 20px 15px;
    line-height: 1.6em;
    margin: 0 auto;
    font-weight: normal;
  }
}

/*

  contents

=========================================================================== */
#contents{
  padding: 60px 0 0;
}
#contents.row{
  display: flex;
}
#contents:after{
  content: "";
  display: table;
  clear: both;
}
.inner{
  max-width: 1130px;
  margin: 0 auto;
  padding: 0 15px;
}
@media screen and (max-width: 767px) {
  #contents{
    padding: 30px 0 0;
  }
  #contents.row{
    display: block;
  }
  .inner{
    padding: 0 15px;
  }
}

/*  main  ---------- */
#top_visual + #contents #main{
  padding: 50px 0 0;
}
#contents.row #main{
  -webkit-flex-grow: 1;
  flex-grow: 1;
}
#contents.row #main .inner{
  margin: 0 0 0 auto;
  max-width: 750px;
  padding: 0 0 0 30px;
}
#main .content-block{
  border-top: solid 1px #c5c5c5;
  padding: 50px 0;
  position: relative;
}
#main .content-block:last-child{
  padding: 50px 0 0;
}
#main .title-box >.title{
  padding: 0;
}
#main .title{
  font-size: 3.0rem;
  line-height: 1.53;
  letter-spacing: 3.6px;
  text-align: left;
  color: #0a0a0a;
  font-weight: normal;
  font-family: 'Spectral', "Yu Gothic Medium", YuGothic,"游ゴシック Medium","游ゴシック体", sans-serif;
}
#main .subtitle{
  margin: 46px 0 0;
  font-size: 1.4rem;
  line-height: 1.43;
  letter-spacing: 1.68px;
  text-align: left;
  color: #0a0a0a;
}
#main .title img{
  max-width: 249px;
}
@media screen and (min-width: 768px) and (max-width: 1200px) {
  #contents.row #main{
    width: 70%;
  }
  #contents.row #main .inner{
    width: 100%;
  }
}
@media screen and (max-width: 767px) {
  #contents.row #main{
    width: 100%;
  }
  #contents.row #main .inner{
    padding: 0 15px;
    margin: 0;
  }
  #top_visual + #contents #main{
    padding: 0;
  }
  #main .title{
    font-size: 2.2rem;
    line-height: 1.5;
    letter-spacing: 0.12em;
  }
  #main .title img{
    max-width: 149px;
  }
  #main .content-block{
    padding: 30px 0 20px;
  }
  #main .subtitle{
    font-size: 1.2rem;
  }
}

/*  side  ---------- */
#side{
  background-color: inherit;
  margin: 0 0 0 60px;
}
#side .side_inner{
  padding: 0 20px 0 0px;
  margin: 0 0 35px;
  width: 340px;
}
#side .side_title{
  color: #0a0a0a;;
  text-align: left;
  font-size: 2.4rem;
  font-weight: normal;
  letter-spacing: 0.15em;
  padding: 0 0 20.5px;
  line-height: 1.5;
  font-family: 'Spectral', "Yu Gothic Medium", YuGothic,"游ゴシック Medium","游ゴシック体", sans-serif;
}
#side .side_list .card a{
  display: block;
  padding: 0;
  margin: 30px 0;
}
#side .side_list .card .date{
  margin: 0 0 3px;
  color: #0a0a0a;
  transition: all .3s;
}
#side .side_list .card .txt{
  line-height: 1.46;
  font-size: 1.3rem;
  letter-spacing: 1.56px;
  color: #0a0a0a;
  transition: all .3s;
}
#side .side_list .card{
  border-bottom: none;
}
@media screen and (min-width: 768px) {
  #side .side_list .card a:hover{
    color: #6A6A6A;
  }
  #side .side_list .card a:hover .date,
  #side .side_list .card a:hover .txt{
    color: #6A6A6A;
    transition: all .3s;
  }
}
@media screen and (min-width: 768px) and (max-width: 1200px) {
  #side{
    width: 25%;
    margin: 0 0 0 5%;
  }
  #side .side_inner{
    width: 100%;
  }
}
@media screen and (max-width: 767px) {
  #side{
    width: 100%;
    margin: 0 auto;
    padding: 0;
  }
  #top_visual + #contents #main + #side{
    padding: 0;
  }
  #side .side_inner{
    padding: 0 15px;
    margin: 0;
    width: auto;
  }
  #side .side_title{
    padding: 19.5px 0;
    font-size: 2.4rem;
  }
  #side .side_list .card{
    border-bottom: none;
  }
  #side .side_list .card a{
    padding: 10px 0;
    margin: 1px 0;
  }
  #side .side_list .card .date{
    margin: 0 0 3px;
  }
  #side .side_list .card .txt{

  }
}


/*

  title
   - project
   - topics
   - back number

=========================================================================== */
#topics .title,
#backnumber .title{
  text-align: center;
  color: #053250;
  font-weight: normal;
  padding: 70px 0 40px;
  font-size: 2.0rem;
  line-height: 1.45;
  letter-spacing: 4px;
  color: #0a0a0a;
}
@media screen and (max-width: 767px) {
  #topics .title,
  #backnumber .title{
    padding: 60px 0 20px;
    font-size: 1.6rem;
    line-height: 1.44;
    letter-spacing: 3.2px;
  }
}


/*

  btn
   - topics

=========================================================================== */
#topics .m-btn01{
  margin: 0 0 60px;
}
@media screen and (max-width: 767px) {
  #topics .m-btn01{
    margin: 0 0 40px;
  }
}

/*

  morebtn

=========================================================================== */

.more-btn{
  margin: 0 auto;
}

.more-btn a{
  font-family: 'Spectral';
  font-size: 1.6rem;
  line-height: 1.5;
  letter-spacing: 0.8px;
  color: #0a0a0a;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
  position: relative;
  padding: 0 66.3px 0 0;
  white-space: nowrap;
}
.more-btn a::after{
  content: "";
  position: absolute;
  right: -13px;
  left: auto;
  transform: translateY(-50%);
  margin: -2px auto 0;
  top: 50%;
  border-radius: 50%;
  background: #F6F6F6;
  width: 34px;
  height: 34px;
  z-index: 0;
}
.more-btn a .arrow{
  width: 50.6px;
  display: block;
  position: absolute;
  z-index: 1;
  height: 1px;
  background-color: #000;
  left: auto;
  margin: 0;
  transform: scale(1, 1);
  right: 0;
  top: 50%;
}


@keyframes arrow03 {
    0% { transform: scale(0, 1); }
    10% { transform: scale(0, 1); }
    20% { transform: scale(1, 1); }
    85% { transform: scale(1, 1); opacity: 1;}
    90% { transform: scale(1, 1); opacity: 0; }
    100% { transform: scale(1, 1); opacity: 0; }
}
.more-btn a .arrow::after {
  content: "";
  display: block;
  width: 8px;
  height: 11px;
  border-right: 1px solid #000;
  position: absolute;
  transform: rotate(-45deg);
  bottom: -4px;
  right: 3px;
}

@keyframes arrow04 {
  0% { transform: rotate(-45deg) scale(1, 0); }
  25% { transform: rotate(-45deg) scale(1, 0); }
  35% { transform: rotate(-45deg) scale(1, 1); }
  45% { transform: rotate(-45deg) scale(1, 1); opacity: 1;}
  85% { transform: rotate(-45deg) scale(1, 1); opacity: 1;}
  90% { transform: rotate(-45deg) scale(1, 1); opacity: 0; }
  100% { transform: rotate(-45deg) scale(1, 1); opacity: 0; }
}

@media screen and (min-width: 768px) {
  .more-btn{
    position: absolute;
    right: 14px;
    top: 77.1px;
  }
  .more-btn a:hover .arrow {
    transform-origin: top left;
    opacity: 1;
    animation: arrow03 3s ease-in-out infinite forwards;
  }
  .more-btn a:hover .arrow::after {
    transform: rotate(-45deg) scale(1, 1);
    opacity: 1;
    transform-origin: right bottom;
    animation: arrow04 3s ease-in-out infinite forwards;
    bottom: 1px;
    right: 1px;
    opacity: 0;
  }
}
@media screen and (max-width: 767px) {
  .more-btn{
    margin: 0 auto;
    text-align: center;
    padding: 0 0 10px;
  }
}


/*

  next prev

=========================================================================== */

.link{
  position: relative;
  margin: 85px auto 95px;
}

.link:before{
  content: "";
  width: 1px;
  height: 60px;
  background-color: #c5c5c5;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%,-50%);
}

.link li a{
  font-size: 1.6rem;
  color: #000;
}

.link li a:after{
  display: none;
}

@media screen and (min-width: 768px) {
  .link li a:hover {
    color: #000;
  }
}

@media screen and (max-width: 767px) {
  .link{
    width: 100%;
    margin: 50px auto 40px;
  }
  .link li a{
    font-size: 1.4rem;
  }
  .link:before{
    content: "";
    height: 40px;
  }
}


.next-btn{
  margin: 0 auto;
}

.next-btn a{
  font-size: 1.6rem;
  line-height: 1.5;
  letter-spacing: 0.8px;
  color: #0a0a0a;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
  position: relative;
  padding: 0 66.3px 0 0;
}
.next-btn a::before{
  content: "";
  position: absolute;
  right: -13px;
  left: auto;
  transform: translateY(-50%);
  margin: -2px auto 0;
  top: 50%;
  border-radius: 50%;
  background: #F6F6F6;
  width: 34px;
  height: 34px;
  z-index: 0;
}
.next-btn a .arrow{
  width: 50.6px;
  display: block;
  position: absolute;
  z-index: 1;
  height: 1px;
  background-color: #000;
  left: auto;
  margin: 0;
  transform: scale(1, 1);
  right: 0;
  top: 50%;
}

.next-btn a .arrow::before {
  content: "";
  display: block;
  width: 8px;
  height: 11px;
  border-right: 1px solid #000;
  position: absolute;
  transform: rotate(-45deg);
  bottom: -4px;
  right: 3px;
}

@media screen and (min-width: 768px) {
  .next-btn{
    margin-right: 170px;
  }
  .next-btn a:hover .arrow {
    transform-origin: top left;
    opacity: 1;
    animation: arrow03 3s ease-in-out infinite forwards;
  }
  .next-btn a:hover .arrow::before {
    transform: rotate(-45deg) scale(1, 1);
    opacity: 1;
    transform-origin: right bottom;
    animation: arrow04 3s ease-in-out infinite forwards;
    bottom: 1px;
    right: 1px;
    opacity: 0;
  }
}
@media screen and (max-width: 767px) {
  .next-btn{
    margin: 0 auto;
    text-align: center;
    padding: 0 0 0px 20px;
  }
}

.prev-btn{
  margin: 0 auto;
}

.prev-btn a{
  font-size: 1.6rem;
  line-height: 1.5;
  letter-spacing: 0.8px;
  color: #0a0a0a;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
  position: relative;
  padding: 0 0 0 66.3px;
}

@media screen and (max-width: 767px) {
  .prev-btn a{
    font-size: 1.4rem;
    padding: 0 0 0 66.3px;
  }
}

.prev-btn a::before{
  content: "";
  position: absolute;
  left: -13px;
  transform: translateY(-50%);
  margin: -2px auto 0;
  top: 50%;
  border-radius: 50%;
  background: #F6F6F6;
  width: 34px;
  height: 34px;
  z-index: 0;
}
.prev-btn a .arrow{
  width: 50.6px;
  display: block;
  position: absolute;
  z-index: 1;
  height: 1px;
  background-color: #000;
  left: 0;
  margin: 0;
  transform: scale(1, 1);
  right: auto;
  top: 50%;
}

.prev-btn a .arrow::before {
  content: "";
  display: block;
  width: 8px;
  height: 11px;
  border-right: 1px solid #000;
  position: absolute;
  transform: rotate(45deg) scale(1, 1);
  bottom: 2px;
  left: -2px;
}
@media screen and (min-width: 768px) {
  .prev-btn{
    margin-left: 170px;
  }
  .prev-btn a:hover .arrow {
    transform-origin: top right;
    transform: scale(1, 1);
    opacity: 1;
    animation: arrow01 3s ease-in-out infinite forwards;
  }
  .prev-btn a:hover .arrow::before {
    transform: rotate(45deg) scale(1, 1);
    opacity: 1;
    transform-origin: right bottom;
    animation: arrow02 3s ease-in-out infinite forwards;
    left: -8px;
    bottom: 0px;
    height: 12px;
  }
}
@media screen and (max-width: 767px) {
  .prev-btn{
    margin: 0 auto;
    text-align: center;
    padding: 0 20px 0px 0;
  }
}


/*

  pagetop

=========================================================================== */

#pagetop{
  display: none;
  position: fixed;
  bottom: 160px;
  right: 0px;
  transition: transform .4s ease;
  transform: rotate(90deg);
  z-index: 99;
}

#pagetop:hover{
  transform: rotate(90deg);
  opacity: 1;
}
#pagetop a{
  color: #0a0a0a;
  padding: 5px 20px 10px;
  font-size: 1.6rem;
  line-height: 1.5;
  letter-spacing: 0.8px;
  text-align: center;
  position: relative;
}
#pagetop:hover a{
  color: #0a0a0a;
}
#pagetop a .arrow {
  display: block;
  width: 110.6px;
  height: 1px;
  background-color: #000;
  position: absolute;
  bottom: 0;
  left: 0;
}

#pagetop a .arrow::after {
  content: "";
  display: block;
  width: 8px;
  height: 11px;
  border-right: 1px solid #000;
  position: absolute;
  transform: rotate(45deg) scale(1, 1);
  bottom: 2px;
  left: -2px;
}

@media screen and (min-width: 768px) {
  #pagetop a:hover .arrow {
    transform-origin: top right;
    transform: scale(1, 1);
    opacity: 1;
    animation: arrow01 3s ease-in-out infinite forwards;
  }
  #pagetop a:hover .arrow::after {
    transform: rotate(45deg) scale(1, 1);
    opacity: 1;
    transform-origin: right bottom;
    animation: arrow02 3s ease-in-out infinite forwards;
    left: -8px;
    bottom: 0px;
    height: 12px;
    opacity: 0;
  }
}
@media screen and (max-width: 767px) {
  #pagetop{
    right: -43.2px;
    bottom: 130px;
  }
  #pagetop a{
    padding: 5px 20px 5px;
  }
}


/*

  other styles

=========================================================================== */

.front_panel{
  margin: -113px 0 0;
}
@media screen and (max-width: 767px) {
  .front_panel{
    margin: -59px 0 0;
  }
}

.ff-blw{
  font-family: inherit!important;
}

@media screen and (min-width: 768px) {
  .pc{
    display: block!important;
  }
  .sp{
    display: none!important;
  }
}

@media screen and (max-width: 767px) {
  .pc{
    display: none!important;
  }
  .sp{
    display: block!important;
  }
}

@media screen and (min-width: 768px) {
}

@media screen and (max-width: 767px) {
}
