@charset "UTF-8";

* {
    margin: 0;
    padding: 0;
}

/* メモ帳 */
.toggle-btn {
  position: fixed;
  top: 0.8vw;
  left: 0; /* 最初は画面の左端にくっつける */
  z-index: 11;
  padding: 1% 1%;
  background: #E83929;
  color: #fff;
  border: none;
  cursor: pointer;
  border-radius: 0 5px 5px 0; /* 右側だけ丸みをつける */
  
  /* ボタンもスッと動かすための設定 */
  transition: left 0.3s ease;
}

/* メモが開いたとき、ボタンを右に移動させる */
.toggle-btn.active {
  left: 25%; /* サイドバーの横幅（300px）と同じ分だけ右にずらす */
}

/* サイドバーの基本スタイル */
.sidebar {
  position: fixed;
  top: 0;
  left: 0;
  width: 25%; /* メモ帳の横幅 */
  height: 100vh;
  background: #f7f7f7;
  box-shadow: 2px 0 5px rgba(0,0,0,0.2);
  z-index: 10;
  padding: 2vw 1vw 1vw 1vw; /* ボタンと被らないよう上を少しあける */
  box-sizing: border-box;

  overflow-y: auto;       /* 縦方向にはみ出したら自動でスクロールバーを出す */
  overflow-x: hidden;     /* 横方向のはみ出しは隠して、横スクロールを防ぐ */
  
  /* 最初は左側に隠す */
  transform: translateX(-100%);
  transition: transform 0.3s ease;
}

/* このクラスがつくと左から出てくる */
.sidebar.open {
  transform: translateX(0);
}

.memo-content div {
    margin-bottom: 10%;
}

.memo-content div h3 {
    margin-bottom: 2%;
    padding: 1%;
    font-size: 1.4vw;
    color: #fff;
    border: 1px;
    border-radius: 0.2vw;
    background-color: rgba(232, 57, 41, 0.6);
}

.memo-content div p {
    font-size: 1.1vw;
    margin-left: 1em;
    line-height: 1.7;
    white-space: pre-wrap;
    color: #202020;
}

.works-card_concept {
    list-style-type: none;
}

.works-card_concept li {
    margin-bottom: 4%;
}

.works-card_concept li p {
    font-size: 1.1vw;
    margin-left: 1em;
    line-height: 1.7;
    color: #202020;
}

.works-card_concept li p::before {
    content: "・";
    color: #202020;
}
/* メモ帳終了 */

/* header開始 */
header {
    font-family: "Zen Old Mincho";
}

.header-flex-box {
    display: flex;
    position: fixed;
    width: 90%;
    padding-top: 0.7%;
    padding-left: 5%;
    padding-right: 5%;
    padding-bottom: 0.5%;
    background-color: #336;
}

.header-flex-box h1 {
    width: 13%;
    font-size: 2.6vw;
}

.header-flex-box h1 a {
    font-family: "Yuji Mai";
    display: flex;
    justify-content: center;
    align-items: center;
    text-decoration: none;
    color: #fff;
}

.header-flex-box h1 img {
    width: 25%;
    margin-right: 3%;
    vertical-align: bottom;
}

.header-flex-box nav {
    width: 87%;
}

.header-flex-box nav ul {
    display: flex;
    list-style: none;
}

.header-flex-box nav ul li {
    width: 14.3%;
}

.header-flex-box nav ul li a {
    display: flex;
    text-align: center;
    text-decoration: none;
    line-height: 1.4;
    flex-direction: column;
}

.ja {
    font-size: 1.5vw;
    color: #fff;
}

.en {
    font-size: 1vw;
    color: #fff;
}

.Reservaion-box {
    border-radius: 2vw;
    background-color: #fff;
}

.Reservaion-box a span {
    color: #336;
}

.header-visual {
    width: 100%;
    height: 50vw;
    background-image: url(../images/main-visual1.jpg);
    background-size: 100% ;
}

.header-visual div {
    text-shadow: 0 0 1vw #336,0 0 1vw #336;
    font-size: 6vw;
    font-family: "Yuji Mai";
    margin-left: auto;
    margin-right: auto;
    padding-top: 10%;
    writing-mode: vertical-rl;
    color: #fff;
}

.header-visual div img {
    height: 8vw;
}
/* header終了 */

