@charset "UTF-8";

/*-------------------------------
中ページ用のスタイル
-------------------------------*/
/* お知らせ */
.o-info-content {
  padding: 1rem 0;
}

/* メインビジュアル */
.c-page-mv {
  position: relative;
}

.c-page-mv img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.c-decoration__flower {
  position: absolute;
  top: -40%;
  left: 1%;
  width: 20vw;
  height: 100%;
  background: url('../img/flowers.svg') no-repeat center/contain;
}

.c-decoration__cloud {
  position: absolute;
  bottom: -55%;
  left: -4%;
  width: 32vw;
  height: 100%;
  background: url('../img/wagumo.svg') no-repeat center/contain;
}

.c-decoration__title {
  position: absolute;
  bottom: -30%;
  right: -2%;
  width: 50vw;
  height: 100%;
}

.o-room .c-decoration__title {
  background: url('../img/room_title.svg') no-repeat center/contain;
}

.o-restaurant .c-decoration__title {
  background: url('../img/restaurant_title.svg') no-repeat center/contain;
}

.o-facility .c-decoration__title {
  background: url('../img/facility_title.svg') no-repeat center/contain;
}


@media (min-width: 40em) {
  .c-decoration__flower {
    top: -37%;
    left: 5%;
    width: 15vw;
    height: 100%;
  }

  .c-decoration__cloud {
    bottom: -49%;
    left: -5%;
    width: 23vw;
    height: 100%;
  }

  .c-decoration__title {
    bottom: -30%;
    right: 4.5%;
    width: 35vw;
    height: 100%;
  }
}

/* キャッチフレーズ */
.c-page-phrase {
  position: relative;
  text-align: center;
  padding: 17vw 0 13vw;
}

.c-page-phrase div {
  font-size: var(--px-to-vw_18);
  font-weight: bold;
  color: var(--color-dark-brown);
  letter-spacing: 1.5px;
  margin-bottom: 5.6vw;
}

.c-page-phrase p {
  font-size: var(--px-to-vw_14);
  padding: 0 4vw;
  color: var(--color-text);
  font-weight: normal;
  text-align: left;
}

@media (min-width: 40em) {
  .c-page-phrase {
    text-align: center;
    padding: 100px 0 120px;
  }

  .c-page-phrase div {
    font-size: var(--px-to-rem_22);
    letter-spacing: 2px;
    margin-bottom: 20px;
  }

  .c-page-phrase div br {
    display: none;
  }

  .c-page-phrase p {
    font-size: var(--px-to-rem_16);
    padding: 0;
    text-align: center;
  }

  .c-page-phrase p br {
    display: block;
  }
}

/* -----------------------------
            客室 
---------------------------------*/

@media (min-width: 40em) {
  .o-room .c-page-phrase {
    text-align: center;
    padding: 100px 0 120px;
  }
}

.o-room-items {
  width: 100%;
}

.o-room-item {
  position: relative;
  margin-bottom: 26.8vw;
}

.o-room-item:last-child {
  margin-bottom: 0;
}

.o-room-item__upper {
  position: relative;
  flex-direction: row;
}

.o-room-item__img.reverse {
  flex-direction: row-reverse;
}

.o-room-item__img {
  display: flex;
  align-items: stretch;
  width: 100%;
}

.o-room-item__img .bg {
  flex: 1;
  margin-right: -0.75rem;
  background-color: var(--color-main);
  background-image: url('../img/asanoha_pattern.svg');
  background-repeat: repeat;
  background-size: 8vw auto;
}

.o-room-item__img.reverse .bg {
  margin-left: -0.75rem;
  margin-right: -10vw;
}

.o-room-item__img img {
  width: 90%;
  height: auto;
  display: block;
}

.o-room-item__img.reverse img {
  margin-left: 10%;
}

@media (min-width: 40em) {
  .o-room-item__img img {
    margin-right: 0;
    width: auto;
    max-height: 750px;
  }

  .o-room-item {
    margin-bottom: 140px;
  }

  .o-room-item__upper {
    flex-direction: row;
  }

  .o-room-item__img {
    flex-direction: row;
  }

  .o-room-item__img .bg {
    background-size: 50px auto;
  }

  .o-room-item__upper.reverse {
    flex-direction: row-reverse;
  }

  .o-room-item__img.reverse img {
    margin-left: 0;
  }

  .o-room-item__upper.reverse .o-room-item__title {
    align-items: flex-end;
    padding-left: 1em;
    padding-right: 0;
  }
}

.o-room-item__upper::before {
  content: '';
  position: absolute;
  top: -5%;
  left: -15%;
  width: 40vw;
  height: 100%;
  background: url('../img/cloud.svg') no-repeat;
}

.o-room-item__upper::after {
  content: '';
  position: absolute;
  bottom: 12%;
  left: -10%;
  width: 36vw;
  height: 100%;
  background: url('../img/wagumo.svg') no-repeat;
}

@media (min-width: 40em) {
  .o-room-item__upper::before {
    top: -17%;
    left: -2%;
    width: 28vw;
    height: 100%;
  }

  .o-room-item__upper::after {
    bottom: 20%;
    left: 3%;
    width: 23vw;
    height: 100%;
  }

  .reverse.o-room-item__upper::before {
    top: -15%;
    right: -2%;
    left: auto;
  }

  .reverse.o-room-item__upper::after {
    bottom: 18%;
    left: auto;
    right: 3%;
  }
}

.o-room-item__title {
  padding-right: 1em;
  font-size: var(--px-to-vw_20);
  color: var(--color-dark-brown);
  letter-spacing: 0.4em;
  z-index: 2;
  margin-bottom: 2vw;
}

.o-room-item__title .type {
  font-weight: 600;
}

.o-room-item__title .facilities {
  font-size: var(--px-to-vw_11);
  letter-spacing: 0.2em;
  line-height: 3;
}

@media (min-width: 40em) {
  .o-room-item__title {
    writing-mode: vertical-rl;
    text-orientation: upright;
    font-size: var(--px-to-rem_34);
    letter-spacing: 0.4em;
    align-items: flex-start;
    margin-bottom: 0;
  }

  .o-room-item__title .facilities {
    font-size: var(--px-to-rem_16);
    line-height: 2;
  }
}

.o-room-item__lower {
  background: #faf7f2;
  padding: 6vw 0 10.8vw;
}

@media (min-width: 40em) {
  .o-room-item__lower {
    background: #faf7f2;
    margin-top: -50px;
    padding: 100px 0 60px;
  }
}

.o-room-item__catch {
  text-align: center;
  padding-left: 0;
  margin-bottom: 6vw;
}

