.content-text-div-button-mobile{
    display: none;
}
.content-text-div-button, .content-text-div-button-mobile{
    margin-left: auto;
    background-color: rgba(235, 121, 16, 1);
    padding: 10px 20px;
    font-size: 16px;
    color: white;
    border-radius: 5px;
    cursor: pointer;
}


.timeSlot {
    font-size: 1vw;
}


.paragraph-phone{
    padding-left: 15px;
}
.div-with-arrow-up{
    display: flex;
    padding-left: 18px;
}
.text-with-arrow-up{
    padding-left: 9px;
}
.custom-list-disc {
    list-style-type: disc;
    margin-left: 35px;
}

.custom-list-star {
    list-style-type: none;
    margin-left: 0px;
    padding-left: 0;
}

.custom-list-star li {
    position: relative;
    padding-left: 20px;
}

.custom-list-star li::before {
    content: '※ ';
    position: absolute;
    left: 0;
    top: 0;
}
.table-phone{
    display: none;
}
.title-border-under{
    border:1px solid #EB7910;
    width:80px;
}
.sticker{
    padding: 50px 0;
    max-width: 550px;
    width: 100%;
    background-color: white;
    text-align: center;
    font-family: "Hiragino Maru Gothic Pro", sans-serif;
    border-radius: 20px;
}
.sticker > .h1{
    font-size: 30px;
}
.sticker > .h2{
    font-size: 24px;
}
.sticker > .h3{
    font-size: 20px;
}
table{
    border-collapse:separate;
    border-spacing: 0 20px;
}
.secondary-text{
    font-size: 14px;
}
table > tbody > tr > th{
    width: 33%;
    vertical-align: top;
}
table > tbody > tr > td{
    font-size: 16px;
    font-weight: 400;
}
table > tbody > tr{
    margin-bottom: 30px;
}
.page-content {
    width: 100%;
    font-family: Helvetica;
}

.site-main {
    max-width: 1050px;
    width:100%;
    margin: auto;
    display: block;
}

.page-title {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    margin-bottom: 50px;
}

.title {
    font-family: "Hiragino Maru Gothic Pro", sans-serif;
    font-size: 24px;
    margin: 50px 0 10px 0;
}

.page-columns {
    display: flex;
}

.main-column {
    width: 67%;
}

.sidebar-column {
    width: 33%;
}

.upper-div, .lower-div {
    margin-bottom: 60px;
    background-color: rgba(243, 243, 243, 1);
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 50px 0;
    border-radius: 10px;
}
.content-text-div{
    max-width: 500px;
    width: 100%;
    word-break: break-word;
    text-align: left;
}

.content-text-div-title{
    display: flex;
    font-size: 20px;
    font-weight: 700;
    margin-bottom: 40px;
    align-items: center;
}
.orange-icon{
    margin-right: 30px;
}
.book_now_button, .return_form_button, .book_now_button:hover, .return_form_button:hover{
	text-align: center;
	background: orange;
	width: 30%!important;
	margin: 10px!important;
	padding: 10px;
	border-radius: 5px;
	color: white;
	font-weight: 600!important;
}
input, select{
    font-size: inherit!important;
}
.closed{
	display: none!important;
}
@media only screen and (max-width: 1050px) {
	#booking-package_calendarPage, #booking-package_inputFormPanel, .book_now_button, .return_form_button{
		font-size: 3.4vw!important;
	}
    .div-with-arrow-up{
        padding-left: 3.5vw;
    }
    .text-with-arrow-up{
        padding-left: 1.5vw;
    }
    .paragraph-phone{
        padding-left: 4vw;
    }
    .table-pc{
        display: none;
    }
    .table-phone{
        display: block;
    }
    .title{
        font-size: 4.4vw;
    }
    .title-border-under{
        border: 2px solid #EB7910;
        width: 10vw;
    }
    .sidebar-column{
        width: 100%;
        padding: 0 4vw 0 4vw;
        margin-top: 100px;
        margin-bottom: 100px;
    }
    .page-columns{
        display: block;
    }
    .main-column{
        width: 100%;
        padding: 0 4vw;
    }
    .content-text-div-title{
        font-size: 4.8vw;
        margin: 45px 0 70px 0;
    }
    .content-text-div-button {
        display: none;
    }
    .content-text-div-button-mobile {
        display: block;
        font-size: 4.4vw;
        width: 41vw;
        margin-bottom: 60px;
        font-weight: 700;
        padding: 20px 30px;
    }
    .content-text-div{
        max-width: 100%;
        padding: 0 4vw;
    }
    h2{
        font-size: 4.4vw;
        margin: 20px 0;
    }
    .paragraph{
        font-size: 3.9vw;
    }
    .secondary-text{
        font-size: 3.5vw;
    }
    .orange-icon{
        width: 2vw;
    }
    .sticker{
        max-width: 92%;
        margin: 70px 0 40px 0;
    }
    .h1, .h2, .h3{
        font-size: 3.9vw!important;
    }
    .custom-list-disc{
        margin-left: 7vw;
    }
    .custom-list-star li{
        padding-left: 4vw;
    }
	.selectedDate{
        font-size: 4.5vw!important;
    }
    .courseListPanel{
        margin-top: 2vw;
    }

	.remaining-count {
	  font-size: 4vw;
	  float: right;
	  margin-left: 10px;
	}
    .selectable_day_slot{
        font-size: 3.5vw;
    }
	.return_button{
		font-size: 4vw!important;
	}
	#booking_package_input_comment{
		min-height: 200px;
		font-size: 33.33px;
	}
}

