@charset "utf-8";

/*------------------------------------------------*/
/*  template ver1.0  */
/*------------------------------------------------*/
/*  templatename [--]  */
/*  update []  */
/*  ID [NT]  */
/*------------------------------------------------*/

/*　#####　*/
/* -----------------------------------------------*/

/*　All Reset　*/
/* -----------------------------------------------*/
* {
color:#222222;
/*font-size:clamp(12px, 1.0vw, 15px);*/
letter-spacing:0px;
}
*:not(br) {
line-height:1.65;
}
*:focus {
outline:none;
}
h1,h2,h3,h4,h5,h6,p,ul,ol,li,dl,dt,dd {
margin:0;
padding:0;
font-weight:400;
word-break:break-all;
}
ul,li {
list-style:none;
}
input[type="button"],input[type="submit"] {
border-radius:0;
-webkit-appearance:none;
appearance:none;
}
input, select {
-moz-appearance:none;
-webkit-appearance:none;
appearance:none;
}
a {
color:#000000;
}
a:hover {
text-decoration:none;
}

/*　Base Set　*/
/* -----------------------------------------------*/
body {
margin:0;
padding:0;
font-family:"Zen Kaku Gothic New", sans-serif;
font-weight:400;
font-style:normal;
line-height:1.65;
background-color:#ffffff;
}
.fit {
width:100%;
height:100%;
position:absolute;
top:0; 
left:0;
}
.fit img,
.fit video {
width:100%;
height:100%;
object-fit:cover;
object-position:center center;
font-family:'object-fit: cover; object-position: center center;'
}
.clearfix {
display:block;
}
.clearfix:after {
content:"";
display:block;
clear:both;
} 
.clearfix:before {
content:"";
display:block;
clear:both;
}

/*　Wrapper　*/
/* -----------------------------------------------*/
.uniq-Wrapper {
margin:0px auto;
width:100%;
text-align:center;
position:relative;
}

/*　topentry　*/
/* -----------------------------------------------*/
.uniq-Wrapper.topentry {
width:100vw;
height:100vh;
display:flex;
align-items:center;
}
.uniq-Wrapper.topentry .uniq-vimage {
width:50%;
height:100%;
background-color:rgb(0,0,0,0.1);
position:relative;
overflow:hidden;
}
/* video を常に中央・全面フィット（cover） */
.uniq-Wrapper.topentry .uniq-vimage video {
position:absolute;
inset:0;
width:100%;
height:100%;
object-fit:cover;         /* 画面いっぱい、はみ出しはトリミング */
object-position:center;   /* 常に中央 */
display:block;
}
.uniq-Wrapper.topentry .uniq-entrylink {
width:50%;
}
.uniq-Wrapper.topentry .uniq-entrylink .uniq-title {
margin-bottom:50px;
}
.uniq-Wrapper.topentry .uniq-entrylink .uniq-title strong {
display:block;
color:rgb(0,0,0,0.8);
font-size:22px;
letter-spacing:0px;
font-family:"Cinzel", serif;
font-weight:600;
}
.uniq-Wrapper.topentry .uniq-entrylink .uniq-title span {
display:block;
color:rgb(0,0,0,0.3);
font-size:13px;
font-weight:bold;
}
.uniq-Wrapper.topentry .uniq-entrylink .uniq-buttonlink {
margin-bottom:50px;
}
.uniq-Wrapper.topentry .uniq-entrylink .uniq-buttonlink a {
padding:0px 30px;
display:inline-block;
color:rgb(255,255,255,1.0);
font-size:14px;
font-weight:bold;
line-height:50px;
text-decoration:none;
background-color:rgb(0,0,0,1.0);
border-radius:25px;
}
.uniq-Wrapper.topentry .uniq-entrylink .uniq-textlink a {
color:rgb(0,0,0,0.8);
font-size:13px;
}
.uniq-Wrapper.topentry .uniq-entrylink .uniq-text {
margin-top:20px;
}
.uniq-Wrapper.topentry .uniq-entrylink .uniq-text {
color:rgb(0,0,0,0.9);
font-size:14px;
}
.uniq-Wrapper.topentry .uniq-entrylink .uniq-text span {
color:rgb(0,0,0,0.9);
font-size:13px;
line-height:1.5;
}

