@charset "utf-8";
/* CSS Document */
@import url(http://fonts.googleapis.com/earlyaccess/notosansjp.css);
@import url(https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css);



/*--root------------------------------------------------------------*/
:root {
/* 色 */
  --red: #c80000;
  --blue: #005bab;
  --white: #fff;
  --black: #000;

/* コンテナサイズ */
  --contents_size_small: 875px;
  --contents_size_middle: 1000px;
  --contents_size_big: 1280px;

/* フォントサイズ */
  --fz12: clamp(0.625rem, 0.583rem + 0.21vw, 0.75rem);
  --fz14: clamp(0.75rem, 0.708rem + 0.21vw, 0.875rem);
  --fz16: clamp(0.875rem, 0.833rem + 0.21vw, 1rem);
  --fz18: clamp(1rem, 0.958rem + 0.21vw, 1.125rem);
  --fz20: clamp(1.125rem, 1.083rem + 0.21vw, 1.25rem);
  --fz24: clamp(1.375rem, 1.333rem + 0.21vw, 1.5rem);
  --fz32: clamp(1.875rem, 1.833rem + 0.21vw, 2rem);
  --fz40: clamp(2rem, 1.818rem + 0.91vw, 2.5rem);
  --fz48: clamp(2rem, 2.318rem + 0.91vw, 3rem);
  
/* マージン */
  --m05: clamp(0.188rem, 0.142rem + 0.23vw, 0.313rem);
  --m10: clamp(0.313rem, 0.199rem + 0.57vw, 0.625rem);
  --m20: clamp(0.625rem, 0.398rem + 1.14vw, 1.25rem);
  --m30: clamp(0.938rem, 0.625rem + 1.56vw, 1.875rem);
  --m40: clamp(1.25rem, 0.833rem + 2.08vw, 2.5rem);
  --m60: clamp(1.875rem, 1.25rem + 3.13vw, 3.75rem);
  --m80: clamp(2.5rem, 1.667rem + 4.17vw, 5rem);
  --m100: clamp(5rem, 4.545rem + 2.27vw, 6.25rem);
  --m160: clamp(5rem, 3.333rem + 8.33vw, 10rem);
}

body {
  font-size: 1rem;
  line-height: 1;
  position: relative;
  overflow-x: hidden;
  font-smooth: auto;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  color: var(--black);
}
html {
  box-sizing: border-box;
}
ul{
  margin:0;
  padding: 0;
  list-style: none;
}
img {
  max-width:100%;
  height: auto;
  vertical-align: middle;
}
*, *::after, *::before {
  box-sizing: inherit;
}
*, *:before, *:after {
  box-sizing: border-box;
  outline: none;
}

/*--Link------------------------------------------------------------*/
a:hover, a:active { text-decoration: none; }
a:focus { outline: none; }

._hover {
    transition: opacity 0.3s linear;
    opacity: 1;
}
._hover:hover {
    opacity: 0.7;
}

/*--.contents_size------------------------------------------------------------*/
.container_small {
  width: var(--contents_size_small);
  max-width: 90%;
  margin: 0 auto;
}
.container_middle {
  width: var(--contents_size_middle);
  max-width: 90%;
  margin: 0 auto;
}
.container_big {
  width: var(--contents_size_big);
  max-width: 94%;
  margin: 0 auto;
}

/*--style----------------------------------------------------------*/
.sp { display: none!important; }

.w_txt { font-weight: 700; }
.t_center { text-align: center; }
.t_right { text-align: right; }

/*--Retina------------------------------------------------------------*/
@media screen and (max-width: 768px) {
  .pc { display: none!important; }
  .sp { display: block!important; }
}


/*--#header----------------------------------------------------------*/
header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  z-index: 999;
}

header .container_big {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  padding: var(--m20) 0;
}

.btn_login a {
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: var(--blue);
  color: var(--white);
  padding: var(--m10) var(--m40);
  border-radius: 5rem;
  line-height: 1;
  font-weight: 800;
}
.btn_login a:after {
  content: "";
  display: inline-block;  
  background: url("../img/common/login_icon.png") no-repeat center;
  background-size: contain;
  margin-left: var(--m10);
}