#calendar-navigation {
    display: flex;
    justify-content: space-between; /* Align buttons to the left and right */
    margin-bottom: 20px;
}

#calendar-navigation button {
    position: relative;
    display: flex; /* Use flexbox for alignment */
    align-items: center; /* Center items vertically */
    justify-content: center; /* Center items horizontally */
    border: 2px solid #EB7910;
    border-radius: 100px;
    cursor: pointer;
    line-height: 20px;
    color: #fff;
    font-weight: bold;
    background: #EB7910;
    padding: 12px 40px; /* Adjust padding to account for the arrow */
    font-size: 20px;
    transition: background-color 0.3s ease, color 0.3s ease; /* Smooth transition for background and color */
}

#calendar-navigation button:hover {
    color: #EB7910;
    background: white;
}

/* Next button arrow */
#next-calendar::before {
    content: "";
    position: absolute;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 5px 0 5px 8px;
    border-color: transparent transparent transparent #ffffff;
    right: 15px; /* Position arrow on the right */
    top: 50%; /* Center vertically */
    transform: translateY(-50%); /* Adjust to align with text vertically */
    transition: all 0.3s ease;
}

/* Previous button arrow */
#prev-calendar::before {
    content: "";
    position: absolute;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 5px 8px 5px 0;
    border-color: transparent #ffffff transparent transparent;
    left: 15px; /* Position arrow on the left */
    top: 50%; /* Center vertically */
    transform: translateY(-50%); /* Adjust to align with text vertically */
    transition: all 0.3s ease;
}

/* Change arrow color on button hover */
#next-calendar:hover::before {
    border-color: transparent transparent transparent #EB7910; /* Arrow color changes to orange */
}

#prev-calendar:hover::before {
    border-color: transparent #EB7910 transparent transparent; /* Arrow color changes to orange */
}

#prev-calendar {
    margin-right: auto; /* Align "Previous" button to the left */
}

#next-calendar {
    margin-left: auto; /* Align "Next" button to the right */
}
	@media only screen and (min-width:1051px){
			.pc-none{
	display:none;
	}
	}




.guide-button{
    font-family: "Hiragino Maru Gothic Pro", sans-serif;
    cursor: pointer;
    text-decoration: underline;
    font-size: 16px;
    font-weight: 400;
    color: rgb(64, 64, 64)
}
.guide-button:hover{
    font-family: "Hiragino Maru Gothic Pro", sans-serif;
    cursor: pointer;
    text-decoration: underline;
    font-size: 16px;
    font-weight: 400;
    color: rgb(64, 64, 64)
}


@media only screen and (max-width: 1050px) {
    #calendar-navigation button {
        font-size: 4vw;
        padding: 3vw 5vw;
    }
    #next-calendar::before{
        border-width: 1.5vw 0 1.5vw 2vw;
    }
    #prev-calendar::before{
        border-width: 1.5vw 2vw 1.5vw 0;
    }
    .guide-button{
        font-size: 4vw;
    }
}

/* full‐page semi-transparent overlay */
#data-loading-overlay {
  position: fixed;
  top: 0; left: 0;
  width: 100%; height: 100%;
  background: rgba(255,255,255,0.8);
  display: none;              /* shown/hidden by JS */
  align-items: center;
  justify-content: center;
  z-index: 9999;
}
/* the spinning circle */
#data-loading-overlay .spinner {
  width: 64px; height: 64px;
  border: 8px solid transparent;
  border-top: 8px solid rgba(0,0,0,0.4);
  border-radius: 50%;
  animation: spin 1s linear infinite;
}
@keyframes spin {
  to { transform: rotate(360deg); }
}

#booking-package,
#scheduleMainPanel {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box;
  margin: 0 auto !important;
  padding: 0 !important;
  left: 0 !important;
  right: 0 !important;
  transform: none !important;
}

/* 1行全体をflexで制御 */
.selectable_time_slot > div {
    display: flex;
    justify-content: space-between; /* 左右に振り分け */
    align-items: center;            /* 上下中央揃え */
    width: 100%;
    padding: 0 4vw;
    box-sizing: border-box;
}

/* PC用（幅1051px以上）では余白を少なくする */
@media only screen and (min-width: 1051px) {
  .selectable_time_slot > div {
    padding: 0 2vw; /* PCは左右余白を少なめに */
  }
}

/* 時間のスタイル */
.selectable_time_slot .timeSlot {
    flex-shrink: 0;      /* 左端に固定 */
}

/* 残枠のスタイル */
.selectable_time_slot .remaining-count {
    flex-shrink: 0;      /* 右端に固定 */
    margin-left: auto;   /* 左側の余白で右端に寄せる */
    text-align: right;   /* 念のため右寄せ */
    white-space: nowrap; /* 改行を防ぐ */
}

.selectable_time_slot .timeSlot,
.selectable_time_slot .remaining-count {
    font-size: 4vw; /* モバイル時に li と同じ */
}

/* 必要ならPC用にメディアクエリで上限を調整 */
@media only screen and (min-width:1051px) {
	.selectable_time_slot .timeSlot,
	.selectable_time_slot .remaining-count {
		font-size: 16px; /* PCは16px固定 */
	}
}