@charset "UTF-8";
/*--------------------------------
  本日の開館状況
--------------------------------*/
.today-box {
  display: flex;
  justify-content: center; /* ボックス全体を中央揃え */
}
.today {
  list-style-type: none; /* リストのマーカーを削除 */
  padding: 0 100px;
  margin: 20px auto; /* 外側の余白を自動設定 */
  display: flex;
  justify-content: center; /* リスト全体を中央揃え */
  flex-direction: column; /* リストを縦方向に配置 */
  background-color: #fff;
  border-radius: 10px;
  width: 360px;
}
.today li {
  color: #2c4f54;
  padding-bottom: 10px;
  margin: 10px 0; /* 適度な内側余白 */
  position: relative; /* 相対的な位置指定 */
  padding-left: 30px; /* テキストの左側に余白を追加 */
  white-space: nowrap;
  letter-spacing: 0.2em;
}
.today li:before {
  content: '';
  display: block;
  width: 24px;
  height: 24px;
  position: absolute;
  left: 0; /* 左側に固定 */
  top: 40%; /* 垂直中央揃え */
  transform: translateY(-50%); /* 垂直中央揃えのために位置を調整 */
  background: url('../images/com/icon_footer_th.png') center no-repeat;
}
.today li:nth-child(3):before {
  top: 50%;
}
.today li:nth-child {
  padding-bottom: 0;
}
/*--------------------------------
  カレンダー
--------------------------------*/
.table {
  display: table;
  border-collapse: collapse;
  border-spacing: 0;
}
.calHeader {
  background-color: #EAC7B7;
  height: 68px;
  line-height: 68px;
  border-radius: 10px 10px 0 0;
  border-bottom: 1px solid #594E4D;
  color:  #594E4D;
  vertical-align: middle;
  width: 100%;
  text-align: center;
  font-weight: 600;
}
/*.calHeader.table {
 border-bottom: 1px solid #43676b;
 color: #2c4f54;
 background-color: #fff;
 overflow: hidden;
}
*/
.previous-anchor, .next-anchor {
  padding: 5px 15px;
}
.row {
  display: table-row;
}
.cell, .cell2, .cell3, .cell4 {
  display: table-cell;
  /*background-color: #fff;*/
  vertical-align: middle;
  color:  #594E4D;
}
.cell2 {
  width: 50%;
}
.cell3 {
  width: 33.3%;
}
.cell4 {
  width: 25%;
}
.cell a, .cell2 a, .cell3 a, .cell4 a {
  color: #594E4D;
  text-decoration: underline;
}
.cell.btns.next-btn a, .cell.btns.previous-btn a, .calpage_link a, {
  color: #594E4D;
}
.text-center {
  text-align: center;
}
.text-right {
  text-align: right;
}
.event-calendar-row.text-center, .weekdays, .week, .day {
  /*background-color: #f8f4e6;*/
  font-weight: bold;
}
.content, .day.weekdays, .week.weekdays, .event.weekdays, .week, .day {
  color: #594E4D;
}
.week.sunday {
  color: #d70035;
  font-weight: bold;
}
.week.saturday {
  color: #0c5bac;
  font-weight: bold;
}
.calendar-box {
  display: flex;
  flex-direction: column;
  margin: 0 auto;
  border: 1px solid #594E4D;
  background-color: #fff;
  border-radius: 10px;
  max-width: 100%;
  width: 100%;
  box-sizing: border-box;
  table-layout: fixed; /* 固定レイアウトを使用してセルが均等に配置されるようにする */
}
.calendar-box .calHeader {
  width: 100%;
  padding: 0.5rem 0;
}
.calendar-box .calHeader .btns {
  width: 15%;
}
.calendar-box .main {
  width: 90%;
  margin: 5%;
  padding: 20px 10px 30px;
}
.calendar-box .main .cell-date {
  padding: 0.3rem 0;
  border: 1px solid #333;
}
.calendar-box .main .close {
  background-color: #FBB03B;
  color: #594E4D;
}
.calendar-box .main .outside {
  visibility: hidden;
}
.calendar-box .main .event {
  background-color: #dce7db;
}
.calendar-box table {
  width: 100%;
}
.calendar-box .calFooter {
  width: 90%;
  margin: 0 5% 5% 5%;
}
.calendar-box .calFooter .legend {
  display: inline-block;
}
.calendar-box .calFooter .legend > span {
  display: inline-block;
}
.calendar-box .calFooter .event, .calendar-box .calFooter .close {
  height: 0.8rem;
  width: 20px;
  border: 1px solid #594E4D;
  vertical-align: middle;
  display: inline-block;
}
.calendar-box .calFooter .event {
  background-color: #dce7db;
}
.calendar-box .calFooter .close {
  background-color: #fbb03b;
}
.calendar-box .main .week {
  font-weight: bold;
  /*border-bottom: 1px solid #c1c1c1;*/
}
.calendar-box .main .week.sunday {
  color: #b91313;
}
.calendar-box .main .week.saturday {
  color: #005eaa;
}
.event-calendar, .event-info {
  width: 100%;
  clear: both;
}
.event-calendar-row, .event-info-row {
  display: flex;
  background-color: #fffffb;
}
.event-calendar-row .week, .event-calendar-row .day, .event-calendar-row .event {
  flex: 1;
  border: 1px solid #594E4D;
}
.event-info-row .week, .event-info-row .day {
  flex-basis: 80px;
  border: 1px solid #594E4D;
}
.event-info-row .event {
  flex-grow: 1;
  border: 1px solid #594E4D;
}
.center {
  text-align: center;
}
.text-left {
  text-align: left;
}
.event-calendar-row .event div, .event-info-row .event div {
  padding: 0.5rem;
}
.event-calendar-row .event .close, .event-info-row .event .close {
  color: #CF2121;
}
.event-calendar-row .event .holiday, .event-info-row .event .holiday {
  color: #fff;
  background-color: #594E4D;
  font-weight: bold;
}
.calBox {
  max-width: 100%;
  width: 500px;
  border: 1px solid #594E4D;
  border-radius: 10px;
  margin-left: auto;
  margin-right: auto;
}
.calBox .title1, .calBox .title2, .calBox .title3 {
  vertical-align: middle;
  width: 100%;
  text-align: center;
  font-weight: 600;
}
.calBox .title1 {
  background-color: #c2dfbd;
  height: 68px;
  line-height: 68px;
  border-radius: 10px 10px 0 0;
  border-bottom: 1px solid #594E4D;
  color: #594E4D;
}
.calBox .title2 {
  background-color: #e7d984;
  height: 68px;
  line-height: 68px;
  border-radius: 10px 10px 0 0;
  border-bottom: 1px solid #594E4D;
}
.calBox .title3 {
  background-color: #e6a3a3;
  height: 68px;
  line-height: 68px;
  border-radius: 10px 10px 0 0;
  border-bottom: 1px solid #594E4D;
}
.calBox .calCont {
  background-color: #fff;
  padding: 20px 10px 30px;
  border-radius: 0 0 10px 10px;
}
@media only screen and (min-width: 767px) {
  .calBox .calCont {
    padding: 20px 20px 40px;
  }
}
.calBox .calendar td, .calBox .calendar th, .calBox .month {
  text-align: center;
}
.calBox .calendar .sun {
  color: #d70035;
}
.calBox .calendar .sat {
  color: #0c5bac;
}
.calBox .calendar th {
  padding: 10px;
}
.calBox .calendar td {
  background-color: #fff;
}
.calBox .calendar td {
  margin: 2px;
  padding: 5px;
  border: 1px solid #594E4D;
  background-color: #fff;
  font-size: 1.2rem;
  width: calc(100% / 7);
}
@media only screen and (min-width: 767px) {
  .calBox .calendar td {
    padding: 10px;
    transition: 0.3s;
  }
}
.calBox .calendar td a {
  text-decoration: underline;
}
.calBox .calendar td.closingday1 {
  background-color: #c2dfbd;
}
.calBox .calendar td.closingday2 {
  background-color: #e7d984;
}
.calBox .calendar td.closingday3 {
  background-color: #e6a3a3;
}
.calBox .calendar table {
  width: 100%;
}
/*--------------------------------
  貸出ベスト
--------------------------------*/
.contentsBox {
  max-width: 500px;
  border: 1px solid #2c4f54;
  border-radius: 10px;
  margin-left: auto;
  margin-right: auto;
}
.contentsBox .title1, .contentsBox .title2, .contentsBox .title3 {
  vertical-align: middle;
  width: 100%;
  text-align: center;
  font-weight: 600;
}
.contentsBox .title1 {
  background-color: #c2dfbd;
  height: 68px;
  line-height: 68px;
  border-radius: 10px 10px 0 0;
  border-bottom: 1px solid #2c4f54;
}
.contentsBox .title2 {
  background-color: #e7d984;
  height: 68px;
  line-height: 68px;
  border-radius: 10px 10px 0 0;
  border-bottom: 1px solid #2c4f54;
}
.contentsBox .title3 {
  background-color: #e6a3a3;
  height: 68px;
  line-height: 68px;
  border-radius: 10px 10px 0 0;
  border-bottom: 1px solid #2c4f54;
}
.contentsBox .calCont {
  padding: 20px 10px 30px;
  border-radius: 0 0 10px 10px
}
.contentsBox ol {
  /*list-style: decimal;*/
  list-style-type: none;
  padding-left: 20px; /* 数字の表示を調整 */
  margin: 0; /* 撓科学することなくリスト全体を表示する */
}
/*.contentsBox ol li {
  padding-left: 0;
  margin-left: 0; 数字表示がリスト項目内に収まるようにする
}*/
ol.libbest {
  /*list-style: decimal;*/
  list-style-type: none;
  padding-left: 20px;
  counter-reset: num;
  margin: 10px 0;
  font-size: 1.6rem;
}
ol.libbest > li {
  line-height: 2;
  position: relative;
  padding: 0.2em 0 0.2em 2.5em;
}
ol.libbest > li::before {
  position: absolute;
  font-size: 1.2rem;
  font-weight: bold;
  counter-increment: num;
  content: counter(num) "";
  left: 0;
  top: 25%;
  color: #2c4f54;
  width: 22px;
  height: 22px;
  text-align: center;
  box-sizing: border-box;
  line-height: 1;
  background: #B9D9C3;
  padding: 6px 0;
  border-radius: 3px;
}
ol.libbest > li:first-child::before {
  position: absolute;
  display: block;
  background: url("../images/top/first-crown.png");
  background-size: contain;
  font-size: 1.2rem;
  font-weight: bold;
  counter-increment: num;
  content: counter(num) "";
  left: 0;
  top: 5%;
  color: #2c4f54;
  width: 30px;
  height: 30px;
  text-align: center;
  box-sizing: border-box;
  line-height: 1;
  padding: 13px 0;
}
ol.libbest > li:nth-child(2)::before {
  position: absolute;
  display: block;
  background: url("../images/top/second-crown.png");
  background-size: contain;
  font-size: 1.2rem;
  font-weight: bold;
  counter-increment: num;
  content: counter(num) "";
  left: 0;
  top: 5%;
  color: #2c4f54;
  width: 30px;
  height: 30px;
  text-align: center;
  box-sizing: border-box;
  line-height: 1;
  padding: 13px 0;
}
ol.libbest > li:nth-child(3)::before {
  position: absolute;
  display: block;
  background: url("../images/top/third-crown.png");
  background-size: contain;
  font-size: 1.2rem;
  font-weight: bold;
  counter-increment: num;
  content: counter(num) "";
  left: 0;
  top: 5%;
  color: #2c4f54;
  width: 30px;
  height: 30px;
  text-align: center;
  box-sizing: border-box;
  line-height: 1;
  padding: 13px 0;
}
/*ol.libbest li {
  margin: 0;
  padding-left: 0;
}*/
ol.libbest li a:hover {
  text-decoration: underline;
}
ol.libbest li a:visited {
  color: #951c54;
}
/*ol.libbest li:first-child{
  position: relative;
}
ol.libbest li:first-child::after {
  position: absolute;
  background: url("../images/first-crown.png")
}*/
@media only screen and (min-width:767px) {
  .contentsBox .calCont {
    padding: 20px 20px 40px;
  }
  /*.contentsBox ol {
    padding-left: 40px;
  }
  .contentsBox ol li {
    padding-left: 0;
    margin-left: 0;
  }*/
}
.contentsBox .calendar td, .contentsBox .calendar th, .contentsBox .month {
  text-align: center
}
.contentsBox.calendar .sun {
  color: #d70035;
}
.contentsBox .calendar .sat {
  color: #0c5bac;
}
.contentsBox .calendar th {
  padding: 10px;
}
.contentsBox .calendar td {
  background-color: #fff;
}
.contentsBox .calendar td {
  margin: 2px;
  padding: 5px;
  border: 1px solid #2c4f54;
  /*  display: block;  */
  /*  cursor: pointer;*/
  background-color: #fff;
  font-size: 1.2rem
}
@media only screen and (min-width:767px) {
  .contentsBox .calendar td {
    padding: 10px;
    transition: .3s;
  }
  /*  .contentsBox .calendar td:hover {
/*    background-color: #86e1e3;
/*  }
*/
}
.contentsBox .calendar td a {
  text-decoration: underline;
}
.contentsBox .calendar td.closingday1 {
  background-color: #c2dfbd;
}
.contentsBox .calendar td.closingday2 {
  background-color: #e7d984;
}
.contentsBox .calendar td.closingday3 {
  background-color: #e6a3a3;
}
.contentsBox .calendar table {
  width: 100%;
}
.bgc_white {
  background-color: #fff;
  display: flex;
  flex-direction: column;
  border-radius: 10px;
}
.bgc_white::after {
  content: "";
  display: table;
  clear: both;
}
.calpage_link {
  text-decoration: underline;
}
@media only screen and (max-width: 768px) {
/*  .calendar-box {
    padding: 10px;
  }*/
  .calendar-box .calFooter .legend > span {
    height: 2.2rem;
    width: 64px;
  }
}
/*--------------------------------
  イベント
--------------------------------*/
/* ボタン */
.tab-area ul {
  display: block;
  padding: 0;
}
.tab-area ul li a {
  text-decoration: none;
}
.btn_switch {
  margin: 20px;
  padding: 10px 25px;
  border: 1px solid #594E4D;
  border-radius: 10px;
  background-color: #EAC7B7;
  color: #594E4D;
  display: block;
  max-width: 800px;
  width: 30%;
  text-align: center;
  -webkit-box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.15);
  box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.15);
  -webkit-transition: .5s;
  transition: .5s;
  -webkit-appearance: none;
  font-weight: bold;
  float: right;
}

