@charset "UTF-8";
.my-swiper img {
  -o-object-fit: cover;
     object-fit: cover;
}
.my-swiper .swiper-button-next,
.my-swiper .swiper-button-prev {
  width: 5rem;
  height: 5rem;
}
@media only screen and (max-width: 767px) {
  .my-swiper .swiper-button-next,
.my-swiper .swiper-button-prev {
    width: 8rem;
    height: 8rem;
  }
}
.my-swiper .swiper-button-next::after,
.my-swiper .swiper-button-prev::after {
  width: 1.2rem;
  height: 1.2rem;
}
@media only screen and (max-width: 767px) {
  .my-swiper .swiper-button-next::after,
.my-swiper .swiper-button-prev::after {
    width: 1.9rem;
    height: 1.9rem;
  }
}
.my-swiper .swiper-horizontal > .swiper-pagination-bullets span,
.my-swiper .swiper-pagination-bullets.swiper-pagination-horizontal span,
.my-swiper .swiper-pagination-custom span,
.my-swiper .swiper-pagination-fraction span {
  width: 1rem;
  height: 1rem;
}
@media only screen and (max-width: 767px) {
  .my-swiper .swiper-horizontal > .swiper-pagination-bullets span,
.my-swiper .swiper-pagination-bullets.swiper-pagination-horizontal span,
.my-swiper .swiper-pagination-custom span,
.my-swiper .swiper-pagination-fraction span {
    width: 1.5rem;
    height: 1.5rem;
  }
}

.inner {
  width: 90rem;
  margin: auto;
}
@media only screen and (max-width: 767px) {
  .inner {
    width: 66.5rem;
  }
}

.section_ttl {
  text-align: center;
  font-size: 3.8rem;
  font-weight: 400;
  padding-bottom: 5.7rem;
  position: relative;
  margin-bottom: 5rem;
  letter-spacing: 0.1em;
}
@media only screen and (max-width: 767px) {
  .section_ttl {
    font-size: 4rem;
    padding-bottom: 6.9rem;
    margin-bottom: 5.8rem;
  }
}
.section_ttl span {
  display: block;
  color: #999;
  font-size: 1.5rem;
  margin-top: 1.6rem;
  letter-spacing: 0.1em;
}
@media only screen and (max-width: 767px) {
  .section_ttl span {
    font-size: 2rem;
    margin-top: 2.2rem;
  }
}
.section_ttl::after {
  content: "";
  width: 7.5rem;
  height: 1px;
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  background: #000;
}
@media only screen and (max-width: 767px) {
  .section_ttl::after {
    width: 11.2rem;
    height: 2px;
  }
}

ul.category {
  display: flex;
  align-items: stretch;
  flex-wrap: wrap;
  gap: 1.2rem;
}
@media only screen and (max-width: 767px) {
  ul.category {
    gap: 2.2rem;
  }
}
ul.category li {
  font-size: 1.25rem;
  letter-spacing: 0.08em;
  color: #999;
  border: 1px solid #ccc;
  line-height: 2.8rem;
  padding: 0 1rem;
  word-break: keep-all;
}
@media only screen and (max-width: 767px) {
  ul.category li {
    font-size: 2.2rem;
    line-height: 5rem;
    padding: 0 2.3rem;
  }
}

.mv {
  background: no-repeat top center/cover;
  background-image: -webkit-image-set(url("../img/home/mv.webp") type("image/webp"), url("../img/home/mv.jpg") type("image/jpeg"));
  background-image: image-set(url("../img/home/mv.webp") type("image/webp"), url("../img/home/mv.jpg") type("image/jpeg"));
  position: relative;
  margin-bottom: 13.5rem;
}
@media print, screen and (min-width: 768px) {
  .mv {
    height: 88.1rem;
  }
}
@media only screen and (max-width: 767px) {
  .mv {
    background-image: -webkit-image-set(url("../img/home/sp/mv.webp") type("image/webp"), url("../img/home/sp/mv.jpg") type("image/jpeg"));
    background-image: image-set(url("../img/home/sp/mv.webp") type("image/webp"), url("../img/home/sp/mv.jpg") type("image/jpeg"));
    padding: 5rem 0;
    margin-bottom: 11.2rem;
  }
}
.mv .mv-catch {
  width: 100rem;
  margin: auto;
  z-index: 1;
  background: rgba(55, 34, 35, 0.65);
  padding: 5.6rem 0 7rem;
  opacity: 0;
  visibility: hidden;
  transition: 0.6s;
  margin-top: 2rem;
}
@media print, screen and (min-width: 768px) {
  .mv .mv-catch {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    transform: translateY(-50%);
  }
}
@media only screen and (max-width: 767px) {
  .mv .mv-catch {
    width: 66.5rem;
    padding: 4.8rem 0 4.7rem;
  }
}
.mv .mv-catch.view {
  opacity: 1;
  visibility: visible;
  margin-top: 0;
}
.mv .mv-catch * {
  color: #fff;
  text-align: center;
}
.mv .mv-catch h1 {
  font-size: 5.3rem;
  letter-spacing: 0.08em;
  margin-bottom: 3rem;
  line-height: 1.2;
}
@media only screen and (max-width: 767px) {
  .mv .mv-catch h1 {
    line-height: 1.49;
    margin-bottom: 2.5rem;
    letter-spacing: 0.16em;
  }
}
.mv .mv-catch h1 span {
  display: block;
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 6.3rem;
  border-top: 1px solid #fff;
  border-bottom: 1px solid #fff;
  width: 56.2rem;
  margin: 0 auto 4rem;
}
@media only screen and (max-width: 767px) {
  .mv .mv-catch h1 span {
    font-size: 2.8rem;
    line-height: 1.714;
    padding: 2rem 0;
    width: 46rem;
    margin-bottom: 4rem;
    border-top-width: 2px;
    border-bottom-width: 2px;
  }
}
.mv .mv-catch p {
  font-size: 1.8rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  margin-bottom: 4.5rem;
  line-height: 1.944;
}
@media only screen and (max-width: 767px) {
  .mv .mv-catch p {
    font-size: 2.8rem;
    line-height: 2;
    text-align: left;
    margin-bottom: 4.4rem;
    padding: 0 4.1rem;
    letter-spacing: 0.075em;
  }
}
.mv .mv-catch .mv-btn {
  display: flex;
  align-items: stretch;
  width: 69rem;
  margin: auto;
  gap: 3rem;
}
@media only screen and (max-width: 767px) {
  .mv .mv-catch .mv-btn {
    flex-wrap: wrap;
    width: 50.4rem;
    gap: 3.8rem;
  }
}
.mv .mv-catch .mv-btn li {
  width: 33rem;
  border: 1.25px solid #fff;
}
@media only screen and (max-width: 767px) {
  .mv .mv-catch .mv-btn li {
    width: 100%;
  }
}
.mv .mv-catch .mv-btn li a {
  display: block;
  text-align: center;
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 7.5rem;
  color: #fff;
}
@media only screen and (max-width: 767px) {
  .mv .mv-catch .mv-btn li a {
    font-size: 3rem;
    line-height: 11rem;
  }
}
.mv .mv-catch .mv-btn li a:hover {
  background: #fff;
  color: #000;
  opacity: 1;
}
.mv .mv-catch .mv-btn li:nth-of-type(1) a {
  color: #000;
  background: #fff;
}
.mv .mv-catch .mv-btn li:nth-of-type(1) a:hover {
  background: none;
  color: #fff;
}
.mv .mv-catch .point-txt {
  width: 21.3rem;
  height: 21.3rem;
  background: rgba(254, 254, 254, 0.65);
  display: flex;
  align-items: center;
  justify-content: center;
}
@media print, screen and (min-width: 768px) {
  .mv .mv-catch .point-txt {
    position: absolute;
    bottom: 9rem;
    right: -7.5rem;
    border-radius: 21.3rem;
  }
}
@media only screen and (max-width: 767px) {
  .mv .mv-catch .point-txt {
    width: 58.2rem;
    height: auto;
    background: rgba(254, 254, 254, 0.75);
    padding: 3rem 0;
    margin: 0 auto 4.1rem;
  }
}
.mv .mv-catch .point-txt p {
  font-size: 1.4rem;
  letter-spacing: 0.1em;
  line-height: 1.57;
  color: #000;
  margin: 0;
}
@media only screen and (max-width: 767px) {
  .mv .mv-catch .point-txt p {
    font-size: 2.8rem;
    line-height: 1.63;
    text-align: center;
    padding: 0;
  }
}
.mv .mv-catch .point-txt p a {
  color: inherit;
}
.mv .mv-catch .point-txt p span {
  font-size: 1.625rem;
  color: inherit;
  text-decoration: underline;
}
@media only screen and (max-width: 767px) {
  .mv .mv-catch .point-txt p span {
    font-size: 3.2rem;
  }
}
.mv .loading_txt {
  opacity: 0;
  visibility: hidden;
  position: absolute;
  top: 50%;
  right: 0;
  left: 0;
  margin: auto;
  transform: translateY(-50%);
  transition: 0.6s;
  display: flex;
  align-items: center;
  justify-content: center;
}
.mv .loading_txt.view {
  opacity: 1;
  visibility: visible;
}
.mv .loading_txt p {
  color: #fff;
  font-size: 5rem;
  font-weight: 300;
  background: rgba(55, 34, 35, 0.65);
  padding: 3rem;
  display: inline-block;
  letter-spacing: 0.1em;
}