/* main開始 */
main {
    font-family: "Zen Old Mincho";
    background: linear-gradient(#336,#fff,#336);
}

/* ご挨拶 */
.section-goaisatu {
    width: 100%;
    height: 50vw;
    background-image: url(../images/main-section-goaisatu.jpg);
    background-attachment: fixed;
}

.section-goaisatu div {
    display: flex;
    width: 80%;
    margin-left: auto;
    margin-right: auto;
    padding-top: 8%;
}

.section-goaisatu div p {
    writing-mode: vertical-rl;
    white-space: pre-wrap;
    font-size: 1.5vw;
    line-height: 3.2;
    letter-spacing: 0.1vw;
    margin-left: auto;
    color: #003;
}

.section-goaisatu div p span {
    text-shadow: 0 0 0.5vw #f60,0 0 0.5vw #f60;
    color: #fff;
    font-family: "Yuji Mai";

}

.section-goaisatu div h2 {
    writing-mode: vertical-rl;
    font-size: 3vw;
    line-height: 3.2;
    letter-spacing: 1vw;
    margin-right: auto;
    color: #003;
}
/* ご挨拶終了 */

/* 客室 */
.section-room {
    padding-top: 15%;
}
.section-room h2 {
    margin-bottom: 0.5%;
    font-size: 3vw;
    text-align: center;
    letter-spacing: 0.5vw;
    color: #fff;
    line-height: 1;
}

.section-room p {
    margin-bottom: 5%;
    font-size: 1.5vw;
    text-align: center;
    letter-spacing: 0.2vw;
    color: #fff;
}


.section-flex-box1 {
    display: flex;
}

.section-flex-box1 div {
    width: 60%;
}

.section-room div img {
    width: 100%;
    border-top-right-radius: 1.5vw;
    border-bottom-right-radius: 1.5vw;
    vertical-align: bottom;
}

.section-flex-box1 .room-discription {
    width: 30%;
    margin-top: 19%;
    margin-left: 2%;
}

.room-discription p:first-child {
    white-space: pre-wrap;
    font-size: 1.6vw;
}

.room-discription p:nth-child(2) {
    white-space: pre-wrap;
    font-size: 1.2vw;
}

.room-discription a {
    width: 40%;
    padding-bottom: 1%;
    text-decoration: none;
    font-size: 1.2vw;
    color: #fff;
    border-bottom: 1px solid #fff;
}
/* 客室終了 */

/* 温泉 */
.section-hotspring {
    margin-top: 15%;
}

.section-hotspring h2 {
    margin-top: 7%;
    margin-bottom: 0.5%;
    font-size: 3vw;
    text-align: center;
    letter-spacing: 0.5vw;
    color: #003;
    line-height: 1;
}

.section-hotspring p {
    margin-bottom: 5%;
    font-size: 1.5vw;
    text-align: center;
    letter-spacing: 0.2vw;
    color: #003;
}

.section-flex-box2 {
    display: flex;
    width: 90%;
    margin-left: auto;
}

.section-flex-box2 .hotspring-discription {
    width: 30%;
    margin-top: 14.5%;
    margin-right: 2%;
}

.hotspring-discription p:first-child {
    white-space: pre-wrap;
    font-size: 1.5vw;
}

.hotspring-discription p:nth-child(2) {
    white-space: pre-wrap;
    font-size: 1.2vw;
}

.hotspring-discription a {
    width: 40%;
    margin-left: 60%;
    padding-bottom: 1%;
    text-decoration: none;
    font-size: 1.2vw;
    color: #003;
    border-bottom: 1px solid #003;
}

.section-flex-box2 div {
    width: 70%;
}
.section-hotspring img {
    width: 100%;
    border-top-left-radius: 1.5vw;
    border-bottom-left-radius: 1.5vw;
    vertical-align: bottom;
}
/* 温泉終了 */

/* 食事 */
.section-meal {
    padding-top: 15%;
}
.section-meal h2 {
    margin-bottom: 0.5%;
    font-size: 3vw;
    text-align: center;
    letter-spacing: 0.5vw;
    color: #003;
    line-height: 1;
}

.section-meal p {
    margin-bottom: 5%;
    font-size: 1.5vw;
    text-align: center;
    letter-spacing: 0.2vw;
    color: #003;
}


.section-flex-box3 {
    display: flex;
}

.section-flex-box3 div {
    width: 60%;
}

.section-meal div img {
    width: 100%;
    border-top-right-radius: 1.5vw;
    border-bottom-right-radius: 1.5vw;
    vertical-align: bottom;
}

.section-flex-box3 .meal-discription {
    width: 30%;
    margin-top: 15%;
    margin-left: 2%;
}

.meal-discription p:first-child {
    white-space: pre-wrap;
    font-size: 1.6vw;
}

.meal-discription p:nth-child(2) {
    white-space: pre-wrap;
    font-size: 1.2vw;
}

.meal-discription a {
    width: 40%;
    padding-bottom: 1%;
    text-decoration: none;
    font-size: 1.2vw;
    color: #003;
    border-bottom: 1px solid #003;
}
/* 食事終了 */

/* 館内 */
.section-Facility {
    margin-top: 15%;
    margin-bottom: 15%;
}

.section-Facility h2 {
    margin-top: 7%;
    margin-bottom: 0.5%;
    font-size: 3vw;
    text-align: center;
    letter-spacing: 0.5vw;
    color: #fff;
}

.section-Facility p {
    margin-bottom: 5%;
    font-size: 1.5vw;
    text-align: center;
    letter-spacing: 0.2vw;
    color: #fff;
}

.section-flex-box4 {
    display: flex;
    width: 92%;
    height: 35vw;
    margin-left: auto;
}

.section-flex-box4 .Facility-discription {
    width: 30%;
    margin-top: 16%;
    margin-left: auto;
    margin-right: 2%;
}

.Facility-discription p:first-child {
    white-space: pre-wrap;
    font-size: 1.5vw;
}

.Facility-discription p:nth-child(2) {
    white-space: pre-wrap;
    font-size: 1.2vw;
}

.Facility-discription a {
    width: 40%;
    margin-left: 60%;
    padding-bottom: 1%;
    text-decoration: none;
    font-size: 1.2vw;
    color: #fff;
    border-bottom: 1px solid #fff;
}

.Facility-image {
    width: 70%;
}
.Facility-image img {
    width: 100%;
    height: 35vw;
    border-top-left-radius: 1.5vw;
    border-bottom-left-radius: 1.5vw;
    vertical-align: bottom;
}
/* 館内終了 */

/* お知らせ一覧 */
.section-news {
    background-image: url(../images/main-section-goaisatu.jpg);
    background-attachment: fixed;
}

.section-news h2 {
    padding-top: 10%;
    padding-bottom: 3%;
    font-size: 3vw;
    text-align: center;
    letter-spacing: 0.5vw;
    color: #003;
    line-height: 1;
}

.news-box {
    width: 80%;
    margin-left: auto;
    margin-right: auto;
}

.news-box ul {
    display: flex;
    margin-bottom: 5%;
}

.news-box ul li {
    width: 23.5%;
    list-style: none;
}

.news-box ul li:hover {
    opacity: 0.7;
    background-color: #fff;
}

.news-box ul li:first-child,.news-box ul li:nth-child(2),
.news-box ul li:nth-child(3) {
    margin-right: 2%;
}

.news-box ul li a {
    text-decoration: none;
}

.news-box ul li:first-child img {
    height: 12.36vw;
}

.news-box ul li a img {
    width: 100%;
    margin-bottom: 3%;
    vertical-align: bottom;
}

.news-box ul li a div {
    display: flex;
    margin-bottom: 3%;
}

.news-box ul li a div p:nth-of-type(1) {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 45%;
    margin-right: auto;
    letter-spacing: 0.3vw;
    font-size: 1vw;
    color: #003;
}

.news-box ul li a div p:nth-of-type(2) {
    width: 45%;
    text-align: center;
    font-size: 1vw;
    padding: 1%;
    border-radius: 0.5vw;
    color: #fff;
    background-color: #f60;
}

.news-box ul li a h3 {
    margin-bottom: 3%;
    font-size: 1.2vw;
    line-height: 1.7;
    color: #003;
}

.news-box ul li a p {
    width: fit-content;
    margin-left: auto;
    padding-bottom: 1%;
    font-size: 1vw;
    color: #003;
    border-bottom: 1px solid #003;
}

.news-line {
    margin-top: 14.2%;
}

.section-news a {
    text-decoration: none;
}

.news-button {
    width: fit-content;
    margin-left: auto;
    margin-right: auto;
    padding-bottom: 10%;
}

.news-button p {
    padding-top: 2%;
    padding-bottom: 2%;
    font-size: 1.7vw;
    color: #003;
    border-top: 2px solid #003;
    border-bottom: 2px solid #003;
}
/* お知らせ終了 */
/* main終了 */

/* footer */
footer {
    font-family: "Zen Old Mincho";
    padding-top: 6%;
    padding-bottom: 6%;
    background-color: #336;
}

.footer-flex-box {
    display: flex;
    width: 90%;
    margin-left: auto;
    margin-right: auto;
}

.footer-flex-box div h2 {
    width: 80%;
    margin-bottom: 2%;
    font-size: 3.6vw;
}

.footer-flex-box div h2 a {
    font-family: "Yuji Mai";
    display: flex;
    align-items: center;
    text-decoration: none;
    color: #fff;
}

.footer-flex-box div h2 a img {
    width: 25%;
    margin-right: 3%;
    vertical-align: bottom;
}

.footer-flex-box div address {
    font-size: 1vw;
    font-style: normal;
    line-height: 1.8;
    color: #fff;
}

.footer-flex-box ul {
    width: 20%;
}


.footer-flex-box ul:nth-child(2) {
    width: 20%;
    margin-left: auto;
    border-right: 1px solid #fff;
}

.footer-flex-box ul li {
    list-style: none;
    line-height: 5;
}

.footer-flex-box ul li a {
    font-size: 1.2vw;
    text-decoration: none;
    margin-left: 30%;
    color: #fff;
}

.footer-flex-box ul li a span {
    font-size: 1vw;
    margin-left: 1.2vw;
}

.copy-right {
    font-size: 1vw;
    text-align: center;
    margin-top: 3%;
    color: #fff;
}
/* hooter終了 */