@charset "utf-8";
/**********************************************************
カレンダー
***********************************************************/
.fc-view, .fc-view>table {
  z-index: 0;
}

/* エラー表示 */
.with-errors {
  margin: 8px 0 0;
  padding-top: 16px;
}

/* 外枠 */
.panel_container {
  width: 100%;
}
.panel-group {
  margin: 0;
}
.panel-group .panel {
  border:none;
  border-radius: none !important;
  box-shadow: none;
}
.panel-body {
  padding: 0;
}
.panel-body .fc {
  margin: 0;
}
.fc-day-grid-container {
  margin: 0;
  overflow: hidden !important;
}
.fc-basic-view .fc-body .fc-row {
  min-height: 1px;
  height: 40px !important;
}
@media screen and (max-width: 767px) {
  .fc-basic-view .fc-body .fc-row {
    height: 40px !important;
  }
}
.fc-basic-view.withIcons .fc-body .fc-row {
  min-height: 1px;
  height: 48px !important;
}
@media screen and (max-width: 767px) {
  .fc-basic-view.withIcons .fc-body .fc-row {
    height: 53px !important;
  }
}

/* ヘッダー調整 */
.fc-toolbar.fc-header-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0;
}
.fc-left {
  order: 1;
}
.fc-center {
  order: 2;
  display: flex !important;
  justify-content: center;
  width: 100%;
}
.fc-center h2 {
  font-size: 20px;
}
.fc-right {
  order: 3;
}

/* 次月 前月 */
.fc button {
  width: 40px;
  height: 40px;
  color: #333333;
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  box-shadow: none;
  border-radius: 50%;
}
.fc button:hover,
.fc button:active {
  background: none;
}
.enableHover .fc button:hover {
  background: rgba(0, 0, 0, 0.05);
  border-radius: 50%;
}
.fc .fc-left.-disabled button,
.fc .fc-right.-disabled button {
  color: #cccccc;
}
.enableHover .fc .fc-left.-disabled button:hover,
.enableHover .fc .fc-right.-disabled button:hover {
  background: none;
  cursor: default;
}

/* テーブルの見た目調整 */
.fc td,
.fc th {
  border: none;
}
.fc-row .fc-content-skeleton {
  padding-bottom: 0;
  pointer-events: none;
}
.fc-bg td,
.fc-content-skeleton td {
  text-align: center;
  vertical-align: middle;
  height: 40px;
  border-radius: 6px;
}
.withIcons .fc-bg td,
.withIcons .fc-content-skeleton td {
  height: 48px;
}
@media screen and (max-width: 767px) {
  .withIcons .fc-bg td,
  .withIcons .fc-content-skeleton td {
    height: 53px;
  }
}
.fc-content-skeleton tbody {
  display: none;
}

/* 日付を左右中央に配置 */
.fc-ltr .fc-basic-view .fc-day-top .fc-day-number {
  width: 34px;
  height: 40px;
  float: none;
  box-sizing: border-box;
}
.fc-ltr .fc-basic-view.withIcons .fc-day-top .fc-day-number {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: column;
  height: 48px;
  margin: -1px auto;
  padding: 6px 2px 0;
}
@media screen and (max-width: 767px) {
  .fc-ltr .fc-basic-view.withIcons .fc-day-top .fc-day-number {
    height: 53px;
  }
}

.fc-ltr .fc-basic-view.withIcons .fc-day-top .fc-day-number span {
  line-height: 1em;
}
.fc-ltr .fc-basic-view.withIcons .fc-day-top .fc-day-number span.calendar_icon {
  height: 16px;
  margin-top: -1px;
}
@media screen and (max-width: 767px){
  .fc-ltr .fc-basic-view.withIcons .fc-day-top .fc-day-number span.calendar_icon {
    height: 20px;
    margin-top: 1px;
  }
  .fc-ltr .fc-basic-view.withIcons .fc-day-top .fc-day-number span.calendar_icon img {
    width: 20px;
  }
}

/* フォントサイズ、背景色の指定など */
.fc-day-number {
  font-size: 18px;
}
.fc-unthemed td.fc-today {
  background: none;
  border: none;
}
.fc-unthemed .fc-disabled-day {
  background: none;
}