.worries {
  margin-bottom: 12.3rem;
}
@media only screen and (max-width: 767px) {
  .worries {
    margin-bottom: 12.7rem;
  }
}
.worries h2 {
  text-align: center;
  font-size: 3.8rem;
  letter-spacing: 0.1em;
  margin-bottom: 5rem;
}
@media only screen and (max-width: 767px) {
  .worries h2 {
    font-size: 4rem;
    margin-bottom: 9.4rem;
    letter-spacing: 0.13em;
  }
}
.worries--list {
  display: flex;
  align-items: stretch;
  flex-wrap: wrap;
  gap: 3.7rem;
  margin-bottom: 4.7rem;
}
@media only screen and (max-width: 767px) {
  .worries--list {
    gap: 7.2rem;
    margin-bottom: 5.5rem;
  }
}
.worries--list__single {
  position: relative;
  width: 43rem;
  background: #fff;
  border-radius: 1.25rem;
  box-shadow: 0 0 3.75px rgba(0, 0, 0, 0.15);
  padding: 4.3rem 0;
}
@media only screen and (max-width: 767px) {
  .worries--list__single {
    width: 100%;
    padding: 6.3rem 0;
  }
}
.worries--list__single:nth-of-type(even) .num {
  left: auto;
  right: 1rem;
}
.worries--list__single * {
  text-align: center;
}
.worries--list__single .num {
  position: absolute;
  top: -3rem;
  left: 2rem;
  font-size: 6.3rem;
  font-weight: 500;
  line-height: 0.5;
  color: rgba(0, 0, 0, 0.5);
}
@media only screen and (max-width: 767px) {
  .worries--list__single .num {
    font-size: 9.45rem;
    display: flex;
    align-items: center;
    line-height: 0.8;
    top: -5.7rem;
    left: 3.4rem;
  }
}
.worries--list__single .num span {
  font-size: 1.7rem;
  letter-spacing: 0;
  display: inline-block;
  margin-right: 0.4rem;
  position: relative;
  top: -0.8rem;
}
@media only screen and (max-width: 767px) {
  .worries--list__single .num span {
    font-size: 2.55rem;
    margin: 3rem 0.9rem 0 0;
  }
}
.worries--list__single h3 {
  padding-bottom: 2rem;
  margin-bottom: 1.5rem;
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  position: relative;
}
@media only screen and (max-width: 767px) {
  .worries--list__single h3 {
    font-size: 3rem;
    padding-bottom: 3.2rem;
    margin-bottom: 2.5rem;
  }
}
.worries--list__single h3::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  width: 23.75rem;
  height: 1.25px;
  background: #ddd;
}
@media only screen and (max-width: 767px) {
  .worries--list__single h3::after {
    width: 35.6rem;
    height: 2px;
  }
}
.worries--list__single p {
  font-size: 1.8rem;
  letter-spacing: 0.1em;
  line-height: 1.75;
}
@media only screen and (max-width: 767px) {
  .worries--list__single p {
    font-size: 2.7rem;
  }
}
.worries--answer h3 {
  text-align: center;
  font-size: 3rem;
  margin-bottom: 5.5rem;
  letter-spacing: 0.1em;
}
@media only screen and (max-width: 767px) {
  .worries--answer h3 {
    font-size: 3.2rem;
    line-height: 1.8;
    margin-bottom: 5.3rem;
  }
}
.worries--answer__text {
  background: #333;
  padding: 4.5rem 0 5.8rem;
}
@media only screen and (max-width: 767px) {
  .worries--answer__text {
    padding: 5.6rem 5rem 6.4rem;
  }
}
.worries--answer__text * {
  color: #fff;
  text-align: center;
}
.worries--answer__text h4 {
  margin-bottom: 2rem;
  font-size: 3rem;
  font-weight: 700;
  letter-spacing: 0.1em;
}
@media only screen and (max-width: 767px) {
  .worries--answer__text h4 {
    font-size: 3.6rem;
    line-height: 1.8;
    margin-bottom: 2.4rem;
  }
}
@media only screen and (max-width: 767px) {
  .worries--answer__text p {
    text-align: left;
    letter-spacing: 0.08em;
    line-height: 2.04;
  }
}

