@charset "UTF-8";


/* ---- 全体 ---- */

*, *:before, *:after {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  margin: 0;
  word-wrap: break-word;
  font-family: sans-serif;
}

a {
  font-size: 20px;
  text-decoration: none;
}

a:link { color: black }
a:visited { color: black }
a:hover { color: black }

p {
  font-size: 20px;
}


/* ---- ヘッダー ---- */

.header {
  position: fixed; 
  top: 0;
  left: 0;
  width: 100%;
  height: 80px;
  background: white;
  display: grid;
  grid-template-columns: 50% 50%;
  align-items: center;
  padding: 0 2%;
  z-index: 100;
}

.header a {
  text-decoration: none;
  font-size: 20px;
  margin: 0 3%;
}

.header a:hover {
  opacity: 0.5;
}

h1 {
  font-size: 40px;
  font-weight: 900;
  font-family: 'Times New Roman', 'Times';
}

h1 span {
  color: #0066CC;
  font-weight: 900;
  font-family: 'Times New Roman', 'Times';
}

.right {
  display: none;
}


/* ---- ハンバーガーボタン ---- */

.drawer_hidden {
  display: none;
}

.drawer_open {
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  right: 30px;
  z-index: 100;
  cursor: pointer;
}

.drawer_open span,
.drawer_open span:before,
.drawer_open span:after {
  content: '';
  display: block;
  height: 3px;
  width: 25px;
  border-radius: 3px;
  background: #333;
  transition: 0.5s;
  position: absolute;
}

.drawer_open span:before {
  bottom: 8px;
}

.drawer_open span:after {
  top: 8px;
}

#drawer_input:checked ~ .drawer_open span {
  background: rgba(255, 255, 255, 0);
}

#drawer_input:checked ~ .drawer_open span::before {
  bottom: 0;
  transform: rotate(45deg);
}

#drawer_input:checked ~ .drawer_open span::after {
  top: 0;
  transform: rotate(-45deg);
}

  
/* ---- ハンバーガーメニュー ---- */

.nav_content {
  width: 40%;
  height: 100%;
  position: fixed;
  bottom: 100%;
  right: 0%;
  z-index: 99;
  background: rgb(110, 110, 110, 0.7);
  transition: .5s;
  text-align: left;
  padding-top: 20px;
}

.nav_list {
  list-style: none;
}

.nav_item {
  padding: 5% 0;
}

.nav_item a {
  color: #fff;
  font-size: 24px;
  font-weight: bold;
  text-decoration: none;
}

#drawer_input:checked ~ .nav_content {
  bottom: 0;
}


/* ---- トップ画像 ---- */

.top_ja {
  text-align: center;
  background-image: url(image/ja_main.png);
  width: 100vw;
  aspect-ratio: 2 / 1;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: top center;
  margin-top: 80px;
  margin-bottom: 20px;
  overflow: hidden;
}

.top_en {
  text-align: center;
  background-image: url(image/en_main.png);
  width: 100vw;
  aspect-ratio: 2 / 1;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: top center;
  margin-top: 80px;
  margin-bottom: 20px;
  overflow: hidden;
}

.top_ja h2 {
  color: gray;
  font-size: 28px;
  font-weight: bold;
  text-align: center;
  margin-top: 1%;
}

.top_en h2 {
  color: white;
  font-size: 28px;
  font-weight: bold;
  text-align: center;
  margin-top: 8%;
}

.top_ja h2 span, .top_en h2 span {
  color: #0066CC;
}


/* ---- フッター ---- */

.footer {
  margin: 2% 0;
  text-align: center;
}

.footer span {
  font-family: 'Times New Roman', 'Times';
}


/* ---- 本文 ---- */

.main {
  max-width: 980px;
  margin: 0 auto;
  padding: 2%;
}

.contents_inner {
  display: block;
  margin-top: -80px;
  padding-top: 80px;
}

.grid {
  display: grid;
  grid-template-columns: 30% 70%;
}

.grid div {
  display: grid;
  align-items: center;
  margin: 5% 3%;
}

.grid img {
  width: 100%;
}

.contact_ja {
  width: 100%;
  max-width: 450px;
}

.contact_en {
  width: 100%;
  max-width: 580px;
}

h3 {
  font-size: 120%;
  margin-bottom: 10px;
}