/**
* common
*/
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');

:root {
  /**
   * color
   */
  --main-bg-color: #ffffff;
  --main-color: #603813;
  --color-white: #ffffff;
  --color-green: #237a00;
  --color-beige: #f0ebdd;
}

.sp-only {
  @media screen and (min-width:769px) {
    display: none;
  }
}
.pc-only {
  @media screen and (max-width:768px) {
    display: none;
  }
}

/**
 * 余白
 */
.mb-16 { margin-bottom: 16px; }
.mb-24 { margin-bottom: 24px; }
.mb-32 { margin-bottom: 32px; }


/**
 * テキスト
 */
.text-19 { font-size: 19px; }
.text-24 { font-size: 24px; }
.text-left { text-align: left; }
.text-center { text-align: center; }
.text-right { text-align: right; }
.text-green {
  color: var(--color-green);
}
.text-orange {
  color: var(--color-orange);
}
.text-bold {
  font-weight: bold;
}

/**
 * contents幅
 */
.contents-1720 {
  margin-inline: auto;
  padding-inline: 20px;
  width: 100%;
  max-width: calc(1720px + 40px);
}
.contents-1500 {
  margin-inline: auto;
  padding-inline: 20px;
  width: 100%;
  max-width: calc(1500px + 40px);
}
.contents-1322 {
  margin-inline: auto;
  padding-inline: 20px;
  width: 100%;
  max-width: calc(1322px + 40px);
}
.contents-1070 {
  margin-inline: auto;
  padding-inline: 20px;
  width: 100%;
  max-width: calc(1070px + 40px);
}

img {
  max-width: 100%;
  height: auto;
}

/**
 * body
 */
body {
  margin: 0;
  padding: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  color: var(--main-color);
  background-color: var(--main-bg-color);
}

/**
 * header
 */
header {
  padding-top: 16px;
  padding-bottom: 16px;
  background-color: var(--color-beige);
  @media screen and (min-width:769px) {
    padding-top: 40px;
    padding-bottom: 40px;
  }
  .logo {
    img {
      width: auto !important;
      height: 100%;
      max-height: 80px;
      @media screen and (min-width:769px) {
        max-height: 160px;
      }
    }
  }
}

/**
 * footer
 */
footer {
  padding-top: 96px;
  padding-bottom: 80px;
  color: var(--color-orange);
  text-align: center;
  @media screen and (min-width:769px) {
    padding-top: 160px;
  }
  .logo {
    margin-bottom: 16px;
    margin-inline: auto;
    padding-inline: 20px;
    width: 100%;
    max-width: calc(388px + 40px);
    img {
      max-width: 100%;
    }
  }
  .copy {
    font-size: 10px;
  }
}

/**
 * 見出し
 */
h2 {
  margin-bottom: 32px;
  font-size: 38px;
  font-weight: bold;
  color: var(--color-orange);
  text-align: center;
}

/**
 * モーダル
 */
.modal-overlay {
  align-items: center;
  background: rgba(0,0,0,.6);
  bottom: 0;
  display: flex;
  justify-content: center;
  left: 0;
  position: fixed;
  right: 0;
  top: 0;
  z-index: 100;
}

.modal-container {
  background-color: #fff;
  max-height: 80vh;
  max-width: 500px;
  overflow-y: auto;
  padding: 30px;
  width: 80%;
}

.modal-header {
  position: relative;
  .modal-close {
    position: absolute;
    top: 0;
    right: 0;
    background: transparent;
    border: 0;
    &::before {
      content: "\2715";
    }
  }  
}
.modal-open {
  display: block;
}

/* モーダルアニメーション */
@keyframes mmfadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes mmfadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}

@keyframes mmslideIn {
  from {
    transform: translateY(15%);
  }
  to {
    transform: translateY(0);
  }
}

@keyframes mmslideOut {
  from {
    transform: translateY(0);
  }
  to {
    transform: translateY(-10%);
  }
}

.micromodal-slide {
  display: none;
}

.micromodal-slide.is-open {
  display: block;
}

.micromodal-slide[aria-hidden="false"] .modal-overlay {
  animation: mmfadeIn .3s cubic-bezier(.0, .0, .2, 1);
}

.micromodal-slide[aria-hidden="false"] .modal-container {
  animation: mmslideIn .3s cubic-bezier(0, 0, .2, 1);
}

.micromodal-slide[aria-hidden="true"] .modal-overlay {
  animation: mmfadeOut .3s cubic-bezier(.0, .0, .2, 1);
}

.micromodal-slide[aria-hidden="true"] .modal-container {
  animation: mmslideOut .3s cubic-bezier(0, 0, .2, 1);
}

.micromodal-slide .modal-container,
.micromodal-slide .modal-overlay {
  will-change: transform;
}