@charset "UTF-8";

@media only screen and (max-width: 1400px) {
  html {
    font-size: 0.7142857143vw;
  }
}

/*
//////////////////////////////////////////////////////////////////////////////////////////////
setting - custom property
//////////////////////////////////////////////////////////////////////////////////////////////
*/
.l-lpcontents {
  --color-white: #fff;
  --color-black: #000;
  --color-text: #383838;
  --color-red: #965459;
  --color-beige: #ddd4ce;
  --font-scotch: "scotch-display";
  --font-yu-gothic: "Yu Gothic", "游ゴシック", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
  --font-en: var(--font-scotch), sans-serif;
  --font-ja: var(--font-yu-gothic), sans-serif;
  --font-main: var(--font-scotch), var(--font-yu-gothic), sans-serif;
  --fw-light: 300;
  --fw-regular: 400;
  --fw-medium: 500;
  --fw-semibold: 600;
  --fw-bold: 700;
  font-feature-settings: "palt";
  overflow: hidden;
}

@media screen and (min-width: 768px) {
  .l-lpcontents {
    --width-primary: 140rem;
    --fz-text_fv_lead: 1.6rem;
    --fz-text_num: 7.1rem;
    --fz-text_title: 7.8rem;
    --fz-text_color: 2rem;
    --fz-text_credit: 2rem;
    --fz-text_lead: 1.4rem;
  }

  .l-lpcontents .c-bg_white {
    background-color: var(--color-white);
  }
}

@media screen and (max-width: 767px) {
  .l-lpcontents {
    --width-primary: calc(750*100vw/750);
    --fz-text_fv_lead: calc(26*100vw/750);
    ;
    --fz-text_num: calc(158*100vw/750);
    ;
    --fz-text_title: calc(106*100vw/750);
    ;
    --fz-text_color: calc(36*100vw/750);
    ;
    --fz-text_credit: calc(36*100vw/750);
    ;
    --fz-text_lead: calc(25*100vw/750);
    ;
  }
}

@media screen and (min-width: 768px) {
  .l-lpcontents .sp_only {
    display: none !important;
  }

  .l-lpcontents .c-bg_white {
    background-color: var(--color-white);
  }
}

@media screen and (max-width: 767px) {
  .main-area .main-inner {
    width: 100%;
  }

  .l-lpcontents .pc_only {
    display: none !important;
  }
}

.l-lpcontents img {
  display: block;
  width: 100%;
  height: auto;
  vertical-align: bottom;
}

/*
//////////////////////////////////////////////////////////////////////////////////////////////
component - grid
//////////////////////////////////////////////////////////////////////////////////////////////
*/
.l-lpcontents [class*="grid_column-1"] {
  --columns: 1;
}

.l-lpcontents [class*="grid_column-2"] {
  --columns: 2;
}

.l-lpcontents [class*="grid_column-3"] {
  --columns: 3;
}

/************** グリッドをPC/SP共通で使用する場合 **************/
.l-lpcontents [class*="c-grid_column"] {
  display: grid;
  grid-template-columns: repeat(var(--columns, 1), 1fr);
  gap: var(--row, 0) var(--column, 0);
}

.l-lpcontents [class*="c-grid_column"]>* {
  /* width: fit-content; */
  height: fit-content;
}

/************** グリッドをPCのみ使用する場合 **************/
@media screen and (min-width: 768px) {
  .l-lpcontents [class*="c-pc_grid_column"] {
    display: grid;
    grid-template-columns: repeat(var(--columns, 1), 1fr);
    gap: var(--row, 0) var(--column, 0);
  }

  .l-lpcontents [class*="pc_grid_column-1"] {
    --columns: 1;
  }

  .l-lpcontents [class*="pc_grid_column-2"] {
    --columns: 2;
  }

  .l-lpcontents [class*="pc_grid_column-3"] {
    --columns: 3;
  }

  .l-lpcontents [class*="pc_grid_column"]>* {
    width: fit-content;
    height: fit-content;
  }
}