/* 曜日 */
.fc-widget-header {
  font-weight: normal;
  background: none;
}
td.fc-widget-header .fc-widget-header {
  margin-bottom: 8px;
  border-bottom: 1px solid #cccccc;
}
th.fc-widget-header {
  font-size: 14px;
  padding: 4px 0;
  background: none;
}
.fc-sun {
  color: #ee5656;
}
.fc-sat {
  color: #365f8a;
}
.day_select.fc-sun,
.day_select.fc-sat {
  color: #ffffff;
}

/* 本日の日付 */
.fc-day-number.today {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
  padding-top: 6px;
  border-bottom: 4px solid #434343;
}

/* 選択できる日付 */
.fc-bg .can_select {
  position: relative;
  background-color: #ffffff;
  cursor: pointer;
}
.fc-content-skeleton .can_select {
  position: relative;
  cursor: pointer;
}

/* 休み、受付していない日 */
.fc-content-skeleton .not_select {
  color: #cccccc;
}

.dayStatusBlock {
  display: block;
  width: 100%;
  height: 40px;
  position: absolute;
  top: 0;
  border-radius: 6px;
  box-sizing: border-box;
}
.fc-basic-view.withIcons .dayStatusBlock {
  height: 48px;
}
@media screen and (max-width: 767px) {
  .fc-basic-view.withIcons .dayStatusBlock {
    height: 53px;
  }
}

/* 日付選択時 */
.fc-content-skeleton .day_select .fc-day-number {
  color: #ffffff;
  font-weight: bold;
}
.fc-bg .day_select,
.fc-bg td.fc-today.day_select {
  background-color: #e8a248;
  cursor: default;
}

/**********************************************************
日時選択カレンダー
***********************************************************/
.selectDateCalendar .fc-bg .dayStatusBlock.-dispDate {
  border: 2px solid #e8a248;
}

/* マウスオーバー時 */
.enableHover .selectDateCalendar .fc-bg .can_select:hover {
  color: #333333;
  text-decoration: underline;
  position: relative;
  background: #fff0d9;
}

/**********************************************************
販売カレンダー
***********************************************************/
.salesCalendar {
  min-height: 332px;
}

/* 曜日 */
.salesCalendar .day_select.fc-sun {
  color: #ee5656;
}
.salesCalendar .day_select.fc-sat {
  color: #365f8a;
}

.salesCalendar .fc-bg .can_select .dayStatusBlock {
  border: 2px solid #e8a248;
}
.salesCalendar .fc-bg .dayStatusBlock.-dispDate {
  background-color: #e8a248;
}
.salesCalendar .fc-content-skeleton td.can_select.-dispDate .fc-day-number {
  color: #ffffff;
  font-weight: bold;
}

/* マウスオーバー時 */
.enableHover .salesCalendar .fc-bg .can_select:hover {
  color: #333333;
  text-decoration: underline;
  position: relative;
  background: #fff0d9;
}

.enableHover .fc-bg .day_select.can_select:hover {
  text-decoration: none;
  background-color: #e8a248;
}

/**********************************************************
time table
***********************************************************/
.calendarTimetable__box {
  position: relative;
  margin: 36px 0;
}

.timeScrollBtn__btnBox {
  display: flex;
  justify-content: center;
  width: 100%;
  position: absolute;
}
.timeScrollBtn__btnBox.-scrollUp {
  top: -16px;
}
.timeScrollBtn__btnBox.-scrollDown {
  bottom: -16px;
}
.timeScrollBtn__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.05);
  cursor: pointer;
  transition: 0.2s;
}
@media screen and (max-width: 420px) {
  .timeScrollBtn__btn {
    background: rgba(0, 0, 0, 0.16);
  }
}
.enableHover .timeScrollBtn__btn:hover {
  background: rgba(0, 0, 0, 0.16);
}

.timeScrollBtn__btn .material-icons {
  color: #ffffff;
  font-size: 32px;
}
.row.calendarTimetable {
  height: 240px;
  margin: 0 -4px;
  padding:24px 0;
  overflow-x: hidden;
  overflow-y: scroll;
  -ms-overflow-style: none;    /* IE, Edge 対応 */
  scrollbar-width: none;       /* Firefox 対応 */
}

