@charset "UTF-8";
/*	reset
-----------------------------------------*/
* {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font-weight: normal;
  vertical-align: baseline;
}

article, aside, details, figcaption, figure, main,
footer, header, hgroup, menu, nav, section {
  display: block;
}

html {
  line-height: 1;
}

input:not([type=checkbox]), textarea, button, select {
  margin: 0;
  padding: 0;
  -ms-appearance: none;
  -webkit-appearance: none;
  appearance: none;
}

ol, ul {
  list-style: none;
}

button {
  background: none;
  box-shadow: none;
  cursor: pointer;
}

a {
  text-decoration: none;
}

#footer .footer-inner::after, .link-public-01 a::after, .link-search-01 a::after, .box-panel-01 .panel .panel-inner::after, .lyt-01::after, .main.top .top-visual .carousel-utility::after, .main.top .top-box-01 a::after {
  content: "";
  clear: both;
  display: block;
}

#header a, .main, #footer .footer-link-01 li a, #footer .copy small {
  font-feature-settings: "kern", "palt";
}

/*	base
-----------------------------------------*/
*, *::before, *::after {
  box-sizing: border-box;
  letter-spacing: .025em;
}

@font-face {
  font-family: "Yu Gothic";
  font-weight: normal;
  src: local("Yu Gothic");
}
@font-face {
  font-family: "Yu Gothic";
  font-weight: bold;
  src: local("Yu Gothic");
}
@font-face {
  font-family: "Yu Gothic";
  src: local("Yu Gothic Bold");
  font-weight: bold;
}
body {
  font-size: 87.5%;
  font-family: "Yu Gothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro", Meiryo, "メイリオ", Arial, sans-serif;
  line-height: 1.57143;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  color: #333;
}
body.scroll {
  position: fixed;
  z-index: -1;
}

body img {
  vertical-align: bottom;
  height: auto;
  max-width: 100%;
}

a, button {
  font-family: "Yu Gothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro", Meiryo, "メイリオ", Arial, sans-serif;
  text-decoration: none;
  transition: .3s all;
}
a::before, a::after, button::before, button::after {
  transition: .3s all;
}

sup {
  font-size: 0.75rem;
  vertical-align: top;
}

sub {
  font-size: 0.75rem;
  vertical-align: bottom;
}

p {
  font-size: 1rem;
  line-height: 1.8125;
  margin-top: 35px;
}

b {
  font-weight: bold;
}

strong {
  font-weight: bold;
  color: #e60014;
}

/*	page
-----------------------------------------*/
#page {
  overflow: hidden;
  position: relative;
  height: 100%;
}

/*	header
-----------------------------------------*/
#header {
  background: #000;
  width: 100%;
  padding: 0 40px;
}
#header .header-inner {
  max-width: 1180px;
  margin: 0 auto;
  width: 100%;
  display: table;
}
#header .header-logo {
  font-size: 0.875rem;
  line-height: 1.57143;
  margin-top: 0;
  display: table-cell;
  vertical-align: middle;
}
#header .header-logo img {
  max-width: 113px;
}
#header #header-btn {
  display: none;
}
#header .header-box {
  padding-top: 23px;
  display: table-cell;
  vertical-align: middle;
  text-align: right;
}
#header .header-utility {
  display: inline-block;
  white-space: nowrap;
}
#header .header-utility .header-link-01 {
  display: table-cell;
  vertical-align: middle;
}
#header .header-utility .header-link-01 li {
  display: table-cell;
  padding-right: 20px;
}
#header .header-utility .header-link-01 li a {
  display: block;
  padding-left: 32px;
  color: #fff;
}
#header .header-utility .header-link-01 li a:hover, #header .header-utility .header-link-01 li a:focus {
  color: #999;
}
#header .header-utility .header-link-01 .contact a {
  background: url(/shared/images/icon-01.png) no-repeat center left;
}
#header .header-utility .header-link-01 .lang a {
  background: url(/shared/images/icon-02.png) no-repeat center left;
}
#header #header-search {
  display: table-cell;
  vertical-align: middle;
  position: relative;
}
#header #header-search #search-01 {
  max-height: 34px;
  min-height: 34px;
  min-width: 246px;
  max-width: 246px;
  padding: 6px 10px;
  font-family: "Yu Gothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro", Meiryo, "メイリオ", Arial, sans-serif;
  border-radius: 0;
}
#header #header-search button {
  background: #fff;
  position: absolute;
  overflow: hidden;
  top: 0;
  right: 0;
  height: 34px;
  width: 34px;
  transition: .3s all;
}
#header #header-search button::before {
  content: "";
  display: block;
  height: 12px;
  width: 11px;
  background: url(/shared/images/icon-03.png) no-repeat top left;
  position: absolute;
  right: 11px;
  top: 11px;
}
#header #header-search button:hover, #header #header-search button:focus {
  background: #eaeaea;
}
#header #header-search button span {
  position: absolute;
  top: -999em;
  left: -999em;
}
#header #global {
  text-align: right;
}
#header #global .global-list-01 {
  display: inline-block;
}
#header #global .global-list-01 > li {
  font-size: 1rem;
  line-height: 1.625;
  white-space: nowrap;
  text-align: center;
  display: table-cell;
  position: relative;
  padding: 14px 30px 4px 30px;
}
#header #global .global-list-01 > li::before {
  content: "";
  display: block;
  height: 20px;
  width: 1px;
  background: #999;
  -webkit-transform: rotate(30deg);
  transform: rotate(30deg);
  position: absolute;
  top: 50%;
  margin-top: -10px;
  right: 0;
}
#header #global .global-list-01 > li:last-child::before {
  content: none;
}
#header #global .global-list-01 > li a {
  display: block;
  color: #fff;
  padding-bottom: 3px;
  font-weight: bold;
  border-bottom: #000 4px solid;
}
#header #global .global-list-01 > li a:hover, #header #global .global-list-01 > li a:focus {
  color: #999;
}
#header #global .global-list-01 .current a {
  border-bottom: #e60014 4px solid;
}
#header #global .global-list-01 .current a:hover, #header #global .global-list-01 .current a:focus {
  color: #fff;
}
#header #global .global-list-02 {
  display: none;
}
@media only screen and (max-width: 798px) {
  #header {
    padding: 0;
    background: none;
  }
  #header a {
    font-feature-settings: normal;
  }
  #header.scroll {
    position: fixed;
    overflow-y: auto;
    height: 100%;
    z-index: 10;
    background: rgba(0, 0, 0, 0.85);
  }
  #header.scroll .header-inner {
    background: none;
    position: relative;
    display: block;
  }
  #header.scroll .header-box {
    background: none;
  }
  #header .header-logo {
    background: #000;
    display: block;
    padding: 12px 15px;
  }
  #header .header-logo img {
    max-width: 86px;
  }
  #header #header-btn {
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    width: 70px;
    overflow: hidden;
    padding: 19px 0 13px;
    max-height: 70px;
  }
  #header #header-btn::before {
    content: "";
    display: block;
    background: #fff;
    width: 24px;
    height: 2px;
    position: absolute;
    top: 27px;
    left: 50%;
    margin-left: -12px;
  }
  #header #header-btn span {
    font-family: Lato, sans-serif;
    font-size: 0.6875rem;
    line-height: 1.63636;
    font-weight: 700;
    display: block;
    position: relative;
    padding-top: 21px;
    color: #fff;
  }
  #header #header-btn span::before, #header #header-btn span::after {
    content: "";
    display: block;
    background: #fff;
    width: 24px;
    height: 2px;
    position: absolute;
    left: 50%;
    margin-left: -12px;
    will-change: transform;
    transition: .3s all;
  }
  #header #header-btn span::before {
    top: 0;
  }
  #header #header-btn span::after {
    top: 16px;
  }
  #header #header-btn i {
    position: absolute;
    top: -999em;
    right: -999em;
  }
  #header #header-btn.open::before {
    content: none;
  }
  #header #header-btn.open span::before {
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    top: 10px;
  }
  #header #header-btn.open span::after {
    will-change: transform;
    -webkit-transform: rotate(135deg);
    transform: rotate(135deg);
    top: 10px;
  }
  #header .header-box {
    background: rgba(0, 0, 0, 0.85);
    text-align: center;
    width: 100%;
    padding: 0;
    position: absolute;
    border-top: rgba(255, 255, 255, 0.2) 1px solid;
    z-index: 88;
  }
  #header .header-box.close {
    display: none;
  }
  #header .header-box.open {
    display: block;
  }
  #header .header-utility {
    display: block;
    white-space: normal;
  }
  #header .header-utility .header-link-01 {
    display: table;
    width: 100%;
  }
  #header .header-utility .header-link-01 li {
    width: 50%;
    padding: 0 15px;
    border-bottom: rgba(255, 255, 255, 0.2) 1px solid;
  }
  #header .header-utility .header-link-01 li a {
    padding: 19px 0 18px 32px;
    display: inline-block;
  }
  #header .header-utility .header-link-01 li:first-child {
    border-right: rgba(255, 255, 255, 0.2) 1px solid;
  }
  #header #header-search {
    display: block;
    padding: 20px 15px;
  }
  #header #header-search #search-01 {
    max-height: 40px;
    height: 40px;
    width: 100%;
    max-width: 100%;
  }
  #header #header-search button {
    top: 20px;
    right: 15px;
    height: 100%;
    height: 40px;
    width: 40px;
  }
  #header #header-search button::before {
    top: 14px;
    right: 14px;
  }
  #header #global {
    display: block;
    text-align: center;
  }
  #header #global .global-list-01 {
    display: block;
  }
  #header #global .global-list-01 .current a {
    border: 0;
  }
  #header #global .global-list-01 > li {
    display: block;
    padding: 0 15px;
    border-bottom: rgba(255, 255, 255, 0.2) 1px solid;
  }
  #header #global .global-list-01 > li::before {
    content: none;
  }
  #header #global .global-list-01 > li > a {
    border-bottom: 0;
    padding: 18px 0 16px 0;
    position: relative;
    overflow: hidden;
  }
  #header #global .global-list-01 > li > a::before, #header #global .global-list-01 > li > a::after {
    content: "";
    will-change: transform;
    display: block;
    background: #fff;
    position: absolute;
    top: 50%;
    height: 2px;
    width: 10px;
    right: 0;
  }
  #header #global .global-list-01 > li > a::before {
    -webkit-transform: rotate(35deg);
    transform: rotate(35deg);
    margin-top: -4px;
  }
  #header #global .global-list-01 > li > a::after {
    -webkit-transform: rotate(-35deg);
    transform: rotate(-35deg);
    margin-top: 1px;
  }
  #header #global .global-list-01 > li .global-list-02 {
    padding-bottom: 10px;
  }
  #header #global .global-list-01 > li .global-list-02 li a {
    border-bottom: 0;
    padding: 8px 0 6px 0;
  }
  #header #global .global-list-01 > li .global-list-02 li a span {
    display: inline-block;
    position: relative;
    padding: 0 20px;
  }
  #header #global .global-list-01 > li .global-list-02 li a span::before, #header #global .global-list-01 > li .global-list-02 li a span::after {
    content: "";
    display: block;
    background: #e60014;
    height: 2px;
    width: 10px;
    position: absolute;
    top: 50%;
    right: 0;
  }
  #header #global .global-list-01 > li .global-list-02 li a span::before {
    -webkit-transform: rotate(35deg);
    transform: rotate(35deg);
    margin-top: -4px;
  }
  #header #global .global-list-01 > li .global-list-02 li a span::after {
    -webkit-transform: rotate(-35deg);
    transform: rotate(-35deg);
    margin-top: 1px;
  }
  #header #global .global-list-01 .btn > a::before, #header #global .global-list-01 .btn > a::after {
    transition: .3s all;
    will-change: transform;
    -webkit-transform-origin: center center;
    transform-origin: center center;
  }
  #header #global .global-list-01 .btn > a::before {
    height: 2px;
    width: 12px;
  }
  #header #global .global-list-01 .btn > a::after {
    width: 2px;
    height: 12px;
  }
  #header #global .global-list-01 .btn > a i {
    position: absolute;
    top: -999em;
    right: -999em;
  }
  #header #global .global-list-01 .btn.open > a::before {
    margin-top: -1px;
    right: 0;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
  }
  #header #global .global-list-01 .btn.open > a::after {
    height: 12px;
    width: 2px;
    margin-top: -6px;
    right: 5px;
    -webkit-transform: rotate(-135deg);
    transform: rotate(-135deg);
  }
  #header #global .global-list-01 .btn.close > a::before {
    margin-top: -1px;
    right: 0;
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  #header #global .global-list-01 .btn.close > a::after {
    margin-top: -6px;
    right: 5px;
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  #header #global .global-list-01 .btn.close > .global-list-02 {
    display: none;
  }
}

/*	main
-----------------------------------------*/
.main {
  width: 100%;
}
.main.top {
  background: #eaeaea;
}
.main .content {
  padding: 0 40px;
}
.main .content .content-inner {
  max-width: 1180px;
  margin: 0 auto;
  padding-top: 40px;
  padding-bottom: 100px;
}
.main .content .content-inner > *:first-child {
  margin-top: 0;
}
.main .top-inner {
  max-width: 1180px;
  margin: 0 auto;
}
.main p:not(.btn-01) a, .main p:not(.btn-01) button {
  color: #333;
  text-decoration: underline;
}
.main p:not(.btn-01) a:hover, .main p:not(.btn-01) a:focus, .main p:not(.btn-01) button:hover, .main p:not(.btn-01) button:focus {
  opacity: 1;
  text-decoration: none;
}
.main a:hover, .main a:focus, .main button:hover, .main button:focus {
  opacity: .7;
}
@media only screen and (max-width: 798px) {
  .main.blur {
    -webkit-filter: blur(30px);
    filter: blur(30px);
  }
}
@media only screen and (max-width: 599px) {
  .main .content {
    padding: 0 15px;
  }
}

/*	breadcrumb
-----------------------------------------*/
.breadcrumb {
  max-width: 1180px;
  margin: 0 auto;
  background: #eaeaea;
  position: relative;
  text-align: left;
}
.breadcrumb p {
  padding-top: 13px;
  position: absolute;
  top: 0;
  left: 0;
  font-size: 0.875rem;
  line-height: 1.42857;
  margin-top: 0;
}
.breadcrumb p a {
  text-decoration: underline;
  color: #666;
  position: relative;
  margin-right: 18px;
}
.breadcrumb p a:hover, .breadcrumb p a:focus {
  text-decoration: none;
  opacity: 1;
}
.breadcrumb p a::before, .breadcrumb p a::after {
  content: "";
  display: block;
  background: #666;
  height: 1px;
  width: 8px;
  position: absolute;
  top: 50%;
  right: -14px;
}
.breadcrumb p a::before {
  -webkit-transform: rotate(26deg);
  transform: rotate(26deg);
  margin-top: -2px;
}
.breadcrumb p a::after {
  -webkit-transform: rotate(-26deg);
  transform: rotate(-26deg);
  margin-top: 1px;
}
.breadcrumb p em {
  color: #666;
  font-style: normal;
}
@media only screen and (max-width: 599px) {
  .breadcrumb p {
    padding: 14px 0 12px 0;
    font-size: 0.75rem;
    line-height: 1.41667;
  }
}

/*	aside
-----------------------------------------*/
#local-01 {
  background: #282828;
  padding: 0 40px;
}
#local-01 .local-inner {
  max-width: 1180px;
  margin: 0 auto;
}
#local-01 .list {
  margin-left: -30px;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-justify-content: center;
  justify-content: center;
  padding: 10px 0;
}
#local-01 .list li {
  font-size: 1rem;
  line-height: 1.625;
  text-align: center;
  position: relative;
  padding-right: 12px;
}
#local-01 .list li::before {
  content: "";
  display: block;
  height: 20px;
  width: 1px;
  background: #999;
  -webkit-transform: rotate(30deg);
  transform: rotate(30deg);
  position: absolute;
  top: 50%;
  margin-top: -10px;
  right: 6px;
}
#local-01 .list li:last-child::before {
  content: none;
}
#local-01 .list li a {
  margin: 0 30px;
  display: block;
  color: #fff;
  font-weight: bold;
  border-top: #282828 4px solid;
  border-bottom: #282828 4px solid;
}
#local-01 .list li a:hover, #local-01 .list li a:focus {
  color: #999;
}
#local-01 .list li span {
  display: inline-block;
  padding-top: 2px;
  vertical-align: middle;
}
#local-01 .list .current a {
  border-bottom: #e60014 4px solid;
}
@media only screen and (max-width: 599px) {
  #local-01 {
    padding: 0 15px;
  }
  #local-01 .list {
    margin: 0;
    padding: 20px 0;
  }
  #local-01 .list li a {
    margin: 0 15px;
  }
}

/*	footer
-----------------------------------------*/
@media only screen and (max-width: 798px) {
  #local-01 + #footer .pagetop a {
    background: #3c3c3c;
  }
}

