@charset "UTF-8";
main > section {
  width: 100%;
  margin: 0 auto;
  background: #fff;
}
main hgroup {
  margin: 0 0 calc(60 / 750 * 100vw);
  text-align: center;
}
main hgroup:not(:first-child) {
  margin: calc(150 / 750 * 100vw) 0 calc(75 / 750 * 100vw);
}
main hgroup h2 {
  position: relative;
  margin: 50px 0 9px;
  font-family: "YuGothic", "游ゴシック", sans-serif;
  font-size: calc(45 / 750 * 100vw);
  font-weight: 500;
}
main hgroup p {
  position: relative;
  font-size: calc(55 / 750 * 100vw);
  font-weight: 500;
}

#campaign {
  width: calc(670 / 750 * 100vw);
  margin: 0 auto;
  text-align: center;
}
#campaign > ul {
  display: grid;
  gap: calc(120 / 750 * 100vw) 0;
}
#campaign > ul > li > dl {
  margin: 0 calc(40 / 750 * 100vw);
  line-height: 1.8;
  padding-bottom: calc(40 / 750 * 100vw);
  border-bottom: 1px solid #e8eef4;
}
#campaign > ul > li > dl > dt {
  margin: calc(36 / 750 * 100vw) 0 calc(9 / 750 * 100vw);
  font-size: calc(40 / 750 * 100vw);
  line-height: 1.2;
}
@media print, screen and (min-width:769px){
  main > section {
    width: auto;
  }
  main hgroup {
    margin: 0 0 min(calc(60 / 1240 * 100vw), 60px);
  }
  main hgroup:not(:first-child) {
    margin: min(calc(110 / 1240 * 100vw), 110px) 0 0;
  }
  main hgroup h2 {
    margin: 40px 0 40px;
    padding: 0 0 20px;
    font-size: 2.6rem;
  }
  main hgroup p {
    margin: -40px 0 0;
    font-size: 3.6rem;
  }
  #campaign {
    width: min(calc(1200 / 1240 * 100vw), 1200px);
  }
  #campaign > ul {
    grid-template-columns: repeat(3, min(calc(372 / 1240 * 100vw), 372px));
    gap: min(calc(90 / 1240 * 100vw), 90px) min(calc(28 / 1240 * 100vw), 28px);
    justify-content: center;
  }
  #campaign > ul > li > dl {
    margin: 0 20px;
    padding-bottom: 20px;
  }
  #campaign > ul > li > dl > dt {
    margin: 18px 0 8px;
    font-size: 22px;
  }
}