/* all
------------------------------------------------------------------ */
*,
::before,
::after {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  border-style: solid;
  border-width: 0;
}

p,
table,
blockquote,
address,
pre,
iframe,
form,
figure,
dl {
  margin: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  line-height: inherit;
  font-weight: inherit;
  margin: 0;
}

ul,
ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

dt {
  font-weight: bold;
}

dd {
  margin-left: 0;
}

a {
  background-color: transparent;
  text-decoration: none;
  color: inherit;
}

b,
strong {
  font-weight: bolder;
}

code,
kbd,
samp {
  font-family: monospace, monospace; /* 1 */
  font-size: inherit; /* 2 */
}

small {
  font-size: 80%;
}

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

img,
embed,
object,
iframe {
  vertical-align: bottom;
}

img {
  max-width: 100%;
  height: auto;
}

@media screen and (max-width: 768px) {
  img {
    width: 100%;
    height: auto;
  }
}
html {
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  height: -webkit-fill-available;
  font-size: 62.5%;
}

body {
  margin: 0 auto;
  padding: 0;
  font-family: Yu Gothic, Hiragino Kaku Gothic ProN, Hiragino Kaku Gothic Pro, Hiragino Sans, Meiryo, Osaka, Arial, MS PGothic, sans-serif;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.6;
}
@media (min-width: 768px) {
  body {
    min-width: 1260px;
  }
}

@media (max-width: 767px) {
  .is-pc {
    display: none;
  }
}
@media (min-width: 768px) {
  .is-sp {
    display: none;
  }
}
#header {
  background: #fff;
  width: 100%;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  line-height: 1;
}
@media (min-width: 768px) {
  #header {
    padding-left: 160px;
    padding-top: 30px;
    padding-bottom: 30px;
  }
}
@media (max-width: 767px) {
  #header {
    padding-left: 8.9743589744vw;
    padding-top: 3.8461538462vw;
    padding-bottom: 3.8461538462vw;
  }
}
@media (min-width: 768px) {
  #header .header-logo {
    width: 272px;
  }
}
@media (max-width: 767px) {
  #header .header-logo {
    width: 34.8717948718vw;
    max-width: 272px;
  }
}
#header .header-logo img {
  width: 100%;
}

#footer {
  width: 100%;
  background: #2D2D2D;
  color: #FFFFFF;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  text-align: center;
  line-height: 1;
}
@media (min-width: 768px) {
  #footer {
    padding-top: 24px;
    padding-bottom: 24px;
  }
}
@media (max-width: 767px) {
  #footer {
    padding-top: 3.8461538462vw;
    padding-bottom: 3.8461538462vw;
    font-size: 4.1025641026vw;
  }
}
#footer .footer-copyright img {
  width: 100%;
}

.kv {
  background-color: #000;
  width: 100%;
  overflow: hidden;
}
@media (min-width: 768px) {
  .kv {
    padding-bottom: 138px;
    background-image: url(../img/kv_bg_pc.avif);
    background-size: 1920px auto;
    background-repeat: no-repeat;
    background-position: center bottom;
  }
}
@media (min-width: 1920px) {
  .kv {
    padding-bottom: 7.1875vw;
    background-size: 100% auto;
  }
}
@media (max-width: 767px) {
  .kv {
    padding-bottom: 12.8205128205vw;
    background-image: url(../img/kv_bg_sp.avif);
    background-size: 100%;
    background-repeat: no-repeat;
    background-position: center bottom;
  }
}
.kv .kv__img {
  width: 100%;
  margin: auto;
}
@media (min-width: 768px) {
  .kv .kv__img {
    position: relative;
    width: 1920px;
    left: 50%;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
  }
}
@media (min-width: 1920px) {
  .kv .kv__img {
    width: 100%;
    left: auto;
    -webkit-transform: none;
            transform: none;
  }
}
@media (min-width: 1920px) {
  .kv .kv__img {
    left: auto;
    -webkit-transform: none;
            transform: none;
  }
}
.kv .kv__img img {
  width: 100%;
}
.kv .kv__ttl {
  position: relative;
  line-height: 0;
  margin: auto;
}
@media (min-width: 768px) {
  .kv .kv__ttl {
    margin-top: -222px;
    width: 1099px;
  }
}
@media (max-width: 767px) {
  .kv .kv__ttl {
    margin-top: -43.8461538462vw;
    width: 89.7435897436vw;
  }
}
.kv .kv__text {
  position: relative;
  color: #fff;
  font-weight: 700;
  text-align: center;
}
@media (min-width: 768px) {
  .kv .kv__text {
    margin-top: 24px;
    font-size: 2.4rem;
    line-height: 1.7916666667;
  }
}
@media (max-width: 767px) {
  .kv .kv__text {
    margin-top: 6.1538461538vw;
    font-size: 4.6153846154vw;
    line-height: 1.7777777778;
  }
}

