@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Zen+Old+Mincho:wght@400;700;900&display=swap');

/*
*********************************************************
campaign-contents
*********************************************************
*/
#campaign-contents {
  max-width: 100%;
  margin: 0 auto;
}

/* chrome 画像・グラフィック文字のぼやけ対策 */
@media (-webkit-min-device-pixel-ratio: 0) and (min-resolution: .001dpcm) {
  #campaign-contents img {
    image-rendering: -webkit-optimize-contrast;
  }
}

/* safari 画像 デフォルト値 */
@media (-webkit-min-device-pixel-ratio: 0) {

  _::-webkit-full-page-media,
  _:future,
  :root #campaign-contents img {
    image-rendering: auto;
  }
}

#campaign-contents .maximg {
  width: 100%;
  height: auto
}

#campaign-contents picture,
#campaign-contents picture img {
  width: 100%;
  height: auto;
  display: block;
}

.print-only,
.plan-print-only {
  display: none;
}

.inner-xs-wrap2,
.inner-xs-wrap,
.inner-s-wrap,
.inner-wrap {
  width: calc(100% - 16px);
  overflow: visible;
}

@media (max-width: 768px) {

  .inner-xs-wrap2,
  .inner-xs-wrap,
  .inner-s-wrap,
  .inner-wrap {
    width: 100%;
  }
}

#campaign-contents summary {
  list-style: none;
}

#campaign-contents details>summary::-webkit-details-marker {
  display: none;
}

/*
*********************************************************
#section-kv
*********************************************************
*/
#section-kv .kv-photo {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 1440/460;
  }
  
  #section-kv .kv-photo h1 {
    position: absolute;
    width: 100%;
    top: 0;
    right: 0;
  }
  
  /* ---------------------------------------------  */
  /* --------------------- SP --------------------  */
  /* ---------------------------------------------  */
  @media screen and (max-width:768px) {
    #section-kv .kv-photo {
      aspect-ratio: 768/839;
    }
  }
  
/*
*********************************************************
#section-greeting
*********************************************************
*/
#section-greeting {
  overflow: hidden;
  position: relative;
  width: 100%;
  margin: 0 auto;
  padding-bottom: 56px;
  padding-top: 100px;
}

#section-greeting .greeting-text {
  color: #006fb6;
  position: relative;
  text-align: center;
  font-size: 2.4rem;
  font-weight: bold;
  line-height: 1.8;
  margin: 0 auto;
}

#section-greeting .lead-text {
  font-size: 2rem;
  line-height: 1.5;
}

@media (min-width: 769px) and (max-width: 1024px) {
  #section-greeting .greeting-text {
    font-size: 2.2vw;
  }
}

/* ---------------------------------------------  */
/* --------------------- SP --------------------  */
/* ---------------------------------------------  */
@media (max-width:768px) {
  #section-greeting {
    margin: 64px auto 0;
    padding: 0;
  }

  #section-greeting .greeting-text {
    font-size: 4.4vw;
    line-height: 1.6;
    padding: 0;
  }

  #section-greeting .greeting-text p:nth-child(n+2) {
    padding-top: var(--size24);
  }

  #section-greeting .lead-text {
    font-size: 4vw;
    line-height: 1.6;
  }
}

/*
*********************************************************
topic > h2-band-wrap（共通）
*********************************************************
*/
#campaign-contents .h2-band-wrap {
  width: 100%;
  background-color: #b9d3e8;
  margin: 0;
  padding: 0;
}

#campaign-contents .h2-band-wrap h2,
#campaign-contents .h2-band-wrap p {
  background-color: #589fcc;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 680px;
  font-size: 2.4rem;
  font-weight: bold;
  text-align: center;
  line-height: 1;
  margin: 0 auto;
  padding: 12px 20px;
}

#campaign-contents .h2-band-wrap h2 span,
#campaign-contents .h2-band-wrap p span {
  display: block;
  font-size: 2rem;
  font-weight: normal;
  border: 1px solid #fff;
  padding: 5px;
  margin: 0 10px;
}

/* ---------------------------------------------  */
/* --------------------- SP --------------------  */
/* ---------------------------------------------  */
@media screen and (max-width: 768px) {

  #campaign-contents .h2-band-wrap h2,
  #campaign-contents .h2-band-wrap p {
    font-size: 5vw;
    line-height: 1.4;
    min-height: 40px;
    max-width: calc(100% - 28px);
    padding: 10px 14px;
  }

  #campaign-contents .h2-band-wrap h2 span,
  #campaign-contents .h2-band-wrap p span {
    font-size: 2.8vw;
  }
}

@media (max-width: 320px) {

  #campaign-contents .h2-band-wrap h2,
  #campaign-contents .h2-band-wrap p {
    font-size: 4.4vw;
  }
}

/*
***************************************************************
btn-page-top
***************************************************************
*/
#campaign-contents .btn-page-top {
    position: fixed;
    right: var(--size48);
    bottom: 80px;
    z-index: 1000;
    width: var(--size48);
    height: var(--size48);
    background-color: #fff;
    border-radius: 50%;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
  }
  
  #campaign-contents .btn-page-top.show {
    opacity: 1;
    visibility: visible;
  }
  
  #campaign-contents .btn-page-top img {
    width: var(--size24);
    height: var(--size24);
  }
  
  @media (max-width: 768px) {
    #campaign-contents .btn-page-top {
      right: var(--size8);
    }
  }

/*
***************************************************************
top-btn
***************************************************************
*/
    #section-linkarea .btn-nml {
        background: #fff;
    }
    #section-linkarea .btn-nml:hover {
        background: var(--keyColor);
        /* color: #014E98; */
        opacity: .7;
    }
  
  @media (max-width: 768px) {
    #section-linkarea .inner-xs-wrap {
      width: calc(100% - 32px);
      margin: var(--size32) auto;
    }
    #section-linkarea .btn-nml:hover {
      color: #fff;
      opacity: 1;
    }
  }