.features {
  background: no-repeat top center/cover;
  background-image: -webkit-image-set(url("../img/home/features-bg.webp") type("image/webp"), url("../img/home/features-bg.jpg") type("image/jpeg"));
  background-image: image-set(url("../img/home/features-bg.webp") type("image/webp"), url("../img/home/features-bg.jpg") type("image/jpeg"));
  padding: 11rem 0 12.6rem;
  margin-bottom: 11.3rem;
}
@media only screen and (max-width: 767px) {
  .features {
    background-image: -webkit-image-set(url("../img/home/sp/features-bg.webp") type("image/webp"), url("../img/home/sp/features-bg.jpg") type("image/webp"));
    background-image: image-set(url("../img/home/sp/features-bg.webp") type("image/webp"), url("../img/home/sp/features-bg.jpg") type("image/webp"));
    padding: 11rem 0;
    margin-bottom: 11rem;
  }
}
.features .read {
  text-align: center;
  margin-bottom: 5rem;
}
@media only screen and (max-width: 767px) {
  .features .read {
    margin-bottom: 5.9rem;
  }
}
.features--single {
  background: #fff;
  position: relative;
  box-shadow: 0 0 3.75px rgba(0, 0, 0, 0.15);
  padding: 5rem 5rem 5.7rem 19rem;
}
@media only screen and (max-width: 767px) {
  .features--single {
    padding: 16.5rem 4.2rem 9.5rem 5.2rem;
  }
}
.features--single:not(:last-of-type) {
  margin-bottom: 6rem;
}
@media only screen and (max-width: 767px) {
  .features--single:not(:last-of-type) {
    margin-bottom: 8rem;
  }
}
.features--single .num {
  position: absolute;
  top: -5.6rem;
  left: 3rem;
  text-align: center;
}
@media only screen and (max-width: 767px) {
  .features--single .num {
    top: -7.3rem;
    left: 4.6rem;
  }
}
.features--single .num p {
  font-size: 1.5;
  letter-spacing: 0.03em;
}
@media only screen and (max-width: 767px) {
  .features--single .num p {
    font-size: 2.25rem;
  }
}
.features--single .num p span {
  color: rgba(0, 0, 0, 0.15);
  display: block;
  font-size: 12.5rem;
  font-weight: 500;
  line-height: 0.9;
  margin-bottom: 2.3rem;
}
@media only screen and (max-width: 767px) {
  .features--single .num p span {
    font-size: 15rem;
    margin-bottom: 1.7rem;
  }
}
.features--sinle__content {
  position: relative;
}
@media print, screen and (min-width: 768px) {
  .features--sinle__content {
    padding-left: 4.5rem;
  }
}
.features--sinle__content::before {
  width: 1px;
  height: 6.8rem;
  background: #ccc;
  position: absolute;
  top: 1rem;
  left: 0.6rem;
}
@media print, screen and (min-width: 768px) {
  .features--sinle__content::before {
    content: "";
  }
}
.features--sinle__content h3 {
  font-size: 2.5rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.7;
  margin-bottom: 1.2rem;
}
@media only screen and (max-width: 767px) {
  .features--sinle__content h3 {
    font-size: 3.75rem;
    margin-bottom: 4.6rem;
  }
}
.features--sinle__content .content-txt {
  font-size: 1.5rem;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 2;
  margin-bottom: 2.2rem;
  color: #666;
}
@media only screen and (max-width: 767px) {
  .features--sinle__content .content-txt {
    font-size: 2.8rem;
    letter-spacing: 0.126em;
    margin-bottom: 6rem;
    letter-spacing: 2.04;
  }
}
.features--sinle__content .check_list {
  display: grid;
  gap: 2rem 0rem;
  grid-template-columns: 1fr 1fr;
}
@media only screen and (max-width: 767px) {
  .features--sinle__content .check_list {
    display: block;
  }
}
.features--sinle__content .check_list li {
  line-height: 1.52;
  display: flex;
  align-items: flex-start;
}
@media only screen and (max-width: 767px) {
  .features--sinle__content .check_list li {
    letter-spacing: 0.08em;
  }
  .features--sinle__content .check_list li:not(:last-of-type) {
    margin-bottom: 4.6rem;
  }
}
.features--sinle__content .check_list li::before {
  content: "";
  background: url("../img/common/check-icon.svg") no-repeat center/cover;
  width: 2.9rem;
  height: 2.7rem;
  display: block;
  margin: 1rem 1rem 0 0;
}
@media only screen and (max-width: 767px) {
  .features--sinle__content .check_list li::before {
    width: 4.7rem;
    height: 4.3rem;
    margin-top: 0;
  }
}

.why {
  margin-bottom: 12rem;
}
.why .section_ttl {
  line-height: 1.7;
}
.why .read {
  margin-bottom: 5.6rem;
}
@media only screen and (max-width: 767px) {
  .why .read {
    text-align: center;
    margin-bottom: 7.6rem;
  }
}
.why--content {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 5.5rem;
}
@media only screen and (max-width: 767px) {
  .why--content {
    gap: 5.8rem;
  }
}
.why--content:nth-of-type(even) {
  flex-direction: row-reverse;
}
.why--content:not(:last-of-type) {
  margin-bottom: 7rem;
}
@media only screen and (max-width: 767px) {
  .why--content:not(:last-of-type) {
    margin-bottom: 9rem;
  }
}
.why--content .text {
  width: 42.3rem;
}
@media only screen and (max-width: 767px) {
  .why--content .text {
    width: 100%;
  }
}
.why--content .text h3 {
  border-bottom: 1.25px solid #ddd;
  padding-bottom: 3rem;
  margin-bottom: 2rem;
  font-size: 2.5rem;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1.7;
}
@media only screen and (max-width: 767px) {
  .why--content .text h3 {
    font-size: 3.75rem;
    letter-spacing: 0.13em;
    padding-bottom: 3.3rem;
    margin-bottom: 2.4rem;
  }
}
.why--content .text h3 span {
  font-size: 6.3rem;
  letter-spacing: 0.03em;
  line-height: 1;
  margin-bottom: 2rem;
  display: block;
}
@media only screen and (max-width: 767px) {
  .why--content .text h3 span {
    font-size: 9.45rem;
  }
}
.why--content .text p {
  font-size: 1.5rem;
  line-height: 2;
  color: #666;
  letter-spacing: 0.08em;
}
@media only screen and (max-width: 767px) {
  .why--content .text p {
    font-size: 2.8rem;
    line-height: 2.03;
    letter-spacing: 0.128em;
  }
}
.why--content .image {
  width: 42.2rem;
}
@media only screen and (max-width: 767px) {
  .why--content .image {
    width: 100%;
  }
}
.why--content .image img {
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
  height: 34.7rem;
}
@media only screen and (max-width: 767px) {
  .why--content .image img {
    height: 44.3rem;
  }
}

.award {
  padding: 11.2rem 0 12.9rem;
  background: #f7f7f7;
  margin-bottom: 10.8rem;
}
@media only screen and (max-width: 767px) {
  .award {
    padding: 11.2rem 0 12.1rem;
    margin-bottom: 11rem;
  }
}
.award .section_ttl {
  margin-bottom: 5.8rem;
}
@media only screen and (max-width: 767px) {
  .award .section_ttl {
    margin-bottom: 7rem;
  }
}
.award--content {
  background: #fff;
  box-shadow: 0 0 3.75px rgba(0, 0, 0, 0.15);
}
.award--content .swiper img {
  width: 90rem;
  height: 60rem;
  -o-object-fit: cover;
     object-fit: cover;
}
@media only screen and (max-width: 767px) {
  .award--content .swiper img {
    height: auto;
    width: 100%;
  }
}
.award--content .text-content {
  padding: 4.4rem 5rem;
}
@media only screen and (max-width: 767px) {
  .award--content .text-content {
    padding: 5.6rem 3rem 9rem;
  }
}
.award--content .text-content .title {
  margin-bottom: 2.6rem;
  font-size: 3rem;
  letter-spacing: 0.1em;
}
@media print, screen and (min-width: 768px) {
  .award--content .text-content .title {
    display: flex;
    align-items: center;
  }
}
@media only screen and (max-width: 767px) {
  .award--content .text-content .title {
    text-align: center;
    font-size: 3.75rem;
    margin-bottom: 4.1rem;
  }
}
.award--content .text-content .title span {
  background: #333;
  color: #fff;
  line-height: 3.7rem;
  font-size: 1.5rem;
  font-weight: 400;
  letter-spacing: 0.1em;
  display: inline-block;
  padding: 0 1.2rem;
  margin-right: 2.5rem;
}
@media only screen and (max-width: 767px) {
  .award--content .text-content .title span {
    font-size: 2.25rem;
    padding: 1rem 2.2rem;
    margin: 0 0 5.1rem;
  }
}
.award--content .text-content p {
  font-size: 1.5rem;
  letter-spacing: 0.1em;
  line-height: 2;
  margin-bottom: 3rem;
  color: #666;
}
@media only screen and (max-width: 767px) {
  .award--content .text-content p {
    font-size: 2.8rem;
    padding: 0 1.7rem;
    letter-spacing: 0.125em;
    line-height: 2.04;
    margin-bottom: 5.2rem;
  }
}
@media print, screen and (min-width: 768px) {
  .award--content .text-content .content-category {
    display: flex;
    align-items: stretch;
    justify-content: space-between;
  }
}
.award--content .text-content .content-category li {
  width: 28.4rem;
  text-align: center;
  letter-spacing: 0.05em;
}
@media only screen and (max-width: 767px) {
  .award--content .text-content .content-category li {
    width: 100%;
  }
}
@media print, screen and (min-width: 768px) {
  .award--content .text-content .content-category li:not(:last-of-type) {
    border-right: 1px solid #ccc;
  }
}
@media only screen and (max-width: 767px) {
  .award--content .text-content .content-category li:not(:last-of-type) {
    margin-bottom: 4.5rem;
  }
}
.award--content .text-content .content-category li span {
  display: block;
  width: 16rem;
  line-height: 2.8rem;
  text-align: center;
  background: #eee;
  font-size: 1.3rem;
  letter-spacing: 0.1em;
  margin: 0 auto 1rem;
}
@media only screen and (max-width: 767px) {
  .award--content .text-content .content-category li span {
    width: 24rem;
    margin-bottom: 1.8rem;
    font-size: 1.95rem;
    line-height: 4.1rem;
  }
}