#footer {
  background: #000;
  width: 100%;
  padding: 0 40px;
}
@media only screen and (max-width: 798px) {
  #footer.blur {
    -webkit-filter: blur(3px);
    filter: blur(3px);
  }
}
#footer .pagetop {
  font-size: 0.875rem;
  line-height: 1.57143;
  margin-top: 0;
  transform: translate3d(0, 0, 0);
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 888;
}
#footer .pagetop a {
  background: #000;
  width: 40px;
  height: 40px;
  display: block;
  overflow: hidden;
  position: relative;
}
#footer .pagetop a::before, #footer .pagetop a::after {
  content: "";
  display: block;
  width: 10px;
  height: 2px;
  background: #fff;
  position: absolute;
  top: 50%;
  left: 50%;
}
#footer .pagetop a::before {
  -webkit-transform: rotate(50deg);
  transform: rotate(50deg);
  margin-left: -2px;
}
#footer .pagetop a::after {
  -webkit-transform: rotate(130deg);
  transform: rotate(130deg);
  margin-left: -8px;
}
#footer .pagetop a:hover, #footer .pagetop a:focus {
  opacity: .6;
}
#footer .pagetop a span {
  position: absolute;
  right: -999em;
  top: -999em;
}
#footer .footer-inner {
  max-width: 1180px;
  margin: 0 auto;
  padding-bottom: 31px;
  width: 100%;
}
#footer .footer-link-01 {
  padding-top: 31px;
  float: left;
  width: 60%;
}
#footer .footer-link-01 li {
  display: table-cell;
  padding-right: 30px;
}
#footer .footer-link-01 li a {
  display: block;
  color: #fff;
}
#footer .footer-link-01 li a:hover, #footer .footer-link-01 li a:focus {
  color: #999;
}
#footer .copy {
  font-size: 0.875rem;
  line-height: 1.57143;
  margin-top: 0;
  padding-top: 31px;
  float: right;
  width: 40%;
  text-align: right;
}
#footer .copy small {
  display: inline-block;
  font-family: Lato, sans-serif;
  color: #fff;
}
@media only screen and (max-width: 798px) {
  #footer {
    padding: 0 15px;
  }
  #footer .footer-link-01 li {
    padding-right: 15px;
  }
}
@media only screen and (max-width: 798px) {
  #footer {
    padding: 0 0 20px 0;
  }
  #footer .pagetop {
    position: static;
  }
  #footer .pagetop a {
    background: #282828;
    width: 100%;
    height: 40px;
    display: block;
  }
  #footer .pagetop a:hover, #footer .pagetop a:focus {
    opacity: 1;
  }
  #footer .footer-inner {
    padding: 0 15px;
  }
  #footer .footer-link-01 {
    float: none;
    width: 100%;
    padding-top: 35px;
  }
  #footer .footer-link-01 li {
    display: block;
    text-align: center;
    padding: 0;
  }
  #footer .footer-link-01 li + li {
    padding-top: 10px;
  }
  #footer .footer-link-01 li a {
    display: inline-block;
  }
  #footer .copy {
    padding-top: 30px;
    float: none;
    width: 100%;
    text-align: center;
  }
}

/*	form
-----------------------------------------*/
form {
  margin-bottom: 80px;
}
@media only screen and (max-width: 599px) {
  form {
    margin-bottom: 60px;
  }
  form + .lyt-01 .txt {
    margin-top: 1em;
  }
}

/*=========================================
	text
=========================================*/
/*	lead-01
-----------------------------------------*/
.lead-01 {
  text-align: center;
  font-size: 1.25rem;
  line-height: 1.8;
  color: #e60014;
  margin-top: 40px;
  font-weight: 500;
}
@media only screen and (max-width: 599px) {
  .lead-01 {
    margin-top: 30px;
    font-size: 1.25rem;
    line-height: 1.8;
  }
}

/*	lead-03
-----------------------------------------*/
.lead-03 {
  font-size: 1.25rem;
  line-height: 1.8;
  text-align: center;
  margin-top: 40px;
}
@media only screen and (max-width: 599px) {
  .lead-03 {
    margin-top: 30px;
  }
}

/*	note-01
-----------------------------------------*/
.note-01 {
  color: #666;
}
.note-01 + .note-01 {
  margin-top: 15px;
}
.note-01 small {
  font-size: 0.875rem;
  line-height: 1.57143;
  position: relative;
  padding-left: 1.5rem;
  display: block;
  text-align: left;
}
.note-01 small span {
  position: absolute;
  top: 0;
  left: 0;
}

/*	note-02
-----------------------------------------*/
.note-02 {
  color: #666;
}
.note-02 + .note-01 {
  margin-top: 15px;
}
.note-02 small {
  font-size: 0.875rem;
  line-height: 1.57143;
  position: relative;
  padding-left: 2.5em;
  display: block;
  text-align: left;
}
.note-02 small span {
  position: absolute;
  top: 0;
  left: 0;
}

/*	txt-error-01
-----------------------------------------*/
.txt-error-01 {
  padding: 5px;
  background: #000;
  display: table;
}
.txt-error-01 img {
  width: 100%;
  max-width: 113px;
}

/*	txt-error-02
-----------------------------------------*/
.txt-error-02 {
  margin-top: 40px;
  background: #fae1e3;
  padding: 40px 15px 30px 15px;
  text-align: center;
}
.txt-error-02 p {
  margin-top: 0;
  padding-top: 50px;
  background: url(/shared/images/icon-error-01.png) no-repeat center top;
}
@media only screen and (max-width: 599px) {
  .txt-error-02 {
    margin-top: 30px;
    padding: 37px 15px 28px 15px;
    text-align: left;
  }
  .txt-error-02 p {
    padding-top: 0;
    padding-left: 54px;
    background-position: 5px 5px;
  }
}

/*	txt-name-01
-----------------------------------------*/
.txt-name-01 {
  margin-top: 60px;
}
.txt-name-01 span {
  font-size: 1.5rem;
  line-height: 1.16667;
  padding-left: 15px;
  vertical-align: top;
}

/*=========================================
	list
=========================================*/
/*	list-01
-----------------------------------------*/
.list-01 {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  margin: 40px -20px 0 -20px;
}
.list-01.col3 li {
  width: 33.33333%;
  padding: 0 20px;
}
.list-01.col3 li .img {
  max-width: 367px;
  max-height: 206px;
  width: 100%;
}
.list-01 .txt {
  font-size: 1.25rem;
  line-height: 1.6;
  font-weight: bold;
  display: block;
  margin-top: 14px;
}
.list-01 .num {
  margin-top: 3px;
  display: block;
}
.list-01 .type {
  display: -webkit-flex;
  display: flex;
  -webkit-align-items: center;
  align-items: center;
  margin-top: 5px;
}
.list-01 .type span {
  font-size: 0.75rem;
  line-height: 1.58333;
  background: #444;
  color: #fff;
  border-radius: 2px;
  border: #b4b4b4 1px solid;
  padding: 3px 4px 3px 4.4px;
  vertical-align: middle;
  text-align: center;
  margin-left: 3px;
}
.list-01 .type span:first-child {
  margin: 0;
}
@media only screen and (max-width: 599px) {
  .list-01 {
    display: block;
    margin: 0;
  }
  .list-01.col3 li, .list-01.col4 li {
    width: 100%;
    padding: 0;
    margin-top: 30px;
  }
  .list-01.col3 li span:first-child, .list-01.col4 li span:first-child {
    text-align: center;
    display: block;
  }
  .list-01.col3 li .txt, .list-01.col3 li .num, .list-01.col4 li .txt, .list-01.col4 li .num {
    text-align: left;
  }
  .list-01.col3 li .img, .list-01.col4 li .img {
    max-width: 100%;
    width: auto;
  }
}
.list-01 .note-01 {
  margin-top: 5px;
}

/*	list-02
-----------------------------------------*/
.list-02 {
  font-size: 1rem;
  line-height: 1.8125;
  margin-top: 35px;
}
.list-02 li {
  margin-top: 5px;
  padding-left: 20px;
  position: relative;
}
.list-02 li::before {
  content: "";
  display: block;
  background: #333;
  width: 6px;
  height: 6px;
  border-radius: 12px;
  position: absolute;
  top: 11px;
  left: 5px;
}
.list-02 li > ul, .list-02 li > ol {
  margin-top: 0;
  margin-bottom: 15px;
}

/*	list-03
-----------------------------------------*/
.list-03 {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  margin: 0 -20px;
}
.list-03.col4 li {
  width: 25%;
  padding: 0 20px;
  margin-top: 40px;
}
.list-03.col4 li .img {
  width: 100%;
  max-width: 367px;
  max-height: 206px;
}
.list-03 .txt {
  font-size: 1rem;
  line-height: 1.625;
  font-weight: bold;
  display: block;
  margin-top: 14px;
}
.list-03 .num {
  margin-top: 3px;
  display: block;
}
.list-03 .type {
  display: -webkit-flex;
  display: flex;
  -webkit-align-items: center;
  align-items: center;
  margin-top: 5px;
}
.list-03 .type span {
  font-size: 0.75rem;
  line-height: 1.58333;
  background: #444;
  color: #fff;
  border-radius: 2px;
  border: #b4b4b4 1px solid;
  padding: 3px 4px 3px 4.4px;
  vertical-align: middle;
  text-align: center;
  margin-left: 3px;
}
.list-03 .type span:first-child {
  margin: 0;
}
@media only screen and (max-width: 959px) {
  .list-03.col4 li {
    width: 50%;
  }
}
@media only screen and (max-width: 599px) {
  .list-03 {
    display: block;
    margin: 0;
  }
  .list-03.col3 li, .list-03.col4 li {
    width: 100%;
    padding: 0;
    margin-top: 30px;
  }
  .list-03.col4 li span:first-child {
    display: block;
    text-align: center;
  }
  .list-03.col4 li .img {
    width: auto;
    max-width: 100%;
  }
  .list-03.col4 li .txt, .list-03.col4 li .num {
    text-align: left;
  }
}
.list-03 .note-01 {
  margin-top: 5px;
}

/*	list-04
-----------------------------------------*/
.list-04 {
  font-size: 1rem;
  line-height: 1.8125;
  margin-top: 35px;
}
.list-04 li {
  margin-top: 5px;
  padding-left: 2.4em;
  position: relative;
}
.list-04 li span {
  text-align: right;
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  width: 1.7em;
}
.list-04 li > ul, .list-04 li > ol {
  margin-top: 0;
  margin-bottom: 15px;
}
@media only screen and (max-width: 599px) {
  .list-04 {
    margin-top: 25px;
  }
}

/*	list-desc-01
-----------------------------------------*/
.list-desc-01 {
  margin-top: 40px;
  font-size: 1rem;
  line-height: 1.8125;
}
.list-desc-01 dt {
  font-weight: bold;
}
.list-desc-01 dt + dt {
  margin-top: 6px;
}
.list-desc-01 dd {
  margin-top: 6px;
}
.list-desc-01 dd + dt {
  margin-top: 26px;
}
.list-desc-01 dd > ul, .list-desc-01 dd > ol {
  margin-top: 0;
}
@media only screen and (max-width: 599px) {
  .list-desc-01 dd + dt {
    margin-top: 16px;
  }
}

/*	list-order-01
-----------------------------------------*/
ol.list-order-01 {
  font-size: 1rem;
  line-height: 1.8125;
  margin-top: 35px;
}
ol.list-order-01 > li {
  margin-top: 5px;
  padding-left: 36px;
  position: relative;
  counter-increment: num;
}
ol.list-order-01 > li > ul, ol.list-order-01 > li > ol {
  margin-top: 0;
  margin-bottom: 15px;
}
ol.list-order-01 > li::before {
  content: counter(num) ".";
  text-align: right;
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  width: 25px;
}
@media only screen and (max-width: 599px) {
  ol.list-order-01 {
    margin-top: 25px;
  }
}

/*	list-step-01
-----------------------------------------*/
.list-step-01 {
  display: -webkit-flex;
  display: flex;
}
.list-step-01 li {
  display: -webkit-flex;
  display: flex;
  -webkit-flex: 1 0 0%;
  flex: 1 0 0%;
  width: 33.33333%;
}
.list-step-01 li > span, .list-step-01 li em {
  -webkit-flex: 1 0 0%;
  flex: 1 0 0%;
  display: -webkit-flex;
  display: flex;
  -webkit-align-items: center;
  align-items: center;
  text-align: center;
  font-style: normal;
}
.list-step-01 li > span > span, .list-step-01 li em > span {
  font-size: 1rem;
  line-height: 1.25;
  -webkit-flex: 1 0 0%;
  flex: 1 0 0%;
  font-weight: bold;
  color: #666;
  padding-bottom: 25px;
  position: relative;
}
.list-step-01 li > span > span::before, .list-step-01 li em > span::before {
  content: "";
  display: block;
  height: 10px;
  width: 100%;
  background: #eaeaea;
  position: absolute;
  bottom: 5px;
  left: 0;
}
.list-step-01 li em > span {
  color: #e60014;
}
.list-step-01 li em > span::before {
  background: #e60014;
}
.list-step-01 li em > span::after {
  content: "";
  display: block;
  background: #b3000f;
  height: 20px;
  width: 20px;
  border-radius: 40px;
  position: absolute;
  bottom: 0;
  right: -1px;
  z-index: 2;
}
.list-step-01 li:first-child > span > span::before, .list-step-01 li:first-child em > span::before {
  border-radius: 20px 0 0 20px;
}
.list-step-01 li:last-child > span > span::before, .list-step-01 li:last-child em > span::before {
  border-radius: 0 20px 20px 0;
}
.list-step-01 .comp > span > span::before {
  background: #e60014;
}
@media only screen and (max-width: 599px) {
  .list-step-01 li > span > span, .list-step-01 li em > span {
    font-size: 0.875rem;
    line-height: 1.42857;
  }
}

/*=========================================
	link
=========================================*/
.icon-01 {
  vertical-align: baseline;
  width: auto;
  margin-left: 6px;
}

/*	link-01
-----------------------------------------*/
.link-01 {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  margin: 0 -20px;
}
.link-01.col4 li {
  width: 25%;
  padding: 0 20px;
}
.link-01 li a > span:first-child {
  display: block;
  text-align: center;
}
.link-01 .img {
  transition: .3s all;
  display: inline-block;
  overflow: hidden;
  position: relative;
}
.link-01 .img::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  transition: .3s all;
}
.link-01 .img img {
  max-width: 265px;
  max-height: 149px;
  width: 100%;
  transition: .3s all;
}
.link-01 a {
  display: block;
  color: #333;
  transition: none;
}
.link-01 a:hover, .link-01 a:focus {
  opacity: 1;
}
.link-01 a:hover .txt, .link-01 a:focus .txt {
  opacity: .7;
}
.link-01 a:hover .img::before, .link-01 a:focus .img::before {
  background: #000;
  opacity: .3;
}
.link-01 a:hover .img img, .link-01 a:focus .img img {
  will-change: transform;
  -webkit-transform: scale(1.1);
  transform: scale(1.1);
}
.link-01 li {
  margin-top: 40px;
}
.link-01 b {
  font-weight: normal;
  color: #e60014;
  font-size: 0.75rem;
  line-height: 1.58333;
  font-family: Lato, sans-serif;
  padding: 3px 4px 4px 4.4px;
  margin-left: 3px;
  margin-bottom: 3px;
  display: inline-block;
  vertical-align: middle;
}
.link-01 .txt {
  text-align: left;
  transition: .3s all;
  margin-top: 5px;
  font-size: 0.9375rem;
  line-height: 1.6;
  display: block;
  vertical-align: middle;
}
.link-01 .txt::after {
  content: "";
  display: inline-block;
  width: 9px;
  height: 9px;
  border-top: solid 2px #e60014;
  border-right: solid 2px #e60014;
  will-change: transform;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  vertical-align: middle;
  margin-left: 10px;
  margin-top: -2.5px;
}
.link-01 .num {
  text-align: left;
  font-size: 0.75rem;
  line-height: 1.58333;
  display: block;
  margin-top: 15px;
}
.link-01 .type {
  margin-top: 9px;
  display: inline;
}
.link-01 .type span {
  color: #fff;
  margin-bottom: 3px;
  margin-left: 3px;
  font-size: 0.75rem;
  line-height: 1.58333;
  background: #444;
  border-radius: 2px;
  border: #b4b4b4 1px solid;
  padding: 3px 4px 3px 4.4px;
  display: inline-block;
  vertical-align: middle;
  text-align: center;
}
@media only screen and (max-width: 798px) {
  .link-01.col4 li {
    width: 50%;
  }
}
@media only screen and (max-width: 599px) {
  .link-01 {
    margin: 0 -5px;
  }
  .link-01.col4 li {
    padding: 0 5px;
  }
  .link-01 li {
    margin-top: 30px;
  }
}

/*	link-02
-----------------------------------------*/
.link-02 {
  font-size: 1rem;
  line-height: 1.8125;
  margin-top: 40px;
}
.link-02 li {
  margin-top: 5px;
}
.link-02 li a {
  padding-left: 20px;
  color: #333;
  position: relative;
}
.link-02 li a::after {
  content: "";
  display: block;
  width: 9px;
  height: 9px;
  border-top: solid 2px #e60014;
  border-right: solid 2px #e60014;
  will-change: transform;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  position: absolute;
  margin-top: 5px;
  top: 0;
  left: 0;
}

/*	sns-link-01
-----------------------------------------*/
.sns-link-01 .inner {
  max-width: 1180px;
  margin: 0 auto;
  display: -webkit-flex;
  display: flex;
  -webkit-align-items: center;
  align-items: center;
  color: #333;
}
.sns-link-01 .inner p {
  font-size: 0.875rem;
  line-height: 1.57143;
  margin-top: 0;
  font-family: Lato, sans-serif;
  font-weight: 700;
}
.sns-link-01 .inner ul li {
  display: table-cell;
  padding-left: 15px;
}
.sns-link-01 .inner ul li img {
  width: 28px;
  vertical-align: middle;
}
.sns-link-01 .inner a:hover, .sns-link-01 .inner a:focus {
  opacity: 1;
}

