@import url("https://fonts.googleapis.com/css2?family=Cardo:ital,wght@0,400;0,700;1,400&family=Noto+Sans+JP:wght@300;400;500;700&family=Work+Sans:wght@400;500&display=swap");
.download-single {
  margin: 50px auto 180px;
  width: 90%;
  max-width: 1360px;
  display: grid;
  grid-template-columns: auto clamp(300px, 33.3333333333vw, 500px);
  -webkit-column-gap: clamp(30px, 4vw, 60px);
  -moz-column-gap: clamp(30px, 4vw, 60px);
  column-gap: clamp(30px, 4vw, 60px);
}
@media screen and (max-width: 959px) {
  .download-single {
    grid-template-columns: repeat(1, 1fr);
    row-gap: 45px;
    margin: 50px auto 120px;
  }
}
.download-single__meta img {
  max-width: 800px;
  width: 100%;
}
.download-single__thumb img {
  display: block;
  max-width: 100%;
}
.download-single__content {
  margin-top: 45px;
}
.download-single__title {
  font-size: 20px;
  font-weight: 700;
  padding: 0 0 8px;
  border-bottom: 1px rgba(112, 112, 112, 0.3) solid;
  margin: 0 0 24px;
}
.download-single__acc {
  margin: 1em 0 0;
  color: #3faab4;
}

.l-form {
  width: 90%;
  max-width: 700px;
  margin: 20px auto 0;
}
.l-form:first-of-type {
  margin: 0px auto 0;
}
.l-form__name {
  margin: 0 0 10px;
}
.l-form__name.required::before {
  background-color: transparent;
  color: #d43939;
}
.l-form__name.optional::before {
  background-color: transparent;
}
.l-form__accept {
  margin: 25px auto 30px;
}
.l-form__submit {
  display: block;
  width: 90%;
  max-width: 650px;
  padding-right: 40px;
  margin: 0 auto;
  position: relative;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}
@media screen and (min-width: 960px) {
  .l-form__submit {
    padding-right: 0;
  }
  .l-form__submit:hover::after {
    background-color: #59554c;
    right: -25px;
  }
  .l-form__submit:hover input,
  .l-form__submit:hover button,
  .l-form__submit:hover a {
    color: #59554c;
    background-color: #ffffff;
    border-color: #59554c;
  }
}
.l-form__submit::after {
  content: "";
  display: block;
  width: 50px;
  height: 2px;
  position: absolute;
  right: 15px;
  top: 50%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  pointer-events: none;
  background-color: #8c887f;
}
@media screen and (min-width: 960px) {
  .l-form__submit::after {
    right: 0;
    -webkit-transition: right 0.3s;
    transition: right 0.3s;
    background-color: #ffffff;
  }
}
.l-form__submit.single {
  max-width: 650px;
  margin: 64px auto 74px;
  width: 90%;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}
@media screen and (min-width: 960px) {
  .l-form__submit.single {
    margin-bottom: 94px;
  }
}
.l-form__submit input,
.l-form__submit button,
.l-form__submit a {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  width: 100%;
  height: 50px;
  background-color: #59554c;
  border: 2px #ffffff solid;
  -webkit-appearance: none;
  color: #ffffff;
  cursor: pointer;
  text-decoration: none;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
}
@media screen and (min-width: 960px) {
  .l-form__submit input,
  .l-form__submit button,
  .l-form__submit a {
    font-size: 20px;
    height: 75px;
  }
}

.download-thanks__title {
  font-size: 20px;
  margin: 0 0 50px;
}
@media screen and (min-width: 768px) {
  .download-thanks__title {
    font-size: 32px;
    text-align: center;
  }
}
.download-thanks__text {
  margin: 0 auto 40px;
  max-width: 700px;
}
.download-thanks__btn {
  width: 100%;
  max-width: 280px;
  height: 65px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  background-color: #59554c;
  border: 2px #59554c solid;
  position: relative;
  font-family: "Cardo", "Noto Sans JP", serif;
  text-decoration: none;
  margin: 0 auto 0;
  color: #ffffff;
}
@media screen and (min-width: 960px) {
  .download-thanks__btn {
    max-width: 450px;
    width: 100%;
    font-size: 20px;
    font-weight: 700;
  }
  .download-thanks__btn:hover {
    background-color: #ffffff;
    color: #59554c;
  }
  .download-thanks__btn:hover::after {
    background-color: #59554c;
    -webkit-transform: translate(50%, -50%);
    transform: translate(50%, -50%);
  }
}
.download-thanks__btn::after {
  content: "";
  display: block;
  width: 50px;
  height: 2px;
  background-color: #ffffff;
  position: absolute;
  right: 0;
  top: 50%;
  -webkit-transform: translate(50%, -50%);
  transform: translate(50%, -50%);
}
@media screen and (min-width: 960px) {
  .download-thanks__btn::after {
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    -webkit-transition: -webkit-transform 0.3s;
    transition: -webkit-transform 0.3s;
    transition: transform 0.3s;
    transition:
      transform 0.3s,
      -webkit-transform 0.3s;
  }
}
.download-thanks__return {
  width: 100%;
  max-width: 280px;
  height: 65px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  background-color: #59554c;
  border: 2px #59554c solid;
  position: relative;
  font-family: "Cardo", "Noto Sans JP", serif;
  text-decoration: none;
  margin: 120px auto 0;
  color: #ffffff;
}
@media screen and (min-width: 960px) {
  .download-thanks__return {
    max-width: 650px;
    width: 100%;
    font-size: 20px;
    font-weight: 700;
  }
  .download-thanks__return:hover {
    background-color: #ffffff;
    color: #59554c;
  }
  .download-thanks__return:hover::after {
    background-color: #59554c;
    -webkit-transform: translate(50%, -50%);
    transform: translate(50%, -50%);
  }
}
.download-thanks__return::after {
  content: "";
  display: block;
  width: 50px;
  height: 2px;
  background-color: #ffffff;
  position: absolute;
  right: 0;
  top: 50%;
  -webkit-transform: translate(50%, -50%);
  transform: translate(50%, -50%);
}
@media screen and (min-width: 960px) {
  .download-thanks__return::after {
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    -webkit-transition: -webkit-transform 0.3s;
    transition: -webkit-transform 0.3s;
    transition: transform 0.3s;
    transition:
      transform 0.3s,
      -webkit-transform 0.3s;
  }
}