.brand {
  margin-bottom: 12rem;
}
@media only screen and (max-width: 767px) {
  .brand .section_ttl {
    line-height: 1.75;
    padding-bottom: 6.3rem;
  }
}
.brand .read {
  margin-bottom: 5.4rem;
  text-align: center;
}
@media only screen and (max-width: 767px) {
  .brand .read {
    margin-bottom: 6.4rem;
  }
}
@media only screen and (max-width: 767px) {
  .brand .read .df {
    line-height: 2.02;
  }
}
.brand--content {
  margin-bottom: 6rem;
}
.brand .swiper-container-wrapper {
  background: #fff;
  box-shadow: 0 0 3.75px rgba(0, 0, 0, 0.15);
}
@media print, screen and (min-width: 768px) {
  .brand .swiper-container-wrapper {
    display: flex;
    align-items: center;
  }
}
.brand .swiper-container-wrapper:not(:last-of-type) {
  margin-bottom: 6.4rem;
}
@media only screen and (max-width: 767px) {
  .brand .swiper-container-wrapper:not(:last-of-type) {
    margin-bottom: 7rem;
  }
}
.brand .swiper-container-wrapper:nth-of-type(even) {
  flex-direction: row-reverse;
}
.brand .swiper-container-wrapper .my-swiper {
  width: 42.5rem;
}
@media only screen and (max-width: 767px) {
  .brand .swiper-container-wrapper .my-swiper {
    width: 100%;
  }
}
.brand .swiper-container-wrapper .my-swiper img {
  width: 100%;
  aspect-ratio: 42.5/37.5;
}
.brand .swiper-container-wrapper .text {
  width: calc(100% - 42.5rem);
  padding: 0 5rem;
}
@media only screen and (max-width: 767px) {
  .brand .swiper-container-wrapper .text {
    padding: 6.2rem 5rem;
    width: 100%;
  }
}
.brand .swiper-container-wrapper .text h3 {
  margin-bottom: 2.7rem;
  font-size: 1.5rem;
  letter-spacing: 0.1em;
}
@media only screen and (max-width: 767px) {
  .brand .swiper-container-wrapper .text h3 {
    font-size: 2.25rem;
    margin-bottom: 4rem;
  }
}
.brand .swiper-container-wrapper .text h3 span {
  display: block;
  font-size: 3rem;
  font-weight: 400;
  letter-spacing: 0.1em;
  margin-bottom: 1rem;
  line-height: 1;
}
@media only screen and (max-width: 767px) {
  .brand .swiper-container-wrapper .text h3 span {
    font-size: 4.5rem;
    margin-bottom: 1.7rem;
  }
}
.brand .swiper-container-wrapper .text .read-txt {
  font-size: 1.5rem;
  line-height: 2;
  letter-spacing: 0.1em;
  margin-bottom: 3rem;
  color: #666;
}
@media only screen and (max-width: 767px) {
  .brand .swiper-container-wrapper .text .read-txt {
    font-size: 2.8rem;
    margin-bottom: 5rem;
    letter-spacing: 0.05em;
  }
}
.brand--answer {
  background: #333;
  padding: 4.3rem 4.5rem 4.8rem;
}
@media only screen and (max-width: 767px) {
  .brand--answer {
    padding: 6rem 5.1rem 6.2rem;
  }
}
.brand--answer * {
  color: #fff;
}
.brand--answer h3 {
  text-align: center;
  font-size: 3rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.75;
  margin-bottom: 3.9rem;
}
@media only screen and (max-width: 767px) {
  .brand--answer h3 {
    font-size: 3.6rem;
    margin-bottom: 5.2rem;
  }
}
@media print, screen and (min-width: 768px) {
  .brand--answer__list {
    display: flex;
    justify-content: space-between;
  }
}
.brand--answer__list dl {
  width: 24rem;
}
@media only screen and (max-width: 767px) {
  .brand--answer__list dl {
    width: 100%;
  }
  .brand--answer__list dl:not(:last-of-type) {
    margin-bottom: 5rem;
  }
}
@media only screen and (max-width: 767px) and (max-width: 767px) {
  .brand--answer__list dl:not(:last-of-type) {
    margin-bottom: 6rem;
  }
}
.brand--answer__list dl dt {
  border-top: 1px solid #fff;
  border-bottom: 1px solid #fff;
  font-weight: 700;
  text-align: center;
  padding: 0.8rem 0;
  margin-bottom: 1.1rem;
}
@media only screen and (max-width: 767px) {
  .brand--answer__list dl dt {
    font-size: 3.2rem;
    padding: 1.5rem 0;
    margin-bottom: 1.9rem;
  }
}
.brand--answer__list dl dd {
  font-size: 1.5rem;
  letter-spacing: 0.1em;
  line-height: 2;
}
@media only screen and (max-width: 767px) {
  .brand--answer__list dl dd {
    font-size: 2.8rem;
    letter-spacing: 0.105em;
  }
}

.works {
  background: #f7f7f7;
  padding: 11.2rem 0 12.5rem;
  margin-bottom: 11.5rem;
}
@media only screen and (max-width: 767px) {
  .works {
    margin-bottom: 10.6rem;
  }
}
.works .read {
  text-align: center;
  margin-bottom: 6rem;
}
.works--list {
  display: flex;
  align-items: stretch;
  flex-wrap: wrap;
  gap: 6rem 4rem;
  margin-bottom: 5.5rem;
}
@media only screen and (max-width: 767px) {
  .works--list {
    gap: 7.2rem 4rem;
  }
}
.works--list .swiper-container-wrapper {
  width: 43rem;
  background: #fff;
  box-shadow: 0 0 3.75px rgba(0, 0, 0, 0.15);
}
@media only screen and (max-width: 767px) {
  .works--list .swiper-container-wrapper {
    width: 100%;
  }
}
.works--list .swiper-container-wrapper .my-swiper {
  width: 43rem;
}
@media only screen and (max-width: 767px) {
  .works--list .swiper-container-wrapper .my-swiper {
    width: 100%;
  }
}
.works--list .swiper-container-wrapper .my-swiper img {
  width: 100%;
  aspect-ratio: 43/32.5;
}
.works--list .swiper-container-wrapper .my-swiper .type {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 3;
  padding: 0.2rem 1.5rem;
  background: #fff;
  letter-spacing: 0.1em;
}
@media only screen and (max-width: 767px) {
  .works--list .swiper-container-wrapper .my-swiper .type {
    font-size: 2.261rem;
    padding: 0.5rem 2.2rem;
  }
}
.works--list .swiper-container-wrapper .text {
  padding: 3rem 3.6rem 3.6rem;
}
@media only screen and (max-width: 767px) {
  .works--list .swiper-container-wrapper .text {
    padding: 4.6rem 5rem 6rem;
  }
}
.works--list .swiper-container-wrapper .text h3 {
  font-size: 2.3rem;
  letter-spacing: 0.08em;
  margin-bottom: 0.4rem;
}
@media only screen and (max-width: 767px) {
  .works--list .swiper-container-wrapper .text h3 {
    font-size: 3.45rem;
    margin-bottom: 0.9rem;
  }
}
.works--list .swiper-container-wrapper .text .area {
  display: flex;
  align-items: center;
  letter-spacing: 0.1em;
  margin-bottom: 1rem;
}
@media only screen and (max-width: 767px) {
  .works--list .swiper-container-wrapper .text .area {
    margin-left: 0.8rem;
    margin-bottom: 2rem;
  }
}
.works--list .swiper-container-wrapper .text .area::before {
  content: "";
  width: 1.2rem;
  height: 1.5rem;
  background: url("../img/common/area-icon.svg") no-repeat center/cover;
  display: block;
  margin-right: 1rem;
}
@media only screen and (max-width: 767px) {
  .works--list .swiper-container-wrapper .text .area::before {
    width: 1.8rem;
    height: 2.4rem;
  }
}
@media only screen and (max-width: 767px) {
  .works--list .swiper-container-wrapper .text .area p {
    font-size: 2.25rem;
  }
}
.works--list .swiper-container-wrapper .text .content-txt {
  font-size: 1.5rem;
  letter-spacing: 0.1em;
  line-height: 2;
  margin-bottom: 1.5rem;
  color: #666;
}
@media only screen and (max-width: 767px) {
  .works--list .swiper-container-wrapper .text .content-txt {
    font-size: 2.8rem;
    letter-spacing: 0.126em;
    line-height: 2.1;
    margin-bottom: 2.9rem;
  }
}
.works--other {
  text-align: center;
}
.works--other h3 {
  font-size: 2.3rem;
  font-weight: 400;
  letter-spacing: 0.1em;
  margin-bottom: 3rem;
}
@media only screen and (max-width: 767px) {
  .works--other h3 {
    font-size: 3rem;
    margin-bottom: 5rem;
  }
}
.works--other .btn {
  width: 32.8rem;
  margin: auto;
}
@media only screen and (max-width: 767px) {
  .works--other .btn {
    width: 50.5rem;
  }
}
.works--other .btn a {
  display: block;
  background: #000;
  color: #fff;
  line-height: 7.5rem;
  transition: 0.3s;
  border: 1px solid #000;
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: 0.1em;
}
@media only screen and (max-width: 767px) {
  .works--other .btn a {
    font-size: 3rem;
    line-height: 11.4rem;
  }
}
.works--other .btn a:hover {
  opacity: 1;
  background: #fff;
  color: #000;
}