header .btn_login {
  margin-right: var(--m40);
  z-index: 100;
}
header .btn_login a {
  font-size: var(--fz16);
  border: 2px solid var(--white);
}
header .btn_login a:after {
  width: .9rem;
  height: .9rem;
}

#nav-drawer { position: relative; }

/*チェックボックス等は非表示に*/
.nav-unshown { display:none; }

/* ハンバーガーボタンのデザイン */
.drawer__button {
  display: inline-block;
  position: relative;
  width: 55px;
  height: 55px;
  cursor: pointer;
  z-index: 100;
  background-color: var(--blue);
  color: var(--white);
  vertical-align: middle;
  border: 2px solid var(--white);
}
/* ハンバーガーボタン内の線 */
.drawer__button > span {
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  width: 2rem;
  height: 2px;
  background-color: var(--white);
  transform: translateX(-50%);
}
.drawer__button > span:first-child {
  transform: translate(-50%, calc(-50% - 0.5rem));
  transition: transform 0.3s ease;
}
.drawer__button > span:last-child {
  transform: translate(-50%, calc(-50% + 0.5rem));
  transition: transform 0.3s ease;
}
/* 展開時のデザイン */
#nav-input:checked ~ .drawer__button > span:first-child {
  transform: translate(-50%, -50%) rotate(-45deg);
}
#nav-input:checked ~ .drawer__button > span:last-child {
  transform: translate(-50%, -50%) rotate(45deg);
}

/*閉じる用の薄黒箇所*/
#nav-close {
  display: none;
  position: fixed;
  z-index: 90;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
  background: var(--black);
  opacity: 0;
  transition: .3s ease-in-out;
}

/*メニューの中身*/
#nav-content {
  position: fixed;
  z-index: 99;
  width: 100%;
  max-width: 40vw;
  height: 100vh;
  top: 0;
  right: 0;
  background-color: var(--white);
  transition: .3s ease-in-out;
  -webkit-transform: translateX(100%);
  transform: translateX(100%);
}

/*チェックがついたら表示させる*/
#nav-input:checked ~ #nav-close {
  display: block;
  opacity: .5;
  transition: .3s ease-in-out;
}

#nav-input:checked ~ #nav-content {
  -webkit-transform: translateX(0%);
  transform: translateX(0%);
  box-shadow: 6px 0 25px rgba(0,0,0,.15);
}

.nav-drawer_menu {
  border-top: var(--blue) 1px solid;
  margin: var(--m100) var(--m20) 0;
  font-weight: 800;
  font-size: var(--fz18);
}
.nav-drawer_menu li {
  border-bottom: var(--blue) 1px solid;
  padding: var(--m20);
}

@media (max-width:768px) {
  .btn_login a {
    padding: var(--m20) var(--m40);
  }
  .drawer__button {
    width: 40px;
    height: 40px;
  }
  .drawer__button > span {
    width: 1.5rem;
  }
  .drawer__button > span:first-child {
    transform: translate(-50%, calc(-50% - 0.4rem));
  }
  .drawer__button > span:last-child {
    transform: translate(-50%, calc(-50% + 0.4rem));
  }
  #nav-content {
    max-width: 80vw;
  }
}


/*--footer----------------------------------------------------------*/
footer {
  background-color: var(--black);
  padding: var(--m80) 0;
  text-align: center;
  color: var(--white);
}

.foot_list {
  margin-top: var(--m40);
  justify-content: center;
  font-size: var(--fz14);
  display: flex;
}
.foot_list li {
  padding: 0 var(--m20);
}
.foot_list li a {
  text-decoration: underline;
}
.foot_list li a:hover {
  text-decoration: none;
}

.copylight {
  margin-top: var(--m40);
  font-size: var(--fz14);
  line-height: 1.4;
}

@media (max-width:768px) {
}