.cm {
  text-align: center;
}
@media (min-width: 768px) {
  .cm {
    padding-top: 100px;
    padding-bottom: 47px;
  }
}
@media (max-width: 767px) {
  .cm {
    padding-top: 20.5128205128vw;
    padding-bottom: 15.3846153846vw;
  }
}
.cm .cm__ttl {
  font-weight: 700;
  line-height: 1;
  color: #D3171D;
}
@media (min-width: 768px) {
  .cm .cm__ttl {
    font-size: 4.9rem;
    letter-spacing: 0.02857em;
  }
}
@media (max-width: 767px) {
  .cm .cm__ttl {
    font-size: 8.4615384615vw;
    letter-spacing: 0.0424em;
  }
}
.cm .cm__text {
  font-weight: 700;
}
@media (min-width: 768px) {
  .cm .cm__text {
    margin-top: 40px;
    font-size: 2rem;
    line-height: 1.5;
  }
}
@media (max-width: 767px) {
  .cm .cm__text {
    margin-top: 8.2051282051vw;
    font-size: 4.6153846154vw;
  }
}
.cm .cm__text {
  line-height: 1.5;
}
.cm .cm__item {
  margin: auto;
}
@media (min-width: 768px) {
  .cm .cm__item {
    margin-top: 40px;
    width: 800px;
  }
}
@media (max-width: 767px) {
  .cm .cm__item {
    margin-top: 8.2051282051vw;
    width: 89.7435897436vw;
  }
}

.archive {
  background: #F3F3F3;
  text-align: center;
}
@media (min-width: 768px) {
  .archive {
    padding-top: 60px;
    padding-bottom: 115px;
  }
}
@media (max-width: 767px) {
  .archive {
    padding-top: 15.3846153846vw;
    padding-bottom: 20.5128205128vw;
  }
}
.archive .archive-headding {
  line-height: 1;
}
.archive .archive-headding__ttl {
  font-weight: 700;
}
@media (min-width: 768px) {
  .archive .archive-headding__ttl {
    font-size: 1.8rem;
  }
}
@media (max-width: 767px) {
  .archive .archive-headding__ttl {
    font-size: 4.1025641026vw;
  }
}
.archive .archive-column {
  margin: auto;
}
@media (min-width: 768px) {
  .archive .archive-column {
    width: 1100px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    gap: 40px;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    margin-top: 40px;
  }
}
@media (max-width: 767px) {
  .archive .archive-column {
    width: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    place-items: center;
    gap: 4.1025641026vw 0;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    margin-top: 8.2051282051vw;
  }
}
@media (min-width: 768px) {
  .archive .archive-column__item {
    width: 530px;
  }
}
@media (max-width: 767px) {
  .archive .archive-column__item {
    width: 79.4871794872vw;
  }
}
.archive .archive-column__ttl {
  text-align: center;
  font-weight: 700;
}
@media (min-width: 768px) {
  .archive .archive-column__ttl {
    margin-top: 12px;
    font-size: 1.8rem;
  }
}
@media (max-width: 767px) {
  .archive .archive-column__ttl {
    margin-top: 2.0512820513vw;
    font-size: 3.5897435897vw;
  }
}

