@charset "UTF-8";
/*--------------------
共通設定
----------------------*/
img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom; }

a {
  text-decoration: none;
  transition: .4s;
  color: #7c593c; }
  a:hover {
    text-decoration: none;
    color: #7c593c; }
  a.disabled {
    pointer-events: none;
    text-decoration: none; }
  a:visited {
    color: #7c593c; }

ul, ol {
  list-style: none; }

.pc {
  display: block; }
  @media screen and (max-width: 1200px) {
    .pc {
      display: none; } }

.sp {
  display: none; }
  @media screen and (max-width: 1200px) {
    .sp {
      display: block; } }

body {
  overflow-x: visible; }

.fs-l-page {
  overflow: visible; }

p {
  margin: 0;
  padding: 0; }

.wrapper {
  margin: 0 auto !important; }

main {
  max-width: 100%;
  overflow-x: visible; }

.mainBox {
  margin: 0 auto !important; }

footer {
  position: relative;
  z-index: 9999; }

/*--------------------------------------------*/
.fadeIn {
  opacity: 0;
  transition: 1s; }
  .fadeIn.visible {
    opacity: 1; }

/*--------------------------------------------*/
/*--------------------------------------------*/
#future.lp_wrapper {
  margin: 0 auto;
  box-sizing: border-box;
  padding: 0;
  letter-spacing: 0.05em;
  color: #7c593c;
  font-size: 14px;
  text-align: left;
  font-family: "ten-mincho-text", serif;
  font-weight: 400;
  font-style: normal;
  line-height: 1.5;
  position: relative;
  background: #c19e6b; }
  @media screen and (max-width: 677px) {
    #future.lp_wrapper {
      background: #edeae2; } }

.mv {
  margin: 0 auto;
  width: fit-content; }
  .mv .sticky {
    position: sticky;
    position: -webkit-sticky;
    top: 0;
    display: block; }
    .mv .sticky .main {
      height: 100vh;
      width: auto; }
      @media screen and (max-width: 677px) {
        .mv .sticky .main {
          width: 100%;
          height: auto; } }
    .mv .sticky .logo {
      position: absolute;
      top: 5%;
      left: 3%; }
  .mv .anime__01 {
    background: #7c593c;
    text-align: center;
    height: 100vh;
    position: relative;
    z-index: +1; }
    @media screen and (max-width: 677px) {
      .mv .anime__01 {
        height: fit-content;
        padding: 20% 0;
        max-height: 100vh; } }
    .mv .anime__01::after {
      content: "";
      position: absolute;
      background: url("../images/SVG/line_1.svg");
      background-size: contain;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      opacity: 0;
      transition: opacity .4s ease; }
    .mv .anime__01.is-show-after::after {
      opacity: 1; }
    .mv .anime__01 .txt {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      width: 80%;
      color: #edeae2;
      opacity: 0;
      transition: opacity 0.6s ease; }
      @media screen and (max-width: 677px) {
        .mv .anime__01 .txt {
          position: static;
          transform: translate(0, 0);
          margin: 10% auto; } }
    .mv .anime__01.is-show-txt .txt {
      opacity: 1; }
    .mv .anime__01 h1 {
      font-size: min(2em, 4.5vw);
      font-weight: 400;
      margin-bottom: 1.0em; }
      @media screen and (max-width: 677px) {
        .mv .anime__01 h1 {
          margin-bottom: 1.5em; } }
    .mv .anime__01 p {
      font-size: min(1.2em, 3vw);
      line-height: 2.2; }

.video {
  position: relative;
  height: 200vh; }
  @media screen and (max-width: 677px) {
    .video {
      height: auto;
      padding: 10%;
      margin: 10% auto; } }
  .video .video__pin {
    background: #7c593c;
    text-align: center;
    line-height: 0;
    overflow: hidden;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh; }
    @media screen and (max-width: 677px) {
      .video .video__pin {
        position: relative !important;
        height: auto;
        top: auto !important;
        bottom: auto !important; } }
    .video .video__pin.is-fixed {
      position: fixed;
      top: 0; }
    .video .video__pin.is-end {
      position: absolute;
      top: auto;
      bottom: 0; }
    .video .video__pin .anime {
      display: flex;
      position: absolute;
      top: 0;
      left: 0;
      height: 100%;
      width: 100%;
      z-index: 3; }
      @media screen and (max-width: 677px) {
        .video .video__pin .anime {
          display: none; } }
      .video .video__pin .anime div {
        width: calc(50% + 5px);
        position: relative;
        background: #7c593c;
        will-change: transform;
        z-index: 3; }
        .video .video__pin .anime div:first-child {
          margin-right: -2px; }
        .video .video__pin .anime div:last-child {
          margin-left: -1px; }
        .video .video__pin .anime div::after {
          content: "";
          background: url("../images/SVG/line_3.svg");
          background-size: contain;
          position: absolute;
          top: 0;
          left: 0;
          width: 100%;
          height: 100%;
          z-index: 3;
          transform: translateX(var(--after-x, 0px)); }
    .video .video__pin video {
      height: 100vh;
      width: auto;
      margin: 0 auto; }
      @media screen and (max-width: 677px) {
        .video .video__pin video {
          width: 100%;
          height: auto; } }
      @media screen and (max-width: 677px) {
        .video .video__pin video {
          width: 100%;
          height: auto; } }
    .video .video__pin .playBtn {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%) scale(0.85);
      width: 64px;
      height: 64px;
      border-radius: 50%;
      border: none;
      background: rgba(237, 234, 226, 0.9);
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      z-index: 5;
      opacity: 0;
      pointer-events: none;
      transition: opacity .4s ease, transform .4s ease; }
      @media screen and (max-width: 677px) {
        .video .video__pin .playBtn {
          display: none !important; } }
      @media screen and (max-width: 677px) {
        .video .video__pin .playBtn {
          width: 52px;
          height: 52px; } }
      .video .video__pin .playBtn svg {
        width: 22px;
        height: 22px;
        fill: #7c593c;
        margin-left: 3px; }
      .video .video__pin .playBtn.is-show {
        opacity: 1;
        pointer-events: auto;
        transform: translate(-50%, -50%) scale(1);
        z-index: 2; }

.innerBox {
  background: #edeae2;
  padding: 10% 0 0; }
  .innerBox .box1 {
    max-width: 1000px;
    width: 90%;
    margin: 0 auto 10%; }
    @media screen and (max-width: 677px) {
      .innerBox .box1 {
        width: 100%;
        margin-bottom: 20%; } }
    .innerBox .box1 h2 {
      color: #7c593c;
      font-weight: 400;
      font-size: min(1.7em, 4.5vw);
      text-align: center;
      margin: 1.0em auto; }
    .innerBox .box1 p {
      font-size: min(1em, 3.2vw);
      margin: 1.0em auto;
      text-align: center; }

.stickyBox {
  width: 100%;
  position: relative;
  max-width: 3000px;
  margin: 0 auto; }
  .stickyBox .itemBox {
    display: flex;
    align-items: flex-start;
    justify-content: space-between; }
    @media screen and (max-width: 677px) {
      .stickyBox .itemBox {
        flex-direction: column; } }
    .stickyBox .itemBox .imgBox {
      width: 50%;
      position: sticky;
      position: -webkit-sticky;
      top: 0; }
      @media screen and (max-width: 677px) {
        .stickyBox .itemBox .imgBox {
          width: 100%;
          position: static; } }
      .stickyBox .itemBox .imgBox a {
        display: block;
        width: 100%;
        height: 100vh;
        position: sticky;
        position: -webkit-sticky;
        top: 0; }
        @media screen and (max-width: 677px) {
          .stickyBox .itemBox .imgBox a {
            height: auto; } }
        .stickyBox .itemBox .imgBox a img {
          object-fit: cover;
          width: 100%;
          height: 100%;
          object-position: top; }
          @media screen and (max-width: 677px) {
            .stickyBox .itemBox .imgBox a img {
              height: auto; } }
          .stickyBox .itemBox .imgBox a img.top {
            object-position: bottom; }
        .stickyBox .itemBox .imgBox a:nth-of-type(1) {
          z-index: 1; }
        .stickyBox .itemBox .imgBox a:nth-of-type(2) {
          z-index: 2; }
        .stickyBox .itemBox .imgBox a:nth-of-type(3) {
          z-index: 3; }
    .stickyBox .itemBox .detailBox {
      width: 50%;
      height: 100vh;
      position: sticky;
      position: -webkit-sticky;
      top: 0;
      align-self: flex-start;
      z-index: 100; }
      @media screen and (max-width: 677px) {
        .stickyBox .itemBox .detailBox {
          width: 100%;
          height: auto;
          position: relative;
          top: auto;
          background: #edeae2;
          padding: 15% 0;
          z-index: 10; } }
      .stickyBox .itemBox .detailBox .inner {
        display: flex;
        flex-direction: column;
        justify-content: space-around;
        height: 70%;
        width: 80%;
        max-width: 600px;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%); }
        @media screen and (max-width: 677px) {
          .stickyBox .itemBox .detailBox .inner {
            position: relative;
            top: auto;
            left: auto;
            transform: none;
            margin: 0 auto;
            height: auto;
            gap: 1.5em; } }
        .stickyBox .itemBox .detailBox .inner p {
          font-size: min(1em, 3.2vw);
          line-height: 2.2; }
      .stickyBox .itemBox .detailBox .ttl {
        display: flex;
        justify-content: space-between;
        align-items: flex-end; }
        .stickyBox .itemBox .detailBox .ttl p {
          font-size: min(5em, 14vw);
          line-height: 1; }
        .stickyBox .itemBox .detailBox .ttl h3 {
          font-size: min(1.5em, 4.5vw);
          font-weight: 400;
          line-height: 1.5;
          text-align: right; }
      .stickyBox .itemBox .detailBox .spec {
        display: flex;
        justify-content: space-between;
        align-items: flex-end; }
        .stickyBox .itemBox .detailBox .spec div:nth-child(2) img {
          height: 45px;
          width: auto; }
      .stickyBox .itemBox .detailBox .price {
        display: flex;
        justify-content: space-between;
        align-items: flex-end; }
        .stickyBox .itemBox .detailBox .price p {
          font-size: min(1.2em, 3.5vw);
          line-height: 1.0; }
          .stickyBox .itemBox .detailBox .price p span {
            font-size: 80%;
            margin-left: 0.5em; }
        .stickyBox .itemBox .detailBox .price a {
          font-size: min(1em, 3.2vw);
          border-bottom: 0.02em solid #7c593c;
          padding-bottom: 0.2em;
          display: flex;
          align-items: flex-end;
          line-height: 1.0; }
          .stickyBox .itemBox .detailBox .price a img {
            width: 14px;
            margin-left: 0.5em; }

.lp_footer {
  width: 100%;
  min-height: 450px;
  background: #7c593c;
  position: relative; }
  @media screen and (max-width: 677px) {
    .lp_footer {
      min-height: 300px; } }
  .lp_footer::after {
    content: "";
    position: absolute;
    background: url("../images/SVG/line_footer.svg");
    background-size: contain;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 2; }
  .lp_footer a {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: #edeae2;
    background: #7c593c;
    width: 70%;
    max-width: 320px;
    margin: 0 auto;
    padding: 1.2em 0;
    display: flex;
    align-items: baseline;
    justify-content: center;
    line-height: 1.0;
    font-size: min(1.2em, 3.5vw);
    border: 1px solid #edeae2;
    z-index: 3; }
    @media screen and (max-width: 677px) {
      .lp_footer a {
        padding: .8em 0; } }
    .lp_footer a img {
      margin-left: 0.5em;
      display: block; }
      @media screen and (max-width: 677px) {
        .lp_footer a img {
          width: 12px; } }
    .lp_footer a:hover {
      background: rgba(219, 188, 165, 0.2); }
