@charset "UTF-8";

/*====================

RESET/BASE

====================*/
:root {
  --color01:#000;
  --color02:#fff;
  --color03:#039fd6;
  --color04:#666;

  --max-width: 700px;
  --width: 90%;

  --font-size: clamp(16px, 2vw, 17px);
}

html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  vertical-align: baseline;
}
body {
  background-color: #fff;
  font-family: "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro","游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-optical-sizing: auto;
  font-size: 17px;
  font-style: normal;
  font-weight: 400;
  line-height: 1.7;
  width: 100% !important;
}
ul, li {
  list-style: none;
}
a {
  color: var(--color01);
  text-decoration: none;
}
#container {
  color: var(--color01);
  font-feature-settings: "palt";
  overflow: hidden;
}
#container img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}
.display__sp {
  display: none;
}
@media screen and (max-width: 767px) {
  .display__sp {
    display: block;
  }
}

.font-bold-700 {
  font-weight: 700;
}
.clearfix {
  clear: both;
}


/* ファーストビュー */
.firstview {
  position: relative;
}

.firstview__inn {
  max-width: 1600px;
  height: clamp(310px,45vw,700px);
  background-image: url(main.png);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  margin: auto;
  position: relative;
}
.firstview__title {
  width: 50%;
  max-width: 730px;
  padding-top: 3%;
  padding-top: 1%;
  margin: 0 auto;
}
.firstview__title img {
  width: 100%;
}
.sponsor {
  width: 100%;
  font-size: clamp(10px, 1.3vw, 12px);
  text-align: right;
  color: var(--color01);
  position: absolute;
  top: 3px;
}
.sponsor__wrap {
  width: 90%;
  max-width: 800px;
  margin: 0 auto;
}
.sponsor__txt {
  margin: 0;
}
@media screen and (max-width: 996px) {
  .firstview__inn {
    padding-top: 20vw;
    background-position: center top;
  }
  .firstview__title {
    width: clamp(65%,75%,63vw);
    position: absolute;
    top: clamp(1vw,3vw,5vw);
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    padding-top: 0;
  }
}
@media screen and (max-width: 767px) {
  .firstview__title {
    /* width: 90vw; */
    width: clamp(73%,83%,120px);
    top: clamp(20px, 2vw, 4vw);
    padding-top: 0;
  }
}
@media screen and (max-width: 499px) {
  .firstview__inn {
    
    padding-top: 10vw;
  }
  .firstview__title {
    width: clamp(75%,86%,375px);
  }
}

/* リード */
.lead {
  width: 85%;
  max-width: 800px;
  background-color: var(--color03);
  padding: 30px 50px;
  margin: 0 auto;
  margin-top: -90px;
  margin-bottom: 90px;
  position: relative;
  box-sizing: border-box;
}
.lead__txt {
  text-align: justify;
  color: var(--color02);
  font-size: var(--font-size);
}
@media screen and (max-width: 996px) {
  .lead {
    margin-top: -100px;
  }
}
@media screen and (max-width: 767px) {
  .lead {
    padding: 20px;
    margin-top: -60px;
    margin-bottom: 40px;
  }
}

/* セクション共通 */
.section + .section {
  margin-top: 100px;
}
.section__wrap {
  width: var(--width);
  max-width: var(--max-width);
  margin: 0 auto;
}
.section__inn {
  max-width: 1000px;
  background-color: #fff;
  padding: 50px 150px;
  margin: 0 auto;
}
.section__title {
  font-size: 21px;
  line-height: 1.5;
  color: var(--color03);
  margin-bottom: 40px;
}
.section__title::after {
  content: "";
  width: 100%;
  height: 15px;
  height: clamp(5px,calc(2vw + 3px),15px);
  display: block;

  background-image: url(sub.png);
  background-size: 100%;
  background-repeat: no-repeat;
}
.question__txt {
  color: var(--color04);
}
.section__txt {
  
  font-size: var(--font-size);
}
.section__txt + .section__txt {
  margin-top: 50px;
}
.section__txt.question__txt + .section__txt, .section__txt.question__txt + .section__imagebox {
  margin-top: 25px;
}
.section__name {
  margin-right: 18px;
}
.section__name01 {
  color: var(--color03);
}
.section__name02 {
  color: var(--color01);
}
.section-list {
  margin-top: 10px;
  padding-left: 1.4em;
}
.section-list__item {
  font-size: var(--font-size);
  list-style: decimal;
}
.section-list + .section__txt {
  margin-top: 10px;
}
.section__imagebox {
  margin-top: 50px;
}
.section__image {
  width: 57%;
}
.section__image.float_left {
  float: left;
  margin: 0 50px 30px -7%;
}
.section__image.float_right {
  float: right;
  margin: 0 -7% 30px 50px;
}
.section__image.section__image--full {
  left: 50%;
  max-width: 1600px;
  width: 100vw;
  position: relative;
  top: 0;
  transform: translateX(-50%);
}
.section__caption {
  color: var(--color04);
  display: block;
  font-size: clamp(14px, calc(.45vw + 12.6px), 16px);
  padding-top: 10px;
}
@media screen and (max-width: 996px) {
  .section__inn {
    padding: 50px 80px;
  }
}
@media screen and (max-width: 767px) {
  .section + .section {
    margin-top: 60px;
  }
  .section__inn {
    padding: 20px;
  }
  .section__title {
    font-size: 20px;
    margin-bottom: 25px;
  }
  .section__txt + .section__txt {
    margin-top: 30px;
  }
  .section__imagebox {
    margin-top: 30px;
  }
  .section__image {
    width: auto;
  }
  .section__image.float_left, .section__image.float_right {
    float: none;
    margin: 0 auto 25px;
  }
  .section__image.float_left img, .section__image.float_right img {
    width: 100%;
  }
}

/* 注釈 */
.section.annotation {
  margin-top: 50px;
}
.annotation_txt {
  font-size: 14px;
}
.annotation_txt + .annotation_txt {
  margin-top: 20px;
}


/* 関連情報 */
.aside {
  width: var(--width);
  max-width: var(--max-width);
  border-top: 1px solid var(--color04);
  text-align: center;
  margin: 100px auto 0;
  padding: 20px 0 80px;
}
.aside__title {
  color: var(--color03);
  font-size: 21px;
  
}
.related-link {
  margin-top: 40px;
  font-size: clamp(14px, calc(.45vw + 12.6px), 16px);
}
.related-link__title {
  
}
.related-link a {
  color: var(--color03);
  text-decoration: underline;
  word-break: break-all;
}
.logo {
  margin-top: 100px;
}
@media screen and (max-width: 767px) {
  .aside {
    padding-bottom: 30px;
    margin-top: 60px;
  }
  .related-link {
    margin-top: 20px;
  }
  .logo {
    margin-top: 30px;
  }
}