/*	banner-link-01
-----------------------------------------*/
.banner-link-01 {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  margin: 20px -10px 0 -10px;
}
.banner-link-01 li {
  margin-top: 20px;
  padding: 0 10px;
  width: 16.66667%;
}
.banner-link-01 li a {
  display: block;
  border: #b4b4b4 1px solid;
}
.banner-link-01 li a span {
  display: block;
  overflow: hidden;
}
.banner-link-01 li a span img {
  transition: .3s all;
}
.banner-link-01 li a:hover, .banner-link-01 li a:focus {
  opacity: 1;
}
.banner-link-01 li a:hover span img, .banner-link-01 li a:focus span img {
  -webkit-transform: scale(1.1);
  transform: scale(1.1);
}
@media only screen and (max-width: 959px) {
  .banner-link-01 li {
    width: 25%;
  }
}
@media only screen and (max-width: 599px) {
  .banner-link-01 {
    margin: 20px -5px 0 -5px;
  }
  .banner-link-01 li {
    margin-top: 10px;
    padding: 0 5px;
    width: 50%;
  }
}

/*	link-back-01
-----------------------------------------*/
.main p.link-back-01 a {
  text-decoration: none;
}

.link-back-01 {
  font-size: 1rem;
  line-height: 1.8125;
  margin-top: 40px;
  padding-left: 20px;
  position: relative;
}
.link-back-01::after {
  content: "";
  display: inline-block;
  width: 9px;
  height: 9px;
  border-top: solid 2px #e60014;
  border-left: solid 2px #e60014;
  will-change: transform;
  -webkit-transform: rotate(-45deg);
  transform: rotate(-45deg);
  position: absolute;
  top: 11px;
  left: 4px;
}

/*	link-public-01
-----------------------------------------*/
.link-public-01 {
  margin-top: 40px;
  font-size: 1rem;
  line-height: 1.8125;
}
.link-public-01 a {
  display: block;
  padding: 15px 20px 12px 20px;
  color: #333;
}
.link-public-01 a:hover, .link-public-01 a:focus {
  opacity: 1;
  background: #eaeaea;
}
.link-public-01 a:hover .txt, .link-public-01 a:focus .txt {
  text-decoration: underline;
}
.link-public-01 .day {
  float: left;
  width: 109px;
}
.link-public-01 .txt {
  font-weight: normal;
  position: relative;
  transition: .3s all;
  padding-left: 40px;
  display: block;
  overflow: hidden;
}
.link-public-01 .txt::after {
  content: "";
  display: inline-block;
  width: 9px;
  height: 9px;
  border-top: solid 2px #e60014;
  border-right: solid 2px #e60014;
  will-change: transform;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  position: absolute;
  top: 10px;
  left: 20px;
}
@media only screen and (max-width: 599px) {
  .link-public-01 {
    margin-top: 30px;
  }
  .link-public-01 a {
    padding: 7px 0;
  }
  .link-public-01 .day {
    float: none;
  }
  .link-public-01 .txt {
    padding: 0 20px;
  }
  .link-public-01 .txt::after {
    left: 0;
  }
}

