@charset "UTF-8";
/* ==========================================================================
  LP
========================================================================== */
.section {
  padding-block: max(12.3076923077vw, 46.1538461538px);
}
.section__title {
  font-size: max(3.5897435897vw, 13.4615384615px);
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: 0.03em;
}
.section__title .--en {
  display: block;
  font-family: "Outfit", sans-serif;
  font-size: max(16.4102564103vw, 61.5384615385px);
  font-weight: 700;
}
.section article {
  display: flex;
  flex-direction: column;
  gap: max(12.3076923077vw, 46.1538461538px);
}
@media (800px <= width) {
  .section {
    padding-block: 6rem;
  }
  .section__title {
    font-size: 1rem;
    font-weight: 700;
  }
  .section__title .--en {
    font-size: 5.3125rem;
  }
  .section article {
    gap: 6rem;
  }
}

.fv {
  overflow: hidden;
  background: #f4f0e3;
}
.fv__inner {
  position: relative;
  aspect-ratio: 390/753;
  margin-inline: auto;
}
.fv__body {
  position: relative;
  z-index: 5;
  width: max(87.6923076923vw, 328.8461538462px);
  aspect-ratio: 342/643;
  margin-inline: auto;
}
.fv__title, .fv__tagline, .fv__cta {
  position: absolute;
}
.fv__title {
  top: max(98.2051282051vw, 368.2692307692px);
  left: 0;
  display: flex;
  flex-direction: column;
  gap: max(2.0512820513vw, 7.6923076923px);
  align-items: center;
  width: 100%;
}
.fv__title span {
  font-size: max(3.0769230769vw, 11.5384615385px);
  font-weight: #1a1a1a;
  font-weight: 900;
  line-height: 1.4;
  color: #fff;
  letter-spacing: 0.5em;
}
.fv__tagline {
  top: max(126.6666666667vw, 475px);
  right: 0;
  left: 0;
  margin-inline: auto;
  font-size: max(3.5897435897vw, 13.4615384615px);
  font-weight: 700;
  line-height: 1.4;
  color: #fff;
  text-align: center;
  letter-spacing: 0.05em;
}
.fv__cta {
  bottom: 0;
  left: max(-6.1538461538vw, -23.0769230769px);
  width: calc(100% + max(6.1538461538vw, 23.0769230769px) * 2);
}
.fv__cta .cta__catch {
  color: #ad7526;
}
.fv__image {
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
}
.fv__image picture {
  height: 100%;
}
.fv__image picture img {
  -o-object-fit: cover;
     object-fit: cover;
  height: 100%;
}
.fv__logos {
  position: absolute;
  z-index: 5;
  display: flex;
  align-items: end;
}
.fv__logo picture,
.fv__logo img {
  width: auto;
  height: 100%;
}
@media (width < 800px) {
  .fv__title {
    margin-inline: auto;
    width: max(79.4871794872vw, 298.0769230769px);
  }
  .fv__logos {
    right: 0;
    bottom: max(8.2051282051vw, 30.7692307692px);
    left: 0;
    gap: max(4.1025641026vw, 15.3846153846px);
    justify-content: center;
  }
  .fv__logo {
    height: max(11.7948717949vw, 44.2307692308px);
  }
  .fv__logo.--kyotele {
    height: max(9.7435897436vw, 36.5384615385px);
  }
}
@media (800px <= width) {
  .fv {
    padding-top: 4.5rem;
  }
  .fv__inner {
    max-width: 1440px;
    aspect-ratio: 1440/692;
  }
  .fv__body {
    width: min(41.4583333333vw, 597px);
    aspect-ratio: 597/692;
    margin-inline: min(17.3611111111vw, 250px) auto;
  }
  .fv__title {
    top: min(10vw, 144px);
    gap: min(1.1111111111vw, 16px);
  }
  .fv__title span {
    font-size: min(1.6666666667vw, 24px);
    color: #ca1c10;
  }
  .fv__tagline {
    top: min(25.6944444444vw, 370px);
    margin-inline: 0 auto;
    font-size: min(1.6666666667vw, 24px);
    font-weight: 700;
    color: #1a1a1a;
    text-align: left;
  }
  .fv__tagline span {
    color: #ca1c10;
  }
  .fv__cta {
    top: min(32.5vw, 468px);
    left: 0;
    width: 100%;
  }
  .fv__cta .cta__wrap {
    margin-top: min(-0.625vw, -9px);
  }
  .fv__cta .cta__catch {
    width: min(17.1527777778vw, 247px);
    padding: min(0.2777777778vw, 4px) min(1.1111111111vw, 16px);
    font-size: min(1.1111111111vw, 16px);
    transform: translateY(min(0.625vw, 9px));
  }
  .fv__cta .cta__catch::after {
    right: min(2.5vw, 36px);
    bottom: min(-0.5555555556vw, -8px);
    width: min(1.0416666667vw, 15px);
  }
  .fv__cta .cta__button {
    width: min(20.8333333333vw, 300px);
    height: min(4.4444444444vw, 64px);
    font-size: min(1.6666666667vw, 24px);
  }
  .fv__cta .cta__button::after {
    right: min(1.3888888889vw, 20px);
    height: min(1.1111111111vw, 16px);
  }
  .fv__logos {
    bottom: min(1.1111111111vw, 16px);
    left: min(2.2222222222vw, 32px);
    gap: min(1.3888888889vw, 20px);
  }
  .fv__logo {
    height: min(3.125vw, 45px);
  }
  .fv__logo.--forjapan {
    height: min(3.8888888889vw, 56px);
  }
}

