@charset "UTF-8";
/*============================================================
	Base
============================================================*/
html,
body {
  width: 100%;
}
@media only screen and (max-width: 767px) {
  html,
  body {
    min-height: 100vh;
  }
}

html {
  font-family: "Crimson Text", "Shippori Mincho", serif;
  font-size: 18px;
  font-weight: 400;
  font-style: normal;
  line-height: 1;
  letter-spacing: 0.1em;
  -webkit-font-feature-settings: "palt";
     -moz-font-feature-settings: "palt";
          font-feature-settings: "palt";
  color: #222;
  word-wrap: break-word;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media only screen and (max-width: 767px) {
  html {
    font-size: 3.4666666667vw;
    -webkit-text-size-adjust: 100%;
  }
}
@media print, screen and (min-width: 768px) and (max-width: 1500px) {
  html {
    font-size: 1.2vw;
  }
}
html * {
  -webkit-box-sizing: border-box;
     -moz-box-sizing: border-box;
          box-sizing: border-box;
  letter-spacing: 0.1em;
}

body {
  position: relative;
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
     -moz-box-orient: vertical;
     -moz-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  min-height: 100vh;
}

img {
  width: 100%;
  height: auto;
}
img[src$=".svg"] {
  max-width: 100%;
}

a,
a * {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  color: #222;
  text-decoration: none;
  outline: none;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}

@media print, screen and (min-width: 768px) {
  a[href^="tel:"] {
    pointer-events: none;
  }
}

header,
main,
section,
footer {
  width: 100%;
}

main {
  -webkit-box-flex: 1;
  -webkit-flex: 1 0 auto;
     -moz-box-flex: 1;
      -ms-flex: 1 0 auto;
          flex: 1 0 auto;
  min-height: 1px;
}

section {
  position: relative;
  padding: 8.3333333333rem 0;
}
@media only screen and (max-width: 767px) {
  section {
    padding: 5.7692307692rem 0;
  }
}

dt, strong {
  font-weight: inherit;
}

p {
  line-height: 1.8;
  text-align: justify;
}

/*============================================================
	Objects
============================================================*/
@media only screen and (max-width: 767px) {
  .pc {
    display: none !important;
  }
}

@media print, screen and (min-width: 768px) {
  .sp {
    display: none !important;
  }
}

.inner {
  width: 80vw;
  max-width: 1200px;
  margin: auto;
}
@media only screen and (max-width: 767px) {
  .inner {
    width: 86.6666666667%;
    max-width: 86.6666666667vw;
  }
}
.inner .container {
  width: 83.3333333333%;
  margin: auto;
}
@media only screen and (max-width: 767px) {
  .inner .container {
    width: 100%;
  }
}

.access {
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
     -moz-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
@media only screen and (max-width: 767px) {
  .access {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
       -moz-box-orient: vertical;
       -moz-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}
.access li {
  font-size: 2rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  position: relative;
}
@media only screen and (max-width: 767px) {
  .access li {
    font-size: 1.3846153846rem;
  }
  .access li:not(:last-child) {
    margin-bottom: 1.1538461538rem;
  }
}
.access li small {
  position: absolute;
  top: 0.5em;
  left: 1em;
  font-size: 1.3333333333rem;
}
@media only screen and (max-width: 767px) {
  .access li small {
    top: 0;
    font-size: 1.1538461538rem;
  }
}
.access li span {
  font-size: 2.5555555556rem;
}
@media only screen and (max-width: 767px) {
  .access li span {
    font-size: 1.8461538462rem;
  }
}
.access li strong {
  font-size: 6.6666666667rem;
  color: #810000;
}
@media only screen and (max-width: 767px) {
  .access li strong {
    font-size: 4.6153846154rem;
  }
}

.lead {
  font-size: 2rem;
  line-height: 1.8;
  font-weight: 500;
}
@media only screen and (max-width: 767px) {
  .lead {
    font-size: 1.6153846154rem;
  }
}

/*  links
-------------------------------------------------*/
a[class^=btn] {
  display: block;
  width: 26.3888888889rem;
  height: 6.6666666667rem;
  position: relative;
}
@media only screen and (max-width: 767px) {
  a[class^=btn] {
    width: 12.3076923077rem;
    height: 3.8461538462rem;
  }
}
a[class^=btn]::before, a[class^=btn]::after {
  position: absolute;
  content: "";
  top: 50%;
}
a[class^=btn]::before {
  width: 2.2222222222rem;
  height: 2.2222222222rem;
  left: 3.3333333333rem;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: contain;
}
@media only screen and (max-width: 767px) {
  a[class^=btn]::before {
    width: 1.3461538462rem;
    height: 1.3461538462rem;
    left: 0.7692307692rem;
  }
}
a[class^=btn]::after {
  width: 1.1111111111rem;
  height: 1.1111111111rem;
  border-right: solid 1px #fff;
  border-bottom: solid 1px #fff;
  right: 3.3333333333rem;
  -webkit-transform: translateY(-50%) rotate(-45deg);
          transform: translateY(-50%) rotate(-45deg);
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}
@media only screen and (max-width: 767px) {
  a[class^=btn]::after {
    width: 0.7692307692rem;
    height: 0.7692307692rem;
    right: 1.1538461538rem;
  }
}
a[class^=btn]:hover::after {
  right: 2.2222222222rem;
}
a[class^=btn] span {
  position: absolute;
  width: 100%;
  height: 100%;
  line-height: 6.6666666667rem;
  text-align: center;
  color: #fff;
  font-size: 2.6666666667rem;
  font-weight: 500;
  z-index: 2;
}
@media only screen and (max-width: 767px) {
  a[class^=btn] span {
    font-size: 1.5384615385rem;
    line-height: 3.8461538462rem;
  }
}
a[class^=btn] span::before {
  position: absolute;
  content: "";
  width: 100%;
  height: 50%;
  top: 0;
  left: 0;
  background: rgba(255, 255, 255, 0.1);
  z-index: 1;
}
a[class^=btn].btn__request {
  background: #410705;
}
a[class^=btn].btn__request::before {
  background-image: url(../img/icon-paper.svg);
}
a[class^=btn].btn__visit {
  background: #810000;
}
a[class^=btn].btn__visit::before {
  background-image: url(../img/icon-calendar.svg);
}

/*  headings
-------------------------------------------------*/
h2 {
  position: absolute;
  top: 0;
}

/*  scroll
-------------------------------------------------*/
.scroll_item,
.scroll_list_item,
.scroll_fade_item {
  opacity: 0;
  -webkit-transition: all ease-in-out 0.6s;
  transition: all ease-in-out 0.6s;
}
.scroll_item.scrollActive,
.scroll_list_item.scrollActive,
.scroll_fade_item.scrollActive {
  opacity: 1;
  -webkit-transform: translate(0) scale(1);
          transform: translate(0) scale(1);
}

.fadeTop {
  -webkit-transform: translate(0, 50px);
          transform: translate(0, 50px);
}
.fadeTop.scrollActive {
  -webkit-transform: translate(0, 0);
          transform: translate(0, 0);
}

.fadeLeft,
.fadeRight {
  -webkit-transform: translate(50px, 0);
          transform: translate(50px, 0);
}
.fadeLeft.scrollActive,
.fadeRight.scrollActive {
  -webkit-transform: translate(0, 0);
          transform: translate(0, 0);
}

.fadeRight {
  -webkit-transform: translate(-50px, 0);
          transform: translate(-50px, 0);
}

/*============================================================
	Layout
============================================================*/
/*  header
-------------------------------------------------*/
header {
  position: absolute;
  right: 0;
  top: 0;
  width: 23vw;
  z-index: 10;
}
@media only screen and (max-width: 767px) {
  header {
    width: 46vw;
    left: 0;
  }
}

/*  mv
-------------------------------------------------*/
#mv {
  padding: 0;
}
#mv .ttl {
  padding: 2.7777777778rem 0;
  background: #410705;
  color: #fff;
  font-size: 2.6666666667rem;
  font-weight: 500;
  text-align: center;
}
@media only screen and (max-width: 767px) {
  #mv .ttl {
    padding: 1.9230769231rem 0;
    font-size: 1.7692307692rem;
    line-height: 1.4;
  }
}
#mv .mv__access {
  background: #e4e3d7;
  padding: 2.7777777778rem 0;
  color: #410705;
}
@media only screen and (max-width: 767px) {
  #mv .mv__access {
    padding: 1.9230769231rem 0;
  }
}
#mv .mv__access h3 {
  font-size: 3.3333333333rem;
  font-weight: 500;
  text-align: center;
  border-bottom: solid 0.1111111111rem #410705;
  padding-bottom: 1.1111111111rem;
  margin-bottom: 1.1111111111rem;
}
@media only screen and (max-width: 767px) {
  #mv .mv__access h3 {
    font-size: 1.8461538462rem;
    line-height: 1.4;
    padding-bottom: 0.3846153846rem;
    margin-bottom: 1.1538461538rem;
  }
}
#mv .mv__access h3 strong {
  font-size: 120%;
}
#mv .mv__price {
  background: #222;
  color: #fff;
  padding: 2.7777777778rem 0;
}
@media only screen and (max-width: 767px) {
  #mv .mv__price {
    padding: 1.9230769231rem 0;
  }
}
#mv .mv__price ul {
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
     -moz-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: end;
  -webkit-align-items: flex-end;
     -moz-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
}
@media only screen and (max-width: 767px) {
  #mv .mv__price ul {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
       -moz-box-orient: vertical;
       -moz-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
    -webkit-align-items: center;
       -moz-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
}
#mv .mv__price ul li {
  letter-spacing: 0.05em;
}
#mv .mv__price ul li:first-child {
  font-size: 1.3333333333rem;
}
@media only screen and (max-width: 767px) {
  #mv .mv__price ul li:first-child {
    font-size: 1.1538461538rem;
  }
}
#mv .mv__price ul li:first-child strong {
  font-size: 3.3333333333rem;
  font-style: italic;
}
@media only screen and (max-width: 767px) {
  #mv .mv__price ul li:first-child strong {
    font-size: 2.0769230769rem;
  }
}
#mv .mv__price ul li:nth-child(2) {
  font-size: 4.4444444444rem;
  font-style: italic;
}
@media only screen and (max-width: 767px) {
  #mv .mv__price ul li:nth-child(2) {
    font-size: 3.4615384615rem;
    margin-top: 0.2em;
  }
}
#mv .mv__price ul li:last-child {
  font-size: 1.6666666667rem;
  position: relative;
}
#mv .mv__price ul li:last-child strong {
  font-size: 6.1111111111rem;
  font-style: italic;
  letter-spacing: 0.05em;
}
#mv .mv__price ul li:last-child small {
  position: absolute;
  font-size: 0.8888888889rem;
  right: -0.2em;
  top: 2.5em;
}

