/* layout home
-------------------------------------------------- */

/* reset
========================================================================== */
body, h1, h2, h3, h4, div, p, ul, ol, li, dl, dt, dd,header, nav, section, main {
  margin: 0;
  padding: 0;
}

h1, h2 , h3, h4 {
  font-weight: normal;
}

header, nav, section, main {
  display: block;
}

input {
  vertical-align: middle;
}

ol, ul {
  list-style: none;
}

em {
  font-style: normal;
}

table {
  width: 100%;
  border-spacing: 0;
  border-collapse: collapse;
  table-layout: fixed;
}

table th,
table td {
  word-break: break-all;
}

img,
a img {
  border: none;
}

img {
  vertical-align: top;
  font-size: 0;
  line-height: 0;
}

:root * {
  box-sizing: border-box;
}

a {
  word-wrap: break-word;
  text-decoration: none;
  transition: 0.3s ease-in-out;
}

body{
  font-size: 12px;
  color: #000000;
  position: relative;
  min-width: 1280px;
}

/* home */
/* header
-------------------------------------------------- */
.header_v2.header_v2_home h1 {
  font-size: 11px;
  letter-spacing: 4.75px;
  position: fixed;
  left: 35px;
  top: 35px;
  z-index: 10;
}
.header_v2.header_v2_home h1 a {
  display: flex;
  align-items: center;
  color: #000000;
  transition: opacity 0.5s ease;
}
.header_v2.header_v2_home h1 a:hover {
  opacity: 0.5;
}
.header_v2.header_v2_home h1 a span {
  transition: color 0.5s ease;
}
.header_v2.header_v2_home h1 .txt:after {
  transition: background 0.5s ease;
}
.header_v2.header_v2_home h1 .logo svg,
.header_v2.header_v2_home h1 .txt svg {
  transition: fill 0.5s ease;
}
.header_v2.header_v2_home h1 .txt {
  padding: 0 20px;
  margin-right: 20px;
  position: relative;
}
.header_v2.header_v2_home h1 .txt:after {
  content: '';
  display: block;
  width: 1px;
  height: 9px;
  position: absolute;
  top: 50%;
  right: 0;
  margin-top: -4.5px;
  background: #000000;
}
.header_v2.header_v2_home h1 .txt svg {
  width: 212px;
  height: 8px;
}
.header_v2.header_v2_home h1 a span,
.header_v2.header_v2_home h1.background--light a span {
  color: #000000;
}
.header_v2.header_v2_home h1.background--dark a span {
  color: #ffffff;
}
.header_v2.header_v2_home h1 .txt:after,
.header_v2.header_v2_home h1.background--light .txt:after {
  background: #000000;
}
.header_v2.header_v2_home h1.background--dark .txt:after {
  background: #ffffff;
}
.header_v2.header_v2_home h1.background--light .logo svg,
.header_v2.header_v2_home h1.background--light .txt svg {
  fill: #000000;
}
.header_v2.header_v2_home h1.background--dark .logo svg,
.header_v2.header_v2_home h1.background--dark .txt svg {
  fill: #ffffff;
}
@media screen and (max-width: 1230px){
  .header_v2.header_v2_home h1 a {
    width: 275px;
    flex-wrap: wrap;
  }
  .header_v2.header_v2_home h1 .txt {
    padding-right: 0;
    margin-right: 0;
  }
  .header_v2.header_v2_home h1 .txt:after {
    display: none;
  }
  .header_v2.header_v2_home h1 span:nth-of-type(3) {
    margin-top: -6px;
    padding-left: 48px;
    width: 100%;
  }
}

/* footer
-------------------------------------------------- */
.footer_v2_home nav {
  background: #262626;
}
.footer_v2_home nav ul li a {
  color: #ffffff;
}
.footer_v2_home nav ul li span:after {
  background: #ffffff;
}

/* 読み込み時非表示 
-------------------------------------------------- */
.icon_scroll,
.nav_scroll {
  opacity: 0;
}

/* 検索設定
-------------------------------------------------- */
.hiddenForms {
  display: none;
}

/* kv_ttl
-------------------------------------------------- */
.kv_ttl {
  position: fixed;
  top: 47px;
  left: 0;
  width: 100%;
  padding: 0 500px;
  font-size: 0;
  display: none;
  text-align: center;
}
.kv_ttl a {
  display: inline-block;
  padding-bottom: 8px;
  font-size: 12px;
  color: #000;
  line-height: 1;
  letter-spacing: 6.5px;
  position: relative;
}
.kv_ttl a:after {
  content: '';
  display: block;
  width: 100%;
  height: 1px;
  background: #000;
  position: absolute;
  right: auto;
  left: 0;
  bottom: 0;
  transition: width .4s cubic-bezier(0.215, 0.61, 0.355, 1);
}
.kv_ttl a:hover:after {
  width: 0%;
  right: 0;
  left: auto;
}
.kv_ttl.background--light a {
  color: #000000;
}
.kv_ttl.background--light a:after {
  background: #000000;
}
.kv_ttl.background--dark a {
  color: #ffffff;
}
.kv_ttl.background--dark a:after {
  background: #ffffff;
}
@media screen and (max-width: 1230px){
  .kv_ttl {
    padding: 0 320px;
  }
}