.service {
  margin-bottom: 12rem;
}
.service .read {
  text-align: center;
  margin-bottom: 5.6rem;
}
@media only screen and (max-width: 767px) {
  .service .read {
    margin-bottom: 6.4rem;
  }
}
.service--list {
  display: flex;
  align-items: stretch;
  flex-wrap: wrap;
  gap: 6.3rem 4rem;
}
@media only screen and (max-width: 767px) {
  .service--list {
    gap: 7.3rem 4rem;
  }
}
.service--list .single {
  width: 43rem;
  position: relative;
  background: #fff;
  box-shadow: 0 0 3.75px rgba(0, 0, 0, 0.15);
  border-radius: 1.25rem;
  padding: 4.2rem 3.5rem;
}
@media only screen and (max-width: 767px) {
  .service--list .single {
    width: 100%;
    padding: 6.2rem 4.9rem;
  }
}
.service--list .single .design-title {
  position: absolute;
  top: -2rem;
  left: 2rem;
  font-size: 3.5rem;
  letter-spacing: 0.03em;
  line-height: 1;
  color: rgba(0, 0, 0, 0.25);
}
@media only screen and (max-width: 767px) {
  .service--list .single .design-title {
    font-size: 5.25rem;
    top: -3.2rem;
    left: 3.7rem;
    letter-spacing: 0;
  }
}
.service--list .single h3 {
  text-align: center;
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid #ddd;
  margin-bottom: 2rem;
}
@media only screen and (max-width: 767px) {
  .service--list .single h3 {
    font-size: 3rem;
    padding-bottom: 3rem;
    margin-bottom: 2.2rem;
  }
}
.service--list .single .single--content p {
  font-size: 1.5rem;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 2;
  color: #666;
}
@media only screen and (max-width: 767px) {
  .service--list .single .single--content p {
    font-size: 2.8rem;
    letter-spacing: 0.12em;
  }
}
.service--list .single.wide {
  width: 72rem;
  background: #f7f7f7;
  box-shadow: none;
  margin: 2rem auto 0;
}
@media only screen and (max-width: 767px) {
  .service--list .single.wide {
    width: 100%;
  }
}
.service--list .single.wide .option {
  position: absolute;
  top: -1.4rem;
  right: 3.2rem;
  width: 16rem;
  background: #000;
  line-height: 2.8rem;
  color: #fff;
  text-align: center;
  font-size: 1.3rem;
  letter-spacing: 0.1em;
}
@media only screen and (max-width: 767px) {
  .service--list .single.wide .option {
    font-size: 1.95rem;
    line-height: 4.3rem;
    top: -2.3rem;
    right: 5.2rem;
  }
}

.voice {
  padding: 11.3rem 0 12.5rem;
  background: no-repeat top center/cover;
  background-image: -webkit-image-set(url("../img/home/voice-bg.webp") type("image/webp"), url("../img/home/voice-bg.png") type("image/png"));
  background-image: image-set(url("../img/home/voice-bg.webp") type("image/webp"), url("../img/home/voice-bg.png") type("image/png"));
  margin-bottom: 11.3rem;
}
@media only screen and (max-width: 767px) {
  .voice {
    background-image: -webkit-image-set(url("../img/home/sp/voice-bg.webp") type("image/webp"), url("../img/home/sp/voice-bg.jpg") type("image/jpeg"));
    background-image: image-set(url("../img/home/sp/voice-bg.webp") type("image/webp"), url("../img/home/sp/voice-bg.jpg") type("image/jpeg"));
    margin-bottom: 10.8rem;
  }
}
@media print, screen and (min-width: 768px) {
  .voice .section_ttl {
    margin-bottom: 5.3rem;
  }
}
.voice .read {
  margin-bottom: 5.7rem;
  text-align: center;
}
.voice--list {
  display: flex;
  align-items: stretch;
  flex-wrap: wrap;
  justify-content: space-between;
}
@media only screen and (max-width: 767px) {
  .voice--list {
    gap: 7rem;
  }
}
.voice--list .single {
  width: 27.5rem;
  background: #fff;
  border-radius: 1.25rem;
  padding: 2.2rem 2.5rem 2.6rem;
}
@media only screen and (max-width: 767px) {
  .voice--list .single {
    width: 100%;
    padding: 3.1rem 5rem 6rem;
  }
}
.voice--list .single .title {
  border-bottom: 1px solid #ddd;
  min-height: 7.3rem;
  margin-bottom: 1.4rem;
}
@media only screen and (max-width: 767px) {
  .voice--list .single .title {
    padding-bottom: 2rem;
    margin-bottom: 2.3rem;
  }
}
.voice--list .single .title h3 {
  font-size: 1.75rem;
  letter-spacing: 0.1em;
  margin-bottom: 0.3rem;
}
@media only screen and (max-width: 767px) {
  .voice--list .single .title h3 {
    font-size: 3.2rem;
    letter-spacing: 0.13em;
    margin-bottom: -0.3rem;
  }
}
.voice--list .single .star-icon {
  display: flex;
  align-items: center;
}
.voice--list .single .star-icon li {
  font-size: 1.5rem;
  letter-spacing: 0.1em;
}
@media only screen and (max-width: 767px) {
  .voice--list .single .star-icon li {
    font-size: 2.725rem;
  }
}
.voice--content {
  margin-bottom: 1.7rem;
}
@media only screen and (max-width: 767px) {
  .voice--content {
    margin-bottom: 2.4rem;
  }
}
.voice--content p {
  font-size: 1.5rem;
  line-height: 2;
  letter-spacing: 0.1em;
  color: #666;
}
@media only screen and (max-width: 767px) {
  .voice--content p {
    font-size: 2.8rem;
    letter-spacing: 0.12em;
  }
}
.voice .sign p {
  font-size: 1.5rem;
  letter-spacing: 0.1em;
  line-height: 1.75;
}
@media only screen and (max-width: 767px) {
  .voice .sign p {
    font-size: 2.8rem;
  }
}