/*  Design
-------------------------------------------------*/
#design {
  background: #410705;
  color: #fff;
}
#design h2 {
  left: 0;
  width: 25rem;
}
@media only screen and (max-width: 767px) {
  #design h2 {
    width: 13.8461538462rem;
  }
}
@media print, screen and (min-width: 768px) {
  #design ul li {
    width: 90vw;
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
       -moz-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: center;
    -webkit-align-items: center;
       -moz-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
}
#design ul li figure {
  width: 37.037037037%;
}
@media only screen and (max-width: 767px) {
  #design ul li figure {
    width: 93.3333333333vw;
    height: 11.5384615385rem;
    overflow: hidden;
    position: relative;
    margin-bottom: 1.9230769231rem;
  }
  #design ul li figure img {
    position: absolute;
    inset: 0;
  }
}
@media only screen and (max-width: 767px) {
  #design ul li dl {
    width: 86.6666666667%;
    max-width: 86.6666666667vw;
    margin-inline: auto;
  }
}
#design ul li dl dt {
  font-size: 1.4444444444rem;
  color: #c69c6d;
  margin-bottom: 1.1111111111rem;
  letter-spacing: 0.05em;
}
@media only screen and (max-width: 767px) {
  #design ul li dl dt {
    font-size: 1.1538461538rem;
  }
}
#design ul li:not(:last-child) {
  margin-bottom: 5.5555555556rem;
}
@media only screen and (max-width: 767px) {
  #design ul li:not(:last-child) {
    margin-bottom: 3.8461538462rem;
  }
}
#design ul li:nth-child(odd) {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
  -webkit-flex-direction: row-reverse;
     -moz-box-orient: horizontal;
     -moz-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
  margin-left: auto;
}
@media only screen and (max-width: 767px) {
  #design ul li:nth-child(odd) figure {
    margin-left: auto;
  }
}
#design ul li:first-child dd:last-child {
  font-size: 1.3333333333rem;
  margin-top: 1.1111111111rem;
  position: relative;
}
@media only screen and (max-width: 767px) {
  #design ul li:first-child dd:last-child {
    font-size: 1.1538461538rem;
    line-height: 1.4;
  }
}
#design ul li:first-child dd:last-child::after {
  position: absolute;
  content: "";
  width: 3.3333333333rem;
  height: 1px;
  background: #fff;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  right: 1.5em;
}
@media only screen and (max-width: 767px) {
  #design ul li:first-child dd:last-child::after {
    width: 3.8461538462rem;
    top: unset;
    -webkit-transform: translateY(0);
            transform: translateY(0);
    bottom: 0.75em;
    right: 2em;
  }
}
@media print, screen and (min-width: 768px) {
  #design ul li:nth-child(2) figure {
    width: 55.5555555556%;
  }
}
#design ul li:last-child dd {
  font-size: 1.6666666667rem;
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-box;
  display: -ms-flexbox;
  display: flex;
  line-height: 1.4;
}
@media only screen and (max-width: 767px) {
  #design ul li:last-child dd {
    font-size: 1.0769230769rem;
  }
}
#design ul li:last-child dd span {
  width: 2em;
}
#design ul li:last-child dd:not(:last-child) {
  margin-bottom: 0.4em;
}

