@charset "UTF-8";
/**************************

共通CSS

**************************/
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300&family=Roboto:wght@100;300&display=swap');
/*----------------------------------------
	ETC
-----------------------------------------*/
html {
  scroll-behavior: smooth;
  height: 100%;
  margin-top: 0px !important;
}
*, *:before, *:after {
  box-sizing: inherit;
}
html {
  box-sizing: border-box;
}
html * {
  max-width: 100%;
}
body {
  background: #F4F4F0;
  height: 100%;
}
body * {
  /*max-width: 100%;slickなんかでトラブルかも けど必要*/
  max-height: 999999px; /*androidのフォントサイズ対策*/
  box-sizing: border-box;
}
body iframe {
  /*width: 98% !important;
  height: 98% !important;*/
  box-sizing: border-box !important;
}
body iframe * {
  /*max-width: 98% !important;
  max-height: 98% !important;*/
  box-sizing: border-box !important;
}
a {
  color: #333;
  text-decoration: none;
  transition: 0.3s;
}
a:hover {
  transition: 0.3s;
}
img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}
#wrapper {
  overflow: hidden;
  position: relative;
}
body .inner {
  overflow: hidden;
  max-width: 1100px;
  margin: 0 auto;
}
body .limited_width {
  padding-right: 330px !important;
}
body .width-limit {
  overflow: hidden;
  max-width: 1024px;
  margin: 0 auto;
  display: block;
}
/* リンクにつく矢印アイコン */
body a.link {
  position: relative;
  padding-right: 1.4em;
}
body a.link:hover {
  text-decoration: underline;
}
body a.link::before { /* 背景のマル */
  content: "";
  position: absolute;
  margin: auto;
  bottom: 0.1em;
  right: 0;
  width: 1em;
  height: 1em;
  border-radius: 50%;
  background: #000;
}
body a.link::after { /* 中の＞の字 */
  content: "";
  position: absolute;
  margin: auto;
  bottom: 0.45em;
  right: 0.4em;
  width: 0.37em;
  height: 0.37em;
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  transform: rotate(45deg);
}
body a.link.white::before {
  background: #fff;
}
body a.link.white::after {
  border-color: #000;
}
/*小サイズ(ヘッダーまわりの切り変わりは840)*/
@media screen and (max-width: 680px) {
  body .pc {
    display: none !important;
  }
}
/*1100未満*/
@media screen and (max-width: 1100px) {
  body #contents .inner {
    padding-right: 5% !important;
    padding-left: 5% !important;
  }
  body .limited_width {
    padding-right: 0px !important;
  }
}
/*------------------------------------
adobeフォントがダウンロードされるまで非表示
--------------------------------*/
html.wf-inactive {
  opacity: 0;
}
html.wf-active {
  opacity: 100;
}
body {
  animation: fadeIn 2s ease 0s 1 normal;
  -webkit-animation: fadeIn 2s ease 0s 1 normal;
}
@keyframes fadeIn {
  0% {
    opacity: 0
  }
  100% {
    opacity: 1
  }
}
@-webkit-keyframes fadeIn {
  0% {
    opacity: 0
  }
  100% {
    opacity: 1
  }
}
/*----------------------------------------
	font
-----------------------------------------*/ :root {
  --main-font-family: 'Noto Sans JP', sans-serif;
  --second-font-family: 'Roboto', sans-serif;
  --serif-font-family: serif;
}
html {
  font-size: 16px;
  color: #444;
  font-family: var(--main-font-family);
}
html .eng {
  font-family: var(--second-font-family);
  font-weight: 200;
  letter-spacing: 0.10em;
  opacity: 0;
}
html.wf-active .eng {
  opacity: 1;
}
body {
  font-size: 16px;
  line-height: 1.5;
}
html select {
  font-family: var(--main-font-family);
}
h1 {
  font-family: var(--main-font-family);
  /*font-weight: 700;*/
  font-style: normal;
  font-size: 32px;
}
h2 {
  /*font-weight: 700;*/
  font-size: 32px;
}
h3 {
  margin-top: 1.5em;
  font-size: 20px;
}
h4, h5, h6 {
  font-size: 17px;
  font-weight: normal;
}
li, p, dt, dd, th, td {
  /*font-size: 16px;*/
  font-weight: 200;
}
h2, h3, h4, h5, h6, li, p {
  font-family: var(--main-font-family);
  font-weight: 200;
  margin-bottom: 0.8em;
}
body .size_s {
  font-size: 80%;
}
body #contents .aligncenter {
  text-align: center;
}
.no_wrap {
  display: inline-block;
}
/*-- sp --*/
@media screen and (max-width: 780px) {
  h1 {
    font-size: 22px; /* 100pxの0.2倍だから20pxだよ！ */
  }
  li, p, td, th {
    font-size: 14px !important;
  }
}
/*----------------------------------------
	header、Gナビ
-----------------------------------------*/
body header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 10px 6px;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 200;
  background: #F4F4F0;
  /*box-shadow: 0px 20px 20px 0px rgba(0, 0, 0, 0.06);*/
}
body header .logo01 {
  padding: 14px 13px 0 0;
}
body.en header .logo01 a {
  /*display: flex;
  align-items: center;*/
}
body header .logo01 img {
  margin-right: 1em;
}
body header .logo01 .text {
  font-size: 12px;
  font-weight: 300;
  display: inline-block;
  color: #000 !important;
}
body.en header .logo01 .text {
  font-size: 17px;
  font-weight: 400;
}
body header h1 {
  padding: 8px 33px 0 0;
  color: #fff;
  line-height: 0;
}
body header nav {
  display: flex;
  align-items: center;
}
body header nav p {
  margin-bottom: 6px;
}
body header nav p#lang {
  margin-right: 32px;
}
body header nav #menu_btn {
  margin-right: 16px;
  margin-bottom: 6px;
}
body header nav .btn {
  padding: 0 2px 0;
}
body header nav .btn:hover {
  cursor: pointer;
  /*opacity: 0.5;*/
}
body header nav ul li {
  display: inline-block;
  margin: 0 1em;
}
body header a {
  color: #fff;
}
body header .lang.global {
  font-size: 14px;
  margin-right: 2em;
  margin-bottom: 0;
  margin-top: 0.4em;
  font-weight: 500;
}
body header .lang.global a {
  color: #606060;
}
/*--- menu-btn ---*/
body nav ul.g-menu {
  display: flex;
  flex-direction: column;
  justify-content: center;
  color: #fff;
  padding: 3em;
  z-index: 20;
  transition: 0.5s;
}
body header nav ul.g-menu {
  background: #000;
  position: fixed;
  top: 0;
  right: -100%;
  height: 100vh;
  overflow: auto;
}
body footer nav ul.g-menu {
  border-top: #b7b7b4 1px solid;
}
body nav ul.g-menu.active {
  right: 0;
  transition: 0.5s;
  /*width: 500px !important;*/
}
body header nav ul.g-menu * {
  color: #fff !important;
}
body footer nav ul.g-menu * {
  color: #000 !important;
}
body nav ul.g-menu li {
  margin-top: 1.1em;
}
body nav ul.g-menu p.lang {
  text-align: left;
  margin: 1em auto 1em 1em;
  /*display: none !important;*/
}
body nav ul.g-menu li dl {
  padding: 0.5em 2em 0;
  font-size: 13px;
}
body nav ul.g-menu li dl dd {
  margin-bottom: 0.3em;
}
body nav ul.g-menu li dl dd::before {
  content: "\　・";
}
/* リンクにつく矢印アイコン */
body nav ul.g-menu li a {
  position: relative;
  padding-left: 1.4em;
}
body nav ul.g-menu li a::before { /* 背景のマル */
  content: "";
  position: absolute;
  margin: auto;
  bottom: 0.1em;
  left: 0;
  width: 1em;
  height: 1em;
  border-radius: 50%;
  background: #fff;
}
body nav ul.g-menu li a::after { /* 中の＞の字 */
  content: "";
  position: absolute;
  margin: auto;
  bottom: 0.38em;
  left: 0.25em;
  width: 0.37em;
  height: 0.37em;
  border-top: 1px solid #000;
  border-right: 1px solid #000;
  transform: rotate(45deg);
}
body nav ul.g-menu dl a { /* DLの中 */
  padding-left: 0;
}
body nav ul.g-menu dl a::before, body nav ul.g-menu dl a::after { /* DLの中 */
  content: none;
}
/*-- .menu-btn、の三本線 --*/
body header .menu-trigger {
  display: none !important;
}
/*body header .menu-trigger.active {
  display: flex !important;
  z-index: 100;
  position: relative;
}*/
body header .menu-trigger {
  text-align: center;
  display: flex;
  height: 16px;
  width: 16px;
  justify-content: center;
  align-content: center;
  position: absolute;
  right: 0;
  top: 0;
  z-index: 100;
  position: relative;
  background: #000;
  border: #000000 8px solid;
  box-sizing: content-box;
}
body header .menu-trigger:hover {
  cursor: pointer;
  transition: 0.3s;
}
.menu-trigger, .menu-trigger span {
  display: inline-block;
  transition: all .4s;
  box-sizing: border-box;
}
.menu-trigger span {
  position: absolute;
  left: 0;
  width: 100%;
  height: 2px;
  background-color: #fff;
  border-radius: 0px;
}
.menu-trigger span:nth-of-type(1) {
  top: 0;
}
.menu-trigger span:nth-of-type(2) {
  top: calc(50% - 1px);
}
.menu-trigger span:nth-of-type(3) {
  bottom: 0;
}
body header .menu-trigger.active {
  right: 6px;
  height: 20px;
  width: 20px;
  border: #000000 0px solid;
  box-sizing: border-box;
}
.menu-trigger.active span:nth-of-type(1) {
  -webkit-transform: translateY(11px) rotate(-225deg);
  transform: translateY(11px) rotate(-225deg);
}
.menu-trigger.active span:nth-of-type(2) {
  opacity: 0;
}
.menu-trigger.active span:nth-of-type(3) {
  -webkit-transform: translateY(-7px) rotate(225deg);
  transform: translateY(-7px) rotate(225deg);
}
header .sp {
  display: none;
}
/*小サイズ(ヘッダーまわりの切り変わりは840)*/
@media screen and (max-width: 840px) {
  body header {
    padding-right: 0;
  }
body.en header .logo01 .text {
  font-size: 11px;
}
  body header nav #menu_btn {
    margin-top: 7px;
    margin-right: 5px;
    margin-bottom: 0px;
  }
  h1.logo02, header #lang, header .lang.global {
    display: none;
  }
  header .sp {
    display: inherit;
    margin: 0 auto 1.4em;
    text-align: center;
  }
  header .sp.name {
    width: 200px;
  }
  .en header .sp.name {
    padding: 50px 0;
    width: 270px;
  }
  body.menu-active {
    overflow-y: hidden;
  }
  /*-- #menu_btn --*/
  body header #menu_btn img {
    display: none;
  }
  body header .menu-trigger {
    display: flex !important;
  }
  /*****/
  body nav ul.g-menu {
    width: 100%;
    justify-content: flex-start;
  }
  body nav ul.g-menu li {
    margin-top: 0.9em;
    margin-bottom: 0;
  }
  body nav ul.g-menu li dl dt, body nav ul.g-menu li dl dd {
    margin-bottom: 0.35em;
  }
} /*ここまでSP用(max-width: 840px)****/
/*特小サイズ(ロゴの英字が長すぎるので)*/
@media screen and (max-width: 680px) {
  body header .logo01 .text {
    /*display: none;*/
    line-height: 1;
    padding-top: 0.6em;
  }
  body header p.logo01 {
    margin-bottom: 0;
  }
}
/*----------------------------------------
	app
-----------------------------------------*/
#app {
  background: #f1f1f1;
  padding: 38px 48px 22px;
  border: #b7b7b4 1px solid;
  display: flex;
  align-items: center;
  margin: 110px auto 40px;
}
#app h2 {
  font-family: var(--serif-font-family);
  font-size: 21px;
  color: #111;
}
#app img {
  margin: 4px;
}
#app .goannnai {
  white-space: nowrap;
  text-align: center;
}
#app .goannnai .get {
  text-align: center;
}
#app .goannnai .get img {
  height: 90px;
}
#app .download {
  padding-left: 80px;
}
#app .download .get img {
  height: 40px;
}
#app .middle {
  display: none;
}
/*小サイズ(appは特別)*/
@media screen and (max-width: 1100px) {
  #app {
    margin: 2em 3% 4em;
    width: 94%;
  }
  #app .goannnai {
    width: 30%;
  }
  #app .middle {
    display: inherit;
  }
}
@media screen and (max-width: 740px) {
  #app {
    padding: 9% 7% 4% !important;
    flex-direction: column;
    flex-wrap: wrap;
    margin: 2em 7% 4em;
    width: 86%;
  }
  #app h2 {
    font-size: 16px;
  }
  #app .download {
    padding-left: 0px;
  }
  #app .get {
    text-align: center;
  }
  #app .goannnai {
    width: 100%;
    white-space: inherit
  }
  #app .middle {
    display: none;
  }
}
/*----------------------------------------
	footer
-----------------------------------------*/
body footer {
  padding: 20px;
  font-size: 13px;
}
body.en footer {
  padding-top: 70px;
}
body footer p.name {
  text-align: center;
  margin-bottom: 4em;
}
body footer p.name .eng {
  display: block;
  font-size: 11px;
  margin-top: 1.5em;
  color: #000;
  font-weight: 300;
}
body footer nav ul.g-menu li a::before { /* 背景のマル */
  background: #000;
}
body footer nav ul.g-menu li a::after { /* 中の＞の字 */
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
}
body footer nav ul.g-menu p.lang {
  margin-left: 0
}
body footer nav dl.global_nav {
  display: flex;
  justify-content: space-between;
  border-top: #b7b7b4 solid 1px;
  padding-top: 0.8em;
  padding-right: 2em;
  padding-bottom: 3em;
  gap: 2em;
  flex-wrap: wrap;
}
body footer nav dt {
  font-size: 16px;
  font-weight: 200;
  margin-bottom: 0.4em;
}
body footer nav dd {
  margin-bottom: 0.4em;
  font-weight: 200;
}
body footer .sns {
  margin-left: auto;
  margin-right: 0;
  display: block;
  width: 448px;
  padding: 1em 0;
  display: none;
}
body footer .sns h3 {
  border-bottom: dotted 1px #565656;
  font-size: 16px;
}
body footer .sns ul {
  display: flex;
  align-items: center;
}
body footer .sns ul li {
  margin-right: 16px;
}
body footer nav ul.sub_nav {
  display: flex;
  justify-content: center;
  width: 100%;
  padding: 1.4em 20em 0.8em;
  flex-wrap: wrap;
  margin: auto;
  border-top: #b7b7b4 solid 1px;
}
body footer nav ul.sub_nav li {
  margin: 0.2em 0.8em;
}
body footer #copyright {
  text-align: center;
}
body footer .g-menu.sp {
  display: none;
}
#pageTop {
  display: none;
}
/*小サイズ(ヘッダーまわりの切り変わりは840)*/
@media screen and (max-width: 680px) {
  body footer p.name {
    margin-bottom: 2.5em;
  }
  body footer nav ul.sub_nav {
    padding: 1.4em 1em 0.8em;
  }
  body footer nav ul.sub_nav li:nth-child(n+5) {
    width: 100%;
    text-align: center;
  }
  body footer .g-menu.sp {
    display: inherit;
  }
  body footer .sns h3 {
    text-align: center;
  }
  body footer .sns ul {
    justify-content: center;
  }
}
/*----------------------------------------
	table
-----------------------------------------*/
table {
  width: 100%;
  text-align: left;
  border-collapse: collapse;
  border-spacing: 0;
  margin-bottom: 3em;
}
table th, table td {
  padding: 0.5em 0;
  border-top: solid 1px #b7b7b4;
  border-bottom: solid 1px #b7b7b4;
  font-weight: 200;
  vertical-align: middle;
}
table tr th {
  width: 16em;
  vertical-align: top;
  font-size: 20px;
}
table tr td {
  font-size: 16px;
}
table tr td:last-child {
  text-align: right;
}
table tr td:nth-last-child(2):before {
  content: "";
  vertical-align: middle;
  height: 1.2em;
  width: 1.2em;
  display: inline-block;
  background: #CACACA;
  margin-right: 0.4em;
  margin-top: -3px;
}
table tr td:last-child a:after {
  content: "";
  vertical-align: middle;
  height: 1.5em;
  width: 1.5em;
  display: inline-block;
  background: url("../img/common/icon_pdf.jpg") no-repeat center center /contain;
  margin-left: 0.5em;
}