.designer {
  margin-bottom: 12.3rem;
}
.designer .read {
  margin-bottom: 4rem;
  text-align: center;
}
@media only screen and (max-width: 767px) {
  .designer .read {
    margin-bottom: 6rem;
  }
}
.designer--profile {
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
}
.designer--profile dl dt {
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.75;
  padding-bottom: 2rem;
  margin-bottom: 2rem;
  border-bottom: 1px solid #ddd;
}
@media only screen and (max-width: 767px) {
  .designer--profile dl dt {
    font-size: 3rem;
    padding-bottom: 3rem;
    margin-bottom: 2.7rem;
  }
}
.designer--profile dl dd {
  font-size: 1.5rem;
  letter-spacing: 0.1em;
  color: #666;
  line-height: 2;
}
@media only screen and (max-width: 767px) {
  .designer--profile dl dd {
    font-size: 2.8rem;
    letter-spacing: 0.13em;
    line-height: 2.04;
  }
}
@media print, screen and (min-width: 768px) {
  .designer--profile .left {
    width: 43rem;
    padding-top: 1rem;
  }
}
@media only screen and (max-width: 767px) {
  .designer--profile .left {
    width: 100%;
  }
}
.designer--profile .left picture {
  display: block;
  margin-bottom: 4.4rem;
}
@media only screen and (max-width: 767px) {
  .designer--profile .left picture {
    margin-bottom: 5.2rem;
  }
  .designer--profile .left picture img {
    width: 100%;
  }
}
.designer--profile .right {
  width: 43rem;
  margin-left: auto;
}
@media only screen and (max-width: 767px) {
  .designer--profile .right {
    display: none;
    width: 100%;
    margin-bottom: 4rem;
  }
  .designer--profile .right.sp {
    display: block;
  }
}
.designer--profile .name {
  margin-bottom: 4.1rem;
}
@media only screen and (max-width: 767px) {
  .designer--profile .name {
    margin-bottom: 4.9rem;
  }
}
.designer--profile .name h3 {
  font-size: 3rem;
  margin-bottom: 0.2rem;
  letter-spacing: 0.1em;
}
@media only screen and (max-width: 767px) {
  .designer--profile .name h3 {
    font-size: 4.5rem;
  }
}
.designer--profile .name p {
  font-size: 1.5rem;
  letter-spacing: 0.1em;
  line-height: 1.76;
}
@media only screen and (max-width: 767px) {
  .designer--profile .name p {
    font-size: 2.25rem;
  }
}
.designer .philosophy {
  margin-top: 4.2rem;
}
.designer .philosophy dl dd {
  padding-left: 3rem;
  position: relative;
}
@media only screen and (max-width: 767px) {
  .designer .philosophy dl dd {
    padding-left: 1rem;
  }
}
.designer .philosophy dl dd::before, .designer .philosophy dl dd::after {
  content: "";
  position: absolute;
  width: 4.2rem;
  height: 3.4rem;
  background: url("../img/common/philosophy-icon.svg") no-repeat center/cover;
}
.designer .philosophy dl dd::before {
  top: -1rem;
  left: 0;
}
@media only screen and (max-width: 767px) {
  .designer .philosophy dl dd::before {
    top: 0;
  }
}
.designer .philosophy dl dd::after {
  transform: rotate(180deg);
  right: 10rem;
}
@media only screen and (max-width: 767px) {
  .designer .philosophy dl dd::after {
    right: 32rem;
    bottom: 0;
  }
}

.our {
  background: #f7f7f7;
  padding: 11.1rem 0;
}
@media only screen and (max-width: 767px) {
  .our {
    padding: 11.1rem 0 0;
  }
}
.our .section_ttl {
  margin-bottom: 5.5rem;
}
@media only screen and (max-width: 767px) {
  .our .section_ttl {
    margin-bottom: 6.2rem;
  }
}
.our .sub-title {
  margin-bottom: 5.8rem;
}
@media only screen and (max-width: 767px) {
  .our .sub-title {
    margin-bottom: 6.4rem;
  }
}
.our .sub-title dl {
  text-align: center;
}
.our .sub-title dl dt {
  font-size: 2.3rem;
  font-weight: 700;
  border-bottom: 1px solid #ddd;
  padding-bottom: 1.8rem;
  margin-bottom: 1.8rem;
  letter-spacing: 0.1em;
}
@media only screen and (max-width: 767px) {
  .our .sub-title dl dt {
    font-size: 3rem;
    padding-bottom: 3rem;
    margin-bottom: 2.8rem;
  }
}
.our .sub-title dl dd {
  font-size: 1.8rem;
  letter-spacing: 0.1em;
}
@media only screen and (max-width: 767px) {
  .our .sub-title dl dd {
    font-size: 2.8rem;
  }
}
.our--list {
  display: flex;
  align-items: stretch;
  flex-wrap: wrap;
  justify-content: space-between;
}
@media only screen and (max-width: 767px) {
  .our--list {
    gap: 7rem;
  }
}
.our--list .single {
  width: 27.5rem;
  background: #fff;
  border-radius: 1.25rem;
  padding: 3.2rem 2.5rem;
}
@media only screen and (max-width: 767px) {
  .our--list .single {
    width: 100%;
    padding: 5rem 4.8rem 6.2rem;
  }
}
.our--list .single dt {
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  padding-bottom: 2rem;
  margin-bottom: 2rem;
  text-align: center;
  border-bottom: 1px solid #ddd;
}
@media only screen and (max-width: 767px) {
  .our--list .single dt {
    font-size: 3rem;
    padding-bottom: 3rem;
    margin-bottom: 2.8rem;
  }
}
.our--list .single dd {
  color: #666;
  font-size: 1.5rem;
  letter-spacing: 0.1em;
  line-height: 2;
}
@media only screen and (max-width: 767px) {
  .our--list .single dd {
    font-size: 2.8rem;
  }
}

.process {
  padding-top: 12.3rem;
  margin-bottom: 12rem;
}
@media only screen and (max-width: 767px) {
  .process {
    padding-top: 13.5rem;
  }
}
.process .read {
  text-align: center;
  margin-bottom: 5rem;
}
@media only screen and (max-width: 767px) {
  .process .read {
    margin-bottom: 8rem;
  }
}
.process .step-list .single {
  background: #fff;
  box-shadow: 0 0 3.75px rgba(0, 0, 0, 0.15);
  border-radius: 1.25rem;
  position: relative;
  padding: 4.5rem 3rem;
}
@media only screen and (max-width: 767px) {
  .process .step-list .single {
    padding: 6.2rem 3rem 4.6rem;
  }
}
.process .step-list .single:not(:last-of-type) {
  margin-bottom: 7.8rem;
}
@media only screen and (max-width: 767px) {
  .process .step-list .single:not(:last-of-type) {
    margin-bottom: 13.2rem;
  }
}
.process .step-list .single:not(:last-of-type)::after {
  content: "";
  width: 3.5rem;
  height: 3.5rem;
  border-right: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
  transform: rotate(45deg);
  position: absolute;
  top: 105%;
  right: 0;
  left: 0;
  margin: auto;
}
@media only screen and (max-width: 767px) {
  .process .step-list .single:not(:last-of-type)::after {
    width: 5.5rem;
    height: 5.5rem;
    top: 103.7%;
  }
}
.process .step-list .single * {
  text-align: center;
}
.process .step-list .single .num {
  position: absolute;
  top: -4rem;
  left: 2.5rem;
  color: rgba(0, 0, 0, 0.5);
  line-height: 1;
  font-size: 4.4rem;
  font-weight: 400;
}
@media only screen and (max-width: 767px) {
  .process .step-list .single .num {
    font-size: 5.61rem;
    top: -5.5rem;
    left: 3.3rem;
  }
}
.process .step-list .single .num span {
  font-size: 6.3rem;
  font-weight: 400;
  margin-left: 1.5rem;
  line-height: 1;
}
@media only screen and (max-width: 767px) {
  .process .step-list .single .num span {
    font-size: 8.032rem;
  }
}
.process .step-list .single .time {
  position: absolute;
  line-height: 2.8rem;
  color: #fff;
  background: #000;
  top: -1rem;
  right: 3.6rem;
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  padding: 0 1.9rem;
}
@media only screen and (max-width: 767px) {
  .process .step-list .single .time {
    font-size: 2.25rem;
    line-height: 1.4;
    padding: 0.6rem 3.2rem;
    top: -2.2rem;
    right: 3.2rem;
  }
}
.process .step-list .single h3 {
  text-align: center;
  font-size: 2rem;
  font-weight: 700;
  padding-bottom: 2rem;
  position: relative;
  margin-bottom: 1.5rem;
  letter-spacing: 0.1em;
}
@media only screen and (max-width: 767px) {
  .process .step-list .single h3 {
    font-size: 3rem;
    padding-bottom: 3rem;
    margin-bottom: 2.5rem;
  }
}
.process .step-list .single h3::after {
  content: "";
  position: absolute;
  width: 12.5rem;
  height: 1px;
  background: #ddd;
  right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
}
.process .step-list .single p {
  line-height: 1.75;
}