/*  Access
-------------------------------------------------*/
#access {
  padding-top: 3.8888888889rem;
}
@media only screen and (max-width: 767px) {
  #access {
    padding-top: 5.7692307692rem;
  }
}
#access h2 {
  right: 0;
  width: 25.2777777778rem;
}
@media only screen and (max-width: 767px) {
  #access h2 {
    width: 14rem;
  }
}
#access .lead {
  margin-bottom: 3.8888888889rem;
}
@media only screen and (max-width: 767px) {
  #access .lead {
    margin-bottom: 2.6923076923rem;
  }
}

/*  Gallery
-------------------------------------------------*/
#gallery {
  background: #410705;
}
#gallery h2 {
  left: 0;
  width: 26.5rem;
}
@media only screen and (max-width: 767px) {
  #gallery h2 {
    width: 14.6923076923rem;
  }
}
#gallery #slick-thumb .slick-list {
  margin-top: 1.1111111111rem;
  padding: 0 2.3611111111rem;
}
@media only screen and (max-width: 767px) {
  #gallery #slick-thumb .slick-list {
    margin-top: 0.7692307692rem;
    padding: 0 1.9230769231rem 0 0;
  }
}
#gallery #slick-thumb .slick-list .slick-slide {
  width: 15.8333333333rem;
  margin: 0 0.5555555556rem;
  cursor: pointer;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}
