@charset "UTF-8";
@import url("https://fonts.googleapis.com/css?family=Noto+Sans+JP:400,700&display=swap&subset=japanese");
@import url("https://fonts.googleapis.com/css2?family=Noto+Serif:wght@400;700&display=swap");
/* ------------------------------
    mixin
------------------------------ */
/* ------------------------------
    reset
------------------------------ */
html {
 font-size: 62.5%;
 overflow-y: scroll; }
@media screen and (max-width: 1400px) and (min-width: 767px) {
 html {
  font-size: 0.71429vw; } }
@media screen and (max-width: 767px) {
 html {
  font-size: 2vw; } }

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

body, h1, h2, h3, h4, h5, h6, p, address, time,
ul, ol, li, dl, dt, dd,
table, th, td, img,
form, input, button, textarea, select {
 margin: 0;
 padding: 0;
 border: none;
 line-height: 100%;
 list-style-type: none;
 font-style: normal;
 font-weight: normal;
 font-family: 'Noto Sans JP',メイリオ,Meiryo,"Hiragino Kaku Gothic Pro","ヒラギノ角ゴ Pro W3","ＭＳ Ｐゴシック",Arial,Verdana,sans-serif;
 word-wrap: break-word;
 overflow-wrap: break-word;
 -webkit-text-size-adjust: 100%; }

input, button, textarea, select {
 -webkit-appearance: none;
 -moz-appearance: none;
 appearance: none;
 border: none;
 border-radius: 0;
 resize: none;
 outline: none;
 background: none; }

select::-ms-expand {
 display: none; }

button:hover {
 cursor: pointer; }

a {
 color: #32393c;
 text-decoration: none;
 transition: opacity 0.3s ease;
 outline: 1px solid transparent;
 -webkit-backface-visibility: hidden;
 backface-visibility: hidden; }
a img {
 outline: 1px solid transparent;
 -webkit-backface-visibility: hidden;
 backface-visibility: hidden; }
a:hover {
 opacity: .6;
 cursor: pointer; }

img, object {
 vertical-align: bottom;
 max-width: 100%;
 height: auto; }

/* IE用追記 */
.ie, .edge {
 overflow-x: hidden; }
@media screen and (max-width: 767px) {
 .ie, .edge {
  overflow-x: inherit; } }

/* ------------------------------
    base
------------------------------ */
body {
 color: #32393c;
 font-size: 1.0rem;
 text-align: left; }

section {
 position: relative; }

main {
 display: block;
 padding-top: 120px; }

.wrap {
 max-width: 1280px;
 width: 90%;
 padding: 0;
 margin: 0 auto;
 position: relative; }

.inner_m {
 margin: 0 2rem; }

.inner_s {
 margin: 0 8rem; }

p, th, td, dt, dd, li, input, button, textarea {
 font-size: 1.6rem;
 line-height: 1.8; }

p.txt {
 font-size: 1.6rem;
 line-height: 1.8; }

.fade {
 transition: opacity 0.3s ease;
 -webkit-backface-visibility: hidden;
 backface-visibility: hidden; }

.fade img {
 outline: 1px solid transparent;
 -webkit-backface-visibility: hidden;
 backface-visibility: hidden; }

.fade:hover {
 opacity: .6;
 cursor: pointer; }

.h-center {
 position: absolute;
 left: 50%;
 transform: translateX(-50%) translateZ(0); }

.v-center {
 position: absolute;
 top: 50%;
 transform: translateY(-50%) translateZ(0); }

.hv-center {
 position: absolute;
 top: 50%;
 left: 50%;
 transform: translate(-50%, -50%) translateZ(0); }

.flex {
 display: flex;
 justify-content: space-between; }

.bold {
 font-weight: bold; }

.tal {
 text-align: left; }

.tar {
 text-align: right; }

.tac {
 text-align: center; }

.left {
 float: left; }

.right {
 float: right; }

.center {
 display: block;
 text-align: center;
 margin-left: auto;
 margin-right: auto; }

.fixed {
 position: fixed;
 left: 0;
 top: 0;
 width: 100%;
 height: 100%; }

.preload *, .preload *::before, .preload *::after {
 transition: none !important; }

.sawarabi {
 /* font-family: 'Noto Serif', serif; */ }

.serif {
 /* font-family: 'Noto Serif', serif; */ }

@media screen and (max-width: 767px) {
 body {
  min-width: inherit; }
 .wrap {
  width: 90%;
  padding: 0; }
 .inner_m {
  margin: 0; }
 .inner_s {
  margin: 0 3rem; }
 main {
  padding-top: 60px; }
 p, th, td, dt, dd, li {
  font-size: 1.6rem; }
 input, textarea, select, .select {
  font-size: 16px !important; }
 p.txt {
  font-size: 1.6rem;
  line-height: 1.8; } }

/* ------------------------------
    header
------------------------------ */
#header {
 position: absolute;
 left: 0;
 top: 0;
 width: 100%;
 height: 120px;
 z-index: 1000;
 transition: height .5s ease; }
#header .wrap {
 background: #fff;
 width: 100%;
 height: 120px;
 max-width: inherit;
 display: flex;
 justify-content: flex-start;
 align-items: center;
 padding: 0 3rem;
 border-bottom: 1px solid #eee;
 transition: background-color .5s ease; }
#header .logo_wrap {
 flex: 0 0 auto; }
#header .logo {
 display: flex;
 align-items: center;
 height: 4rem;
 width: 40rem; }
#header .logo img {
 max-width: 100%;
 max-height: 100%; }
#header .others {
 flex: 0 0 auto;
 display: flex; }
#header .others .item {
 margin-left: 3rem;
 height: 120px;
 line-height: 120px; }
#header .others .item.language {
 position: relative; }
#header .others .item .ico {
 display: flex;
 align-content: center;
 justify-content: center;
 height: 100%;
 position: relative; }
#header .others .item .ico svg {
 width: 3rem;
 height: auto;
 vertical-align: middle; }
#header .others .item .ico::before {
 content: '';
 position: absolute;
 left: 50%;
 bottom: -1%;
 transform: translateX(-50%);
 width: 0;
 height: 0;
 border-style: solid;
 border-width: 0 5px 10px 5px;
 border-color: transparent transparent #8e1413 transparent;
 display: none; }
#header .others .item #language_button,
#header .others .item #search_button {
 display: none; }
#header .others .item .detail {
 transition: max-height .5s ease;
 background: #8e1413;
 position: absolute;
 top: 120px;
 z-index: 1000;
 max-height: 0;
 overflow: hidden;
 box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.5); }
#header .others .item .detail.language_detail {
 left: 50%;
 color: #fff;
 width: 16rem;
 transform: translateX(-50%); }
#header .others .item .detail.language_detail ul {
 padding: 1.5rem 0; }
#header .others .item .detail.language_detail a {
 display: block;
 color: #fff;
 padding: .5em 3em .5em 1em;
 position: relative; }
#header .others .item .detail.language_detail a::before {
 right: 1em;
 width: 1em;
 height: 1em; }
#header .others .item .detail.language_detail a:hover {
 opacity: 1; }
#header .others .item .detail.language_detail a:hover::before {
 right: .5em; }
#header .others .item .detail.search_detail {
 left: 0;
 width: 100%; }
#header .others .item .detail.search_detail form {
 display: flex;
 justify-content: space-between;
 align-items: center;
 padding: 3rem 0; }
#header .others .item .detail.search_detail form .search_keyword {
 height: 2.5em;
 line-height: 2.5em;
 background: #fff;
 font-size: 2.0rem;
 flex: 1 1 auto;
 padding: 0 2em; }
#header .others .item .detail.search_detail form .search_keyword::placeholder {
 color: #aaa; }
#header .others .item .detail.search_detail form .search_keyword:not(.active) {
 background: #fff url(../img/common/ico_search_g.svg) no-repeat left 2em center/1.2em auto;
 padding-left: 3.5em; }
#header .others .item .detail.search_detail form .search_keyword.active::placeholder {
 color: #fff; }
