@charset "utf-8";
/* CSS Document */

/*------------------------------------------------------

	リセット

------------------------------------------------------*/

html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	font-size: 100%;
	font-style: normal;
	font-weight: 500;
	vertical-align: baseline;
	background: transparent;
}
body { line-height: 1;}
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display: block;}
ul { list-style: none;}
blockquote, q { quotes: none;}
blockquote:before, blockquote:after, q:before, q:after { content: ''; content: none;}
a {
	margin: 0;
	padding: 0;
	font-size: 100%;
	vertical-align: baseline;
	background: transparent;
}
/*table { border-collapse: collapse; border-spacing: 0;}*/
hr {
	display: block;
	height: 0px;
	border: 0;
	border-bottom: 1px solid #4d4d4d;
	margin: 0;
	padding: 0;
}
input, select { vertical-align: middle;}
img {
	max-width: 100%;
	height: auto;
	border: none;
	vertical-align: top;
	-webkit-backface-visibility: hidden;
	image-rendering: -webkit-optimize-contrast;
}
*, *:before, *:after { box-sizing: border-box;}

/*------------------------------------------------------

	グローバル

------------------------------------------------------*/

body {
	font-family: "Hiragino Maru Gothic W4 JIS2004", "游ゴシック", YuGothic, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "Helvetica Neue", Helvetica, Arial, sans-serif;
	color: #333333;
	font-size: 1em;
	line-height: 1.8;
	position: relative;
	min-width: 1030px;
}

p { margin-bottom: 25px;}
p:last-child { margin-bottom: 0px;}