.movies {
  padding-block: max(6.1538461538vw, 23.0769230769px) max(8.2051282051vw, 30.7692307692px);
  color: #fff;
  background: #1a1a1a;
}
.movies .movie {
  display: flex;
  flex-direction: column;
  gap: max(2.0512820513vw, 7.6923076923px);
  align-items: center;
}
.movies .movie__guest {
  font-size: max(3.5897435897vw, 13.4615384615px);
  line-height: 1.2;
}
.movies .movie__theme {
  font-size: max(3.0769230769vw, 11.5384615385px);
  line-height: 1.2;
}
.movies .movie,
.movies .embed {
  width: 100%;
}
.movies .splide__pagination {
  bottom: 0;
}
.movies .splide__pagination__page {
  width: max(2.5641025641vw, 9.6153846154px);
  height: max(2.5641025641vw, 9.6153846154px);
  background: #fff;
  opacity: 1;
}
.movies .splide__pagination__page.is-active {
  background: #ca1c10;
  transform: scale(1);
}
@media (width < 800px) {
  .movies .container {
    width: 100%;
  }
  .movies .splide {
    padding-bottom: max(6.6666666667vw, 25px);
  }
  .movies .movie__theme {
    display: none;
  }
}
@media (800px <= width) {
  .movies {
    padding-block: 2rem;
  }
  .movies .movie {
    gap: 0.5rem;
  }
  .movies .movie__guest {
    font-size: 1rem;
  }
  .movies .movie__theme {
    font-size: 0.75rem;
  }
  .movies .splide__list {
    display: flex !important;
    flex-wrap: wrap;
    gap: 1.5rem;
    justify-content: center;
    width: 100%;
  }
  .movies .splide__slide {
    flex-basis: calc((100% - 1.5rem) / 2);
  }
}

.about__lead {
  font-size: max(4.1025641026vw, 15.3846153846px);
  line-height: 1.6;
  text-align: center;
}
.about .aboutList {
  display: flex;
  flex-direction: column;
  gap: max(12.3076923077vw, 46.1538461538px);
}
.about .aboutList__item {
  display: flex;
  flex-direction: column;
  gap: max(4.1025641026vw, 15.3846153846px);
  align-items: center;
}
.about .aboutList__item > * {
  white-space: nowrap;
}
.about .aboutList__title {
  font-size: max(4.1025641026vw, 15.3846153846px);
  font-weight: 900;
}
.about .aboutList__text {
  display: flex;
  flex-direction: column;
  gap: max(4.1025641026vw, 15.3846153846px);
  font-size: max(6.1538461538vw, 23.0769230769px);
  font-weight: 700;
}
.about .aboutList__text em {
  margin-block: max(-5.641025641vw, -21.1538461538px);
  text-align: center;
}
.about .aboutList__text em .--num {
  font-family: "Outfit", sans-serif;
  font-size: max(16.4102564103vw, 61.5384615385px);
  color: #ca1c10;
}
.about .aboutList__text .parentheses {
  margin-left: -0.35em;
}
.about .aboutList__note {
  font-size: max(3.0769230769vw, 11.5384615385px);
}
@media (800px <= width) {
  .about .container {
    gap: 6rem;
  }
  .about__lead {
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 2;
    letter-spacing: 0.2em;
  }
  .about .aboutList {
    flex-direction: row;
    justify-content: space-between;
  }
  .about .aboutList__item {
    gap: 1.25rem;
  }
  .about .aboutList__title {
    font-size: 1.25rem;
  }
  .about .aboutList__text {
    gap: 1.5rem;
    font-size: 2rem;
    letter-spacing: -0.02em;
  }
  .about .aboutList__text em {
    font-size: 2.5rem;
    margin-block: -1.5rem -1.75rem;
    text-align: left;
  }
  .about .aboutList__text em .--num {
    font-size: 6rem;
  }
  .about .aboutList__note {
    font-size: 0.75rem;
  }
}