.o-room-item__catch div {
  font-size: var(--px-to-vw_16);
  font-weight: bold;
  margin-bottom: 0.5em;
  letter-spacing: 0.05em;
}

.o-room-item__catch p {
  font-size: var(--px-to-vw_11);
}

@media (min-width: 40em) {
  .o-room-item__catch {
    padding-left: 30px;
    text-align: left;
    margin-bottom: 0;
  }

  .o-room-item__catch div {
    font-size: var(--px-to-rem_20);
  }

  .o-room-item__catch p {
    font-size: var(--px-to-rem_15);
  }
}

.o-room-item__info table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 8.5vw;
}

.o-room-item__info tr,
.o-room-item__info th,
.o-room-item__info td {
  display: block;
  width: 100%;
}

.o-room-item__info th,
.o-room-item__info td {
  padding: 0.8em 1.5em;
}

.o-room-item__info th {
  font-weight: bold;
  font-size: var(--px-to-vw_13);
}

.o-room-item__info td {
  border-top: 1px solid #D1D1D1;
  font-size: var(--px-to-vw_12);
}

.o-room-item__info tr {
  border-top: 1px solid #D1D1D1;
}

.o-room-item__info table tr:last-child td {
  border-bottom: 1px solid #D1D1D1;
}

@media (min-width: 40em) {
  .o-room-item__info table {
    display: table;
    margin-bottom: 0;
  }

  .o-room-item__info tr {
    display: table-row;
    border-top: 1px solid #D1D1D1;
  }

  .o-room-item__info th,
  .o-room-item__info td {
    display: table-cell;
    width: auto;
    padding: 0.5em 0;
    font-size: var(--px-to-rem_14);
    border-bottom: 1px solid #D1D1D1;
  }

  .o-room-item__info th {
    width: 120px;
  }

  .o-room-item__info table tr:last-child {
    border-bottom: 1px solid #D1D1D1;
  }
}


.o-room-item .c-btn {
  line-height: 3;
  gap: 2.5em;
  padding: 0px 1.5em 0 4.5em;
  margin-bottom: 4vw;
}

.o-room-item .c-btn:nth-child(2) {
  gap: 3em;
  padding: 0px 1.5em 0 5em;
  margin-bottom: 0;
}

.o-room-item .c-btn--clear {
  background-color: #fff;
}

@media (min-width: 40em) {
  .o-room-item__btns {
    margin-top: 40px;
  }

  .o-room-item__btns .c-btn {
    font-weight: 600;
  }

  .o-room-item .c-btn {
    margin: 0 10px;
  }
}

.o-room-info {
  padding-top: 23vw;
  padding-bottom: 23vw;
}

@media (min-width: 40em) {
  .o-room-info {
    padding-top: 80px;
    padding-bottom: 100px;
  }
}

/* 客室スライダー */
.c-room-images-slider-wrap {
  flex: 0 0 90%;
}

.reverse .c-room-images-slider-wrap {
  flex: 0 0 100%;
}

@media (min-width: 40em) {
  .c-room-images-slider-wrap {
    margin-top: 0;
    max-width: 900px;
    position: relative;
  }
}

  .c-room-images-slider__dots {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: -25px;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
  }

  .c-room-images-slider__dots button {
    width: 5px;
    height: 12px;
    border-radius: 50%;
    background: #828282;
    border: none;
    cursor: pointer;
  }

  .c-room-images-slider__dots button.is-active {
    background: var(--color-main);
  }

  .c-room-images-slider {
    position: relative;
  }

@media (min-width: 40em) {
  .c-room-images-slider img {
    width: 100%;
    display: block;
  }
}

  .c-room-images-image {
    position: absolute;
    inset: 0;
    opacity: 0;
    pointer-events: none;
    transition: opacity 1.2s ease;
  }

  .c-room-images-image.is-active {
    opacity: 1;
    pointer-events: auto;
  }

  .c-room-images-image:first-child {
    position: relative;
  }

  .c-room-images-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

@media (max-width: 40em) {
  .reverse .c-room-images-image img {
    width: 90%;
  }
}

@media (min-width: 40em) {

}

/* -----------------------------
            施設案内 
---------------------------------*/
.o-facility .c-page-phrase {
  padding: 10vw 0 8vw;
}

@media (min-width: 40em) {
  .o-facility .c-page-phrase {
    padding: 60px 0 45px;
  }
}

.o-facility--floor {
  padding: 20vw 0 22.5vw;
}

.o-facility--floor .c-page-phrase {
  padding: 0 0 8vw;
}

.o-facility--floor .c-page-phrase div {
  font-size: var(--px-to-vw_14);
  letter-spacing: normal;
}

.o-facility--floor .c-page-phrase p {
  font-size: var(--px-to-vw_12);
  padding: 0;
}

@media (min-width: 40em) {
  .o-facility--floor {
    padding: 120px 0 65px;
  }

  .o-facility--floor .c-page-phrase {
    padding: 0 0 45px;
  }

  .o-facility--floor .c-page-phrase div {
    font-size: var(--px-to-rem_22);
  }

  .o-facility--floor .c-page-phrase p {
    font-size: var(--px-to-rem_16);
  }

  .o-facility--floor .c-page-phrase p br {
    display: none;
  }
}

.o-facility-pickup {
  position: relative;
  padding: 8vw 0 13.5vw;
}

.o-facility-pickup::before {
  content: '';
  position: absolute;
  z-index: 1;
  bottom: -2.2%;
  right: 57%;
  width: 44vw;
  height: 100%;
  background: url('../img/wagumo.svg') no-repeat;
}

.o-facility-pickup::after {
  content: '';
  position: absolute;
  top: 64%;
  left: 68%;
  width: 48.7vw;
  height: 100%;
  background: url('../img/flowers2.svg') no-repeat;
}

.o-facility-pickup .c-heading-line--v::before {
  content: none;
}

.o-facility-pickup__item {
  margin-bottom: 12vw;
}

.o-facility-pickup__item:last-child {
  margin-bottom: 0;
}

.o-facility-pickup__img {
  aspect-ratio: 600 / 340;
  width: 100%;
  overflow: hidden;
}

.o-facility-pickup__img img {
  width: 100%;
  object-fit: cover;
  display: block;
}

.o-facility-pickup__content {
  padding: 2vw 0 0 0;
}

.o-facility-pickup__content div {
  font-weight: bold;
  color: var(--color-dark-brown);
  font-size: var(--px-to-vw_16);
}

.o-facility-pickup__content p {
  font-size: var(--px-to-vw_13);
  margin-bottom: 6.7vw;
}

.o-facility-pickup__content .c-btn {
  background-color: #fff;
  line-height: 2.6;
  gap: 4em;
  padding: 5px 1em 5px 6.5em;
}