.about {
  text-align: center;
  background-color: #fff;
}
@media (min-width: 768px) {
  .about {
    padding-top: 150px;
    padding-bottom: 120px;
    background-image: url(../img/about_bg_pc.avif);
    background-size: 1920px auto;
    background-repeat: no-repeat;
    background-position: center top;
  }
}
@media (min-width: 1920px) {
  .about {
    padding-bottom: 7.8125vw;
    background-size: 100% auto;
  }
}
@media (max-width: 767px) {
  .about {
    padding-top: 33.3333333333vw;
    padding-bottom: 30.7692307692vw;
    background-image: url(../img/about_bg_sp.avif);
    background-size: 100%;
    background-repeat: no-repeat;
    background-position: center top;
  }
}
.about .about-headding__ttl {
  font-weight: 700;
  position: relative;
}
@media (min-width: 768px) {
  .about .about-headding__ttl {
    padding-top: 99px;
    padding-bottom: 24px;
    font-size: 4rem;
    letter-spacing: -0.0225em;
    line-height: 1;
  }
}
@media (max-width: 767px) {
  .about .about-headding__ttl {
    padding-bottom: 6.1538461538vw;
    font-size: 6.6666666667vw;
    letter-spacing: -0.0346em;
    line-height: 1.5;
  }
}
.about .about-headding__ttl::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  background: #D3171D;
}
@media (min-width: 768px) {
  .about .about-headding__ttl::after {
    width: 100px;
    height: 3px;
  }
}
@media (max-width: 767px) {
  .about .about-headding__ttl::after {
    width: 15.3846153846vw;
    height: 0.5128205128vw;
  }
}
.about .about-headding__text {
  font-weight: 700;
}
@media (min-width: 768px) {
  .about .about-headding__text {
    margin-top: 40px;
    font-size: 2rem;
    line-height: 1.5;
  }
}
@media (max-width: 767px) {
  .about .about-headding__text {
    margin-top: 8.2051282051vw;
    font-size: 4.6153846154vw;
  }
}
.about .about-headding__text {
  line-height: 1.5;
}
.about .about-column {
  position: relative;
  margin: auto;
}
@media (min-width: 768px) {
  .about .about-column {
    margin-top: 40px;
    width: 1100px;
    height: 715px;
  }
}
@media (max-width: 767px) {
  .about .about-column {
    margin-top: 8.2051282051vw;
    width: 89.7435897436vw;
  }
}
.about .about-column .about-column__img {
  position: relative;
  width: 100%;
  top: 0;
  left: 0;
}
.about .about-column .about-column__list {
  font-weight: 700;
}
@media (min-width: 768px) {
  .about .about-column .about-column__list {
    position: absolute;
    top: 0;
    left: 0;
    width: 1100px;
    height: 715px;
  }
  .about .about-column .about-column__list li {
    position: absolute;
    background: #2D2D2D;
    color: #fff;
    height: 48px;
    padding: 0 20px;
    line-height: 48px;
    font-size: 1.7rem;
  }
  .about .about-column .about-column__list .about-column__item01 {
    top: 486px;
    right: 48px;
  }
  .about .about-column .about-column__list .about-column__item02 {
    top: 420px;
    left: 85px;
  }
  .about .about-column .about-column__list .about-column__item03 {
    top: 287px;
    right: 396px;
  }
  .about .about-column .about-column__list .about-column__item04 {
    top: 67px;
    right: 192px;
  }
  .about .about-column .about-column__list .about-column__item05 {
    top: 287px;
    left: 238px;
  }
  .about .about-column .about-column__list .about-column__item06 {
    bottom: 148px;
    right: 416px;
  }
  .about .about-column .about-column__list .about-column__item07 {
    bottom: 144px;
    left: 339px;
  }
}
@media (max-width: 767px) {
  .about .about-column .about-column__list {
    text-align: left;
    margin: auto;
    width: 89.7435897436vw;
  }
  .about .about-column .about-column__list li {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    position: relative;
    height: 24.6153846154vw;
    padding: 4.6153846154vw 0 4.6153846154vw 20.5128205128vw;
    font-size: 4.6153846154vw;
    line-height: 15.3846153846vw;
    border-bottom: solid 1px #D9D9D9;
  }
  .about .about-column .about-column__list li::before {
    content: "";
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    left: 0;
    width: 15.3846153846vw;
    height: 15.3846153846vw;
    background-size: 100%;
    background-repeat: no-repeat;
    background-position: top left;
  }
  .about .about-column .about-column__list .about-column__item01::before {
    background-image: url(../img/about_icon01.avif);
  }
  .about .about-column .about-column__list .about-column__item02::before {
    background-image: url(../img/about_icon02.avif);
  }
  .about .about-column .about-column__list .about-column__item03::before {
    background-image: url(../img/about_icon03.avif);
  }
  .about .about-column .about-column__list .about-column__item04::before {
    background-image: url(../img/about_icon04.avif);
  }
  .about .about-column .about-column__list .about-column__item05::before {
    background-image: url(../img/about_icon05.avif);
  }
  .about .about-column .about-column__list .about-column__item06::before {
    background-image: url(../img/about_icon06.avif);
  }
  .about .about-column .about-column__list .about-column__item07::before {
    background-image: url(../img/about_icon07.avif);
  }
}
.about .about__btn {
  margin: auto;
}
@media (min-width: 768px) {
  .about .about__btn {
    margin-top: 40px;
    width: 610px;
  }
}
@media (max-width: 767px) {
  .about .about__btn {
    margin-top: 8.2051282051vw;
    width: 89.7435897436vw;
  }
}
.about .about__btn a {
  display: block;
  position: relative;
  width: 100%;
  background: #FE0505;
  text-align: center;
  color: #fff;
  font-weight: 700;
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
}
@media (min-width: 768px) {
  .about .about__btn a {
    height: 60px;
    font-size: 20px;
    line-height: 60px;
  }
}
@media (max-width: 767px) {
  .about .about__btn a {
    height: 15.3846153846vw;
    font-size: 4.6153846154vw;
    line-height: 15.3846153846vw;
  }
}
.about .about__btn a:hover {
  opacity: 0.6;
}
.about .about__btn a::after {
  content: "";
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  background-repeat: no-repeat;
  background-position: top left;
  background-image: url(../img/icon_arrow.svg);
  background-size: 100%;
}
@media (min-width: 768px) {
  .about .about__btn a::after {
    right: 60px;
    width: 9px;
    height: 19px;
  }
}
@media (max-width: 767px) {
  .about .about__btn a::after {
    right: 5.641025641vw;
    width: 1.7948717949vw;
    height: 3.9307692308vw;
  }
}

.iframe-video {
  aspect-ratio: 16/9;
  position: relative;
  width: 100%;
}
.iframe-video > iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: none;
}