.p-carousel {
  max-width: 600px;
  margin: 0 auto;
  padding-inline: 20px;
}
@media screen and (min-width: 960px) {
  .p-carousel {
    max-width: 100%;
    margin: 0 auto;
    padding-inline: 0;
    padding-left: 14px;
    display: grid;
    -webkit-column-gap: 35px;
    -moz-column-gap: 35px;
    column-gap: 35px;
    grid-template-columns: auto clamp(100px, 12.5333333333vw, 188px);
  }
}
.p-carousel__main {
  position: relative;
}
.p-carousel__stage {
  overflow: hidden;
  height: 100%;
}
.p-carousel__slide {
  display: none;
  height: 100%;
}
.p-carousel__slide.is-active {
  display: block;
}
.p-carousel__slide img {
  width: 100%;
  height: 100%;
  display: block;
  -o-object-fit: cover;
  object-fit: cover;
  -o-object-position: center;
  object-position: center;
  aspect-ratio: 3/2;
}
.p-carousel__arrow {
  top: 50%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  z-index: 1;
  border: none;
  width: 36px;
  height: 36px;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
  background-color: #ffffff;
  border: 1px #59554c solid;
  position: absolute;
  font-family: "Cardo", "Noto Sans JP", serif;
  text-decoration: none;
  margin: 0 auto;
  -webkit-transition: 0.1s;
  transition: 0.1s;
}
@media screen and (min-width: 960px) {
  .p-carousel__arrow:hover {
    background-color: #59554c;
    border-color: #5e5959;
    color: #ffffff;
  }
}
@media screen and (max-width: 767px) {
  .p-carousel__arrow {
    width: 30px;
    height: 30px;
  }
}
.p-carousel__arrow--prev {
  left: -15px;
}
.p-carousel__arrow--prev::after {
  content: "";
  position: absolute;
  background-image: url(../image/icon/icon_arrows.svg);
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  width: 25px;
  aspect-ratio: 2/1;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  rotate: 180deg;
}
@media screen and (max-width: 767px) {
  .p-carousel__arrow--prev::after {
    width: 20px;
  }
}
@media screen and (min-width: 960px) {
  .p-carousel__arrow--prev:hover::after {
    content: "";
    background-image: url(../image/icon/icon_arrows_white.svg);
  }
}
.p-carousel__arrow--next {
  right: -15px;
}
.p-carousel__arrow--next::after {
  content: "";
  position: absolute;
  background-image: url(../image/icon/icon_arrows.svg);
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  width: 25px;
  aspect-ratio: 2/1;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
}
@media screen and (max-width: 767px) {
  .p-carousel__arrow--next::after {
    width: 20px;
  }
}
@media screen and (min-width: 960px) {
  .p-carousel__arrow--next:hover::after {
    content: "";
    background-image: url(../image/icon/icon_arrows_white.svg);
  }
}
.p-carousel__thumbs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  width: 80%;
  margin-inline: auto;
  gap: 8px;
  margin-top: 12px;
  overflow-x: auto;
  justify-items: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
}
@media screen and (min-width: 960px) {
  .p-carousel__thumbs {
    grid-template-columns: 1fr;
    width: 100%;
    margin-top: 0;
    height: 100%;
  }
}
.p-carousel__thumb {
  cursor: pointer;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  -webkit-transition: border-color 0.2s;
  transition: border-color 0.2s;
  position: relative;
}
.p-carousel__thumb.is-active::after {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  opacity: 0.6;
  top: 0;
  left: 0;
  background-color: white;
}
.p-carousel__thumb img {
  width: 100%;
  height: 100%;
  display: block;
  -o-object-fit: cover;
  object-fit: cover;
  -o-object-position: center;
  object-position: center;
  max-width: 400px;
  aspect-ratio: 3/2;
} /*# sourceMappingURL=download-single.css.map */