@media only screen and (min-width: 769px) {
  .btn_switch {
    -webkit-transition: .7s;
    transition: .7s;
  }
	.btn_switch:hover {
  text-decoration: none;
  background-color: #fff;
}
}
@media only screen and (max-width: 768px) {
  .btn_switch {
    float: none;
    display: block;
    width: 90%;
  }
}
/* カレンダー部分 */
.title4 {
  /*border: 1px solid #2c4f54;*/
  padding: 10px 0;
  font-weight: bold;
  background-color: #EAC7B7;
  color: #594E4D;
  border: 1px solid #594E4D;
}
.title4 a {
  color: #594E4D;
  padding: 15px 20px;
}
@media only screen and (max-width: 458px) {
  .event-info-row .event {
    width: 180px;
  }
}
/*--------------------------------
  グリッドレイアウト
--------------------------------*/
@media only screen and (max-width: 768px) {
  .grid {
    display: block;
  }
}
@media only screen and (min-width: 767px) {
  .grid {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    overflow: hidden;
    margin-right: -30px;
  }
  .gridItem {
    margin: 0 30px 30px 0;
  }
  .gridItem.x1 {
    width: calc(8.33333% - 30px);
  }
  .gridItem.x2 {
    width: calc(16.66666% - 30px);
  }
  .gridItem.x3 {
    width: calc(24.99999% - 30px);
  }
  .gridItem.x4 {
    width: calc(33.33332% - 30px);
  }
  .gridItem.x5 {
    width: calc(41.66665% - 30px);
  }
  .gridItem.x6 {
    width: calc(49.99998% - 30px);
  }
  .gridItem.x7 {
    width: calc(58.33331% - 30px);
  }
  .gridItem.x8 {
    width: calc(66.66664% - 30px);
  }
  .gridItem.x9 {
    width: calc(74.99997% - 30px);
  }
  .gridItem.x10 {
    width: calc(83.3333% - 30px);
  }
  .gridItem.x11 {
    width: calc(91.66663% - 30px);
  }
}