.calendarTimetable__scrollGradation {
  width: 100%;
  height: 32px;
  position: absolute;
}
.calendarTimetable__scrollGradation.-up {
  top: 0;
  bottom: auto;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0));
}
.calendarTimetable__scrollGradation.-down {
  top: auto;
  bottom: 0;
  background: linear-gradient(to top, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0));
}

.row.calendarTimetable::-webkit-scrollbar {  /* Chrome, Safari 対応 */
    display: none;
}

.calendarTimetable__wrap {
  display: flex;
  flex-wrap: wrap;
}
.calendarTimetable__wrap.-pcAndSpOneLine {
  margin-bottom: 0;
}
.calendarTimetable__wrap.-pcOneLineAndSpMultiLine {
  margin-bottom: 0;
}
.calendarTimetable__wrap.-pcAndSpMultiLine {
  margin-bottom: 16px;
}
.calendarTimetable__wrap.-pcAndSpMultiLine:last-child {
  margin-bottom: 0;
}

.timeChoice {
  padding: 0;
  margin: 0 4px 8px;
}
.timeChoice.col-xs-6 {
  width: 48%;
}
@media screen and (max-width:1200px) {
  .timeChoice.col-xs-6 {
    width: 47.7%;
  }
}
@media screen and (max-width:420px) {
  .timeChoice.col-xs-6 {
    width: 47.5%;
  }
}

.timeChoice .timeChoice__box {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  color: #333333;
  width: 100%;
  height: 48px;
  padding-left: 20px;
  border: 1px solid #cccccc;
  border-radius: 6px;
  position: relative;
  cursor: pointer;
}
@media screen and (max-width:991px) {
  .timeChoice .timeChoice__box {
    padding-left: 16px;
  }
}
@media screen and (max-width:767px) {
  .timeChoice .timeChoice__box {
    font-size: 16px;
  }
}
.timeChoice__box.-showCrowdedIcons {
  justify-content: flex-start;
  padding-left: 12px;
}
@media screen and (max-width:1200px) {
  .calendarTimetable.-normal .timeChoice__box.-showCrowdedIcons {
    padding-left: 4px;
  }
}
@media screen and (max-width:991px) {
  .calendarTimetable.-normal .timeChoice__box.-showCrowdedIcons {
    padding-left: 6px;
  }
}
@media screen and (max-width:767px) {
  .timeChoice__box.-showCrowdedIcons {
    padding-left: 10px;
  }
}
@media screen and (max-width:360px) {
  .timeChoice__box.-showCrowdedIcons {
    padding-left: 6px;
  }
}
.timeChoice .timeChoice__box .material-icons-outlined {
  font-size: 18px;
  color: #999999;
  position: absolute;
  left: 16px;
}
@media screen and (max-width:1200px) {
  .timeChoice .timeChoice__box .material-icons-outlined {
    left: 8px;
  }
}
.timeChoice .timeChoice__box .timeChoice__crowdedIcons {
  position: absolute;
  right: 12px;
}
@media screen and (max-width:1200px) {
  .calendarTimetable.-normal .timeChoice .timeChoice__box .timeChoice__crowdedIcons {
    right: 6px;
  }
}
@media screen and (max-width:767px) {
  .timeChoice .timeChoice__box .timeChoice__crowdedIcons {
    right: 8px;
  }
}
.timeChoice .timeChoice__box.select {
  font-weight: bold;
  color: #ffffff;
  background-color: #e8a248;
  border: 1px solid #e8a248;
  cursor: default;
}
.timeChoice .timeChoice__box.select .material-icons-outlined {
  color: #ffffff;
}

.enableHover .timeChoice .timeChoice__box:hover {
  color: #333333;
  text-decoration: underline;
  background: #fff0d9;
  border: 1px solid #cccccc;
}
.enableHover .timeChoice .timeChoice__box.select:hover {
  color: #ffffff;
  text-decoration: none;
  background-color: #e8a248;
  border: 1px solid #e8a248;
}

/* 受付していない時間 */
.timeChoice .timeChoice__box.notSelectTime,
.timeChoice .timeChoice__box.notSelectTime:hover {
  color: #cccccc;
  text-decoration: none;
  background-color: #eeeeee !important;
  border: 1px solid #eeeeee;
  cursor: default;
}
.timeChoice .timeChoice__box.notSelectTime .material-icons-outlined,
.timeChoice .timeChoice__box.notSelectTime:hover .material-icons-outlined {
  color: #cccccc;
}