/************** グリッドをSPのみ使用する場合 **************/
@media screen and (max-width: 767px) {
  .l-lpcontents [class*="c-sp_grid_column"] {
    display: grid;
    grid-template-columns: repeat(var(--columns, 1), 1fr);
    gap: var(--row, 0) var(--column, 0);
  }

  .l-lpcontents [class*="sp_grid_column-1"] {
    --columns: 1;
  }

  .l-lpcontents [class*="sp_grid_column-2"] {
    --columns: 2;
  }

  .l-lpcontents [class*="sp_grid_column-3"] {
    --columns: 3;
  }

  .l-lpcontents [class*="sp__grid_column"]>* {
    width: fit-content;
    height: fit-content;
  }
}

/*
//////////////////////////////////////////////////////////////////////////////////////////////
component - position
//////////////////////////////////////////////////////////////////////////////////////////////
*/
.l-lpcontents [class*="c-pos-"] {
  position: absolute;
  bottom: -0.5rem;
  left: var(--left, initial);
  right: var(--right, initial);
}

.l-lpcontents [class*="c-pos"]>li {
  display: block;
  margin-inline: initial;
}

@media screen and (min-width: 768px) {
  .l-lpcontents [class*="c-pc_pos"] {
    position: absolute;
    bottom: -0.5rem;
    left: var(--left, initial);
    right: var(--right, initial);
  }

  .l-lpcontents [class*="c-pc_pos"]>li {
    display: block;
    margin-inline: initial;
  }
}

@media screen and (max-width: 767px) {

  .l-lpcontents [class*="c-pos-"],
  .l-lpcontents [class*="c-sp_pos"] {
    position: absolute;
    bottom: calc(-10*100vw/750);
    ;
    left: var(--left, initial);
    right: var(--right, initial);
  }

  .l-lpcontents [class*="c-sp_pos"]>li {
    display: block;
    margin-inline: initial;
  }
}

/*
//////////////////////////////////////////////////////////////////////////////////////////////
component - text
//////////////////////////////////////////////////////////////////////////////////////////////
*/
.l-lpcontents .c-text_fv_lead {
  font-size: var(--fz-text_fv_lead);
  line-height: 1.75;
  letter-spacing: 0.075em;
  color: var(--color-text);
  font-family: var(--font-yu-gothic);
  font-weight: var(--fw-medium);
  font-feature-settings: "palt";
  text-align: center;
}

.l-lpcontents .c-text_fv_lead>span {
  color: var(--color-red);
}

.l-lpcontents .c-text_num {
  position: absolute;
  z-index: -1;
  width: 10rem;
  font-size: var(--fz-text_num);
  line-height: 1;
  color: var(--color-beige);
  font-family: var(--font-scotch);
  font-weight: var(--fw-light);
  font-style: italic;
  overflow: hidden;
}

.l-lpcontents .c-text_num>span {
  font-family: var(--font-scotch);
  font-weight: var(--fw-light);
}

.l-lpcontents .c-text_title {
  font-size: var(--fz-text_title);
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--color-red);
  font-family: var(--font-scotch);
  font-weight: var(--fw-light);
  overflow: hidden;
  padding-bottom: 1rem;
}

.l-lpcontents .c-text_title>span {
  font-family: var(--font-scotch);
  font-weight: var(--fw-light);
}

.l-lpcontents .c-text_color {
  display: block;
  margin-top: 1.3rem;
  font-size: var(--fz-text_color);
  line-height: 1.4;
  color: var(--color-text);
  font-family: var(--font-scotch);
  font-weight: var(--fw-regular);
}

.l-lpcontents .c-text_credit {
  position: relative;
  margin-top: 0.9rem;
  padding-left: 0.6rem;
  font-size: var(--fz-text_credit);
  line-height: 1.4;
  color: var(--color-text);
  font-family: var(--font-scotch);
  font-weight: var(--fw-regular);
}

.l-lpcontents .c-text_credit::before {
  position: absolute;
  content: "";
  display: block;
  width: 9.2rem;
  height: 0.8rem;
  background-color: var(--color-beige);
  bottom: 0.2rem;
  left: 0;
  z-index: -1;
  pointer-events: none;
}

