@charset "UTF-8";

/*====================

RESET/BASE

====================*/
:root {
  --color01:#3e3a39;
  --color02:#005eac;
  --color03:#ffd800;
  --color04:#b81c22;
  --color05:#f8f5de;
  --color06:#936f29;
}
body {
  font-family: "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro","游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  margin: 0 auto;
  padding: 0;
  overflow-x: hidden;
  width: 100% !important;
}
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;
}
ul, li {
  list-style: none;
}
a {
  color: var(--color01);
  text-decoration: none;
}
#container {
  font-family: "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro","游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  color: var(--color01);
  font-feature-settings: "palt";
  overflow: hidden;
  letter-spacing: .05em;
  background-color: var(--color02);
  border-bottom: solid 1px var(--color01);
}
#container img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}
.center {
  text-align: center;
}
.flex {
  display: flex;
}
.font_min {
  font-family: "Zen Old Mincho", serif;
  font-weight: 700;
  font-style: normal;
}
.font_bold {
  font-weight: 600;
}
.display__sp {
  display: none;
}
.contents__wrap {
  width: 90%;
  max-width: 1000px;
  margin: 0 auto;
}
@media screen and (max-width: 767px) {
  .display__sp {
    display: block;
  }
}

/* メインビジュアル */
.mv {
  background-image: url(main.png);
  background-repeat: no-repeat;
  background-position: top center;
  background-size: 1400px auto;
  padding-top: 35px;
}
.mv__wrap {
  width: 90%;
  max-width: 1000px;
  margin: 0 auto;
  box-sizing: border-box;
}
.mv__sub {
  font-size: clamp(16px, 3.5vw, 21px);
  color: var(--color04);
  background-image: linear-gradient(90deg, var(--color05) 70%, transparent);
  padding-left:1em;
  text-indent:-1em;
  position: relative;
}
.mv__sub::after {
  content: "";
  width: 100%;
  height: 100%;
  background-color: var(--color05);
  position: absolute;
  top: 0;
  left: -100%;
}
.mv__ttl {
  margin: 20px 0;
}
.mv__lead {
  max-width: 650px;
  font-size: 17px;
  line-height: 1.8;
  text-align: justify;
  color: var(--color03);
  margin-bottom: 50px;
}
.mv__box {
  font-size: 12px;
  text-align: justify;
  color: #fff;
  gap: 20px;
}
@media screen and (max-width: 1400px) {
  .mv {
    background-position: top left;
  }
}
@media screen and (max-width: 767px) {
  .mv__lead {
    font-size: 16px;
    margin-bottom: 20px;
  }
  .mv__box__area {
    display: block !important;
    margin-bottom: 30px;
  }
  .mv__list__box {
    padding-bottom: 0;
  }
  .list__box2 {
    margin-top: 20px;
  }
}
@media screen and (max-width: 480px) {
  .mv__box__br {
    display: none;
  }
  .mv__box + .mv__box {
    margin-top: 20px;
  }
  .list__box2 .mv__box {
    margin-top: 0;
  }
  .mv__box__ttl {
    text-align: center;
    border-bottom: solid 1px #fff;
    padding-bottom: 5px;
    margin-bottom: 5px;
  }
}
@media screen and (min-width: 481px) {
  .mv__box__area {
    display: grid;
    grid-template-columns: repeat(1, 1fr 2fr);
    gap: 20px;
  }
  .mv__list__box {
    padding-bottom: 25px;
    position: relative;
  }
  .mv__list__box::after {
    content: "";
    width: 1px;
    height: 100%;
    background-color: #fff;
    position: absolute;
    top: 0;
    left: 35px;
  }
  .list__box2::after {
    left: 73px;
  }
  .mv__box {
    display: flex;
    gap: 20px;
  }
  .mv__box + .mv__box {
    margin-top: 15px;
  }
  .mv__box__ttl {
    white-space: nowrap;
  }
  .mv__box__flex {
    display: flex;
    gap: 20px;
  }
  .mv__box__flex .mv__box {
    margin-top: 0;
  }
}