.qa {
  background: #f7f7f7;
  padding: 11rem 0 12.5rem;
  margin-bottom: 11.1rem;
}
@media only screen and (max-width: 767px) {
  .qa {
    margin-bottom: 10.8rem;
  }
}
.qa .section_ttl {
  margin-bottom: 5.8rem;
}
@media only screen and (max-width: 767px) {
  .qa .section_ttl {
    margin-bottom: 7rem;
  }
}
.qa--list dl {
  border-radius: 1.25rem;
  box-shadow: 0 0 3.75px rgba(0, 0, 0, 0.15);
  overflow: hidden;
}
.qa--list dl:not(:last-of-type) {
  margin-bottom: 2.3rem;
}
@media only screen and (max-width: 767px) {
  .qa--list dl:not(:last-of-type) {
    margin-bottom: 3.8rem;
  }
}
.qa--list dl dt div, .qa--list dl dd div {
  display: flex;
  align-items: center;
  padding-right: 3rem;
}
.qa--list dl dt div::before, .qa--list dl dd div::before {
  font-size: 3.8rem;
  font-weight: 400;
  font-family: "Playfair Display", serif;
  margin-right: 2rem;
}
@media only screen and (max-width: 767px) {
  .qa--list dl dt div::before, .qa--list dl dd div::before {
    font-size: 5.7rem;
    margin-right: 2.1rem;
  }
}
.qa--list dl dt {
  background: #fff;
  padding: 0.8rem 3rem;
  letter-spacing: 0.1em;
  position: relative;
  font-size: 1.8rem;
}
@media only screen and (max-width: 767px) {
  .qa--list dl dt {
    font-size: 2.8rem;
    padding: 1rem 3.2rem 1.4rem;
    letter-spacing: 0.03em;
  }
}
.qa--list dl dt::after {
  content: "";
  width: 0.8rem;
  height: 0.8rem;
  border-right: 1px solid #000;
  border-bottom: 1px solid #000;
  transform: rotate(45deg);
  position: absolute;
  top: 0;
  right: 4rem;
  bottom: 0;
  margin: auto;
  transition: 0.3s;
}
@media only screen and (max-width: 767px) {
  .qa--list dl dt::after {
    width: 1.2rem;
    height: 1.2rem;
    right: 3.4rem;
  }
}
.qa--list dl dt.view::after {
  transform: rotate(-135deg);
}
.qa--list dl dt div::before {
  content: "Q.";
  color: rgba(0, 0, 0, 0.5);
}
.qa--list dl dd {
  font-size: 1.5rem;
  letter-spacing: 0.1em;
  background: #ddd;
  max-height: 0;
  overflow: hidden;
  transition: 0.6s;
}
@media only screen and (max-width: 767px) {
  .qa--list dl dd {
    font-size: 2.4rem;
  }
}
.qa--list dl dd.view {
  max-height: 200px;
}
.qa--list dl dd div {
  padding: 0.8rem 3rem;
}
@media only screen and (max-width: 767px) {
  .qa--list dl dd div {
    padding: 2.7rem 3rem;
    line-height: 1.8;
  }
}
.qa--list dl dd div::before {
  content: "A.";
  color: #fff;
}
@media only screen and (max-width: 767px) {
  .qa--list dl dd div::before {
    margin-right: 2.9rem;
  }
}

