@media screen and (max-width: 767px) {
  .mb30 {
    margin-bottom: 4.6vw !important;
  }
  .mt30 {
    margin-top: 4.6vw !important;
  }
  .mt50 {
    margin-top: 7vw !important;
  }
}
figure {
  margin: 0;
}

img, object, embed {
  max-width: 100%;
}

@media screen and (min-width: 768px) {
  #mainTitle {
    padding-bottom: 30px;
    height: auto;
  }
  #mainTitle p.lead {
    line-height: 1.7;
  }
}
@media screen and (max-width: 767px) {
  #mainTitle p.lead {
    font-size: 3.2vw;
  }
}

#mainArea *, #mainArea *:before, #mainArea *:after {
  box-sizing: border-box;
}
#mainArea .kvAreaInner {
  margin: 0 auto;
}
@media screen and (min-width: 768px) {
  #mainArea .kvAreaInner {
    width: 1240px;
  }
}
#mainArea .kvAreaInner .txt {
  text-align: left;
}
#mainArea .mainImgBox img {
  width: 100%;
  height: auto;
}
@media screen and (min-width: 768px) {
  #mainArea .mainImgBox .textBox .left {
    width: 30%;
  }
  #mainArea .mainImgBox .textBox .left p.text {
    margin: 4px auto 0;
  }
  #mainArea .mainImgBox .textBox .right {
    width: 70%;
  }
}
@media screen and (max-width: 767px) {
  #mainArea .mainImgBox {
    padding: 0 5vw;
  }
  #mainArea .mainImgBox .mainImg {
    width: 100%;
  }
  #mainArea .mainImgBox .textBox {
    width: 100%;
    padding-bottom: 5vw;
  }
  #mainArea .mainImgBox .textBox .right {
    width: 100%;
  }
  #mainArea .mainImgBox .textBox .txt {
    font-size: 3.4vw;
  }
}
@media screen and (max-width: 767px) {
  #mainArea .pageLink a,
  #mainArea .contentsTitle {
    width: 100%;
    padding-left: 3.4vw;
    padding-right: 3.4vw;
  }
  #mainArea .pageLink a span,
  #mainArea .contentsTitle span {
    position: relative;
    top: auto;
    left: auto;
    margin-bottom: 2vw;
    font-size: 3.2vw;
  }
}
@media screen and (max-width: 767px) {
  #mainArea .pageLink a {
    padding-right: 9vw;
  }
}
#mainArea .txt {
  font-size: min(20px, 3.8vw);
  text-align: left;
  line-height: 1.9;
  position: relative;
}
#mainArea .txt p {
  line-height: inherit;
}
#mainArea .contentsBox .contentsTitle {
  margin-bottom: min(50px, 5vw);
}
@media screen and (max-width: 767px) {
  #mainArea .contentsBox {
    padding: 0 5vw;
  }
}
#mainArea .subtitle {
  position: relative;
  font-size: min(22px, 4.4vw);
  font-weight: bold;
  line-height: 1.2;
  text-align: left;
  padding: 0 0 0 14px;
  border-left: #151515 6px solid;
}
#mainArea .subtitle2 {
  font-size: min(18px, 4vw);
  font-weight: bold;
  line-height: 36px;
  text-align: left;
}
#mainArea .subtitle3 {
  font-size: min(20px, 4vw);
  text-align: center !important;
  background: #ddd;
  padding: 5px 10px;
}
#mainArea .subtitle4 {
  font-size: min(20px, 4vw);
  text-align: center !important;
  background: #000;
  color: #FFF;
  padding: 5px 10px;
}
#mainArea .imgBox {
  background: #fff;
  text-align: center;
  padding: 30px 40px;
}
@media screen and (max-width: 767px) {
  #mainArea .imgBox {
    width: calc(100% - 10vw);
    padding: 3.4vw;
    margin: 12.5vw auto 0;
  }
  #mainArea .imgBox.full {
    width: 100%;
    margin-top: 0;
  }
}
#mainArea .ques {
  margin: min(30px, 5vw) auto 0;
  font-size: min(20px, 3.8vw);
  font-weight: bold;
  text-align: left;
  line-height: 1.7;
  position: relative;
}
#mainArea .ques::before {
  content: "";
  width: 40px;
  height: 1px;
  display: inline-block;
  vertical-align: middle;
  background-color: #333;
  margin-right: 5px;
  transform: translateY(-2px);
}
#mainArea .ans {
  margin: min(25px, 3vw) auto 0;
  font-size: min(20px, 3.8vw);
  font-weight: 500;
  text-align: left;
  line-height: 1.9;
}
#mainArea .ans + .ans {
  margin-top: 40px;
}