/*	sns-link-02
-----------------------------------------*/
.sns-link-02 {
  background: #eaeaea;
  padding: 0 40px;
}
.sns-link-02 .inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: 30px 0;
}
.sns-link-02 .inner p {
  text-align: center;
  font-size: 1.125rem;
  line-height: 1.61111;
  color: #333;
  font-family: Lato, sans-serif;
  font-weight: 700;
  padding-right: 30px;
  margin-top: 0;
}
.sns-link-02 .inner ul {
  margin-top: 16px;
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: center;
  justify-content: center;
  -webkit-align-items: center;
  align-items: center;
}
.sns-link-02 .inner ul li {
  text-align: center;
  font-size: 1rem;
  line-height: 1.625;
  vertical-align: middle;
  padding: 0 25px;
  position: relative;
}
.sns-link-02 .inner ul li:last-child {
  padding-right: 0;
}
.sns-link-02 .inner ul li:first-child::before {
  content: none;
}
.sns-link-02 .inner ul li::before {
  content: "";
  display: inline-block;
  position: absolute;
  top: 50%;
  left: 0;
  background: #787878;
  height: 20px;
  width: 1px;
  -webkit-transform: rotate(30deg);
  transform: rotate(30deg);
  margin-top: -10px;
}
.sns-link-02 .inner ul li a {
  color: #333;
  vertical-align: middle;
  display: inline-block;
}
.sns-link-02 .inner ul li a span {
  font-family: Lato, sans-serif;
  font-weight: 700;
  padding: 0 5px;
  display: inline-block;
  transition: .3s all;
}
.sns-link-02 .inner ul li a span img {
  vertical-align: middle;
}
.sns-link-02 .inner ul li a span + span {
  max-width: 100%;
}
.sns-link-02 .inner ul li a:hover, .sns-link-02 .inner ul li a:focus {
  opacity: 1;
}
.sns-link-02 .inner ul li a:hover span + span, .sns-link-02 .inner ul li a:focus span + span {
  opacity: .7;
}
.sns-link-02 .inner .tw img, .sns-link-02 .inner .ln img, .sns-link-02 .inner .fb img {
  max-width: 28px;
}
.sns-link-02 .inner .yt1 img, .sns-link-02 .inner .yt2 img {
  max-width: 34px;
}
@media only screen and (max-width: 599px) {
  .sns-link-02 {
    padding: 0 15px;
  }
  .sns-link-02 .inner {
    display: block;
    margin: 0;
  }
  .sns-link-02 .inner p {
    padding: 0;
  }
  .sns-link-02 .inner ul {
    margin-top: 0;
    padding: 0 10px;
    -webkit-justify-content: flex-start;
    justify-content: flex-start;
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .sns-link-02 .inner ul li {
    width: 50%;
    padding: 0;
    text-align: left;
    margin-top: 20px;
  }
  .sns-link-02 .inner ul li a {
    margin: 0;
  }
  .sns-link-02 .inner ul li::before {
    content: none;
  }
  .sns-link-02 .inner ul .yt2 {
    width: 100%;
  }
}

/*	link-sitemap-01
-----------------------------------------*/
.link-sitemap-01 .map {
  margin: 0 -20px;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
}
.link-sitemap-01 .map > li {
  font-size: 1.25rem;
  line-height: 1.8;
  width: 50%;
  padding: 0 20px;
  margin-top: 60px;
}
.link-sitemap-01 .map > li > a, .link-sitemap-01 .map > li .link {
  padding-bottom: 10px;
  color: #333;
  display: -webkit-flex;
  display: flex;
  -webkit-align-items: flex-end;
  align-items: flex-end;
  border-bottom: #b4b4b4 1px solid;
}
.link-sitemap-01 .map > li > a > span, .link-sitemap-01 .map > li .link > span {
  font-weight: bold;
  vertical-align: middle;
}
.link-sitemap-01 .map > li a:hover span, .link-sitemap-01 .map > li a:focus span {
  color: #e60014;
}
.link-sitemap-01 .map > li a > span::after {
  content: "";
  display: inline-block;
  width: 9px;
  height: 9px;
  border-top: solid 2px #e60014;
  border-right: solid 2px #e60014;
  will-change: transform;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  vertical-align: middle;
  margin-left: 10px;
  margin-top: -2.5px;
}
.link-sitemap-01 .map .link-02 {
  margin-top: 30px;
}
@media only screen and (max-width: 599px) {
  .link-sitemap-01 .map {
    margin: 0;
    display: block;
  }
  .link-sitemap-01 .map > li {
    font-size: 1.125rem;
    line-height: 1.77778;
    width: 100%;
    padding: 0;
    margin-top: 30px;
  }
  .link-sitemap-01 .map > li .link-02 {
    margin-top: 20px;
  }
}

/*	link-search-01
-----------------------------------------*/
.link-search-01 {
  margin-top: 40px;
  font-size: 1rem;
  line-height: 1.8125;
  border-bottom: #b4b4b4 1px solid;
}
[lang=en] .link-search-01 li {
  word-wrap: break-word;
}
.link-search-01 li {
  border-top: #b4b4b4 1px solid;
}
.link-search-01 a {
  display: block;
  padding: 15px 20px 12px 20px;
  color: #333;
}
.link-search-01 a:hover, .link-search-01 a:focus {
  opacity: 1;
  background: #eaeaea;
}
.link-search-01 a:hover b, .link-search-01 a:focus b {
  text-decoration: underline;
}
.link-search-01 b {
  font-weight: bold;
  display: block;
  position: relative;
}
.link-search-01 b::after {
  content: "";
  display: inline-block;
  width: 9px;
  height: 9px;
  border-top: solid 2px #e60014;
  border-right: solid 2px #e60014;
  will-change: transform;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  position: absolute;
  top: 10px;
  left: -18px;
}
.link-search-01 span {
  display: block;
}
@media only screen and (max-width: 599px) {
  .link-search-01 {
    margin-top: 30px;
  }
  .link-search-01 a {
    padding-top: 7px;
    padding-bottom: 7px;
  }
}

/*=========================================
	navigation
=========================================*/
/*	nav-01
-----------------------------------------*/
.nav-01 {
  display: -webkit-flex;
  display: flex;
}
.nav-01 li {
  -webkit-flex: 1 0 0%;
  flex: 1 0 0%;
  display: -webkit-flex;
  display: flex;
}
.nav-01 li:first-child a {
  border-left: #b4b4b4 1px solid;
}
.nav-01 li:first-child.current a {
  border-left: #333 1px solid;
}
.nav-01 li a {
  -webkit-flex: 1 0 0%;
  flex: 1 0 0%;
  display: -webkit-flex;
  display: flex;
  -webkit-align-items: center;
  align-items: center;
  text-align: center;
  padding: 10px 20px 10px 20px;
  border-top: #e60014 4px solid;
  border-right: #b4b4b4 1px solid;
  border-bottom: #b4b4b4 1px solid;
  min-height: 66px;
}
.nav-01 li a > span {
  -webkit-flex: 1 0 0%;
  flex: 1 0 0%;
  font-weight: bold;
  color: #333;
}
.nav-01 li a:hover, .nav-01 li a:focus {
  opacity: 1;
  background: #eaeaea;
}
.nav-01 li a:hover > span, .nav-01 li a:focus > span {
  color: #e60014;
}
.nav-01 .current {
  position: relative;
}
.nav-01 .current::before {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 8px 6px 0 6px;
  border-color: #333 transparent transparent transparent;
  position: absolute;
  bottom: -8px;
  left: 50%;
  margin-left: -6px;
}
.nav-01 .current a {
  border-top: #333 4px solid;
  border-right: #333 1px solid;
  border-bottom: #333 1px solid;
  background: #333;
}
.nav-01 .current a > span {
  color: #fff;
}
.nav-01 .current a:hover, .nav-01 .current a:focus {
  border-top: #333 4px solid;
  border-right: #333 1px solid;
  border-bottom: #333 1px solid;
  background: #333;
}
.nav-01 .current a:hover > span, .nav-01 .current a:focus > span {
  color: #fff;
}
@media only screen and (max-width: 959px) {
  .nav-01 {
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .nav-01 li {
    -webkit-flex: none;
    flex: none;
    width: 25%;
  }
  .nav-01 li:nth-child(4n+1) a {
    border-left: #b4b4b4 1px solid;
  }
  .nav-01 li:nth-child(4n+1).current a {
    border-left: #333 1px solid;
  }
  .nav-01.col2 li {
    width: 50%;
  }
  .nav-01 .current::before {
    border-width: 4px 6px 0 6px;
    bottom: -4px;
    left: 50%;
    margin-left: -6px;
  }
}
@media only screen and (max-width: 599px) {
  .nav-01 {
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .nav-01 li {
    -webkit-flex: none;
    flex: none;
    width: 33.33333%;
  }
  .nav-01 li a {
    font-size: 0.75rem;
    line-height: 1.33333;
    min-height: auto;
    padding: 16px 5px 14px 5px;
  }
  .nav-01 li:nth-child(4n+1) a {
    border-left: 0;
  }
  .nav-01 li:nth-child(4n+1).current a {
    border-left: 0;
  }
  .nav-01 li:nth-child(3n+1) a {
    border-left: #b4b4b4 1px solid;
  }
  .nav-01 li:nth-child(3n+1).current a {
    border-left: #333 1px solid;
  }
}

/*=========================================
	box
=========================================*/
/*	box-01
-----------------------------------------*/
.box-01 {
  text-align: center;
  background: #3c3c3c;
  margin-top: 40px;
}
@media only screen and (max-width: 599px) {
  .box-01 {
    margin-top: 30px;
  }
}

/*	box-02
-----------------------------------------*/
.box-02 {
  margin-top: 40px;
  padding: 40px;
  border: #b4b4b4 1px solid;
}
.box-02 > *:first-child {
  margin-top: 0;
}
@media only screen and (max-width: 599px) {
  .box-02 {
    margin-top: 30px;
    padding: 40px 20px;
  }
}

/*	box-03
-----------------------------------------*/
.box-03 {
  margin-top: 40px;
  background: #eaeaea;
  padding: 40px;
}
.box-03 > *:first-child {
  margin-top: 0;
}
@media only screen and (max-width: 599px) {
  .box-03 {
    margin-top: 30px;
    padding: 40px 20px;
  }
}

/*	box-inquiry-01
-----------------------------------------*/
.box-inquiry-01 {
  padding: 37px 0 27px 0;
  color: #fff;
  display: -webkit-flex;
  display: flex;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  -webkit-flex-direction: column;
  flex-direction: column;
}
.box-inquiry-01 .title {
  font-size: 1.25rem;
  line-height: 1.3;
  font-weight: bold;
}
.box-inquiry-01 p {
  margin-top: 18px;
  line-height: 1.625;
}
.box-inquiry-01 p a {
  color: #fff;
}
.box-inquiry-01 p b {
  padding-left: 37px;
  background: url(/shared/images/icon-tell-01.png) no-repeat left center;
  padding-right: 20px;
  vertical-align: middle;
  font-size: 2.25rem;
  font-family: Lato, sans-serif;
  font-weight: 700;
}
.box-inquiry-01 p span {
  display: inline-block;
  vertical-align: middle;
  margin-top: 2px;
}
@media only screen and (max-width: 599px) {
  .box-inquiry-01 {
    padding: 37px 20px 27px 20px;
  }
  .box-inquiry-01 .title {
    font-size: 1.125rem;
    line-height: 1.61111;
  }
  .box-inquiry-01 p b {
    display: block;
    font-size: 1.75rem;
    line-height: 1.5;
    background-size: auto 24px;
    padding-left: 30px;
    padding-right: 0;
  }
  .box-inquiry-01 p span {
    display: block;
  }
}

/*	box-panel-01
-----------------------------------------*/
.box-panel-01 {
  margin-top: 20px;
}
.box-panel-01.move {
  min-height: 600px;
}
.box-panel-01.move .panel {
  margin: 20px -10px 0 -10px;
}
.box-panel-01.move .panel .link-01 {
  margin: 0 -10px;
}
.box-panel-01.move .panel .panel-inner {
  margin: 0 auto;
}
.box-panel-01.move .panel .panel-inner .item1 a {
  -webkit-transform: scale(0.5);
  transform: scale(0.5);
}
.box-panel-01.move.zoom .panel .panel-inner .item1 a {
  -webkit-transform: scale(1);
  transform: scale(1);
}
.box-panel-01 .nav .link {
  display: -webkit-flex;
  display: flex;
  margin: 0 35px;
}
.box-panel-01 .nav .link li {
  border-radius: 2px;
  -webkit-flex: 1 0 0%;
  flex: 1 0 0%;
  display: -webkit-flex;
  display: flex;
  padding: 0 5px;
}
.box-panel-01 .nav .link li:first-child a {
  border-left: #b4b4b4 1px solid;
}
.box-panel-01 .nav .link li:first-child a:hover, .box-panel-01 .nav .link li:first-child a:focus {
  border-left: #787878 1px solid;
}
.box-panel-01 .nav .link li:first-child .current {
  border-left: #787878 1px solid;
}
.box-panel-01 .nav .link li a {
  border-radius: 2px;
  -webkit-flex: 1 0 0%;
  flex: 1 0 0%;
  display: -webkit-flex;
  display: flex;
  -webkit-align-items: center;
  align-items: center;
  text-align: center;
  padding: 13px 5px 11px 5px;
  border: #c8c8c8 1px solid;
}
.box-panel-01 .nav .link li a > span {
  -webkit-flex: 1 0 0%;
  flex: 1 0 0%;
  font-weight: bold;
  color: #333;
}
.box-panel-01 .nav .link li a:hover, .box-panel-01 .nav .link li a:focus {
  opacity: 1;
  border: #787878 1px solid;
  background: #787878;
}
.box-panel-01 .nav .link li a:hover > span, .box-panel-01 .nav .link li a:focus > span {
  flex: 1 0 0%;
  font-weight: bold;
  color: #fff;
}
.box-panel-01 .nav .link li .current {
  border: #787878 1px solid;
  background: #787878;
}
.box-panel-01 .nav .link li .current > span {
  -webkit-flex: 1 0 0%;
  flex: 1 0 0%;
  font-weight: bold;
  color: #fff;
}
.box-panel-01 .nav .select {
  display: none;
  margin-top: 20px;
  position: relative;
}
.box-panel-01 .nav .select select {
  font-family: "Yu Gothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro", Meiryo, "メイリオ", Arial, sans-serif;
  -webkit-appearance: button;
  -moz-appearance: none;
  appearance: button;
  border-radius: 0;
  box-shadow: none;
  font-size: 1rem;
  line-height: 1.625;
  cursor: pointer;
  width: 100%;
  border: #b4b4b4 1px solid;
  background: #eaeaea;
  padding: 7px 38px 5px 10px;
  vertical-align: middle;
}
.box-panel-01 .nav .select::before {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 8px 5px 0 5px;
  border-color: #333 transparent transparent transparent;
  position: absolute;
  top: 50%;
  right: 14px;
  margin-top: -4px;
}
@media only screen and (max-width: 599px) {
  .box-panel-01 .nav .link {
    display: none;
  }
  .box-panel-01 .nav .select {
    display: block;
  }
}
.box-panel-01 .panel .panel-inner {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-justify-content: center;
  justify-content: center;
  margin: 20px -10px 0 -10px;
}
.box-panel-01 .item1 {
  margin: 20px 10px 0 10px;
}
.box-panel-01 .item1 a, .box-panel-01 .item1 .link {
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: center;
  justify-content: center;
  -webkit-align-items: center;
  align-items: center;
  position: relative;
  width: 280px;
  height: 300px;
  overflow: hidden;
  box-shadow: 2px 2px 1px -1px rgba(0, 0, 0, 0.08);
}
.box-panel-01 .item1 a::before, .box-panel-01 .item1 .link::before {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 0 30px 30px;
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: 3;
  border-color: transparent transparent #e43a4a transparent;
}
.box-panel-01 .item1 a::after, .box-panel-01 .item1 .link::after {
  transition: .3s all;
  display: block;
  width: 280px;
  height: 300px;
  position: absolute;
  top: 0;
  left: 0;
  content: "";
}
.box-panel-01 .item1 a:hover, .box-panel-01 .item1 a:focus {
  opacity: 1;
}
.box-panel-01 .item1 a:hover .area, .box-panel-01 .item1 a:focus .area {
  background: none;
  padding-top: 0;
  padding-bottom: 0;
  position: static;
}
.box-panel-01 .item1 a:hover::after, .box-panel-01 .item1 a:focus::after {
  background: rgba(228, 58, 74, 0.9);
}
.box-panel-01 .item1 a:hover .img img, .box-panel-01 .item1 a:focus .img img {
  -webkit-transform: scale(1.1);
  transform: scale(1.1);
}
.box-panel-01 .item1 .img {
  position: absolute;
  top: 0;
  left: 0;
  overflow: hidden;
}
.box-panel-01 .item1 .img img {
  transition: .3s all;
}
.box-panel-01 .item1 .area {
  transition: .3s all;
  position: absolute;
  z-index: 2;
  left: 0;
  bottom: 0;
  display: block;
  padding: 30px 20px 15px 20px;
  background: -webkit-linear-gradient(top, transparent 0%, rgba(0, 0, 0, 0.05) 10%, rgba(0, 0, 0, 0.2) 20%, rgba(0, 0, 0, 0.4) 40%, rgba(0, 0, 0, 0.6) 60%, rgba(0, 0, 0, 0.8) 80%, rgba(0, 0, 0, 0.9) 100%);
  background: linear-gradient(to bottom, transparent 0%, rgba(0, 0, 0, 0.05) 10%, rgba(0, 0, 0, 0.2) 20%, rgba(0, 0, 0, 0.4) 40%, rgba(0, 0, 0, 0.6) 60%, rgba(0, 0, 0, 0.8) 80%, rgba(0, 0, 0, 0.9) 100%);
  width: 100%;
  color: #fff;
}
.box-panel-01 .item1 .area .title {
  font-size: 1rem;
  line-height: 1.375;
  font-weight: bold;
  margin-top: 0;
}
.box-panel-01 .item1 .area .txt1 {
  font-size: 0.75rem;
  line-height: 1.58333;
  margin-top: 8px;
}
.box-panel-01 .item1 .area .type {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-align-items: center;
  align-items: center;
  margin-top: 7px;
}
.box-panel-01 .item1 .area .type li {
  margin-right: 3px;
  margin-top: 3px;
  font-size: 0.75rem;
  line-height: 1.58333;
  background: #444;
  border-radius: 2px;
  border: #b4b4b4 1px solid;
  padding: 3px 4px 3px 4.4px;
  vertical-align: middle;
  text-align: center;
}
.box-panel-01 .item1.movie a::before, .box-panel-01 .item1.movie .link::before {
  border-color: transparent transparent #f06332 transparent;
}
.box-panel-01 .item1.movie a::before {
  border-color: transparent transparent #f06332 transparent;
}
.box-panel-01 .item1.anime a::before, .box-panel-01 .item1.anime .link::before {
  border-color: transparent transparent #3598db transparent;
}
.box-panel-01 .item1.anime a:hover::after, .box-panel-01 .item1.anime a:focus::after {
  background: rgba(53, 152, 219, 0.9);
}
.box-panel-01 .item1.drama a::before, .box-panel-01 .item1.drama .link::before {
  border-color: transparent transparent #1bbc9b transparent;
}
.box-panel-01 .item1.drama a::before {
  border-color: transparent transparent #1bbc9b transparent;
}
.box-panel-01 .item1.others a::before, .box-panel-01 .item1.others .link::before {
  border-color: transparent transparent #986cc7 transparent;
}
.box-panel-01 .item1.others a::before {
  border-color: transparent transparent #986cc7 transparent;
}
.box-panel-01 .pager {
  margin: 60px 10px 0 10px;
  text-align: center;
  position: relative;
}
.box-panel-01 .pager ul {
  display: inline-block;
}
.box-panel-01 .pager ul li {
  display: table-cell;
  vertical-align: middle;
  padding: 0 5px;
}
.box-panel-01 .pager ul li a, .box-panel-01 .pager ul li em, .box-panel-01 .pager ul li span {
  min-width: 30px;
  font-family: Lato, sans-serif;
  font-size: 1.125rem;
  line-height: 1;
  font-weight: 700;
  font-style: normal;
  display: inline-block;
  padding: 6px;
}
.box-panel-01 .pager ul li a {
  color: #333;
  background: #fff;
}
.box-panel-01 .pager ul li a:hover, .box-panel-01 .pager ul li a:focus {
  color: #e60014;
  background: #eaeaea;
  opacity: 1;
}
.box-panel-01 .pager ul li em {
  color: #fff;
  background: #e60014;
}
.box-panel-01 .pager .prev {
  position: absolute;
  top: 0;
  left: 0;
  margin-top: 0;
}
.box-panel-01 .pager .prev a {
  text-decoration: none;
  display: inline-block;
  color: #333;
  font-family: Lato, sans-serif;
  font-size: 1.125rem;
  line-height: 1;
  font-weight: 700;
  position: relative;
  padding: 6px 20px 6px 33px;
}
.box-panel-01 .pager .prev a::after {
  content: "";
  display: block;
  width: 9px;
  height: 9px;
  border-top: solid 2px #333;
  border-left: solid 2px #333;
  -webkit-transform: rotate(-45deg);
  transform: rotate(-45deg);
  position: absolute;
  top: 50%;
  left: 15px;
  margin-top: -5px;
}
.box-panel-01 .pager .prev a:hover, .box-panel-01 .pager .prev a:focus {
  color: #e60014;
  background: #eaeaea;
  opacity: 1;
}
.box-panel-01 .pager .prev a:hover::after, .box-panel-01 .pager .prev a:focus::after {
  border-color: #e60014;
}
.box-panel-01 .pager .next {
  position: absolute;
  top: 0;
  right: 0;
  margin-top: 0;
}
.box-panel-01 .pager .next a {
  text-decoration: none;
  display: inline-block;
  color: #333;
  font-family: Lato, sans-serif;
  font-size: 1.125rem;
  line-height: 1;
  font-weight: 700;
  position: relative;
  padding-right: 15px;
  padding: 6px 33px 6px 20px;
}
.box-panel-01 .pager .next a::after {
  content: "";
  display: block;
  width: 9px;
  height: 9px;
  border-top: solid 2px #333;
  border-right: solid 2px #333;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  position: absolute;
  top: 50%;
  right: 17px;
  margin-top: -5px;
}
.box-panel-01 .pager .next a:hover, .box-panel-01 .pager .next a:focus {
  color: #e60014;
  background: #eaeaea;
  opacity: 1;
}
.box-panel-01 .pager .next a:hover::after, .box-panel-01 .pager .next a:focus::after {
  border-color: #e60014;
}
@media only screen and (max-width: 959px) {
  .box-panel-01.zoom {
    margin-top: 10px;
  }
  .box-panel-01 .nav .link {
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .box-panel-01 .nav .link li {
    margin-top: 10px;
    word-break: break-all;
    -webkit-flex: none;
    flex: none;
    width: 20%;
  }
}
@media only screen and (max-width: 599px) {
  .box-panel-01 {
    margin-top: 0;
  }
  .box-panel-01.move .panel .link-01 {
    margin: 0 5px;
  }
  .box-panel-01 .panel {
    margin-top: 0;
  }
  .box-panel-01 .panel .panel-inner {
    margin-top: 10px;
  }
  .box-panel-01 .pager {
    margin-top: 30px;
  }
  .box-panel-01 .pager .pager-inner {
    display: table;
    width: 100%;
    margin-top: 6px;
  }
  .box-panel-01 .pager .prev, .box-panel-01 .pager .next {
    position: static;
    display: table-cell;
  }
  .box-panel-01 .pager .prev {
    text-align: left;
  }
  .box-panel-01 .pager .next {
    text-align: right;
  }
}

/*	box-updata-01
-----------------------------------------*/
.box-updata-01 {
  margin-top: 40px;
  display: -webkit-flex;
  display: flex;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: space-between;
  justify-content: space-between;
}
.box-updata-01 .day {
  margin-top: 0;
}
@media only screen and (max-width: 599px) {
  .box-updata-01 {
    margin-top: 30px;
    display: block;
  }
  .box-updata-01 .day {
    text-align: right;
    margin-top: 30px;
  }
}

/*	box-lineup
-----------------------------------------*/
.box-lineup .box-lineup-inner {
  display: block;
  height: 100%;
}
.box-lineup .lyt-01 .img img {
  max-width: 265px;
}

/*	box-detail-01
-----------------------------------------*/
.box-detail-01 {
  padding-bottom: 50px;
}
.box-detail-01 .box-detail-inner {
  width: 100%;
  margin-top: 40px;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: row-reverse;
  flex-direction: row-reverse;
}
.box-detail-01 .box-detail-inner .img {
  padding-right: 40px;
  width: 100%;
  max-width: 367px;
}
.box-detail-01 .box-detail-inner .img p {
  margin-top: 0;
}
.box-detail-01 .box-detail-inner .img img {
  width: auto;
  max-width: 100%;
  min-width: 265px;
}
.box-detail-01 .box-detail-inner .img dl {
  margin-top: 16px;
}
.box-detail-01 .box-detail-inner .img dl dt {
  color: #333;
  font-size: 1rem;
  line-height: 1.625;
  font-weight: bold;
}
.box-detail-01 .box-detail-inner .img dl dd .type {
  display: -webkit-flex;
  display: flex;
  -webkit-align-items: center;
  align-items: center;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
}
.box-detail-01 .box-detail-inner .img dl dd .type li {
  margin-top: 5px;
  color: #fff;
  margin-right: 3px;
  font-size: 0.75rem;
  line-height: 1.58333;
  background: #444;
  border-radius: 3px;
  border: #b4b4b4 1px solid;
  padding: 3px 4px 3px 4.4px;
  vertical-align: middle;
  text-align: center;
}
.box-detail-01 .box-detail-inner .img dl dd .type li:last-child {
  margin-right: 0;
}
.box-detail-01 .box-detail-inner .img .label-01 {
  margin-top: 10px;
  margin-right: 3px;
  display: inline-block;
  font-size: 0.75rem;
  line-height: 1.58333;
  background: #fff;
  border-radius: 3px;
  border: #444 1px solid;
  padding: 3px 4px 3px 4.4px;
  vertical-align: middle;
  white-space: nowrap;
}
.box-detail-01 .box-detail-inner .txt {
  -webkit-flex: 1 0 0%;
  flex: 1 0 0%;
}
.box-detail-01 .box-detail-inner .txt .table-01 {
  margin-top: 0;
}
.box-detail-01 .box-detail-inner .txt .table-01 th {
  width: 30%;
}
.box-detail-01 .box-detail-inner .txt .table-01 td {
  width: 70%;
}
@media only screen and (max-width: 709px) {
  .box-detail-01 .box-detail-inner .img p {
    max-width: 265px;
  }
  .box-detail-01 .box-detail-inner .img img {
    max-width: 100%;
    min-width: auto;
  }
  .box-detail-01 .box-detail-inner .txt {
    width: 100%;
    min-width: 308px;
  }
}
@media only screen and (max-width: 599px) {
  .box-detail-01 {
    padding-bottom: 0;
  }
  .box-detail-01 .box-detail-inner {
    -webkit-justify-content: center;
    justify-content: center;
    -webkit-flex-direction: column-reverse;
    flex-direction: column-reverse;
    margin-top: 30px;
  }
  .box-detail-01 .box-detail-inner .img {
    max-width: 100%;
    padding: 0;
  }
  .box-detail-01 .box-detail-inner .img p {
    max-width: 100%;
    text-align: center;
  }
  .box-detail-01 .box-detail-inner .img img {
    width: auto;
  }
  .box-detail-01 .box-detail-inner .img .label-01 {
    white-space: normal;
  }
  .box-detail-01 .box-detail-inner .txt {
    -webkit-flex: none;
    flex: none;
    min-width: auto;
    padding: 0;
    margin-top: 30px;
  }
}

/*	box-map-01
-----------------------------------------*/
.box-map-01 {
  position: relative;
  width: 100%;
  margin: 40px auto 0 auto;
  padding-top: 33.095%;
}
.box-map-01 iframe {
  border: 0;
  position: absolute;
  top: 0;
  left: 0;
  max-height: 370px;
  width: 100%;
  height: 100%;
}
@media only screen and (max-width: 599px) {
  .box-map-01 {
    margin: 30px auto 0 auto;
    padding-top: 163px;
  }
  .box-map-01 iframe {
    min-height: 163px;
  }
}

/*	box-search-01
-----------------------------------------*/
.box-search-01 {
  text-align: center;
  vertical-align: middle;
}
.box-search-01 .box-search-inner {
  display: inline-block;
  max-width: 300px;
  position: relative;
}
.box-search-01 #search-02 {
  box-shadow: none;
  display: block;
  max-height: 36px;
  min-height: 36px;
  padding: 6px 10px;
  font-family: "Yu Gothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro", Meiryo, "メイリオ", Arial, sans-serif;
  border-radius: 0;
  border: #b4b4b4 1px solid;
  width: 100%;
  min-width: 300px;
}
.box-search-01 button {
  background: #fff;
  position: absolute;
  overflow: hidden;
  top: 1px;
  right: 1px;
  height: 34px;
  width: 34px;
  transition: .3s all;
}
.box-search-01 button::before {
  content: "";
  display: block;
  height: 12px;
  width: 11px;
  background: url(/shared/images/icon-03.png) no-repeat top left;
  position: absolute;
  right: 12px;
  top: 12px;
}
.box-search-01 button:hover, .box-search-01 button:focus {
  background: #eaeaea;
}
.box-search-01 button span {
  position: absolute;
  top: -999em;
  left: -999em;
}
@media only screen and (max-width: 599px) {
  .box-search-01 .box-search-inner {
    display: block;
    max-width: 100%;
  }
  .box-search-01 #search-01 {
    min-width: auto;
  }
}

/*	box-iframe-01
-----------------------------------------*/
.box-iframe-01 {
  position: relative;
  height: 0;
  padding-bottom: 43.25%;
  overflow: hidden;
  margin-top: 40px;
}
.box-iframe-01 iframe {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  margin: auto;
  width: 100%;
  height: 100%;
  max-width: 800px;
}
@media only screen and (max-width: 599px) {
  .box-iframe-01 {
    margin-top: 30px;
  }
}

/*=========================================
	layout
=========================================*/
/*	lyt-01
-----------------------------------------*/
.lyt-01 {
  margin-top: 40px;
  width: 100%;
  display: -webkit-flex;
  display: flex;
}
.lyt-01.left {
  -webkit-flex-direction: row-reverse;
  flex-direction: row-reverse;
}
.lyt-01.left .img {
  padding-right: 40px;
}
.lyt-01.right .img {
  padding-left: 40px;
}
.lyt-01 .img img {
  width: auto;
  max-width: 100%;
}
.lyt-01 .img > *:first-child {
  margin-top: 0;
}
.lyt-01 .txt {
  -webkit-flex: 1 0 0%;
  flex: 1 0 0%;
  min-width: 50%;
}
.lyt-01 .txt > *:first-child {
  margin-top: 0;
}
.lyt-01.col2 {
  margin-right: -20px;
  margin-left: -20px;
  width: auto;
}
.lyt-01.col2 .area {
  width: 50%;
  padding: 0 20px;
}
.lyt-01.col2 .area > *:first-child {
  margin-top: 0;
}
@media only screen and (max-width: 599px) {
  .lyt-01 {
    margin-top: 30px;
  }
  .lyt-01.left, .lyt-01.right {
    -webkit-flex-direction: column-reverse;
    flex-direction: column-reverse;
  }
  .lyt-01.left .img, .lyt-01.left .txt, .lyt-01.right .img, .lyt-01.right .txt {
    padding: 0;
  }
  .lyt-01 .img {
    max-width: 100%;
    text-align: center;
  }
  .lyt-01 .txt {
    -webkit-flex: none;
    flex: none;
    margin-top: 30px;
  }
  .lyt-01.col2 {
    margin-right: 0;
    margin-left: 0;
    display: block;
  }
  .lyt-01.col2 .area {
    width: 100%;
    padding: 0;
  }
  .lyt-01.col2 .area + .area {
    margin-top: 30px;
  }
}

/*	lyt-img-01
-----------------------------------------*/
.lyt-img-01 {
  text-align: center;
}
.lyt-img-01 img {
  width: auto;
  max-width: 100%;
}

/*=========================================
	button
=========================================*/
/*	btn-01
-----------------------------------------*/
.btn-01 {
  font-size: 1rem;
  line-height: 1.625;
  text-align: center;
  margin-top: 40px;
}
.btn-01 + .btn-01, .btn-01 + .btn-02, .btn-01 + .btn-inquiry-01, .btn-01 + .btn-03 {
  margin-top: 20px;
}
.btn-01 a, .btn-01 button {
  text-decoration: none !important;
  display: inline-block;
  border: #fff 2px solid;
  position: relative;
  padding: 12px 31px 8px 18px;
  color: #fff;
  min-width: 367px;
  position: relative;
}
.btn-01 a::after, .btn-01 button::after {
  content: "";
  display: inline-block;
  width: 9px;
  height: 9px;
  border-top: solid 2px #fff;
  border-right: solid 2px #fff;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  position: absolute;
  top: 50%;
  right: 15px;
  margin-top: -3px;
}
.btn-01 a:hover, .btn-01 a:focus, .btn-01 button:hover, .btn-01 button:focus {
  opacity: 1;
  background: #fff;
  color: #282828;
}
.btn-01 a:hover::after, .btn-01 a:focus::after, .btn-01 button:hover::after, .btn-01 button:focus::after {
  border-color: #282828;
}
@media only screen and (max-width: 599px) {
  .btn-01 {
    margin-top: 30px;
  }
  .btn-01 a {
    min-width: 100%;
  }
}

/*	btn-02
-----------------------------------------*/
.btn-02 {
  font-size: 1rem;
  line-height: 1.625;
  text-align: center;
  margin-top: 60px;
}
.btn-02 + .btn-01, .btn-02 + .btn-02, .btn-02 + .btn-inquiry-01, .btn-02 + .btn-03 {
  margin-top: 20px;
}
.btn-02 a, .btn-02 button {
  text-decoration: none !important;
  display: inline-block;
  border: #333 2px solid;
  position: relative;
  padding: 12px 31px 8px 18px;
  color: #333;
  min-width: 367px;
  position: relative;
}
.btn-02 a::after, .btn-02 button::after {
  content: "";
  display: inline-block;
  width: 9px;
  height: 9px;
  border-top: solid 2px #333;
  border-right: solid 2px #333;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  position: absolute;
  top: 50%;
  right: 15px;
  margin-top: -3px;
}
.btn-02 a:hover, .btn-02 a:focus, .btn-02 button:hover, .btn-02 button:focus {
  opacity: 1;
  background: #333;
  color: #fff !important;
}
.btn-02 a:hover::after, .btn-02 a:focus::after, .btn-02 button:hover::after, .btn-02 button:focus::after {
  border-color: #fff;
}
.btn-02.anime a {
  border: #3598db 2px solid;
  color: #3598db !important;
}
.btn-02.anime a::after {
  border-color: #3598db;
}
.btn-02.anime a:hover, .btn-02.anime a:focus {
  background: #3598db;
  color: #fff !important;
}
.btn-02.anime a:hover::after, .btn-02.anime a:focus::after {
  border-color: #fff;
}
@media only screen and (max-width: 599px) {
  .btn-02 {
    margin-top: 40px;
  }
  .btn-02 a {
    min-width: 100%;
  }
}

/*	btn-03
-----------------------------------------*/
.btn-03 {
  font-size: 1rem;
  line-height: 1.625;
  text-align: center;
  margin-top: 60px;
}
.btn-03 + .btn-01, .btn-03 + .btn-02, .btn-03 + .btn-inquiry-01, .btn-03 + .btn-03 {
  margin-top: 20px;
}
.btn-03 a, .btn-03 button {
  text-decoration: none !important;
  display: inline-block;
  border: #333 2px solid;
  position: relative;
  padding: 12px 31px 8px 18px;
  color: #fff !important;
  min-width: 367px;
  position: relative;
  background: #333;
}
.btn-03 a::after, .btn-03 button::after {
  content: "";
  display: inline-block;
  width: 9px;
  height: 9px;
  border-top: solid 2px #fff;
  border-right: solid 2px #fff;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  position: absolute;
  top: 50%;
  right: 15px;
  margin-top: -3px;
}
.btn-03 a:hover, .btn-03 a:focus, .btn-03 button:hover, .btn-03 button:focus {
  opacity: 1;
  background: #fff;
  color: #333 !important;
}
.btn-03 a:hover::after, .btn-03 a:focus::after, .btn-03 button:hover::after, .btn-03 button:focus::after {
  border-color: #333;
}
@media only screen and (max-width: 599px) {
  .btn-03 {
    margin-top: 30px;
  }
  .btn-03 a, .btn-03 button {
    min-width: 100%;
  }
}

/*	btn-list-01
-----------------------------------------*/
.btn-list-01 {
  font-size: 1rem;
  line-height: 1.625;
  margin: 0 auto;
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: center;
  justify-content: center;
  max-width: 820px;
}
.btn-list-01 li {
  text-align: center;
  padding: 0 20px;
  margin-top: 60px;
  display: table;
  width: 50%;
}
.btn-list-01 li p, .btn-list-01 li ul {
  margin-top: 10px;
}
.btn-list-01 a {
  text-align: center;
  display: table;
  border: #333 2px solid;
  padding: 12px 31px 8px 18px;
  color: #333;
  min-width: 367px;
  position: relative;
  width: 100%;
  text-align: center;
}
.btn-list-01 a::after {
  content: "";
  display: inline-block;
  width: 9px;
  height: 9px;
  border-top: solid 2px #333;
  border-right: solid 2px #333;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  position: absolute;
  top: 50%;
  right: 15px;
  margin-top: -3px;
}
.btn-list-01 a:hover, .btn-list-01 a:focus {
  opacity: 1;
  background: #333;
  color: #fff;
}
.btn-list-01 a:hover::after, .btn-list-01 a:focus::after {
  border-color: #fff;
}
.btn-list-01 a > span {
  display: table;
  margin: 0 auto;
}
.btn-list-01 a > span span {
  display: table-cell;
  vertical-align: middle;
}
.btn-list-01 a.anime {
  border: #3598db 2px solid;
  color: #3598db;
}
.btn-list-01 a.anime::after {
  border-color: #3598db;
}
.btn-list-01 a.anime:hover, .btn-list-01 a.anime:focus {
  background: #3598db;
  color: #fff;
}
.btn-list-01 a.anime:hover::after, .btn-list-01 a.anime:focus::after {
  border-color: #fff;
}
@media only screen and (max-width: 869px) {
  .btn-list-01 a {
    min-width: 231px;
  }
}
@media only screen and (max-width: 599px) {
  .btn-list-01 {
    display: block;
    margin: 40px -20px 0 -20px;
  }
  .btn-list-01 li {
    width: 100%;
    margin: 15px 0 0 0;
  }
  .btn-list-01 li p, .btn-list-01 li ul {
    margin-bottom: 20px;
  }
  .btn-list-01 a {
    min-width: 100%;
  }
  .btn-list-01 a > span {
    min-height: auto !important;
  }
}

/*	btn-list-02
-----------------------------------------*/
.btn-list-02 {
  font-size: 1rem;
  line-height: 1.625;
  margin: 0 -20px;
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: center;
  justify-content: center;
}
.btn-list-02 li {
  text-align: center;
  padding: 0 20px;
  margin-top: 60px;
  display: table;
  width: 33.33333%;
}
.btn-list-02 li p, .btn-list-02 li ul {
  margin-top: 10px;
}
.btn-list-02 a {
  text-align: center;
  display: table;
  border: #333 2px solid;
  padding: 12px 31px 8px 18px;
  color: #333;
  position: relative;
  width: 100%;
  text-align: center;
}
.btn-list-02 a::after {
  content: "";
  display: inline-block;
  width: 9px;
  height: 9px;
  border-top: solid 2px #333;
  border-right: solid 2px #333;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  position: absolute;
  top: 50%;
  right: 15px;
  margin-top: -3px;
}
.btn-list-02 a:hover, .btn-list-02 a:focus {
  opacity: 1;
  background: #333;
  color: #fff;
}
.btn-list-02 a:hover::after, .btn-list-02 a:focus::after {
  border-color: #fff;
}
.btn-list-02 a > span {
  display: table;
  margin: 0 auto;
}
.btn-list-02 a > span span {
  display: table-cell;
  vertical-align: middle;
}
.btn-list-02 a.anime {
  border: #3598db 2px solid;
  color: #3598db;
}
.btn-list-02 a.anime::after {
  border-color: #3598db;
}
.btn-list-02 a.anime:hover, .btn-list-02 a.anime:focus {
  background: #3598db;
  color: #fff;
}
.btn-list-02 a.anime:hover::after, .btn-list-02 a.anime:focus::after {
  border-color: #fff;
}
@media only screen and (max-width: 599px) {
  .btn-list-02 {
    display: block;
    margin: 40px -20px 0 -20px;
  }
  .btn-list-02 li {
    width: 100%;
    margin: 15px 0 0 0;
  }
  .btn-list-02 li p, .btn-list-02 li ul {
    margin-bottom: 20px;
  }
  .btn-list-02 a {
    min-width: 100%;
  }
  .btn-list-02 a > span {
    min-height: auto !important;
  }
}

/*	btn-list-03
-----------------------------------------*/
.btn-list-03 {
  font-size: 1rem;
  line-height: 1.625;
  margin: 0 -20px;
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: center;
  justify-content: center;
}
.btn-list-03 li {
  text-align: center;
  padding: 0 20px;
  margin-top: 60px;
  display: table;
}
.btn-list-03 li p, .btn-list-03 li ul {
  margin-top: 10px;
}
.btn-list-03 li:first-child a, .btn-list-03 li:first-child button {
  color: #333;
  background: #fff;
  padding: 12px 18px 8px 31px;
}
.btn-list-03 li:first-child a::after, .btn-list-03 li:first-child button::after {
  border-bottom: solid 2px #333;
  border-left: solid 2px #333;
  left: 15px;
}
.btn-list-03 li:first-child a:hover, .btn-list-03 li:first-child a:focus, .btn-list-03 li:first-child button:hover, .btn-list-03 li:first-child button:focus {
  background: #333;
  color: #fff;
}
.btn-list-03 li:first-child a:hover::after, .btn-list-03 li:first-child a:focus::after, .btn-list-03 li:first-child button:hover::after, .btn-list-03 li:first-child button:focus::after {
  border-color: #fff;
}
.btn-list-03 li:last-child {
  width: 100%;
  max-width: 367px;
}
.btn-list-03 li:last-child a, .btn-list-03 li:last-child button {
  padding: 12px 31px 8px 18px;
  color: #fff;
  background: #333;
}
.btn-list-03 li:last-child a::after, .btn-list-03 li:last-child button::after {
  border-top: solid 2px #fff;
  border-right: solid 2px #fff;
  right: 15px;
}
.btn-list-03 li:last-child a:hover, .btn-list-03 li:last-child a:focus, .btn-list-03 li:last-child button:hover, .btn-list-03 li:last-child button:focus {
  background: #fff;
  color: #333;
}
.btn-list-03 li:last-child a:hover::after, .btn-list-03 li:last-child a:focus::after, .btn-list-03 li:last-child button:hover::after, .btn-list-03 li:last-child button:focus::after {
  border-color: #333;
}
.btn-list-03 a, .btn-list-03 button {
  font-family: "Yu Gothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro", Meiryo, "メイリオ", Arial, sans-serif;
  text-align: center;
  display: table;
  border: #333 2px solid;
  position: relative;
  width: 100%;
  text-align: center;
}
.btn-list-03 a::after, .btn-list-03 button::after {
  content: "";
  display: inline-block;
  width: 9px;
  height: 9px;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  position: absolute;
  top: 50%;
  margin-top: -3px;
}
.btn-list-03 a:hover, .btn-list-03 a:focus, .btn-list-03 button:hover, .btn-list-03 button:focus {
  opacity: 1;
  background: #333;
  color: #fff;
}
.btn-list-03 a:hover::after, .btn-list-03 a:focus::after, .btn-list-03 button:hover::after, .btn-list-03 button:focus::after {
  border-color: #fff;
}
.btn-list-03 a > span, .btn-list-03 button > span {
  display: table;
  margin: 0 auto;
}
.btn-list-03 a > span span, .btn-list-03 button > span span {
  display: table-cell;
  vertical-align: middle;
}
@media only screen and (max-width: 599px) {
  .btn-list-03 {
    margin: 20px -20px 0 -20px;
    -webkit-flex-direction: column-reverse;
    flex-direction: column-reverse;
  }
  .btn-list-03 li {
    width: 100%;
    margin: 15px 0 0 0;
  }
  .btn-list-03 li p, .btn-list-03 li ul {
    margin-bottom: 20px;
  }
  .btn-list-03 li:last-child {
    max-width: 100%;
  }
  .btn-list-03 a, .btn-list-03 button {
    min-width: 100%;
  }
  .btn-list-03 a > span, .btn-list-03 button > span {
    min-height: auto !important;
  }
}

/*	btn-inquiry-01
-----------------------------------------*/
.btn-inquiry-01 {
  padding: 40px 0;
  font-size: 1rem;
  line-height: 1.625;
  text-align: center;
  margin-top: 40px;
}
.btn-inquiry-01 + .btn-01, .btn-inquiry-01 + .btn-02, .btn-inquiry-01 + .btn-inquiry-01, .btn-inquiry-01 + .btn-03 {
  margin-top: 20px;
}
.btn-inquiry-01 a {
  text-decoration: none !important;
  display: inline-block;
  border: #fff 2px solid;
  position: relative;
  padding: 12px 31px 8px 18px;
  min-width: 367px;
  position: relative;
}
.btn-inquiry-01 a::after {
  content: "";
  display: inline-block;
  width: 9px;
  height: 9px;
  border-top: solid 2px #fff;
  border-right: solid 2px #fff;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  position: absolute;
  top: 50%;
  right: 15px;
  margin-top: -3px;
}
.btn-inquiry-01 a:hover, .btn-inquiry-01 a:focus {
  opacity: 1;
  background: #fff;
}
.btn-inquiry-01 a:hover::after, .btn-inquiry-01 a:focus::after {
  border-color: #282828;
}
.btn-inquiry-01 a:hover span, .btn-inquiry-01 a:focus span {
  color: #282828;
  background: url(/shared/images/icon-mail-02.png) no-repeat left center;
}
.btn-inquiry-01 span {
  color: #fff;
  padding-left: 28px;
  background: url(/shared/images/icon-mail-01.png) no-repeat left center;
}
@media only screen and (max-width: 599px) {
  .btn-inquiry-01 {
    padding: 40px 20px;
    margin-top: 30px;
  }
  .btn-inquiry-01 a {
    min-width: 100%;
  }
}

/*=========================================
	index
=========================================*/
/*	index-01
-----------------------------------------*/
.index-01 {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-justify-content: center;
  justify-content: center;
  margin: 20px -20px 0 -20px;
}
.index-01 li {
  width: 25%;
  position: relative;
}
.index-01 li::before {
  content: "";
  display: block;
  padding-top: 100%;
}
.index-01 li.exception .box a {
  background: #fff;
  color: #3c3c3c;
}
.index-01 li.exception .box a:hover, .index-01 li.exception .box a:focus {
  color: #fff;
  background: #3c3c3c;
}
.index-01 li .box {
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
  display: block;
  overflow: hidden;
  padding: 20px;
}
.index-01 li a {
  -webkit-flex: 1 0 0%;
  flex: 1 0 0%;
  display: -webkit-flex;
  display: flex;
  width: 100%;
  height: 100%;
  text-decoration: none;
  color: #fff;
  border: #3c3c3c 2px solid;
  background: #3c3c3c;
  padding: 20px;
  display: block;
  text-align: center;
  vertical-align: middle;
}
.index-01 li a .area {
  -webkit-flex: 1 0 0%;
  flex: 1 0 0%;
  display: inline-block;
  font-size: 1.25rem;
  line-height: 1.6;
  position: relative;
  top: 50%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
}
.index-01 li a .area b {
  word-break: break-all;
  display: block;
}
.index-01 li a .area b::after {
  content: "";
  display: inline-block;
  width: 9px;
  height: 9px;
  border-top: solid 2px #e60014;
  border-right: solid 2px #e60014;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  margin-left: 10px;
  vertical-align: middle;
  margin-top: -2px;
}
.index-01 li a .area span {
  display: block;
  padding: 0 30px;
  margin-bottom: 18px;
}
.index-01 li a .area span img {
  min-width: 52px;
}
.index-01 li a:hover, .index-01 li a:focus {
  opacity: 1;
  background: #fff;
  color: #3c3c3c;
}
.index-01.img-no li {
  width: 25%;
  position: static;
  padding: 20px;
}
.index-01.img-no li::before {
  content: none;
}
.index-01.img-no li .box {
  position: static;
  padding: 0;
  width: 100%;
  height: auto;
  display: block;
  overflow: visible;
}
.index-01.img-no li a {
  height: 149px;
  opacity: 1;
  table-layout: fixed;
  padding: 20px;
  display: table;
}
.index-01.img-no li a .area {
  display: table-cell;
  height: auto;
  text-align: center;
  vertical-align: middle;
  position: static;
  -webkit-transform: none;
  transform: none;
}
.index-01.img-no.col3 li {
  width: 33.33333%;
}
@media only screen and (max-width: 959px) {
  .index-01 {
    -webkit-justify-content: flex-start;
    justify-content: flex-start;
  }
  .index-01 li {
    width: 33.33333%;
  }
  .index-01.img-no {
    -webkit-justify-content: flex-start;
    justify-content: flex-start;
  }
  .index-01.img-no li {
    width: 33.33333%;
  }
}
@media only screen and (max-width: 709px) {
  .index-01 {
    margin-right: -15px;
    margin-left: -15px;
  }
  .index-01 li .box {
    padding-right: 15px;
    padding-left: 15px;
  }
  .index-01.img-no {
    margin-right: -15px;
    margin-left: -15px;
  }
  .index-01.img-no li {
    padding-right: 15px;
    padding-left: 15px;
  }
}
@media only screen and (max-width: 599px) {
  .index-01 {
    margin: 10px -5px 0 -5px;
  }
  .index-01 li {
    width: 50%;
    text-align: center;
  }
  .index-01 li .box {
    padding: 5px;
  }
  .index-01 li a {
    height: 100%;
    width: 100%;
    padding: 8px;
  }
  .index-01 li a .area {
    height: auto;
    font-size: 1rem;
    line-height: 1.625;
  }
  .index-01 li a .area span {
    margin-bottom: 10px;
  }
  .index-01 li a .area img {
    height: 43px;
    width: auto;
  }
  .index-01.img-no {
    margin: 10px -5px 0 -5px;
  }
  .index-01.img-no.col3 li {
    width: 50%;
  }
  .index-01.img-no li {
    width: 50%;
    text-align: center;
    display: block;
    padding: 5px;
  }
  .index-01.img-no li .box {
    height: 100%;
  }
  .index-01.img-no li a {
    height: 100%;
    width: 100%;
    padding: 8px;
    display: table;
  }
  .index-01.img-no li a .area {
    padding: 17px 0 16px 0;
    vertical-align: middle;
    text-align: center;
    display: table-cell;
  }
}

/*	index-02
-----------------------------------------*/
.index-02 {
  margin: 0 -20px;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
}
.index-02 li {
  display: -webkit-flex;
  display: flex;
  width: 33.33333%;
  padding: 0 20px;
  margin-top: 40px;
}
.index-02 li a {
  color: #333;
  border: #b4b4b4 1px solid;
  padding: 29px;
  width: 100%;
}
.index-02 li a:hover .img img, .index-02 li a:focus .img img {
  -webkit-transform: scale(1.1);
  transform: scale(1.1);
}
.index-02 li .inner {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
}
.index-02 li .img {
  display: block;
  margin-bottom: 25px;
  overflow: hidden;
  text-align: center;
}
.index-02 li .img img {
  max-width: 307px;
  max-height: 96px;
  width: 100%;
  transition: .3s all;
}
.index-02 li b {
  font-size: 1rem;
  line-height: 1.625;
  font-weight: bold;
}
.index-02 li b::after {
  content: "";
  display: inline-block;
  width: 9px;
  height: 9px;
  border-top: solid 2px #e60014;
  border-right: solid 2px #e60014;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  margin-left: 10px;
  vertical-align: middle;
  margin-top: -2px;
}
.index-02 li .txt {
  margin-top: 5px;
  font-size: 0.9375rem;
  line-height: 1.6;
}
@media only screen and (max-width: 798px) {
  .index-02 li {
    width: 50%;
  }
}
@media only screen and (max-width: 599px) {
  .index-02 {
    display: block;
    margin-top: 30px;
  }
  .index-02 li {
    margin-top: 15px;
    width: 100%;
  }
  .index-02 li a {
    padding: 19px;
  }
}

/*=========================================
	box
=========================================*/
table .btn-inr-01 {
  margin-top: 10px;
}
table .btn-inr-01 a {
  text-decoration: none !important;
  display: inline-block;
  border: #333 2px solid;
  position: relative;
  padding: 4px 37px 3px 18px;
  color: #333;
  position: relative;
}
table .btn-inr-01 a::after {
  content: "";
  display: inline-block;
  width: 9px;
  height: 9px;
  border-bottom: solid 2px #333;
  border-right: solid 2px #333;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  position: absolute;
  top: 50%;
  right: 15px;
  margin-top: -5px;
}
table .btn-inr-01 a:hover, table .btn-inr-01 a:focus {
  opacity: 1;
  background: #333;
  color: #fff !important;
}
table .btn-inr-01 a:hover::after, table .btn-inr-01 a:focus::after {
  border-color: #fff;
}
table th > *:first-child, table td > *:first-child {
  margin-top: 0;
}
table th ul, table th dl, table td ul, table td dl {
  margin-bottom: 5px;
}

/*	table-01
-----------------------------------------*/
.table-01 {
  border-spacing: 0;
  border-collapse: separate;
  word-break: break-all;
  width: 100%;
  border-bottom: #b4b4b4 1px solid;
  font-size: 1rem;
  line-height: 1.8125;
  margin-top: 30px;
}
.table-01 a {
  text-decoration: underline;
  color: #333;
}
.table-01 a:hover, .table-01 a:focus {
  opacity: 1;
  text-decoration: none;
}
.table-01 th {
  border-top: #b4b4b4 1px solid;
  font-weight: bold;
  text-align: left;
  padding: 12px 10px 11px 10px;
}
.table-01 td {
  padding: 12px 10px 11px 10px;
  border-top: #b4b4b4 1px solid;
  text-align: left;
}
@media only screen and (max-width: 599px) {
  .table-01 th, .table-01 td {
    font-size: 0.875rem;
    line-height: 1.78571;
    padding: 10px 5px 9px 5px;
  }
  .table-01 th *, .table-01 td * {
    font-size: 0.875rem;
    line-height: 1.78571;
  }
}

/*	table-02
-----------------------------------------*/
.table-02 {
  border-spacing: 0;
  border-collapse: separate;
  word-break: break-all;
  width: 100%;
  font-size: 1rem;
  line-height: 1.8125;
  margin-top: 40px;
}
.table-02 a {
  text-decoration: underline;
  color: #333;
}
.table-02 a:hover, .table-02 a:focus {
  opacity: 1;
  text-decoration: none;
}
.table-02 thead th, .table-02 thead td {
  text-align: center;
  vertical-align: middle;
  background: #282828;
  color: #fff;
  border-top: #b4b4b4 1px solid;
  border-right: #b4b4b4 1px solid;
  border-bottom: #282828 1px solid;
}
.table-02 thead tr:first-child {
  border-top: 0;
}
.table-02 tbody th {
  border-bottom: #b4b4b4 1px solid;
  border-left: #b4b4b4 1px solid;
  border-right: #b4b4b4 1px solid;
}
.table-02 th {
  font-weight: bold;
  text-align: left;
  padding: 15px 20px;
}
.table-02 td {
  padding: 15px 20px;
  border-bottom: #b4b4b4 1px solid;
  border-right: #b4b4b4 1px solid;
  text-align: left;
}
@media only screen and (max-width: 599px) {
  .table-02 {
    margin-top: 30px;
  }
  .table-02 tbody th {
    background: #eaeaea;
  }
  .table-02 th, .table-02 td {
    font-size: 0.875rem;
    line-height: 1.78571;
    padding: 15px 8px;
  }
  .table-02 th *, .table-02 td * {
    font-size: 0.875rem;
    line-height: 1.78571;
  }
}

/*	table-03
-----------------------------------------*/
.table-03 {
  border-spacing: 0;
  border-collapse: separate;
  word-break: break-all;
  width: 100%;
  font-size: 1rem;
  line-height: 1.8125;
  margin-top: 40px;
}
.table-03 a {
  text-decoration: underline;
  color: #333;
}
.table-03 a:hover, .table-03 a:focus {
  opacity: 1;
  text-decoration: none;
}
.table-03 tbody th {
  border-bottom: #b4b4b4 1px solid;
  background: #282828;
  color: #fff;
}
.table-03 th {
  font-weight: bold;
  text-align: left;
  padding: 15px 20px;
}
.table-03 td {
  padding: 15px 20px;
  border-bottom: #b4b4b4 1px solid;
  border-right: #b4b4b4 1px solid;
  text-align: left;
}
.table-03 tr:last-child th {
  border-bottom: #282828 1px solid;
}
.table-03 tr:first-child th {
  border-top: #282828 1px solid;
}
.table-03 tr:first-child td {
  border-top: #b4b4b4 1px solid;
}
@media only screen and (max-width: 599px) {
  .table-03 {
    margin-top: 30px;
  }
  .table-03 th, .table-03 td {
    font-size: 0.875rem;
    line-height: 1.78571;
    padding: 15px 8px;
  }
}

/*	table-form-01
-----------------------------------------*/
.table-form-01 {
  margin-top: 40px;
}
.table-form-01 table {
  border-spacing: 0;
  border-collapse: separate;
  word-break: break-all;
  width: 100%;
  border-bottom: #b4b4b4 1px solid;
}
.table-form-01 th, .table-form-01 td {
  font-size: 1rem;
  line-height: 1.8125;
  border-top: #b4b4b4 1px solid;
  padding: 20px 10px;
}
.table-form-01 th {
  text-align: left;
  vertical-align: top;
  font-weight: bold;
  width: 40%;
}
.table-form-01 th label {
  display: inline-block;
  font-weight: bold;
  vertical-align: middle;
}
.table-form-01 td {
  width: 60%;
}
.table-form-01 .set {
  font-weight: bold;
  display: inline-block;
  padding-right: 45px;
  position: relative;
}
.table-form-01 .required {
  font-size: .75rem;
  line-height: 1;
  color: #fff;
  background: #e60014;
  padding: 3px 4.6px 3px 4.8px;
  display: inline-block;
  position: absolute;
  top: 5px;
  right: 0;
}
.table-form-01 .form-txt-01 {
  font-size: .875rem;
  line-height: 1.5;
  display: block;
  margin-bottom: 6px;
}
.table-form-01 .form-txt-02 {
  font-size: 1rem;
  line-height: 1.8125;
  display: block;
  margin-bottom: 6px;
}
.table-form-01 input, .table-form-01 textarea, .table-form-01 select {
  font-size: 1rem;
  line-height: 1.8125;
  color: #333;
  font-family: "Yu Gothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro", Meiryo, "メイリオ", Arial, sans-serif;
  display: inline-block;
}
.table-form-01 input:not([type=checkbox]), .table-form-01 textarea, .table-form-01 select {
  -moz-appearance: none;
  -webkit-appearance: none;
  appearance: none;
  border-radius: 0;
  padding: 4px 8px 3px 8px;
  border: #b4b4b4 2px solid;
  width: 100%;
  max-width: 403px;
  min-height: 40px;
}
.table-form-01 .long {
  max-width: 100%;
}
.table-form-01 select {
  padding-right: 39px;
}
.table-form-01 select::-ms-expand {
  display: none;
}
.table-form-01 .select-01 {
  display: inline-block;
  position: relative;
  width: 100%;
  max-width: 403px;
}
.table-form-01 .select-01::before {
  content: "";
  display: block;
  pointer-events: none;
  width: 9px;
  height: 9px;
  border-bottom: solid 2px #333;
  border-right: solid 2px #333;
  will-change: transform;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  position: absolute;
  right: 13px;
  top: 50%;
  margin-top: -5px;
}
.table-form-01 textarea {
  height: 200px;
}
.table-form-01 a {
  text-decoration: underline;
  color: #333;
}
.table-form-01 a:hover, .table-form-01 a:focus {
  opacity: 1;
  text-decoration: none;
}
.table-form-01 .checkbox-01 {
  padding: 10px 18px 7px 18px;
  border: #b4b4b4 2px solid;
  display: table;
  min-width: 163px;
  text-align: center;
  background: #fff;
  cursor: pointer;
  transition: .3s all;
}
.table-form-01 .checkbox-01.checked {
  background: #b4b4b4;
}
.table-form-01 .checkbox-01:hover, .table-form-01 .checkbox-01:focus {
  background: #b4b4b4;
}
.table-form-01 .checkbox-01 input {
  vertical-align: middle;
  margin-right: 11px;
}
.table-form-01 .error-01 {
  margin-top: 6px;
}
@media all and (-ms-high-contrast: none) {
  .table-form-01 .required {
    padding: 5px 4.6px 0 4.8px;
    top: 2px;
  }
  .table-form-01 input, .table-form-01 textarea, .table-form-01 select {
    padding: 6px 8px 2px 8px;
  }
}
@media only screen and (max-width: 599px) {
  .table-form-01 {
    margin: 30px -15px 0 -15px;
  }
  .table-form-01 th, .table-form-01 td {
    padding: 0 15px;
    display: block;
    width: 100%;
  }
  .table-form-01 th {
    padding-top: 20px;
    padding-bottom: 10px;
  }
  .table-form-01 th + td {
    padding-top: 0;
    padding-bottom: 20px;
    border-top: 0;
  }
  .table-form-01 input:not([type=checkbox]), .table-form-01 textarea, .table-form-01 select, .table-form-01 .select-01 {
    max-width: 100%;
  }
  .table-form-01 .checkbox-01 {
    display: block;
  }
  .table-form-01 .checkbox-01:hover, .table-form-01 .checkbox-01:focus {
    background: #fff;
  }
  .table-form-01 .checkbox-01.checked {
    background: #b4b4b4;
  }
}

/*=========================================
	javascript
=========================================*/
/*	js-more
-----------------------------------------*/
.js-more {
  position: relative;
  padding-bottom: 70px;
}
.js-more .js-more-btn {
  position: absolute;
  left: 0;
  bottom: 0;
  border: #b4b4b4 1px solid;
  text-align: center;
  padding: 9px 10px 8px 10px;
  max-width: 1180px;
  width: 100%;
  background: #fff;
  display: block;
  line-height: 1.57143rem;
  font-family: "Yu Gothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro", Meiryo, "メイリオ", Arial, sans-serif;
}
.js-more .js-more-btn span {
  color: #666;
  display: inline-block;
  position: relative;
  padding: 0 22px;
  position: relative;
}
.js-more .js-more-btn span::before, .js-more .js-more-btn span::after {
  content: "";
  display: block;
  background: #666;
  position: absolute;
}
.js-more .js-more-btn span::before {
  height: 2px;
  width: 12px;
  right: 0;
  top: 11px;
}
.js-more .js-more-btn span::after {
  height: 12px;
  width: 2px;
  right: 5px;
  top: 6px;
}
.js-more .js-more-btn:hover, .js-more .js-more-btn:focus {
  opacity: 1;
  background: #eaeaea;
}
.js-more .js-more-btn:hover span, .js-more .js-more-btn:focus span {
  color: #e60014;
}
.js-more .js-more-btn:hover span::before, .js-more .js-more-btn:hover span::after, .js-more .js-more-btn:focus span::before, .js-more .js-more-btn:focus span::after {
  background: #e60014;
}
.js-more .js-more-btn.close span::before, .js-more .js-more-btn.close span::after {
  will-change: transform;
  -webkit-transform: rotate(0deg);
  transform: rotate(0deg);
}
.js-more .js-more-btn.open span::before, .js-more .js-more-btn.open span::after {
  will-change: transform;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}

/*=========================================
	heading
=========================================*/
/*	hdg-01
-----------------------------------------*/
.hdg-01 {
  background: #eaeaea;
  padding: 0 40px;
  text-align: center;
  color: #333;
  width: 100%;
}
.hdg-01.icon .hdg span {
  color: #333;
}
.hdg-01 .hdg {
  font-size: 2.25rem;
  line-height: 1.5;
  padding: 64px 0 55px 0;
  width: 100%;
  max-height: 173px;
  display: table;
  table-layout: fixed;
}
.hdg-01 .hdg span {
  vertical-align: middle;
  text-align: center;
  display: table-cell;
  font-weight: bold;
  color: #e60014;
}
.hdg-01 .hdg .img {
  vertical-align: text-top;
  width: auto;
  margin-right: 20px;
}
.hdg-01 .hdg[data-en] {
  padding: 52px 0 44px 0;
  font-size: 0.875rem;
  line-height: 1.57143;
  -webkit-flex-direction: column;
  flex-direction: column;
}
.hdg-01 .hdg[data-en]::before {
  content: attr(data-en);
  font-family: Lato, sans-serif;
  font-size: 2.25rem;
  line-height: 1.5;
  font-weight: 700;
  color: #e60014;
  display: block;
}
.hdg-01 .hdg[data-en] span {
  display: inline-block;
  font-weight: normal;
  color: #333;
}
@media only screen and (max-width: 599px) {
  .hdg-01 {
    padding: 0 15px;
  }
  .hdg-01 .hdg {
    padding: 40px 0 30px 0;
    min-height: 158px;
  }
  .hdg-01 .hdg span {
    font-size: 1.75rem;
  }
  .hdg-01 .hdg .img {
    vertical-align: text-bottom;
  }
  .hdg-01 .hdg[data-en] span {
    font-size: 0.875rem;
    line-height: 1.57143;
  }
  .hdg-01 .hdg[data-en]::before {
    font-size: 1.75rem;
  }
}

/*	hdg-02
-----------------------------------------*/
.hdg-02 {
  text-align: center;
  margin-top: 50px;
  font-size: 2rem;
  line-height: 1.1875;
  font-weight: bold;
  color: #e60014;
  font-family: Lato, sans-serif;
}
.hdg-02[data-en] {
  font-size: 0.875rem;
  line-height: 1.57143;
  font-weight: normal;
  color: #333;
  font-family: "Yu Gothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro", Meiryo, "メイリオ", Arial, sans-serif;
}
.hdg-02[data-en]::before {
  content: attr(data-en);
  font-family: Lato, sans-serif;
  font-size: 2rem;
  line-height: 1.1875;
  font-weight: 700;
  color: #e60014;
  display: block;
  margin-bottom: 7px;
}
@media only screen and (max-width: 599px) {
  .hdg-02 {
    margin-top: 40px;
  }
  .hdg-02::before {
    font-size: 1.75rem;
    line-height: 1.21429;
  }
}

/*	hdg-03
-----------------------------------------*/
.hdg-03 {
  text-align: center;
  font-size: 2rem;
  line-height: 1.5;
  font-weight: bold;
  color: #e60014;
  position: relative;
  padding-bottom: 8px;
  margin-top: 80px;
}
.hdg-03::after {
  content: "";
  display: block;
  background: #b4b4b4;
  width: 24px;
  height: 1px;
  position: absolute;
  bottom: 0;
  left: 50%;
  margin-left: -12px;
}
@media only screen and (max-width: 599px) {
  .hdg-03 {
    margin-top: 62px;
    font-size: 1.375rem;
    line-height: 1.45455;
  }
}

/*	hdg-04
-----------------------------------------*/
.hdg-04 {
  padding: 0 40px;
  text-align: center;
  color: #333;
  width: 100%;
}
.hdg-04 .breadcrumb {
  background: #fff;
}
.hdg-04 .breadcrumb p {
  position: static;
}
.hdg-04 .hdg {
  max-width: 1180px;
  margin: 0 auto;
  min-height: 132px;
  font-size: 2rem;
  line-height: 1.5;
  padding: 40px 0 10px 0;
  display: -webkit-flex;
  display: flex;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
}
.hdg-04 .hdg span {
  font-weight: bold;
}
@media only screen and (max-width: 599px) {
  .hdg-04 {
    padding: 0 15px;
  }
  .hdg-04 .hdg {
    font-size: 1.5rem;
    line-height: 1.58333;
    padding: 40px 0 0 0;
    min-height: 142px;
  }
}

/*	hdg-05
-----------------------------------------*/
.hdg-05 {
  font-size: 1.125rem;
  line-height: 1.61111;
  font-weight: bold;
  margin-top: 40px;
}
@media only screen and (max-width: 599px) {
  .hdg-05 {
    margin-top: 30px;
  }
}

/*=========================================
	width
=========================================*/
/*	adjustment
-----------------------------------------*/
.w5 {
  width: 5% !important;
}

.w6 {
  width: 6% !important;
}

.w7 {
  width: 7% !important;
}

.w8 {
  width: 8% !important;
}

.w9 {
  width: 9% !important;
}

.w10 {
  width: 10% !important;
}

.w11 {
  width: 11% !important;
}

.w12 {
  width: 12% !important;
}

.w13 {
  width: 13% !important;
}

.w14 {
  width: 14% !important;
}

.w15 {
  width: 15% !important;
}

.w16 {
  width: 16% !important;
}

.w17 {
  width: 17% !important;
}

.w18 {
  width: 18% !important;
}

.w19 {
  width: 19% !important;
}

.w20 {
  width: 20% !important;
}

.w21 {
  width: 21% !important;
}

.w22 {
  width: 22% !important;
}

.w23 {
  width: 23% !important;
}

.w24 {
  width: 24% !important;
}

.w25 {
  width: 25% !important;
}

.w26 {
  width: 26% !important;
}

.w27 {
  width: 27% !important;
}

.w28 {
  width: 28% !important;
}

.w29 {
  width: 29% !important;
}

.w30 {
  width: 30% !important;
}

.w31 {
  width: 31% !important;
}

.w32 {
  width: 32% !important;
}

.w33 {
  width: 33% !important;
}

.w34 {
  width: 34% !important;
}

.w35 {
  width: 35% !important;
}

.w36 {
  width: 36% !important;
}

.w37 {
  width: 37% !important;
}

.w38 {
  width: 38% !important;
}

.w39 {
  width: 39% !important;
}

.w40 {
  width: 40% !important;
}

.w41 {
  width: 41% !important;
}

.w42 {
  width: 42% !important;
}

.w43 {
  width: 43% !important;
}

.w44 {
  width: 44% !important;
}

.w45 {
  width: 45% !important;
}

.w46 {
  width: 46% !important;
}

.w47 {
  width: 47% !important;
}

.w48 {
  width: 48% !important;
}

.w49 {
  width: 49% !important;
}

.w50 {
  width: 50% !important;
}

.mt0 {
  margin-top: 0em !important;
}

.mb0 {
  margin-bottom: 0em !important;
}

.pt0 {
  padding-top: 0em !important;
}

.pb0 {
  padding-bottom: 0em !important;
}

.mt1 {
  margin-top: 0.5em !important;
}

.mb1 {
  margin-bottom: 0.5em !important;
}

.pt1 {
  padding-top: 0.5em !important;
}

.pb1 {
  padding-bottom: 0.5em !important;
}

.mt2 {
  margin-top: 1em !important;
}

.mb2 {
  margin-bottom: 1em !important;
}

.pt2 {
  padding-top: 1em !important;
}

.pb2 {
  padding-bottom: 1em !important;
}

.mt3 {
  margin-top: 1.5em !important;
}

.mb3 {
  margin-bottom: 1.5em !important;
}

.pt3 {
  padding-top: 1.5em !important;
}

.pb3 {
  padding-bottom: 1.5em !important;
}

.mt4 {
  margin-top: 2em !important;
}

.mb4 {
  margin-bottom: 2em !important;
}

.pt4 {
  padding-top: 2em !important;
}

.pb4 {
  padding-bottom: 2em !important;
}

.mt5 {
  margin-top: 2.5em !important;
}

.mb5 {
  margin-bottom: 2.5em !important;
}

.pt5 {
  padding-top: 2.5em !important;
}

.pb5 {
  padding-bottom: 2.5em !important;
}

.mt6 {
  margin-top: 3em !important;
}

.mb6 {
  margin-bottom: 3em !important;
}

.pt6 {
  padding-top: 3em !important;
}

.pb6 {
  padding-bottom: 3em !important;
}

.mt7 {
  margin-top: 3.5em !important;
}

.mb7 {
  margin-bottom: 3.5em !important;
}

.pt7 {
  padding-top: 3.5em !important;
}

.pb7 {
  padding-bottom: 3.5em !important;
}

.mt8 {
  margin-top: 4em !important;
}

.mb8 {
  margin-bottom: 4em !important;
}

.pt8 {
  padding-top: 4em !important;
}

.pb8 {
  padding-bottom: 4em !important;
}

.mt9 {
  margin-top: 4.5em !important;
}

.mb9 {
  margin-bottom: 4.5em !important;
}

.pt9 {
  padding-top: 4.5em !important;
}

.pb9 {
  padding-bottom: 4.5em !important;
}

.mt10 {
  margin-top: 5em !important;
}

.mb10 {
  margin-bottom: 5em !important;
}

.pt10 {
  padding-top: 5em !important;
}

.pb10 {
  padding-bottom: 5em !important;
}

.ml0 {
  margin-left: 0px !important;
}

.mr0 {
  margin-right: 0px !important;
}

.pl0 {
  padding-left: 0px !important;
}

.pr0 {
  padding-right: 0px !important;
}

.ml1 {
  margin-left: 10px !important;
}

.mr1 {
  margin-right: 10px !important;
}

.pl1 {
  padding-left: 10px !important;
}

.pr1 {
  padding-right: 10px !important;
}

.ml2 {
  margin-left: 20px !important;
}

.mr2 {
  margin-right: 20px !important;
}

.pl2 {
  padding-left: 20px !important;
}

.pr2 {
  padding-right: 20px !important;
}

.ml3 {
  margin-left: 30px !important;
}

.mr3 {
  margin-right: 30px !important;
}

.pl3 {
  padding-left: 30px !important;
}

.pr3 {
  padding-right: 30px !important;
}

.ml4 {
  margin-left: 40px !important;
}

.mr4 {
  margin-right: 40px !important;
}

.pl4 {
  padding-left: 40px !important;
}

.pr4 {
  padding-right: 40px !important;
}

.ml5 {
  margin-left: 50px !important;
}

.mr5 {
  margin-right: 50px !important;
}

.pl5 {
  padding-left: 50px !important;
}

.pr5 {
  padding-right: 50px !important;
}

.ml6 {
  margin-left: 60px !important;
}

.mr6 {
  margin-right: 60px !important;
}

.pl6 {
  padding-left: 60px !important;
}

.pr6 {
  padding-right: 60px !important;
}

.ml7 {
  margin-left: 70px !important;
}

.mr7 {
  margin-right: 70px !important;
}

.pl7 {
  padding-left: 70px !important;
}

.pr7 {
  padding-right: 70px !important;
}

.ml8 {
  margin-left: 80px !important;
}

.mr8 {
  margin-right: 80px !important;
}

.pl8 {
  padding-left: 80px !important;
}

.pr8 {
  padding-right: 80px !important;
}

.ml9 {
  margin-left: 90px !important;
}

.mr9 {
  margin-right: 90px !important;
}

.pl9 {
  padding-left: 90px !important;
}

.pr9 {
  padding-right: 90px !important;
}

.ml10 {
  margin-left: 100px !important;
}

.mr10 {
  margin-right: 100px !important;
}

.pl10 {
  padding-left: 100px !important;
}

.pr10 {
  padding-right: 100px !important;
}

.t-center {
  text-align: center !important;
}

.t-left {
  text-align: left !important;
}

.t-right {
  text-align: right !important;
}

img.aligncenter {
  display: block;
  margin: 0 auto;
}

img.alignleft {
  display: block;
  margin: 0 auto 0 0;
}

img.alignright {
  display: block;
  margin: 0 0 0 auto;
}

.v-top {
  vertical-align: top !important;
}
.v-top th, .v-top td {
  vertical-align: top !important;
}

.v-middle {
  vertical-align: middle !important;
}
.v-middle th, .v-middle td {
  vertical-align: middle !important;
}

.v-bottom {
  vertical-align: bottom !important;
}
.v-bottom th, .v-bottom td {
  vertical-align: bottom !important;
}

/*	TOP
-----------------------------------------*/
.main.top .sns-link-01 {
  background: #282828;
  padding: 0 40px;
}
.main.top .sns-link-01 .inner {
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  padding: 10px 0;
}
.main.top .sns-link-01 .inner p {
  color: #fff;
}
@media only screen and (max-width: 599px) {
  .main.top .sns-link-01 {
    padding: 0 15px;
  }
}

.main.top .top-visual {
  position: relative;
  width: 100%;
}
.main.top .top-visual .top-visual-inner {
  max-width: 980px;
  margin: 0 auto;
  position: relative;
}
.main.top .top-visual .top-visual-inner::before {
  content: "";
  height: 100%;
  background: rgba(0, 0, 0, 0.3);
  width: 980px;
  position: absolute;
  top: 0;
  left: -980px;
  z-index: 2;
}
.main.top .top-visual .top-visual-inner::after {
  content: "";
  height: 100%;
  background: rgba(0, 0, 0, 0.3);
  width: 980px;
  position: absolute;
  top: 0;
  right: -980px;
  z-index: 2;
}
.main.top .top-visual .carousel li {
  position: relative;
}
.main.top .top-visual .bx-wrapper {
  position: relative;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
}
.main.top .top-visual .bx-wrapper .bx-viewport {
  -webkit-transform: translatez(0);
  max-width: 980px !important;
  overflow: visible !important;
}
.main.top .top-visual .bx-wrapper .bx-controls-auto,
.main.top .top-visual .bx-wrapper .bx-pager {
  width: 100%;
}
.main.top .top-visual .bx-wrapper .bx-controls-direction button.disabled {
  display: none;
}
.main.top .top-visual .carousel-utility {
  position: absolute;
  width: 100%;
  top: 50%;
  z-index: 10;
}
.main.top .top-visual .carousel-utility p {
  position: absolute;
  top: 50%;
  margin-top: -33px;
}
.main.top .top-visual .carousel-utility p:first-child {
  right: 0;
}
.main.top .top-visual .carousel-utility p:last-child {
  left: 0;
}
.main.top .top-visual .carousel-utility .bx-next {
  overflow: hidden;
  height: 67px;
  width: 70px;
  text-indent: -999em;
  display: block;
  position: relative;
  background: url(/images/icon-next-01.png) no-repeat center center;
}
.main.top .top-visual .carousel-utility .bx-prev {
  overflow: hidden;
  height: 67px;
  width: 70px;
  text-indent: -999em;
  display: block;
  background: url(/images/icon-prev-01.png) no-repeat center center;
  -webkit-filter: drop-shadow(0 0 1px rgba(0, 0, 0, 0.3));
}
.main.top .top-visual .carousel-control {
  position: absolute;
  bottom: 30px;
  right: 0;
  left: 0;
  width: 100%;
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: center;
  justify-content: center;
}
.main.top .top-visual .carousel-control .carousel-pager {
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: center;
  justify-content: center;
}
.main.top .top-visual .carousel-control .carousel-pager .bx-pager {
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: center;
  justify-content: center;
}
.main.top .top-visual .carousel-control .carousel-pager .bx-pager li button {
  display: block;
  width: 21px;
  height: 21px;
  position: relative;
  margin: 0;
  text-indent: -999em;
  color: #fff;
}
.main.top .top-visual .carousel-control .carousel-pager .bx-pager li button::before {
  content: "";
  display: block;
  width: 9px;
  height: 9px;
  background: #fff;
  box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.3);
  position: absolute;
  top: 50%;
  left: 50%;
  margin: -4.5px 0 0 -4.5px;
}
.main.top .top-visual .carousel-control .carousel-pager .bx-pager li button:hover, .main.top .top-visual .carousel-control .carousel-pager .bx-pager li button:focus {
  opacity: 1;
  color: rgba(255, 255, 255, 0.1);
}
.main.top .top-visual .carousel-control .carousel-pager .bx-pager li button:hover::before, .main.top .top-visual .carousel-control .carousel-pager .bx-pager li button:focus::before {
  background: rgba(255, 255, 255, 0.6);
}
.main.top .top-visual .carousel-control .carousel-pager .bx-pager li .active {
  color: #e60014;
}
.main.top .top-visual .carousel-control .carousel-pager .bx-pager li .active::before {
  background: #e60014;
}
.main.top .top-visual .carousel-control .carousel-pager .bx-pager li .active:hover, .main.top .top-visual .carousel-control .carousel-pager .bx-pager li .active:focus {
  opacity: 1;
  color: #e60014;
}
.main.top .top-visual .carousel-control .carousel-pager .bx-pager li .active:hover::before, .main.top .top-visual .carousel-control .carousel-pager .bx-pager li .active:focus::before {
  background: #e60014;
}
.main.top .top-visual .carousel-control .carousel-switch button {
  display: block;
  width: 37px;
  height: 21px;
  position: relative;
  margin: 0;
}
.main.top .top-visual .carousel-control .carousel-switch button span {
  display: block;
  position: absolute;
  top: -999em;
  left: -999em;
}
.main.top .top-visual .carousel-control .carousel-switch .bx-stop::before, .main.top .top-visual .carousel-control .carousel-switch .bx-stop::after {
  content: "";
  display: block;
  background: #fff;
  height: 13px;
  width: 4px;
  position: absolute;
  top: 50%;
  margin-top: -6.5px;
  box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.3);
}
.main.top .top-visual .carousel-control .carousel-switch .bx-stop::before {
  left: 12px;
}
.main.top .top-visual .carousel-control .carousel-switch .bx-stop::after {
  right: 12px;
}
.main.top .top-visual .carousel-control .carousel-switch .bx-start::before, .main.top .top-visual .carousel-control .carousel-switch .bx-start::after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  position: absolute;
}
.main.top .top-visual .carousel-control .carousel-switch .bx-start::before {
  border-width: 7px 0 7px 15px;
  border-color: transparent transparent transparent rgba(0, 0, 0, 0.3);
  top: 50%;
  left: 12px;
  margin-top: -7px;
}
.main.top .top-visual .carousel-control .carousel-switch .bx-start::after {
  border-width: 6px 0 6px 13px;
  border-color: transparent transparent transparent #e60014;
  top: 50%;
  left: 12px;
  margin-top: -6px;
}
@media only screen and (max-width: 599px) {
  .main.top .top-visual {
    background: #000;
  }
  .main.top .top-visual .carousel li a:focus {
    opacity: 1;
  }
  .main.top .top-visual .carousel-utility {
    bottom: 0;
    top: auto;
  }
  .main.top .top-visual .carousel-utility p {
    margin-top: 0;
    bottom: 12px;
    top: auto;
  }
  .main.top .top-visual .carousel-utility .bx-next, .main.top .top-visual .carousel-utility .bx-prev {
    height: 20px;
    width: 43px;
    background-size: 12px auto;
  }
  .main.top .top-visual .carousel-utility .bx-next:hover, .main.top .top-visual .carousel-utility .bx-next:focus, .main.top .top-visual .carousel-utility .bx-prev:hover, .main.top .top-visual .carousel-utility .bx-prev:focus {
    background-size: 12px auto;
  }
  .main.top .top-visual .carousel-control {
    position: static;
    padding: 11px 15px;
  }
}