.l-lpcontents .c-text_lead {
  margin-top: 3.9rem;
  font-size: var(--fz-text_lead);
  line-height: 2;
  letter-spacing: 0.08em;
  color: var(--color-text);
  font-family: var(--font-yu-gothic);
  font-weight: var(--fw-medium);
  text-align: justify;
  font-feature-settings: "palt";
}

@media screen and (max-width: 767px) {
  .l-lpcontents .c-text_num {
    width: calc(200*100vw/750);
  }

  .l-lpcontents .c-text_title {
    padding-bottom: calc(10*100vw/750);
    ;
  }

  .l-lpcontents .c-text_color {
    margin-top: calc(38* 100vw / 750);
    line-height: 1.3813888889;
  }

  .l-lpcontents .c-text_credit {
    margin-top: calc(20*100vw/750);
    ;
    padding-left: calc(12*100vw/750);
    ;
    line-height: 1.3813888889;
  }

  .l-lpcontents .c-text_credit::before {
    width: calc(164*100vw/750);
    height: calc(14*100vw/750);
    bottom: calc(6*100vw/750);
  }

  .l-lpcontents .c-text_lead {
    margin-top: calc(54*100vw/750);
  }
}

/*
//////////////////////////////////////////////////////////////////////////////////////////////
component - image
//////////////////////////////////////////////////////////////////////////////////////////////
*/

/*
//////////////////////////////////////////////////////////////////////////////////////////////
project - common
//////////////////////////////////////////////////////////////////////////////////////////////
*/
.l-lpcontents .p-style_inner {
  width: var(--width-primary);
  margin-inline: auto;
}

.l-lpcontents .p-style_text {
  position: relative;
  --row: 1rem;
}

.l-lpcontents .p-firstview_image::before,
.l-lpcontents .p-style_text::before {
  position: absolute;
  content: "";
  width: 100vw;
  height: 1px;
  background-color: var(--color-beige);
  top: 6.4rem;
  left: 0;
  z-index: -1;
  transform-origin: center left;
  transition: transform 2s;
  transition-delay: 1s;
  transform: scaleX(0);
}

.l-lpcontents .p-firstview_image::before {
  top: 50%;
  left: 50%;
  transform: translate(-200vw, -50%);
  height: 0.75px;
}

.l-lpcontents .p-style_text.is-active::before {
  transform: scaleX(1);
}

.l-lpcontents .p-firstview_image.is-active::before {
  transform: translate(-50%, -50%);
}

.l-lpcontents .p-style_image {
  position: relative;
}

.l-lpcontents .p-style_image::before {
  position: absolute;
  content: "";
  display: block;
  width: 100%;
  height: 63rem;
  left: 1.2rem;
  background-color: var(--color-beige);
  top: 1.2rem;
}

.l-lpcontents .p-style03 .p-style_image::before {
  height: 60rem;
  left: -1.2rem;
}

@media screen and (max-width: 767px) {
  .l-lpcontents .p-style_text {
    --row: calc(20*100vw/750);
    margin-left: calc(40* 100vw / 750);
  }

  .l-lpcontents .p-firstview_image::before,
  .l-lpcontents .p-style_text::before {
    height: 1px;
    top: calc(88* 100vw / 750);
  }

  .iphone .l-lpcontents .p-style_text::before {
    top: 45px;
  }

  _:lang(x)::-internal-media-controls-overlay-cast-button,
  body .l-lpcontents .p-style_text::before {
    top: calc(88* 100vw / 750);
  }

  .l-lpcontents .p-firstview_image::before {
    top: calc(342*100vw/750);
    ;
    height: 1px;
  }

  .l-lpcontents .p-style_image::before {
    height: calc(945*100vw/750);
    left: calc(40*100vw/750);
    top: calc(40*100vw/750);
  }

  .l-lpcontents .p-style02 .p-style_image::before {
    height: calc(915*100vw/750);
    left: calc(-40*100vw/750);
    top: calc(-40*100vw/750);
    ;
  }

  .l-lpcontents .p-style03 .p-style_image::before {
    height: calc(945*100vw/750);
    left: calc(40*100vw/750);
  }
}