/* セクション */
.section {
  background-image: url(sub.png);
  background-repeat: no-repeat;
  background-size: 405px auto;
  background-position: top right;
}
.section__wrap {
  width: 90%;
  max-width: 1000px;
  background-color: #fff;
  padding: 65px 0;
  margin: 0 auto;
  box-sizing: border-box;
}
.section__inn {
  padding: 0 150px;
}
.section + .section {
  margin-top: 65px;
}
.sec__ttl {
  font-size: clamp(20px, 3.5vw, 28px);
  text-align: justify;
  color: var(--color04);
  margin-bottom: 40px;
}
.sec__txt {
  font-size: 17px;
  line-height: 1.8;
  text-align: justify;
}
.sec__txt + .sec__txt {
  margin-top: 35px;
}
.sec__inn__flex {
  gap: 60px;
  align-items: flex-start;
  margin: 40px 0;
}
.sec__inn__flex .sec__txt {
  width: 70%;
  box-sizing: border-box;
}
.sec__inn__flex .sec__bnr {
  width: 65%;
  box-sizing: border-box;
}
.sec__bnr__img,
.sec__name__box {
  width: 50%;
  background-color: var(--color02);
}
.sec__name__box {
  display: flex;
  align-items: center;
  padding: 0 10px;
}
.sec__name__txt {
  font-size: 12px;
  text-align: justify;
  color: #fff;
}
.sec__name__txt .sec__name__color {
  color: var(--color03);
}
.sec__name__txt .sec__name {
  font-size: 160%;
  font-weight: 600;
  margin-right: .2em;
}
.sec__list__inn {
  width: 65%;
  box-sizing: border-box;
}
.sec__img__list {
  gap: 20px;
}
.sec__img__item {
  width: 50%;
  box-sizing: border-box;
}
.sec__img__caption {
  font-size: 14px;
  margin-top: .3em;
}
.sec__img {
  margin: 40px 0;
}
@media screen and (max-width: 1100px) {
  .section__inn {
    padding: 0 80px;
  }
  .sec__inn__flex {
    display: block;
  }
  .sec__inn__flex .sec__txt {
    width: 100%;
  }
  .sec__inn__flex .sec__bnr,
  .sec__list__inn {
    width: 100%;
    max-width: 350px;
    margin: 40px auto 0;
  }
}
@media screen and (max-width: 767px) {
  .section {
    background-size: 65vw auto;
  }
  .section__wrap {
    padding: 30px 0;
  }
  .section__inn {
    padding: 0 20px;
  }
  .sec__ttl {
    margin-bottom: 30px;
  }
  .sec__inn__flex {
    margin: 30px 0;
  }
  .sec__txt {
    font-size: 16px;
  }
  .sec__inn__flex .sec__bnr, .sec__list__inn {
    margin-top: 30px;
  }
}
@media screen and (max-width: 480px) {
  .sec__name__txt {
    font-size: 11px;
  }
}

/* 表彰 */
.award {
  background-color: var(--color05);
  margin: 65px 60px 0;
}
.award__ttl {
  font-size: clamp(22px, 4vw, 30px);
  color: var(--color06);
  border-left: solid 10px var(--color04);
  padding: 5px 0 5px 20px;
}
.award__inn {
  gap: 35px;
  padding: 25px;
}
.award__box,
.award__list__box {
  width: 50%;
  box-sizing: border-box;
}
.award__txt {
  font-size: 14px;
  line-height: 1.8;
  text-align: justify;
}
.award__img__inn {
  gap: 20px;
  margin-top: 20px;
}
.award__img {
  width: 65%;
  box-sizing: border-box;
}
.award__img__caption {
  width: 35%;
  font-size: 14px;
  text-align: justify;
  box-sizing: border-box;
}
.award__list__txt {
  font-size: 10px;
  text-align: right;
}
.award__table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  box-sizing: border-box;
}
.award__table th,
.award__table td {
  font-size: 11px;
  text-align: left;
  padding: 2px 0;
  border-top: solid 1px var(--color06);
  border-bottom: solid 1px var(--color06);
}
.award__table th {
  width: 85px;
  min-width: 85px;
  white-space: nowrap;
  padding-right: 1.5em;
}
.award__table th span {
  font-size: 14px;
}
@media screen and (max-width: 767px) {
  .award {
    margin: 65px 20px 0;
  }
  .award__inn {
    padding: 20px;
  }
  .award__inn,
  .award__img__inn {
    display: block;
  }
  .award__box,
  .award__list__box,
  .award__img,
  .award__img__caption {
    width: 100%;
  }
  .award__img img {
    width: 100%;
  }
  .award__img__caption {
    margin-top: 5px;
  }
  .award__list__box {
    margin-top: 30px;
  }
}

/* お問い合わせ */
.contact {
  width: 90%;
  max-width: 700px;
  border-top: solid 1px var(--color01);
  padding-top: 20px;
  margin: 65px auto 0;
}
.contact__ttl {
  font-size: 21px;
  margin-top: 20px;
}
.contact__add {
  font-size: 15px;
  margin-bottom: 20px;
}
.contact__email a {
  font-size: 15px;
}
.contact__link a {
  font-size: 15px;
  color: var(--color02);
  text-decoration: underline;
}
@media screen and (max-width: 767px) {
  .contact {
    margin-top: 40px;
  }
  .contact__logo img {
    width: 220px;
  }
  .contact__ttl {
    font-size: 16px;
  }
  .contact__add {
    margin-bottom: 10px;
  }
  .contact__add,
  .contact__email a,
  .contact__link a {
    font-size: 13px;
  }
}