@charset "utf-8";
/* CSS Document */

/*---------------------------------------------------------------------
  main_slide
---------------------------------------------------------------------*/
.main_slide {
  position: relative;
  background: #eee;
  margin-bottom: 10px;
}
.main-slider {
  /*max-width: 1200px;*/
  margin: 0 auto;
}
.slide-arrow {
    position: absolute;
    top: 50%;
    z-index: 1;
    margin-top: -66px;
    font-size: 40px;
    color: #aaa;
}
.prev-arrow { left: -50px; }
.next-arrow { right: -50px; }

.slick-slide, .slick-slide::before, .caption {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}
.slick-slide::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.main-slider {
  position: relative;
  width: 100%;
  opacity: 0;
  visibility: hidden;
  transition: all 1.2s ease;
}
.main-slider.slick-initialized {
  opacity: 1;
  visibility: visible;
}
.slick-slide {
  position: relative;
  width: 100%;
  /*height: 460px;*/
  overflow: hidden;
  /*border: 5px solid #fff;*/
  background: #fff;
}
.slick-slide::before {}
.slick-slide a {
  display: block;
  position: relative;
  height: 100%;
}
.slick-slide video {
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  min-width: 100%;
  min-height: 100%;
  width: auto;
  height: auto;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}
.slick-slide iframe {
  position: relative;
  pointer-events: none;
  min-width: 100%;
  min-height: 100%;
}
.slick-slide figure {
  position: relative;
  height: 100%;
  margin: 0;
}
.slick-slide .slide-image {
  /*opacity: 0;*/
  height: 100%;
  background-size: cover;
  background-position: center;
  transition: all .8s ease;
}
.slick-slide .slide-image.show {
  opacity: 1;
}
.slick-slide .image-entity {
  width: 100%;
  opacity: 0;
  visibility: hidden;
}
.slick-slide .loading {
  position: absolute;
  top: 44%;
  left: 0;
  width: 100%;
}
.slick-slide .slide-media {
  -webkit-animation: slideOut 0.4s cubic-bezier(0.4, 0.29, 0.01, 1);
  animation: slideOut 0.4s cubic-bezier(0.4, 0.29, 0.01, 1);
}
.slick-slide.slick-current {
  z-index: 1;
}
.slick-slide.slick-current .slide-media {
  -webkit-animation: slideIn 2.4s cubic-bezier(0.4, 0.29, 0.01, 1);
  animation: slideIn 2.4s cubic-bezier(0.4, 0.29, 0.01, 1);
}
.slick-slide.slick-current .caption {
  opacity: 1;
  -webkit-transform: translateY(0);
  transform: translateY(0);
  transition: all 0.7s cubic-bezier(0.32, 0.34, 0, 1.62) 0.6s;
}
.caption {
  position: absolute;
  bottom: 5%;
  right: 2%;
  text-align: center;
  padding: 10px;
  border: 3px solid;
  color: #fff;
  margin: 0;
  font-size: 22px;
  font-weight: bold;
  letter-spacing: .02em;
  opacity: 0;
  z-index: 1;
  transition: all .3s ease;
  -webkit-transform: translateY(100px);
  transform: translateY(100px);
  background: rgba(0,0,0,.3);
}
.slick-dots {
  text-align: center;
  padding-top: 15px;
}
.slick-dots li {
  display: inline-block;
  vertical-align: top;
  margin: 0 8px;
}
.slick-dots li button {
  width: 16px;
  height: 16px;
  border: none;
  cursor: pointer;
  border-radius: 50%;
  vertical-align: middle;
  color: #fff;
  background-color: #fff;
  border: 1px solid #133775;
  transition: all .3s ease;
  opacity: 1;
  text-indent: -99999px;
}
.slick-dots li button:focus { outline: none; }
.slick-dots li button:hover { opacity: .8; }
.slick-dots li.slick-active button { background: #133775; }

 @-webkit-keyframes slideIn {
   from {
   -webkit-filter: blur(15px);
   filter: blur(15px);
  }
   to {
   -webkit-filter: blur(0);
   filter: blur(0);
  }
}
 @keyframes slideIn {
   from {
   -webkit-filter: blur(15px);
   filter: blur(15px);
  }
   to {
   -webkit-filter: blur(0);
   filter: blur(0);
  }
}
@-webkit-keyframes slideOut {
   from {
   -webkit-filter: blur(0);
   filter: blur(0);
  }
   to {
   -webkit-filter: blur(15px);
   filter: blur(15px);
  }
}
@keyframes slideOut {
   from {
   -webkit-filter: blur(0);
   filter: blur(0);
  }
   to {
   -webkit-filter: blur(15px);
   filter: blur(15px);
  }
}

/*---------------------------------------------------------------------
  gnavi
---------------------------------------------------------------------*/
.gnavi { margin: 10px 0; }

.gnavi .inner {
  display: table;
  table-layout: fixed;
  width: 100%;
  margin: 0 auto;
}
.gnavi .inner li { vertical-align: top; }
.gnavi .inner li dl {
  position: relative;
  padding: 10px 10px 20px;
}
.gnavi .inner li dt {
  position: relative;
  font-size: 22px;
  padding: 4px 0;
  margin-bottom: 15px;
}
.gnavi .inner .menu_01 dt::after {
  position: absolute;
  content: "";
  display: block;
  border-bottom: solid 4px #83764E;
  bottom: -3px;
  left: 50%;
  width: 30px;
  margin-left: -15px;
}
.gnavi .inner .menu_02 dt::after {
  position: absolute;
  content: "";
  display: block;
  border-bottom: solid 4px #02258D;
  bottom: -3px;
  left: 50%;
  width: 30px;
  margin-left: -15px;
}
.gnavi .inner .menu_03 dt::after {
  position: absolute;
  content: "";
  display: block;
  border-bottom: solid 4px #FC83A2;
  bottom: -3px;
  left: 50%;
  width: 30px;
  margin-left: -15px;
}
.gnavi .inner li dd { font-size: 14px; }
.gnavi .inner li h3 { padding: 6px 0 4px; }
.gnavi .inner .menu_01 { background-color: #E8E4D9; }
.gnavi .inner .menu_01 h3 { background: url(../image/bg_menu_01.jpg) top left; }
.gnavi .inner .menu_01 dl::after {
  position: absolute;
  content: "";
  background: url(../image/menu_01_arrow.png);
  width: 18px;
  height: 18px;
  bottom: 7px;
  right: 7px;
}
.gnavi .inner .menu_02 { background-color: #E0EDF4; }
.gnavi .inner .menu_02 h3 { background: url(../image/bg_menu_02.jpg) top left; }
.gnavi .inner .menu_02 dl::after {
  position: absolute;
  content: "";
  background: url(../image/menu_02_arrow.png);
  width: 18px;
  height: 18px;
  bottom: 7px;
  right: 7px;
}
.gnavi .inner .menu_03 { background-color: #FFEBF0; }
.gnavi .inner .menu_03 h3 { background: url(../image/bg_menu_03.jpg) top left; }
.gnavi .inner .menu_03 dl::after {
  position: absolute;
  content: "";
  background: url(../image/menu_03_arrow.png);
  width: 18px;
  height: 18px;
  bottom: 7px;
  right: 7px;
}
.gnavi .inner li:first-child {}
.gnavi .inner li a {
  color: #000;
  display: block;
  text-align: center;
  text-decoration: none;
  transition: .3s;
  border-radius: 2px;
}
.gnavi .inner li a:hover {
  color: #133775;
  background: rgba(255, 255, 255, 0.8);
}

/*---------------------------------------------------------------------
  gnavi_sub
---------------------------------------------------------------------*/
.gnavi_sub { margin: 10px 0 40px; }
.gnavi_sub .inner {
  display: table;
  table-layout: fixed;
  width: 100%;
  margin: 0 auto;
}
.gnavi_sub .inner li {
  vertical-align: top;
  text-align: center;
  border-bottom: 1px solid #ccc;
}
.gnavi_sub .inner li a {
  display: table;
  text-decoration: none;
}
.gnavi_sub .inner li a > * { display: table-cell; }
.gnavi_sub .inner li h3 {
  background-color: #fefcf5;
  vertical-align: middle;
  width: 35%;
}
.gnavi_sub .inner li h3 img { width: 100%; }
.gnavi_sub .inner li dl {
  position: relative;
  width: calc(100% - 35%);
  vertical-align: top;
  text-align: left;
  padding: 10px 5px 10px 12px;
}
.gnavi_sub .inner li dt {
  font-size: 20px;
  color: #000;
}
.gnavi_sub .inner .menu_01 dl {
  -webkit-background-size: 4px 4px;
  -moz-background-size: 4px 4px;
  background-size: 4px 4px;
  background-color: #EAF5E5;
  background-image: -webkit-gradient(linear, 0 0, 0 100%, color-stop(.5, #F4FAF2), color-stop(.5, transparent), to(transparent));
  background-image: -moz-linear-gradient(#F4FAF2 50%, transparent 50%, transparent);
  background-image: -o-linear-gradient(#F4FAF2 50%, transparent 50%, transparent);
  background-image: linear-gradient(#F4FAF2 50%, transparent 50%, transparent);
}
.gnavi_sub .inner .menu_02 dl {
  -webkit-background-size: 4px 4px;
  -moz-background-size: 4px 4px;
  background-size: 4px 4px;
  background-color: #F5FBFD;
  background-image: -webkit-gradient(linear, 0 0, 0 100%, color-stop(.5, #ECF7FC), color-stop(.5, transparent), to(transparent));
  background-image: -moz-linear-gradient(#ECF7FC 50%, transparent 50%, transparent);
  background-image: -o-linear-gradient(#ECF7FC 50%, transparent 50%, transparent);
  background-image: linear-gradient(#ECF7FC 50%, transparent 50%, transparent);
}
.gnavi_sub .inner .menu_03 dl {
  -webkit-background-size: 4px 4px;
  -moz-background-size: 4px 4px;
  background-size: 4px 4px;
  background-color: #F2EAF3;
  background-image: -webkit-gradient(linear, 0 0, 0 100%, color-stop(.5, #ECE1EE), color-stop(.5, transparent), to(transparent));
  background-image: -moz-linear-gradient(#ECE1EE 50%, transparent 50%, transparent);
  background-image: -o-linear-gradient(#ECE1EE 50%, transparent 50%, transparent);
  background-image: linear-gradient(#ECE1EE 50%, transparent 50%, transparent);
}
.gnavi_sub .inner .menu_04 dl {
  -webkit-background-size: 4px 4px;
  -moz-background-size: 4px 4px;
  background-size: 4px 4px;
  background-color: #FFF6EC;
  background-image: -webkit-gradient(linear, 0 0, 0 100%, color-stop(.5, #FFF2E4), color-stop(.5, transparent), to(transparent));
  background-image: -moz-linear-gradient(#FFF2E4 50%, transparent 50%, transparent);
  background-image: -o-linear-gradient(#FFF2E4 50%, transparent 50%, transparent);
  background-image: linear-gradient(#FFF2E4 50%, transparent 50%, transparent);
}
.gnavi_sub .inner li dd { font-size: 11px; }
.gnavi_sub .inner .menu_01 dd { color: #339900; }
.gnavi_sub .inner .menu_02 dd { color: #00A3D9; }
.gnavi_sub .inner .menu_03 dd { color: #632870; }
.gnavi_sub .inner .menu_04 dd { color: #FF7F00; }

.gnavi_sub .inner .menu_01 dl::after {
  position: absolute;
  border-bottom: 2px solid #390;
  border-right: 2px solid #390;
  content: "";
  height: 6px;
  left: 95%;
  bottom: 11px;
  transform: rotate(45deg);
  width: 6px;
  margin-left: -3px;
}
.gnavi_sub .inner .menu_02 dl::after {
  position: absolute;
  border-bottom: 2px solid #63BDEA;
  border-right: 2px solid #63BDEA;
  content: "";
  height: 6px;
  left: 95%;
  bottom: 11px;
  transform: rotate(45deg);
  width: 6px;
  margin-left: -3px;
}
.gnavi_sub .inner .menu_03 dl::after {
  position: absolute;
  border-bottom: 2px solid #80368F;
  border-right: 2px solid #80368F;
  content: "";
  height: 6px;
  left: 95%;
  bottom: 11px;
  transform: rotate(45deg);
  width: 6px;
  margin-left: -3px;
}
.gnavi_sub .inner .menu_04 dl::after {
  position: absolute;
  border-bottom: 2px solid #FF8000;
  border-right: 2px solid #FF8000;
  content: "";
  height: 6px;
  left: 95%;
  bottom: 11px;
  transform: rotate(45deg);
  width: 6px;
  margin-left: -3px;
}

/*---------------------------------------------------------------------
  topics
---------------------------------------------------------------------*/
.topics { margin-bottom: 40px; }
.topics .topics_list {
  max-width: 1000px;
  margin: 0 auto;
}
.topics .topics_list ul {
  font-size: 0;
  text-align: center;
  margin: -10px 0 20px;
}
.topics .topics_list ul li {
  display: inline-block;
  margin-right: 20px;
}
.topics .topics_list ul a {
  position: relative;
  text-decoration: none;
  font-size: 14px;
  color: #000;
}
.topics .topics_list ul .list_btn::after {
  position: absolute;
  border-bottom: 3px solid #00A3D9;
  border-right: 3px solid #00A3D9;
  content: "";
  height: 10px;
  right: -18px;
  top: 3px;
  transform: rotate(-45deg);
  width: 10px;
}
.topics .topics_list dl {
  border-top: 1px dotted #bbb;
  transition: all 0.3s ease-in-out 0s;
}
.topics .topics_list dl a {
  position: relative;
  display: block;
  text-decoration: none;
  color: #000;
  padding: 10px 20px 10px 10px;
}
.topics .topics_list dl a::after {
  position: absolute;
  border-bottom: 2px solid #008EBC;
  border-right: 2px solid #008EBC;
  content: "";
  height: 6px;
  right: 10px;
  top: 38px;
  transform: rotate(-45deg);
  width: 6px;
}
.topics .topics_list dl dt {
  font-size: 13px;
  margin-bottom: 3px;
}
.topics .topics_list dl dd { font-size: 14px; }
.topics .topics_list dl:hover,
.topics .topics_list dl:nth-child(odd):hover { background-color: #FCF5E0; }
.topics .topics_list dl:nth-child(odd) { background-color: #FEFCF5; }
.topics .topics_list dl:last-child { border-bottom: 1px dotted #bbb; }

.top_ttl_01 {
  font-weight: normal;
  text-align: center;
  font-size: 25px;
  border-bottom: 2px solid #bbb;
  position: relative;
  padding-bottom: 7px;
  margin: 0 0 25px;
}
.top_ttl_01::after {
  border-bottom: 2px solid #00A3D9;
  content: "";
  position: absolute;
  width: 240px;
  left: 50%;
  bottom: -2px;
  margin-left: -120px;
}
.top_ttl_02 {
  font-size: 120%;
    font-weight: normal;
    border-bottom: 2px solid #bbb;
    position: relative;
    margin: 0 0 15px;
}
.top_ttl_02::after {
    border-bottom: 2px solid #358fdd;
    content: "";
    position: absolute;
    width: 100px;
    left: 0px;
    bottom: -2px;
}

/*---------------------------------------------------------------------
	banner_bottom
---------------------------------------------------------------------*/
.banner_bottom ul { font-size: 0; }
.banner_bottom ul li {
  text-align: center;
  margin: 0 0 13px 0;
}

/* Tablet */
@media (min-width: 768px) {

    /*---------------------------------------------------------------------
      gnavi
    ---------------------------------------------------------------------*/
    .gnavi .inner li { display: table-cell; }
    .gnavi .inner li dl { padding: 15px 10px 25px; }
    .gnavi .inner li dt {
      font-size: 24px;
      margin-bottom: 20px;
    }
    .gnavi .inner li dd { font-size: 16px; }
    .gnavi .inner .menu_01 dl::after,
    .gnavi .inner .menu_02 dl::after,
    .gnavi .inner .menu_03 dl::after {
      right: 11px;
      bottom: 11px;                                                        
    }

    /*---------------------------------------------------------------------
      gnavi_sub
    ---------------------------------------------------------------------*/
    .gnavi_sub { margin: 10px 0 50px; }
    .gnavi_sub .inner li {
      display: table-cell;
      border-right: 1px solid #bbb;
      border-bottom: none;
    }
    .gnavi_sub .inner li:last-child { border-right: none; }
    .gnavi_sub .inner li dl {
      width: 100%;
      text-align: center;
      padding: 5px 0 18px;
    }
    .gnavi_sub .inner li dt { font-size: 22px; }
    .gnavi_sub .inner li dd {
      font-size: 15px;
      padding: 0 10px;
    }
    .gnavi_sub .inner li a { display: block; }
    .gnavi_sub .inner li h3 { width: 100%; }
    .gnavi_sub .inner li a > * { display: block; }
    .gnavi_sub .inner .menu_01 dl::after,
    .gnavi_sub .inner .menu_02 dl::after,
    .gnavi_sub .inner .menu_03 dl::after,
    .gnavi_sub .inner .menu_04 dl::after { left: 50%; }

    /*---------------------------------------------------------------------
      topics
    ---------------------------------------------------------------------*/
    .top_ttl_01 {
      font-size: 30px;
      padding-bottom: 10px;
      margin: 0 0 40px;
    }
    .topics { margin-bottom: 80px; }
    .topics .topics_list ul { margin: -27px 0 30px; }
    .topics .topics_list dl a { padding: 15px 15px 15px 18px; }
    .topics .topics_list dl dt { font-size: 15px; }
    .topics .topics_list dl dd { font-size: 16px; }
    .topics .topics_list dl a::after { right: 15px; }
  
    .thumb_topics { margin-bottom: 80px; }
    .list_thumb_topics li {
      display: inline-block;
      width: 24.166666666666668%;
      margin: 0 13px 13px 0;
    }
    .list_thumb_topics li:nth-child(4n) { margin-right: 0; }
  
    /*---------------------------------------------------------------------
      banner_bottom
    ---------------------------------------------------------------------*/
    .banner_bottom ul { text-align: center; }
    .banner_bottom ul li {
      display: inline-block;
      margin: 0 13px 13px 0;
    }
  
}

/* DeskTop */
@media (min-width: 1024px) {

    /*---------------------------------------------------------------------
      gnavi
    ---------------------------------------------------------------------*/
    .gnavi .inner li dt { font-size: 28px; }
    .gnavi .inner li dd { font-size: 18px; }

    /*---------------------------------------------------------------------
      gnavi_sub
    ---------------------------------------------------------------------*/
    .gnavi_sub .inner li dt { font-size: 24px; }
    .gnavi_sub .inner li dd { font-size: 16px; }
  
    /*---------------------------------------------------------------------
      banner_bottom
    ---------------------------------------------------------------------*/
    .banner_bottom ul { text-align: left; }
    .banner_bottom ul li {
      display: inline-block;
      margin: 0 13px 13px 0;
    }
    .banner_bottom ul li:nth-child(4n) { margin-right: 0; }
}