/*
//////////////////////////////////////////////////////////////////////////////////////////////
project - firstview
//////////////////////////////////////////////////////////////////////////////////////////////
*/
.l-lpcontents .p-firstview {
  position: relative;
}

.l-lpcontents .p-firstview_inner {
  --row: 4rem;
  place-items: center;
}

.l-lpcontents .p-firstview_image {
  position: relative;
  z-index: 5;
  width: 36rem;
}

.l-lpcontents .p-firstview_text {
  --row: 2.3rem;
}

.l-lpcontents .p-firstview_text_title {
  position: relative;
}

.l-lpcontents .p-firstview_text_title01 {
  width: 42.8rem;
  margin-inline: auto;
  overflow: hidden;
  position: relative;
  left: -2.1rem;
}

.l-lpcontents .p-firstview_text_title02 {
  position: relative;
  width: 18.8rem;
  top: -1rem;
  z-index: 5;
  left: 26.1rem;
  overflow: hidden;
}

@media screen and (max-width: 767px) {
  .l-lpcontents .p-firstview_inner {
    --row: calc(57* 100vw / 750);
  }

  .l-lpcontents .p-firstview_image {
    width: calc(520*100vw/750);
  }

  .l-lpcontents .p-firstview_text {
    --row: calc(28* 100vw / 750);
  }

  .l-lpcontents .p-firstview_text_title01 {
    width: calc(568* 100vw / 750);
    left: calc(-28* 100vw / 750);
  }

  .l-lpcontents .p-firstview_text_title02 {
    width: calc(250* 100vw / 750);
    top: calc(-14* 100vw / 750);
    left: calc(370* 100vw / 750);
  }
}

/*
//////////////////////////////////////////////////////////////////////////////////////////////
project - style01
//////////////////////////////////////////////////////////////////////////////////////////////
*/
.l-lpcontents .p-style01 {
  margin-top: 10.3rem;
}

.l-lpcontents .p-style01 .p-style_inner {
  width: 92.8rem;
  height: 63rem;
  grid-template-columns: 56.7rem;
  grid-template-rows: 20rem;
}

.l-lpcontents .p-style01 .swiper-wrapper {
  width: 42rem;
}

.l-lpcontents .p-style01 .p-style_image {
  grid-column: 1;
  grid-row: 1;
}

.l-lpcontents .p-style01 .p-style_text {
  grid-column: 2;
  grid-row: 2;
}

.l-lpcontents .p-style01 .c-text_lead {
  width: 31.8rem;
}

.l-lpcontents .p-style01 .c-text_num {
  top: -3.7rem;
  left: -4.4rem;
}

@media screen and (max-width: 767px) {
  .l-lpcontents .p-style01 {
    margin-top: calc(150* 100vw / 750);
  }

  .l-lpcontents .p-style01 .p-style_inner {
    width: var(--width-primary);
    height: initial;
  }

  .l-lpcontents .p-style01 .swiper-wrapper {
    width: calc(630*100vw/750);
  }

  .l-lpcontents .p-style01 .p-style_image {
    width: calc(630*100vw/750);
    ;
    margin-left: calc(40*100vw/750);
    ;
  }

  .l-lpcontents .p-style01 .p-style_text {
    margin-top: calc(127* 100vw / 750);
  }

  .l-lpcontents .p-style01 .c-text_lead {
    width: calc(664*100vw/750);
  }

  .l-lpcontents .p-style01 .c-text_num {
    top: calc(-92* 100vw / 750);
    left: calc(-62* 100vw / 750);
  }

}

/*
//////////////////////////////////////////////////////////////////////////////////////////////
project - style02
//////////////////////////////////////////////////////////////////////////////////////////////
*/
.l-lpcontents .p-style02 {
  margin-top: 14.6rem;
}