#header .others .item .detail.search_detail form .search_submit {
 flex: 0 0 auto;
 margin-left: 2rem;
 width: 19rem;
 height: 2.5em;
 line-height: 2.5em;
 font-size: 1.6rem;
 text-align: center;
 background: #bdbdbd url(../img/common/ico_search_w.svg) no-repeat left 0.8em center/auto 50%;
 color: #fff;
 pointer-events: none; }
#header .others .item .detail.search_detail form .search_submit.active {
 background-color: #fff;
 background-image: url(../img/common/ico_search.svg);
 color: #8e1413;
 cursor: pointer;
 pointer-events: auto; }
#header .others .item .detail.search_detail form .search_submit.active:hover {
 filter: brightness(150%); }
@media screen and (min-width: 768px) {
 #header .others .item:hover .ico {
  position: relative; }
 #header .others .item:hover .ico svg {
  fill: #8e1413; }
 #header .others .item:hover .ico::before {
  display: block; }
 #header .others .item:hover .detail {
  max-height: 20rem; } }
#header .red {
 display: none; }
#header nav {
 flex: 1 1 auto; }
#header nav .gnavi {
 display: flex;
 justify-content: flex-end;
 margin: 0 2rem; }
#header nav .gnavi > li > p,
#header nav .gnavi > li > a {
 /* font-family: 'Noto Serif', serif; */
 display: block;
 font-size: 1.7rem;
 font-weight: bold;
 line-height: 120px;
 padding: 0 1.5em;
 position: relative;
 cursor: pointer; }
@media screen and (min-width: 768px) {
 #header nav .gnavi > li > p:hover,
 #header nav .gnavi > li > a:hover {
  color: #fff;
  font-weight: bold;
  opacity: 1; } }
@media screen and (min-width: 768px) {
 #header nav .gnavi > li > a:hover {
  color: #8e1413; }
 #header nav .gnavi > li > a:hover svg {
  fill: #8e1413; }
 #header nav .gnavi > li > a:hover ::after {
  display: none; } }
@media screen and (min-width: 768px) {
 #header nav .gnavi .mega_menu {
  color: #fff;
  position: absolute;
  left: 0;
  top: 120px;
  width: 100%;
  height: 45rem;
  display: flex !important;
  align-items: center;
  justify-content: center;
  transition: max-height .3s ease;
  visibility: hidden; }
 #header nav .gnavi .mega_menu.active {
  visibility: visible;
  z-index: 1; }
 #header nav .gnavi .mega_menu .inner {
  height: 29rem;
  width: 96rem;
  display: flex; }
 #header nav .gnavi .mega_menu .ttl {
  flex: 0 0 auto;
  width: 35rem;
  font-size: 1.6rem;
  padding-top: 3rem;
  /* font-family: 'Noto Serif', serif; */ }
 #header nav .gnavi .mega_menu .ttl .en {
  display: block;
  font-size: 4.3rem;
  line-height: 1;
  margin-bottom: .1em; }
 #header nav .gnavi .mega_menu .ttl .en img {
  height: 1em;
  width: auto; }
 #header nav .gnavi .mega_menu .ttl .en.line img {
  height: 2.2em; }
 #header nav .gnavi .mega_menu .snavi_wrap {
  flex: 1 1 auto;
  width: 100%;
  padding: 3rem 0 3rem 9rem;
  border-left: 1px solid #fff; }
 #header nav .gnavi .mega_menu .sttl a {
  color: #fff;
  font-size: 3.0rem;
  line-height: 1.2;
  position: relative; }
 #header nav .gnavi .mega_menu .sttl a:hover {
  opacity: 1;
  text-decoration: underline; }
 #header nav .gnavi .mega_menu .snavi {
  display: flex;
  flex-wrap: wrap;
  margin-top: 1rem; }
 #header nav .gnavi .mega_menu .snavi > li {
  font-size: 1.6rem;
  line-height: 1;
  width: 25rem;
  margin: .8em 0; }
 #header nav .gnavi .mega_menu .snavi > li > a {
  color: #fff; }
 #header nav .gnavi .mega_menu .snavi > li > a::before {
  content: '';
  background: url(../img/common/ico_nav.svg) no-repeat center/contain;
  width: .6em;
  height: .6em;
  display: inline-block;
  vertical-align: .1em;
  margin-right: .5em;
  display: none; }
 #header nav .gnavi .mega_menu .snavi > li > a:hover {
  opacity: 1;
  border-bottom: 1px solid #fff; } }
@media screen and (max-width: 767px) {
 #header nav .gnavi .mega_menu {
  display: none; } }
#header #overlay {
 display: block;
 position: fixed;
 left: 0;
 top: 0;
 width: 100%;
 height: 100%;
 background: #8e1413;
 opacity: 0;
 pointer-events: none;
 transition: opacity 0.3s ease;
 z-index: 997; }
#header #overlay.active {
 opacity: 1;
 pointer-events: auto; }
@media screen and (min-width: 768px) {
 #header.active {
  background: rgba(142, 20, 19, 0.95);
  height: calc( 100px + 46rem);
  box-shadow: 0 0 10px #000; }
 #header.active .wrap {
  background: #8e1413;
  border-bottom-color: #c87372; }
 #header.active .white {
  display: none; }
 #header.active .red {
  display: block; }
 #header.active .others .ico svg {
  fill: #fff; }
 #header.active .gnavi > li > a, #header.active .gnavi > li > p {
  color: rgba(255, 255, 255, 0.6); }
 #header.active .gnavi > li > a svg {
  fill: rgba(255, 255, 255, 0.6); } }