a { color: #333333; text-decoration: none;}
a:hover, a:active { color: #0074d6;}

table{
  text-align: center;
  margin: auto;
  width: 50%;
}

caption {
  font-weight: bold;
  caption-side: bottom; /* 下 */
  text-align: left; /* 左 */
}

figcaption {
	font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
	font-weight: bold;
}

/* 文字装飾 */
.fo06 { font-size: 0.6em !important;}
.fo07 { font-size: 0.7em !important;}
.fo075 { font-size: 0.75em !important;}
.fo08 { font-size: 0.8em !important;}
.fo085 { font-size: 0.85em !important;}
.fo0875 { font-size: 0.875em !important;}
.fo09 { font-size: 0.9em !important;}
.fo0938 { font-size: 0.938em !important;}
.fo11 { font-size: 1.1em !important;}
.fo1125 { font-size: 1.125em !important;}
.fo115 { font-size: 1.15em !important;}
.fo1188 { font-size: 1.188em !important;}
.fo12 { font-size: 1.2em !important;}
.fo125 { font-size: 1.25em !important;}
.fo13 { font-size: 1.3em !important;}
.fo1375 { font-size: 1.375em !important;}
.fo14 { font-size: 1.4em !important;}
.fo15 { font-size: 1.5em !important;}
.fo16 { font-size: 1.6em !important;}
.fo17 { font-size: 1.7em !important;}
.fo18 { font-size: 1.8em !important;}
.fo1875 { font-size: 1.875em !important;}
.fo20 { font-size: 2.0em !important;}
.fo2125 { font-size: 2.125em !important;}
.fo25 { font-size: 2.5em !important;}

/* 文字装飾(ピクセル指定) */
.pxfo10 {font-size: 10px!important;}
.pxfo11 {font-size: 11px!important;}
.pxfo12 {font-size: 12px!important;}
.pxfo13 {font-size: 13px!important;}
.pxfo14 {font-size: 14px!important;}
.pxfo15 {font-size: 15px!important;}
.pxfo16 {font-size: 16px!important;}
.pxfo17 {font-size: 17px!important;}
.pxfo18 {font-size: 18px!important;}
.pxfo22 {font-size: 22px!important;}
.pxfo28 {font-size: 28px!important;}

.lh12 { line-height: 1.2;}
.lh14 { line-height: 1.4;}
.lh16 { line-height: 1.6;}
.lh18 { line-height: 1.8;}
.lh20 { line-height: 2;}
.lh23 { line-height: 2.3;}

.ls02 { letter-spacing: 0.2em;}

.fo_noto { font-family: 'Noto Sans JP', sans-serif;}

.fo_white { color: #FFFFFF;}
.fo_blue { color: #0081C0;}
.fo_indigo { color: #010066;}

/* ボックス */
.container { max-width: 1230px; padding: 0px 15px; margin: 0px auto;}

.left { float: left;}
.right { float: right;}

.pos_rel { position: relative;}
.pos_ab { position: absolute;}

.bold { font-weight: bold;}

.ta_center { text-align: center;}
.ta_right { text-align: right;}
.ta_left { text-align: left;}
.ta_right-s_center { text-align: right;}
.ta_left-s_center { text-align: left;}

.back_white { background-color: #fff !important;}

@media (min-width: 861px) {
	.hidden_l { display: none !important;}
}

/* リスト */
ol { padding-left: 2em;}
ol li { list-style: outside decimal;}

.list_indent { padding-left: 1em;}
.list_indent li { text-indent: -1em;}

.list_disc { padding-left: 1em;}
.list_disc li { list-style: outside disc;}

/* margin */
.mb00 { margin-bottom: 0px !important;}
.mb05 { margin-bottom: 5px !important;}
.mb10 { margin-bottom: 10px !important;}
.mb15 { margin-bottom: 15px !important;}
.mb20 { margin-bottom: 20px !important;}
.mb25 { margin-bottom: 25px !important;}
.mb29_63 { margin-bottom: 29.63px !important;}
.mb30 { margin-bottom: 30px !important;}
.mb38 { margin-bottom: 38px !important;}
.mb40 { margin-bottom: 40px !important;}
.mb42 { margin-bottom: 42px !important;}
.mb46 { margin-bottom: 46px !important;}
.mb50 { margin-bottom: 50px !important;}
.mb53 { margin-bottom: 53px !important;}
.mb60 { margin-bottom: 60px !important;}
.mb80 { margin-bottom: 80px !important;}
.mb90 { margin-bottom: 90px !important;}
.mb129 { margin-bottom: 129px !important;}
.mb145 { margin-bottom: 145px !important;}
.mb190 { margin-bottom: 190px !important;}
.mb234 { margin-bottom: 234px !important;}

.mb40-20 { margin-bottom: 40px !important;}
.mb60-30 { margin-bottom: 60px !important;}
.mb80-40 { margin-bottom: 80px !important;}
.mb100-60 { margin-bottom: 100px !important;}
.mb120-60 { margin-bottom: 120px !important;}
.mb160-80 { margin-bottom: 160px !important;}

.mt9 {margin-top: 9px !important;}
.mt10 {margin-top: 10px !important;}
.mt13 {margin-top: 13px !important;}
.mt15 {margin-top: 15px !important;}
.mt20 {margin-top: 20px !important;}
.mt28 {margin-top: 28px !important;}
.mt33 {margin-top: 33px !important;}
.mt40 {margin-top: 40px !important;}
.mt50 {margin-top: 50px !important;}
.mt52 {margin-top: 52px !important;}
.mt100 {margin-top: 100px !important;}
.mt120 {margin-top: 120px !important;}
.mt-271{margin-top: -413px !important;}

.ml10{margin-left: 10px !important;}
.ml20{margin-left: 20px !important;}
.ml45{margin-left: 45px !important;}
.ml60{margin-left: 60px !important;}
.ml140{margin-left: 140px !important;}
.mr280{margin-right: 280px !important;}

/* padding */
.pb20 {padding-bottom: 20px!important;}
.pb40 {padding-bottom: 40px!important;}
.pb50 {padding-bottom: 50px!important;}
.pb99 {padding-bottom: 99px!important;}
.pb120 {padding-bottom: 120px!important;}

.pt10 {padding-top: 10px!important;}
.pt13 {padding-top: 13px!important;}
.pt20 {padding-top: 20px!important;}
.pt30 {padding-top: 30px!important;}
.pt33 {padding-top: 33px!important;}
.pt40 {padding-top: 40px!important;}
.pt50 {padding-top: 50px!important;}
.pt52 {padding-top: 52px!important;}

.pl05{padding-left: 5px!important;}
.pl20{padding-left: 20px!important;}
.pl2em{padding-left: 2em!important;}

.pr100{padding-right: 100px!important;}
.pr300{padding-right: 300px!important;}

/* ヘッダー */
header {
    background: linear-gradient(135deg, #ff8c00, #ff6f00);
    color: white;
    padding: 0.8em 0;
    text-align: center;
    border-radius: 8px;
    width: 90%;
    margin: 10px auto;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* ヘッダー内のタイトル */
header h1 {
    font-size: 1.8em;
    font-weight: bold;
    font-family: 'Roboto', sans-serif;
    margin: 0;
    text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.2);
    letter-spacing: 0.05em;
}

/* レスポンシブ調整 */
@media (max-width: 768px) {
    header {
        padding: 0.5em 0;
    }
    header h1 {
        font-size: 1.6em;
    }
}

/*------------------------------------------------------
	メイン
------------------------------------------------------*/
main {
    max-width: 500px; /* 最大幅を500pxに縮小 */
    width: 90%; /* 幅をやや狭める */
    margin: 10px auto 20px; /* 上下の余白を調整 */
    background-color: white;
    padding: 15px; /* 内側の余白を減らす */
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); /* シャドウを軽めに */
}

/* ラベルと入力フィールド */
label {
    display: block;
    margin-top: 8px; /* 上の余白を減らす */
    font-weight: bold;
    color: #555;
}

input[type="text"], 
input[type="tel"], 
input[type="email"], 
select {
    width: 100%;
    padding: 8px; /* パディングを調整 */
    margin-top: 4px;
    margin-bottom: 10px; /* 下の余白を減らす */
    border: 1px solid #ccc;
    border-radius: 4px;
}

/* ボタンスタイル */
button {
    width: 100%;
    background-color: #ff8c00;
    color: white;
    padding: 10px; /* パディングを少し減らす */
    border: none;
    border-radius: 4px;
    font-size: 1em; /* フォントサイズを調整 */
    cursor: pointer;
    margin-top: 10px;
}

button:hover {
    background-color: #e07b00;
}

/* カレンダーのスタイル */
#calendar-table {
    margin-top: 15px; /* 上下の余白を減らす */
    margin-bottom: 15px;
    width: 100%;
    overflow-x: auto;
}

/* テーブル全体 */
table {
    width: 100%;
    border-collapse: collapse;
}

th, td {
    border: 1px solid #ddd;
    padding: 8px; /* パディングを減らす */
    text-align: center;
}

th {
    background-color: #f4f4f4;
    font-weight: bold;
}

/* 見出し */
#step1 h2, #step2 h2 {
    font-weight: bold;
    font-size: 1.2em; /* フォントサイズを微調整 */
    font-family: 'Noto Sans JP', sans-serif;
    margin-bottom: 8px; /* 見出し下の余白を調整 */
    text-align: center; /* 中央配置 */
}


/* 予約可否のスタイル */
.available {
    background-color: #d4f4dd;
    cursor: pointer;
}

.available:hover {
    background-color: #bceec5;
}

.unavailable {
    background-color: #e0e0e0;
    color: #999;
    cursor: not-allowed;
}

.unavailable:hover {
    background-color: #e0e0e0; /* ホバーしても色が変わらない */
}

/* フッター */
footer {
    text-align: center;
    font-size: 0.8em;
    color: #777;
	margin-bottom: 20px
}

/* カレンダーボタンのスタイル */
#calendar-controls {
    display: flex;
    justify-content: center;
    gap: 100px;
    margin-bottom: 20px;
}

.calendar-btn {
    background-color: #ff8c00;
    color: white;
    padding: 8px 12px;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    gap: 10px;
    transition: background-color 0.3s, box-shadow 0.3s;
	font-size: 0.9em;
	font-weight: bold;
	text-align: center;
	position: relative;
}

.calendar-btn:hover {
    background-color: #e07b00;
    box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.2);
}

.calendar-btn:active {
    background-color: #d06c00;
    box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.2);
}

.calendar-btn:focus {
    outline: none;
    box-shadow: 0 0 0 4px rgba(255, 140, 0, 0.4);
}

#prevWeek::before{
  content: '';
  width: 0.8em;
  height: 0.8em;
  border: 0;
  border-top: solid 2px white;
  border-left: solid 2px white;
  transform: rotate(-45deg);
  position: absolute;
  top: 0;
  left: 2.0em;
  bottom: 0;
  margin: auto;
}

#nextWeek::after{
  content: '';
  width: 0.8em;
  height: 0.8em;
  border: 0;
  border-top: solid 2px white;
  border-left: solid 2px white;
  transform: rotate(135deg);
  position: absolute;
  top: 0;
  left: 80%;
  bottom: 0;
  /*right: 0;*/
  margin: auto;
}

/*------------------------------------------------------
	サンクスページ
------------------------------------------------------*/
.page_close{ color: #0074d6;}
.page_close:hover{text-decoration: underline;}