.l-lpcontents .p-style02 .p-style_inner {
  width: 107.6rem;
  height: 63rem;
  grid-template-columns: 24.6rem 41rem;
  grid-template-rows: 18.8rem;
}

.l-lpcontents .p-style02 .swiper-wrapper {
  width: 42rem;
}

.l-lpcontents .p-style02 .p-style_image {
  grid-column: 3;
  grid-row: 1;
}

.l-lpcontents .p-style02 .p-style_text {
  grid-column: 2;
  grid-row: 2;
}

.l-lpcontents .p-style02 .c-text_lead {
  width: 31.8rem;
}

.l-lpcontents .p-style02 .c-text_num {
  top: -3.7rem;
  left: -5.7rem;
}

@media screen and (max-width: 767px) {
  .l-lpcontents .p-style02 {
    margin-top: calc(187* 100vw / 750);
  }

  .l-lpcontents .p-style02 .p-style_inner {
    width: var(--width-primary);
    height: initial;
  }

  .l-lpcontents .p-style02 .p-style_image {
    width: calc(610*100vw/750);
    ;
    margin-left: calc(70*100vw/750);
    ;
  }

  .l-lpcontents .p-style02 .swiper-wrapper {
    width: calc(610*100vw/750);
  }

  .l-lpcontents .p-style02 .p-style_text {
    margin-top: calc(128* 100vw / 750);
    margin-left: calc(70*100vw/750);
    ;
  }

  .l-lpcontents .p-style02 .c-text_lead {
    width: calc(605*100vw/750);
  }

  .l-lpcontents .p-style02 .c-text_num {
    top: calc(-94* 100vw / 750);
    left: calc(-94* 100vw / 750);
  }
}

/*
//////////////////////////////////////////////////////////////////////////////////////////////
project - style03
//////////////////////////////////////////////////////////////////////////////////////////////
*/
.l-lpcontents .p-style03 {
  margin-top: 14.6rem;
}

.l-lpcontents .p-style03 .p-style_inner {
  width: 87.7rem;
  height: 60rem;
  grid-template-columns: 54.8rem;
  grid-template-rows: 18.8rem;
}

.l-lpcontents .p-style03 .swiper-wrapper {
  width: 40rem;
}

.l-lpcontents .p-style03 .p-style_image {
  grid-column: 1;
  grid-row: 1;
}

.l-lpcontents .p-style03 .p-style_text {
  grid-column: 2;
  grid-row: 2;
}

.l-lpcontents .p-style03 .c-text_lead {
  width: 34rem;
}

.l-lpcontents .p-style03 .c-text_num {
  top: -3.7rem;
  left: -5.7rem;
}

@media screen and (max-width: 767px) {
  .l-lpcontents .p-style03 {
    margin-top: calc(145* 100vw / 750);
  }

  .l-lpcontents .p-style03 .p-style_inner {
    width: var(--width-primary);
    height: initial;
  }

  .l-lpcontents .p-style03 .swiper-wrapper {
    width: calc(630*100vw/750);
  }

  .l-lpcontents .p-style03 .p-style_image {
    width: calc(630*100vw/750);
    margin-left: calc(60*100vw/750);
    ;
  }

  .l-lpcontents .p-style03 .p-style_text {
    margin-top: calc(128* 100vw / 750);
    margin-left: calc(60*100vw/750);
    ;
  }

  .l-lpcontents .p-style03 .c-text_lead {
    width: calc(627*100vw/750);
  }

  .l-lpcontents .p-style03 .c-text_num {
    top: calc(-94* 100vw / 750);
    left: calc(-84* 100vw / 750);
  }
}

/*
//////////////////////////////////////////////////////////////////////////////////////////////
project - endview
//////////////////////////////////////////////////////////////////////////////////////////////
*/
.l-lpcontents .p-endview {
  position: relative;
  z-index: 10;
  margin-block: 14.7rem 15rem;
}

.l-lpcontents .p-endview_inner {
  --row: 1rem;
}