@media screen and (max-width: 767px) {
 #header,
 #header .wrap,
 #header .logo_wrap {
  width: 100%;
  height: 60px; }
 #header {
  background-color: transparent;
  position: fixed;
  top: 0;
  left: 0;
  padding: 0;
  margin: 0;
  z-index: 999;
  overflow: inherit; }
 #header .wrap {
  padding: 0;
  display: block;
  position: relative;
  min-width: inherit; }
 #header .logo_wrap {
  position: relative;
  background: #fff;
  z-index: 999;
  padding: 0; }
 #header .logo {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  height: 3rem;
  width: auto; }
 #header .logo a {
  display: block;
  height: 100%; }
 #header .others {
  position: absolute;
  right: 0;
  top: 0; }
 #header .others .item {
  height: 60px;
  width: 60px;
  display: flex;
  align-items: center;
  justify-content: center; }
 #header .others .item .ico {
  position: relative;
  z-index: 999;
  width: 100%; }
 #header .others .item .ico svg {
  width: 26px;
  height: auto; }
 #header .others .item .detail.language_detail {
  background: #8e1413;
  width: 100%;
  height: 100%;
  opacity: 0;
  padding: 8vw 0;
  position: fixed;
  left: 0;
  top: 60px;
  overflow-x: hidden;
  overflow-y: auto;
  max-height: calc(100% - 60px);
  transform: translateY(-100%);
  transition: transform .3s, opacity 1s;
  pointer-events: none;
  z-index: 998; }
 #header .others .item .detail.language_detail ul li {
  display: block;
  height: auto;
  padding: 0 5vw; }
 #header .others .item .detail.language_detail ul li:first-child > p, #header .others .item .detail.language_detail ul li:first-child > a {
  border-top: 1px solid rgba(255, 255, 255, 0.2); }
 #header .others .item .detail.language_detail ul li p, #header .others .item .detail.language_detail ul li a {
  color: #fff;
  background: transparent;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  height: 18vw;
  font-size: 5vw;
  padding: 0 5vw;
  position: relative;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2); }
 #header .others .item .detail.language_detail ul li p::before, #header .others .item .detail.language_detail ul li a::before {
  content: '';
  background: url(../img/common/ico_arrow_w.svg) no-repeat center/contain;
  position: absolute;
  right: 5vw;
  top: 50%;
  transform: translateY(-50%);
  width: 1em;
  height: 1em;
  transition: right .3s ease; }
 #header .others .item #language_button:checked + .ico {
  background: #8e1413; }
 #header .others .item #language_button:checked + .ico svg {
  fill: #fff; }
 #header .others .item #language_button:checked + .ico::before {
  display: none; }
 #header .others .item #language_button:checked + .ico + .language_detail {
  opacity: 1;
  transform: translateY(0);
  transition: transform .3s, opacity 0s;
  pointer-events: auto; }
 #header .menu-trigger {
  display: flex;
  position: fixed;
  left: 0;
  top: 0;
  width: 60px;
  height: 60px;
  z-index: 999;
  background: #eeeded; }
 #header .menu-trigger .ico {
  width: 20px;
  height: 20px;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%); }
 #header .menu-trigger .ico span {
  display: inline-block;
  transition: all .4s;
  position: absolute;
  left: 0;
  width: 100%;
  height: 2px;
  background-color: #000; }
 #header .menu-trigger .ico span:nth-of-type(1) {
  top: 30%; }
 #header .menu-trigger .ico span:nth-of-type(2) {
  bottom: 30%; }
 #header nav {
  background: #8e1413;
  width: 100%;
  height: 100%;
  opacity: 0;
  padding: 0;
  position: fixed;
  left: 0;
  top: 60px;
  overflow-x: hidden;
  overflow-y: auto;
  max-height: calc(100% - 60px);
  transform: translateY(-100%);
  transition: transform .3s, opacity 1s;
  z-index: 998; }
 #header nav .nav_wrap {
  top: 0;
  left: 0;
  width: 200vw;
  height: 100%;
  position: relative;
  margin: 0;
  padding: 8vw 0;
  transition: transform .3s; }
 #header nav .nav_wrap.active {
  transform: translateX(-100vw); }
 #header nav .nav_wrap .sp_search {
  padding: 0 5vw;
  margin-bottom: 8vw;
  width: 100vw; }
 #header nav .nav_wrap .sp_search input {
  width: 100%;
  height: 2.5em;
  line-height: 2.5em;
  background: #fff;
  padding: 0 1em;
  border-radius: 100px; }
 #header nav .nav_wrap .sp_search input::placeholder {
  color: #aaa;
  background: url(../img/common/ico_search_g.svg) no-repeat left center/1.2em auto;
  padding-left: 1.5em; }
 #header nav .nav_wrap .gnavi {
  margin: 0;
  padding: 0;
  display: block; }
 #header nav .nav_wrap .gnavi li {
  display: block;
  height: auto;
  padding: 0 5vw;
  width: 100vw;
  overflow: hidden; }
 #header nav .nav_wrap .gnavi li:first-child > p, #header nav .nav_wrap .gnavi li:first-child > a {
  border-top: 1px solid rgba(255, 255, 255, 0.2); }
 #header nav .nav_wrap .gnavi li p, #header nav .nav_wrap .gnavi li a {
  color: #fff;
  background: transparent;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  height: 18vw;
  font-size: 5vw;
  padding: 0 5vw;
  position: relative;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2); }
 #header nav .nav_wrap .gnavi li p::before, #header nav .nav_wrap .gnavi li a::before {
  content: '';
  background: url(../img/common/ico_arrow_w.svg) no-repeat center/contain;
  position: absolute;
  right: 5vw;
  top: 50%;
  transform: translateY(-50%);
  width: 1em;
  height: 1em;
  transition: right .3s ease; }
 #header nav .nav_wrap .gnavi li p[target="_blank"]::before, #header nav .nav_wrap .gnavi li p[target="_blank"]::after, #header nav .nav_wrap .gnavi li a[target="_blank"]::before, #header nav .nav_wrap .gnavi li a[target="_blank"]::after {
  display: none; }
 #header nav .nav_wrap .gnavi li p[target="_blank"] i, #header nav .nav_wrap .gnavi li a[target="_blank"] i {
  position: absolute;
  right: 5vw;
  top: 50%;
  transform: translateY(-50%); }
 #header nav .nav_wrap .gnavi li p[target="_blank"] i svg, #header nav .nav_wrap .gnavi li a[target="_blank"] i svg {
  fill: #fff; }
 #header nav .nav_wrap .gnavi li .mega_menu {
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  padding: 8vw 0;
  transform: translateX(100vw);
  visibility: hidden; }
 #header nav .nav_wrap .gnavi li .mega_menu.active {
  visibility: visible; }
 #header nav .nav_wrap .gnavi li .mega_menu .ttl {
  display: none; }
 #header nav .nav_wrap .gnavi li .mega_menu .snavi li p, #header nav .nav_wrap .gnavi li .mega_menu .snavi li a {
  font-size: 4.5vw; }
 #header nav .nav_wrap .gnavi li .mega_menu .snavi li.mega_menu-close > p, #header nav .nav_wrap .gnavi li .mega_menu .snavi li.mega_menu-close > a {
  /* font-family: 'Noto Serif', serif; */
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  background: #8a0b0a;
  padding-left: 3em;
  font-size: 5vw; }
 #header nav .nav_wrap .gnavi li .mega_menu .snavi li.mega_menu-close > p::before, #header nav .nav_wrap .gnavi li .mega_menu .snavi li.mega_menu-close > a::before {
  left: 5vw;
  transform: translateY(-50%) scale(-1, 1); }
 #header nav .nav_wrap .gnavi li .mega_menu .snavi li.sp p, #header nav .nav_wrap .gnavi li .mega_menu .snavi li.sp a {
  font-weight: bold; }
 #header.navOpen .menu-trigger {
  background: #8e1413; }
 #header.navOpen .menu-trigger span {
  background: #fff; }
 #header.navOpen .menu-trigger span:nth-of-type(1) {
  top: 50%;
  transform: translateY(-50%) rotate(-45deg); }
 #header.navOpen .menu-trigger span:nth-of-type(2) {
  bottom: 50%;
  transform: translateY(50%) rotate(45deg); }
 #header.navOpen nav {
  opacity: 1;
  transform: translateY(0);
  transition: transform .3s, opacity 0s; } }

/* ------------------------------
    footer
------------------------------ */
#footer {
 background: url(../img/common/footer_bg.png);
 color: #fff;
 position: relative; }
@media screen and (max-width: 767px) {
 #footer {
  background: url(../img/common/footer_bg2.png); } }
@media screen and (min-width: 768px) {
 #footer .pagetop {
  position: absolute;
  right: 3rem;
  z-index: 999; }
 #footer .pagetop a {
  display: block;
  padding: 2rem;
  background: #fff;
  border-radius: 100%; } }
@media screen and (max-width: 767px) {
 #footer .pagetop {
  background: url(../img/common/footer_bg.png);
  text-align: center;
  padding: 3rem 0;
  position: static !important; }
 #footer .pagetop img {
  width: 4rem; } }
#footer .menu_bg {
 padding: 7rem 0 5rem; }
@media screen and (max-width: 767px) {
 #footer .menu_bg {
  padding: 4rem 0; } }
@media screen and (max-width: 767px) {
 #footer .menu_bg .flex {
  display: block; } }
#footer .menu_bg .flex .flex_left {
 flex: 0 0 auto;
 width: 20%; }
@media screen and (max-width: 767px) {
 #footer .menu_bg .flex .flex_left {
  width: 100%;
  text-align: center;
  display: flex;
  margin-bottom: 4rem; }
 #footer .menu_bg .flex .flex_left > * {
  flex: 1; } }
#footer .menu_bg .flex .flex_left .logo {
 margin-bottom: 2rem; }
#footer .menu_bg .flex .flex_left .logo img {
 width: 15rem; }
#footer .menu_bg .flex .flex_left .sns {
 margin-top: 1rem;
 padding-left: 1rem; }
@media screen and (max-width: 767px) {
 #footer .menu_bg .flex .flex_left .sns {
  padding-left: 0; } }
#footer .menu_bg .flex .flex_left .sns a {
 font-size: 1.8rem;
 color: #fff;
 display: flex;
 align-items: center;
 justify-content: flex-start; }
@media screen and (max-width: 767px) {
 #footer .menu_bg .flex .flex_left .sns a {
  justify-content: center; } }
#footer .menu_bg .flex .flex_left .sns img {
 width: 3rem;
 margin-right: .5em; }
#footer .menu_bg .flex .flex_right {
 flex: 1 1 auto; }
#footer .menu_bg .flex .flex_right .menu_wrap {
 padding: 0 1rem;
 display: flex;
 flex-wrap: wrap;
 justify-content: flex-start; }
