@charset "UTF-8";
/*　*/
/* ===== base ===== */
.l-header {
  position: absolute;
  top: 0;
  left: 0;
  background-color: transparent;
  border-bottom: 0;
}
.l-header_logo {
  display: none;
}

.l-contents::before {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background: transparent url(../img/home/bg_main_sp.jpg) 50% 50% no-repeat;
  background-size: cover;
  z-index: -1;
  content: "";
}
@media print, screen and (min-width: 768px) {
  .l-contents::before {
    background-image: url(../img/home/bg_main.jpg);
  }
}

.l-main {
  padding-top: 0;
}

/* ===== logo ===== */
.logo {
  margin-bottom: 5.5rem;
  padding-top: 6rem;
  text-align: center;
  line-height: 0;
}
@media print, screen and (min-width: 768px) {
  .logo {
    padding-top: 7.5rem;
  }
}
.logo img {
  width: 20rem;
}
@media print, screen and (min-width: 768px) {
  .logo img {
    width: 22rem;
  }
}

/* ===== contents ===== */
.contents_ttl01 {
  margin-bottom: 1rem;
  font-size: 1.9rem;
  text-align: center;
  color: #fff;
}
@media print, screen and (min-width: 768px) {
  .contents_ttl01 {
    margin-bottom: 1.5rem;
    font-size: 2.2rem;
  }
}
.contents_list01 {
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.2;
}
@media only screen and (max-width: 767px) {
  .contents_list01 {
    margin-left: 0.5rem;
    margin-right: 0.5rem;
  }
}
@media print, screen and (min-width: 768px) {
  .contents_list01 {
    display: flex;
    margin: -1rem;
    font-size: 2.1rem;
    flex-wrap: wrap;
  }
}
.contents_list01 li {
  position: relative;
  border-radius: 0 0.5rem 0 0.5rem;
  background: #fff;
  overflow: hidden;
}
@media only screen and (max-width: 767px) {
  .contents_list01 li:not(:last-child) {
    margin-bottom: 1.5rem;
  }
}
@media print, screen and (min-width: 768px) {
  .contents_list01 li {
    margin: 1rem;
    border-radius: 0 1rem 0 1rem;
    width: calc(50% - 2rem - 0.1px);
  }
}
.contents_list01 li::before {
  position: absolute;
  top: 0;
  left: 0;
  border: 1px solid rgba(255, 255, 255, 0.5);
  border-radius: 0 0.5rem 0 0.5rem;
  width: 100%;
  height: 100%;
  z-index: 20;
  content: "";
  pointer-events: none;
}
@media print, screen and (min-width: 768px) {
  .contents_list01 li::before {
    border-radius: 0 1rem 0 1rem;
  }
}
.contents_list01 a {
  display: block;
  position: relative;
  background: #932536;
  color: #fff;
  z-index: 10;
}
@media print, screen and (min-width: 768px) {
  .contents_list01 a:hover {
    opacity: 0.7;
  }
}
.contents_list01 figure {
  display: block;
}
.contents_list01 .m-img01 {
  padding-bottom: calc(390 / 650 * 100%);
}
.contents_list01 figcaption {
  display: flex;
  width: 100%;
  min-height: 5rem;
  text-align: center;
  align-items: center;
  justify-content: center;
}
@media print, screen and (min-width: 768px) {
  .contents_list01 figcaption {
    min-height: 6.5rem;
  }
}
.contents_hr01 {
  display: block;
  margin: 2.5rem 0;
  border: 0;
  height: 1px;
  background: #fff;
}
@media print, screen and (min-width: 768px) {
  .contents_hr01 {
    margin: 6rem -2rem;
  }
}
.contents_list02 {
  margin-top: 6rem;
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.3;
}
@media only screen and (max-width: 767px) {
  .contents_list02 {
    margin-left: 0.5rem;
    margin-right: 0.5rem;
  }
}
@media print, screen and (min-width: 768px) {
  .contents_list02 {
    font-size: 2.1rem;
  }
}
.contents_list02 li {
  border-radius: 0 0.5rem 0 0.5rem;
  background: #fff;
}
@media print, screen and (min-width: 768px) {
  .contents_list02 li {
    border-radius: 0 1rem 0 1rem;
  }
}
.contents_list02 li:not(:last-child) {
  margin-bottom: 1.5rem;
}
@media print, screen and (min-width: 768px) {
  .contents_list02 li:not(:last-child) {
    margin-bottom: 2rem;
  }
}
.contents_list02 a {
  display: block;
  padding: 2rem 1rem;
  border-radius: 0 0.5rem 0 0.5rem;
  background: #932536;
  color: #fff;
  text-align: center;
}
@media print, screen and (min-width: 768px) {
  .contents_list02 a:hover {
    opacity: 0.7;
  }
}
@media print, screen and (min-width: 768px) {
  .contents_list02 a {
    padding: 1.7rem 1rem;
    border-radius: 0 1rem 0 1rem;
  }
}