@charset "UTF-8";/* CSS Document */@media screen and (min-width: 768px) and (max-width: 1079px){body{  background-color: #000;  font-size: 30px;  color: #FFF;  max-width: 1920px;  margin: 0 auto;  padding: 0;  font-family: "Noto Sans JP", sans-serif;}.clearfix::after {	content: "";	display: block;	clear: both;}a{  color: #FFF;  text-decoration: none;  transition: all 0.2s ease;}a:visited{  color: #FFF;}a:hover{opacity: 0.6;}p{margin: 0;}ul{  padding: 0;  margin: 0;  list-style: none;}h1,h2,h3{margin: 0;}/*header*/header{  max-width: 1920px;  width: 100%;  height: 120px;  background: #000;  position: fixed;  z-index: 980;  transition: 0.4s;}header.invert{  box-shadow: 0px 2px 6px 0px #2E2E2E;  transition: 0.4s;}#headerInner{  margin: 0 auto;  max-width: 1920px;  width: 95%;  height: 120px;  display: flex;  align-items: center;}.logo_mb{display: none;}.logo_pc a{  display: flex;  justify-content: center;  align-items: center;  height: 120px;}.logo_pc img{width: 100%;}#headermenu{display: none;}.openbtn{position: relative;cursor: pointer;margin: 0 0 0 auto;width: 50px;height: 50px;}.openbtn .openbtn-area{transition: all .4s;}.openbtn span{display: inline-block;transition: all .4s;position: absolute;left: 14px;height: 3px;background: #fff;width: 45%;}.openbtn span:nth-of-type(1){top:15px;}.openbtn span:nth-of-type(2){top:23px;}.openbtn span:nth-of-type(3){top:31px;}.openbtn.active .openbtn-area{transform: rotateY(-360deg);}.openbtn.active span:nth-of-type(1){top: 18px;left: 12.5px;transform: translateY(6px) rotate(-135deg);width: 50%;}.openbtn.active span:nth-of-type(2){opacity: 0;}.openbtn.active span:nth-of-type(3){top: 30px;left: 12.5px;transform: translateY(-6px) rotate(135deg);width: 50%;}body.no-scroll {  overflow: hidden;}.menuboard{  position: fixed;  width: 100%;  right: 0;  height: calc(100vh - 60px);  background: rgba(000,000,000,0.9);  visibility: hidden;  transition: opacity 0.2s, visibility 0.2s;  opacity: 0;  z-index: 999;}.menuboard ul{  text-align: left;  margin: 0;  padding-left: 4%;}.menuboard.active{  opacity: 1;  visibility: visible;}.menuboard li{  font-size: 14pt;  margin: 0 0 2% 0;}.menuboard li a{  position: relative;}.tagInner{display: inline-flex;justify-content: center;align-items: center;}.c-tag{  display: flex;  justify-content: center;  align-items: center;  padding: 0 10px 0 10px;  background-color: #297201;}.b-tag{  display: flex;  justify-content: center;  align-items: center;  padding: 0 10px 0 10px;  background-color: #810505;}.c-tag,.b-tag span{  font-size: 14px;  font-weight: 300;  line-height: 1.8;  text-align: center;}/*main*/main{padding-top: 120px;color: #000;}#mainphoto{  width: 100%;  margin-bottom: 75px;  height: calc(50vh - 120px);  background-repeat: no-repeat;  background-size: cover;  position: relative;}.mainslide{  width: 100%;  height: calc(50vh - 120px);  position: absolute;  top: 0;  left: 0;}.title{  position: absolute;  display:flex;  width: 100%;  height: calc(50vh - 120px);  background: rgba(000,000,000,0.7);  justify-content: center;  align-items: center;  z-index: 500;}.title h1{  font-size: clamp(28px,2.6vw,50px);  font-weight: 600;  line-height: 2;  color: #FFF;  text-align: left;}.caption{  text-align: center;  font-size: 1.4rem;  line-height: 4;  font-weight: 600;  color: #FFF;}.subcaption{  text-align: center;  font-weight: 600;  color: #FFF;  font-size: 1.2rem;}/* ページ全体のコンテナ */.page-container {    display: flex;    flex-direction: column; /* スケジュールとフォームを縦に並べる */    gap: 30px; /* セクション間のスペース */    max-width: 960px; /* ページ全体の最大幅 */    margin: auto;    padding: 0 15px; /* 左右のパディング */}/* スケジュールセクションとフォームセクションの共通スタイル */.schedule-section{    margin-top: 40px;    background-color: #fff;    border: 1px solid #ddd;    box-shadow: 0 0 10px rgba(0,0,0,0.05);    padding: 20px;}/* 個別の調整が必要な場合は、それぞれのクラスで上書き */.schedule-container { /* 元のスタイルと重複を避けるため調整 */    max-width: 100%; /* page-containerが幅を制御 */    margin: 0;    border: none;    box-shadow: none;    padding:0; /* schedule-sectionがpaddingを持つ */}/*form*//* --- 予約フォームのスタイル --- */.reservation-form-container h2 {    font-size: 1.6em;    color: #333;    margin-top: 0;    margin-bottom: 20px;    border-bottom: 1px solid #eee;    padding-bottom: 10px;}.important-notice {    background-color: #f9f9f9;	color: #000;    border: 1px solid #eee;    padding: 15px;    margin-bottom: 25px;    font-size: 0.7em;}.important-notice strong{color: #FF0000}.important-notice p {    margin-top: 0;}.important-notice ul {    padding-left: 20px;    margin-bottom: 0;}.important-notice li {    margin-bottom: 5px;}#bookingForm {    width: 100%;}.form-grid {    display: grid;    gap: 20px;}.form-group {    margin-bottom: 5px; /* グリッドのgapがあるので小さくても良い */}.form-group label {    display: block;    font-weight: bold;    margin-bottom: 6px;    font-size: 0.8em;    color: #444;}.form-group input[type="text"],.form-group input[type="date"],.form-group input[type="email"],.form-group input[type="tel"],.form-group select,.form-group textarea {    width: 100%;    padding: 10px;    border: 1px solid #ccc;    border-radius: 4px;    box-sizing: border-box; /* paddingとborderをwidthに含める */    font-size: 1em;}.form-group input:focus,.form-group select:focus,.form-group textarea:focus {    border-color: #007bff;    outline: none;    box-shadow: 0 0 0 0.2rem rgba(0,123,255,.25);}.form-group .required {    color: red;    font-weight: normal;    margin-left: 2px;}.form-text {    display: block;    font-size: 0.85em;    color: #666;    margin-top: 5px;}.time-notes {    font-style: italic;    margin-top: 8px;}.form-actions {    margin-top: 30px;    text-align: right; /* ボタンを右寄せにする場合 */}.submit-button {    background-color: #007bff;    color: white;    padding: 12px 30px;    border: none;    border-radius: 4px;    font-size: 1.1em;    cursor: pointer;    transition: background-color 0.2s ease-in-out;}.form-group-name {    display: inline-block; /* 親が1列のグリッドなので、これだけでは横並びにならない */    width: calc(50% - 10px); /* gapを考慮 */}.form-group-name:nth-of-type(odd) { /* First Name */   margin-right: 20px; /* gapの代わり */}#bookingForm .form-grid {    display: block; /* グリッドを一旦解除して、手動でレイアウト */}#bookingForm .form-group {    margin-bottom: 20px; /* グリッドのgapの代わり */}.name-fields-container {    display: flex;    gap: 20px;    margin-bottom: 20px;}.name-fields-container .form-group {    flex: 1;    margin-bottom: 0; /* 親のgapで管理 */}/*footer*/#page-top{   position: fixed;    right: 20px;    z-index: 2;    cursor: pointer;    opacity: 0;    background: rgba(000,000,000,0.7);    transform: translateY(100px);}#page-top a{    position: relative;    display: flex;    justify-content: center;    align-items: center;    width: 60px;    height: 60px;    border: 1px solid #FFF;    transition: all 0.3s;}#page-top a span{  position: absolute;  top: 24px;  left: 15px;  width: 30px;  height: 30px;  border-top: 1px solid #FFF;  border-right: 1px solid #FFF;  transform: rotate(-45deg);}#page-top.DownMove{    animation: DownAnime 0.5s forwards;}#page-top.UpMove{    animation: UpAnime 0.5s forwards;    animation-delay: 0s;}footer{  margin-top: 180px;}#footerInner{  max-width: 1920px;  width: 95%;  margin: auto;  height: 70px;  border-top: 1px solid #FFF;  padding: 50px 0;}#footerInner ul{  float: left;  font-size: 1rem;  line-height: 1.5;}#footerInner li a{color: #FF0000;}#footerInner li a:visited{color: #FF0000;}#footerInner .footerlogo_pc a{  float: right;}#footerInner .footerlogo_mb{  display: none;}#copyright{  width: 100%;  height: 60px;  background: #2E2E2E;  display: flex;  align-items: center;  justify-content: center;}#copyright p{text-align: center;font-size: 0.8rem;}}/*@media screen and (min-width: 768px) and (max-width: 1079px)*/@keyframes pathmove{0%{height: 0;top: 0;opacity: 0;}30%{height: 30px;opacity: 1;}100%{height: 0;top: 60px;opacity: 0;}}@keyframes slideAnime{	0%{opacity: 0;}	10%{opacity: 1;}	30%{opacity: 1;}	40%{opacity: 0;}	100%{opacity: 0;}}@keyframes DownAnime{0%{opacity: 1;transform: translateY(0);}100%{opacity: 1;transform: translateY(100px);}}@keyframes UpAnime{0%{opacity: 0;transform: translateY(100px);}100%{opacity: 1;transform: translateY(0);}}@keyframes pathmove{0%{height: 0;top: 0;opacity: 0;}30%{height: 30px;opacity: 1;}100%{height: 0;top: 60px;opacity: 0;}}@keyframes displayAnime{from{  opacity: 0;}to{  opacity: 1;}}@keyframes slideAnime{	0%{opacity: 0;}	10%{opacity: 1;}	30%{opacity: 1;}	40%{opacity: 0;}	100%{opacity: 0;}}@keyframes DownAnime{0%{opacity: 1;transform: translateY(0);}100%{opacity: 1;transform: translateY(100px);}}@keyframes UpAnime{0%{opacity: 0;transform: translateY(100px);}100%{opacity: 1;transform: translateY(0);}}