.benefit {
  color: #fff;
  background: #ca1c10;
}
.benefit .benefitList {
  display: flex;
  flex-direction: column;
  gap: max(12.3076923077vw, 46.1538461538px);
}
.benefit .benefitList__header {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: max(4.1025641026vw, 15.3846153846px);
  margin-bottom: max(6.1538461538vw, 23.0769230769px);
}
.benefit .benefitList__headerInner {
  display: flex;
  gap: max(4.1025641026vw, 15.3846153846px);
  align-items: center;
}
.benefit .benefitList__num {
  font-size: max(16.4102564103vw, 61.5384615385px);
  font-weight: 900;
  line-height: 1;
}
.benefit .benefitList__title {
  font-size: max(5.1282051282vw, 19.2307692308px);
  font-weight: 700;
  line-height: 1.3;
  margin-bottom: -0.3em;
}
.benefit .benefitList__note {
  font-size: max(2.5641025641vw, 9.6153846154px);
  letter-spacing: 0.05em;
}
.benefit .benefitSns {
  display: flex;
  flex-wrap: wrap;
  gap: max(2.0512820513vw, 7.6923076923px);
}
.benefit .benefitSns > li {
  flex-basis: calc((100% - max(2.0512820513vw, 7.6923076923px) * 2) / 3);
}
.benefit .benefitImages {
  display: flex;
  flex-direction: column;
  gap: max(2.0512820513vw, 7.6923076923px);
}
@media (800px <= width) {
  .benefit .container {
    gap: 6rem;
  }
  .benefit .benefitList {
    gap: 6rem;
  }
  .benefit .benefitList__header {
    flex-direction: row;
    gap: 1rem;
    align-items: end;
    margin-bottom: 2rem;
  }
  .benefit .benefitList__headerInner {
    display: flex;
    gap: 1rem;
  }
  .benefit .benefitList__num {
    font-size: 5.3125rem;
  }
  .benefit .benefitList__title {
    font-size: 1.875rem;
    letter-spacing: 0.05em;
  }
  .benefit .benefitList__note {
    font-size: 0.75rem;
  }
  .benefit .benefitSns {
    gap: 0.5rem;
  }
  .benefit .benefitSns > li {
    flex-basis: calc((100% - 2rem) / 5);
  }
  .benefit .benefitImages {
    flex-flow: row wrap;
    gap: 0.5rem;
  }
  .benefit .benefitImages > li {
    flex-basis: calc((100% - 0.5rem) / 2);
  }
  .benefit .benefitImages__item.--item01 {
    order: 1;
  }
  .benefit .benefitImages__item.--item02 {
    order: 3;
  }
  .benefit .benefitImages__item.--item03 {
    order: 4;
  }
  .benefit .benefitImages__item.--item04 {
    order: 2;
  }
}

.service {
  color: #fff;
  background: #1a1a1a;
}
.service .serviceList {
  display: flex;
  flex-direction: column;
  gap: max(24.6153846154vw, 92.3076923077px);
}
.service .serviceList > li {
  display: flex;
  flex-direction: column;
  gap: max(8.2051282051vw, 30.7692307692px);
}
.service .serviceList__item {
  display: flex;
  flex-shrink: 0;
  flex-direction: column;
  gap: max(8.2051282051vw, 30.7692307692px);
}
.service .serviceList__title {
  font-size: max(8.2051282051vw, 30.7692307692px);
  font-weight: 700;
  line-height: 1.3;
}
.service .serviceList__title strong {
  font-weight: inherit;
  color: #ff847b;
}
.service .serviceList__text {
  font-size: max(3.8461538462vw, 14.4230769231px);
  font-weight: 400;
  line-height: 1.6;
}
.service .serviceList__paths {
  display: flex;
  flex-direction: column;
  gap: max(4.1025641026vw, 15.3846153846px);
}
.service .serviceList__path {
  display: flex;
  gap: max(4.1025641026vw, 15.3846153846px);
  align-items: center;
}
.service .serviceList__path dt {
  width: max(13.8461538462vw, 51.9230769231px);
  height: max(9.2307692308vw, 34.6153846154px);
  font-size: max(4.1025641026vw, 15.3846153846px);
  font-weight: 700;
  line-height: max(9.2307692308vw, 34.6153846154px);
  color: #1a1a1a;
  text-align: center;
  background: #ff847b;
}
.service .serviceList__path dd {
  flex: 1;
  font-size: max(3.8461538462vw, 14.4230769231px);
  font-weight: 400;
  line-height: 1.3;
}
.service .serviceList__tags {
  display: flex;
  flex-wrap: wrap;
  gap: max(3.0769230769vw, 11.5384615385px);
}
.service .serviceList__tag {
  display: inline-block;
  padding: max(3.0769230769vw, 11.5384615385px);
  font-size: max(3.5897435897vw, 13.4615384615px);
  font-weight: 700;
  color: #1a1a1a;
  background: #fff;
  border-radius: max(1.0256410256vw, 3.8461538462px);
}
@media (width < 800px) {
  .service .serviceList__image {
    order: -1;
  }
}
@media (800px <= width) {
  .service .container,
  .service article {
    gap: 6rem;
  }
  .service .serviceList {
    gap: 6rem;
  }
  .service .serviceList > li {
    flex-direction: row;
    gap: 3rem;
    justify-content: space-between;
  }
  .service .serviceList > li:nth-of-type(even) {
    flex-direction: row-reverse;
  }
  .service .serviceList__item {
    flex: 1;
    gap: 3rem;
  }
  .service .serviceList__title {
    font-size: 2.25rem;
  }
  .service .serviceList__text {
    font-size: 1rem;
  }
  .service .serviceList__image {
    width: 23rem;
  }
  .service .serviceList__paths {
    gap: 1rem;
  }
  .service .serviceList__path {
    gap: 1rem;
  }
  .service .serviceList__path dt {
    width: 3.375rem;
    height: 2.25rem;
    font-size: 1rem;
    line-height: 2.25rem;
  }
  .service .serviceList__path dd {
    font-size: 1rem;
  }
  .service .serviceList__tags {
    gap: 0.75rem 0.5rem;
    max-width: 20.375rem;
  }
  .service .serviceList__tag {
    padding: 0.75rem;
    font-size: 0.9375rem;
    border-radius: 0.5rem;
  }
}