.uniq-Container {
margin:0px auto;
width:100%;
/*overflow:hidden;*/
/*display:none;*/
}


/*　#######　*/
/* -----------------------------------------------*/
.calendar-controls {
    width: 100%;
    justify-content: space-between;
}
.calendar-controls .btn-group {
    background: rgb(0,0,0,0.2);
}
.calendar-controls .btn-group .btn {
    border: none;
}
.btn-secondary {
    color: #ffffff;
    font-size: 12px;
}
.btn-primary {
    color: #ffffff;
    font-size: 12px;
    background: rgb(0,0,0,0.8);
}
.btn-outline-primary {
    color: rgb(0,0,0,0.8);
    font-size: 12px;
}
.btn.disabled, .btn:disabled, fieldset:disabled .btn {
    color: rgb(0,0,0,0.6);
}
.btn-primary:hover,
.btn-outline-primary:hover {
    background: rgb(0,0,0,0.8);
}
.calendar-cell.header {
    background: #000000;
    color: #fff;
    font-size: 12px;
    font-weight: bold;
    border-color: none;
}
.calendar-cell.header span {
    color: #fff;
    font-size: 11px;
    font-weight: bold;
}
.calendar-header-month {
    margin-bottom: 0px;
    margin-top: 2px;
    display: inline-block;
}
.calendar-cell.header.day-saturday {
    background-color:rgb(0,0,0,0.3);
}
.calendar-cell.header.day-sunday {
    background-color:rgb(0,0,0,0.3);
}
.calendar-cell.time {
    background-color:rgb(0,0,0,0.8);
    color: #fff;
    font-size: 12px;
    font-weight: bold;
    border-color: none;
}
.calendar-grid {
    gap: 1px;
    background: #ffffff;
    border: 1px solid #ffffff;
}
.calendar-cell.past,
.calendar-cell.available {
    margin: 7px 7px;
    border-radius: 6px;
    box-shadow:
    0 2px 6px rgba(0, 0, 0, 0.08);
    transition:
    transform 220ms cubic-bezier(0.2, 0.8, 0.3, 1),
    box-shadow 220ms cubic-bezier(0.2, 0.8, 0.3, 1);
}
.calendar-cell.past span,
.calendar-cell.available div {
    font-size: 13px;
}
.calendar-cell.available {
    background-color:rgb(0,0,0,0.6);
    color: #ffffff;
    border-color: #E7E5DF;
}
.calendar-cell.available:hover {
    background-color:rgb(0,0,0,0.8);
}
.calendar-slot-indicator.available {
    color: #ffffff;
    font-weight: bold;
}
.uniq-calendar-slot-indicator {
    color: #ffffff;
    font-weight: bold;
}
.uniq-header {
text-align: center;
position: relative;
background-color: #e5e5e5 !important;
}
.uniq-corner {
color: rgb(0,0,0,0.5);
font-size: 12px !important;
font-weight: bold;
line-height: 25px;
}
.uniq-calendar-header-month {
margin-right: 1px;
display: inline-block;
font-size: 12px;
font-weight: bold;
}
.uniq-calendar-header-day {
display: inline-block;
font-size: 12px;
font-weight: bold;
}
.uniq-time {
font-size: 12px !important;
font-weight: bold;
text-align: right;
line-height: 38px;
background-color: #e5e5e5 !important;
}

.modal-body {
    padding: 50px 50px;
    z-index: 100;
    font-size: 13px;
}
.modal-body input,
.modal-body button {
    font-size: 13px;
}
.modal-content .btn-primary {
    border: none;
}

.modal-header {
    background-color:rgb(0,0,0,0.1);
}
.modal-title {
    color: rgb(0,0,0,0.8);
    font-size: 14px;
    font-weight: bold;
}
.alert-primary,
.alert-info {
    text-align: center;
    border: none;
    background-color:rgb(0,0,0,0.1);
}
.alert-primary strong {
    display: block;
    font-size: 13px;
    font-weight: bold;
}
.alert-primary span {
    display: block;
    font-size: 16px;
    font-weight: bold;
}


/* =========================================
   uniq-calendar 基本構造
========================================= */

