/* common
----------------------------------------------------------- */
html {
  scroll-behavior: smooth;
  scroll-padding-top: 90px; }

body {
  background: #2f2722;
  font-family: "Shippori Mincho", serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
  letter-spacing: .1em;
  font-size: 1.6rem;
  color: #2f2722;
  overflow: hidden; }

#wrapper {
  width: auto;
  margin: 0 auto; }

@media screen and (min-width: 769px) {
  .sp {
    display: none; } }

p {
  line-height: 2.4; }

a {
  color: #2f2722;
  text-decoration: none;
  transition: all .3s; }

a.opa:hover {
  opacity: 0.5;
  filter: alpha(opacity=50); }

a.tdu:hover {
  text-decoration: underline; }

.en, .num {
  font-family: "Cormorant Garamond", serif;
  font-weight: 300;
  font-optical-sizing: auto;
  font-style: normal;
  line-height: 1.0; }

::-moz-selection {
  background: #608686;
  color: #fff; }

::selection {
  background: #608686;
  color: #fff; }

@media screen and (min-width: 769px) {
  a[href^="tel:"] {
    pointer-events: none; } }
table {
  width: 100%;
  border-collapse: collapse;
  border-top: 1px solid #999; }

th,
td {
  padding: 1em;
  border-bottom: 1px solid #ccc; }

th {
  background-color: #eee; }

td {
  background-color: #fff; }

/* header
----------------------------------------------------------- */
.head__wrap {
  width: 100%;
  position: relative;
  margin: 0;
  padding: 0;
  transition: all .3s; }

.head__inner {
  width: 100%;
  position: relative;
  display: flex;
  justify-content: space-between;
  padding-left: 2vw; }

.head__logo {
  padding-top: 60px;
  padding-right: 40px;
  flex-shrink: 0; }
  .head__logo .logo {
    width: 238px; }

/* gnav
----------------------------------------------------------- */
.fat-nav__wrapper {
  display: flex;
  justify-content: flex-end; }

.head__nav .head__subnav {
  height: 60px;
  padding-right: 60px;
  display: flex;
  justify-content: flex-end;
  align-items: center; }
  .head__nav .head__subnav a {
    font-size: 1.4rem;
    color: #fff;
    position: relative;
    padding-left: 12px;
    margin-left: 30px; }
    .head__nav .head__subnav a::before {
      content: '';
      position: absolute;
      width: 6px;
      height: 6px;
      background-color: #fff;
      border-radius: 50%;
      top: calc(50% - (6px / 2));
      left: 0; }
    .head__nav .head__subnav a:hover {
      color: #fff;
      text-shadow: 0 0 4px #c49800, 0 0 8px #c49800, 0 0 16px #c49800; }
.head__nav .menu {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  padding-right: 44px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2); }
  .head__nav .menu > li {
    position: relative; }
    .head__nav .menu > li a {
      font-size: 2rem;
      font-family: "Cormorant Garamond", serif;
      font-optical-sizing: auto;
      line-height: 1.0;
      font-weight: 300;
      font-style: normal;
      color: #fff;
      height: 90px;
      padding-right: 16px;
      padding-left: 16px;
      display: flex;
      align-items: center;
      white-space: nowrap;
      transition: color 0.3s, text-shadow 0.3s; }
      .head__nav .menu > li a:hover {
        color: #fff;
        text-shadow: 0 0 4px #c49800, 0 0 8px #c49800, 0 0 16px #c49800; }

.head__tel {
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-left: 18px;
  padding-right: 36px; }
  .head__tel .head__tel__num {
    font-size: 1.8rem;
    color: #fff;
    position: relative;
    padding-left: 24px; }
    .head__tel .head__tel__num::before {
      content: '';
      position: absolute;
      background: url("../images/common/icon_tel.svg") left center no-repeat;
      top: calc(60% - (12px / 2));
      left: 0;
      width: 12px;
      height: 12px; }
  .head__tel .head__tel__time {
    font-size: 1.3rem;
    color: #fff;
    letter-spacing: .05em; }

.head__cta__btn {
  display: flex;
  justify-content: flex-end; }

.btn--cta {
  width: 230px;
  height: 90px;
  color: #fff;
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1.8;
  display: block;
  padding-top: 30px;
  transition: all .3s;
  text-align: center;
  position: relative; }
  .btn--cta span {
    font-family: "Cormorant Garamond", serif;
    font-optical-sizing: auto;
    line-height: 1.0;
    font-weight: 300;
    font-style: normal;
    font-size: 1.2rem;
    display: block; }
  .btn--cta::before {
    content: '';
    position: absolute;
    left: 50%;
    transform: translateX(-50%); }
  .btn--cta:hover {
    opacity: 0.7;
    filter: alpha(opacity=70); }

.btn--cta.plan {
  background: #b49d87; }
  .btn--cta.plan::before {
    background: url("../images/common/icon_plan.svg") top center no-repeat;
    width: 12px;
    height: 10px;
    top: 14px; }

.btn--cta.cal {
  background: #608686; }
  .btn--cta.cal::before {
    background: url("../images/common/icon_cal.svg") top center no-repeat;
    width: 12px;
    height: 14px;
    top: 12px; }

@media screen and (min-width: 769px) {
  .head__inner.fixed {
    position: fixed;
    top: 0;
    z-index: 999;
    background: rgba(47, 39, 34, 0.8); }
    .head__inner.fixed .head__logo {
      padding-top: 22px;
      padding-right: 20px; }
      .head__inner.fixed .head__logo .logo {
        width: 140px; }
    .head__inner.fixed .head__subnav, .head__inner.fixed .head__tel {
      display: none; }
    .head__inner.fixed .menu {
      border-bottom: none; }
      .head__inner.fixed .menu > li a {
        height: 90px;
        padding-right: 16px;
        padding-left: 16px; }
    .head__inner.fixed .btn--cta {
      width: 230px;
      height: 90px;
      font-size: 1.8rem; } }
@media screen and (min-width: 769px) {
  #global-nav {
    display: block !important; } }
@media screen and (min-width: 769px) and (max-width: 1680px) {
  .head__inner .head__logo {
    padding-right: 20px; }
    .head__inner .head__logo .logo {
      width: 140px; }

  .head__inner .head__nav .head__subnav {
    padding-right: 3vw; }
    .head__inner .head__nav .head__subnav a {
      font-size: 1.2rem;
      margin-left: 16px; }
  .head__inner .head__nav .menu {
    padding-right: 2vw; }
    .head__inner .head__nav .menu > li a {
      font-size: 1.7rem;
      padding-right: 10px;
      padding-left: 10px; }

  .head__inner .head__tel {
    padding-right: 8px;
    padding-left: 0; }
    .head__inner .head__tel .head__tel__num {
      font-size: 1.6rem;
      padding-left: 20px; }
    .head__inner .head__tel .head__tel__time {
      font-size: 1rem; }

  .head__inner .btn--cta,
  .head__inner.fixed .btn--cta {
    width: 13vw;
    font-size: 1.6rem; } }
/* visual
----------------------------------------------------------- */
.tp__visual {
  width: 100%;
  position: relative;
  height: calc(100svh - 150px);
  z-index: 1; }

.tp__visual__inner {
  height: 100%;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center; }

.tp__visual__img {
  width: 200px;
  height: 350px;
  margin-top: -6vw;
  transition: all .3s; }

@media screen and (min-width: 769px) and (max-width: 1400px) {
  .tp__visual__img {
    width: 160px;
    margin-top: -3vw; } }
.scroll {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translate(-50%, -50%); }
  .scroll:hover {
    opacity: 0.7;
    filter: alpha(opacity=70); }

/* #tp__message
----------------------------------------------------------- */
#tp__intro {
  width: 100%;
  position: relative;
  padding: 220px 0;
  padding-bottom: calc((220 / 1920) * 100vw);
  background: url("../images/common/bg_water_br.jpg10.jpg") no-repeat top left; }

.tp__intro__inner {
  position: relative; }

.tp__intro__main {
  width: calc((1780 / 1920) * 100vw);
  margin-left: auto; }

.tp__intro__detail {
  display: flex;
  flex-direction: row-reverse; }

.tp__intro__txt {
  width: 50%;
  position: relative; }
  .tp__intro__txt p {
    color: #f5f4f4; }
    .tp__intro__txt p:not(:last-child) {
      margin-bottom: 3em; }

.tp__intro__ttl {
  width: fit-content;
  margin-top: -100px;
  position: relative;
  z-index: 1; }
  .tp__intro__ttl .ttl--en {
    font-size: 160px;
    font-size: clamp(30px, 10vw, 160px);
    font-family: "Cormorant Garamond", serif;
    font-optical-sizing: auto;
    line-height: 1.0;
    font-weight: 300;
    font-style: normal;
    color: #c5b5a6;
    text-align: right;
    white-space: nowrap; }
  .tp__intro__ttl .ttl--sub {
    font-size: 2.2rem;
    font-family: "Cormorant Garamond", serif;
    font-optical-sizing: auto;
    line-height: 1.0;
    font-weight: 300;
    font-style: normal;
    color: #c5b5a6;
    text-align: right;
    white-space: nowrap; }
  .tp__intro__ttl .ttl--ja {
    font-size: 3.2rem;
    color: #f5f4f4;
    letter-spacing: 0.3em;
    padding-left: 180px;
    margin-top: 1.2em;
    position: relative; }
    .tp__intro__ttl .ttl--ja::before {
      content: '';
      position: absolute;
      width: 160px;
      height: 1px;
      background-color: rgba(255, 255, 255, 0.5);
      left: 0;
      top: 55%; }

.tp__intro__comment {
  width: 500px;
  margin-top: 220px;
  margin-left: 180px;
  position: relative;
  z-index: 1; }
  .tp__intro__comment .attent {
    font-size: 1.4rem; }

@media screen and (min-width: 769px) and (max-width: 1680px) {
  .tp__intro__txt {
    width: 60%; }

  .tp__intro__ttl .ttl--en {
    font-size: 10vw; }
  .tp__intro__ttl .ttl--ja {
    font-size: 2.8rem;
    padding-left: 140px; }
    .tp__intro__ttl .ttl--ja::before {
      width: 120px;
      top: 55%; }

  .tp__intro__comment {
    width: 32vw;
    margin-top: 180px;
    margin-left: 150px; }
    .tp__intro__comment .attent {
      font-size: 1.4rem; } }
.tp__intro__mark {
  position: absolute;
  top: -70px;
  right: 0;
  z-index: 0; }

.tp__intro__img {
  width: 50%;
  padding-top: 240px;
  display: flex;
  flex-direction: column;
  position: relative; }

.tp__intro__img02 {
  text-align: left; }

.tp__intro__img03 {
  align-self: flex-end;
  margin-top: 70px;
  margin-right: -40px; }

.tp__intro__type {
  margin-top: -25px;
  padding-left: 60px; }

@media screen and (min-width: 769px) and (max-width: 1600px) {
  .tp__intro__img {
    width: 40%;
    padding-top: 240px; }

  .tp__intro__img03 {
    width: 30vw;
    margin-right: -70px; } }
/* #tp__bestrate
----------------------------------------------------------- */
#tp__bestrate {
  width: 100%;
  position: relative;
  background: #e7e5e3;
  padding: 110px 0 120px; }

.tp__bestrate__inner {
  width: min(90%, 1200px);
  margin: 0 auto;
  padding-bottom: 60px;
  background: #f5f4f4;
  border: solid 1px #dbcfc4;
  box-shadow: inset 0 0 0 4px #f5f4f4, inset 0 0 0 5px #dbcfc4; }

.tp__bestrate__benefit {
  background: #608686;
  inline-size: fit-content;
  margin-inline: auto;
  text-align: center;
  padding: 1.2em 2em .8em; }
  .tp__bestrate__benefit p {
    color: #f5f4f4; }
  .tp__bestrate__benefit .en {
    font-size: 1.4rem;
    letter-spacing: 0; }
  .tp__bestrate__benefit .ja {
    font-size: 1.8rem; }

.tp__bestrate__ttl {
  text-align: center;
  position: relative; }
  .tp__bestrate__ttl h2 {
    font-size: 3.4rem;
    position: relative;
    inline-size: fit-content;
    margin-inline: auto;
    padding: 30px 80px;
    margin-top: 30px; }
    .tp__bestrate__ttl h2::before {
      content: '';
      position: absolute;
      background: url("../images/common/tp_bestrate_l.svg") no-repeat left center/contain;
      width: 59px;
      height: 95px;
      top: 0;
      left: 0; }
    .tp__bestrate__ttl h2::after {
      content: '';
      position: absolute;
      background: url("../images/common/tp_bestrate_r.svg") no-repeat right center/contain;
      width: 59px;
      height: 95px;
      top: 0;
      right: 0; }

.tp__bestrate__ttl--en {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  z-index: 0; }

.tp__bestrate__txt {
  text-align: center;
  inline-size: fit-content;
  margin-inline: auto;
  margin-top: 30px; }
  .tp__bestrate__txt p {
    font-size: 1.8rem;
    color: #c49800;
    text-decoration: underline;
    text-decoration-color: rgba(137, 120, 110, 0.3);
    text-underline-offset: 1em;
    line-height: 3;
    border-top: 1px solid rgba(137, 120, 110, 0.3); }

.tp__bestrate__condition {
  width: min(90%, 1080px);
  margin: 60px auto 0;
  display: flex; }
  .tp__bestrate__condition dt {
    font-size: 1.8rem;
    padding-top: .2em;
    padding-right: 70px;
    margin-right: 50px;
    border-right: 1px solid #c5b5a6; }
  .tp__bestrate__condition li {
    font-size: 1.4rem;
    line-height: 2.0;
    margin-bottom: .4em; }

/* #tp__news
----------------------------------------------------------- */
#tp__news {
  width: 100%;
  position: relative;
  border-top: 1px solid #89786e;
  padding: calc((190 / 1920) * 100vw) 0 calc((260 / 1920) * 100vw);
  background: #e7e5e3; }

.tp__news__inner {
  margin: 0 auto;
  display: flex; }

.tp__news__head {
  flex: 0 1 26%;
  min-width: 300px;
  padding-top: 85px;
  padding-left: 8%;
  margin-right: 5%;
  position: relative; }

.tp__news__ttl .ttl--en {
  font-size: 10rem;
  font-family: "Cormorant Garamond", serif;
  font-optical-sizing: auto;
  line-height: 1.0;
  font-weight: 300;
  font-style: normal; }
.tp__news__ttl .ttl--ja {
  font-size: 1.8rem;
  letter-spacing: .2em;
  margin-top: 1.2em; }

@media screen and (min-width: 769px) and (max-width: 1400px) {
  .tp__news__ttl .ttl--en {
    font-size: 8rem; }
  .tp__news__ttl .ttl--ja {
    font-size: 1.6rem; } }
.tp__news__list {
  flex: 1 1 46%;
  border-top: 1px solid rgba(197, 181, 166, 0.5); }
  .tp__news__list li {
    border-bottom: 1px solid rgba(197, 181, 166, 0.5); }
  .tp__news__list a {
    display: flex;
    align-items: center;
    padding: 2em 0; }
    .tp__news__list a:hover {
      opacity: 0.5;
      filter: alpha(opacity=50); }
  .tp__news__list .news__thum {
    width: 200px;
    margin-right: 60px; }
  .tp__news__list .news__detail {
    flex: 1; }
  .tp__news__list .date {
    font-size: 1.4rem;
    color: #b49d87; }
  .tp__news__list .ttl {
    margin-top: .5em;
    line-height: 2.0; }

.tp__news__btn {
  flex: 0 1 20%;
  min-width: 280px;
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  padding-right: 6%; }

.btn--more {
  font-size: 2rem;
  font-family: "Cormorant Garamond", serif;
  font-optical-sizing: auto;
  line-height: 1.0;
  font-weight: 300;
  font-style: normal;
  font-weight: 500;
  line-height: 1.0;
  letter-spacing: 0;
  display: block;
  transition: all .3s;
  position: relative;
  padding-right: 60px; }
  .btn--more::before {
    content: '';
    position: absolute;
    width: 6px;
    height: 6px;
    background-color: #b49d87;
    border-radius: 50%;
    right: 34px;
    top: calc(50% - (4px / 2)); }
  .btn--more::after {
    content: '';
    position: absolute;
    background: url("../images/common/arrow_br.svg") no-repeat right center/contain;
    width: 42px;
    height: 81px;
    right: 0;
    top: calc(50% - (80px / 2)); }
  .btn--more:hover {
    opacity: 0.5;
    filter: alpha(opacity=50); }

/* #tp__room
----------------------------------------------------------- */
#tp__room {
  width: 100%;
  position: relative;
  padding-bottom: calc((260 / 1920) * 100vw);
  background: url("../images/common/bg_water_br_r.jpg10.jpg") no-repeat right bottom/contain; }

.tp__room__inner {
  padding: 0 5%; }

.tp__room__top {
  display: flex;
  justify-content: flex-end; }
  .tp__room__top figure {
    margin-top: 160px; }

.tp__service__ttl {
  width: fit-content;
  padding-left: 5%;
  margin-right: 10vw;
  margin-top: 310px; }
  .tp__service__ttl .ttl--en {
    font-size: 14rem;
    font-family: "Cormorant Garamond", serif;
    font-optical-sizing: auto;
    line-height: 1.0;
    font-weight: 300;
    font-style: normal;
    color: #c5b5a6;
    text-align: right;
    white-space: nowrap; }
  .tp__service__ttl .ttl--sub {
    font-size: 2.2rem;
    font-family: "Cormorant Garamond", serif;
    font-optical-sizing: auto;
    line-height: 1.0;
    font-weight: 300;
    font-style: normal;
    color: #c5b5a6;
    text-align: right; }
  .tp__service__ttl .ttl--ja {
    font-size: 3rem;
    color: #f5f4f4;
    letter-spacing: 0.3em;
    padding-left: 180px;
    margin-top: 1.2em;
    position: relative; }
    .tp__service__ttl .ttl--ja::before {
      content: '';
      position: absolute;
      width: 160px;
      height: 1px;
      background-color: rgba(255, 255, 255, 0.5);
      left: 0;
      top: 55%; }

@media screen and (min-width: 769px) and (max-width: 1680px) {
  .tp__service__ttl {
    margin-top: calc((310 / 1920) * 100vw); }
    .tp__service__ttl .ttl--en {
      font-size: 9vw; }
    .tp__service__ttl .ttl--ja {
      font-size: 2.6rem;
      padding-left: 160px; }
      .tp__service__ttl .ttl--ja::before {
        width: 140px; } }
.tp__room__btm {
  display: flex;
  flex-direction: row-reverse; }
  .tp__room__btm .tp__room__detail {
    width: 50%;
    position: relative;
    margin-top: 160px; }
    .tp__room__btm .tp__room__detail p {
      width: min(100%, 620px);
      color: #f5f4f4; }
      .tp__room__btm .tp__room__detail p:not(:last-child) {
        margin-bottom: 3em; }
  .tp__room__btm figure {
    flex: 1;
    padding-left: 7%;
    padding-right: 5%;
    margin-top: -6vw; }

@media screen and (min-width: 769px) and (max-width: 1680px) {
  .tp__room__btm .tp__room__detail {
    padding: 0 6vw 0 4vw; } }
.tp__room__btn {
  width: min(100%, 620px);
  margin-top: 100px; }

.btn--more__corner {
  font-size: 2rem;
  font-family: "Cormorant Garamond", serif;
  font-optical-sizing: auto;
  line-height: 1.0;
  font-weight: 300;
  font-style: normal;
  color: #b49d87;
  font-weight: 500;
  line-height: 1.0;
  letter-spacing: 0;
  display: block;
  transition: all .3s;
  position: relative;
  padding-right: 60px;
  padding-bottom: 18px;
  inline-size: fit-content;
  margin-left: auto; }
  .btn--more__corner::before {
    content: '';
    position: absolute;
    width: 6px;
    height: 6px;
    background-color: #b49d87;
    border-radius: 50%;
    right: 28px;
    top: 8px; }
  .btn--more__corner::after {
    content: '';
    position: absolute;
    background: url("../images/common/arrow_corner.svg") no-repeat right center;
    width: 185px;
    height: 41px;
    right: 0;
    bottom: 0; }
  .btn--more__corner:hover {
    opacity: 0.5;
    filter: alpha(opacity=50); }

/* #tp__access
----------------------------------------------------------- */
#tp__access {
  width: 100%;
  position: relative;
  background: #f5f4f4;
  padding-bottom: calc((240 / 1920) * 100vw); }

.tp__access__map {
  position: relative;
  width: 100%;
  height: calc((640 / 1920) * 100vw);
  overflow: hidden;
  z-index: 1; }
  .tp__access__map iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    filter: grayscale(100%);
    -webkit-filter: grayscale(100%);
    transition: all .3s; }
    .tp__access__map iframe:hover {
      filter: none;
      -webkit-filter: none; }

.tp__access__ttl {
  inline-size: fit-content;
  margin-inline: auto;
  text-align: center;
  margin-top: -72px;
  z-index: 2;
  position: relative; }
  .tp__access__ttl .ttl--en {
    font-size: 14rem;
    font-family: "Cormorant Garamond", serif;
    font-optical-sizing: auto;
    line-height: 1.0;
    font-weight: 300;
    font-style: normal; }
  .tp__access__ttl .ttl--ja {
    font-size: 2.6rem;
    letter-spacing: 0.3em;
    margin-top: 1.2em; }
  .tp__access__ttl .ttl--sub {
    font-size: 2rem;
    font-family: "Cormorant Garamond", serif;
    font-optical-sizing: auto;
    line-height: 1.0;
    font-weight: 300;
    font-style: normal;
    color: #b49d87;
    margin-top: 1.2em; }

.tp__access__detail {
  width: min(90%, 1200px);
  margin: 100px auto 0;
  display: flex;
  gap: 0;
  align-items: flex-end; }

.tp__access__txt {
  width: min(100%, 670px);
  /*flex-shrink: 1;*/ }

.tp__access__btn {
  width: min(100%, 530px); }

.btn--more__corner.bk {
  color: #2f2722; }

/* footer
----------------------------------------------------------- */
.ft__wrap {
  width: 100%;
  position: relative; }

.ft__info {
  width: 100%;
  position: relative;
  background: url("../images/common/footer_cont_bg.jpg") no-repeat top center/cover;
  padding: 110px 5% 80px; }

.ft__info__logo {
  text-align: center; }

.ft__info__inner {
  width: min(90%, 1200px);
  margin: 70px auto 0;
  display: flex;
  justify-content: space-between;
  color: #fff; }
  .ft__info__inner p {
    font-size: 1.5rem;
    line-height: 2.0; }
    .ft__info__inner p .small {
      font-size: 1.4rem; }
  .ft__info__inner a {
    color: #fff;
    line-height: 2.0; }

.ft__info__address {
  width: 50%;
  border-right: 1px solid rgba(255, 255, 255, 0.5);
  display: flex; }
  .ft__info__address h3 {
    font-size: 1.8rem;
    line-height: 1.6;
    width: 22%; }
  .ft__info__address .address__area {
    flex: 1;
    padding: 0 20px; }

.ft__info__detail {
  width: 50%;
  padding-left: 60px; }
  .ft__info__detail h3 {
    font-size: 1.7rem;
    margin-bottom: 2em;
    position: relative; }
    .ft__info__detail h3::before {
      content: '';
      position: absolute;
      background-color: #fff;
      width: 5px;
      height: 5px;
      border-radius: 50%;
      top: .5em;
      left: -1em; }

.ft__link__sns {
  display: flex;
  align-items: center;
  inline-size: fit-content;
  margin-inline: auto;
  margin-top: 80px; }
  .ft__link__sns li {
    padding: 0 18px; }
    .ft__link__sns li a:hover {
      opacity: 0.5;
      filter: alpha(opacity=50); }
    .ft__link__sns li img {
      width: 20px; }
      .ft__link__sns li img.ft__sns--x {
        width: 22px; }
      .ft__link__sns li img.ft__sns--insta {
        width: 26px; }
      .ft__link__sns li img.ft__sns--youtube {
        width: 26px; }

.ft__link {
  width: 100%;
  position: relative;
  background: #2f2722;
  padding: 110px 5% 180px;
  position: relative; }
  .ft__link::after {
    content: '';
    position: absolute;
    background: url("../images/common/footer_type.svg") no-repeat bottom center;
    background-size: contain;
    width: 100%;
    max-width: 1471px;
    height: 260px;
    bottom: 120px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 0; }

.ft__link__list {
  width: min(100%, 1200px);
  margin: 0 auto;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0 40px;
  position: relative;
  z-index: 1; }
  .ft__link__list li {
    font-size: 1.8rem;
    font-family: "Cormorant Garamond", serif;
    font-optical-sizing: auto;
    line-height: 1.0;
    font-weight: 300;
    font-style: normal;
    margin-bottom: 1em; }
    .ft__link__list li a {
      color: #fff; }
      .ft__link__list li a:hover {
        color: #fff;
        text-shadow: 0 0 4px #c49800, 0 0 8px #c49800, 0 0 16px #c49800; }

.footer__cta {
  width: min(100%, 1200px);
  margin: 100px auto 0;
  display: flex;
  justify-content: space-between;
  gap: 20px;
  position: relative;
  z-index: 1; }
  .footer__cta li {
    flex: 1; }
  .footer__cta .btn--cta {
    width: 100%;
    height: 130px;
    color: #fff;
    font-size: 2.4rem;
    font-weight: 600;
    line-height: 1.8;
    letter-spacing: .1em;
    display: block;
    padding-top: 46px;
    transition: all .3s;
    text-align: center;
    position: relative; }
    .footer__cta .btn--cta span {
      font-family: "Cormorant Garamond", serif;
      font-optical-sizing: auto;
      line-height: 1.0;
      font-weight: 300;
      font-style: normal;
      font-size: 1.8rem;
      display: block; }
    .footer__cta .btn--cta::before {
      content: '';
      position: absolute;
      left: 50%;
      transform: translateX(-50%); }
  .footer__cta .btn--cta.plan {
    background: url("../images/common/btn_plan_bg.jpg") #b49d87 no-repeat top left; }
    .footer__cta .btn--cta.plan::before {
      background: url("../images/common/icon_plan.svg") top center no-repeat;
      background-size: 20px;
      width: 20px;
      height: 15px;
      top: 23px; }
  .footer__cta .btn--cta.cal {
    background: url("../images/common/btn_cal_bg.jpg") #608686 no-repeat top left; }
    .footer__cta .btn--cta.cal::before {
      background: url("../images/common/icon_cal.svg") top center no-repeat;
      background-size: 18px;
      width: 18px;
      height: 20px;
      top: 21px; }

.ft__copyright {
  width: 100%;
  text-align: center;
  padding-top: 150px; }
  .ft__copyright p {
    color: #FFF;
    font-family: "Cormorant Garamond", serif;
    font-optical-sizing: auto;
    line-height: 1.0;
    font-weight: 300;
    font-style: normal;
    letter-spacing: 0; }

.page-top {
  width: 122px;
  height: 63px;
  position: absolute;
  bottom: 170px;
  right: 60px;
  z-index: 10; }
  .page-top a {
    display: block; }
    .page-top a:hover {
      opacity: 0.5;
      filter: alpha(opacity=50); }

@media screen and (min-width: 769px) and (max-width: 1680px) {
  .page-top {
    bottom: 40px; } }
.side_benefit {
  width: 80px;
  position: fixed;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  z-index: 9;
  background: #f5f4f4;
  border: solid 1px #dbcfc4;
  box-shadow: inset 0 0 0 4px #f5f4f4, inset 0 0 0 5px #dbcfc4; }
  .side_benefit a {
    font-size: 1.6rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 3.6em 1.2em 1.2em;
    position: relative; }
    .side_benefit a::before {
      content: '';
      position: absolute;
      background: url("../images/common/icon_side_tokuten.svg") no-repeat top center;
      width: 28px;
      height: 28px;
      top: 20px;
      left: 50%;
      transform: translateX(-50%); }
    .side_benefit a:hover {
      opacity: 0.5;
      filter: alpha(opacity=50); }
  .side_benefit span {
    font-weight: 600;
    writing-mode: vertical-rl;
    text-orientation: mixed; }