/* 販売カレンダー内の受付していない時間 */
option.notSelectTime {
  color: #cccccc;
  background-color: #eeeeee;
}

/**********************************************************
選択日
***********************************************************/
/* 選択日表示 */
.selectDateArea__box {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  margin: 0;
  background: #f7f7f7;
  border-top: 1px solid #cccccc;
  border-bottom: 1px solid #eeeeee;
}
@media screen and (max-width: 767px) {
  .selectDateArea__box {
    border-top: none;
  }
}
.selectDateArea__box.-salesCalendar {
  margin: 16px 0 24px;
  padding: 8px;
  border: none;
  border-radius: 5px;
}

.selectDateArea {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  background: #f7f7f7;
}

.selectDateArea__heading {
  font-size: 12px;
  font-weight: bold;
  line-height: 1em;
  color: #ffffff;
  margin-right: 16px;
  padding: 8px;
  background: #e8a248;
  border-radius: 4px;
}
.selectDateArea__heading.-notDate {
  background: #c82527;
}
.selectDateArea__text.-selectDate {
  font-size: 16px;
  font-weight: bold;
  color: #cc7700;
}

/* 曜日 */
.selectDateArea__text.-week {
  display: inline-block;
  font-size: 14px !important;
  margin: 0 -8px 0 -4px;
  position: relative;
  top: -1px;
}
@media screen and (max-width:991px) {
  .selectDateArea__text.-week {
    display: inline-block;
    font-size: 16px !important;
    top: 0;
  }
}

.calendar_icon img {
  width: 16px;
  margin: 0 auto;
}

/**********************************************************
凡例
***********************************************************/
.usageGuide__box {
  margin-top: 16px;
}
.usageGuide__box.-sp {
  margin: 0 -8px;
  padding: 6px 8px;
  background: #f7f7f7;
}
.usageGuide__box.-dateOnly {
  margin-top: 32px;
}

.dayUsageGuide,
.timeUsageGuide {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}
.dayUsageGuide + .timeUsageGuide {
  margin-top: 16px;
}
.dayUsageGuide.-sp + .timeUsageGuide.-sp {
  margin-top: 8px;
}
.dayUsageGuide.hidden + .timeUsageGuide,
.dayUsageGuide.-sp.hidden + .timeUsageGuide {
  margin-top: 0;
}
.dayUsageGuide__item {
  display: flex;
  align-items: center;
  font-size: 12px;
  line-height: 1em;
  margin-right: 16px;
}
.dayUsageGuide.-sp .dayUsageGuide__item {
  font-size: 14px;
  padding: 2px 0;
}
.dayUsageGuide.-sp .dayUsageGuide__item.-overlap {
  margin-bottom: 8px;
}

.dayUsageGuide__item img {
  margin-right: 4px;
}
.dayUsageGuide.-sp .dayUsageGuide__item img {
  width: 20px;
}

.timeUsageGuide__item,
.timeUsageGuide__arrow {
  display: flex;
  align-items: center;
  font-size: 12px;
  line-height: 1em;
}
.timeUsageGuide.-sp .timeUsageGuide__item {
  font-size: 14px;
}
.timeUsageGuide__item.-rightMargin {
  margin-right: 16px;
}
.timeUsageGuide__arrow {
  color: #8e8e8e;
  margin: 0 8px;
}

/* 受取場所が有効の時のdescription */
.crowdedIconDescription__text {
  display: block;
  font-size: 12px;
  color: #a5a5a5;
  margin: 8px 0 0;
}
@media screen and (max-width: 767px) {
  .crowdedIconDescription__text {
    font-size: 14px;
  }
}

/**********************************************************
時間UIが表示されない時
***********************************************************/
.noReceivableTime__box {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 360px;
  margin-bottom: 16px;
}
@media screen and (max-width: 767px) {
  .noReceivableTime__box {
    height: 200px;
  }
}
.noReceivableTime__icon {
  font-size: 64px !important;
  color: #cccccc;
  margin-bottom: 16px;
}
.noReceivableTime__description {
  color: #bcbcbc;
  text-align: center;
}