@charset "UTF-8";
/*--------------------------------------*
* 基本設定
*--------------------------------------*/
/*--------------------------------------*
* ベースカラー
*--------------------------------------*/
/*--------------------------------------*
* フォント
*--------------------------------------*/
@font-face {
  font-family: "avenir";
  src: url(../assets/fonts/AvenirNextCyr-Regular.ttf);
}
@font-face {
  font-family: "avenir_b";
  src: url(../assets/fonts/AvenirNextCyr-Medium.ttf);
}
/*--------------------------------------*
* ブレイクポイント
*--------------------------------------*/
/*--------------------------------------*
* vw変換(SP用)
*--------------------------------------*/
/*--------------------------------------*
* vw変換(PC用)
*--------------------------------------*/
/*--------------------------------------*
* デフォルトスタイル
*--------------------------------------*/
html,
body {
  width: 100%;
  font-size: 16px;
  margin: 0 auto;
  font-family: "avenir";
}

img,
video,
object {
  width: 100%;
  border: none;
  display: block;
}

@media screen and (min-width: 769px) {
  .spNone {
    display: block;
  }
}
@media screen and (max-width: 768px) {
  .spNone {
    display: none;
  }
}

@media screen and (min-width: 769px) {
  .pcNone {
    display: none;
  }
}
@media screen and (max-width: 768px) {
  .pcNone {
    display: block;
  }
}

.en_b {
  font-family: "avenir_b";
}

/*--------------------------------------*
* aタグ
*--------------------------------------*/
a {
  display: block;
  text-decoration: none;
  transition: all 0.4s;
  color: #000;
}
@media screen and (min-width: 769px) {
  a:hover {
    opacity: 0.6;
    transition: all 0.4s;
  }
}
a[href=""] {
  pointer-events: none;
}

/*--------------------------------------*
* ローディング
*--------------------------------------*/
#loading-bg {
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0px;
  left: 0px;
  background: #fff;
  z-index: 999;
}

/*-------------------
* コンテンツのスタイル
-------------------*/
/*--------------------------------------*
* 基本設定
*--------------------------------------*/
/*--------------------------------------*
* FV
*--------------------------------------*/
.fv {
  position: relative;
}

@media screen and (max-width: 1200px) {
  .header {
    position: absolute;
    z-index: 10;
    display: grid;
    grid-template-columns: 92px auto;
    justify-content: space-between;
    width: 90.6666666667vw;
    translate: -50% 0;
    left: 50%;
    top: 20px;
  }
  .header ul {
    display: grid;
    gap: 10px;
  }
  .header ul li a {
    width: fit-content;
    margin: 0 0 0 auto;
    color: #fff;
    font-size: 10px;
  }
  .fv {
    position: relative;
    height: 100vh;
  }
  .fv .sp_slider .swiper-slide {
    height: 100vh;
  }
  .fv .sp_slider .swiper-slide img {
    object-fit: cover;
    height: 100%;
    object-position: right;
  }
  .fv .sp_slider .swiper-slide-active img {
    animation: leftRight 4s linear forwards;
    object-position: right; /* アニメーション後の位置を維持 */
  }
  .fv .sp_slider .swiper-slide:nth-child(even) img {
    object-position: left;
  }
  .fv .sp_slider .swiper-slide:nth-child(even).swiper-slide-active img {
    animation: rightLeft 4s linear forwards;
    object-position: right; /* アニメーション後の位置を維持 */
  }
  .fv .bottom_title {
    position: absolute;
    bottom: 118px;
    translate: -50% 0;
    left: 50%;
    z-index: 10;
    color: #fff;
    width: 100%;
    text-align: center;
    font-size: 11px;
  }
}
@media screen and (min-width: 1200px) {
  .header {
    position: absolute;
    z-index: 10;
    display: grid;
    grid-template-columns: 165px auto;
    justify-content: space-between;
    width: 91.6666666667vw;
    translate: -50% 0;
    left: 50%;
    top: 40px;
  }
  .header ul {
    display: flex;
    gap: 80px;
  }
  .header ul li a {
    color: #fff;
    font-size: 16px;
  }
  .fv {
    margin-bottom: 65px;
  }
  .fv .pc_slider {
    height: 80vh;
  }
  .fv .pc_slider .swiper-slide img {
    height: 80vh;
    object-fit: cover;
    object-position: bottom;
  }
  .fv .pc_slider .swiper-slide-active img {
    animation: topDown 4s linear forwards;
    object-position: bottom; /* アニメーション後の位置を維持 */
  }
  .fv .pc_slider .swiper-slide:nth-child(even) img {
    object-position: top;
  }
  .fv .pc_slider .swiper-slide:nth-child(even).swiper-slide-active img {
    animation: downTop 4s linear forwards;
    object-position: top; /* アニメーション後の位置を維持 */
  }
  .fv h1 {
    font-size: 20px;
    padding: 8px 25px 0 0;
    text-align: right;
  }
}
/*--------------------------------------*
* 基本設定
*--------------------------------------*/
@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes fadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
.opacity {
  opacity: 0;
}