.main.top .link-01 a {
  color: #fff;
}

.main.top .list-01 {
  color: #fff;
}
@media only screen and (max-width: 599px) {
  .main.top .list-01 .txt {
    font-size: 1rem;
    line-height: 1.375;
  }
}
.main.top .list-01 .note-01 {
  color: #fff;
}

.main.top .top-01 {
  background: #282828;
  padding: 50px 40px;
}
.main.top .top-01 .hdg-02 {
  margin-top: 0;
  color: #fff;
}
.main.top .top-01 .hdg-02::before {
  color: #fff;
}
@media only screen and (max-width: 599px) {
  .main.top .top-01 {
    padding: 40px 15px;
  }
}

.main.top .top-02 {
  background: #3c3c3c;
  padding: 50px 40px;
  color: #fff;
}
.main.top .top-02 .hdg-02 {
  margin-top: 0;
  color: #fff;
}
.main.top .top-02 .hdg-02::before {
  color: #fff;
}
.main.top .top-02 .note-01 {
  color: #fff;
}
@media only screen and (max-width: 599px) {
  .main.top .top-02 {
    padding: 40px 15px;
  }
}

.main.top .top-03 {
  padding: 50px 40px;
}
.main.top .top-03 .hdg-02 {
  margin-top: 0;
}
@media only screen and (max-width: 599px) {
  .main.top .top-03 {
    padding: 40px 15px;
  }
}