@media (min-width: 40em) {
  .o-facility-pickup {
    padding: 80px 0 80px;
  }

  .o-facility-pickup::before {
    bottom: -2%;
    right: 75%;
    width: 23.5vw;
    min-width: 350px;
  }

  .o-facility-pickup::after {
    top: 82%;
    left: 77%;
    width: 24.5vw;
    min-width: 350px;
  }

  .o-facility-pickup .c-heading-line--v::before {
    content: '';
    top: -6.5em;
    height: 4em;
  }

  .o-facility-pickup__item {
    margin-bottom: 90px;
  }

  .o-facility-pickup__item:nth-child(even) {
    flex-direction: row-reverse;
  }

  .o-facility-pickup__img {
    min-width: auto;
    margin-left: 0;
  }

  .o-facility-pickup__item:nth-child(even) .o-facility-pickup__img {
    margin-left: 0;
    margin-right: 0;
  }

  .o-facility-pickup__content {
    padding: 35px 0 0 55px;
  }

  .o-facility-pickup__item:nth-child(even) .o-facility-pickup__content {
    padding: 35px 55px 0 0;
  }

  .o-facility-pickup__content div {
    font-size: var(--px-to-rem_26);
  }

  .o-facility-pickup__content p {
    font-size: var(--px-to-rem_16);
    margin-bottom: 30px;
  }

  .o-facility-pickup__content .c-btn {
    font-size: var(--px-to-rem_18);
    line-height: 2.4;
    padding: 5px 1em 5px 5.5em;
  }
}

@media (min-width: 1300px) {
  .o-facility-pickup__img {
    min-width: 650px;
    margin-left: -100px;
  }

  .o-facility-pickup__item:nth-child(even) .o-facility-pickup__img {
    margin-left: 0;
    margin-right: -100px;
  }
}

.o-facility-items {
  padding: 22.5vw 0 0;
}

.o-facility-items__inner {
  padding: 0 var(--px-to-vw_10);
}

.o-facility-items__item {
  margin-bottom: 13.4vw;
}

.o-facility-items__item:last-child {
  margin-bottom: 0;
}

.o-facility-items__img {
  aspect-ratio: 3 / 2;
  width: 100%;
}

.o-facility-items__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.o-facility-items__content {}

.o-facility-items__content div {
  position: relative;
  width: 45%;
  background-color: #fff;
  color: var(--color-dark-brown);
  font-weight: bold;
  margin-top: -7vw;
  padding-left: 1.5em;
  line-height: 2.5;
  z-index: 1;
  font-size: var(--px-to-vw_15);
  font-weight: 600;
}

.o-facility-items__content div::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1em;
  height: 1px;
  background: var(--color-main);
}

.o-facility-items__content p {
  font-size: var(--px-to-vw_12);
}

@media (min-width: 40em) {
  .o-facility-items {
    padding: 100px 0 0;
  }

  .o-facility-items__inner {
    padding: 0;
  }

  .o-facility-items__item {
    margin-bottom: 50px;
  }

  .o-facility-items__item:nth-child(odd) {
    padding-right: 20px;
  }

  .o-facility-items__item:nth-child(even) {
    padding-left: 20px;
  }

  .o-facility-items__item:nth-last-child(-n + 2) {
    margin-bottom: 0;
  }

  .o-facility-items__content {}

  .o-facility-items__content div {
    font-size: var(--px-to-rem_22);
    margin-top: -35px;
  }

  .o-facility-items__content p {
    font-size: var(--px-to-rem_14);
  }
}

.c-facility-banner .c-banner--asanoha-2 {
  padding: 6.7vw 0;
}

.c-facility-banner .c-btn {
  font-size: var(--px-to-vw_13);
  gap: 3em;
  padding: 0px 1em 0 5.5em;
  font-weight: 600;
}

.o-facility-banner__img {
  aspect-ratio: 75 / 13;
  width: 100%;
}

.o-facility-banner__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (min-width: 40em) {
  .c-facility-banner .c-banner--asanoha-2 {
    padding: 50px 0;
  }

  .c-facility-banner .c-btn {
    font-size: var(--px-to-rem_26);
  }
}

.o-facility-overview {
  padding: 18.7vw 0 0;
}

@media (min-width: 40em) {
  .o-facility-overview {
    padding: 100px 0 0;
  }
}

.o-facility-fees {
  padding: 24vw 0 0;
}

@media (min-width: 40em) {
  .o-facility-fees {
    padding: 130px 0 0;
  }
}

.o-facility-reservation {
  padding: 25vw 0 0;
}

.o-facility-reservation__info {
  font-size: var(--px-to-vw_10);
  letter-spacing: normal;
}

.o-facility-reservation .c-table--red-scroll table {
  min-width: 800px;
}

@media (min-width: 40em) {
  .o-facility-reservation {
    padding: 150px 0 0;
  }

  .o-facility-reservation__info {
    font-size: var(--px-to-rem_14);
  }
}

.o-facility-pay-notes {
  padding: 18.7vw 0 20vw;
}

.o-facility-pay-notes__border {
  border: 5px solid #F0F0F0;
  padding: 5vw 4vw;
}

.o-facility-pay-notes__border div {
  font-weight: bold;
  color: var(--color-red);
  font-size: var(--px-to-vw_13);
  text-decoration: underline;
  text-underline-offset: 0.2em;
  padding-left: 1em;
  text-indent: -1em;
  line-height: 1.7;
}

.o-facility-pay-notes__border p {
  font-size: var(--px-to-vw_11);
  margin-top: 2vw;
}

@media (min-width: 40em) {
  .o-facility-pay-notes {
    padding: 100px 0 80px;
  }

  .o-facility-pay-notes__border {
    padding: 20px 25px;
  }

  .o-facility-pay-notes__border div {
    font-size: var(--px-to-rem_18);
  }

  .o-facility-pay-notes__border p {
    font-size: var(--px-to-rem_16);
    margin-top: 10px;
  }
}

/* -----------------------------
            お食事 
---------------------------------*/
.o-restaurant {}

.o-restaurant .c-title--main {
  font-size: var(--px-to-vw_22);
}

@media (min-width: 40em) {
  .o-restaurant {}

  .o-restaurant .c-title--main {
    font-size: var(--px-to-rem_36);
  }
}

.o-restaurant table {
  width: 100%;
  text-align: left;
  border-top: 1px solid var(--color-gray);
}

.o-restaurant--phrase-1 {
  padding: 14vw 0 2vw;
}

.o-restaurant--phrase-1 div {
  padding: 0 4vw;
  margin-bottom: 3vw;
  line-height: 1.6;
}