/* ★修正：画面高 - ヘッダー - フッターで可変。最小400px */
:root{
  --uniq-header-h: 150px;      /* 要望：ヘッダー150px確保 */
  --uniq-footer-h: 90px;       /* 要望：フッター90px程度確保 */
  --uniq-maxw: 900px;

  /* 画面の余白（containerのpyやheader-spacer等で微調整用） */
  --uniq-page-gap: 40px;

  --uniq-border: rgba(0,0,0,0.08);
  --uniq-text: rgba(0,0,0,0.78);
  --uniq-text-soft: rgba(0,0,0,0.55);
}

.uniq-calendar-wrapper{
  /* ★可変高さ：環境によって変動 */
  height: calc(100svh - var(--uniq-header-h) - var(--uniq-footer-h) - var(--uniq-page-gap));
  min-height: 400px;            /* ★最小縦幅400pxを保証 */

  overflow: auto;               /* 縦横スクロール */
  -webkit-overflow-scrolling: touch;
  /*border: 1px solid rgba(0,0,0,0.08);
  background: #fff;*/
}

.uniq-calendar-grid{
  display: grid;
  position: relative;
}

/* セル共通 */
.uniq-calendar-cell{
  padding: 10px 8px;
  min-height: 44px;
  box-sizing: border-box;
  background: #fff;
  border-right: 1px solid rgba(0,0,0,0.06);
  border-bottom: 1px solid rgba(0,0,0,0.06);
  font-size: 14px;
}

/* ヘッダー系（※カレンダー内のヘッダーセル用） */
.uniq-header{
  font-weight: 600;
  background: #fff;
}

.uniq-time{
  font-weight: 600;
  white-space: nowrap;
}

/* =========================================
   sticky 固定（ブレークポイント無しで常時ON）
========================================= */

/* 上：日付ヘッダー */
.uniq-col-header{
  position: sticky;
  top: 0;
  z-index: 20;
  background: #fff;
  box-shadow: 0 2px 6px rgba(0,0,0,0.06);
}

/* 左：時間軸 */
.uniq-row-header{
  position: sticky;
  left: 0;
  z-index: 15;
  background: #fff;
  box-shadow: 2px 0 6px rgba(0,0,0,0.06);
}

/* 左上：時間ヘッダー（最前面） */
.uniq-corner{
  position: sticky;
  top: 0;
  left: 0;
  z-index: 30;
  background: #fff;
  box-shadow:
    2px 0 6px rgba(0,0,0,0.06),
    0 2px 6px rgba(0,0,0,0.06);
}

/* =========================================
   状態表示（任意）
========================================= */
.uniq-available{
  cursor: pointer;
  text-align: center;
}

.uniq-past{
  background: #fafafa;
  text-align: center;
}

.uniq-calendar-slot-indicator{
  font-size: 16px;
}

/* =========================================
  uniq site header (calendarと衝突しない版)
========================================= */