.main.top .top-04 {
  background: #282828;
  padding: 50px 40px;
}
.main.top .top-04 .top-inner {
  max-width: 980px;
}
.main.top .top-04 .hdg-02 {
  margin-top: 0;
  color: #fff;
}
.main.top .top-04 .hdg-02::before {
  color: #fff;
}
@media only screen and (max-width: 599px) {
  .main.top .top-04 {
    padding: 40px 15px;
  }
}

.main.top .top-link-01 {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
}
.main.top .top-link-01 li {
  margin-top: 34px;
  width: 14.28571%;
  font-size: 1rem;
  line-height: 1.625;
  padding: 0 10px;
}
.main.top .top-link-01 li a {
  color: #fff;
  text-align: center;
  display: block;
}
.main.top .top-link-01 li a:hover .img, .main.top .top-link-01 li a:focus .img {
  top: -5px;
}
.main.top .top-link-01 li .img {
  position: relative;
  top: 0;
  max-height: 43px;
  width: auto;
  -webkit-transition: top .2s;
  transition: top .2s;
  will-change: top;
}
.main.top .top-link-01 li span {
  word-break: break-all;
  display: block;
  margin-top: 21px;
}
.main.top .top-link-01 li span::after {
  content: "";
  display: inline-block;
  width: 9px;
  height: 9px;
  border-top: solid 2px #e60014;
  border-right: solid 2px #e60014;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  position: relative;
  top: -1px;
  left: 8px;
}
@media only screen and (max-width: 1024px) {
  .main.top .top-link-01 li {
    width: 25%;
  }
}
@media only screen and (max-width: 640px) {
  .main.top .top-link-01 li {
    width: 33.33333%;
  }
}
@media only screen and (max-width: 599px) {
  .main.top .top-link-01 {
    margin: 0 -5px;
  }
  .main.top .top-link-01 li {
    margin-top: 30px;
    width: 50%;
    padding: 0 5px;
  }
}