.o-restaurant--phrase-1 p {
  padding: 0;
}

.o-restaurant--phrase-2 {
  line-height: 1.6;
  padding: 8vw 0 6vw;
}

.o-restaurant--phrase-2 .head {
  font-size: var(--px-to-vw_20);
}

.o-restaurant--phrase-2 p {
  font-size: var(--px-to-vw_14);
  padding: 0;
}

@media (min-width: 40em) {
  .o-restaurant--phrase-1 p {
    padding: 0;
  }

  .o-restaurant--phrase-1 {
    padding: 80px 0 25px;
  }

  .o-restaurant--phrase-1 div {
    line-height: 2;
    padding: 0;
    margin-bottom: 15px;
  }

  .o-restaurant--phrase-2 {
    padding: 70px 0 45px;
    line-height: 2;
  }

  .o-restaurant--phrase-2 .head {
    font-size: var(--px-to-rem_26);
  }

  .o-restaurant--phrase-2 p {
    font-size: var(--px-to-rem_16);
    text-align: center;
    padding: 0;
  }
}

.o-restaurant--about {
  padding-top: 12vw;
  padding-bottom: 12vw;
}

.o-restaurant--about .c-title--sub {
  font-size: var(--px-to-vw_18);
}

@media (min-width: 40em) {
  .o-restaurant--about {
    padding-top: 0;
    padding-bottom: 80px;
  }

  .o-restaurant--about .c-title--sub {
    font-size: var(--px-to-rem_22);
  }
}

.o-restaurant--about table {
  margin-top: 4vw;
}

.o-restaurant--about th,
.o-restaurant--about td {
  padding: 0.8em 0;
  border-bottom: 1px solid var(--color-gray);
}

.o-restaurant--about th {
  font-weight: bold;
  padding-left: 2em;
}

.o-restaurant--about td {
  padding-right: 2em;
}

@media (min-width: 40em) {
  .o-restaurant--about table {
    margin-top: 10px;
    border-top: none;
  }

  .o-restaurant--about tr {
    border-top: 1px solid var(--color-gray);
    font-size: var(--px-to-rem_16);
  }

  .o-restaurant--about th {
    width: 200px;
    padding-left: 30px;
    margin-bottom: 30px;
  }

  .o-restaurant--about tr:last-child {
    border-bottom: 1px solid var(--color-gray);
  }
}

@media (max-width: 39.999em) {

  .o-restaurant--about table tr,
  .o-restaurant--about table th,
  .o-restaurant--about table td {
    display: block;
    width: 100%;
  }

  .o-restaurant--about table th {
    padding-left: 0;
    border-bottom: 1px solid var(--color-gray);
    text-align: center;
  }

  .o-restaurant--about table th:first-child th {
    border-top: 1px solid var(--color-gray);
  }

  .o-restaurant--about table td {
    padding-left: 1em;
    padding-right: 1em;
    border-top: none;
    font-size: var(--px-to-vw_13);
  }

  .o-restaurant--about table tr {
    font-size: var(--px-to-vw_14);
    border: none;
  }
}


.o-restaurant .c-banner--asanoha {
  padding: 2vw 0 8vw;
}

@media (min-width: 40em) {
  .o-restaurant .c-banner--asanoha {
    padding: 50px 0 0;
  }
}

.o-restaurant-item {
  position: relative;
  padding: 16vw 0 0;
  background-image: url('../img/seigaiha_bg.svg');
  background-size: 200vw;
  background-repeat: no-repeat;
}

@media (min-width: 40em) {
  .o-restaurant-item {
    padding: 130px 0 80px;
    background-size: cover;
  }
}

.o-restaurant-item__upper {
  position: relative;
  flex-direction: row;
}

.o-restaurant-item__upper::before {
  content: '';
  position: absolute;
  top: -7vw;
  left: -15vw;
  width: 42.7vw;
  height: 100%;
  background: url('../img/restaurant_cloud.svg') no-repeat;
  z-index: 999;
}

@media (min-width: 40em) {
  .o-restaurant-item__upper::before {
    content: '';
    position: absolute;
    top: -4vw;
    left: -18vw;
    width: 30vw;
    height: 100%;
    background: url('../img/restaurant_cloud.svg') no-repeat;
  }
}

.reverse.o-restaurant-item__img::before {
  transform: scaleX(-1);
  top: -10%;
  right: -2%;
  left: auto;
}

@media (min-width: 40em) {
  .o-restaurant-item__upper {
    flex-direction: row;
    width: 1100px;
    margin: 0 auto;
  }
}

.o-restaurant-item__img {
  flex-direction: row;
}

.o-restaurant-item__upper.reverse {
  flex-direction: row-reverse;
}

.o-restaurant-item__img.reverse {
  flex-direction: row-reverse;
}

.o-restaurant-item__upper.reverse .o-restaurant-item__title {
  padding-right: 0;
  margin-top: 2vw;
}

.o-restaurant-item__title {
  font-size: var(--px-to-vw_19);
  writing-mode: vertical-rl;
  text-orientation: upright;
  color: var(--color-dark-brown);
  letter-spacing: 0.5em;
  z-index: 2;
}

.o-restaurant-item__title .facilities {
  font-size: var(--px-to-vw_10);
  letter-spacing: 0.2em;
  line-height: 2.4;
}

@media (min-width: 40em) {
  .o-restaurant-item__title {
    font-size: var(--px-to-rem_34);
    letter-spacing: 0.4em;
    align-items: flex-start;
  }

  .o-restaurant-item__upper.reverse .o-restaurant-item__title {
    align-items: flex-end;
    padding-left: 1em;
    padding-right: 0;
  }

  .o-restaurant-item__title .facilities {
    font-size: var(--px-to-rem_18);
    line-height: var(--px-to-rem_40);
  }
}

.o-restaurant-item__title::before {
  content: '';
  position: absolute;
  bottom: -16vw;
  left: 68vw;
  width: 52vw;
  height: 50%;
  background: url('../img/flowers_restaurant.svg') no-repeat;
  z-index: -20;
}

@media (min-width: 40em) {
  .o-restaurant-item__title::before {
    content: '';
    position: absolute;
    bottom: -17vw;
    left: 48vw;
    width: 30vw;
    height: 100%;
    background: url('../img/flowers_restaurant.svg') no-repeat;
    z-index: -20;
  }
}

@media (min-width: 40em) {
  .o-restaurant-item__img {
    display: flex;
    align-items: stretch;
    width: 100%;
  }
}

.o-restaurant-item__title .type {
  font-size: var(--px-to-vw_19);
  font-weight: 600;
  letter-spacing: var(--px-to-rem_4);
  margin: 0 2vw;
}