@media only screen and (max-width: 767px) {
  #gallery #slick-thumb .slick-list .slick-slide {
    width: 6.9230769231rem;
    margin: 0 0.7692307692rem 0 0;
  }
}
#gallery #slick-thumb .slick-list .slick-slide:not(.slick-current) {
  opacity: 0.3;
}
#gallery #slick-thumb .slick-list .slick-slide:not(.slick-current):hover {
  opacity: 1;
}
#gallery #slick-thumb .slick-arrow {
  width: 0;
  height: 0;
}
#gallery #slick-thumb .slick-arrow::before {
  position: absolute;
  content: "";
  width: 1.6666666667rem;
  height: 1.6666666667rem;
  border-right: solid 3px #fff;
  border-bottom: solid 3px #fff;
  top: 50%;
}
@media only screen and (max-width: 767px) {
  #gallery #slick-thumb .slick-arrow::before {
    width: 1.1538461538rem;
    height: 1.1538461538rem;
    border-right-width: 2px;
    border-bottom-width: 2px;
  }
}
#gallery #slick-thumb .slick-arrow.slick-prev {
  -webkit-transform: translateY(-50%) rotate(135deg);
          transform: translateY(-50%) rotate(135deg);
  left: -1.6666666667rem;
}
@media only screen and (max-width: 767px) {
  #gallery #slick-thumb .slick-arrow.slick-prev {
    left: 0.1923076923rem;
  }
}
#gallery #slick-thumb .slick-arrow.slick-next {
  -webkit-transform: translateY(-50%) rotate(-45deg);
          transform: translateY(-50%) rotate(-45deg);
  right: -1.6666666667rem;
}
@media only screen and (max-width: 767px) {
  #gallery #slick-thumb .slick-arrow.slick-next {
    right: 0.1923076923rem;
  }
}