#footer .menu_bg .flex .flex_right .menu_wrap hr {
 margin: 5rem 0;
 flex: 1 1 auto;
 width: 100%;
 border: none;
 border-bottom: 1px solid #aaa; }
@media screen and (max-width: 767px) {
 #footer .menu_bg .flex .flex_right .menu_wrap hr {
  border-bottom-color: #333; } }
#footer .menu_bg .flex .flex_right .menu_wrap .box {
 width: calc( 75% / 3);
 margin-left: 5%;
 margin-right: -1px; }
@media screen and (max-width: 767px) {
 #footer .menu_bg .flex .flex_right .menu_wrap .box {
  width: 50%;
  margin-left: 0; } }
#footer .menu_bg .flex .flex_right .menu_wrap .box .ttl {
 font-size: 3.0rem;
 line-height: 1.2;
 margin-bottom: .5em;
 font-weight: bold; }
@media screen and (min-width: 768px) {
 #footer .menu_bg .flex .flex_right .menu_wrap .box .ttl.ja {
  font-size: 2.6rem; } }
#footer .menu_bg .flex .flex_right .menu_wrap .box .ttl a {
 color: #fff; }
#footer .menu_bg .flex .flex_right .menu_wrap .box .ttl i {
 vertical-align: .2em;
 margin-left: .3em; }
#footer .menu_bg .flex .flex_right .menu_wrap .box .ttl i img {
 width: .8em; }
@media screen and (max-width: 767px) {
 #footer .menu_bg .flex .flex_right .menu_wrap .box .ttl {
  font-size: 2.2rem;
  position: relative;
  padding-left: 1em;
  margin-bottom: .8em; }
 #footer .menu_bg .flex .flex_right .menu_wrap .box .ttl::before {
  content: '';
  position: absolute;
  left: 0;
  top: .65em;
  width: .6em;
  height: 1px;
  background: #fff; }
 #footer .menu_bg .flex .flex_right .menu_wrap .box .ttl + .menu {
  padding-left: 2.6rem; }
 #footer .menu_bg .flex .flex_right .menu_wrap .box .ttl.recruit {
  padding-left: 0; }
 #footer .menu_bg .flex .flex_right .menu_wrap .box .ttl.recruit::before {
  display: none; } }
#footer .menu_bg .flex .flex_right .menu_wrap .box .menu li {
 font-size: 1.6rem;
 line-height: 1.4; }
#footer .menu_bg .flex .flex_right .menu_wrap .box .menu li + li {
 margin-top: .5em; }
@media screen and (max-width: 767px) {
 #footer .menu_bg .flex .flex_right .menu_wrap .box .menu li + li {
  margin-top: 1em; } }
#footer .menu_bg .flex .flex_right .menu_wrap .box .menu li a {
 color: #fff; }
#footer .menu_bg .flex .flex_right .menu_wrap .box .menu li a::before {
 content: '';
 background: url(../img/common/ico_nav.svg) no-repeat center/contain;
 width: .6em;
 height: .6em;
 display: inline-block;
 vertical-align: .1em;
 margin-right: .5em;
 display: none; }
#footer .menu_bg .flex .flex_right .menu_wrap .box .menu li a i {
 vertical-align: .2em;
 margin-left: .3em; }
#footer .menu_bg .flex .flex_right .menu_wrap .box .menu li a i img {
 width: .8em; }
#footer .menu_bg .flex .flex_right .menu_wrap + .menu_wrap {
 margin-top: 4rem;
 padding-top: 4rem;
 border-top: 1px solid #555; }
#footer .copy_bg {
 background: url(../img/common/footer_bg2.png);
 text-align: center; }
#footer .copy_bg .menu {
 padding: 2rem 0; }
@media screen and (max-width: 767px) {
 #footer .copy_bg .menu {
  padding: 1rem 0; } }
#footer .copy_bg .menu li {
 display: inline-block;
 font-size: 1.5rem;
 line-height: 1;
 position: relative; }
@media screen and (max-width: 767px) {
 #footer .copy_bg .menu li {
  margin: .5em 0; } }
#footer .copy_bg .menu li + li {
 margin-left: 1em;
 padding-left: 1em;
 border-left: 1px solid #fff; }
@media screen and (max-width: 767px) {
 #footer .copy_bg .menu li + li {
  padding-left: 0;
  border-left: none; } }
#footer .copy_bg .menu li a {
 color: #fff; }
#footer .copy_bg .menu li a::before {
 content: '';
 background: url(../img/common/ico_nav.svg) no-repeat center/contain;
 width: .6em;
 height: .6em;
 display: inline-block;
 vertical-align: .1em;
 margin-right: .5em;
 display: none; }
#footer .copy_bg .copy {
 border-top: 1px solid #333; }
#footer .copy_bg .copy p {
 padding: 1rem 0;
 font-size: 1.2rem;
 line-height: 1.2; }