@keyframes maskLeft {
  0% {
    mask-position: left;
    -webkit-mask-position: left;
  }
  100% {
    mask-position: right;
    -webkit-mask-position: right;
  }
}
@keyframes maskRight {
  0% {
    mask-position: right;
    -webkit-mask-position: right;
  }
  100% {
    mask-position: left;
    -webkit-mask-position: left;
  }
}
.mask_left {
  clip-path: polygon(0 0, 0 0, 0 100%, 0% 100%);
}

.mask_right {
  clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
}

.mask_full {
  clip-path: polygon(100% 0, 0 0, 0 100%, 100% 100%);
}

@keyframes zoomIn {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(1.2);
  }
}
@keyframes zoomOut {
  0% {
    transform: scale(1.2);
  }
  100% {
    transform: scale(1);
  }
}
figure.zoom {
  overflow: hidden;
}

@keyframes topDown {
  0% {
    object-position: top;
  }
  100% {
    object-position: bottom;
  }
}
@keyframes downTop {
  0% {
    object-position: bottom;
  }
  100% {
    object-position: top;
  }
}
@keyframes leftRight {
  0% {
    object-position: left;
  }
  100% {
    object-position: right;
  }
}
@keyframes rightLeft {
  0% {
    object-position: right;
  }
  100% {
    object-position: left;
  }
}
/*--------------------------------------*
* セクション共通
*--------------------------------------*/
@media screen and (max-width: 768px) {
  .inner {
    position: relative;
  }
  .credit_card {
    position: relative;
  }
  .credit_wrapper {
    pointer-events: all;
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 99;
    font-size: 12px;
    display: flex;
    align-items: flex-end;
    justify-content: right;
    transition: all 0.4s;
  }
  .credit_wrapper:has(.open.active) {
    background-color: rgba(0, 0, 0, 0.2);
  }
  .credit_wrapper ul {
    display: grid;
    gap: 8px;
  }
  .credit_wrapper li a {
    color: #fff;
  }
  .credit_wrapper li a:has(.nolink) .buy {
    display: none;
  }
  .credit_wrapper .toggle_inner {
    display: none;
    padding: 0 20px 64px 0;
  }
  .credit_wrapper .buy {
    text-decoration: underline;
  }
  .open {
    width: 15px;
    height: 15px;
    z-index: 10;
    margin: 0 0 0 auto;
    bottom: 20px;
    right: 20px;
    position: absolute;
    transition: all 0.4s;
  }
  .open:before, .open:after {
    content: "";
    width: 15px;
    position: absolute;
    height: 1px;
    background-color: #fff;
    translate: -50% -50%;
    top: 50%;
    left: 50%;
  }
  .open:before {
    rotate: 90deg;
  }
  .open.active {
    rotate: 45deg;
  }
  .sec .wrapper {
    overflow: hidden;
  }
  .sec .scroll_container {
    display: flex;
  }
  .sec .scroll_grid {
    height: 100vh;
    display: grid;
    place-items: center;
  }
  .sec .scroll_grid figure {
    width: 100vw;
  }
  .sec .small figure {
    width: 72vw;
    padding: 0 14.6666666667vw;
  }
  .sec .middle figure {
    width: 82.6666666667vw;
    padding: 0 8.8vw;
  }
  .sec .large figure {
    width: 101.8666666667vw;
  }
  .sec .big {
    padding-left: 8.8vw;
  }
  .sec .big figure {
    width: 209.6vw;
  }
  .sec .big_6 figure {
    width: 163.2vw;
    margin: 0 9.3333333333vw;
  }
  .sec .middle_6 figure {
    width: 73.6vw;
    padding: 0 13.3333333333vw;
  }
  .fade_slider .swiper-slide {
    height: 100vh;
    display: grid;
    place-content: center;
  }
  .fade_slider .middle img {
    width: 88.5333333333vw;
  }
  .fade_slider .small img {
    width: 82.6666666667vw;
  }
  .sec5 .bg,
  .sec10 .bg,
  .sec13 .bg,
  .sec17 .bg {
    position: sticky;
    top: 0;
    height: 100vh;
    display: grid;
    place-content: center;
  }
  .sec5 .front,
  .sec10 .front,
  .sec13 .front,
  .sec17 .front {
    height: 100vh;
    display: grid;
    place-content: center;
    position: relative;
    z-index: 10;
  }
  .sec5 .front .inner,
  .sec10 .front .inner,
  .sec13 .front .inner,
  .sec17 .front .inner {
    width: 86.6666666667vw;
    margin: 0 auto;
  }
  .sec7 {
    height: 100vh;
    display: grid;
    place-content: center;
  }
  .sec7 .small {
    width: 72vw;
  }
  .sec7 .fade_slider .swiper-slide {
    height: fit-content;
  }
  .sec8 .big {
    padding: 0;
  }
  .sec9 {
    height: 100vh;
    display: grid;
    place-content: center;
  }
  .sec9 .fade_slider {
    width: 100vw;
  }
  .sec9 figure {
    position: relative;
  }
  .sec9 .fade_slider .swiper-slide {
    height: fit-content;
  }
  .sec11 .middle {
    padding: 0 8vw;
  }
  .sec11 .big {
    padding: 0;
  }
  .sec11 .big figure {
    width: 173.3333333333vw;
  }
  .sec18 .middle figure,
  .sec12 .middle figure {
    padding: 0;
  }
  .sec18 .middle figure img,
  .sec12 .middle figure img {
    width: 100%;
  }
  .sec12,
  .sec18 {
    height: 100vh;
    display: grid;
    place-content: center;
  }
  .sec12 .fade_slider .swiper-slide,
  .sec18 .fade_slider .swiper-slide {
    height: fit-content;
  }
  .sec12 .fade_slider,
  .sec18 .fade_slider {
    width: 82.6666666667vw;
  }
  .sec16 .fade_slider .swiper-slide {
    height: fit-content;
  }
  .sec16 .fade_slider {
    width: 100vw;
  }
  .sec15 .big,
  .sec19 .big {
    padding: 0;
  }
  .sec15 .big figure,
  .sec19 .big figure {
    width: 173.3333333333vw;
  }
  .concept {
    margin-top: 278px;
    text-align: center;
  }
  .concept_title {
    font-size: 20px;
  }
  .concept .open_btn {
    font-size: 11px;
    text-decoration: underline;
    margin-top: 12px;
  }
  .concept .open_wrap {
    display: none;
  }
  .concept .open_wrap p:nth-child(1) {
    margin: 45px 0 30px;
    font-size: 16px;
  }
  .concept .open_wrap .concept_text {
    font-size: 12px;
    line-height: 2.0833333333;
  }
  .concept .close {
    position: relative;
    margin: 40px auto;
    width: 24px;
    height: 24px;
    cursor: pointer;
    transition: opacity 0.3s ease;
  }
  .concept .close::before,
  .concept .close::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 16px;
    height: 1px;
    background-color: #000;
    transform: translate(-50%, -50%) rotate(45deg);
  }
  .concept .close::after {
    transform: translate(-50%, -50%) rotate(-45deg);
  }
  footer {
    width: 310px;
    margin: 278px auto 115px;
  }
  footer .footer_bg {
    padding: 136px 0;
    background-image: url(../assets/images/pc/footer_bg.jpg);
  }
  footer p {
    text-align: center;
    color: #fff;
    font-size: 12px;
    line-height: 2.3333333333;
  }
  .slider_credit {
    position: relative;
  }
  .slider_credit .open:before, .slider_credit .open:after {
    background-color: #000;
  }
  .slider_credit .open.active:before, .slider_credit .open.active:after {
    background-color: #fff;
  }
}
@media screen and (min-width: 1200px) {
  .open_card {
    position: relative;
  }
  .credit_wrapper {
    pointer-events: all;
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 99;
    display: flex;
    align-items: flex-end;
    justify-content: right;
    transition: all 0.4s;
  }
  .credit_wrapper .toggle_inner {
    display: none;
  }
  .credit_wrapper:has(.open.active) {
    background-color: rgba(0, 0, 0, 0.2);
  }
  .credit {
    padding: 0 20px 60px 0;
    display: grid;
    gap: 8px 12px;
    justify-content: right;
    margin: 0 0 0 auto;
    width: fit-content;
  }
  .credit li a {
    font-size: 15px;
    color: #fff;
  }
  .credit li a:has(.nolink) .buy {
    display: none;
  }
  .credit .buy {
    text-decoration: underline;
  }
  .open {
    width: 20px;
    height: 20px;
    position: absolute;
    bottom: 20px;
    right: 20px;
    transition: all 0.4s;
    transform-origin: center;
  }
  .open span {
    width: 20px;
    height: 1px;
    position: absolute;
    background-color: #fff;
    translate: -50% -50%;
    top: 50%;
    left: 50%;
  }
  .open span:nth-child(2) {
    rotate: 90deg;
  }
  .open.active {
    rotate: 45deg;
  }
  .motion_a .motion_inner {
    height: 100vh;
    position: sticky;
    top: 0;
  }
  .motion_a .grid {
    position: absolute;
    top: 0;
    translate: -50% 0;
    left: 50%;
    pointer-events: none;
  }
  .motion_a .grid:nth-child(1) {
    z-index: 3;
  }
  .motion_a .grid:nth-child(2) {
    z-index: 2;
  }
  .motion_a .grid:nth-child(3) {
    z-index: 1;
  }
  .motion_a .grid figure {
    backface-visibility: hidden;
  }
  .motion_a .grid figure:not(.noAnim) {
    transform: rotateY(180deg);
    transition: all 0.4s;
  }
  .motion_a .grid.active {
    z-index: 5;
  }
  .motion_a .grid.active figure {
    transform: rotateY(0deg);
  }
  .dummy {
    min-height: 100vh;
    position: sticky;
    top: 0;
    pointer-events: none;
  }
  .sec {
    min-height: 100vh;
    background-color: #fff;
  }
  .sticky .sec {
    min-height: 100vh;
    position: sticky;
    top: 0;
  }
  .grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    width: fit-content;
    margin-inline: auto;
    align-items: center;
    justify-content: center;
    height: 100vh;
  }
  .grid img {
    width: auto;
    margin: 0 auto;
  }
  .grid .full img {
    height: 89.0909090909vh;
  }
  .sec1 .grid1 figure:nth-child(2) img {
    height: 34vh;
    margin: 0 6.3636363636vh;
  }
  .sec1 .grid2 figure:nth-child(2) img {
    height: 68.5454545455vh;
    margin: 0 10.9090909091vh;
  }
  .sec1 .grid3 figure:nth-child(2) img {
    height: 66.3636363636vh;
    margin: 0 8vh;
  }
  .sec2 .grid1 {
    display: flex;
    gap: 46px;
  }
  .sec2 .grid1 figure:nth-child(1) img {
    height: 52.3636363636vh;
    margin: 0 5vh;
  }
  .sec2 .grid2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    width: 100%;
  }
  .sec2 .grid2 figure:nth-child(1) img {
    height: 50.9090909091vh;
    margin: 0 -1.8181818182vh 0 auto;
  }
  .sec3 figure:nth-child(1) img,
  .sec3 .credit_wrapper {
    width: auto;
    height: 67.6363636364vh;
    margin: 0 5.6363636364vh;
  }
  .sec3 figure:nth-child(2) img {
    height: 48.8181818182vh;
  }
  .sec4 .grid1 figure:nth-child(1) img {
    height: 72.7272727273vh;
    margin: 0 3.6363636364vh;
  }
  .sec4 .grid1 figure:nth-child(2) img {
    height: 89.0909090909vh;
  }
  .sec4 .grid2 figure:nth-child(1) img {
    height: 52.0909090909vh;
    margin: 0 11.4545454545vh;
  }
  .sec4 .grid2 figure:nth-child(2) img {
    height: 89.0909090909vh;
  }
  .sec5 .grid {
    gap: 10.9090909091vh;
  }
  .sec5 figure img {
    height: 67.6363636364vh;
  }
  .sec6 .grid1 figure:nth-child(1) img {
    height: 67.6363636364vh;
    margin: 0 62px;
  }
  .sec6 .grid2 figure:nth-child(2) img {
    height: 67.6363636364vh;
    margin: 0 62px;
  }
  .sec7 figure:nth-child(1) {
    width: 56.4545454545vh;
    margin: 0 auto;
  }
  .sec7 figure:nth-child(1) img {
    width: 100%;
  }
  .sec7 figure:nth-child(2) img {
    height: 61.2727272727vh;
    margin: 0 105px;
  }
  .sec8 .grid1 figure:nth-child(1) img,
  .sec8 .grid2 figure:nth-child(1) img {
    height: 73.6363636364vh;
    margin: 0 5.6363636364vh;
  }
  .sec9 figure:nth-child(2) img {
    height: 45.0909090909vh;
  }
  .sec10 .grid1 figure:nth-child(1) img {
    height: 45.0909090909vh;
    margin: 0 4.5454545455vh;
  }
  .sec10 .grid2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    width: 100%;
  }
  .sec10 .grid2 figure:nth-child(1) img {
    height: 45.0909090909vh;
    margin: 0 4.5454545455vh 0 auto;
  }
  .sec11 .grid {
    gap: 10.9090909091vh;
  }
  .sec11 figure img,
  .sec11 .credit_wrapper {
    height: 67.6363636364vh;
  }
  .sec13 figure:nth-child(1) img {
    height: 67.6363636364vh;
    margin: 0 5.6363636364vh;
  }
  .sec14 figure:nth-child(2) img {
    height: 67.6363636364vh;
    margin: 0 5.6363636364vh;
  }
  .sec15 .grid {
    gap: 10.9090909091vh;
  }
  .sec15 figure img {
    height: 67.6363636364vh;
  }
  .sec16 .grid {
    grid-template-columns: 1fr;
  }
  .concept {
    margin-top: 300px;
    text-align: center;
  }
  .concept_title {
    font-size: 25px;
  }
  .concept .open_btn {
    font-size: 15px;
    text-decoration: underline;
    margin-top: 20px;
    cursor: pointer;
  }
  .concept .open_wrap {
    display: none;
  }
  .concept .open_wrap p:nth-child(1) {
    margin: 65px 0 48px;
    font-size: 21px;
  }
  .concept .open_wrap .concept_text {
    font-size: 15px;
    line-height: 2.0666666667;
  }
  .concept .open_btn {
    font-size: 11px;
    text-decoration: underline;
    margin-top: 12px;
  }
  .concept .open_wrap {
    display: none;
  }
  .concept .open_wrap p:nth-child(1) {
    margin: 45px 0 30px;
    font-size: 16px;
  }
  .concept .open_wrap .concept_text {
    font-size: 12px;
    line-height: 2.0833333333;
  }
  .concept .close {
    position: relative;
    margin: 40px auto;
    width: 24px;
    height: 24px;
    cursor: pointer;
    transition: opacity 0.3s ease;
  }
  .concept .close::before,
  .concept .close::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 16px;
    height: 1px;
    background-color: #000;
    transform: translate(-50%, -50%) rotate(45deg);
  }
  .concept .close::after {
    transform: translate(-50%, -50%) rotate(-45deg);
  }
  footer {
    width: 610px;
    margin: 322px auto;
  }
  footer .footer_bg {
    padding: 302px 0;
    background-image: url(../assets/images/pc/footer_bg.jpg);
  }
  footer p {
    text-align: center;
    color: #fff;
    line-height: 2.3333333333;
  }
}/*# sourceMappingURL=style.css.map */