@charset "UTF-8";

.cf:after {
  content: "";
  display: block;
  clear: both;
}
.cf:before {
  content: "";
  display: block;
  clear: both;
}
.cf {
  display: block;
}
.bold {
  font-weight: bold;
}
.center {
  text-align: center;
}
.font_blue {
  color: #00aafa;
}
.bg_gray {
  background: #eef0f5;
}
.bg_blue {
  background: #00aafa;
}
.indent_1em {
  text-indent: -1em;
  padding-left: 1em;
}
.youtube {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
}
.youtube iframe {
  position: absolute;
  top: 0;
  right: 0;
  width: 100% !important;
  height: 100% !important;
}

header {
  background: #fff;
}
.main-visual.flex {
  display: flex;
  align-items: center;
}
.main-visual-inner {
  text-align: center;
  position: relative;
  padding: 0 0 50vw !important;
}
.main-visual-inner p {
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  transform: translateY(-50%);
}
.breadcrumb h1 {
  font-size: inherit;
}
section .container {
  padding: calc(30px + (70 - 30) * ((100vw - 320px) / (767 - 320))) 0 calc(50px + (100 - 50) * ((100vw - 320px) / (767 - 320)));
}
h2.title {
  font-family: 'Noto Sans JP', sans-serif;
  text-align: center;
}
h2.title > span {
  line-height: 1.5;
  display: inline-block;
  margin-bottom: 11.3333vw;
  position: relative;
}
h2.title > span:after {
  content: "";
  position: absolute;
  left: 0;
  width: 100%;
  bottom: -2px;
  border-bottom: calc(2px + (5 - 2) * ((100vw - 320px) / (767 - 320))) solid #00aafa;
  /*transition: all 2s ease;*/
}
h2.title span.sub {
  color: #00aafa;
  font-size: calc(13px + (33 - 13) * ((100vw - 320px) / (767 - 320)));
  border-bottom: none;
  padding-bottom: 0;
}
section p {
  font-size: calc(11px + (26 - 11) * ((100vw - 320px) / (767 - 320)));
  font-weight: bold;
  line-height: 2;
}
.gray_box {
  background: #eef0f5;
  padding: 4vw;
  margin: 4vw 0;
}
.white_box {
  background: #fff;
  padding: 4vw;
  margin: 4vw 0;
  border-radius: 4px;
}

/* sitemap */
.sitemap section li {
  position: relative;
  border-bottom: 1px solid #000;
}
.sitemap section li a {
  color: #000;
  padding: 5vw 10vw 5vw 2vw;
  display: block;
}
.sitemap section li:after {
  content: "";
  position: absolute;
  background: url(../img/common/link_arrow.png) #00aafa no-repeat center;
  background-size: 6px;
  width: 6.4vw;
  height: 6.4vw;
  border-radius: 50%;
  top: 50%;
  transform: translateY(-50%);
  right: 2vw;
}
.sitemap section .midashi {
  font-size: 3.7333vw;
  font-family: 'Noto Sans JP', sans-serif;
  display: flex;
  align-items: center;
  margin: 9.0666vw 0 6.6666vw;
}
.sitemap section .midashi:before,
.sitemap section .midashi:after {
  content: "";
  height: 4px;
  flex-grow: 1;
  background-color: #00aafa;
}
.sitemap section .midashi span {
  color: #000;
  font-weight: bold;
  text-align: center;
  line-height: 8.2666vw;
  width: 53.3333vw;
  background: #00aafa;
  border-radius: 4.2vw;
}

/* minor */
body.minor .white_box {
  padding-bottom: 10vw;
}
body.minor .dlTitle {
  text-align: center;
  margin: 2em 0 1em;
}
body.minor .dlTitle span {
  color: #fff;
  text-align: center;
  background: #00aafa;
  width: 60%;
  border-radius: 3px;
  padding: 8px;
  box-sizing: border-box;
}
body.minor .white_box p a {
  color: #000;
  text-decoration: underline;
}

/* 404 */
body.nf section p {
  font-size: 4.2vw;
}

/* pr */
body.pr .gray_box .big {
  font-size: 4vw;
}

/* push7 */
body.push7 section {
  padding-bottom: calc(50px + (100 - 50) * ((100vw - 320px) / (767 - 320)));
}
body.push7 section .container {
  text-align: center;
  background: #fff;
  padding-top: 5%;
  padding-bottom: 0;
}
body.push7 section .body_aco {
  display: none;
}
body.push7 section li {
  font-size: 3.4375vw;
  width: 32%;
  float: left;
  margin-right: 2%;
  margin-bottom: 2%;
}
body.push7 section li:nth-child(3n) {
  margin-right: 0;
}
body.push7 section li a {
  color: #fff;
  background: url(../img/push7/button.png) bottom 6px center no-repeat, #84ACC7;
  width: 100%;
  height: auto;
  display: block;
  padding: 5% 0 20%;
  background-size: 55.31914893617021% auto;
}
body.push7 section .mt30 {
  margin-top: 8%;
}

