@charset "utf-8";

html {
  width: 100%;
  font-size: calc(10 / 1500 * 100vw);
}

@media all and (max-width: 576px) {
  html {
    font-size: calc(10 / 390 * 100vw);
  }
}

/* モーダル対応（Windows） */
/* html.is-windows.is-fixed {
  scrollbar track 表示
  overflow-y: scroll !important;
} */

body {
  opacity: 0;
  font-family: 'Shippori Mincho B1', serif;
  font-size: 1.6rem;
  font-weight: 500;
  color: #262626;
  background: #fff;
  line-height: 1.8;
  width: 100%;
  margin: 0;
  /* フォントサイズ自動調整解除 */
  -webkit-text-size-adjust: 100%;
  /* 半角英数連続文字改行 */
  word-break: break-word;
  /* 完全改行 */
  /* word-break: break-all; */
  /* 自動カーニング */
  /* font-feature-settings: "palt"; */
  /* letter-spacing: 0.02em; */
}

body.is-show {
  opacity: 1;
  transition: opacity 1s ease-out;
}

*,
*::before,
*::after {
  box-sizing: border-box;
  outline: 0px !important;
  backface-visibility: hidden;
  /* タップ時のハイライト非表示 */
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

*:last-child {
  margin-bottom: 0 !important;
}

img {
  vertical-align: bottom;
  width: 100%;
}

ul,
ol {
  margin: 0;
  padding: 0;
}

ul li,
ol li {
  list-style-type: none;
}

dl,
dd {
  margin: 0;
}

input,
textarea {
  /* フォーカス時の画面ズーム防止 */
  font-size: 16px;
}

textarea {
  /* 直下の隙間除去 */
  display: block;
}

table {
  border-collapse: collapse;
  border: none;
  border-spacing: 0;
}

sup {
  font-size: 50%;
  vertical-align: super;
  position: relative;
  top: -0.1em;
}

sub {
  font-size: 50%;
  vertical-align: sub;
  position: relative;
  bottom: -0.1em;
}

em {
  font-style: normal;
}

a {
  color: #0c6340;
}

a:hover {
  text-decoration: none;
}

/* font
------------------------------*/

@font-face {
  font-family: 'icomoon';
  src: url('../fonts/icomoon.eot?xull95');
  src: url('../fonts/icomoon.eot?xull95#iefix') format('embedded-opentype'),
    url('../fonts/icomoon.ttf?xull95') format('truetype'),
    url('../fonts/icomoon.woff?xull95') format('woff'),
    url('../fonts/icomoon.svg?xull95#icomoon') format('svg');
  font-weight: normal;
  font-style: normal;
  font-display: block;
}

@font-face {
  font-family: 'Butler';
  src: url('../fonts/Butler-UltraLight.woff2') format('woff2'),
    url('../fonts/Butler-UltraLight.woff') format('woff');
  font-weight: 200;
  font-style: normal;
}

@font-face {
  font-family: 'Butler';
  src: url('../fonts/Butler-Medium.woff2') format('woff2'),
    url('../fonts/Butler-Medium.woff') format('woff');
  font-weight: 500;
  font-style: normal;
}

@font-face {
  font-family: 'Butler';
  src: url('../fonts/Butler-Light.woff2') format('woff2'),
    url('../fonts/Butler-Light.woff') format('woff');
  font-weight: 300;
  font-style: normal;
}

@font-face {
  font-family: 'Butler';
  src: url('../fonts/Butler-Black.woff2') format('woff2'),
    url('../fonts/Butler-Black.woff') format('woff');
  font-weight: 900;
  font-style: normal;
}

@font-face {
  font-family: 'Butler';
  src: url('../fonts/Butler-Bold.woff2') format('woff2'),
    url('../fonts/Butler-Bold.woff') format('woff');
  font-weight: bold;
  font-style: normal;
}

@font-face {
  font-family: 'Butler';
  src: url('../fonts/Butler-ExtraBold.woff2') format('woff2'),
    url('../fonts/Butler-ExtraBold.woff') format('woff');
  font-weight: 800;
  font-style: normal;
}

@font-face {
  font-family: 'Butler';
  src: url('../fonts/Butler.woff2') format('woff2'), url('../fonts/Butler.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}

.en {
  font-family: 'Butler', serif;
}

/* display
------------------------------*/
.pc {
  display: inline;
}

@media all and (max-width: 1023px) {
  .pc {
    display: none;
  }
}

.tb {
  display: none;
}

@media all and (max-width: 1023px) {
  .tb {
    display: inline;
  }
}

@media all and (max-width: 576px) {
  .tb {
    display: none;
  }
}

.sp {
  display: none;
}

@media all and (max-width: 576px) {
  .sp {
    display: inline;
  }
}

.pc.tb {
  display: inline;
}

@media all and (max-width: 576px) {
  .pc.tb {
    display: none;
  }
}

.tb.sp {
  display: none;
}

@media all and (max-width: 1023px) {
  .tb.sp {
    display: inline;
  }
}

/* delay scroll animation
------------------------------*/
.fadeInBlur {
  opacity: 0;
}

.fadeInBlur.is-show {
  animation: fadeInBlur 0.5s ease-out forwards;
}

@keyframes fadeInBlur {
  0% {
    opacity: 0;
    filter: blur(8px);
    pointer-events: none;
  }
  100% {
    opacity: 1;
    filter: blur(0);
    pointer-events: auto;
  }
}

/* wrap
------------------------------*/
.l-wrap {
  /* overflow: hidden; */
  position: relative;
  z-index: 0;
  width: 100%;
}

/* html.is-sp .l-wrap {
  overflow: hidden;
} */

/* main
------------------------------*/
.l-main {
  display: block;
  width: 100%;
  position: relative;
  z-index: 0;
}

.l-main::before {
  content: '';
  display: block;
  width: 56.3rem;
  aspect-ratio: 1/1;
  position: fixed;
  z-index: -1;
  top: -40rem;
  left: -10rem;
  background: url('../img/top/blur.png') no-repeat center bottom / contain;
}

@media all and (max-width: 576px) {
  .l-main::before {
    top: -27rem;
    left: -22rem;
    width: 39.4rem;
  }
}

.l-main::after {
  content: '';
  display: block;
  width: 56.3rem;
  aspect-ratio: 1/1;
  position: fixed;
  z-index: -1;
  bottom: 0;
  right: 16rem;
  background: url('../img/top/blur.png') no-repeat center bottom / contain;
}

@media all and (max-width: 576px) {
  .l-main::after {
    bottom: 0;
    right: -15.2rem;
    width: 39.4rem;
  }
}

/* header
------------------------------*/
.p-header__btn {
  display: none;
}

@media all and (max-width: 576px) {
  .p-header__btn {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 50px;
    height: 50px;
    position: fixed;
    top: 0px;
    right: 0px;
    z-index: 30;
    background-color: #194332;
    cursor: pointer;
  }
}

.p-header__btn-inner {
  width: 60%;
  height: 20%;
  position: relative;
  z-index: 0;
}

.p-header__btn span {
  display: inline-block;
  position: absolute;
  left: 0px;
  height: 1px;
  background-color: #fff;
  width: 100%;
  transition: all 0.3s ease-out;
  transform-origin: center center;
}

.p-header__btn span:nth-of-type(1) {
  top: 0;
}

.p-header__btn span:nth-of-type(2) {
  bottom: 0;
}

.p-header__btn.is-show span:nth-of-type(1) {
  transform: rotate(30deg);
  top: 45%;
}

.p-header__btn.is-show span:nth-of-type(2) {
  transform: rotate(-30deg);
  bottom: 45%;
}

/* nav
------------------------------*/
.p-nav {
  /* display: none; */
  position: fixed;
  top: -1px;
  bottom: -1px;
  right: -1px;
  /* left: 0px; */
  z-index: 20;
  width: 72%;
  /* height: 100vh; */
  transform: translate3d(100%, 0, 0);
  transition: transform 0.3s ease-out;

  /* align-items: center;
  overscroll-behavior: contain;
  overflow-y: scroll; */
}

/* .p-nav::before,
.p-nav::after {
  content: '';
  display: flex;
  height: calc(100% + 1px);
  width: 1px;
  background-color: transparent;
} */

.p-nav.is-show {
  /* display: block !important; */
  transform: translate3d(0, 0, 0);
}

.p-nav__inner {
  width: 100%;
  height: 100%;
  background-color: #194332;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* .p-nav__inner::before,
.p-nav__inner::after {
  content: '';
  display: block;
  height: calc(100vh + 1px);
  width: 1px;
  background-color: transparent;
} */

.p-nav__content {
  width: 100%;
  max-height: 100%;
  overflow: auto;
  /* オーバースクロール無効 */
  overscroll-behavior: none;
  /* スクロール非表示（Firefox） */
  scrollbar-width: none;
}

.p-nav__content::-webkit-scrollbar {
  /* スクロール非表示（Chrome, Edge, Safari） */
  display: none;
}

.p-nav__overlay {
  display: none;
  background: #1a2923;
  opacity: 0.9;
  position: fixed;
  top: -1px;
  bottom: -1px;
  left: -1px;
  right: -1px;
  z-index: 20;
}

ul.p-nav__list {
  padding: 0 3rem;
  margin-bottom: 5rem;
}

ul.p-nav__list li {
  margin-bottom: 3rem;
}

ul.p-nav__list li a {
  color: #fff;
  text-decoration: none;
  font-size: 1.6rem;
  font-weight: 400;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

ul.p-nav__list li a::after {
  font-family: 'icomoon';
  content: '\e900';
  font-size: 1.2rem;
  transform-origin: center;
  transform: rotate(90deg);
  display: block;
}

.p-nav__pagetop {
  width: 5.4rem;
  margin: 0 auto;
}

/* footer
------------------------------*/
.l-footer {
  width: 100%;
  overflow: hidden;
  position: relative;
  z-index: 0;
}

.p-footer {
  font-family: 'ヒラギノ角ゴ ProN W3', 'Hiragino Kaku Gothic ProN', '游ゴシック Medium',
    'Yu Gothic Medium', '游ゴシック体', 'YuGothic', 'メイリオ', 'Meiryo', 'verdana', sans-serif;
  font-weight: 400;
  width: 100%;
  /* padding: min(5.6rem, 56px) 20px; */
  padding: 15px 20px 100px;
  background-color: #fff;
  line-height: 1.5;
}

@media all and (max-width: 576px) {
  .p-footer {
    padding: 10px 20px 100px;
  }
}

.p-footer__inner {
  position: relative;
  z-index: 0;
}

.p-footer__credit {
  font-size: 13px;
  margin-bottom: 20px;
}

@media all and (max-width: 576px) {
  .p-footer__credit {
    font-size: min(12px, calc(12 / 390 * 100vw));
    margin-bottom: 20px;
  }
}

.p-footer__bnr {
  width: min(19rem, 190px);
  margin: 0 auto min(4rem, 40px);
}

@media all and (max-width: 576px) {
  .p-footer__bnr {
    width: 11rem;
    margin-bottom: 1.7rem;
  }
}

.p-footer__bnr a {
  display: block;
  transition: opacity 0.3s ease-out;
}

.p-footer__bnr a:hover {
  opacity: 0.6;
}

ul.p-footer__linklist {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  width: min(69.4rem, 694px);
  /* margin: 0 auto min(4.8rem, 48px); */
  margin: 0 auto 60px;
  /* transform: translate(3%, 0); */
}

@media all and (max-width: 576px) {
  ul.p-footer__linklist {
    width: 33rem;
    /* margin-bottom: 1.8rem; */
    margin-bottom: 50px;
    margin-top: -1.5rem;
  }
}

@media all and (max-width: 576px) {
  ul.p-footer__linklist li {
    margin-top: 1.5rem;
  }
}

ul.p-footer__linklist li:nth-of-type(1) {
  width: calc(59 / 694 * 100%);
}

@media all and (max-width: 576px) {
  ul.p-footer__linklist li:nth-of-type(1) {
    width: 50%;
  }

  ul.p-footer__linklist li:nth-of-type(1) a {
    display: block;
    width: calc(55 / 165 * 100%);
    margin: 0 auto;
  }
}

ul.p-footer__linklist li:nth-of-type(2) {
  width: calc(160 / 694 * 100%);
  transform: translate(10%, 0);
}

@media all and (max-width: 576px) {
  ul.p-footer__linklist li:nth-of-type(2) {
    width: 50%;
    transform: translate(0, 0);
  }

  ul.p-footer__linklist li:nth-of-type(2) a {
    display: block;
    width: calc(136 / 165 * 100%);
    margin: 0 auto;
  }
}

ul.p-footer__linklist li:nth-of-type(3) {
  width: calc(124 / 694 * 100%);
}

@media all and (max-width: 576px) {
  ul.p-footer__linklist li:nth-of-type(3) {
    width: 50%;
  }

  ul.p-footer__linklist li:nth-of-type(3) a {
    display: block;
    width: calc(88 / 165 * 100%);
    margin: 0 auto;
  }
}

ul.p-footer__linklist li:nth-of-type(4) {
  width: calc(136 / 694 * 100%);
}

@media all and (max-width: 576px) {
  ul.p-footer__linklist li:nth-of-type(4) {
    width: 50%;
  }

  ul.p-footer__linklist li:nth-of-type(4) a {
    display: block;
    width: calc(101 / 165 * 100%);
    margin: 0 auto;
  }
}

ul.p-footer__linklist li a {
  transition: opacity 0.3s ease-out;
}

ul.p-footer__linklist li a:hover {
  opacity: 0.6;
}

.p-footer__txt {
  display: flex;
  justify-content: center;
  margin: 0 0 50px;
}

@media all and (max-width: 576px) {
  .p-footer__txt {
    margin-bottom: 40px;
  }
}

.p-footer__txt ul li {
  font-size: 14px;
  margin-bottom: 4px;
  display: flex;
}

@media all and (max-width: 576px) {
  .p-footer__txt ul li {
    font-size: 12px;
  }
}

.p-footer__txt ul li::before {
  content: '※';
  margin-right: 0.2em;
}

.p-footer__copyright {
  font-size: 14px;
  letter-spacing: 0.05em;
  text-align: center;
}

@media all and (max-width: 576px) {
  .p-footer__copyright {
    font-size: 11px;
    margin-bottom: 30px;
  }
}

/* pagetop
------------------------------*/
.p-pagetop {
  width: min(7.5rem, 75px);
  aspect-ratio: 53/47;
  background: url(../img/common/pagetop.svg) no-repeat center center / contain;
  position: absolute;
  /* top: min(1.6rem, 16px); */
  /* right: 0; */
  top: min(5.5rem, 55px);
  right: min(7rem, 70px);
  cursor: pointer;
  transition: opacity 0.3s ease-out;
}

@media all and (max-width: 576px) {
  .p-pagetop {
    width: 5.3rem;
    position: static;
    margin: 0 auto;
  }
}

.p-pagetop:hover {
  opacity: 0.6;
}

/* modal
------------------------------*/
.c-modal {
  display: none;
  position: fixed;
  top: -1px;
  bottom: -1px;
  left: -1px;
  right: -1px;
  z-index: 9999;
}

.c-modal__inner {
  width: 100%;
  height: 100%;
  background-color: rgba(25, 67, 50, 0.9);
  /* background-color: #fff; */
  display: flex;
  align-items: center;
  /* align-items: flex-start; */
  justify-content: center;
  padding: 8rem 7rem;
}

@media all and (max-width: 576px) {
  .c-modal__inner {
    padding: 2rem;
  }
}

.c-modal__content {
  position: relative;
  background-color: #fff;
  width: 100%;
  /* max-width: 1160px; */
  height: 100%;
  /* max-height: 100%; */
  padding: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
}

@media all and (max-width: 576px) {
  .c-modal__content {
    padding: 8rem 3rem 3rem;
  }
}

.c-modal__content-inner {
  width: 100%;
  max-height: 100%;
  overflow: auto;
  /* オーバースクロール無効 */
  overscroll-behavior: none;
  /* スクロール非表示（Firefox） */
  scrollbar-width: none;
}

.c-modal__content-inner::-webkit-scrollbar {
  /* スクロール非表示（Chrome, Edge, Safari） */
  display: none;
}

.c-modal__close {
  width: 6rem;
  height: 6rem;
  position: absolute;
  top: 3rem;
  right: 3rem;
  cursor: pointer;
  transition: all 0.2s ease-out;
}

.c-modal__close::before,
.c-modal__close::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1px;
  height: calc(100% * 1.4);
  background: #194332;
}

.c-modal__close::before {
  transform: translate(-50%, -50%) rotate(45deg);
}

.c-modal__close::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

@media all and (max-width: 576px) {
  .c-modal__close {
    width: 4rem;
    height: 4rem;
    top: 2rem;
    right: 2rem;
  }
}

.c-modal__close:hover {
  opacity: 0.6;
}