/* box_search
-------------------------------------------------- */
.box_search {
  position: fixed;
  left: 50%;
  top: 50%;
  margin-left: -232px;
  margin-top: -27px;
}
.box_search:before {
  content: '';
  display: block;
  position: absolute;
  top: 50%;
  left: 20px;
  width: 20px;
  height: 20px;
  margin-top: -10px;
  z-index: 10;
  background: url(../common/img/v2021/icon_search.png) no-repeat 0 0 / 20px 20px;
}
.box_search input {
  display: block;
  width: 465px;
  height: 55px;
  padding: 0 60px;
  border: 0;
  border-radius: 50px;
  text-align: center;
  background: rgba(1,1,1,.5);
  outline: none;
  color: #ffffff;
  font-size: 18px;
  letter-spacing: 1.5px;
  transition: all 0.5s ease;
  -webkit-appearance: textfield;
  -webkit-box-sizing: content-box;
  box-sizing: border-box;
}
.box_search input::-ms-clear {
  visibility:hidden;
}
.box_search input::-webkit-search-decoration {
  display: none;
}
.box_search input::-webkit-search-cancel-button {
  -webkit-appearance: none;
}
.box_search input::placeholder {
  font-size: 12px;
  font-family: 'Roboto', sans-serif;
  letter-spacing: 5.5px;
  color: rgba(255,255,255,.5);
  line-height: 2;
}
.box_search input::-ms-input-placeholder {
  font-size: 12px;
  font-family: 'Roboto', sans-serif;
  letter-spacing: 5.5px;
  color: rgba(255,255,255,.5);
  line-height: 2;
}
.box_search input:-ms-input-placeholder {
  font-size: 12px;
  font-family: 'Roboto', sans-serif;
  letter-spacing: 5.5px;
  color: rgba(255,255,255,.5);
  line-height: 2;
}
.box_search input:focus {
  background: rgba(1,1,1,.8);
  outline-offset: -2px;
}
.box_search input:focus::-webkit-input-placeholder {
  color: transparent;
}
.box_search input:focus::-moz-placeholder {
  color: transparent;
}
.box_search input:focus::-ms-input-placeholder {
  color: transparent;
}
.box_search input:focus::placeholder {
  color: transparent;
}

/* icon_scroll
-------------------------------------------------- */
.icon_scroll {
  position: fixed;
  width: 44px;
  height: 17px;
  left: 50%;
  bottom: 27px;
  margin-left: -22px;
}
.icon_scroll:before,
.icon_scroll:after {
  display: block;
  content: '';
  width: 24px;
  height: 1px;
  background: #000000;
  position: absolute;
  bottom: 0;
}
.icon_scroll:before {
  transform: rotate(50deg);
  left: 3px;
  bottom: 10px;
}
.icon_scroll:after {
  transform: rotate(-50deg);
  right: 2px;
  bottom: 10px;
}

.icon_scroll.background--dark:before,
.icon_scroll.background--dark:after {
  background: #ffffff;
}
.icon_scroll.background--light:before,
.icon_scroll.background--light:after {
  background: #000000;
}

/* section
-------------------------------------------------- */
.section {
  color: #fff;
  height: 100vh;
  padding: 40px;
  background-repeat: no-repeat;
  background-position: 50% 50%;
  background-size: cover;
  opacity: 0;
}
.section_type01 {
  background-image: url(../img/kv_001.jpg);
}
.section_type02 {
  background-image: url(../img/kv_002.jpg);
}
.section_type03 {
  background-image: url(../img/kv_003.jpg);
}
.section_type04 {
  background-image: url(../img/kv_004.jpg);
}
.section_type05 {
  background-image: url(../img/kv_005.jpg);
}
.section_type06 {
  background-image: url(../img/kv_006.jpg);
}