@media (min-width: 40em) {
  .o-restaurant-item__title .type {
    font-size: var(--px-to-rem_30);
    letter-spacing: var(--px-to-rem_4);
    margin: 0;
  }

  .o-restaurant-item__title .type {
    margin-left: var(--px-to-rem_28);
    font-size: var(--px-to-rem_34);
    letter-spacing: var(--px-to-rem_5);
  }
}

.o-restaurant-item__img img {
  display: block;
  position: relative;
  left: -17%;
  z-index: 1;
  width: 100%;
  height: auto;
  top: 0;
  object-fit: contain;
}

@media (min-width: 40em) {
  .o-restaurant-item__img img {
    max-width: 560px;
    left: -10%;
    height: auto;
    top: 0;
    object-fit: none;
  }
}


@media (min-width: 40em) {
  .o-restaurant-item__img .bg {
    flex: 1;
    position: absolute;
    top: 0;
    left: 0;
    width: 600%;
    height: 100%;
    background-color: #2b2d2b;
    background-size: cover;
    transform: translateX(-95%);
    z-index: 0;
  }
}


.o-restaurant-bg::before {
  content: "";
  position: absolute;
  top: 87%;
  right: 84%;
  width: 12vw;
  height: 48vw;
  background-image: url(../img/limited_label.svg);
  background-repeat: no-repeat;
  background-size: contain;
  background-position: top right;
  z-index: 5;
}

.o-restaurant-bg {
  position: relative;
}

.o-restaurant-bg strong {
  position: relative;
  text-align: center;
  background-color: #ecebe3;
  color: var(--color-dark-brown);
  font-size: var(--px-to-vw_10);
  display: block;
  width: fit-content;
  margin: 3vw auto;
  padding: 0 1vw;
}

@media (min-width: 40em) {
  .o-restaurant-bg {
    text-align: center;
  }
  .o-restaurant-bg::before {
    top: 245px;
    right: 65%;
    width: 8vw;
    height: 21vw;
  }
  .o-restaurant-bg strong {
    font-size: var(--px-to-rem_16);
    width: 35vw;
    position: relative;
    text-align: center;
    background-color: #ecebe3;
    margin: 10px auto 30px;
    padding: 0;
  }
}

.o-restaurant-text {
  position: relative;
  text-align: center;
  margin: 0 auto 13vw;
  font-size: var(--px-to-vw_11);
}

.o-restaurant-text div {
  font-size: var(--px-to-rem_22);
  font-weight: bold;
  color: var(--color-dark-brown);
  letter-spacing: 1.5px;
}

.o-restaurant-text p {
  font-size: var(--px-to-rem_16);
}

@media (min-width: 40em) {
  .o-restaurant-text {
    margin: 0 auto 60px;
    font-size: var(--px-to-rem_14);
    text-align: center;
  }

  .o-restaurant-text div {
    font-size: var(--px-to-rem_22);
    letter-spacing: 2px;
    margin-bottom: 20px;
  }

  .o-restaurant-text p {
    font-size: var(--px-to-rem_16);
  }
}

.o-lunch {
  padding: 26.8vw 0 0;
  position: relative;
}

@media (min-width: 40em) {
  .o-lunch {
    padding: 130px 0 0;
  }
}

.vertical_line {
  position: relative;
  display: flex;
  text-align: center;
  font-weight: bold;
}

.vertical_line::before {
  content: '';
  position: absolute;
  top: -178%;
  right: 1rem;
  width: 38vw;
  height: 211%;
  background: url('../img/lunch_logo.svg') no-repeat;
  z-index: -20;
}

.vertical_line .vertical_box-l {
  flex-grow: 1;
  position: relative;
  height: 5.5vw;
  line-height: 140px;
  margin-right: 2em;
}

@media (min-width: 40em) {
  .vertical_line .vertical_box-l {
    height: 4vw;
  }

  .vertical_line::before {
    content: '';
    position: absolute;
    top: -84%;
    right: 0;
    width: 27vw;
    height: 100%;
    background: url('../img/lunch_logo.svg') no-repeat;
    z-index: -20;
  }
}

.vertical_line .vertical_box-l::after {
  position: absolute;
  top: -50%;
  left: 100%;
  margin: 0 1rem;
  content: "";
  width: 1px;
  height: 100%;
  background-color: #dace61;
  z-index: 999;
}

.vertical_line .vertical_box-r {
  flex-grow: 1;
  height: 4vw;
  line-height: 140px;
}

@media (min-width: 40em) {
  .vertical_line .vertical_box-l::after {
    top: 50%;
  }
}

.vertical_line::after {
  content: '';
  position: absolute;
  top: 0;
  width: 200vw;
  height: 53vw;
  background: var(--color-main);
  z-index: -20;
}

@media (min-width: 40em) {
  .vertical_line::after {
    content: '';
    position: absolute;
    top: 15%;
    height: clamp(255px, 23vw, 1000px);
    background: var(--color-main);
    z-index: -20;
  }
}



.o-grand_menu {
  background-image: url(../img/washi-bg.jpg);
  background-size: cover;
  padding-bottom: 7vw;
}
.o-grand_menu .c-title--sub {
  font-size: var(--px-to-vw_12);
}

.o-grand_menu .text_box {
  margin: 0 auto;
  text-align: center;
  color: var(--color-base);
  background-color: var(--color-orange);
  width: 120vw;
  height: auto;
  font-size: var(--px-to-vw_16);
  padding: 0;
}

@media (min-width: 40em) {
  .o-grand_menu {
    padding-bottom: 50px;
  }

  .o-grand_menu .c-title--main {
    margin-bottom: 10px;
  }

  .o-grand_menu .c-title--sub {
    font-size: var(--px-to-rem_20);
  }

  .o-grand_menu .text_box {
    margin: 0 auto;
    text-align: center;
    color: var(--color-base);
    background-color: var(--color-orange);
    width: 34vw;
    height: auto;
    font-size: var(--px-to-rem_34);
    padding: 0 1vw;
  }
}

.horizontal_line {
  position: relative;
  display: flex;
  align-items: center;
  text-align: center;
  color: var(--color-base);
  font-weight: bold;
  padding: 0 10vw;
  transform: translateY(-50%);
}

.horizontal_line .horizontal_box-l {
  flex-grow: 1;
  position: relative;
  height: 2px;
  width: 25%;
  background-color: var(--color-orange);
}

.horizontal_line .horizontal_box-r {
  flex-grow: 1;
  position: relative;
  height: 2px;
  width: 25%;
  background-color: var(--color-orange);
}

.o-lunch_category-item {
  margin-bottom: 8vw;
}
@media (min-width: 40em) {
  .o-lunch_category-item {
    margin-bottom: 0;
  }
}