/*  Outline
-------------------------------------------------*/
#outline {
  background: #e4e3d7;
}
#outline h2 {
  right: 0;
  width: 25.8888888889rem;
}
@media only screen and (max-width: 767px) {
  #outline h2 {
    width: 14.3461538462rem;
  }
}
#outline .inner {
  display: grid;
  grid-template-columns: 41.6666666667% auto;
  gap: 2.7777777778rem;
}
@media only screen and (max-width: 767px) {
  #outline .inner {
    grid-template-columns: 100%;
    gap: 1.9230769231rem;
  }
}
#outline .inner .data h3 {
  font-size: 1.3333333333rem;
  margin-bottom: 2.7777777778rem;
}
@media only screen and (max-width: 767px) {
  #outline .inner .data h3 {
    font-size: 1.1538461538rem;
    margin-bottom: 1.9230769231rem;
  }
}
#outline .inner .data dl {
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-box;
  display: -ms-flexbox;
  display: flex;
  border-bottom: dotted 1px #410705;
  padding-bottom: 0.8333333333rem;
}
@media only screen and (max-width: 767px) {
  #outline .inner .data dl {
    padding-bottom: 0.5769230769rem;
  }
}
#outline .inner .data dl:not(:last-child) {
  margin-bottom: 0.8333333333rem;
}
@media only screen and (max-width: 767px) {
  #outline .inner .data dl:not(:last-child) {
    margin-bottom: 0.5769230769rem;
  }
}
#outline .inner .data dl dt {
  width: 10rem;
}
@media only screen and (max-width: 767px) {
  #outline .inner .data dl dt {
    width: 35%;
    line-height: 1.2;
  }
}
@media only screen and (max-width: 767px) {
  #outline .inner .data dl dd {
    width: 65%;
    line-height: 1.2;
  }
}

/*  見学予約受付中
-------------------------------------------------*/
#cta h3 {
  font-size: 4rem;
  font-weight: 500;
  text-align: center;
  margin-bottom: 3.8888888889rem;
}
@media only screen and (max-width: 767px) {
  #cta h3 {
    font-size: 2.7692307692rem;
    margin-bottom: 2.6923076923rem;
  }
}
#cta .container {
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
     -moz-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