/* nav
-------------------------------------------------- */
/* nav_info */
.nav_info {
  position: fixed;
  right: 38px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  transition: all 0.5s ease-out;
}
.nav_info li {
  margin: 30px 0;
}
.nav_info a {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  position: relative;
  cursor: pointer;
}
.nav_info a span {
  text-align: right;
}
.nav_info_txt {
  font-size: 10px;
  white-space: nowrap;
  font-family: 'mplus-2p-medium';
  transition: all 0.5s ease;
  letter-spacing: 0.45em;
  opacity: 0;
}
.nav_info_img {
  width: 45px;
  display: flex;
  justify-content: flex-end;
}
.nav_info_img span {
  display: block;
  transition: all 0.5s ease;
}
.nav_info.background--dark a {
  transition: all 0.5s ease;
  color: #ffffff;
}
.nav_info a,
.nav_info.background--light a {
  color: #000000;
}
.nav_info .nav_info_category .nav_info_img span {
  width: 27.5px;
  height: 27.5px;
}
.nav_info.background--dark .nav_info_category .nav_info_img span {
  background: url(../img/icon_nav_category_light.png) no-repeat 0 0 / 27.5px auto;
}
.nav_info .nav_info_category .nav_info_img span,
.nav_info.background--light .nav_info_category .nav_info_img span {
  background: url(../img/icon_nav_category.png) no-repeat 0 0 / 27.5px auto;
}
.nav_info .nav_info_selection .nav_info_img span {
  width: 25.5px;
  height: 25.5px;
}
.nav_info.background--dark .nav_info_selection .nav_info_img span {
  background: url(../img/icon_nav_selection_light.png) no-repeat 0 0 / 25.5px auto;
}
.nav_info .nav_info_selection .nav_info_img span,
.nav_info.background--light .nav_info_selection .nav_info_img span {
  background: url(../img/icon_nav_selection.png) no-repeat 0 0 / 25.5px auto;
}
.nav_info .nav_info_news .nav_info_img span {
  width: 24px;
  height: 26px;
}
.nav_info.background--dark .nav_info_news .nav_info_img span {
  background: url(../img/icon_nav_news_light.png) no-repeat 0 0 / 24px auto;
}
.nav_info .nav_info_news .nav_info_img span,
.nav_info.background--light .nav_info_news .nav_info_img span {
  background: url(../img/icon_nav_news.png) no-repeat 0 0 / 24px auto;
}


.nav_info a:hover .nav_info_txt {
  opacity: 1;
}

/* nav_scroll */
.nav_scroll {
  position: fixed;
  left: 36px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
}
.nav_scroll li {
  height: 24px;
  margin: 5px 0;
}
.nav_scroll a {
  display: inline-block;
  height: 24px;
  position: relative;
  cursor: pointer;
}
.nav_scroll a:after {
  content: '';
  display: block;
  width: 6px;
  height: 6px;
  border-radius: 50px;
  position: absolute;
  top: 50%;
  left: 0;
  margin-top: -3px;
  opacity: 0.4;
  transition: all 0.5s ease;
  background: #000000;
}
.nav_scroll a.is_active:after {
  opacity: 1;
}
.nav_scroll a span {
  display: flex;
  height: 24px;
  padding-left: 30px;
  font-size: 10px;
  align-items: center;
  white-space: nowrap;
  font-family: 'mplus-2p-medium';
  transition: all 0.5s ease;
  opacity: 0;
}
.nav_scroll a:hover,
.nav_scroll a:hover span {
  opacity: 1;
}
.nav_scroll.background--dark a:after {
  background: #fff;
}
.nav_scroll.background--dark a {
  color: #fff;
}
.nav_scroll.background--light a:after {
  background: #000;
}
.nav_scroll.background--light a {
  color: #000;
}

/* header_v2_nav */
.header_v2_nav.header_v2_nav_home .btn.background--dark span {
  background: #ffffff;
}
.header_v2_nav.header_v2_nav_home .btn.background--light span {
  background: #000000;
}
.header_v2_nav.header_v2_nav_home .btn.is_active.background--dark span {
  background: #000000;
}

/* 初回表示 非表示要素 */
.header_v2_nav .btn,
header h1,
.box_search,
.loader,
.nav_info {
  display: none;
}

/* 初回表示 */
.icon_scroll,
.box_search,
.loader {
  z-index: 2;
}

/* loder */
.loader,
.loader:after {
  border-radius: 50%;
  width: 10em;
  height: 10em;
}
.loader {
  font-size: 4px;
  position: fixed;
  top: 50%;
  left: 50%;
  margin: 40px 0 0 -22.5px;
  border-top: 1.1em solid rgba(217,217,217, 0.2);
  border-right: 1.1em solid rgba(217,217,217, 0.2);
  border-bottom: 1.1em solid rgba(217,217,217, 0.2);
  border-left: 1.1em solid #d9d9d9;
  -webkit-animation: load8 1.1s infinite linear;
  animation: load8 1.1s infinite linear;
  z-index: 100;
}
@-webkit-keyframes load8 {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
@keyframes load8 {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}

/* ipad */
body.is_ipad {
  overflow: auto !important;
}
body.is_ipad.is_navopen {
  overflow: hidden !important;
}