.main.top .top-panel-01 {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-justify-content: center;
  justify-content: center;
  margin: 20px -10px 0 -10px;
}
.main.top .top-panel-01 .hdg {
  padding: 0 10px;
  margin-top: 20px;
}
.main.top .top-panel-01 .hdg > span {
  width: 280px;
  height: 300px;
  color: #fff;
  font-size: 2rem;
  line-height: 1.1875;
  font-family: Lato, sans-serif;
  font-weight: 400;
  display: table;
}
.main.top .top-panel-01 .hdg > span span {
  text-align: center;
  vertical-align: middle;
  display: table-cell;
}
.main.top .top-panel-01 .hdg.movie span {
  background: #f06332;
}
.main.top .top-panel-01 .hdg.anime span {
  background: #3598db;
}
.main.top .top-panel-01 .hdg.drama span {
  background: #1bbc9b;
}
.main.top .top-panel-01 .hdg.others span {
  background: #986cc7;
}
.main.top .top-panel-01 .item1 {
  padding: 0 10px;
  margin-top: 20px;
}
.main.top .top-panel-01 .item1 a {
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: center;
  justify-content: center;
  -webkit-align-items: center;
  align-items: center;
  position: relative;
  width: 280px;
  height: 300px;
  overflow: hidden;
  box-shadow: 2px 2px 1px -1px rgba(0, 0, 0, 0.08);
}
.main.top .top-panel-01 .item1 a::before {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 0 30px 30px;
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: 3;
}
.main.top .top-panel-01 .item1 a::after {
  transition: .3s all;
  display: block;
  width: 280px;
  height: 300px;
  position: absolute;
  top: 0;
  left: 0;
  content: "";
}
.main.top .top-panel-01 .item1 a:hover, .main.top .top-panel-01 .item1 a:focus {
  opacity: 1;
}
.main.top .top-panel-01 .item1 a:hover .area, .main.top .top-panel-01 .item1 a:focus .area {
  background: none;
  padding-top: 0;
  padding-bottom: 0;
  position: static;
}
.main.top .top-panel-01 .item1 a:hover .img img, .main.top .top-panel-01 .item1 a:focus .img img {
  -webkit-transform: scale(1.1);
  transform: scale(1.1);
}
.main.top .top-panel-01 .item1 .img {
  overflow: hidden;
  width: 280px;
  height: 300px;
  position: absolute;
  top: 0;
  left: 0;
}
.main.top .top-panel-01 .item1 .img img {
  transition: .3s all;
}
.main.top .top-panel-01 .item1 .area {
  transition: .3s all;
  position: absolute;
  z-index: 2;
  left: 0;
  bottom: 0;
  display: block;
  padding: 30px 20px 15px 20px;
  background: -webkit-linear-gradient(top, transparent 0%, rgba(0, 0, 0, 0.6) 50%, rgba(0, 0, 0, 0.85) 80%, rgba(0, 0, 0, 0.9) 100%);
  background: linear-gradient(to bottom, transparent 0%, rgba(0, 0, 0, 0.6) 50%, rgba(0, 0, 0, 0.85) 80%, rgba(0, 0, 0, 0.9) 100%);
  width: 100%;
  color: #fff;
}
.main.top .top-panel-01 .item1 .area .title {
  font-size: 1rem;
  line-height: 1.375;
  font-weight: bold;
  margin-top: 0;
}
.main.top .top-panel-01 .item1 .area .txt1 {
  font-size: 0.75rem;
  line-height: 1.58333;
  margin-top: 8px;
}
.main.top .top-panel-01 .item1 .area .type {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-align-items: center;
  align-items: center;
  margin-top: 7px;
}
.main.top .top-panel-01 .item1 .area .type li {
  margin-top: 3px;
  margin-right: 3px;
  font-size: 0.75rem;
  line-height: 1.58333;
  background: #444;
  border-radius: 2px;
  border: #b4b4b4 1px solid;
  padding: 3px 4px 3px 4.4px;
  vertical-align: middle;
  text-align: center;
}
.main.top .top-panel-01 .item1.movie a::before {
  border-color: transparent transparent #f06332 transparent;
}
.main.top .top-panel-01 .item1.movie a:hover::after, .main.top .top-panel-01 .item1.movie a:focus::after {
  background: rgba(240, 99, 50, 0.9);
}
.main.top .top-panel-01 .item1.anime a::before {
  border-color: transparent transparent #3598db transparent;
}
.main.top .top-panel-01 .item1.anime a:hover::after, .main.top .top-panel-01 .item1.anime a:focus::after {
  background: rgba(53, 152, 219, 0.9);
}
.main.top .top-panel-01 .item1.drama a::before {
  border-color: transparent transparent #1bbc9b transparent;
}
.main.top .top-panel-01 .item1.drama a:hover::after, .main.top .top-panel-01 .item1.drama a:focus::after {
  background: rgba(27, 188, 155, 0.9);
}
.main.top .top-panel-01 .item1.others a::before {
  border-color: transparent transparent #986cc7 transparent;
}
.main.top .top-panel-01 .item1.others a:hover::after, .main.top .top-panel-01 .item1.others a:focus::after {
  background: rgba(152, 108, 199, 0.9);
}
.main.top .top-panel-01 .item2 {
  padding: 0 10px;
  margin-top: 20px;
}
.main.top .top-panel-01 .item2 a {
  background: #fff;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: row-reverse;
  flex-direction: row-reverse;
  position: relative;
  width: 580px;
  height: 300px;
  overflow: hidden;
  box-shadow: 2px 2px 1px -1px rgba(0, 0, 0, 0.08);
  color: #333;
}
.main.top .top-panel-01 .item2 a::before {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 0 30px 30px;
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: 3;
}
.main.top .top-panel-01 .item2 a:hover, .main.top .top-panel-01 .item2 a:focus {
  opacity: 1;
  color: #fff;
}
.main.top .top-panel-01 .item2 a:hover .img img, .main.top .top-panel-01 .item2 a:focus .img img {
  -webkit-transform: scale(1.1);
  transform: scale(1.1);
}
.main.top .top-panel-01 .item2 .img {
  min-width: 280px;
  max-width: 280px;
  overflow: hidden;
}
.main.top .top-panel-01 .item2 .img img {
  transition: .3s all;
}
.main.top .top-panel-01 .item2 .area {
  padding: 30px 25px;
  overflow: hidden;
  min-width: 300px;
}
.main.top .top-panel-01 .item2 .area .title {
  font-size: 1.25rem;
  line-height: 1.6;
  font-weight: bold;
  margin-top: 0;
}
.main.top .top-panel-01 .item2 .area .txt1 {
  font-size: 0.875rem;
  line-height: 1.57143;
  margin-top: 8px;
}
.main.top .top-panel-01 .item2 .area .txt2 {
  font-size: 0.9375rem;
  line-height: 1.6;
  margin-top: 15px;
}
.main.top .top-panel-01 .item2 .area .type {
  display: -webkit-flex;
  display: flex;
  -webkit-align-items: center;
  align-items: center;
  margin-top: 7px;
}
.main.top .top-panel-01 .item2 .area .type li {
  font-size: 0.75rem;
  line-height: 1.58333;
  background: #444;
  color: #fff;
  border-radius: 2px;
  border: #b4b4b4 1px solid;
  padding: 3px 4px 3px 4.4px;
  vertical-align: middle;
  text-align: center;
  margin-left: 3px;
}
.main.top .top-panel-01 .item2 .area .type li:first-child {
  margin: 0;
}
.main.top .top-panel-01 .item2.movie .area {
  border-top: #f06332 4px solid;
}
.main.top .top-panel-01 .item2.movie a::before {
  border-color: transparent transparent #f06332 transparent;
}
.main.top .top-panel-01 .item2.movie a:hover .area, .main.top .top-panel-01 .item2.movie a:focus .area {
  background: rgba(240, 99, 50, 0.9);
}
.main.top .top-panel-01 .item2.anime .area {
  border-top: #3598db 4px solid;
}
.main.top .top-panel-01 .item2.anime a::before {
  border-color: transparent transparent #3598db transparent;
}
.main.top .top-panel-01 .item2.anime a:hover .area, .main.top .top-panel-01 .item2.anime a:focus .area {
  background: rgba(53, 152, 219, 0.9);
}
.main.top .top-panel-01 .item2.drama .area {
  border-top: #1bbc9b 4px solid;
}
.main.top .top-panel-01 .item2.drama a::before {
  border-color: transparent transparent #1bbc9b transparent;
}
.main.top .top-panel-01 .item2.drama a:hover .area, .main.top .top-panel-01 .item2.drama a:focus .area {
  background: rgba(27, 188, 155, 0.9);
}
.main.top .top-panel-01 .item2.others .area {
  border-top: #986cc7 4px solid;
}
.main.top .top-panel-01 .item2.others a::before {
  border-color: transparent transparent #986cc7 transparent;
}
.main.top .top-panel-01 .item2.others a:hover .area, .main.top .top-panel-01 .item2.others a:focus .area {
  background: rgba(152, 108, 199, 0.9);
}
@media only screen and (max-width: 1276px) {
  .main.top .top-panel-01 {
    padding: 0 160px;
  }
}
@media only screen and (max-width: 1024px) {
  .main.top .top-panel-01 {
    padding: 0 30px;
  }
}
@media only screen and (max-width: 738px) {
  .main.top .top-panel-01 {
    padding: 0;
  }
}
@media only screen and (max-width: 678px) {
  .main.top .top-panel-01 {
    display: block;
    text-align: center;
  }
  .main.top .top-panel-01 .hdg, .main.top .top-panel-01 .item1, .main.top .top-panel-01 .item2 {
    display: inline-block;
    text-align: left;
  }
  .main.top .top-panel-01 .item2 .area {
    padding: 30px 20px;
    min-width: auto;
  }
  .main.top .top-panel-01 .item2 .area .title {
    font-size: 1rem;
    line-height: 1.375;
  }
  .main.top .top-panel-01 .item2 a {
    -webkit-flex-direction: column-reverse;
    flex-direction: column-reverse;
    height: auto;
    width: 280px;
  }
}

