@charset "UTF-8";

/*===========================================================*/
/* common */
/*===========================================================*/

:root{
  --main: #100964;
	--black:#151823;
  --white:#ffffff;
  --gray: #C6C6C6;
  --note: #9098A2;
  --header-height:10rem;
  @media (max-width: 767px) {
    --header-height:8.1rem;
  }
}


* {
  -webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}

html{
  -webkit-text-size-adjust: 100%;
	-moz-text-size-adjust: 100%;
	-ms-text-size-adjust: 100%;
	text-size-adjust: 100%;
  font-size: 62.5%;
  scroll-behavior: smooth;
}

::selection{
  background-color: #b3d4fc;
  color: #000000;
	text-shadow: none;
}

:focus-visible {
  outline: solid 1px var(--black);
}


body{
	width: 100%;
	background:var(--white);
	color: var(--black);
  font-family: "Zen Old Mincho", serif;
	font-weight: 500;
  letter-spacing: 0.1em;
	line-height: 1.8;
	font-size:1.6rem;
	-webkit-font-feature-settings: "palt";
	font-feature-settings: "palt";
	-webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
	font-variant-east-asian: proportional-width;
	overflow-wrap: break-word;
	word-wrap: break-word;
	text-rendering: optimizelegibility;
	@media (max-width: 767px) {
		font-size:1.4rem;
	}
}

main{
  overflow-x: hidden;
  padding-top: var(--header-height);
}

input, select, textarea {
	font-size: 1.6rem;
}

img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  vertical-align: middle;
}

dt {
  font-weight: inherit;
}

em{
	font-style: normal;
}

/*===========================================================*/
/* utility */
/*===========================================================*/

.pc-only{
  @media (max-width: 767px) {
    display: none!important;
  }
}

.sp-only{
  @media (min-width: 768px) {
    display: none!important;
  }
}

  .cinzel { 
    font-family: 'Cinzel', serif;
    text-transform: capitalize;
    line-height: 1;
    letter-spacing: 0;
  }
  .zen-mincho { 
    font-family: 'Zen Old Mincho', serif;
  }
  .zen-gothic { 
    font-family: 'Zen Kaku Gothic Antique', sans-serif;
  }

/*===========================================================*/
/* layout */
/*===========================================================*/

.cmn-container{
  position: relative;
  scroll-padding-top: var(--header-height);
  @media (max-width: 767px) {
  }
}
.mw1500{
  margin: auto;
  max-width: 150rem;
  width: calc(100% - 6.4rem);
  @media (max-width: 767px) {
  }
}

.mw1200{
  margin: auto;
  max-width: 120rem;
  width: calc(100% - 6.4rem);
  @media (max-width: 767px) {
    
  }
}
.mw1120{
  margin: auto;
  max-width: 112rem;
  width: calc(100% - 6.4rem);
  @media (max-width: 767px) {
  }
}

.mw800{
  margin: auto;
  max-width: 80rem;
  width: calc(100% - 6.4rem);
  @media (max-width: 767px) {
  }
}


