@charset "utf-8";

/* ==========================================================================
   HTML断片読み込みモーダル
   ========================================================================== */
html.mhb-locked,
body.mhb-locked {
  overflow: hidden;
  height: 100%;
}

body.mhb-locked {
  position: fixed;
  width: 100%;
}

.mhb-modalwindow {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 9999999;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  cursor: pointer;
}
   @media screen and (max-width: 1200px) {
      .modalwindow{
      } 
   }
   @media screen and (max-width: 600px) {
      .modalwindow{
      } 
   }





/* 背景全体 */
.mhb-modalwindow {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 9999999;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  cursor: pointer;

  background-image: url("../images_08th/top/bg/bg_003.jpg");
  background-repeat: repeat;
  background-size: 1000px auto;
  background-position: 0 0;

  animation: cloudBase 140s linear infinite;
}

/* 上に重ねる雲 1 */
.mhb-modalwindow::before {
  content: "";
  position: fixed;
  inset: -10%;
  z-index: 0;
  pointer-events: none;

  background-image: url("../images_08th/top/bg/bg_004.jpg");
  background-repeat: repeat;
  background-size: 1400px auto;
  background-position: 0 0;

  opacity: 0.45;
  filter: blur(1px);

  animation: cloudLayer01 220s linear infinite;
}

/* 上に重ねる雲 2 */
.mhb-modalwindow::after {
  content: "";
  position: fixed;
  inset: -15%;
  z-index: 0;
  pointer-events: none;

  background-image: url("../images_08th/top/bg/bg_004.jpg");
  background-repeat: repeat;
  background-size: 700px auto;
  background-position: 0 0;

  opacity: 0.32;
  filter: blur(2px);

  animation: cloudLayer02 90s linear infinite;
}

/* 一番下の雲 */
@keyframes cloudBase {
  from {
    background-position: 0 0;
  }
  to {
    background-position: 1000px 0;
  }
}
/* ゆっくり大きく流れる雲 */
@keyframes cloudLayer01 {
  from {
    background-position: 0 0;
  }
  to {
    background-position: 1400px 180px;
  }
}

/* 少し速く、逆方向気味に流れる薄い雲 */
@keyframes cloudLayer02 {
  from {
    background-position: 0 0;
  }
  to {
    background-position: -700px -120px;
  }
}



/* モーダル本体を雲レイヤーより前に出す */
.mhb-body {
  position: relative;
  z-index: 1;

  width: 100%;
  min-height: 100dvh;
  padding: 80px 20px 60px;
  box-sizing: border-box;
  cursor: default;
}

.mhb-content {
  position: relative;
  z-index: 2;
  width: 100%;
}

.mhb-fragment-wrap {
  position: relative;
  z-index: 2;
  width: 100%;
}


.mhb-modalwindow.is_visible {
  display: block;
}

.mhb-body {
  position: relative;
  width: 100%;
  min-height: 100dvh;
  padding: 80px 20px 60px;
  box-sizing: border-box;
  cursor: default;
}

.mhb-content {
  width: 100%;
}

.mhb-fragment-wrap {
  width: 100%;
}

/* 読み込んだ中の class をそのまま使う前提 */
.mhb-fragment-wrap > * {
  pointer-events: auto;
}

/* 閉じるボタンはさらに前面 */
.mhb-close {
  position: fixed;
  top: 0;
  right: 0;
  z-index: 10000000;

  width: 100px;
  height: 100px;
  margin: 0 0 auto auto;
  border: none;
  cursor: pointer;

  background-color: transparent;
  background-image: url("../images_08th/menu/b_close2.png");
  background-size: 100% auto;
  background-position: center center;
  background-repeat: no-repeat;
}

.mhb-close:hover {
  background-image: url("../images_08th/menu/b_close2.png");
  background-size: 100% auto;
  background-position: center center;
  background-repeat: no-repeat;
}

/* ローディング */
.mhb-loading {
  display: none;
  justify-content: center;
  align-items: center;
  min-height: 200px;
  color: #fff;
  font-size: 14px;
  letter-spacing: 0.08em;
}

/* エラー */
.mhb-error {
  width: 95%;
  max-width: 900px;
  margin: 80px auto;
  background: #fff;
  color: #000;
  padding: 30px 20px;
  box-sizing: border-box;
  border: rgba(131,0,0,1) 2px solid;
  box-shadow: 10px 10px rgba(131,0,0,1);
}

/* スマホ */
@media screen and (max-width: 600px) {
  .mhb-close {
    width: 80px;
    height: 70px;
    margin: 0 0 auto auto;
  }
}

@media screen and (max-width: 480px) {
  .mhb-body {
    padding: 40px 0 10px 0;
  }

  .mhb-close {
    width: 60px;
    height: 60px;
    margin: 0 0 auto auto;
  }
}