@media (min-width: 40em) {
  .o-lunch_category {
    margin-top: 50px;
  }
}
.c-title--main span{
  display: block;
  color: #A12531;
  margin: 1vw auto -2.5vw;
  font-size: var(--px-to-vw_8);
}
@media (min-width: 40em) {
  .c-title--main span {
    margin: 0 0 -10px;
    font-size: var(--px-to-rem_10);
  }
}

.o-LunchMenu--img {
  padding: 2vw;
  flex-direction: column;
}

.o-LunchMenu--img_area {
  position: relative;
  width: 100%;
}

.o-LunchMenu--img_area.is-new::after {
  font-family: "Kozuka Gothic Pr6N", "小塚ゴシック Pr6N", sans-serif;
  content: "NEW";
  position: absolute;
  left: 8px;
  bottom: -7%;
  background-color: #D3522F;
  color: #fff;
  font-size: var(--px-to-vw_8);
  font-weight: bold;
  padding: 0 2vw 0.2vw;
  line-height: 2em;
  z-index: 2;
}

.o-LunchMenu--img_area img {
  width: 100%;
  height: 100%;
  aspect-ratio: 320 / 220;
  object-fit: cover;
  display: block;
}

.o-LunchMenu--img .menu_text {
  background-color: var(--color-base);
  text-align: center;
  padding: 2.5vw 2vw;
  letter-spacing: 0.1em;
  font-size: var(--px-to-vw_12);
  flex-direction: column;
  flex-grow: 1;
}

.o-LunchMenu--img .menu_text strong {
  font-size: var(--px-to-vw_11);
}

.o-LunchMenu--img .menu_text small {
  font-size: var(--px-to-vw_8);
}

.o-LunchMenu--img .c-title--sub {
  letter-spacing: 1px;
  font-size: var(--px-to-vw_12);
  line-height: 1.8;
}


@media (min-width: 40em) {
  .o-LunchMenu--img {
    margin-bottom: 30px;
    padding: 0.5em;
  }

  .o-LunchMenu--img_area.is-new::after {
    left: 10px;
    bottom: -3px;
    font-size: var(--px-to-rem_13);
    padding: 0 13px;
    line-height: 2em;
    z-index: 2;
  }

  .o-LunchMenu--img_area img {
    height: 234px;
  }

  .o-LunchMenu--img .menu_text {
    background-color: var(--color-base);
    text-align: center;
    margin-top: -7px;
    padding: 15px 10px;
    font-size: var(--px-to-rem_20);
  }
  
  .o-LunchMenu--img .menu_text strong {
    font-size: var(--px-to-rem_16);
  }

  .o-LunchMenu--img .menu_text small {
    font-size: var(--px-to-rem_10);
  }

  .o-LunchMenu--img .c-title--sub {
    letter-spacing: 2px;
    font-size: var(--px-to-rem_20);
    line-height: 2;
  }
}

.o-banquet {
  padding: 20vw 0 0;
}

.o-banquet .o-restaurant-bg::before,
.o-group_lunch .o-restaurant-bg::before {
  display: none;
}

.o-banquet .c-heading-line--v::before,
.o-group_lunch .c-heading-line--v::before {
  background-color: #DACE61;
  height: 3em;
}

@media (min-width: 40em) {
  .o-banquet {
    padding-top: 140px;
  }

  .o-banquet .c-heading-line--v::before,
  .o-group_lunch .c-heading-line--v::before {
    height: 4em;
  }

  .o-banquet .o-restaurant-text br:first-child {
    display: none;
  }
}

.o-banquet .c-title--main {
  font-size: var(--px-to-vw_22);
}

.o-banquet .text_box {
  font-size: var(--px-to-vw_12);
  color: var(--color-red);
  text-align: center;
}

@media (min-width: 40em) {
  .o-banquet .text_box {
    font-size: var(--px-to-rem_19);
  }
}

.o-banquet .bg {
  position: relative;
  background-image: url(../img/banquet-bg.jpg);
  background-repeat: no-repeat;
  background-size: auto 100%;
  background-position: center;
  margin-bottom: 2vw;
  z-index: -2;
}

@media (min-width: 40em) {
  .o-banquet .c-title--main {
    font-size: var(--px-to-rem_36);
  }

  .o-banquet .bg {
    background-size: cover;
    margin-bottom: 0;
  }
}

.o-banquet .bg::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.7);
  pointer-events: none;
  z-index: -1;
}

.o-banquet .bg .o-banquet-item {
  padding: 16vw 0;
}

@media (min-width: 40em) {
  .o-banquet .bg .o-banquet-item {
    padding: 90px 0;
  }
}

.o-group_lunch {
  padding: 20vw 0 0 0;
}

@media (min-width: 40em) {
  .o-group_lunch {
    padding: 140px 0 0 0;
  }
}

.o-group_lunch .c-banner--asanoha-2 {
  padding: 13vw 0;
}

@media (min-width: 40em) {
  .o-group_lunch .c-banner--asanoha-2 {
    padding: 85px 0 45px;
  }
}

.o-LunchSlider {
  position: relative;
  padding: 0 0 8vw;
}

@media (min-width: 40em) {
  .o-LunchSlider {
    padding: 0 0 60px;
  }
}

.o-LunchSlider--img {
  position: relative;
}

.o-LunchSlider--img_area {
  position: relative;
  width: 100%;
  aspect-ratio: 3 / 2;
  margin: 0 auto;
  overflow: hidden;
}

.o-LunchSlider--img_area img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

@media (min-width: 40em) {
  .o-LunchSlider--img_area {
    aspect-ratio: 75 / 50;
  }
}

.o-LunchSlider--img .o-LunchSlide--box {
  position: relative;
  width: 100%;
  margin: 0 auto;
  padding: 5.5vw 0 5.5vw;
  background-color: var(--color-base);
  z-index: 1;
}

.o-LunchSlider--img .o-LunchSlide--box .c-title--sub {
  font-size: var(--px-to-vw_18);
}

@media (min-width: 40em) {
  .o-LunchSlider--img .o-LunchSlide--box {
    width: min(90%, 520px);
    margin: -25px auto 0;
    padding: 25px 30px 35px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  }
  .o-LunchSlider--img .o-LunchSlide--box .c-title--sub {
    font-size: var(--px-to-rem_27);
  }
}

.o-LunchSlider--fee {
  padding-left: 25px;
}

.o-LunchSlider--fee strong {
  font-size: var(--px-to-vw_18);
}

.o-LunchSlider--fee small {
  font-size: var(--px-to-vw_12);
  position: relative;
  top: 0.2em;
}

