@charset "UTF-8";
/*common上書き*/
main .row{ width: 83.4%; }
main .row .row{ width: 80%; }
h1{font-size: 2.8vw;}
p{font-size: 1.04vw;}
@media only screen and (max-width: 640px) {
  main .row{ width: 84%; }
  main .row .row{
    width: 100%;
    padding: 0;
  }
  p{font-size: 3.5vw;}
}

/*  共通  */
@media only screen and (min-width: 641px) {
  .w30{ width: 25vw; }
  .w70{ width: 47vw; }
}
p {
  margin: 0;
  line-height: 1.9;
}
p.bold {
  margin: 1.5vw 0 0;
}


.mainImage {
  position: relative;
  margin: 0 auto 7.4vw;
  padding-top: 8.3vw;
}
.mainImage::before{
  width: 100vw;
  height: 91vw;
  position: absolute;
  content: "";
  z-index: -1;
  top: 0;
  left: 0;
  background: url(../img/utils/bg.png) left top / cover no-repeat;
}
 .mainImage .section-content.row {
  background: transparent;
  padding: 0;
}

.hero-contents h1 {
  font-size: 2.7vw;
  line-height: 1.4;
  font-weight: 400;
  margin-top: 0.4vw;
  letter-spacing: -0.04em;
}
.hero-contents p {
  font-size: 1.05vw;
  font-weight: 700;
}
 @media only screen and (min-width: 641px) {
  .hero-contents {
    color: #fff;
    padding: 4.7vw 0 0;
  }
 }
@media only screen and (max-width: 640px) {
  .mainImage {
    padding-top: 16vw;
    margin: 0;
  }
  .mainImage::before {
    width: 100vw;
    height: 207vw;
    background: url(../img/utils/bg_sp.png) left top / cover no-repeat;
  }
  .mainImage .section-content.row {
    margin: 0 0 0 auto;
    width: 100%;
    padding: 0;
    background: #fff;
  }
  .hero-contents{
    position: relative;
    width: 100%;
    padding: 11vw 0 0;
    color: #1a459c;
  }
  .mainImage .flex-column {
    align-items: center;
  }
  .hero-contents h1 {
    font-size: 6.3vw;
    line-height: 1.6;
    margin-bottom: 4.5vw;
    font-weight: 500;
    margin-top: 0;
    letter-spacing: 0;
  }
  .hero-contents p {
    line-height: 2;
    font-size: 3.2vw;
    filter: none;
    letter-spacing: 0.1em;
  }
}

.section-content.row {
  background: #fff;
  padding: 5vw 0;
}
.section-content .content-inner {
  padding: 3vw 0;
  margin-bottom: 7vw;
  text-align: left;
  font-weight: 700;
}

p.introduction{
  padding-bottom: 5vw;
}
.privacy dt {
  font-size: 1.2vw;
  font-weight: 700;
  color: #1a459c;
  letter-spacing: 0.1em;
}
.privacy dd{
  padding: 0.2vw 0 2vw;
  line-height: 2;
}
@media only screen and (max-width: 640px) {
  .section-content .content-inner{
    margin-bottom: 14vw;
  }
  .privacy{ background: #fff; }
  p.introduction{
    font-size: 3.4vw;
    font-weight: 500;
    padding-bottom: 12.5vw;
  }
  .privacy dt {
    font-size: 3.8vw;
    letter-spacing: 0;
  }
  .privacy dd{
    padding: 0 0 7vw;
    line-height: 1.95;
    font-size: 3.4vw;
    font-weight: 500;
  }
}


/* ======   site map  ===== */
.gnav-sitemap .mainImage::before{ height: 87vw; }
main .sitemap .row .row{ width: 88%; }
.sitemap .section-content .content-inner{ 
  padding: 2vw 3vw 2vw 0vw;
  margin-bottom: 2vw;
}
.sitemap * {
  color: #312b27;
}
.sitemap .col-3{
  align-items: flex-start;
  justify-content: space-evenly;
}
.sitemap .flex.col-3 .flex-box > li,
.sitemap .flex.col-3 .flex-box > li > a,
.sitemap .flex.col-3 .flex-box h6{
  color: #312b27;
  margin: 0.3vw 0 1.8vw;
  font-size: 1.4vw;
  letter-spacing: 0.05em;
}
.sitemap .flex.col-3 .flex-box h6 {
  margin: 0.3vw 0 0;
}

.sitemap ul.flex {
  padding: 0.6vw 0 0.6vw 1.4vw;
}
.sitemap .sub li {
  list-style: disc;
  font-size: 1.1vw;
  width: 100%;
  padding: 0.4vw 0;
  color: #312b27;
  letter-spacing: 0.05em;
  font-weight: 500;
}
.sitemap .sub li div {
  padding: 1vw 0 1.2vw 0;
  font-size: 1vw;
}
.sitemap .sub li div a {
  padding: 0.2vw 0;
}
.sitemap .inner li {
  padding: 0.5vw 0;
}

@media only screen and (min-width: 641px) {
  .sitemap .flex.col-3 .flex-box {
    width: 27%;
  }
}
@media only screen and (max-width: 640px) {
  .sitemap{ background: #fff; }

  .sitemap .flex.col-3 .flex-box > li,
  .sitemap .flex.col-3 .flex-box > li > a,
  .sitemap .flex.col-3 .flex-box h6{
    font-size: 4vw;
    margin: 0.3vw 0 4vw;
  }
  .sitemap .flex.col-3 .flex-box h6{
    margin-bottom: 2vw;
  }
  .sitemap ul.flex {
    padding: 1.6vw 0 1.6vw 5.4vw;
}
  .sitemap .sub li {
    font-size: 3.5vw;
    padding: 1.4vw;
    }
  .sitemap .sub li div {
    font-size: 3.2vw;
  }
  .sitemap .sub li div a {
    padding: 1.2vw 0;
  }
  .sitemap .inner {
    padding-top: 5vw;
  }
    .sitemap .inner li {
    font-size: 3.5vw;
    padding: 1.2vw 0;
  }
  
}