.flexBox {
  display: flex;
  flex-wrap: wrap;
  gap: 50px;
}
@media screen and (max-width: 767px) {
  .flexBox {
    gap: 5vw;
  }
}
.flexBox.pcrv {
  flex-direction: row-reverse;
}
.flexBox.ai-center {
  align-items: center;
}
.flexBox + .flexBox {
  margin-top: min(50px, 5vw);
}
.flexBox .col {
  width: calc((100% - 50px) / 2);
}
@media screen and (max-width: 767px) {
  .flexBox .col {
    width: 100%;
  }
}
.flexBox .col figcaption {
  font-size: min(14px, 3.4vw);
  color: #666;
  margin-top: 5px;
}
.flexBox.flexBox3 .col {
  width: calc((100% - 100px) / 3);
}
@media screen and (max-width: 767px) {
  .flexBox.flexBox3 .col {
    width: 100%;
  }
}

.tips {
  border: 1px solid #CCC;
  padding: min(30px, 3.4vw);
  margin-top: min(50px, 5vw);
  background-color: rgba(255, 255, 255, 0.5);
  position: relative;
}
.tips .hxHint {
  font-size: min(24px, 4vw);
  margin-bottom: min(15px, 3vw);
}
.tips .hxHint span {
  font-size: min(16px, 3.6vw);
  font-weight: normal;
}

.txt_link_in {
  position: relative;
  font-size: min(18px, 3.8vw);
  padding-left: min(20px, 4.4vw);
  color: #005ab4 !important;
  font-weight: bold;
}
.txt_link_in:hover {
  text-decoration: underline;
}
.txt_link_in::before {
  content: "";
  display: block;
  position: absolute;
  top: 0.15em;
  left: 0;
  width: 15px;
  aspect-ratio: 1/1;
  background: url(/common/img/ico_img_01.svg) no-repeat;
  background-size: cover;
}
@media screen and (max-width: 767px) {
  .txt_link_in::before {
    width: 3.4vw;
  }
}

.numList {
  list-style: decimal;
  padding-left: 1.4em;
}
.numList li {
  list-style: decimal;
}
.numList li:not(:last-child) {
  margin-bottom: 10px;
}

.checkList li {
  padding-left: 1.4em;
  position: relative;
}
.checkList li:not(:last-child) {
  margin-bottom: 10px;
}
.checkList li::before {
  content: "";
  display: block;
  width: 1em;
  aspect-ratio: 1/1;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg  xmlns='http://www.w3.org/2000/svg' viewBox='0 0 149 149'  preserveAspectRatio='none'%3E%3Cg%3E%3Cpath fill='%23000000' d='M146.8,17.4c-2.9-2.9-7.7-2.9-10.6,0l-67.3,67.3-31-31c-2.9-2.9-7.7-2.9-10.6,0-2.9,2.9-2.9,7.7,0,10.6l36.3,36.3c1.4,1.4,3.3,2.2,5.3,2.2s3.9-.8,5.3-2.2L146.8,28c2.9-2.9,2.9-7.7,0-10.6Z' /%3E%3Cpath fill='%23000000' d='M130.6,65.4c-4.1,0-7.5,3.4-7.5,7.5v55.6H15V20.4h85.6c4.1,0,7.5-3.4,7.5-7.5s-3.4-7.5-7.5-7.5H7.5C3.4,5.4,0,8.8,0,12.9v123.1c0,4.1,3.4,7.5,7.5,7.5h123.1c4.1,0,7.5-3.4,7.5-7.5v-63.1c0-4.1-3.4-7.5-7.5-7.5Z' /%3E%3C/g%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}

/*.COMMON */
#photo_contents a {
  color: #151515;
}

.underBox.lineUp ul {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}
.underBox.lineUp ul li {
  margin: 0 !important;
}
@media screen and (max-width: 767px) {
  .underBox.lineUp ul {
    width: 100%;
    margin: 0;
  }
  .underBox.lineUp ul li {
    width: calc((100% - 5px) / 2);
    background-color: #FFF;
    height: 48vw;
  }
  .underBox.lineUp ul li a {
    padding-bottom: 6vw;
  }
  .underBox.lineUp ul li .img {
    width: 100%;
  }
  .underBox.lineUp ul li .miniBox .box {
    font-size: 3.2vw;
    width: 17vw;
    height: 4.2vw;
    line-height: 4vw;
  }
  .underBox.lineUp ul li p {
    font-size: 3.6vw;
  }
  .underBox.lineUp ul li .link {
    font-size: 3.2vw;
  }
}