.o-LunchSlider--ex strong {
  font-size: var(--px-to-vw_16);
}

.o-LunchSlider--ex p {
  font-size: var(--px-to-vw_11);
  line-height: 1.7;
}
@media (min-width: 40em) {
  .o-LunchSlider--fee strong {
    font-size: var(--px-to-rem_20);
  }

  .o-LunchSlider--fee small {
    font-size: var(--px-to-rem_12);
  }

  .o-LunchSlider--ex strong {
    font-size: var(--px-to-rem_18);
  }

  .o-LunchSlider--ex p {
    font-size: var(--px-to-rem_14);
  }
}

.o-LunchSlider-prev,
.o-LunchSlider-next {
  width: var(--px-to-vw_25);
  height: var(--px-to-vw_25);
  top: 51%;
  transform: translateY(-50%);
  background: rgba(255, 255, 255, 0.8);
  border-radius: 50%;
  position: absolute;
  z-index: 10;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}

.o-LunchSlider-prev::after {
  content: '';
  width: 4vw;
  height: 3.5vw;
  background-image: url('../img/arrow.svg');
  background-repeat: no-repeat;
}

.o-LunchSlider-next::after {
  content: '';
  width: 4vw;
  height: 3.8vw;
  background-image: url('../img/arrow.svg');
  background-repeat: no-repeat;
  transform: rotate(180deg);
}

.o-LunchSlider-prev {
  left: 5%;
}

.o-LunchSlider-next {
  right: 5%;
}

@media (min-width: 40em) {
  .o-LunchSlider-prev,
  .o-LunchSlider-next {
    width: clamp(35px, 2vw, 48px);
    height: clamp(35px, 2vw, 48px);
    top: 16.8vw;
    transform: translateY(-50%);
    transform: none;
  }

  .o-LunchSlider-prev::after {
    content: '';
    width: 20px;
    height: 18px;
    background-image: url('../img/arrow.svg');
    background-repeat: no-repeat;
  }

  .o-LunchSlider-next::after {
    content: '';
    width: 20px;
    height: 20px;
    background-image: url('../img/arrow.svg');
    background-repeat: no-repeat;
    transform: rotate(180deg);
  }

  .o-LunchSlider-prev {
    left: 30%;
  }

  .o-LunchSlider-next {
    right: 30%;
  }
}


.o-lunch-ranking {
  position: relative;
  padding-bottom: 20vw;
}

.o-lunch-ranking-border::after {
  content: '';
  position: absolute;
  top: 2%;
  left: 1vw;
  width: 52vw;
  height: 18vw;
  z-index: 10;
  background: url('../img/ranking_title_sp.svg') no-repeat center/contain;
}

.o-lunch-ranking-border {
  border: #f0f0f0 10px solid;
  margin: 5vw 0 0;
  padding: 2.7vw 0 3vw 0.75rem;
  width: 146vw;
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch;
}

.o-lunch-ranking-inner {
  overflow: visible;
}

.o-lunch-ranking-border::-webkit-scrollbar {
  height: 6px;
}

.o-lunch-ranking-border::-webkit-scrollbar-track {
  background: #eee;
  border-radius: 3px;
}

.o-lunch-ranking-border::-webkit-scrollbar-thumb {
  background: #bdbdbd;
  border-radius: 3px;
}

.o-lunch-ranking-scroll .o-lunch-ranking-inner {
  width: 134vw;
}

@media (min-width: 40em) {
  .o-lunch-ranking {
    padding-bottom: 150px;
  }

  .o-lunch-ranking-border::after {
    content: '';
    position: absolute;
    top: -11%;
    left: 87.5%;
    width: 165px;
    height: 320px;
    z-index: 10;
    background: url('../img/ranking_title.svg') no-repeat center/contain;
  }

  .o-lunch-ranking-border {
    padding: 35px 0 10px 20px;
    width: auto;
  }

  .o-lunch-ranking-inner {
    overflow-x: visible !important;
    overflow-y: visible !important;
    -webkit-overflow-scrolling: touch;
  }

  .o-lunch-ranking-scroll {
    overflow: visible !important;
  }

  .o-lunch-ranking-scroll .o-lunch-ranking-inner {
    width: auto;
  }

  .o-lunch-ranking-scroll .scroll-hint-icon-wrap {
    display: none;
  }
}

.o-lunch-ranking .o-ranking-title {
  margin: 2vw auto 4vw;
  font-size: var(--px-to-vw_10);
}

.o-lunch-ranking .o-ranking-title strong {
  font-size: var(--px-to-vw_12);
}

.o-lunch-ranking .c-row__col--md-1-7 {
  text-align: center !important;
  order: -1;
}

.o-lunch-ranking .type {
  position: relative;
  display: inline-block;
}

@media (min-width: 40em) {
  .o-lunch-ranking .o-ranking-title {
    font-size: var(--px-to-rem_16);
  }
  .o-lunch-ranking .o-ranking-box .o-ranking-title {
    margin: 5px auto;
  }

  .o-lunch-ranking .type {
    writing-mode: vertical-rl;
  }

  .o-lunch-ranking .c-row__col--md-1-7 {
    text-align: left !important;
    order: 0;
  }

  .o-lunch-ranking .o-ranking-title strong {
    font-size: var(--px-to-rem_18);
  }

  .o-lunch-ranking .type {
    position: relative;
    display: inline-block;
  }
}

.o-ranking-box {
  position: relative;
  display: inline-block;
}

.o-ranking-box.is-no1::before,
.o-ranking-box.is-no2::before,
.o-ranking-box.is-no3::before {
  content: '';
  position: absolute;
  top: -5px;
  left: 10px;
  width: 6vw;
  height: 8vw;
  z-index: 1;
}

.o-ranking-box.is-no1::before {
  background: url('../img/no01.png') no-repeat center/contain;
}

.o-ranking-box.is-no2::before {
  background: url('../img/no02.png') no-repeat center/contain;
}

.o-ranking-box.is-no3::before {
  background: url('../img/no03.png') no-repeat center/contain;
}

@media (min-width: 40em) {

  .o-ranking-box.is-no1::before,
  .o-ranking-box.is-no2::before,
  .o-ranking-box.is-no3::before {
    top: -5px;
    left: 10px;
    width: 35px;
    height: 45px;
  }
}

.o-ranking-img {
  width: 42.7vw;
  aspect-ratio: 3 / 2;
}

.o-ranking-img img {
  object-fit: cover;
}

@media (min-width: 40em) {
  .o-ranking-img {
    width: 250px;
    aspect-ratio: 3 / 2;
  }
}
/* -----------------------------
            お風呂 
---------------------------------*/
.o-bath-img {
  overflow: hidden;
  margin-top: 50px;
}

