@charset "UTF-8";

body {
  margin: 0;
  padding: 0;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  overflow-x: hidden;
}
body:has(.thanks),
body:has(.notFound) {
  background-color: #222;
  height: 100svh;
}
.wrapper div, .wrapper span, .wrapper iframe, .wrapper h1, .wrapper h2, .wrapper h3, .wrapper h4, .wrapper h5, .wrapper h6, .wrapper p, .wrapper address, .wrapper img, .wrapper small, .wrapper strong, .wrapper sub, .wrapper sup, .wrapper dl,
.wrapper dt, .wrapper dd, .wrapper ol, .wrapper ul, .wrapper form, .wrapper label, .wrapper table, .wrapper caption, .wrapper tbody, .wrapper tfoot, .wrapper thead, .wrapper tr, .wrapper th, .wrapper td, .wrapper article,
.wrapper aside, .wrapper footer, .wrapper header, .wrapper menu, .wrapper nav, .wrapper section, .wrapper button, .wrapper video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 0;
  line-height: 0;
  vertical-align: baseline;
  background: transparent;
}
.wrapper article, .wrapper aside, .wrapper details, .wrapper figcaption, .wrapper figure, .wrapper footer, .wrapper header, .wrapper menu, .wrapper nav, .wrapper section {
  display: block;
}
.wrapper ol, .wrapper ul {
  list-style: none;
}
.wrapper :focus {
  outline: 0;
}
.wrapper table {
  border-collapse: collapse;
  border-spacing: 0;
}
.wrapper *, .wrapper *::before, .wrapper *::after {
  box-sizing: border-box;
}
.wrapper img {
  display: block;
  height: auto;
  vertical-align: bottom;
  width: 100%;
  max-width: 100%;
}
.wrapper svg, .wrapper video {
  width: 100%;
  height: auto;
}
/* ---------------------------------------------
  basic
--------------------------------------------- */
.wrapper a {
  text-decoration: none;
  transition: all 300ms 0s ease;
}
.wrapper a:hover {
  opacity: 0.6;
  transition: all 300ms 0s ease;
}
.wrapper {
  font-feature-settings: "palt";
  font-family: "Noto Serif JP", serif;
  width: 100%;
  color: #222;
  background-color: #fff;
  padding-top: min(118 / 1366 * 100vw, 118px);
}
.wrapper.en {
  font-family: "Noto Serif", serif;
}
.wrapper.cn {
  font-family: "Noto Serif SC", serif;
}
.wrapper.ko {
  font-family: "Noto Serif KR", serif;
}
.wrapper .main {
  overflow: hidden;
}
.wrapper .sp_only {
  display: none !important;
}
/* ---------------------------------------------
  共通
--------------------------------------------- */
.wrapper .header_sns, .wrapper .footer_sns {
  width: min(35 / 1366 * 100vw, 35px);
}
@media (max-width: 750px) {
  .wrapper {
    padding-top: min(147 / 750 * 100vw, 147px);
  }
  .wrapper .pc_only {
    display: none !important;
  }
  .wrapper .sp_only {
    display: block !important;
  }
  .wrapper .header_sns, .wrapper .footer_sns {
    width: min(45 / 750 * 100vw, 45px);
  }
}
.grecaptcha-badge {
  visibility: hidden!important;
}
/* ---------------------------------------------
  ヘッダー
--------------------------------------------- */
.wrapper .header {
  background-color: #222;
  position: fixed;
  top: 0;
  z-index: 10;
  width: 100%;
}
.wrapper .header_info {
  display: flex;
  justify-content: flex-start;
  padding: min(15 / 1366 * 100vw, 15px) 0;
  background-color: #5a5f50;
  box-shadow: 0 0 0 100vmax;
  clip-path: inset(0 -100vmax);
  color: #5a5f50;
}
.wrapper .header_info span {
  font-size: min(16 / 1366 * 100vw, 16px);
  line-height: 1;
  color: #fff;
  margin-right: min(23 / 1366 * 100vw, 23px);
}
.wrapper .header_info span:not(:last-of-type)::after {
  content: "";
  border-right: 1px solid #fff;
  margin-left: min(23 / 1366 * 100vw, 23px);
}
.wrapper .header_inner {
  max-width: 1366px;
  margin-inline: auto;
  padding: 0 min(80 / 1366 * 100vw, 80px);
}
.wrapper .header_left {
  display: flex;
  align-items: flex-end;
  gap: min(40 / 1366 * 100vw, 40px);
}
.wrapper .header_menu {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: min(14.5 / 1366 * 100vw, 14.5px) 0;
}
.wrapper .header_logo {
  width: min(117 / 1366 * 100vw, 117px);
}
.wrapper .navMain_list {
  display: flex;
  gap: min(40 / 1366 * 100vw, 40px);
}
.wrapper .navMain_list li a {
  font-size: min(16 / 1366 * 100vw, 16px);
  line-height: 1;
  letter-spacing: 0.1em;
  color: #fff;
}
.wrapper .header_right {
  display: flex;
  align-items: center;
  gap: min(32 / 1366 * 100vw, 32px);
}
.wrapper .navLanguage {
  position: relative;
}
.wrapper .navLanguage_button {
  font-family: inherit;
  font-size: min(16 / 1366 * 100vw, 16px);
  line-height: 1;
  letter-spacing: 0.04em;
  color: #fff;
  border: 1px solid #fff;
  border-radius: 18px;
  width: min(150 / 1366 * 100vw, 150px);
  height: min(35 / 1366 * 100vw, 35px);
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  position: relative;
}
.wrapper .navLanguage::before {
  content: "";
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  height: min(28 / 1366 * 100vw, 28px);
}
.wrapper .navLanguage_button::after {
  content: "";
  position: absolute;
  top: 60%;
  right: min(15 / 1366 * 100vw, 15px);
  width: min(10 / 1366 * 100vw, 10px);
  height: min(10 / 1366 * 100vw, 10px);
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  transform: rotate(-45deg) translate(0, -50%);
  transition: transform 0.3s;
  transform-origin: top;
}
.wrapper .navLanguage.is-active .navLanguage_button::after {
  transform: rotate(135deg);
}
.wrapper .navLanguage_body {
  position: absolute;
  bottom: max(-19 / 1366 * 100vw, -19px);
  translate: 0 100%;
  background-color: #fff;
  width: 100%;
  display: none;
  text-align: left;
  height: auto !important;
}
.wrapper .navLanguage_list {
  padding: min(20 / 1366 * 100vw, 20px) 0 min(20 / 1366 * 100vw, 20px) min(18 / 1366 * 100vw, 18px);
}
.wrapper .navLanguage_list a {
  font-size: min(16 / 1366 * 100vw, 16px);
  line-height: 2.5;
  letter-spacing: 0.04em;
  font-weight: 600;
  color: inherit;
}
.wrapper .navLanguage_list li:nth-child(1) a {
  font-family: "Noto Serif JP", serif;
}
.wrapper .navLanguage_list li:nth-child(2) a {
  font-family: "Noto Serif", serif;
}
.wrapper .navLanguage_list li:nth-child(3) a {
  font-family: "Noto Serif SC", serif;
}
.wrapper .navLanguage_list li:nth-child(4) a {
  font-family: "Noto Serif KR", serif;
}
@media (max-width: 750px) {
  .wrapper .header_info {
    padding: min(14 / 750 * 100vw, 14px) 0;
  }
  .wrapper .header_info span {
    font-size: min(16 / 750 * 100vw, 16px);
    margin-right: min(23 / 750 * 100vw, 23px);
  }
  .wrapper .header_info span:not(:last-of-type)::after {
    margin-left: min(23 / 750 * 100vw, 23px);
  }
  .wrapper .header_inner {
    padding: 0 min(117 / 750 * 100vw, 117px) 0 min(40 / 750 * 100vw, 40px);
  }
  .wrapper .header_menu {
    padding: min(18.5 / 750 * 100vw, 18.5px) 0;
  }
  .wrapper .header_logo {
    width: min(177 / 750 * 100vw, 177px);
  }
  .wrapper .header_right {
    gap: min(44 / 750 * 100vw, 44px);
  }
  .wrapper .navLanguage_button {
    font-size: min(24 / 750 * 100vw, 24px);
    border-radius: min(27 / 750 * 100vw, 27px);
    width: min(203 / 750 * 100vw, 203px);
    height: min(56 / 750 * 100vw, 56px);
  }
  .wrapper .navLanguage_button::after {
    top: 55%;
    right: min(15 / 750 * 100vw, 15px);
    width: min(10 / 750 * 100vw, 10px);
    height: min(10 / 750 * 100vw, 10px);
  }
  .wrapper .navLanguage_body {
    bottom: max(-23 / 750 * 100vw, -23px);
  }
  .wrapper .navLanguage_list {
    padding: min(30 / 750 * 100vw, 30px) 0 min(30 / 750 * 100vw, 30px) min(23 / 750 * 100vw, 23px);
  }
  .wrapper .navLanguage_list a {
    font-size: min(25 / 750 * 100vw, 25px);
    line-height: 2;
  }
  /* ---------------------------------------------
    ハンバーガーメニュー
  --------------------------------------------- */
  body.is-open {
    overflow: hidden;
  }
  .wrapper .hamburger {
    appearance: none;
    border: none;
    outline: none;
    cursor: pointer;
    z-index: 5;
    width: min(52 / 750 * 100vw, 52px);
    height: min(52 / 750 * 100vw, 52px);
    background-color: transparent;
    position: absolute;
    top: 65%;
    right: min(20 / 750 * 100vw, 20px);
    translate: 0 -50%;
    padding: 0;
  }
  .wrapper .hamburger_line {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    margin: auto;
    width: 100%;
    height: 1px;
    background-color: #fff;
    transition: transform 0.5s;
  }
  .wrapper .hamburger_line::before,
  .wrapper .hamburger_line::after {
    content: "";
    position: absolute;
    display: block;
    width: 100%;
    height: 100%;
    background-color: inherit;
    transition: inherit;
  }
  .wrapper .hamburger_line::before {
    top: max(-15 / 750 * 100vw, -15px);
  }
  .wrapper .hamburger_line::after {
    top: min(15 / 750 * 100vw, 15px);
    width: 60%;
  }
  .wrapper .hamburger[aria-expanded="true"] .hamburger_line {
    background-color: transparent;
  }
  .wrapper .hamburger[aria-expanded="true"] .hamburger_line::before,
  .wrapper .hamburger[aria-expanded="true"] .hamburger_line::after {
    background-color: #fff;
    position: absolute;
  }
  .wrapper .hamburger[aria-expanded="true"] .hamburger_line::before {
    transform: rotate(45deg);
    top: 0;
  }
  .wrapper .hamburger[aria-expanded="true"] .hamburger_line::after {
    transform: rotate(-45deg);
    width: 100%;
    top: 0;
  }
  .wrapper .drawer {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 4;
    overflow: hidden;
    width: 100vw;
    height: 100vh;
    background-color: #000;
    transform: translateY(-100vh);
    transition: 0.5s;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
  body.is-open .drawer {
    transform: translateY(0);
    transition: 0.5s;
    opacity: 1;
    visibility: visible;
    pointer-events: visible;
  }
  .wrapper .drawerNav {
    height: 100%;
  }
  .wrapper .drawerNav_list {
    padding: min(77 / 750 * 100vw, 77px) min(40 / 750 * 100vw, 40px) 0;
  }
  .wrapper .drawerNav_list li {
    width: 100%;
    padding-left: min(5 / 750 * 100vw, 5px);
    text-align: left;
  }
  .wrapper .drawerNav_list li:not(:last-of-type) {
    border-bottom: 1px solid #fff;
  }
  .wrapper .drawerNav_list li a {
    font-size: min(40 / 750 * 100vw, 40px);
    line-height: 2.5;
    letter-spacing: 0.1em;
    color: #fff;
  }
}
/* ---------------------------------------------
  フッター
--------------------------------------------- */
body:has(.thanks) .footer,
body:has(.notFound) .footer {
  position: absolute;
  bottom: 0;
  width: 100%;
}
.wrapper .footer {
  background-color: #222;
}
.wrapper .footer_inner {
  max-width: 1366px;
  margin-inline: auto;
  padding: min(25 / 1366 * 100vw, 25px) min(80 / 1366 * 100vw, 80px) min(30 / 1366 * 100vw, 30px);
}
.wrapper .footer_content {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
}
.wrapper .footer_logo {
  display: flex;
  align-items: center;
  width: min(138 / 1366 * 100vw, 138px);
}
.wrapper .footer_right {
  display: flex;
  align-items: center;
  gap: min(22 / 1366 * 100vw, 22px);
}
.wrapper .footer_contact {
  background-color: #b99b66;
}
.wrapper .footer_contact a {
  font-size: min(14 / 1366 * 100vw, 14px);
  line-height: 1;
  letter-spacing: 0.1em;
  padding: min(13.5 / 1366 * 100vw, 13.5px) min(27 / 1366 * 100vw, 27px);
  display: block;
  color: inherit;
}
.wrapper .footer_copyright {
  border-top: min(2 / 1366 * 100vw, 2px) solid #fff;
  text-align: center;
  padding: min(17 / 1366 * 100vw, 17px) 0;
}
.wrapper .footer_copyright small {
  font-size: min(10 / 1366 * 100vw, 10px);
  line-height: 1;
  letter-spacing: 0.04em;
  color: #fff;
}
.wrapper .footer_copyright span {
  font-size: inherit;
}
@media (max-width: 750px) {
  .wrapper .footer_inner {
    padding: min(20 / 750 * 100vw, 20px) min(40 / 750 * 100vw, 40px);
  }
  .wrapper .footer_logo {
    width: min(143 / 750 * 100vw, 143px);
  }
  .wrapper .footer_right {
    gap: min(33 / 750 * 100vw, 33px);
  }
  .wrapper .footer_contact a {
    font-size: min(24 / 750 * 100vw, 24px);
    padding: min(10.5 / 750 * 100vw, 10.5px) min(17 / 750 * 100vw, 17px);
  }
  .wrapper .footer_copyright {
    border-top: min(2 / 750 * 100vw, 2px) solid #fff;
    padding: min(20 / 750 * 100vw, 20px) 0;
  }
  .wrapper .footer_copyright small {
    font-size: min(14 / 750 * 100vw, 14px);
  }
}
/* ---------------------------------------------
  下層
--------------------------------------------- */
.wrapper .page {
  background-color: #222;
  padding: min(130 / 1366 * 100vw, 130px) 0 min(155 / 1366 * 100vw, 155px);
}
.wrapper .page_inner {
  max-width: 1366px;
  margin-inline: auto;
  padding: 0 min(80 / 1366 * 100vw, 80px);
}
.wrapper .page_title {
  text-align: center;
  border-bottom: 1px solid #fff;
  padding-bottom: min(40 / 1366 * 100vw, 40px);
}
.wrapper .page_titleEn {
  font-size: min(20 / 1366 * 100vw, 20px);
  line-height: 2.5;
  letter-spacing: 0.1em;
  font-weight: 400;
  color: #b99b66;
}
.wrapper .page_titleJa {
  font-size: min(40 / 1366 * 100vw, 40px);
  line-height: 1;
  letter-spacing: 0.1em;
  font-weight: 400;
  color: #fff;
}
.wrapper .page .content_area {
  padding: min(70 / 1366 * 100vw, 70px) min(196 / 1366 * 100vw, 196px) 0;
}
@media (max-width: 750px) {
  .wrapper .page {
    padding: min(110 / 750 * 100vw, 110px) 0 min(150 / 750 * 100vw, 150px);
  }
  .wrapper .page_inner {
    padding: 0 min(40 / 750 * 100vw, 40px);
  }
  .wrapper .page_title {
    padding-bottom: min(55 / 750 * 100vw, 55px);
  }
  .wrapper .page_titleEn {
    font-size: min(28 / 750 * 100vw, 28px);
    line-height: 2.5;
  }
  .wrapper .page_titleJa {
    font-size: min(50 / 750 * 100vw, 50px);
  }
  .wrapper .page .content_area {
    padding: min(45 / 750 * 100vw, 45px) 0 0;
  }
}