/*  footer
-------------------------------------------------*/
footer {
  background: #410705;
  color: #fff;
  padding: 3.8888888889rem 0;
  font-family: "Montserrat", "Noto Sans JP", sans-serif;
}
@media only screen and (max-width: 767px) {
  footer {
    padding: 2.6923076923rem 0;
  }
}
footer .inner {
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
     -moz-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
@media only screen and (max-width: 767px) {
  footer .inner {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
       -moz-box-orient: vertical;
       -moz-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}
@media only screen and (max-width: 767px) {
  footer .inner .footer__left {
    margin-bottom: 1.9230769231rem;
  }
}
footer .inner .footer__left a {
  display: block;
}
footer .inner .footer__left a.logo {
  display: block;
  width: 16.6666666667rem;
  margin-bottom: 1.1111111111rem;
}
footer .inner .footer__left a.tel {
  position: relative;
  padding-left: 1.8333333333rem;
  font-size: 2rem;
  font-weight: 600;
  color: #fff;
  letter-spacing: 0.05em;
}
footer .inner .footer__left a.tel::before {
  position: absolute;
  content: "";
  width: 1.2777777778rem;
  height: 1.6666666667rem;
  background: url(../img/icon-tel.svg) no-repeat center left/contain;
  left: 0;
  bottom: 0;
}
footer .inner .footer__right {
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
     -moz-box-orient: vertical;
     -moz-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
     -moz-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: end;
  -webkit-align-items: flex-end;
     -moz-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
}
footer .inner .footer__right ul {
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
  -webkit-justify-content: flex-end;
     -moz-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}
@media only screen and (max-width: 767px) {
  footer .inner .footer__right ul {
    margin-bottom: 1.9230769231rem;
  }
}
footer .inner .footer__right ul li:not(:last-child) {
  margin-right: 2.7777777778rem;
}
footer .inner .footer__right ul li a {
  color: #fff;
  padding-left: 1.6666666667rem;
  position: relative;
}
footer .inner .footer__right ul li a::before {
  position: absolute;
  content: "";
  background: url(../img/icon-arrow.svg) no-repeat center left/contain;
  width: 1.1111111111rem;
  height: 1.1111111111rem;
  left: 0;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
footer .inner .footer__right small {
  font-size: 0.7777777778rem;
  color: #866;
}

/*  floating banner
-------------------------------------------------*/
#floating {
  width: 100%;
  position: fixed;
  left: 0;
  bottom: 0;
  padding: 1.6666666667rem 0;
  background: rgba(255, 255, 255, 0.8);
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  -webkit-transform: translateY(100%);
          transform: translateY(100%);
}
@media only screen and (max-width: 767px) {
  #floating {
    padding: 0;
  }
}
#floating.fixed {
  -webkit-transform: translateY(0);
          transform: translateY(0);
}
@media only screen and (max-width: 767px) {
  #floating .inner {
    width: 100%;
    max-width: 100%;
  }
}
#floating .inner ul {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}
@media print, screen and (min-width: 768px) {
  #floating .inner ul {
    gap: 1.6666666667rem;
  }
}
#floating .inner ul li a[class^=btn] {
  width: 21.1111111111rem;
  height: 4.4444444444rem;
}
@media only screen and (max-width: 767px) {
  #floating .inner ul li a[class^=btn] {
    width: unset;
  }
}
#floating .inner ul li a[class^=btn]::before {
  width: 1.6666666667rem;
  height: 1.6666666667rem;
  left: 2.7777777778rem;
}
@media only screen and (max-width: 767px) {
  #floating .inner ul li a[class^=btn]::before {
    width: 1.3461538462rem;
    height: 1.3461538462rem;
    left: 50%;
    top: 0.7692307692rem;
    -webkit-transform: translate(-50%, 0);
            transform: translate(-50%, 0);
  }
}
#floating .inner ul li a[class^=btn]::after {
  width: 0.8333333333rem;
  height: 0.8333333333rem;
  right: 2.7777777778rem;
}
@media only screen and (max-width: 767px) {
  #floating .inner ul li a[class^=btn]::after {
    display: none;
  }
}
#floating .inner ul li a[class^=btn]:hover::after {
  right: 1.6666666667rem;
}
#floating .inner ul li a[class^=btn] span {
  line-height: 4.4444444444rem;
  font-size: 1.6666666667rem;
}
@media only screen and (max-width: 767px) {
  #floating .inner ul li a[class^=btn] span {
    font-size: 1.0769230769rem;
    padding-top: 1.1538461538rem;
  }
}
#floating .inner ul li:last-child .tel {
  display: block;
  color: #410705;
  position: relative;
  padding-left: 1.8333333333rem;
  font-size: 2.6666666667rem;
  font-weight: 500;
  letter-spacing: 0.05em;
}
@media only screen and (max-width: 767px) {
  #floating .inner ul li:last-child .tel {
    padding: 2.3076923077rem 0 0;
    height: 100%;
  }
  #floating .inner ul li:last-child .tel span {
    display: none;
  }
}
#floating .inner ul li:last-child .tel p {
  font-size: 1rem;
}
@media only screen and (max-width: 767px) {
  #floating .inner ul li:last-child .tel p {
    font-size: 1.0769230769rem;
    text-align: center;
  }
}
#floating .inner ul li:last-child .tel::before {
  position: absolute;
  content: "";
  width: 1.6666666667rem;
  height: 2.2222222222rem;
  background: url(../img/icon-tel2.svg) no-repeat center left/contain;
  left: 0;
  bottom: 0.2em;
}
@media only screen and (max-width: 767px) {
  #floating .inner ul li:last-child .tel::before {
    width: 1.3461538462rem;
    height: 1.3461538462rem;
    top: 0.7692307692rem;
    left: 50%;
    -webkit-transform: translate(-50%, 0);
            transform: translate(-50%, 0);
  }
}