.o-bath-slider-thumb .swiper-slide{
  flex-shrink:0;
}

.o-bath-img .o-bath-slider-main {
  margin-bottom: 10px;
}

.o-bath-img .o-bath-slider-main img {
  width: 100%;
  height: auto;
  display: block;
}

.o-bath-slider-thumb {
  width: 100%;
}

.o-bath-img .o-bath-slider-thumb .swiper-slide {
  opacity: 0.5;
  cursor: pointer;
}

.o-bath-img .o-bath-slider-thumb .swiper-slide-thumb-active {
  opacity: 1;
}

.o-bath-img .o-bath-slider-thumb img {
  width: 100%;
  display: block;
}

/* -----------------------------
            日帰りプラン 
---------------------------------*/
.o-daytrip {
    margin-top: 3rem;
    padding-bottom: 100px;
}

.o-daytrip h4 {
    font-size: 16px;
    font-weight: bold;
    border-left: 4px solid #ba746f;
    margin: 10px 0;
    padding: 2px 10px;
}

.c-daytrip-list .c-daytrip-item:not(:first-child) h2 {
  margin-top: 3rem;
}

.c-daytrip-photo {
    float: none;
    aspect-ratio: 277 / 179;
    max-width: 100%;
    overflow: hidden;
    margin-bottom: 20px;
}

.c-daytrip-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (min-width: 40em) {
    .c-daytrip-photo {
        width: 500px;
        float: right;
        margin-bottom: 0;
    }
}

/* -----------------------------
            お問い合わせ 
---------------------------------*/
.o-contact {
}

.o-contact table {
  border-top: 1px solid #d6d5d5;
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 5px;
}

.o-contact table th,
.o-contact table td {
  border-bottom: 1px solid #d6d5d5;
  padding: 10px 0;
}

.o-contact table th {
  font-weight: bold;
  vertical-align: middle;
}

.o-contact table.noborder {
  border: none;
}

.o-contact table.noborder th,
.o-contact table.noborder td {
  border: none;
}

.o-contact table.bordered th,
.o-contact table.bordered td {
  border: 1px solid #d6d5d5;
}

.o-contact table.header-center th {
  text-align: center;
  vertical-align: middle;
}

.o-contact table.header-filled th {
  background-color: #f2f2f2;
}

.o-contact table.header-filled--red th {
  background-color: #b54b51;
  color: #FFF;
}

.o-contact table.table-responsive th,
.o-contact table.table-responsive td {
  display: block;
}

.o-contact table.table-responsive th {
  border-bottom-width: 0;
  padding-bottom: 0px;
  width: 14vw;
}

.o-contact table.table-responsive td {
  border-top-width: 0;
  padding-top: 5px;
}

@media (max-width: 39.9375em) {
  .o-contact table.table-responsive th {
    width: auto !important;
  }

  .o-contact table.table-responsive.bordered th {
    border-top-width: 0;
    border-bottom-width: 1px;
    padding-bottom: 10px;
  }

  .o-contact table.table-responsive.bordered td {
    padding-top: 10px;
  }

  .o-contact table.narrow-padding--sp th,
  .o-contact table.narrow-padding--sp td {
    padding: 2px 5px;
  }
}

@media (min-width: 40em) {
  .o-contact table .width-25p {
    width: 25%;
  }

  .o-contact table th,
  .o-contact table td {
    padding: 8px 20px;
  }

  .o-contact table.table-responsive th,
  .o-contact table.table-responsive td {
    display: table-cell;
    border-width: 1px;
    padding: 8px 20px;
  }

  .o-contact table.narrow-padding th,
  .o-contact table.narrow-padding td {
    padding: 2px 5px;
  }

  .o-contact table.narrow-padding--4-8 th,
  .o-contact table.narrow-padding--4-8 td {
    padding: 4px 8px;
  }
}

.o-contact dl.table {
  border-top: 1px solid #d6d5d5;
}

.o-contact dl.table dt,
.o-contact dl.table dd {
  padding: 10px 15px;
}

.o-contact dl.table dt {
  font-weight: bold;
  padding-bottom: 0;
}

.o-contact dl.table dd {
  padding-top: 5px;
  border-bottom: 1px solid #d6d5d5;
}

@media (min-width: 40em) {
  .o-contact dl.table {
    border-top: 1px solid #d6d5d5;
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    margin-bottom: 5px;
  }

  .o-contact dl.table dt,
  .o-contact dl.table dd {
    padding: 8px 20px;
    border-bottom: 1px solid #d6d5d5;
  }

  .o-contact dl.table dt {
    width: 20%;
    font-weight: bold;
  }

  .o-contact dl.table dd {
    width: 80%;
  }
}

.o-contact .c-borderbox {
    padding: 10px;
    border: 1px solid #e6e6e6;
}

.o-contact .c-color--red {
    color: var(--color-main);
}

.o-contact .u-fs--x-small {
    font-size: 0.7rem;
    text-align: left;
    width: fit-content;
    margin: 0 auto;
}

.o-contactbtn {
    margin-top: 20px;
    text-align: center;
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 9999px;
    font-weight: 700;
    transition: 0.3s ease;
    gap: 1em;
    padding: 1em 1em 1em 3.5em;
    letter-spacing: 2px;
    background-color: var(--color-dark-brown);
    border: 1px solid var(--color-dark-brown);
    color: #fff !important;
    cursor: pointer;
}

.o-contactbtn--back {
    padding: 1em 5em 1em 3em;
}

.o-contactbtn input[type="submit"],
.o-contactbtn input[type="button"] {
    color: #fff !important;
    background: transparent;
    border: none;
    font-size: var(--px-to-vw_18);
    cursor: pointer;
    padding: 0;
    margin: 0;
    line-height: inherit;
    height: auto;
    text-align: center;
    font-family: "notoSerifJp", "Noto Serif JP", "游明朝", "Yu Mincho", yumincho, "Hiragino Mincho Pro", serif;
}

.o-contactbtn .c-btn__icon {
    position: absolute;
    right: 2em;
    top: 50%;
    transform: translateY(-50%);
    color: #fff;
    pointer-events: none;
    font-size: 1.2em;
}

@media (min-width: 40em) {
    .o-contact .o-contactbtn input {
        font-size: var(--px-to-rem_20);
        letter-spacing: 3px;
    }
}

.o-contact_border {
  border: 5px solid #F0F0F0;
  padding: 10px;
}

@media (min-width: 40em) {
  .o-contact_border {
    padding: 20px 25px;
  }
}

.c-text-indent {
  text-indent: -1em;
  padding-left: 1em;
  display: inline-block;
}