/* ---------- Site Header ---------- */
.uniq-site-header{
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: var(--uniq-header-h);
  z-index: 50;

  background: linear-gradient(180deg, #ffffff 0%, #f3f4f6 100%);
  border-bottom: 1px solid var(--uniq-border);
  box-shadow: 0 8px 22px rgba(0,0,0,0.06);
  backdrop-filter: blur(6px);
}

.uniq-site-header__inner{
  height: 100%;
  max-width: var(--uniq-maxw);
  margin: 0 auto;
  padding: 10px 16px;

  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
}

.uniq-site-header__side{
  min-width: 1px;
}

.uniq-site-header__brand{
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  color: var(--uniq-text);
  gap: 4px;
}

.uniq-site-header__logo{
  margin-top: -7px;
  display: block;
  height: 85px;
  width: auto;
  object-fit: contain;
  filter: drop-shadow(0 6px 16px rgba(0,0,0,0.10));
}
.uniq-site-header__subtitle {
  margin-top: -5px;
  text-align: center;
}
.uniq-site-header__subtitle strong {
  display: block;
  color: rgba(0,0,0,0.8);
  font-size: 15px;
  letter-spacing: 0px;
  font-family: "Cinzel", serif;
  font-weight: 600;
  line-height: 1.5;
}
.uniq-site-header__subtitle span {
  display: block;
  color: rgb(0,0,0,0.3);
  font-size: 13px;
  font-weight: bold;
  line-height: 1.5;
}

/* ヘッダー固定分の押し下げ */
.uniq-site-header-spacer{
  height: var(--uniq-header-h);
}

/* ---------- Footer ---------- */
.uniq-footer{
  margin-top: 28px;
  padding: 18px 0 26px;
  border-top: 1px solid rgba(0,0,0,0.10); /* うっすら仕切り線 */
  background: transparent;

  /* ★「90px程度確保」の意図：最低限これくらいの占有はする */
  min-height: var(--uniq-footer-h);
}

.uniq-footer__inner{
  max-width: var(--uniq-maxw);
  margin: 0 auto;
  padding: 0 16px;
  text-align: center;
}

.uniq-footer__nav{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-size: 12px;
  color: rgba(0,0,0,0.45);
}

.uniq-footer__link{
  color: rgba(0,0,0,0.50);
  text-decoration: none;
  transition: opacity .15s ease;
}

.uniq-footer__link:hover{
  opacity: 0.75;
  text-decoration: underline;
}

.uniq-footer__sep{
  color: rgba(0,0,0,0.30);
}

/* =========================================
   Small screens
========================================= */
@media (max-width: 700px) {
.uniq-Wrapper.topentry {
display:block;
}
.uniq-Wrapper.topentry .uniq-vimage {
width:100%;
height:30vh;
position: relative;
}
.uniq-Wrapper.topentry .uniq-vimage:after {
content: "";
width: 100%;
height: 5px;
background-color: rgb(255,255,255,1.0);
position: absolute;
bottom: 0px;
left: 0px;
z-index: 5;
}
.uniq-Wrapper.topentry .uniq-entrylink {
width:100%;
height:60vh;
display: flex;
flex-wrap: wrap;
align-items: center;
align-content: center;
}
.uniq-Wrapper.topentry .uniq-entrylink .uniq-entrybox {
width:100%;
}
.uniq-Wrapper.topentry .uniq-entrylink .uniq-text {
width:100%;
}
}
@media (max-width: 992px) {
.uniq-header {
padding: 10px 8px 5px 8px;
}
.uniq-calendar-header-month {
margin-right: 0px;
padding: 2px 3px;
color: #ffffff;
font-size: 10px;
line-height: 1.3;
background-color:rgb(0,0,0,0.5);
border-radius: 3px;
position: absolute;
top: 3px;
left: 3px;
}
.uniq-calendar-header-day {
padding: 10px 0px 0px 0px;
line-height: 1.5;
}
}
@media (max-width: 420px){
  /* ★SPではヘッダーを小さく。フッターも少し小さめにしてOK */
  :root{
    --uniq-header-h: 130px;
    --uniq-footer-h: 70px;
    --uniq-page-gap: 28px;
  }

  /* ★ここ、あなたの元CSSだと uniq-header__logo になっていて存在しないため修正 */
  .uniq-site-header__logo{ height: 65px; }
  .uniq-site-header__subtitle{ font-size: 12px; }

.modal-body {
    padding: 20px 20px;
}

}



/* =========================================
   iOSの入力フォーカス時ズーム防止（重要）
   ※input/textarea/select の font-size を 16px 以上にする
========================================= */

/* モーダル内の入力欄（予約フォーム） */
.modal-body input,
.modal-body select,
.modal-body textarea{
  font-size: 16px !important;   /* ←これがズーム防止の本体 */
  line-height: 1.4;
}

/* ついでに、Bootstrapのform-controlにも確実に効かせる */
.modal-body .form-control,
.modal-body .form-select{
  font-size: 16px !important;
}

/* ボタンはズーム原因ではないが、統一したければ */
.modal-body button,
.modal-body .btn{
  font-size: 14px; /* ここは16pxにしなくてOK */
}

/* 420px以下でも強制的に16pxを維持（あなたのSP設定より後に置く） */
@media (max-width: 420px){
  .modal-body input,
  .modal-body select,
  .modal-body textarea,
  .modal-body .form-control,
  .modal-body .form-select{
    font-size: 16px !important;
  }
}


.btn.disabled, .btn:disabled {
background-color: rgb(0,0,0,0.3) !important;
}