.staff__list {
  display: flex;
  flex-direction: column;
  gap: max(8.2051282051vw, 30.7692307692px);
}
.staff__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  font-size: max(4.1025641026vw, 15.3846153846px);
  font-weight: 700;
  line-height: 1.3;
}
@media (width < 800px) {
  .staff__item dt {
    font-size: max(3.0769230769vw, 11.5384615385px);
    color: #ca1c10;
  }
}
@media (800px <= width) {
  .staff__list {
    gap: 2rem;
  }
  .staff__item {
    flex-direction: row;
    font-size: 1.25rem;
    line-height: 1;
  }
  .staff__item dt::after {
    content: "：";
  }
}

.faq {
  background: #ca1c10;
}
.faq .section__title {
  color: #fff;
}
.faq__items {
  display: flex;
  flex-direction: column;
  gap: max(4.1025641026vw, 15.3846153846px);
}
.faq__item {
  line-height: 1.3;
  background: #fff;
}
.faq__q, .faq__a {
  display: flex;
  gap: max(6.1538461538vw, 23.0769230769px);
  justify-content: space-between;
  padding: max(3.5897435897vw, 13.4615384615px) max(6.1538461538vw, 23.0769230769px);
  font-size: max(4.1025641026vw, 15.3846153846px);
  font-weight: 700;
}
.faq__q::before, .faq__a::before {
  display: block;
  flex-shrink: 0;
  font-family: "Outfit", sans-serif;
  font-size: max(5.1282051282vw, 19.2307692308px);
  text-align: center;
}
.faq__q {
  align-items: center;
  width: 100%;
  border-bottom: max(0.2564102564vw, 0.9615384615px) solid #ca1c10;
}
.faq__q::before {
  content: "Q.";
}
.faq__q::after {
  width: max(4.1025641026vw, 15.3846153846px);
  height: max(4.1025641026vw, 15.3846153846px);
  content: "";
  background: center/contain no-repeat url("../img/arrow-select.svg");
}
.faq__q__text {
  flex: 1;
}
.faq__a::before {
  color: #ca1c10;
  content: "A.";
}
.faq__a__body {
  flex: 1;
}
.faq__item.is-open .faq__q::after {
  transform: rotate(-180deg);
}
.faq .accordion__panel[aria-hidden=true] .faq__a {
  padding-block: 0;
}
@media (800px <= width) {
  .faq__items {
    gap: 1.5rem;
  }
  .faq__q, .faq__a {
    gap: 1.5rem;
    padding: 0.875rem 1.5rem;
    font-size: 1rem;
  }
  .faq__q::before, .faq__a::before {
    font-size: 1.25rem;
  }
  .faq__q {
    border-width: 0.0625rem;
  }
  .faq__q::after {
    width: 1rem;
    height: 1rem;
  }
}

.contact {
  background: #f4f0e3;
}
.contact__title {
  font-size: max(6.1538461538vw, 23.0769230769px);
  font-weight: 700;
  line-height: 1.3;
  text-align: center;
}
@media (width < 800px) {
  .contact .container {
    gap: max(8.2051282051vw, 30.7692307692px);
  }
  .contact__title {
    font-weight: 900;
  }
}
@media (800px <= width) {
  .contact__title {
    font-size: 2.25rem;
    line-height: 1.4;
  }
  .contact .container {
    width: 46rem;
  }
}