.main.top .top-box-01 {
  margin-top: 35px;
}
.main.top .top-box-01 a {
  display: block;
  width: 100%;
  position: relative;
}
.main.top .top-box-01 a:hover, .main.top .top-box-01 a:focus {
  opacity: 1;
}
.main.top .top-box-01 a:hover .photo, .main.top .top-box-01 a:focus .photo {
  opacity: .7;
}
.main.top .top-box-01 a:hover .photo img, .main.top .top-box-01 a:focus .photo img {
  -webkit-transform: scale(1.1);
  transform: scale(1.1);
}
.main.top .top-box-01 a:hover .area .hdg, .main.top .top-box-01 a:focus .area .hdg {
  color: #e60014;
}
.main.top .top-box-01 .photo {
  transition: .3s all;
  max-width: 600px;
  overflow: hidden;
}
.main.top .top-box-01 .photo img {
  transition: .3s all;
}
.main.top .top-box-01 .box {
  position: absolute;
  right: 0;
  top: 0;
  right: 0;
  bottom: 0;
  padding-left: 200px;
  margin: auto;
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  -webkit-align-items: center;
  align-items: center;
}
.main.top .top-box-01 .area {
  background: #fff;
  max-width: 400px;
  color: #333;
  padding: 42px 39px;
  position: relative;
  z-index: 2;
}
.main.top .top-box-01 .area::before {
  content: "";
  display: block;
  width: 27px;
  height: 27px;
  background: #e60014;
  position: absolute;
  right: 0;
  bottom: 0;
}
.main.top .top-box-01 .area::after {
  content: "";
  display: block;
  width: 9px;
  height: 9px;
  border-top: solid 2px #fff;
  border-right: solid 2px #fff;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  position: absolute;
  bottom: 8px;
  right: 10px;
  -webkit-transition: right .2s;
  transition: right .2s;
  will-change: right;
}
.main.top .top-box-01 .area:hover, .main.top .top-box-01 .area:focus {
  opacity: 1;
}
.main.top .top-box-01 .area:hover::after, .main.top .top-box-01 .area:focus::after {
  right: 6px;
}
.main.top .top-box-01 .area .hdg {
  transition: .3s all;
  font-size: 1.5rem;
  line-height: 1.5;
  font-weight: bold;
}
.main.top .top-box-01 .area .hdg::after {
  content: "";
  display: block;
  background: #b4b4b4;
  width: 38px;
  height: 1px;
  margin-top: 13px;
}
.main.top .top-box-01 .area p {
  font-size: 1rem;
  line-height: 1.625;
  margin-top: 25px;
}
@media only screen and (max-width: 798px) {
  .main.top .top-box-01 .photo {
    position: static;
    max-width: 100%;
  }
  .main.top .top-box-01 .box {
    padding: 0 15px;
    position: static;
  }
  .main.top .top-box-01 .area {
    max-width: 100%;
    margin-top: -20px;
  }
  .main.top .top-box-01 .area .hdg::after {
    content: none;
  }
}
@media only screen and (max-width: 599px) {
  .main.top .top-box-01 {
    margin-top: 25px;
  }
  .main.top .top-box-01 .area {
    padding: 20px;
  }
  .main.top .top-box-01 .area .hdg {
    font-size: 1rem;
    line-height: 1.375;
  }
  .main.top .top-box-01 .area p {
    font-size: 0.875rem;
    line-height: 1.42857;
    margin-top: 8px;
  }
}