.l-lpcontents .c-btn {
  width: 42rem;
  height: 7.2rem;
  margin-inline: auto;
  border: 0.1rem solid var(--color-red);
  font-family: var(--font-en);
  font-size: 2.4rem;
  line-height: 1.1666666667;
  color: var(--color-red);
  overflow: hidden;
}

.l-lpcontents .c-btn>a {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
}

@media screen and (max-width: 767px) {
  .l-lpcontents .p-endview {
    margin-block: calc(146* 100vw / 750) calc(200* 100vw / 750);
  }

  .l-lpcontents .p-endview_inner {
    --row: calc(20*100vw/750);
  }

  .l-lpcontents .c-btn {
    width: calc(670*100vw/750);
    ;
    height: calc(146*100vw/750);
    ;
    border: 1px solid var(--color-red);
    font-size: calc(42*100vw/750);
    line-height: 1.1904761905;
  }
}

/*
//////////////////////////////////////////////////////////////////////////////////////////////
animation - fade
//////////////////////////////////////////////////////////////////////////////////////////////
*/
.l-lpcontents .js-fade.js-fade_image {
  opacity: 0;
  visibility: hidden;
  transition-duration: 0.8s;
}

.l-lpcontents .js-fade.js-fade_image.is-active {
  opacity: 1;
  visibility: visible;
}

.l-lpcontents .js-fade_text {
  width: 100%;
  height: 100%;
  display: inline-block;
  opacity: 0;
  transition: transform cubic-bezier(0.215, 0.61, 0.355, 1) 1s;
  transform: translate(0, 105%);
}

.l-lpcontents .is-active .js-fade_text {
  opacity: 1;
  transform: translate(0, 0);
}




/*
//////////////////////////////////////////////////////////////////////////////////////////////
animation - fade
//////////////////////////////////////////////////////////////////////////////////////////////
*/
.l-lpcontents .swiper-pagination {
  position: relative;
  display: flex;
  font-size: 0;
  gap: 0.4rem;
  margin-top: 3.2rem;
}

.l-lpcontents .p-style02 .swiper-pagination {
  justify-content: flex-end;
  right: -1.2rem;
}

.l-lpcontents .p-style03 .swiper-pagination {
  left: -1.1rem;
}

.l-lpcontents .swiper-pagination-bullet {
  position: relative;
  display: inline-block;
  border-radius: 0;
  background-color: var(--color-beige);
  opacity: 1;
}

.l-lpcontents .swiper-pagination-bullet .bulletInner {
  position: absolute;
  content: "";
  display: block;
  width: 0%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: 100;
  background-color: var(--color-red);
}

.l-lpcontents .swiper-pagination-bullet-active .bulletInner {
  animation: progressAnimation 3s linear forwards;
}

@media screen and (min-width: 768px) {
  .l-lpcontents .swiper-pagination-bullet {
    width: 5rem;
    height: 0.4rem;
  }
}

@media screen and (max-width: 767px) {
  .l-lpcontents .swiper-pagination {
    justify-content: flex-end;
    gap: calc(8*100vw/750);
    right: calc(-2*100vw/750);
    ;
    margin-top: calc(30*100vw/750);
  }

  .l-lpcontents .p-style01 .swiper-pagination {
    margin-top: calc(80* 100vw / 750);
    right: calc(-42* 100vw / 750);
  }

  .l-lpcontents .p-style02 .swiper-pagination {
    margin-top: calc(40* 100vw / 750);
    right: calc(-2*100vw/750);
    ;
  }

  .l-lpcontents .p-style03 .swiper-pagination {
    margin-top: calc(80*100vw/750);
    left: calc(40*100vw/750);
    ;
  }

  .l-lpcontents .swiper-pagination-bullet {
    width: calc(120*100vw/750);
    height: calc(6*100vw/750);
  }

  .l-lpcontents .model_section-07 .swiper-pagination {
    justify-content: flex-start;
  }
}

@-webkit-keyframes progressAnimation {
  0% {
    width: 0%;
  }

  100% {
    width: 100%;
  }
}

@keyframes progressAnimation {
  0% {
    width: 0%;
  }

  100% {
    width: 100%;
  }
}