/*===========================================================*/
/* 見出し */
/*===========================================================*/
.cmn-head01{
  /* margin-bottom: 10.4rem; */
  margin-bottom: clamp(2.8rem, 8.23vw, 10.4rem);
  width: calc(100% - 2.4rem);
  @media (max-width: 767px) {
    margin-bottom: 2.8rem;
  }
  .inner{
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    position: relative;
  }
  .en{
    font-family: 'Cinzel', serif;
    text-transform: capitalize;
    letter-spacing: 0;
    /* font-size: 16.4rem; */
    font-size: clamp(6.8rem, 10.76vw, 16.4rem);
    font-weight: 400;
    line-height: 1.34756;
    @media (max-width: 767px) {
      font-size: 6.8rem;
    }
    &.en01{
      background: linear-gradient(96.59deg, #C1D0E4 0%, #E7EFF3 76.44%, #F3F4F4 100%);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
      text-fill-color: transparent;
    }
    &.en02{
      /* background: linear-gradient(92.87deg, #D7DEE7 0.89%, #E6ECEF 68.41%, #F3F4F4 89.22%); */
      background: linear-gradient(185.09deg, #D7DEE7 4.23%, #E6ECEF 74.2%, #F3F4F4 95.77%);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
      text-fill-color: transparent;
    }
    &.en03{
      background: linear-gradient(185.84deg, #ABB1BC 4.65%, #595D66 53.19%, #40434A 78.89%);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
      text-fill-color: transparent;
    }
    &.en04{
      background: linear-gradient(93.77deg, #D7DEE7 1.6%, #E6ECEF 98.4%);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
      text-fill-color: transparent;
    }

  }

  .ja{
    /* font-size: 3.4rem; */
    font-size: clamp(2.4rem, 2.23vw, 3.4rem);
    font-weight: 600;
    line-height: 1.6;
    position: absolute;
    bottom: 0;
    z-index: 2;
    letter-spacing: 0.2em;
    @media (max-width: 767px) {
      font-size: 2.4rem;
    }
  }
  &.--concept{
    @media (max-width: 767px) {
      margin-bottom: 3.2rem;
    }
    .ja{
      /* left: 16rem; */
      left: min(16rem, 10.58vw);
      /* transform: translateY(calc(-.8rem - 2.85rem)); */
      /* transform: translateY(-3.65rem); */
      transform: translateY(max(-3.65rem, -2.40vw));
      @media (max-width: 767px) {
        left: 2rem;
        transform: translateY(-.4rem);
      }
    }
  }
  &.--location{
    text-align: center;
    @media (max-width: 767px) {
      margin-bottom: 4.6rem;
    }
    .en{
      @media (max-width: 767px) {
        font-size: 6.3rem;
      }
    }
    .ja{
      /* transform: translateY(-6.35rem); */
      transform: translateY(max(-6.35rem, -4.17vw));
      @media (max-width: 767px) {
        transform: translateY(-.75rem);
      }
    }
  }
  &.--access{
    margin-bottom: 4rem;
    @media (max-width: 767px) {
      margin-bottom: 7.8rem;
    }
    .ja{
      /* right: 2.95rem; */
      right: min(2.95rem, 1.95vw);
      /* transform: translateY(-6rem); */
      transform: translateY(max(-6rem, -3.94vw));
      @media (max-width: 767px) {
        right: unset;
        left: 2rem;
        transform: translateY(-.4rem);
      }
    }
  }
  &.--gallery{
    /* margin-bottom: 11.4rem; */
    margin-bottom: clamp(4rem, 9.02vw, 11.4rem);
    text-align: center;
    @media (max-width: 767px) {
      margin-bottom: 4rem;
    }
    .en{
      @media (max-width: 767px) {
        font-size: 6.3rem;
      }
    }
    .ja{
      /* transform: translateY(-6.8rem); */
      transform: translateY(max(-6.8rem, -4.46vw));
      color: var(--white);
      /* font-size: 3rem; */
      font-size: clamp(2.4rem, 1.97vw, 3rem);
      @media (max-width: 767px) {
        font-size: 2.4rem;
        transform: translateY(-.65rem);
      }
    }
  }
  &.--room-plan{
    /* margin-bottom: 20rem; */
    margin-bottom: clamp(6.4rem, 15.82vw, 20rem);
    @media (max-width: 767px) {
      margin-bottom: 6.4rem;
    }
    .ja{
      /* transform: translateY(-3.8rem); */
      transform: translateY(max(-3.8rem, -2.49vw));
      /* left: 15.05rem; */
      left: min(15.05rem, 9.96vw);
      @media (max-width: 767px) {
        left: 2rem;
        transform: translateY(-.01rem);
      }
    }
    .en{
      @media (max-width: 767px) {
        /* font-size: 6rem; */
        font-size: 5.6rem;
      }
    }
  }
  &.--outline{
    /* margin-bottom: 11.4rem; */
    margin-bottom: clamp(7.2rem, 9.02vw, 11.4rem);
    text-align: center;
    @media (max-width: 767px) {
      margin-bottom: 7.2rem;
    }
    .ja{
      /* transform: translateY(-5.88rem); */
      transform: translateY(max(-5.88rem, -3.86vw));
      @media (max-width: 767px) {
        transform: translateY(-.48rem);
      }
    }
    .en{
      @media (max-width: 767px) {
      }
    }
  }
}

.cmn-head02{
  font-weight: 400;
  font-size: 2.4rem;
  line-height: 1.8;
  letter-spacing: .2em;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  position: relative;
  gap: 1.6rem;
  /* margin-bottom: 8rem; */
  margin-bottom:clamp(4rem, 6.33vw, 8rem);
  @media (max-width: 767px) {
    font-size: 1.8rem;
    gap: 1.2rem;
    margin-bottom: 4rem;
  }
  &.--fw400{
    font-weight: 400;
  }
  &.--fw500{
    font-weight: 500;
  }
  &::after{
    content: "";
    display: block;
    height: .3rem;
    width: 2.4rem;
    background: linear-gradient(90deg, #100964 0%, #729BB0 75.48%, #E0E5E8 100%);
    @media (max-width: 767px) {
      height: .2rem;
      width: 2rem;
    }
  }
  &.--row{
    flex-direction: row-reverse;
    justify-content: flex-end;
    gap: 2rem;
    @media (max-width: 767px) {
      font-size: 1.8rem;
      line-height: 1.55;
      font-weight: 400;
      align-items: flex-start;
      gap: 1.2rem;
      &::after{
        /* margin-top: .5lh; */
        margin-top: calc(.5lh - .1rem);
        height: .2rem;
        width: 1.6rem;
      }
    }
  }
}

/*===========================================================*/
/* header */
/*===========================================================*/


  header{
    padding: 0 4rem 0 4.8rem;
    height: var(--header-height);
    background-color: var(--white);
    display: flex;
    /* gap: 4rem; */
    gap: clamp(0px, 2.08vw, 4rem);
    align-items: center;
    justify-content: space-between;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 10;
    filter: drop-shadow(0px 4px 40px rgba(21, 24, 35, 0.08));
    @media (max-width: 767px) {
      padding: 1.6rem 2.4rem 1.6rem 1.6rem;
    }

    .logo-wrap{
      h1{
        font-family: 'Zen Kaku Gothic Antique', sans-serif;
        font-size: 1rem;
        /* line-height: 1; */
        line-height: 1.35;
        margin-bottom: .5rem;
        letter-spacing: 0;
        @media (max-width: 767px) {
          font-size: .8rem;
          margin-bottom: .4rem;
        }
      }
      a{
        font-size: 2.2rem;
        white-space: nowrap;
        line-height: 1;
        letter-spacing: 0;
        @media (max-width: 767px) {
          font-size: 1.6rem;
          letter-spacing: .1em;
        }
      }
    }
    .logo-wrap-br{
      display: none;
      @media (max-width: 1400px) {
        display: block;
      }
    }
    .logo-wrap-span{
      @media (max-width: 1400px) {
        display: none;
      }
    }
    .nav{
      display: flex;
      align-items: center;
      /* gap: 4rem; */
      gap: clamp(0px, 2.08vw, 4rem);
      @media (max-width: 1400px) {
        display: none;
      }
      li{
        a{
          white-space: nowrap;
          text-transform: capitalize;
          font-family: 'Cinzel', serif;
          font-weight: 400;
          font-size: 1.6rem;
          /* line-height: 2.2rem; */
          line-height: 1.375;
          position: relative;
          display: flex;
          justify-content: center;
          &:hover{
            &::after{
              content: "";
              display: block;
              background-color: var(--main);
              border-radius: 50%;
              width: .5rem;
              height: .5rem;
              position: absolute;
              bottom: -1rem;
            }
          }
        }
      }
    }
    .link-wrap{
      display: flex;
      align-items: center;
      /* gap: 2.4rem; */
      gap: clamp(0px, 1.25vw, 2.4rem);

      .btn-link{
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 1.6rem;
        width: 20rem;
        height: 6.4rem;
        color: var(--white);
        position: relative;
        background: linear-gradient(96.59deg, #100964 0%, #729BB0 76.44%, #E0E5E8 100%);
        @media (max-width: 1400px) {
          display: none;
        }
        &::before{
          content: "";
          display: block;
          position: absolute;
          z-index: 1;
          width: 100%;
          height: 100%;
          background: linear-gradient(276.69deg, #100964 0.64%, #729BB0 76.11%, #E0E5E8 99.36%);
          opacity: 0;
          transition: opacity 0.6s ease;
        }
        
        &:hover::before{
          opacity: 1;
        }
        .txt{
          z-index: 2;
        }
        i{
          z-index: 2;
          width: .6rem;
          height: .5rem;
          background-image: url(../img/arrow.svg);
          background-size: contain;
          background-repeat: no-repeat;
          background-position: center;
        }
      }

      .btn-link--logo{
        display: flex;
        justify-content: center;
        align-items: center;
        width: 20rem;
        height: 6.4rem;
        background: var(--white);
        box-shadow: 0px 4px 16px rgba(21, 24, 35, 0.2);
        @media (max-width: 1400px) {
          display: none;
        }
        &:hover{
        }
        .logo-urbanex{
          width: 11.6rem;
        }
      }
      .burger{
        display: none;
        @media (max-width: 1400px) {
          width: 3.9rem;
          height: 2rem;
          display: flex;
          flex-direction: column;
          justify-content: space-between;
          cursor: pointer;
          &.is-active{
            justify-content: center;
            transform: translateX(-2px);
          }
          .bar {
            height: .1rem;
            width: 100%;
            background-color: var(--black);
          }

          &.is-active .bar1 {
            width: 4.384rem;
            transform: rotate(27.2deg) translate(1px, 0px);
          }

          &.is-active .bar2 {
            opacity: 0;
          }

          &.is-active .bar3 {
            width: 4.384rem;
            transform: rotate(-27.2deg) translate(1px, 0px);
          }
        }
      }
    }
  }
/*===========================================================*/
/* モーダル */
/*===========================================================*/

.modal{
  position: fixed;
  background-color: var(--white);
  inset: 0;
  margin-top: var(--header-height);
  visibility: hidden;
  opacity: 0;
  z-index: -1;
  &.is-active{
    visibility: visible;
    opacity: 1;
    z-index: 1000;
  }
  @media (min-width: 1401px) {
    display: none;
  }
}
.modal-inner{
  padding: 6.4rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 7.2rem;
  height: calc(100dvh - var(--header-height));
  overflow-y: auto;
}
.modal-btn{
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 1.6rem;
  li{
  }
  .btn-link{
    font-size: 1.4rem;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1.6rem;
    width: 24.7rem;
    height: 5.2rem;
    max-width: 100%;
    color: var(--white);
    position: relative;
    background: linear-gradient(96.59deg, #100964 0%, #729BB0 76.44%, #E0E5E8 100%);
    &::before{
      content: "";
      display: block;
      position: absolute;
      z-index: 1;
      width: 100%;
      height: 100%;
      background: linear-gradient(276.69deg, #100964 0.64%, #729BB0 76.11%, #E0E5E8 99.36%);
      opacity: 0;
      transition: opacity 0.6s ease;
    }
    
    &:hover::before{
      opacity: 1;
    }
    .txt{
      z-index: 2;
    }
    i{
      z-index: 2;
      width: .6rem;
      height: .5rem;
      background-image: url(../img/arrow.svg);
      background-size: contain;
      background-repeat: no-repeat;
      background-position: center;
    }
  }
  .btn-link--logo{
    display: flex;
    justify-content: center;
    align-items: center;
    width: 24.7rem;
    height: 5.2rem;
    max-width: 100%;
    background: var(--white);
    box-shadow: 0px 4px 16px rgba(21, 24, 35, 0.2);
    &:hover{
    }
    .logo-urbanex{
      width: 9.5rem;
    }
  }
}

.modal-nav{
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3.2rem;
  li{
    a{
      display: flex;
      flex-direction: column;
      align-items: center;
    }
    .en{
      letter-spacing: 0;
      font-size: 2.6rem;
      font-weight: 400;
      font-family: 'Cinzel', serif;
      text-transform: capitalize;
    }
    .ja{
      font-size: 1rem;
      letter-spacing: 0;
      line-height: 1;
    }
  }
}

/*===========================================================*/
/* kv */
/*===========================================================*/

.kv{
  /* margin-bottom: 24.8rem; */
  position: relative;
  &::before{
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: linear-gradient(0deg, rgba(40, 39, 38, 0.6) 0%, rgba(40, 39, 38, 0) 100%);
    top: 0;
    /* aspect-ratio: 1920/656; */
    /* height: 65.6rem; */
    z-index: 1;
  }
  picture{
    display: block;
    width: 100%;
  }
  img{
    /* height: 96.4rem; */
    /* object-fit: cover; */
  }
}


/*===========================================================*/
/* scroll-down */
/*===========================================================*/

.scroll-down {
  position: relative;
  top: -13.8rem;
  @media (max-width: 1200px) {
    display: none;
  }
  @media (max-width: 767px) {
    display: block;
    top: -12.7rem;
  }
  .wrap {
    position: relative;
  }
  .txt{
    display: inline-block;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
    padding-left: .8rem;
    color: var(--white);
    font-size: 1.6rem;
    font-family: 'Cinzel', serif;
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: .1em;
    text-transform: capitalize;
    writing-mode: vertical-lr;
    @media (max-width: 767px) {
      writing-mode: unset;
      left: 50%;
      transform: translateX(-50%);
      padding-left: unset;
      font-size: 1.2rem;
    }
    &::before,
    &::after{
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      width: 1px;
      height: 27.88rem;
      @media (max-width: 767px) {
        height: 5.58rem;
        left: 50%;
        top: calc(100% + .4rem);
      }
    }
    &::before{
      background: var(--gray);
      @media (max-width: 767px) {
      }
    }
    &::after{
      background: var(--main);
      animation: scroll-down 2s cubic-bezier(0.65, 0, 0.35, 1) infinite;
      @media (max-width: 767px) {
      }
    }
  }
}

@keyframes scroll-down {
  0% {
    transform: scaleY(0.1);
    transform-origin: top;
    opacity: 0.2;
  }
  50% {
    transform: scaleY(1);
    transform-origin: top;
    opacity: 1;
  }
  50.1% {
    transform-origin: bottom;
  }
  100% {
    transform: scaleY(0.1);
    transform-origin: bottom;
    opacity: 0.2;
  }
}

/*===========================================================*/
/* toc */
/*===========================================================*/


.toc{
  width: calc(100% - 4.8rem);
  /* position: absolute; */
  position: relative;
  /* top: -13.8rem; */
  top: calc( clamp(0px, 12.02vw, 13.8rem) * -1);
  margin: 0 auto calc(16rem - 13.8rem);
  z-index: 2;
  display: flex;
  justify-content: center;
  
  @media (max-width: 767px) {
    top: -4.7rem;
    margin: 0 auto calc(8.4rem - 4.7rem);
  }

  .toc-links{
    width: 100%;
    max-width: 1100px;
    display: flex;
    /* gap: 4rem; */
    gap: clamp(1.6rem, 3.48vw, 4rem);
    @media (max-width: 767px) {
      flex-direction: column;
      gap: 1.6rem;
    }
    li{
      width: calc((100% - 8rem)/3);
      flex: 1;
      @media (max-width: 767px) {
        width: 100%;
      }
      a{
        box-shadow: 0px 4px 40px rgba(21, 24, 35, 0.12);
        position: relative;
        border-bottom: 1.5px var(--main) solid;
        display: flex;
        flex-direction: column;
        align-items: center;
        padding-bottom: 7.1rem;
        height: 100%;
        background-color: var(--white);
        @media (max-width: 767px) {
          padding-bottom: unset;
        }
      }
    }
    .toc-num{
      /* font-size: 18rem; */
      /* font-weight: 400; */
      /* line-height: 1; */
      /* font-family: 'Cinzel', serif; */
      /* color: #EEF2F3; */
      position: absolute;
      left: 0;
      top: 0;
      z-index: 1;
      @media (max-width: 767px) {
        /* font-size: 7.4rem; */
        left: .791rem;
      }
      .num01{
        /* width: 14.701rem; */
        width: clamp(6.37rem, 12.80vw, 14.701rem);
        @media (max-width: 767px) {
          /* width: 6.37rem; */
          width: clamp(6.37rem, 16.99vw, 14.701rem);
        }
      }
      .num02{
        /* width: 17.556rem; */
        width: clamp(7.997rem, 15.29vw, 17.556rem);
        @media (max-width: 767px) {
          /* width: 7.997rem; */
          width: clamp(7.997rem, 21.33vw, 17.556rem);
        }
      }
      .num03{
        /* width: 16.219rem; */
        width: clamp(7.418rem, 14.13vw, 16.219rem);
        @media (max-width: 767px) {
          /* width: 7.418rem; */
          width: clamp(7.418rem, 19.78vw, 16.219rem);
        }
      }
    }
    .toc-copy{
      /* height: 20.7rem; */
      height: clamp(11.279774rem, 18.03vw, 20.7rem);
      display: flex;
      align-items: center;
      justify-content: center;
      font-weight: 700;
      font-size: 2rem;
      line-height: 1.6;
      text-align: center;
      z-index: 2;
      @media (max-width: 767px) {
        height: auto;
        margin:2rem 0;
        font-size: 1.6rem;
        line-height: 1.5;
      }
    }
    .toc-ttl{
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: .6rem;
      font-family: 'Cinzel', serif;
      line-height: 1;
      letter-spacing: 0;
      font-weight: 400;
      font-size: 1.8rem;
      position: absolute;
      bottom: 2.4rem;
      z-index: 2;
      text-transform: capitalize;
      @media (max-width: 767px) {
        font-size: 1.2rem;
        position:static;
        margin-bottom: 1.2rem;
      }
      i{
        width: 1.7rem;
        height: 1.7rem;
        display: flex;
        align-items: center;
        justify-content: center;
        border-radius: 50%;
        background-color: var(--main);
        background-image: url(../img/arrow.svg);
        background-size: .6rem .5rem;
        background-repeat: no-repeat;
        background-position: center;
        transform: rotate(90deg);
        @media (max-width: 767px) {
          width: 1.3rem;
          height: 1.3rem;
          background-size: .5rem .4rem;
        }
      }
    }
  }
}

/*===========================================================*/
/* concept */
/*===========================================================*/

.concept{
  /* padding-bottom: 52rem; */
  padding-bottom: clamp(45.3rem, 41.15vw, 52rem);
  @media (max-width: 767px) {
    /* padding-bottom: 45.3rem; */
    padding-bottom: 35.4rem;
  }
  .cmn-head01{
    padding-top: 8.5rem;
    @media (max-width: 767px) {
      /* padding-top: 18.7rem; */
      padding-top: 21.2rem;
    }
  }
  .desc{
    font-size: 1.8rem;
    line-height: 3;
    position: relative;
    z-index: 2;
    @media (max-width: 767px) {
      font-size: 1.2rem;
      line-height: 2.8;
    }
  }

  .img-concept-wrap{
    position: absolute;
    &.--01{
      /* right: 21rem; */
      right: clamp(0px, 10.94vw, 21rem);
      top: 0;
      width: calc(557/1920 * 100%);
      @media (max-width: 767px) {
        right: 0;
        width: calc(195/375 * 100%);
        &::before{
          content: "";
          display: block;
          position: absolute;
          width: 100%;
          height: 12.1rem;
          left: 0;
          bottom: 0;
          background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.8) 100%);
        }
      }
    }
    &.--02{
      bottom: 13.6rem;
      /* right: 65.1rem; */
      right: clamp(0px, 33.91vw, 65.1rem);
      width: calc(351/1920 * 100%);
      @media (max-width: 767px) {
        right: 10.7rem;
        /* bottom: 32.2rem; */
        bottom: 22.7rem;
        width: calc(122/375 * 100%);
      }
    }
    &.--03{
      z-index: 2;
      bottom: -21rem;
      width: calc(294/1920 * 100%);
      @media (max-width: 767px) {
        left: 0;
        /* bottom: 13.5rem; */
        bottom: 4rem;
        width: calc(203/375 * 100%);
      }
    }
  }
}

/*===========================================================*/
/* location */
/*===========================================================*/

.location{
  /* padding:15.4rem 0 32rem; */
  padding:clamp(12.3rem, 12.19vw, 15.4rem) 0 clamp(28rem, 25.32vw, 32rem);
  background-image: url(../img/texture-white.webp);
  background-repeat: repeat;
  background-size: contain;
  @media (max-width: 767px) {
    /* padding:12.3rem 0 28rem; */
    /* padding:10.2rem 0 28rem; */
    padding:10.2rem 0 19.2rem;
  }
  &::before{
    content: "";
    display: block;
    position: absolute;
    background: linear-gradient(180deg, #FFFFFF 0%, rgba(255, 255, 255, 0) 100%);
    height: 15.4rem;
    top: 0;
    left: 0;
    right: 0;
    @media (max-width: 767px) {
      /* height: 12.3rem; */
      height: 10.2rem;
    }
  }
  .desc{
    text-align: center;
    font-size: 1.8rem;
    line-height: 3;
    position: relative;
    z-index: 2;
    @media (max-width: 767px) {
      font-size: 1.2rem;
      line-height: 2.8;
      letter-spacing: .09em;
    }
  }

  .location-picture{
    /* padding-top: 16rem; */
    padding-top: clamp(8rem, 12.66vw, 16rem);
    display: block;
    width: 100%;
    /* aspect-ratio: 1920/688; */
    /* background-color: var(--gray); */
    @media (max-width: 767px) {
      padding-top: 8rem;
    }
  }

/* movie
--------------------------------------------------------------------*/
  .movie{
    /* padding-top: 16rem; */
    padding-top: clamp(8rem, 12.66vw, 16rem);
    @media (max-width: 767px) {
      padding-top: 8rem;
    }
    .movie-content{
      display: block;
      width: 100%;
      aspect-ratio: 1200/679;
      background-color: var(--gray);
      @media (max-width: 767px) {
        aspect-ratio: 311/176;
      }
    }
  }

/* map
--------------------------------------------------------------------*/
  .map{
    /* padding-top: 16rem; */
    padding-top: clamp(8rem, 12.66vw, 16rem);
    @media (max-width: 767px) {
      padding-top: 8rem;
    }
    iframe{
      display: block;
      width: 100%;
      height: auto;
      aspect-ratio: 1200/679;
      border: none;
    }
  }
  .map-wrap{
    aspect-ratio: 1200/679;
    height: calc(679/1200 * 100%);
    position: relative;
    /* padding-top: 30rem; */
    padding-top: 15rem;
    overflow: hidden;
    @media (max-width: 767px) {
      aspect-ratio: 375/235;
      height: calc(235/375 * 100%);
      margin: 0 -3.2rem;
    }

    iframe{
      aspect-ratio:unset;
      display: block;
      width: 100%;
      /* height: calc(100% + 15rem + 15rem); */
      height: calc(100% + 15rem);
      position: absolute;
      top: -15rem;
      left: 0;
      border: none;
      /* pointer-events: none; */
    }
  }
}

/* 近隣施設
--------------------------------------------------------------------*/
.facilities{
  /* margin-top: 18rem; */
  margin-top: clamp(8rem, 14.25vw, 18rem);
  @media (max-width: 767px) {
    margin-top: 8rem;
  }
  .facilities-list{
    display: flex;
    flex-wrap: wrap;
    /* gap: 5.6rem 7.2rem; */
    gap: clamp(3.2rem, 4.43vw, 5.6rem) clamp(1.6rem, 5.70vw, 7.2rem);
    @media (max-width: 767px) {
      gap: 3.2rem 1.6rem;
    }
    li{
      min-width: calc((100% - 14.4rem)/3);
      flex: 1;
      @media (max-width: 767px) {
        min-width: calc((100% - 1.6rem)/2);
        flex: 0;
      }
    }
    img{
      aspect-ratio: 352/239;
    }
  }
  .caption{
    margin-top: 1.6rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .6rem;
    @media (max-width: 767px) {
      margin-top: 1.2rem;
      gap: .5rem;
    }
  }
  .ttl{
    font-size: 1.8rem;
    font-weight: 600;
    line-height: 1.6;
    @media (max-width: 767px) {
      font-size: 1.3rem;
      line-height: 1.3;
      text-align: center;
    }
  }
  .on-foot{
    color: var(--note);
    font-size: 1.4rem;
    line-height: 1.6;
    font-family: 'Zen Kaku Gothic Antique', sans-serif;
    @media (max-width: 767px) {
      font-size: 1.2rem;
    }
  }
}


/*===========================================================*/
/* access */
/*===========================================================*/

.access{
  /* padding: 24rem 0 48rem; */
  padding: clamp(12.3rem, 18.99vw, 24rem) 0 clamp(16.5rem, 37.97vw, 48rem);
  @media (max-width: 767px) {
    /* padding: 12.3rem 0 16.5rem; */
    padding: 12.3rem 0 21.6rem;
  }

/* 路線図
--------------------------------------------------------------------*/
  .route{
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 7.2rem;
    @media (max-width: 767px) {
      flex-direction: column;
      gap: 3.2rem;
    }
    .route-map{
      width: calc(941/1500 * 100%);
      @media (max-width: 767px) {
        width: 100%;
      }
    }
    .route-desc{
      h3{
        font-size: 2.6rem;
        line-height: 1.8;
        letter-spacing: .2em;
        margin-bottom: 4.4rem;
        @media (max-width: 767px) {
          font-size: 2rem;
          margin-bottom: 3.2rem;
        }
      }
      p{
        font-size: 1.4rem;
        line-height: 2.5;
        @media (max-width: 767px) {
          font-size: 1.2rem;
          line-height: 2.2;
        }
      }
    }
  }
}

/* 路線図 モーダル
--------------------------------------------------------------------*/

.js-route-modal-overlay {
  display: none;
  @media (max-width: 767px) {
    display: none;
    z-index: 999;
    position: fixed;
    inset: 0;
    align-items: center;
    justify-content: center;
    /* background: rgba(0,0,0,0.8); */
    background: var(--black);
    &.is-open{
      display: flex;
    }
  }
}
.route-modal {
  background-color: var(--white);
  padding: 3.2rem 1.6rem;
  width: 100%;
  .route-modal-map{
  }
}
.js-open-route-modal{
  @media (max-width: 767px) {
    position: relative;
    &::before{
      content: "";
      display: block;
      width: 3.2rem;
      height: 3.2rem;
      background-image: url(../img/btn-open.png);
      background-size: contain;
      background-repeat: no-repeat;
      position: absolute;
      right: 0;
      bottom: 0;
    }
  }
}
.js-close-route-modal {
  position: absolute;
  bottom: 3.2rem;
  cursor: pointer;
  width: 4.4rem;
  height: auto;
}



/* 所要時間 
--------------------------------------------------------------------*/
.time-required{
  /* margin-top: 16rem; */
  margin-top: clamp(9.6rem, 12.66vw, 16rem);
  @media (max-width: 767px) {
    margin-top: 9.6rem;
  }
  .time-required-block{
    +.time-required-block{ 
      /* margin-top: 18rem; */
      margin-top: clamp(8rem, 14.25vw, 18rem);
      @media (max-width: 767px) {
        margin-top: 8rem;
      }
    }
  }
  .note{
    /* margin-top: 7.2rem; */
    margin-top: clamp(4rem, 5.70vw, 7.2rem);
    color: var(--note);
    font-size: 1.2rem;
    font-family: 'Zen Kaku Gothic Antique', sans-serif;
    text-align: center;
    line-height: 2;
    letter-spacing: 0;
    @media (max-width: 767px) {
      margin-top: 4rem;
      text-align: left;
      font-size: 1rem;
      line-height: 1.6;
    }
  }
}

/* 所要時間 PC 図
--------------------------------------------------------------------*/
.time-required-content{
  display: flex;
  .from{
    /* width: 18.2rem; */
    width: calc(182/1120 * 100%);
    background-image: url(../img/texture-block-black.jpg);
    background-size: cover;
    /* background-repeat: repeat; */
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    font-weight: 600;
    color: var(--white);
    writing-mode: vertical-rl;
    text-combine-upright: none;
    @media (max-width: 960px) {
      font-size: 1.8rem;
      width: calc(88/740 * 100%);
    }
    .txt-combine{
      -webkit-text-combine: horizontal;
      -ms-text-combine-horizontal: all;
      text-combine-upright: all;
    }
    .line{
      color: #B8B6B3;
      font-size: 1.2rem;
      font-family: 'Zen Kaku Gothic Antique', sans-serif;
      margin-bottom: 1.4rem;
      @media (max-width: 960px) {
        margin-bottom: .8rem;
      }
    }
  }
  .time-required-list{
    /* width: calc(100% - 18.2rem); */
    width: calc(100% - (182/1120 * 100%));
    display: flex;
    flex-direction: column;
    gap: 2.4rem;
    /* justify-content: center; */
    @media (max-width: 960px) {
      width: calc(100% - (88/740 * 100%));
    }
    li{
      display: flex;
      align-items: center;
      &.col3{

      }
      &.col5{

      }
    }
  }
  .center-area{
    /* width: calc(100% - 41.5rem); */
    width: calc(100% - (415/1120 * 100%));
    display: flex;
    align-items: center;
    height: 100%;
    @media (max-width: 1024px) {
      width: calc(100% - (240/1024 * 100%));
    }
    > *{
      flex: 1;
    }
  }
  .via{
    background-image: url(../img/texture-block-white.jpg);
    background-size: cover;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 13rem;
    max-width: 13rem;
    aspect-ratio: 130/54;
    font-size: 1.4rem;
    font-weight: 600;
    letter-spacing: .05em;
    @media (max-width: 1024px) {
      font-size: 1.3rem;
    }
    &.--tall{
      height: calc(100% - (38/1920 * 100vw));
    }
  }
  .time{
    border-bottom: 2px dashed var(--note);
    position: relative;
    display: flex;
    justify-content: center;
    .icon-txt{
      position: absolute;
      /* top: -4.8rem; */
      top: -3.72rem;
      display: flex;
      /* gap: 1.6rem; */
      gap: .8rem;
      align-items: center;
    }
    i{
      display: block;
      background-size: contain;
      background-repeat: no-repeat;
      &.on-foot{
        background-image: url(../img/icon-foot.svg);
        /* width: 1.1rem;
        height: 2.3rem; */
        width: .9rem;
        height: 1.9rem;
        margin-top: .3rem;
      }
      &.by-train{
        background-image: url(../img/icon-train.svg);
        /* width: 2.8rem; */
        /* height: 2.1rem; */
        width: 2.2rem;
        height: 1.7rem;
      }
    }
    .num{
      line-height: 1.6;
      /* font-size: 2.6rem; */
      font-size: 2.2rem;
      letter-spacing: 0;
    }
    .minute{
      font-size: 1.4rem;
      line-height: 1.6;
      letter-spacing: 0;
      margin-left: -.35rem;
    }
  }
  .to{
    width: calc(415/1120 * 100%);
    @media (max-width: 1024px) {
      width: calc(240/1024 * 100%);
    }
    .station{
      aspect-ratio: 425/126;
      display: flex;
      align-items: center;
      justify-content: center;
      background-image: url(../img/texture-block-white.jpg);
      background-size: cover;
    }
    .station-name{
      font-weight: 600;
      font-size: 1.8rem;
      line-height: 1.6;
    }
  }
  .row2{
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    gap: 2.4rem 0;
    height: 100%;
  }
}


/* 所要時間 SP アコーディオン
--------------------------------------------------------------------*/
.time-required-accordion{
  .accordion-box{
    + .accordion-box{
      margin-top: 1.6rem;
    }
    &.is-active{
      + .accordion-box{
        margin-top: 3.2rem;
      }
      .via{
        display: none!important;
      }
      .arrow{
        &::after{
          transform: rotate(-90deg);
        }
      }
      .accordion-arrow{
        transform: rotate(180deg);
      }
      .accordion-info{
        visibility: visible;
        opacity: 1;
        height: auto;
      }
    }
  }
  .accordion-btn{
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 2.4rem;
    background-image: url(../img/texture-block-black.jpg);
    background-size: cover;
    cursor: pointer;
    .label{
      display: flex;
      align-items: center;
      gap: .8rem;
      .line{
        color: #B8B6B3;
        font-size: 1rem;
        letter-spacing: 0.05em;
        line-height: 1.05;
        font-family: 'Zen Kaku Gothic Antique', sans-serif;
      }
      .from{
        color: var(--white);
        font-size: 1.4rem;
        font-weight: 600;
        @media (max-width: 767px) {
          font-weight: 500;
        }
      }
      .via{
      }
    }
    /* .arrow{
      position: relative;
      border-radius: 50%;
      background-color: var(--white);
      width: 1.7rem;
      height: 1.7rem;
      display: flex;
      align-items: center;
      justify-content: center;
      &::after{
        content: "";
        display: block;
        width: .6rem;
        height: .7rem;
        position: absolute;
        mask: url(../img/arrow.svg) center/contain no-repeat;
        background-color: var(--black);
        transform: rotate(90deg);
      }
    } */
    .accordion-arrow{
      width: 1.7rem;
      height: 1.7rem;
    }
  }

  .accordion-info{
    transition: opacity .3s;
    visibility: hidden;
    opacity: 0;
    height: 0;
    .time{
      margin: 0 4rem;
      border-left: 2px dashed var(--note);
      position: relative;
      display: flex;
      align-items: center;
      .icon-txt{
        display: flex;
        gap: .8rem;
        align-items: center;
        padding: 1.6rem;
      }
      i{
        display: block;
        background-size: contain;
        background-repeat: no-repeat;
        &.on-foot{
          background-image: url(../img/icon-foot.svg);
          width: .9rem;
          height: 1.9rem;
        }
        &.by-train{
          background-image: url(../img/icon-train.svg);
          width: 2.2rem;
          height: 1.7rem;
        }
      }
      .num{
        line-height: 1.6;
        font-size: 2.2rem;
        letter-spacing: 0;
      }
      .minute{
        font-size: 1.4rem;
        line-height: 1.6;
        letter-spacing: 0;
        margin-left: -.35rem;
      }
    }
    .station{
        display: flex;
        align-items: center;
        padding: 2.4rem;
        background-image: url(../img/texture-block-white.jpg);
        background-size: cover;
      .station-name{
        font-size: 1.4rem;
        font-weight: 600;
      }
    }
  }
}


/*===========================================================*/
/* landscape */
/*===========================================================*/


@keyframes loop-img1 {
   0% {
     transform: translateX(100%);
   }
   to {
     transform: translateX(-100%);
   }
 }
 @keyframes loop-img2 {
   0% {
     transform: translateX(0);
   }
   to {
     transform: translateX(-200%);
   }
 }

.landscape{
    display: flex;
    @media (max-width: 767px) {
      /* position: relative;
      z-index: 2;
      background-image: url(../img/texture-black.webp);
      background-repeat: repeat;
      background-size: contain; */
    }
  .landscape-list{

    display: flex;
    flex-shrink: 0;
    gap: calc(72/1920 * 100vw);
    padding-left: calc(72/1920 * 100vw);
    @media (max-width: 767px) {
      gap: calc(25/375 * 100vw);
      padding-left: calc(25/375 * 100vw);
    }

    &:first-child {
        /* animation: loop-img1 240s -120s linear infinite; */
        animation: loop-img1 160s -80s linear infinite;
        /* animation: loop-img1 2.4s -1.2s linear infinite; */
        li{
          &:nth-child(odd){
            width: calc(413/1920 * 100vw);
            @media (max-width: 767px) {
              width: calc(147/375 * 100vw);
            }
            img{
              aspect-ratio: 413/302;
            }
          }
          &:nth-child(even){
            margin-top: calc(112/1920 * 100vw);
            width: calc(353/1920 * 100vw);
            @media (max-width: 767px) {
              margin-top: calc(40/375 * 100vw);
              width: calc(126/375 * 100vw);
            }
            img{
              aspect-ratio: 353/258;
            }
          }
        }
    }
    &:last-child {
        /* animation: loop-img2 240s linear infinite; */
        animation: loop-img2 160s linear infinite;
        /* animation: loop-img2 2.4s linear infinite; */
        li{
          &:nth-child(odd){
            margin-top: calc(112/1920 * 100vw);
            width: calc(353/1920 * 100vw);
            @media (max-width: 767px) {
              margin-top: calc(40/375 * 100vw);
              width: calc(126/375 * 100vw);
            }
            img{
              aspect-ratio: 353/258;
            }
          }
          &:nth-child(even){
            width: calc(413/1920 * 100vw);
            @media (max-width: 767px) {
              width: calc(147/375 * 100vw);
            }
            img{
              aspect-ratio: 413/302;
            }
          }
        }
    }
    }
    li{
      flex-shrink: 0;
      img{
        object-fit: cover;
      }
    }
  }


/*===========================================================*/
/* gallery */
/*===========================================================*/

.gallery{
  /* padding:64.6rem 0 32rem; */
  padding:clamp(0px, 51.10vw, 64.6rem) 0 clamp(9.6rem, 25.32vw, 32rem);
  background-image: url(../img/texture-black.webp);
  background-repeat: repeat;
  background-size: contain;
  @media (max-width: 767px) {
    /* padding:10.4rem 0 9.6rem; */
    /* padding:0 0 9.6rem; */
    padding:0 0 14.4rem;
  }
  &::before{
    content: "";
    display: block;
    position: absolute;
    background: linear-gradient(180deg, #FFFFFF 0%, rgba(255, 255, 255, 0) 100%);
    /* height: 90.4rem; */
    height: 86.8rem;
    top: 0;
    left: 0;
    right: 0;
    @media (max-width: 767px) {
      height: calc(307/375 * 100vw);
      top: calc(74/375 * 100vw);
      /* top: calc(132/375 * -100vw); */
    }
  }
  &::after{
    @media (max-width: 767px) {
      content: "";
      display: block;
      background-color: var(--white);
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: calc(74/375 * 100vw);
    }
  }

  .landscape{
    @media (max-width: 767px) {
      /* padding:0 0 10.4rem; */
      padding:0 0 17.7rem;
      position: relative;
      z-index: 2;
    }
  }

.swiper {
  width: 100%;
}

.gallery-main-swiper {
  /* overflow: visible; */
  .swiper-wrapper {
  }
  .swiper-slide {
    user-select: none;
    opacity: .2;
    img {
    aspect-ratio: 1296/812;
    object-fit: cover;
    }
  }
  .swiper-slide-active {
    opacity: 1;
  }
  .swiper-button-next,
  .swiper-button-prev{
    border: 1px solid #F2EBEB;
    border-radius: 50%;
    width: 7.8rem;
    height: 7.8rem;
    display: flex;
    align-items: center;
    justify-content: center;
    @media (max-width: 767px) {
      display: none;
    }
    img{
      width: 1rem;
    }
    &::after{
      display: none;
    }
  }
  .swiper-button-next{
    right: calc(210/1920 * 100%);
  }
  .swiper-button-prev{
    left: calc(210/1920 * 100%);
    img{
      transform: rotate(180deg);
    }
  }
}

.gallery-thumb-swiper {
  /* margin: 4rem auto 0; */
  margin-top: 4rem;
  padding: 0 3.2rem;
  @media (max-width: 767px) {
    /* margin: 1.6rem auto 0; */
    margin-top: 1.6rem;
  }
  .swiper-wrapper {
    flex-wrap: wrap;
    gap: 1.6rem;
    justify-content: center;
    @media (max-width: 767px) {
      gap: .8rem;
    }
  }
  .swiper-slide {
    user-select: none;
    width: calc((100% - 8rem)/6);
    cursor: pointer;
    aspect-ratio: 191/104;
    display: flex;
    align-items: center;
    justify-content: center;
    /* min-width: 19rem; */
    min-width: 18.6rem;
    @media (max-width: 767px) {
      width: calc((100% - 2.4rem)/4);
      min-width: 5.5rem;
    }
    img {
      aspect-ratio: 191/104;
      object-fit: cover;
    }
  }
  .swiper-slide-thumb-active {
    opacity: .6;
    img{
      transform: scale(0.883684);
    }
  }

}

}


/*===========================================================*/
/* 間取り */
/*===========================================================*/

.room-plan{
  letter-spacing: .05em;
  /* padding:24rem 0 32rem; */
  padding:clamp(7.4rem, 18.99vw, 24rem) 0 clamp(8rem, 25.32vw, 32rem);
  background-image: url(../img/texture-white.webp);
  background-repeat: repeat;
  background-size: contain;
  @media (max-width: 767px) {
    padding:7.4rem 0 8rem;
  }

  .tab-list{
    /* margin-bottom: 9rem; */
    margin-bottom: clamp(2.3rem, 7.12vw, 9rem);
    display: flex;
    gap: 2.4rem;
    @media (max-width: 767px) {
      gap: .8rem;
      margin-bottom: 2.3rem;
    }
  }
  .tab-item{
    cursor: pointer;
    background-color: var(--white);
    position: relative;
    width: calc((100% - 7.2rem)/4);
    height: 8rem;
    display: flex;
    align-items: center;
    justify-content: center;
    @media (max-width: 767px) {
      width: calc((100% - 2.4rem)/4);
      height: 7rem;
    }
    p{
      font-family: 'Cinzel', serif;
      text-transform: capitalize;
      font-size: 2.2rem;
      letter-spacing: 0;
      font-weight: 400;
      @media (max-width: 767px) {
        font-size: 1.4rem;
        display: flex;
        flex-direction: column;
        align-items: center;
        line-height: 1.1;
      }
      span{
        font-size: 3.5rem;
        @media (max-width: 767px) {
          font-size: 2.5rem;
        }
      }
    }
    &.is-active,
    &:hover{
      color: var(--white);
      background-color: var(--main);
      &::after{
        content: "";
        display: block;
        position: absolute;
        bottom: -.9rem;
        width: 0;
        height: 0;
        border-left: .5rem solid transparent;
        border-right: .5rem solid transparent;
        border-top: .9rem solid var(--main);
        @media (max-width: 767px) {
          bottom: -.7rem;
          border-left: .4rem solid transparent;
          border-right: .4rem solid transparent;
          border-top: .7rem solid var(--main);
        }
      }
    }
  }

  .type-item{
    display: none;
    &.is-active{
      display: block;
    }
  }

  .room-img{
    background-color: var(--white);
    aspect-ratio: 1200/646;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2.8rem;
    @media (max-width: 767px) {
      padding: 1.6rem 0;
      aspect-ratio: 311/343;
    }
    img{
      width: 100%;
      height: 100%;
      object-fit: contain;
    }
  }
  .room-list{
    /* margin-top: 8rem; */
    margin-top: clamp(4rem, 6.33vw, 8rem);
    display: flex;
    flex-direction: column;
    gap: 1.6rem;
    @media (max-width: 767px) {
      margin-top: 4rem;
    }
    li{
      display: flex;
      /* align-items: center; */
    }
  }
  .room-num{
    background-image: url(../img/room-num.jpg);
    width: calc(109/1200 * 100%);
    background-repeat: no-repeat;
    background-size: cover;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-family: 'Cinzel', serif;
    text-transform: capitalize;
    color: var(--white);
    font-weight: 400;
    /* font-size: 3rem; */
    font-size: clamp(1.4rem, 2.37vw, 3rem);
    letter-spacing: 0;
    @media (max-width: 767px) {
      background-image: url(../img/texture-block-black.jpg);
      width: calc(42/311 * 100%);
      /* font-size: 1.4rem; */
      font-size: clamp(1.4rem, 3.73vw, 3rem);
    }
  }
  .room-list-inner{
    width: calc(1091/1200 * 100%);
    background-color: var(--white);
    /* padding: 3.2rem 5.6rem; */
    padding: clamp(1.6rem, 2.53vw, 3.2rem) clamp(1.6rem, 4.43vw, 5.6rem);
    display: flex;
    /* justify-content: space-between; */
    align-items: center;
    @media (max-width: 767px) {
      /* padding: 1.6rem; */
      padding: clamp(1.6rem, 4.27vw, 3.2rem) clamp(1.6rem, 4.27vw, 5.6rem);
      flex-direction: column;
      align-items: flex-start;
    }
  }
  .room-detail{
    display: flex;
    @media (max-width: 767px) {
      width: 100%;
      /* justify-content: space-around; */
      margin-bottom: 1.2rem;
      padding-bottom: 1.2rem;
      border-bottom: .1rem solid #D3D9E0;
    }

    dl{
      & + dl{
        /* padding-left: 3.2rem;
        margin-left: 3.2rem; */
        padding-left: clamp(1.6rem, 2.53vw, 3.2rem);
        margin-left: clamp(1.6rem, 2.53vw, 3.2rem);
        border-left: 1px solid #D3D9E0;
        /* min-width: 9.6rem; */
        min-width: clamp(6.1rem, 7.59vw, 9.6rem);
        @media (max-width: 767px) {
          border-left: unset;
          padding-left: unset;
          /* margin-left: 1.5rem; */
          margin-left: calc(15/375 * 100vw);
          min-width: unset;
        }
      }
      dt{
        color: var(--note);
        margin-bottom: .4rem;
        line-height: 1.6;
        /* font-size: 1.2rem; */
        font-size: clamp(1rem, 0.95vw, 1.2rem);
        font-family: 'Zen Kaku Gothic Antique', sans-serif;
        @media (max-width: 767px) {
          /* font-size: 1rem; */
          font-size: clamp(1rem, 2.67vw, 1.2rem);
          margin-bottom: unset;
        }
      }
      dd{
        line-height: 1.6;
        /* font-size: 2rem; */
        font-size: clamp(1.4rem, 1.58vw, 2rem);
        @media (max-width: 767px) {
          /* font-size: 1.4rem; */
          font-size: clamp(1.4rem, 3.73vw, 2rem);
        }
      }
    }
  }
  .after-area{
    display: flex;
    justify-content: space-between;
    flex: 1;
    align-items: center;
    @media (max-width: 767px) {
      width: 100%;
    }
      dl{
        /* padding-left: 3.2rem;
        margin-left: 3.2rem; */
        padding-left: clamp(1.6rem, 2.53vw, 3.2rem);
        margin-left: clamp(1.6rem, 2.53vw, 3.2rem);
        border-left: 1px solid #D3D9E0;
        /* min-width: 9.6rem; */
        @media (max-width: 767px) {
          padding-left: unset;
          margin-left: unset;
          border-left: unset;
          /* min-width: unset; */
          display: flex;
          align-items: baseline;
          gap: .4rem;
        }
        dt{
          color: var(--note);
          margin-bottom: .4rem;
          line-height: 1.6;
          /* font-size: 1.2rem; */
          font-size: clamp(1rem, 0.95vw, 1.2rem);
          font-family: 'Zen Kaku Gothic Antique', sans-serif;
          @media (max-width: 767px) {
            /* font-size: 1rem; */
            font-size: clamp(1rem, 2.67vw, 1.2rem);
            margin-bottom: unset;
          }
        }
        dd{
          font-weight: 700;
          color: #B69308;
          font-size: clamp(1.4rem, 1.27vw, 1.6rem);
          @media (max-width: 767px) {
            font-weight: 500;
            /* font-size: 1.4rem; */
            font-size: clamp(1.4rem, 3.73vw, 1.6rem);
          }
          span{
            /* font-size: 2.6rem; */
            font-size: clamp(1.8rem, 2.06vw, 2.6rem);
            line-height: 1.36;
            @media (max-width: 767px) {
              /* font-size: 1.8rem; */
              font-size: clamp(1.8rem, 4.80vw, 2.6rem);
            }
          }
        }
      }
      .txt-link{
        white-space: nowrap;
        /* font-size: 1.8rem; */
        font-size: clamp(1.4rem, 1.42vw, 1.8rem);
        font-weight: 600;
        line-height: 1.8;
        text-decoration: underline;
        text-decoration-thickness: .1rem;
        text-underline-offset: .2rem;
        display: flex;
        align-items: center;
        gap: 1.6rem;
        @media (max-width: 767px) {
          /* font-size: 1.4rem; */
          font-size: clamp(1.4rem, 3.73vw, 1.8rem);
          line-height: 1.6;
          gap: .8rem;
        }
        i{
          flex-shrink: 0;
          border-radius: 50%;
          background-color: var(--main);
          width: 4rem;
          height: 4rem;
          background-image: url(../img/arrow.svg);
          background-size: .6rem .5rem;
          background-repeat: no-repeat;
          background-position: center;
          @media (max-width: 767px) {
            width: 2.8rem;
            height: 2.8rem;
            /* background-size: .42rem .35rem; */
          }
        }
      }
  }

/* no-room
--------------------------------------------------------------------*/


  .no-room{
    @media (max-width: 767px) {
      width: 100%;
    }
  }

  .no-room-info{
    text-align: center;
    @media (max-width: 767px) {
      text-align: left;
    }
    & + .no-room-info{
      /* margin-top: 8rem; */
      margin-top: clamp(4rem, 6.33vw, 8rem);
      @media (max-width: 767px) {
        margin-top: 4rem;
      }
    }
    .no-room-ttl{
      font-size: 1.8rem;
      font-weight: 600;
      line-height: 1.6;
      @media (max-width: 767px) {
        font-size: 1.6rem;
        font-weight: 700;
        line-height: 1.8;
      }
    }
    .no-room-txt{
      margin-top: 2.4rem;
      font-size: 1.4rem;
      line-height: 2.5;
      @media (max-width: 767px) {
        margin-top: 1.2rem;
        font-size: 1.2rem;
        line-height: 2.2;
      }
    }
    .btn-wrap{
      margin-top: 4rem;
      display: flex;
      justify-content: center;
      gap: 4rem;
      flex-wrap: wrap;
      @media (max-width: 767px) {
        margin-top: 2.4rem;
        gap: .8rem;
      }
    }
    .btn-link{
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 1.6rem;
      width: 38rem;
      max-width: 100%;
      height: 7rem;
      color: var(--white);
      background: var(--main);
      @media (max-width: 767px) {
        
      }
      .txt{
        font-size: 1.8rem;
        @media (max-width: 767px) {
          font-size: 1.2rem;
        }
      }
      .en{
        font-size: 2.2rem;
        font-weight: 400;
        font-family: 'Cinzel', serif;
        text-transform: capitalize;
        letter-spacing: 0;
        @media (max-width: 767px) {
          font-size: 1.4rem;
        }
      }
      i{
        width: .6rem;
        height: .5rem;
        background-image: url(../img/arrow.svg);
        background-size: contain;
        background-repeat: no-repeat;
        background-position: center;
      }
    }
  }

  .no-room-msg{
    padding: 4.8rem;
    background-color: rgba(201, 208, 217, .3);
    font-weight: 700;
    font-size: 2rem;
    line-height: 2.2;
    @media (max-width: 767px) {
      padding: 2.4rem;
      font-size: 1.4rem;
      line-height: 1.8;
    }
  }

}




/*===========================================================*/
/* 物件概要 */
/*===========================================================*/

.outline{
  /* padding:24rem 0 32rem; */
  padding:clamp(5.7rem, 18.99vw, 24rem) 0 clamp(7rem, 25.32vw, 32rem);
  @media (max-width: 767px) {
    /* padding:5.7rem 0 7rem; */
    padding:5.7rem 0 19.2rem;
  }
  .outline-list{
    display: flex;
    flex-direction: column;
    border-top: 1px solid #c7c7c7;
    border-bottom: 1px solid #c7c7c7;
    @media (max-width: 767px) {

    }
    dl{
      padding: 3.2rem 4rem;
      display: flex;
      align-items: center;
      gap: 4rem;
      @media (max-width: 767px) {
        flex-direction: column;
        gap: .8rem;
        padding: 1.6rem .8rem;
        align-items: flex-start;
      }
      & + dl{
        border-top: 1px solid #c7c7c7;
      }
    }
    dt{
      font-weight: 600;
      font-size: 1.4rem;
      width: 16rem;
      @media (max-width: 767px) {
        width: 100%;
        line-height: 1.6;
        font-size: 1.2rem;
      }
    }
    dd{
      font-weight: 400;
      width: calc(100% - 20rem);
      @media (max-width: 767px) {
        width: 100%;
        font-size: 1.2rem;
        line-height: 1.6;
      }
    }
  }
}


/*===========================================================*/
/* お問い合わせリンク */
/*===========================================================*/


.contact{
  /* padding:0 0 32rem; */
  padding:0 0 clamp(0px, 25.32vw, 32rem);
  @media (max-width: 767px) {

  }
  .contact-bnr{
    box-shadow: 0px 4px 30px rgba(21, 24, 35, 0.2);
    display: flex;
    @media (max-width: 767px) {
      flex-direction: column-reverse;
    }
    .txt-wrap{
      width: calc(632/1120 * 100%);
      /* padding: 6.8rem 8.8rem; */
      padding: clamp(3.2rem, 5.74vw, 6.8rem) clamp(3.2rem, 7.44vw, 8.8rem);
      @media (max-width: 767px) {
        width: 100%;
        padding: 2.4rem 3.2rem 3.2rem;
      }
      .ttl{
        /* font-size: 2.8rem; */
        font-size: clamp(1.6rem, 2.36vw, 2.8rem);
        line-height: 1.6;
        font-weight: 600;
        @media (max-width: 767px) {
          font-size: 1.6rem;
          text-align: center;
        }
      }
      .btn-link{
        /* margin-top: 4.8rem; */
        margin-top: clamp(1.6rem, 3.80vw, 4.8rem);
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 2.4rem;
        /* width: 20rem; */
        width: 100%;
        height: 9.8rem;
        color: var(--white);
        position: relative;
        background: linear-gradient(96.59deg, #100964 0%, #729BB0 76.44%, #E0E5E8 100%);
        @media (max-width: 767px) {
          gap: 1.6rem;
          height: 5.2rem;
          margin-top: 1.6rem;
        }
        &::before{
          content: "";
          display: block;
          position: absolute;
          z-index: 1;
          width: 100%;
          height: 100%;
          background: linear-gradient(276.69deg, #100964 0.64%, #729BB0 76.11%, #E0E5E8 99.36%);
          opacity: 0;
          transition: opacity 0.6s ease;
        }
        
        &:hover::before{
          opacity: 1;
        }
        .txt{
          z-index: 2;
          font-size: 2.2rem;
          @media (max-width: 767px) {
            font-size: 1.4rem;
            line-height: 1;
          }
        }
        i{
          z-index: 2;
          width: 1rem;
          height: .9rem;
          background-image: url(../img/arrow.svg);
          background-size: contain;
          background-repeat: no-repeat;
          background-position: center;
          @media (max-width: 767px) {
            width: .6rem;
            height: .5rem;
          }
        }
      }
    }
    .contact-img{
      width: calc(488/1120 * 100%);
      object-fit: cover;
      @media (max-width: 767px) {
        width: 100%;
        aspect-ratio: 311/183;
        object-position: top;
      }
    }
  }

}


/*===========================================================*/
/* footer */
/*===========================================================*/

footer{
  .footer-ambience{
    /* aspect-ratio: 1920/733; */
    /* object-fit: cover; */
  }
  .footer-content{
    color: var(--white);
    padding: 6.4rem 0 3.2rem;
    background-image: url(../img/texture-black.webp);
    /* background-repeat: repeat; */
    background-size: cover;
    @media (max-width: 767px) {
      padding: 5.6rem 0 1.6rem;
    }
  }
  .footer-list{
    display: flex;
    align-items: center;
    justify-content: space-between;
    @media (max-width: 767px) {
      flex-direction: column;
      gap: 7.2rem;
    }
    li{

    }
    nav{
      display: flex;
      align-items: center;
      /* gap: 3.2rem; */
      gap: clamp(1.6rem, 2.05vw, 3.2rem);
      @media (max-width: 767px) {
        gap: 1.6rem;
      }
      a{
        white-space: nowrap;
        display: block;
        font-size: 1.4rem;
        font-weight: 400;
        font-family: 'Zen Kaku Gothic Antique', sans-serif;
        @media (max-width: 767px) {
          font-size: 1rem;
          line-height: 1.6;
        }
      }
    }
    .partition{
      display: none;
      @media (max-width: 767px) {
        display: block;
        width: 1px;
        height: 1.6rem;
        background-color: var(--white);
      }

    }
    .footer-logo{
      /* width: 37rem; */
      width: clamp(23.8rem, 23.66vw, 37rem);
      @media (max-width: 767px) {
        width: 23.8rem;
      }
    }
  }
  .copy{
    margin-top: 8rem;
    text-align: center;
    font-family: 'Zen Kaku Gothic Antique', sans-serif;
    font-weight: 400;
    font-size: 1rem;
    @media (max-width: 767px) {
      margin-top: 4rem;
      color: var(--note);
      letter-spacing: 0;
    }
  }
}

