@charset "UTF-8";/* CSS Document */@media screen and (max-width: 767px){body{  background-color: #000;  font-size: 30px;  color: #FFF;  max-width: 1920px;  margin: 0 auto;  padding: 0;  font-family: "Noto Sans JP", sans-serif;}a{  color: #FFF;  text-decoration: none;  transition: all 0.2s ease;}a:visited{  color: #FFF;}p{margin: 0;}ul{  padding: 0;  margin: 0;  list-style: none;}h1,h2,h3{margin: 0;}h1,h2,h3{margin: 0;}/*header*/header{  max-width: 1920px;  width: 100%;  height: 60px;  background: #000;  position: fixed;  z-index: 980;  transition: 0.4s;}header.invert{  box-shadow: 0px 1px 6px 0px #2E2E2E;  transition: 0.4s;}#headerInner{  margin: 0 auto;  max-width: 1920px;  width: 95%;  height: 60px;  display: flex;  align-items: center;}.menuInner{display: none;}.logo_pc{display: none;}.logo_mb a{  display: flex;  justify-content: center;  align-items: center;  height: 60px;}.logo_mb img{width: 100%;}#headermenu{display: none;}main{padding-top: 60px;}.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: 8%;}.menuboard.active{  opacity: 1;  visibility: visible;}.menuboard li{  font-size: 14pt;  margin: 3% 0 3% 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: 60px;color: #000;}#mainphoto{  width: 100%;  margin-bottom: 50px;  height: calc(30vh - 60px);  background-repeat: no-repeat;  background-size: cover;  position: relative;}.mainslide{  width: 100%;  height: calc(30vh - 60px);  position: absolute;  background-image: url("../../img/FuTfeTNaIAI1qX3.jpg");  background-size: cover;  top: 0;  left: 0;}.title{  position: absolute;  display:flex;  width: 100%;  height: calc(30vh - 60px);  background: rgba(000,000,000,0.7);  justify-content: center;  align-items: center;  z-index: 500;}.title h1{  font-size: clamp(20px,2.6vw,50px);  font-weight: 600;  line-height: 2;  color: #FFF;  text-align: left;}.caption{  text-align: center;  font-size: 1.2rem;  line-height: 2;  font-weight: 600;  color: #FFF;}.subcaption{  text-align: center;  font-weight: 600;  color: #FFF;  font-size: clamp(14px,1.3vw,18px);}.schedule-section{margin-top: 30px;}/*レスポンシブ対応*/    .month-navigation {        font-size: 0.8em;        flex-direction: column; /* 狭い画面では縦並びも考慮 */        align-items: flex-start;    }    .nav-link {        margin-bottom: 5px;    }    .schedule-table th,.schedule-table td {        padding: 8px;    }    .day-number {        font-size: 0.9em;    }    .event-link, .event-details {        font-size: 0.7em;    }.schedule-container a{color: #297201;text-decoration: none;}.schedule-container a:visited{color: #297201;}.schedule-container {    max-width: 700px; /* 画像の幅に合わせるか、適宜調整 */    margin: 0 auto;    background-color: #fff;    border: 1px solid #ddd;    box-shadow: 0 0 10px rgba(0,0,0,0.1);}.schedule-header {    padding: 15px 20px;    background-color: #f9f9f9;    border-bottom: 1px solid #ddd;}.schedule-header h1 {    margin: 0 0 10px 0;    font-size: 1.2em;    color: #555;    font-weight: normal;}.month-navigation {    display: flex;    justify-content: space-between;    font-size: 0.6em;}.nav-link {    color: #007bff;    text-decoration: none;    padding: 5px 0;}.nav-link:hover {    text-decoration: underline;}.schedule-table {    width: 100%;    border-collapse: collapse;}.schedule-table th,.schedule-table td {    padding: 10px 12px;    text-align: left;    border-bottom: 1px solid #eee; /* 画像では線が薄いか無いように見える部分もあるので調整 */}.schedule-table th {    background-color: #f0f0f0;    font-weight: bold;    color: #666;    font-size: 0.6em;    text-transform: uppercase;}/* 列の幅の調整 */.col-day {    width: 25%; /* 日付列の幅 */}.col-cast {    width: 75%; /* キャスト列の幅 */}.date-cell {    vertical-align: top; /* セルの内容を上揃え */}.day-number {    font-size: 0.9em;    font-weight: bold;    margin-right: 8px;    color: #333;}.day-name {    font-size: 0.7em;    color: #777;    text-transform: capitalize; /* 例: thu -> Thu */}/* 曜日ごとのスタイル (画像から特定の色は判別しにくいので汎用的なもの) */.saturday .day-name,.saturday .day-number {    color: #007bff; /* 土曜日の文字色 (例: 青) */}.sunday .day-name,.sunday .day-number {    color: #dc3545; /* 日曜日の文字色 (例: 赤) */}.cast-cell {    vertical-align: top;}.event-link {    font-weight: bold;    display: block; /* リンクを行全体に広げたい場合 */    margin-bottom: 3px; /* 詳細がある場合に少しスペースを空ける */}.event-link:hover {    text-decoration: underline;}.event-details {    font-size: 0.7em;    color: #555;    display: block; /* 複数行になることを想定 */    line-height: 1.4;}/* 最終行の下線を濃くする (オプション) */.schedule-table tbody tr:last-child td {    border-bottom: 1px solid #ddd;}/* ページ全体のコンテナ */.page-container {    display: flex;    flex-direction: column; /* スケジュールとフォームを縦に並べる */    gap: 30px; /* セクション間のスペース */    max-width: 960px; /* ページ全体の最大幅 */    margin: auto;    padding: 0 15px; /* 左右のパディング */}/* スケジュールセクションとフォームセクションの共通スタイル */.schedule-section,.reservation-form-container {    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: 1em;    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;}.important-notice p {    color: #FF0000;    text-align: center;    margin: 0 0 0.3em;    font-size: 0.6em;}.important-notice ul {    margin-bottom: 0;    font-size: 0.5em;}.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.6em;    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: 0.5em;}.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.5em;    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: 8px 25px;    border: none;    border-radius: 4px;    font-size: 0.7em;    cursor: pointer;    transition: background-color 0.2s ease-in-out;}/* First Name と Last Name を横並びにする特別な対応 (グリッドが1列前提の簡易対応) *//* より複雑なレイアウトはHTML構造かGridの列指定を工夫 */.form-group-name {    display: inline-block; /* 親が1列のグリッドなので、これだけでは横並びにならない */}.form-group-name:nth-of-type(odd) { /* First Name */   margin-right: 20px; /* gapの代わり */}/* 上記の横並びは、親要素を .form-row { display: flex; gap: 20px; } のようにして、   その中に .form-group を入れる方がより現代的です。   ここでは既存の .form-grid (1列) を維持しつつ、部分的に対応する形にしています。   完全な2列にするにはHTMLの form-grid の部分で調整するか、   .form-group-name の親に display: grid; grid-template-columns: 1fr 1fr; gap: 20px;   のようなラッパーを追加するのが望ましいです。   今回のコードでは、HTMLのform-group-nameの配置で対応しています。*//* 実際にはform-gridで列を定義する方が良い例 *//*.form-grid {    display: grid;    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); // レスポンシブな列    grid-template-areas: // 必要ならエリア定義        "header header"        "day time"        "people people"        "fname lname"        "email phone"        "message message"        "submit submit";    gap: 20px;}.form-group-reservation-day { grid-area: day; }.form-group-time { grid-area: time; }...など*//* 画像のフォームは単純な縦積みなので、今のCSSでも十分かもしれません。   First/Last Name のみ横並びに見えるので、そこだけ対処します。 */#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: 10px;    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: 30px;    height: 30px;    border: 1px solid #FFF;    transition: all 0.3s;}#page-top a span{  position: absolute;  top: 12px;  left: 8px;  width: 12px;  height: 12px;  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: 120px;}#footerInner{  max-width: 1920px;  width: 95%;  margin: auto;  border-top: 1px solid #FFF;  padding: 20px 0;}#footerInner ul{  font-size: 0.6rem;  line-height: 1.5;  padding-bottom: 15px;}#footerInner li a{color: #FF0000;}#footerInner li a:visited{color: #FF0000;}#footerInner .footerlogo_pc{  display: none;}#footerInner .footerlogo_mb a{  padding-bottom: 15px;}#copyright{  width: 100%;  height: 30px;  background: #2E2E2E;  display: flex;  align-items: center;  justify-content: center;}#copyright p{text-align: center;font-size: 0.6rem;}}/*@media screen and (max-width: 767px)*/@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);}}