@charset "utf-8";
:root{
    --base-white-color:#ffffff;
    --base-black-color:#333;

    --base-bg-color:#f1efea;
  
    --primary-color:#2F9F0D;
    --secondary-color:#f1fcf0;
    --tertiary-color:#C7B299;
    --quaternary-color:#E5F1F8;
    
    --dark-gray-color:#4C4C4C;
    --gray-color:#ccc;
    --light-gray-color:#efefef;
    --super-light-gray-color:#fbfbfb;

    --container-size:900px;
    --container-small-size:864px;
    --container-medium-size:1280px;
    --container-large-size:1366px;
    --container-full-size:100%;

    --header-area-height:auto;
    --footer-area-height:auto;
  }

  html{
    scroll-behavior: smooth;
    height: auto;
  }

  body{
    background-color: var(--base-white-color);
    color: var(--base-black-color);
    letter-spacing: .05em;
    height: auto;
    font-family: "Shippori Mincho", serif;
    font-weight: 400;
    font-style: normal;
  }

  a{
    color: var(--base-black-color);
  }
  a:hover{
    opacity: 0.8;
  }

  ul{
    padding-inline-start: 1em;
  }

  h1,h2,h3,h4,h5,h6{
    margin-top: 0.5em;
    margin-bottom: 0.5em;
    font-weight: 900;
  }
  h1{
      font-size: 32px;
      font-size: clamp(32px, 5.625vw, 45px);
      min-height: 0vw;
      font-weight: 900;
  }
  h2{
      font-size: 20px;
      font-size: clamp(20px, 3vw, 24px);
      min-height: 0vw;
      font-weight: 900;
  }
  h3{
      font-size: 18px;
      font-size: clamp(16px, 2.5vw, 18px);
      min-height: 0vw;
  }
  h4{
      font-size: 16px;
      font-size: clamp(16px, 2.5vw, 20px);
      min-height: 0vw;
  }
  p{
    line-height: 3em;
    font-size: 12px;
    font-size: clamp(12px, 1.6vw, 16px);
    min-height: 0vw;
  }
  address{
    font-style: normal;
  }
  hr{
    border: 1px solid var(--gray-color);
  }
  dt{
    line-height: 2em;
    font-size: 12px;
    font-size: clamp(12px, 1.6vw, 16px);
    min-height: 0vw;
  }
  dd{
    line-height: 2em;
    font-size: 12px;
    font-size: clamp(12px, 1.6vw, 16px);
    min-height: 0vw;
  }
  summary {
    display: block;
    list-style: none;
  }
  
  summary::-webkit-details-marker {
    display:none;
  }
  .container-full{
    width: 100%;
    margin: 0 auto;
    padding: 3vh 5vw;
  }
  .break-word{
    display: block;
  }
  .line-height-double{
    line-height: 3;
  }
  .marker{
    background: linear-gradient(transparent 50%, #ffff00 50%);
  }

  header {
    padding: 0.5rem 1rem;
    background-color: #f8f8f8;
    position: relative;
    .container{
      display: flex;
      justify-content: space-between;
      align-items: center;
      max-width: var(--container-size);
      margin-left: auto;
      margin-right: auto;
    }
    .gloval-menu{
      .menu-lists{
        display: flex;
        justify-content: center;
        gap: clamp(10px,2vw,20px);
        list-style-type: none;
        li{
          a{
            text-decoration: none;
          }
        }
      }
    }
    @media screen and (max-width: 768px) {
      .gloval-menu{
        display: none;
      }
    }
}

header .site-title {
    max-width: clamp(100px,20vw,200px);
}


.main-contents{
  .container{
    padding-top: clamp(24px,3vw,48px);
    padding-bottom: clamp(24px,3vw,48px);
    padding-left: clamp(24px,3vw,36px);
    max-width: var(--container-large-size);
    margin-left: auto;
  }
  .section-fv-area{
    img{
      width: 100%;
      height: clamp(150px,30vw,400px);
      object-fit: cover;
      border-radius: 0 0 0 clamp(10px,2vw,20px);
    }
  }
  .contents-area{
    padding-top: 2em;
    padding-right: 2em;
  }
}
aside{
  .container{
    padding-top: clamp(24px,3vw,48px);
    padding-bottom: clamp(24px,3vw,48px);
    padding-left: clamp(24px,3vw,36px);
    max-width: var(--container-size);
    margin-left: auto;
  }
  .contents-area{
    padding-top: 2em;
    padding-right: 2em;
  }
}
aside{
  background-image: url(../images/footer-bg.png);
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center bottom;
  padding-top: clamp(40px, 10vw, 80px);
  padding-bottom: clamp(60px, 14vw, 170px);
  vertical-align: bottom;
  border-bottom: 1px solid #C7B299;
  .container{
      width: 100%;
      max-width: 764px;
      margin-left: auto;
      margin-right: auto;
  }
  h2{
      margin-bottom: clamp(20px,3vw,40px);
  }
    .timetable {
      border-collapse: separate;
      border-spacing: 0;
      overflow: hidden;
      box-shadow: 0 0 0 clamp(0.5px,1vw,1px) #555;
      border-radius: clamp(10px,2vw,20px);
      background-color: #555;
      width: 100%;
      margin-bottom: clamp(10px,2vw,20px);
    }
    
    /* セル共通設定 */
    .timetable th,
    .timetable td {
      border: clamp(0.5px,1vw,1px) solid #555;
      text-align: center;
      padding: clamp(5px,2vw,20px);
      color: #444;
      background-color: #fff;
      font-size: clamp(10px,1.8vw,18px);
      font-weight: 500;
    }
    
    /* ヘッダー行 */
    .timetable thead th {
      background-color: #fff;
      font-size: clamp(12px,2vw,20px);
    }
    
    /* 時間帯セル（左端） */
    .timetable .time {
      background-color: #fdddf7;
    }
    
    /* 左端の時間セルにも背景色 */
    .timetable tbody td:first-child {
      background-color: #fdddf7;
    }
    
    /* セル幅調整 */
    .timetable td {
      width: clamp(30px,6vw,80px);
    }
    
    /* 角の border-radius */
    .timetable th:first-child {
      border-top-left-radius: clamp(10px,2vw,20px);
    }
    .timetable th:last-child {
      border-top-right-radius: clamp(10px,2vw,20px);
    }
    .timetable tr:last-child td:first-child {
      border-bottom-left-radius: clamp(10px,2vw,20px);
    }
    .timetable tr:last-child td:last-child {
      border-bottom-right-radius: clamp(10px,2vw,20px);
    }
    .timetable-bottom-contents{
      margin-bottom: clamp(20px,5vw,30px);
      p{
          line-height: 1.2;
          font-size: clamp(12px,1.4vw,14px);
      }
      address{
          p{
              padding: 0;
              margin-top: 0;
          }
      }
    }
    .line-button{
      width: 100%;
      max-width: 600px;
      margin-left: auto;
      margin-right: auto;
      margin-bottom: clamp(30px,5vw,60px);
    }
    .link-button{
      display: block;
      text-align: center;
      background-color: var(--primary-color);
      color: var(--base-white-color);
      width: 100%;
      max-width: 400px;
      padding: clamp(10px,2vw,20px);
      border-radius: 100px;
      text-decoration: none;
      margin-left: auto;
      margin-right: auto;
      font-weight: 600;
      font-size: clamp(18px, 2vw, 24px);;
    }
}

footer{
  background-color: var(--tertiary-color);
  border-top: 1px solid var(--tertiary-color);
  .container{
    padding-top: clamp(24px,3vw,48px);
    padding-bottom: clamp(24px,3vw,48px);
    padding-left: clamp(24px,3vw,36px);
    max-width: var(--container-large-size);
    margin-left: auto;
  }
  .nav-area{
    padding-right: 2em;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: flex-end;
      ul{
        list-style-type: none;
        display: flex;
        gap:clamp(10px,2vw,20px);
        padding-left: 0;
        li{
          a{
            text-decoration: none;
          }
        }
      }
  }
  @media screen and (max-width: 480px) {
    .nav-area{
      flex-direction: row;
      justify-content: space-between;
      align-items: flex-start;
    }
    ul{
      flex-direction: column;
      gap:clamp(10px,2vw,20px);
    }
  }
  .copy-right-area{
    text-align: center;
    padding: 1em 2em;
  }
}

.instagram-link-area{
  text-align: right;
  .instagram-link{
    color: var(--primary-color);
    text-decoration: none;
  }
}
.reserved-link-area{
  padding: clamp(12px,2.4vw,24px) clamp(24px,3vw,36px);
  .reserved-link{
    color: var(--primary-color);
    text-decoration: none;
  }
}