.contact {
  margin-bottom: 12rem;
}
.contact .read {
  margin-bottom: 5.6rem;
  text-align: center;
}
@media only screen and (max-width: 767px) {
  .contact .read {
    margin-bottom: 8.2rem;
  }
}
.contact .notice {
  background: #f7f7f7;
  padding: 4rem 0 3rem;
  margin-bottom: 6.4rem;
  position: relative;
  border-radius: 1.25rem;
}
@media only screen and (max-width: 767px) {
  .contact .notice {
    padding: 5rem;
    padding: 6.2rem 5rem 4.3rem;
    margin-bottom: 4.1rem;
  }
}
.contact .notice::before {
  content: "NOTICE";
  font-size: 3.5rem;
  font-family: "Playfair Display", serif;
  top: -3rem;
  left: 2.6rem;
  position: absolute;
  color: rgba(0, 0, 0, 0.25);
}
@media only screen and (max-width: 767px) {
  .contact .notice::before {
    font-size: 5.25rem;
    top: -4.6rem;
    left: 3.3rem;
    letter-spacing: 0.03em;
  }
}
.contact .notice dl {
  width: 82.5rem;
  margin: auto;
}
@media only screen and (max-width: 767px) {
  .contact .notice dl {
    width: 100%;
  }
}
.contact .notice dl dt {
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-align: center;
  margin-bottom: 2rem;
  padding-bottom: 2rem;
  border-bottom: 1px solid #ddd;
}
@media only screen and (max-width: 767px) {
  .contact .notice dl dt {
    font-size: 3rem;
    padding-bottom: 2.8rem;
    margin-bottom: 3.4rem;
    letter-spacing: 0.125em;
  }
}
.contact .notice dl dd ul {
  display: grid;
  grid-template-columns: -webkit-max-content -webkit-max-content -webkit-max-content;
  grid-template-columns: max-content max-content max-content;
  justify-content: center;
  gap: 1rem 5rem;
}
@media only screen and (max-width: 767px) {
  .contact .notice dl dd ul {
    display: block;
  }
}
.contact .notice dl dd ul li {
  font-size: 1.5rem;
  letter-spacing: 0.1em;
  line-height: 2;
  display: flex;
  align-items: center;
  color: #666;
}
@media only screen and (max-width: 767px) {
  .contact .notice dl dd ul li {
    font-size: 2.25rem;
  }
  .contact .notice dl dd ul li:not(:last-of-type) {
    margin-bottom: 1.9rem;
  }
}
.contact .notice dl dd ul li::before {
  content: "";
  background: url("../img/common/check-icon.svg") no-repeat center/cover;
  width: 2.8rem;
  height: 2.6rem;
  display: block;
  margin-right: 1.7rem;
}
@media only screen and (max-width: 767px) {
  .contact .notice dl dd ul li::before {
    width: 4.3rem;
    height: 4rem;
    margin-right: 2rem;
  }
}
@media print, screen and (min-width: 768px) {
  .contact--form dl {
    display: flex;
    align-items: flex-start;
  }
}
.contact--form dl:not(:last-of-type) {
  margin-bottom: 2.3rem;
}
@media only screen and (max-width: 767px) {
  .contact--form dl:not(:last-of-type) {
    margin-bottom: 4rem;
  }
}
.contact--form dl.must dt::after {
  content: "必須";
  width: 6.25rem;
  line-height: 2.2rem;
  background: #9e0a31;
  color: #fff;
  text-align: center;
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  display: block;
  margin-left: auto;
}
@media only screen and (max-width: 767px) {
  .contact--form dl.must dt::after {
    font-size: 2.232rem;
    width: 11.6rem;
    line-height: 4.1rem;
  }
}
.contact--form dl.contact-type {
  margin: 4rem 0 6rem;
}
.contact--form dl.contact-type dt {
  margin-top: 0;
}
.contact--form dl dt {
  width: 25rem;
  font-size: 1.5rem;
  margin-top: 1.5rem;
  display: flex;
  align-items: center;
  margin: 1.5rem 2.4rem 0 0;
}
@media only screen and (max-width: 767px) {
  .contact--form dl dt {
    width: 100%;
    font-size: 2.8rem;
    margin-bottom: 2.1rem;
    letter-spacing: 0.125em;
  }
}
.contact--form dl dd {
  width: 62.5rem;
}
@media only screen and (max-width: 767px) {
  .contact--form dl dd {
    width: 100%;
  }
}
.contact--form dl dd select,
.contact--form dl dd textarea {
  width: 100%;
  border: 1px solid #ccc;
  border-radius: 0.625rem;
  padding: 0 2rem;
}
.contact--form dl dd input[type=text], .contact--form dl dd input[type=email], .contact--form dl dd input[type=tel] {
  line-height: 5rem;
  width: 100%;
  border: 1px solid #ccc;
  border-radius: 0.625rem;
  padding: 0 2rem;
}
@media only screen and (max-width: 767px) {
  .contact--form dl dd input[type=text], .contact--form dl dd input[type=email], .contact--form dl dd input[type=tel] {
    line-height: 9.3rem;
  }
}
.contact--form dl dd input[type=radio] {
  display: none;
}
.contact--form dl dd input[type=radio] + span {
  display: flex;
  align-items: center;
  position: relative;
}
.contact--form dl dd input[type=radio] + span::before {
  content: "";
  width: 2rem;
  height: 2rem;
  border: 1px solid #ccc;
  border-radius: 2rem;
  display: block;
  margin-right: 0.4rem;
}
@media only screen and (max-width: 767px) {
  .contact--form dl dd input[type=radio] + span::before {
    width: 3rem;
    height: 3rem;
    margin-right: 1rem;
  }
}
.contact--form dl dd input[type=radio]:checked + span::after {
  width: 0.8rem;
  height: 0.8rem;
  background: #9e0a31;
  border-radius: 0.8rem;
  position: absolute;
  top: 0;
  left: 0.6rem;
  bottom: 0;
  margin: auto;
}
@media only screen and (max-width: 767px) {
  .contact--form dl dd input[type=radio]:checked + span::after {
    width: 1.7rem;
    height: 1.7rem;
    left: 0.7rem;
    border-radius: 1.7rem;
  }
}
.contact--form dl dd .select-box {
  position: relative;
}
.contact--form dl dd .select-box::after {
  content: "";
  width: 0.8rem;
  height: 0.8rem;
  border-right: 1px solid #000;
  border-bottom: 1px solid #000;
  position: absolute;
  top: 2rem;
  right: 1.7rem;
  margin: auto;
  transform: rotate(45deg);
}
@media only screen and (max-width: 767px) {
  .contact--form dl dd .select-box::after {
    top: 4rem;
    width: 1.2rem;
    height: 1.2rem;
  }
}
.contact--form dl dd textarea {
  width: 100%;
  line-height: 1.8;
  padding: 2rem;
  height: 17.5rem;
}
@media only screen and (max-width: 767px) {
  .contact--form dl dd textarea {
    height: 30rem;
  }
}
.contact--form dl dd select {
  line-height: 5rem;
}
@media only screen and (max-width: 767px) {
  .contact--form dl dd select {
    line-height: 9.3rem;
  }
}
.contact--form dl dd .wpcf7-list-item {
  margin: 0 3.5rem 0 0;
}
.contact--form .privacy_confirm {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 3rem;
}
@media only screen and (max-width: 767px) {
  .contact--form .privacy_confirm {
    margin-bottom: 4rem;
  }
}
.contact--form .privacy_confirm label {
  display: flex;
  align-items: center;
  justify-content: center;
}
.contact--form .privacy_confirm label input {
  display: none;
}
.contact--form .privacy_confirm label input + span {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.contact--form .privacy_confirm label input + span::before {
  content: "";
  width: 2rem;
  height: 2rem;
  border: 1px solid #ccc;
  display: block;
  margin: 0 1rem 0 0;
}
@media only screen and (max-width: 767px) {
  .contact--form .privacy_confirm label input + span::before {
    width: 3rem;
    height: 3rem;
  }
}
.contact--form .privacy_confirm label input + span::after {
  content: "";
  width: 1.4rem;
  height: 0.8rem;
  position: absolute;
  top: 0.6rem;
  left: 0.3rem;
  margin: auto;
  transform: rotate(-45deg);
  border-bottom: 2px solid #9e0a31;
  border-left: 2px solid #9e0a31;
  display: none;
}
@media only screen and (max-width: 767px) {
  .contact--form .privacy_confirm label input + span::after {
    width: 2rem;
    height: 1.2rem;
    top: 1.2rem;
    left: 0.4rem;
  }
}
.contact--form .privacy_confirm label input + span a {
  text-decoration: underline;
}
.contact--form .privacy_confirm label input:checked + span::after {
  display: block;
}
.contact--form .confirm_btn {
  width: 32.8rem;
  margin: auto;
  background: #000;
  transition: 0.3s;
  border: 1px solid #000;
}
@media only screen and (max-width: 767px) {
  .contact--form .confirm_btn {
    width: 49.5rem;
  }
}
.contact--form .confirm_btn:hover {
  opacity: 1;
  background: #fff;
}
.contact--form .confirm_btn:hover p {
  color: #000;
}
.contact--form .confirm_btn p {
  line-height: 7.5rem;
  transition: 0.3s;
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: #fff;
  padding: 0;
  text-align: center;
  cursor: pointer;
}
@media only screen and (max-width: 767px) {
  .contact--form .confirm_btn p {
    line-height: 11rem;
    font-size: 3rem;
  }
}
.contact--form #back-to-input {
  background: #ccc;
  color: #000;
}

#confirm-data.contact--form dl dt {
  margin-top: 0;
}

#back-to-input {
  width: 25rem;
  margin: auto;
  background: #000;
  transition: 0.3s;
  line-height: 5.5rem;
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: #fff;
  padding: 0;
  text-align: center;
  cursor: pointer;
  background: #ccc;
  color: #000;
  border: 1px solid #ccc;
}
#back-to-input:hover {
  opacity: 1;
  background: #fff;
  color: #ccc;
}
@media only screen and (max-width: 767px) {
  #back-to-input {
    width: 40rem;
    line-height: 8rem;
    font-size: 3rem;
  }
}

.confirm_btns input {
  width: 32.8rem;
  margin: auto;
  background: #000;
  transition: 0.3s;
  border: 1px solid #000;
  line-height: 7.5rem;
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  padding: 0;
  text-align: center;
  cursor: pointer;
  display: block;
  margin-bottom: 3rem;
  color: #fff;
}
.confirm_btns input:hover {
  opacity: 1;
  background: #fff;
  color: #000;
}
@media only screen and (max-width: 767px) {
  .confirm_btns input {
    width: 49.5rem;
    line-height: 11rem;
    font-size: 3rem;
  }
}