/* policy */
body.policy .policy_maincontainer {
  margin: 0 0 8%;
}
body.policy .policy_maincontainer .ttl13 {
  color: #00aafa;
}
body.policy .mt20 {
  margin-top: 5%;
}
body.policy .mb20 {
  margin-bottom: 5%;
}

.main-visual {
  margin-top: calc(56px + (136.25 - 56) * ((100vw - 320px) / (767 - 320)));
  height: calc(150px + (360 - 150) * ((100vw - 320px) / (767 - 320)));
  background-size: 100%;
}
.main-visual img {
  width: calc(255px + (600 - 255) * ((100vw - 320px) / (767 - 320)));
  padding-top: calc(41px + (102 - 41) * ((100vw - 320px) / (767 - 320)));
  position: absolute;
  transform: translateX(-50%);
}

.sp {
  display: inline-block !important;
}
.sp_b {
  display: block !important;
}
.pc,
.pc_b {
  display: none !important;
}

@media screen and (min-width:768px) {
  section .container {
    padding: 90px 0 100px;
  }
  .w930 {
    max-width: 930px;
    margin-left: auto;
    margin-right: auto;
  }
  .main-visual-inner {
    height: 390px;
    padding: 0 !important;
  }
  h2.title {
    font-size: 34px;
  }
  h2.title > span {
    border-bottom: 4px solid #00aafa;
    padding-bottom: 3px;
    margin-bottom: 50px;
  }
  h2.title > span:after {
    border-bottom: none;
  }
  h2.title span.sub {
    font-size: 24px;
  }
  section p {
    font-size: 16px;
  }
  .gray_box {
    margin: 40px 0;
    padding: 30px;
  }
  .white_box {
    margin: 40px 0;
    padding: 30px;
  }
  .white_box h2.title > span {
    margin-bottom: 30px;
  }

  /* sitemap */
  .sitemap section li {
    width: 340px;
    margin-right: 20px;
    margin-bottom: 20px;
    float: left;
  }
  .sitemap section li:nth-child(3n) {
    margin-right: 0;
  }
  .sitemap section li:after {
    width: 30px;
    height: 30px;
    right: 10px;
  }
  .sitemap section li a {
    padding: 20px 10px;
  }
  .sitemap section li a:hover {
    opacity: 0.8;
  }
  .sitemap section .midashi {
    font-size: 18px;
    margin: 50px 0 30px;
  }
  .sitemap section .midashi span {
    width: 280px;
    line-height: 49px;
    border-radius: 25px;
  }

  /* minor */
  body.minor .white_box {
    padding-bottom: 50px;
  }
  body.minor .dlTitle span {
    width: 300px;
    display: block;
    margin: 0 auto;
  }
  body.minor .dlLinks {
    width: 300px;
    margin: 0 auto;
  }
  body.minor .white_box p a:hover {
    text-decoration: none;
  }

  /* 404 */
  body.nf section p {
    font-size: 24px;
  }

  /* pr */
  body.pr .gray_box .big {
    font-size: 20px;
  }

  /* push7 */
  body.push7 section {
    background: #EEF0F5;
    padding-top: 90px;
    padding-bottom: 100px;
  }
  body.push7 section .container {
    padding: 40px 187px 40px;
    box-sizing: border-box;
  }
  body.push7 section .midashi {
    background: #6A8EBB;
    max-width: 1080px;
    margin: 0 auto;
  }
  body.push7 section li {
    font-size: 16px;
    font-weight: bold;
    text-align: center;
    width: 163px;
    margin-right: 18px;
    margin-bottom: 18px;
  }
  body.push7 section li:nth-child(3n) {
    margin-right: 2%;
  }
  body.push7 section li:nth-child(4n) {
    margin-right: 0;
  }
  body.push7 section li a {
    text-decoration: none;
    background-size: 76px auto;
    height: 56px;
    padding: 10px;
    border-radius: 2px;
    box-sizing: border-box;
  }
  body.push7 section li a:hover {
    opacity: 0.7;
    filter:alpha(opacity=70);
    -ms-filter: "alpha(opacity=70)";
    transition: opacity 0.3s ease 0s;
  }
  body.push7 section .mt30 {
    margin-top: 30px;
  }

  .main-visual {
    margin-top: 90px;
    height: 390px;
  }
  .main-visual img {
    width: 590px;
    padding-top: 117px;
  }

  /* policy */
  body.policy .policy_maincontainer {
    width: 930px;
    margin: 0 auto 40px auto;
  }
  body.policy .policy_maincontainer .ttl13 {
    font-size: 19px;
    font-weight: bold;
    line-height: 1.4;
  }
  body.policy .mt20 {
    margin-top: 20px;
  }
  body.policy .mb20 {
    margin-bottom: 20px;
  }

  .sp,
  .sp_b {
    display: none !important;
  }
  .pc {
    display: inline-block !important;
  }
  .pc_b {
    display: block !important;
  }
}
@media screen and (max-width: 1280px) and (min-width: 768px) {
  section {
    width: 1280px;
  }
}