/* ------------------------------
		column
------------------------------ */
@media (min-width: 769px) {
 .col {
  display: flex;
  justify-content: space-between; }
 .col:first-child {
  margin-top: 0; }
 .col > * {
  margin: 0 -1px 0 3rem;
  flex: 1; }
 .col:not(.reverse) > *:first-child {
  margin-left: 0 !important; }
 .col > * > *:first-child {
  margin-top: 0; }
 .col.reverse > *:first-child {
  order: 2; }
 .col.reverse > *:last-child {
  margin-left: 0 !important; }
 .imgCol {
  display: flex;
  justify-content: space-between; }
 .imgCol:first-child {
  margin-top: 0; }
 .imgCol_i {
  flex: 0 0 auto; }
 .imgCol_t {
  flex: 1; }
 .imgCol > * {
  margin: 0 -1px 0 3rem; }
 .imgCol:not(.reverse) > *:first-child {
  margin-left: 0 !important; }
 .imgCol > * > *:first-child {
  margin-top: 0; }
 .imgCol.reverse > *:first-child {
  order: 2; }
 .imgCol.reverse > *:last-child {
  margin-left: 0 !important; }
 .col_border > * + * {
  padding-left: 3rem;
  border-left: 1px dotted #000; } }

@media (max-width: 768px) {
 .col > *,
 .imgCol > * {
  margin-top: 5vw; }
 .col:first-child > *:first-child,
 .imgCol:first-child > *:first-child {
  margin-top: 0; }
 .col_sp {
  display: flex;
  justify-content: space-between; }
 .col_sp:first-child {
  margin-top: 0; }
 .col_sp > * {
  margin-top: 0;
  margin-left: 3vw;
  flex: 1; }
 .col_sp > *:first-child {
  margin-left: 0 !important; }
 .col_sp > * > *:first-child {
  margin-top: 0; }
 .imgCol_sp {
  display: flex;
  justify-content: space-between; }
 .imgCol_sp:first-child {
  margin-top: 0; }
 .imgCol_i {
  flex: 0 0 auto; }
 .imgCol_t {
  flex: 1; }
 .imgCol_sp > * {
  margin-top: 0;
  margin-left: 3vw; }
 .imgCol_sp > *:first-child {
  margin-left: 0 !important; }
 .imgCol_sp > * > *:first-child {
  margin-top: 0; }
 .col_border > * + * {
  padding-top: 3rem;
  border-top: 1px dotted #000; } }

@media (min-width: 769px) {
 .grid_2,
 .grid_3,
 .grid_4,
 .grid_5 {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap; }
 .grid_2:first-child,
 .grid_3:first-child,
 .grid_4:first-child,
 .grid_5:first-child {
  margin-top: 0; }
 .grid_2 > *,
 .grid_3 > *,
 .grid_4 > *,
 .grid_5 > * {
  margin: 0 -1px 0 3rem; }
 .grid_2 > * {
  width: calc( (100% - 3rem) / 2); }
 .grid_3 > * {
  width: calc( (100% - 3rem * 2) / 3); }
 .grid_4 > * {
  width: calc( (100% - 3rem * 3) / 4); }
 .grid_5 > * {
  width: calc( (100% - 3rem * 4) / 5); }
 .grid_2 > *:nth-child(2n + 1),
 .grid_3 > *:nth-child(3n + 1),
 .grid_4 > *:nth-child(4n + 1),
 .grid_5 > *:nth-child(5n + 1) {
  margin-left: 0 !important;
  border-left: none !important; }
 .grid_2 > *:nth-child(n + 3),
 .grid_3 > *:nth-child(n + 4),
 .grid_4 > *:nth-child(n + 5),
 .grid_5 > *:nth-child(n + 6) {
  margin-top: 3rem; }
 .grid_2 > * > *:first-child,
 .grid_3 > * > *:first-child,
 .grid_4 > * > *:first-child,
 .grid_5 > * > *:first-child {
  margin-top: 0; }
 .grid_border {
  margin-left: -3rem; }
 .grid_border > * {
  padding-left: 3rem;
  border-left: 1px dotted #000; } }

@media (max-width: 768px) {
 .grid_2 > *,
 .grid_3 > *,
 .grid_4 > *,
 .grid_5 > * {
  margin-top: 5vw; }
 .grid_2:first-child > *:first-child,
 .grid_3:first-child > *:first-child,
 .grid_4:first-child > *:first-child,
 .grid_5:first-child > *:first-child {
  margin-top: 0; }
 .grid_sp_2,
 .grid_sp_3,
 .grid_sp_4 {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap; }
 .grid_2:first-child,
 .grid_3:first-child,
 .grid_4:first-child {
  margin-top: 0; }
 .grid_sp_2 > *,
 .grid_sp_3 > *,
 .grid_sp_4 > * {
  margin-left: 3vw;
  margin-top: 0; }
 .grid_sp_2 > * {
  width: calc( (100% - 3vw) / 2); }
 .grid_sp_3 > * {
  width: calc( (100% - 3vw * 2) / 3); }
 .grid_sp_4 > * {
  width: calc( (100% - 3vw * 3) / 4); }
 .grid_sp_2 > *:nth-child(2n + 1),
 .grid_sp_3 > *:nth-child(3n + 1),
 .grid_sp_4 > *:nth-child(4n + 1) {
  margin-left: 0 !important; }
 .grid_sp_2 > *:nth-child(n + 3),
 .grid_sp_3 > *:nth-child(n + 4),
 .grid_sp_4 > *:nth-child(n + 5) {
  margin-top: 5vw; }
 .grid_border > * + * {
  padding-top: 3rem;
  border-top: 1px dotted #000; } }

/* ------------------------------
    common
------------------------------ */
/* font-size */
.fz10 {
 font-size: 1.0rem; }

.fz12 {
 font-size: 1.2rem; }

.fz14 {
 font-size: 1.4rem; }

.fz15 {
 font-size: 1.5rem; }

.fz16 {
 font-size: 1.6rem; }

.fz18 {
 font-size: 1.8rem; }

.fz20 {
 font-size: 2.0rem; }

@media screen and (max-width: 767px) {
 .fz_sp_10 {
  font-size: 1.0rem; }
 .fz_sp_12 {
  font-size: 1.2rem; }
 .fz_sp_14 {
  font-size: 1.4rem; }
 .fz_sp_15 {
  font-size: 1.5rem; }
 .fz_sp_16 {
  font-size: 1.6rem; }
 .fz_sp_18 {
  font-size: 1.8rem; }
 .fz_sp_20 {
  font-size: 2.0rem; } }

/* margin-top */
.mt10 {
 margin-top: 1rem; }

.mt20 {
 margin-top: 2rem; }

.mt30 {
 margin-top: 3rem; }

.mt40 {
 margin-top: 4rem; }

.mt50 {
 margin-top: 5rem; }

.mt60 {
 margin-top: 6rem; }

.mt80 {
 margin-top: 8rem; }

.mt100 {
 margin-top: 10rem; }

.mt120 {
 margin-top: 12rem; }

.mt140 {
 margin-top: 14rem; }

@media screen and (max-width: 767px) {
 .mt_sp_10 {
  margin-top: 1rem; }
 .mt_sp_20 {
  margin-top: 2rem; }
 .mt_sp_30 {
  margin-top: 3rem; }
 .mt_sp_40 {
  margin-top: 4rem; }
 .mt_sp_50 {
  margin-top: 5rem; }
 .mt_sp_60 {
  margin-top: 6rem; }
 .mt_sp_80 {
  margin-top: 8rem; }
 .mt_sp_100 {
  margin-top: 10rem; }
 .mt_sp_120 {
  margin-top: 12rem; }
 .mt_sp_140 {
  margin-top: 14rem; } }

/* bg */
.bg_logo {
 padding-bottom: 25em;
 position: relative; }
@media screen and (max-width: 767px) {
 .bg_logo {
  padding-bottom: 10em; } }
.bg_logo::before, .bg_logo::after {
 z-index: -1; }
.bg_logo::before {
 content: '';
 background: url(../img/common/main_bg.png) repeat-y top center/100% auto;
 width: 100%;
 height: calc( 100% - 40vw);
 position: absolute;
 top: 40vw;
 left: 0; }
.bg_logo::after {
 content: '';
 background: url(../img/common/main_bg_top.png) no-repeat bottom center/100% auto;
 width: 100%;
 height: 40vw;
 position: absolute;
 top: 0;
 left: 0; }
@media screen and (max-width: 767px) {
 .bg_logo::before, .bg_logo::after {
  background-size: 150% auto; }
 .bg_logo::before {
  top: 50vw; }
 .bg_logo::after {
  height: 50vw; } }

/* breadcrumbs */
#breadcrumbs {
 background: url(../img/common/breadcrumbs.png) no-repeat center/cover;
 position: relative;
 overflow: hidden;
 margin-bottom: 6rem; }
#breadcrumbs::before {
 content: '';
 position: absolute;
 left: 50%;
 margin-left: 300px;
 background: rgba(255, 255, 255, 0.2);
 width: 300px;
 height: 100%;
 transform: skew(-60deg); }
#breadcrumbs ul {
 padding: 1em 0; }
#breadcrumbs ul li {
 /* font-family: 'Noto Serif', serif; */
 color: #fff;
 font-size: 1.6rem;
 line-height: 1.4;
 display: inline-block;
 position: relative; }
#breadcrumbs ul li + li {
 margin-left: 2em; }
#breadcrumbs ul li + li::before {
 content: '>';
 position: absolute;
 left: -1.3em;
 top: 50%;
 transform: translateY(-50%); }
#breadcrumbs ul li a {
 color: #fff; }

/* ttl */
.page_ttl {
 margin-bottom: 4rem; }
.page_ttl span {
 /* font-family: 'Noto Serif', serif; */
 font-size: 4.6rem;
 line-height: 1.4;
 font-weight: bold;
 display: inline-block;
 padding-right: 1em;
 background: url(../img/common/page_ttl.svg) no-repeat right 0 top 0.45em/0.6em auto; }
@media screen and (max-width: 767px) {
 .page_ttl {
  max-width: 90vw; }
 .page_ttl span {
  font-size: 3.2rem;
  background-position: right 0 top .35em; } }

.mobile .page_ttl span {
 background-position: right 0 center; }

.ttl_l {
 /* font-family: 'Noto Serif', serif; */
 font-size: 3.0rem;
 line-height: 1.4;
 font-weight: bold;
 padding-left: 8rem;
 margin: 1em 0;
 position: relative; }
.ttl_l::before {
 content: '';
 width: 7rem;
 height: 2px;
 background: #8e1413;
 position: absolute;
 left: 0;
 top: .7em; }
.ttl_l:first-child {
 margin-top: 0; }
@media screen and (max-width: 767px) {
 .ttl_l {
  max-width: 80vw;
  font-size: 2.6rem;
  padding-left: 0;
  padding-bottom: .5em; }
 .ttl_l::before {
  width: 20vw;
  height: 3px;
  top: 100%; } }

.ttl_m {
 font-size: 2.2rem;
 line-height: 1.4;
 font-weight: bold;
 padding-left: 1em;
 margin: 1em 0;
 position: relative; }
.ttl_m::before {
 content: '';
 position: absolute;
 left: 0;
 top: .2em;
 height: 1em;
 width: 10px;
 border-left: 6px solid #000;
 border-right: 2px solid #000; }
.ttl_m:first-child {
 margin-top: 0; }

.ttl_s {
 font-size: 2.0rem;
 line-height: 1.4;
 font-weight: bold;
 margin: 1em 0; }
.ttl_s:first-child {
 margin-top: 0; }

.hr {
 display: block;
 margin: 5rem 0;
 border: none;
 border-top: 1px dotted #ccc; }

.red {
 color: #8e1413; }

/* button */
.ico_arrow {
 position: relative;
 padding-right: 3em; }
.ico_arrow::before {
 content: '';
 background: url(../img/common/ico_arrow.svg) no-repeat center/contain;
 position: absolute;
 right: 0;
 top: 50%;
 transform: translateY(-50%);
 width: 3em;
 height: 2em; }
@media screen and (min-width: 768px) {
 .ico_arrow::before {
  transition: right .3s ease; } }
.ico_arrow.white::before {
 background-image: url(../img/common/ico_arrow_w.svg); }
@media screen and (min-width: 768px) {
 .ico_arrow:hover::before {
  right: -.5em; } }
.ico_arrow.hover-white:hover::before {
 background-image: url(../img/common/ico_arrow_w.svg); }
.ico_arrow.hover-red:hover::before {
 background-image: url(../img/common/ico_arrow.svg); }

.btn_arrow {
 text-align: center; }
.btn_arrow > * {
 display: inline-flex;
 justify-content: center;
 align-items: center;
 text-align: center;
 background: #fff;
 color: #8a0b0a;
 border: 1px solid #8a0b0a;
 padding: .5em 1em .5em 3em;
 font-size: 2.0rem;
 transition: color .3s ease, background-color .3s ease; }
@media screen and (max-width: 767px) {
 .btn_arrow > * {
  width: 80vw;
  max-width: 100%; } }
.btn_arrow > * span {
 display: inline-block;
 padding-right: 3em;
 position: relative; }
.btn_arrow > * span img {
 height: .8em;
 width: auto;
 vertical-align: -.02em; }
.btn_arrow > * span::before {
 content: '';
 background: url(../img/common/ico_arrow.svg) no-repeat center/contain;
 position: absolute;
 right: 0;
 top: 50%;
 transform: translateY(-50%);
 width: 2em;
 height: 2em; }
@media screen and (min-width: 768px) {
 .btn_arrow > * span::before {
  transition: right .3s ease; } }
.btn_arrow > *:hover {
 opacity: 1;
 color: #fff;
 background: #8a0b0a; }
.btn_arrow > *:hover span img {
 fill: #fff; }
.btn_arrow > *:hover span img svg {
 fill: #fff; }
.btn_arrow > *:hover span::before {
 background-image: url(../img/common/ico_arrow_w.svg); }
@media screen and (min-width: 768px) {
 .btn_arrow > *:hover span::before {
  right: -.5em; } }
.btn_arrow.long > * {
 display: flex; }
.btn_arrow.reverse > * {
 padding-left: 1em;
 padding-right: 3em; }
.btn_arrow.reverse > * span {
 padding-right: 0;
 padding-left: 3em; }
.btn_arrow.reverse > * span::before {
 left: 0;
 transition: left .3s ease;
 transform: translateY(-50%) scale(-1, 1); }
.btn_arrow.reverse > *:hover span::before, .btn_arrow.reverse > *:hover span::after {
 left: -.5em; }
.btn_arrow.reverse > *:hover span::after {
 border-color: transparent #fff transparent transparent; }
.btn_arrow.red > * {
 color: #fff;
 background: #8e1413;
 border-color: #8e1413; }
.btn_arrow.red > * span::before {
 background-image: url(../img/common/ico_arrow_w.svg); }
.btn_arrow.red > *:hover {
 opacity: 1;
 background: #bb3130; }
.btn_arrow.white_border > * {
 color: #fff;
 background: transparent;
 border-color: #fff; }
.btn_arrow.white_border > * span::before {
 background-image: url(../img/common/ico_arrow_w.svg); }
.btn_arrow.tal {
 text-align: left; }
@media screen and (max-width: 767px) {
 .btn_arrow.tal {
  text-align: center; } }
.btn_arrow.tar {
 text-align: right; }
@media screen and (max-width: 767px) {
 .btn_arrow.tar {
  text-align: center; } }

a.arrow {
 color: #8e1413;
 display: inline-block;
 border-bottom: 1px solid transparent; }
a.arrow::before {
 content: '';
 background: url(../img/common/ico_link.svg) no-repeat center/contain;
 width: .6em;
 height: .6em;
 display: inline-block;
 vertical-align: .1em;
 margin-right: .5em; }
a.arrow:hover {
 opacity: 1;
 border-bottom-color: #8e1413; }
a.arrow[target='_blank']::after {
 content: '';
 background: url(../img/common/ico_blank.svg) no-repeat center/contain;
 display: inline-block;
 width: 1em;
 height: .8em;
 margin-left: .3em; }

a.pdf::after, a.pdf[target='_blank']::after {
 content: '';
 background: url(../img/common/ico_pdf.svg) no-repeat center/contain;
 display: inline-block;
 width: 2em;
 height: 1em;
 vertical-align: -.1em;
 margin-left: .3em; }

a.red {
 border-bottom: 1px solid transparent; }
a.red:hover {
 opacity: 1;
 border-bottom-color: #8e1413; }

.btn_red, .btn_white {
 margin: 1em 0; }
@media screen and (max-width: 767px) {
 .btn_red, .btn_white {
  text-align: center; } }
.btn_red > *, .btn_white > * {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 min-width: 19rem;
 padding: .8em 3em;
 border: 1px solid #8e1413;
 background: #8e1413;
 color: #fff;
 font-size: 1.6rem;
 line-height: 1.2;
 text-align: center;
 transition: background-color .3s ease; }
@media screen and (max-width: 767px) {
 .btn_red > *, .btn_white > * {
  font-size: 2.0rem;
  width: 80vw;
  max-width: 100%; } }
.btn_red > *:hover, .btn_white > *:hover {
 opacity: 1;
 background: #bb3130; }
.btn_red.blank > *, .btn_white.blank > * {
 padding-right: 4em;
 position: relative; }
.btn_red.blank > *::after, .btn_white.blank > *::after {
 content: '';
 background: url(../img/common/ico_blank_w.svg) no-repeat center/contain;
 width: 1em;
 height: .8em;
 position: absolute;
 right: 1em;
 top: 50%;
 transform: translateY(-50%); }

.btn_white > * {
 background: #fff;
 color: #8e1413; }
.btn_white > *:hover {
 background: #8e1413;
 color: #fff; }

/* pager */
.pager {
 margin: 6rem auto;
 display: flex;
 align-items: center;
 justify-content: center;
 flex-wrap: wrap; }
.pager li {
 font-size: 1.5rem;
 line-height: 1.4;
 margin: .2em; }
@media screen and (max-width: 767px) {
 .pager li {
  font-size: 2.0rem; } }
.pager li * {
 width: 2em;
 height: 2em;
 border-radius: 100%;
 display: flex;
 align-items: center;
 justify-content: center; }
.pager li a:hover {
 background: #8a0b0a;
 color: #fff;
 opacity: 1; }
.pager li span {
 background: #32393c;
 color: #fff; }
.pager .prev, .pager .next {
 margin: .2em .5em; }
.pager .prev a, .pager .next a {
 display: block;
 overflow: hidden;
 text-indent: -1000px;
 background: url(../img/news/list/pager_arrow.svg) no-repeat center/contain;
 width: 1em;
 height: 2em; }
.pager .prev a:hover, .pager .next a:hover {
 background: url(../img/news/list/pager_arrow.svg) no-repeat center/contain;
 opacity: .6; }
.pager .prev a {
 transform: scale(-1, 1); }

/* ul,ol */
.ul,
.ol {
 margin: 3rem 0;
 counter-reset: item; }
.ul li,
.ol li {
 line-height: 1.6;
 padding-left: 1.5em;
 position: relative;
 margin: .5em 0; }

.ul li::before {
 content: '';
 position: absolute;
 left: 0;
 top: .5em;
 width: .5em;
 height: .5em;
 border-radius: 100%;
 background: #666; }

.ol li::before {
 counter-increment: item;
 content: counter(item) ".";
 position: absolute;
 left: 0;
 top: 0;
 color: #000; }

/* tab */
.tabs {
 display: flex;
 flex-wrap: wrap; }
.tabs .tab_item {
 flex: 1;
 max-width: calc( ( 100% - 4.5% ) / 4);
 background-color: #eeeeee;
 border: 1px solid #eeeeee;
 font-size: 1.8rem;
 line-height: 1.4;
 text-align: center;
 color: #8e1413;
 font-weight: bold;
 padding: 1.5em;
 margin-right: 1.5%;
 transition: all 0.3s ease; }
.tabs .tab_item:last-of-type {
 margin-right: 0; }
.tabs .tab_item:hover {
 background: #fff;
 border-color: #8e1413;
 cursor: pointer; }
@media screen and (max-width: 767px) {
 .tabs .tab_item {
  max-width: 25%;
  margin: 0;
  font-size: 1.4rem;
  background: #fff;
  border-color: #8e1413;
  cursor: pointer; }
 .tabs .tab_item:nth-child(n+3) {
  border-left: none; } }
.tabs input[name="tab_item"] {
 display: none; }
.tabs input[name="tab_item"]:checked + .tab_item {
 background-color: #8e1413;
 color: #fff;
 border-color: #8e1413; }
.tabs .tab_content {
 border-top: 4px solid #8e1413;
 background: rgba(255, 255, 255, 0.7);
 flex-basis: 100%;
 display: none;
 margin-top: -1px;
 padding: 6rem 0;
 clear: both;
 overflow: hidden; }
.tabs #tab01:checked ~ #tab01_content,
.tabs #tab02:checked ~ #tab02_content,
.tabs #tab03:checked ~ #tab03_content,
.tabs #tab04:checked ~ #tab04_content,
.tabs #tab05:checked ~ #tab05_content {
 display: block; }

/* table */
.table {
 width: 100%;
 border-collapse: collapse;
 margin: 3rem 0; }
.table > tbody > tr > th, .table > tbody > tr > td, .table > thead > tr > th, .table > thead > tr > td {
 padding: 3rem;
 font-size: 1.6rem;
 line-height: 1.8;
 border-bottom: 1px solid #ccc; }
.table > tbody > tr > th, .table > thead > tr > th {
 font-weight: bold;
 border-bottom-color: #333;
 text-align: left;
 vertical-align: top; }
.table > tbody > tr .none-padding, .table > thead > tr .none-padding {
 padding: 0; }
.table > thead > tr > th, .table > thead > tr > td {
 text-align: center;
 vertical-align: middle; }
.table > tbody > tr > th {
 vertical-align: top;
 padding-left: 4em; }
@media screen and (max-width: 767px) {
 .table {
  border-top: 1px solid #ccc; }
 .table > tbody, .table > thead {
  display: block; }
 .table > tbody > tr, .table > thead > tr {
  display: block; }
 .table > tbody > tr > th, .table > tbody > tr > td, .table > thead > tr > th, .table > thead > tr > td {
  width: 100% !important;
  display: block;
  padding: 1em; }
 .table > tbody > tr > th, .table > thead > tr > th {
  border-bottom: none;
  padding-bottom: 0;
  font-size: 2.0rem; }
 .table > tbody > tr > th {
  width: 100%;
  padding-left: 1em; }
 .table dt {
  font-weight: bold; } }

table.sp-block > tbody, table.sp-block > thead {
 display: block; }
table.sp-block > tbody > tr, table.sp-block > thead > tr {
 display: block; }
table.sp-block > tbody > tr > th, table.sp-block > tbody > tr > td, table.sp-block > thead > tr > th, table.sp-block > thead > tr > td {
 display: block; }

.table2 {
 width: 100%;
 border-collapse: collapse; }
.table2 > tbody > tr > th, .table2 > tbody > tr > td, .table2 > thead > tr > th, .table2 > thead > tr > td {
 padding: 3rem;
 font-size: 1.6rem;
 line-height: 1.8;
 border-bottom: 1px solid #ccc; }
.table2 > tbody > tr > th, .table2 > thead > tr > th {
 padding-right: 0;
 white-space: nowrap;
 text-align: left;
 vertical-align: top; }
.table2 > tbody > tr:last-child > th, .table2 > tbody > tr:last-child > td, .table2 > thead > tr:last-child > th, .table2 > thead > tr:last-child > td {
 border-bottom: none; }
@media screen and (max-width: 767px) {
 .table2 > tbody > tr > th, .table2 > tbody > tr > td, .table2 > thead > tr > th, .table2 > thead > tr > td {
  border-bottom: none;
  padding-bottom: 0; }
 .table2 > tbody > tr:last-child > th, .table2 > tbody > tr:last-child > td, .table2 > thead > tr:last-child > th, .table2 > thead > tr:last-child > td {
  padding-bottom: 3rem; } }

/* accordion */
.acd_btn {
 background: #32393c;
 color: #fff;
 font-size: 2.8rem;
 line-height: 1.4;
 font-weight: bold;
 padding: .8em 6em 1em 3em;
 margin-top: 3rem;
 position: relative; }
.acd_btn::before {
 content: '';
 background: url(../img/common/acd_btn.svg) no-repeat center/contain;
 position: absolute;
 right: 2em;
 top: 50%;
 transform: translateY(-50%);
 width: 1em;
 height: 1em; }
.acd_btn:hover, .acd_btn.acd-open {
 background: #3d4549;
 cursor: pointer; }
.acd_btn.acd-open::before {
 transform: translateY(-50%) scale(1, -1); }
.acd_btn .small {
 font-size: 2.0rem; }
@media screen and (max-width: 767px) {
 .acd_btn {
  font-size: 2.4rem;
  padding-left: 1em;
  padding-right: 4em; }
 .acd_btn::before {
  right: 1em; } }

.acd_box {
 background: rgba(50, 57, 60, 0.1);
 padding: 4rem 5rem; }
@media screen and (max-width: 767px) {
 .acd_box {
  padding: 2rem; } }

/* form */
.form dl {
 display: flex;
 flex-wrap: wrap; }
.form dl dt, .form dl dd {
 font-size: 1.6rem;
 font-weight: bold;
 position: relative; }
.form dl dt {
 width: 35%;
 padding: 2.2rem 0; }
.form dl dt.required::after {
 content: '必須';
 background: #ff0000;
 color: #fff;
 line-height: 1;
 padding: .4em 1em;
 position: absolute;
 right: 3rem;
 top: 2.2rem; }
@media screen and (max-width: 767px) {
 .form dl dt {
  padding-bottom: 0; }
 .form dl dt.required::after {
  right: 0; } }
.form dl dd {
 width: 65%;
 padding: 1.5rem 0; }
@media screen and (max-width: 767px) {
 .form dl {
  display: block; }
 .form dl dt, .form dl dd {
  width: 100%;
  font-size: 2.0rem; } }

.form *::placeholder {
 color: #a6a6a6; }

.form label {
 display: inline-block;
 margin: .2em 0; }

.form input:not([type='submit']):not([type='reset']),
.form textarea,
.form select {
 font-size: 1.6rem;
 padding: 0 2em;
 background: #fff;
 border: 1px solid #ccc; }
.form input:not([type='submit']):not([type='reset']):focus, .form input:not([type='submit']):not([type='reset']):hover,
.form textarea:focus,
.form textarea:hover,
.form select:focus,
.form select:hover {
 border-color: #000; }
@media screen and (max-width: 767px) {
 .form input:not([type='submit']):not([type='reset']),
 .form textarea,
 .form select {
  padding: 0 .5em; } }

.form textarea {
 line-height: 1.8em;
 padding: 1em;
 width: 100%; }

.form input:not([type='submit']):not([type='reset']),
.form select {
 line-height: 3em;
 height: 3em; }

.form input:not([type='submit']):not([type='reset']) {
 width: 100%; }
.form input:not([type='submit']):not([type='reset']).error {
 border-color: #8e1413;
 background: rgba(142, 20, 19, 0.2); }
.form input:not([type='submit']):not([type='reset']).error + span {
 font-size: 1.2rem;
 color: #8e1413; }

.form .select {
 display: inline-block;
 position: relative; }
.form .select::after {
 content: '';
 position: absolute;
 right: 1em;
 top: 50%;
 transform: translateY(-50%);
 width: 0;
 height: 0;
 border-style: solid;
 border-width: 10px 5px 0 5px;
 border-color: #000 transparent transparent transparent; }
.form .select select {
 padding-right: 2.5em;
 vertical-align: middle; }
@media screen and (max-width: 767px) {
 .form .select {
  margin-left: 3rem; } }

.form input[type='radio'],
.form input[type='checkbox'] {
 display: none; }
.form input[type='radio'] + label,
.form input[type='checkbox'] + label {
 position: relative;
 padding-left: 1.8em; }
.form input[type='radio'] + label:hover::after,
.form input[type='checkbox'] + label:hover::after {
 background: black; }
.form input[type='radio'] + label::before,
.form input[type='radio'] + label::after,
.form input[type='checkbox'] + label::before,
.form input[type='checkbox'] + label::after {
 content: '';
 display: block;
 position: absolute;
 left: 0;
 top: .2em;
 width: 1.4em;
 height: 1.4em;
 border-radius: 100%;
 border: 1px solid #ccc;
 background: #fff;
 margin-right: .3em; }
.form input[type='radio'] + label::after,
.form input[type='checkbox'] + label::after {
 width: .8em;
 height: .8em;
 margin: .3em 0 0 .3em;
 background: #ccc;
 border: none; }
.form input[type='radio']:checked + label::after,
.form input[type='checkbox']:checked + label::after {
 background: #8e1413; }

.form input[type='checkbox'] + label::before {
 border-radius: 0; }

.form input[type='checkbox']:checked + label::after {
 width: 1em;
 height: .6em;
 margin: .2em 0 0 .2em;
 border-bottom: 3px solid #000;
 border-left: 3px solid #000;
 transform: rotate(-45deg);
 border-radius: 0;
 background: transparent; }

.form .submit input {
 background: #8e1413 url(../img/common/ico_arrow_w.svg) no-repeat right 1em center/1.5em auto;
 cursor: pointer; }
@media screen and (min-width: 768px) {
 .form .submit input {
  transition: background-position .3s ease; } }
.form .submit input:hover {
 background-position: right .5em center; }

/* page_nav */
.page_nav {
 display: flex;
 justify-content: flex-start;
 flex-wrap: wrap; }
@media screen and (max-width: 767px) {
 .page_nav {
  display: block; } }
.page_nav .item {
 width: 46%;
 margin-left: 8%; }
.page_nav .item:nth-child(2n+1) {
 margin-left: 0; }
.page_nav .item:nth-child(n+3) {
 margin-top: 5rem; }
.page_nav .item a {
 display: block;
 background: #fff;
 border: 1px solid #8e1413;
 border-left-width: 5px;
 position: relative;
 padding-top: 3rem; }
@media screen and (max-width: 767px) {
 .page_nav .item a {
  border-left-width: 1px; } }
.page_nav .item a:hover {
 opacity: 1;
 box-shadow: 0 0 20px rgba(0, 0, 0, 0.5); }
.page_nav .item a:hover::before {
 content: '';
 position: absolute;
 left: 0;
 top: 0;
 width: 100%;
 height: 100%;
 border: 8px solid #8e1413;
 border-left-width: 3px;
 z-index: 10; }
@media screen and (max-width: 767px) {
 .page_nav .item a:hover::before {
  border-width: 5px; } }
.page_nav .item a:hover .txt::before {
 margin-right: -1rem; }
.page_nav .item a > * {
 padding: 0 6rem; }
@media screen and (max-width: 767px) {
 .page_nav .item a > * {
  padding: 0 2rem; } }
.page_nav .item a .ttl, .page_nav .item a .sttl {
 /* font-family: 'Noto Serif', serif; */ }
.page_nav .item a .ttl {
 color: #8e1413;
 font-size: 3.2rem;
 line-height: 1.4;
 font-weight: bold;
 position: relative; }
.page_nav .item a .ttl::before {
 content: '';
 position: absolute;
 left: 0;
 top: .7em;
 width: 5rem;
 height: 1px;
 background: #8e1413; }
@media screen and (max-width: 767px) {
 .page_nav .item a .ttl::before {
  display: none; } }
.page_nav .item a .sttl {
 font-size: 2.0rem;
 line-height: 1.4; }
.page_nav .item a .txt {
 border-top: 1px dotted #ccc;
 display: flex;
 align-items: center;
 justify-content: flex-start;
 font-size: 1.6rem;
 line-height: 1.4;
 padding-top: 2rem;
 padding-bottom: 2rem;
 margin-top: 4rem;
 position: relative; }
.page_nav .item a .txt::before {
 content: '';
 background: url(../img/common/ico_arrow.svg) no-repeat center/contain;
 position: absolute;
 right: 3rem;
 top: 50%;
 transform: translateY(-50%);
 width: 4rem;
 height: 4rem;
 transition: margin .3s ease; }
@media screen and (max-width: 767px) {
 .page_nav .item a .txt {
  border-top: 1px solid #8e1413;
  height: 8rem;
  padding-right: 9rem;
  margin-top: 3rem; }
 .page_nav .item a .txt::before {
  content: '';
  background: #8e1413 url(../img/common/ico_arrow_w.svg) no-repeat center/40% auto;
  right: 0;
  width: 8rem;
  height: 100%; } }
@media screen and (max-width: 767px) {
 .page_nav .item {
  width: 100%;
  margin-left: 0; }
 .page_nav .item:nth-child(n+2) {
  margin-top: 3rem; } }

/* ------------------------------
    responsive
------------------------------ */
@media screen and (min-width: 960px) {
 .pc-none {
  display: none !important; }
 .sp {
  display: none !important; }
 .tb {
  display: none !important; } }

@media screen and (min-width: 768px) and (max-width: 959px) {
 .tb-none {
  display: none !important; }
 .sp {
  display: none !important; }
 .pc {
  display: none !important; } }

@media screen and (max-width: 767px) {
 .sp-none {
  display: none !important; }
 .pc {
  display: none !important; }
 .tb {
  display: none !important; } }

/* ------------------------------
    clearfix
------------------------------ */
.cf {
 zoom: 1; }
.cf::after {
 content: " ";
 display: block;
 height: 0;
 clear: both;
 visibility: hidden;
 overflow: hidden;
 /* 隙間対応 */
 font-size: 0.1em;
 /* 隙間対応 */
 line-height: 0;
 /* 隙間対応 */ }

/* ------------------------------
    cokkie-notice
------------------------------ */
#cookie-notice{
  font-size: 1.6rem;
  line-height: 1.8;
  background: rgba(0,0,0,0.7) !important;
}
#cookie-notice .cookie-notice-container{
  max-width: 1020px;
  width: 75%;
  margin: auto;
  padding-left: 0;
  padding-right: 0;
}
#cookie-notice .cn-text-container{
  text-align: left;
}
#cookie-notice .cn-button.bootstrap{
  width: 25rem;
  margin-left: 0;
  font-size: 1.6rem;
  color: #8e1413;
  background-color: #fff;
}
#cookie-notice .cn-button.bootstrap + .cn-button.bootstrap{
  margin-left: 15rem;
}
#cookie-notice .cn-close-icon{
  top: 25px;
  right: 50px;
  width: 30px;
  height: 30px;
  opacity: 1;
}
#cookie-notice .cn-close-icon:after, #cookie-notice .cn-close-icon:before{
  height: 30px;
  width: 5px;
}
#cookie-notice .cookie-notice-container .cn-text-container a{
  text-decoration: underline;
  font-weight: bold;
  color: #fff;
}
@media screen and (max-width: 767px) {
  #cookie-notice .cn-button.bootstrap{
    width: 16rem;
  }
  #cookie-notice .cn-button.bootstrap + .cn-button.bootstrap{
    margin-left: 3rem;
  }
  #cookie-notice .cn-close-icon{
    right: 5%;
    width: 20px;
    height: 20px;
  }
  #cookie-notice .cn-close-icon:after, #cookie-notice .cn-close-icon:before{
    height: 20px;
    width: 3px;
  }
}

/* 20200821 cokkie-notice modi */
