@charset "utf-8";
/* CSS Document */

/* CSS変数定義 */
:root {
  /* カラーパレット */
  /* ベース色 */
  --cp-base-01: rgba(28,83,162,1);
  /* 基本色 */
  --cp-base-02: rgba(125,206,244,1);
  --cp-base-03: rgba(20,166,154,1);
  --cp-base-04: rgba(255,241,7,1);
  /* 定番色 */
  --cp-stap-01: rgba(78,133,212,1);
  --cp-stap-02: rgba(228,241,251,1);
  --cp-stap-03: rgba(0,116,104,1);
  --cp-stap-04: rgba(235,221,0,1);
  /* 補色 */
  --cp-comp-01: rgba(200,22,29,1);
  --cp-comp-02: rgba(200,117,123,1);
  --cp-comp-03: rgba(221,191,120,1);
  --cp-comp-04: rgba(249,236,241,1);
  /* 同系色 */
  --cp-simi-01: rgba(109,176,203,1);
  --cp-simi-02: rgba(85,65,151,1);
  --cp-simi-03: rgba(0,0,0,1);
  --cp-simi-04: rgba(0,0,0,1);
  /* その他 */
  --cp-etc-01: rgba(51,51,51,1); /* #333333 */
  --cp-etc-02: rgba(128,128,128,1);
  --cp-etc-03: rgba(153,153,153,1);
  --cp-etc-04: rgba(200,200,200,1);
  
  /* フォント */
  --fn-jp-01: 'Noto Sans JP';
  --fn-jp-02: 'Zen Maru Gothic';
}

html {
  font-family: var(--fn-jp-02), sans-serif;
}
.uk-h1, .uk-h2, .uk-h3, .uk-h4, .uk-h5, .uk-h6, .uk-heading-2xlarge, .uk-heading-large, .uk-heading-medium, .uk-heading-small, .uk-heading-xlarge, h1, h2, h3, h4, h5, h6 {
  font-family: 'Avenir', 'Arial', var(--fn-jp-02), sans-serif;
}

/* 汎用書体クラス a:基本色 b:定番色 c:補色 d:同系色 */
.font-c-a1 {color: var(--cp-base-01)!important;}
.font-c-a2 {color: var(--cp-base-02)!important;}
.font-c-a3 {color: var(--cp-base-03)!important;}
.font-c-a4 {color: var(--cp-base-04)!important;}
.font-c-b1 {color: var(--cp-stap-01)!important;}
.font-c-b2 {color: var(--cp-stap-02)!important;}
.font-c-b3 {color: var(--cp-stap-03)!important;}
.font-c-b4 {color: var(--cp-stap-04)!important;}
.font-c-c1 {color: var(--cp-comp-01)!important;}
.font-c-c2 {color: var(--cp-comp-02)!important;}
.font-c-c3 {color: var(--cp-comp-03)!important;}
.font-c-c4 {color: var(--cp-comp-04)!important;}
.font-c-d1 {color: var(--cp-simi-01)!important;}
.font-c-d2 {color: var(--cp-simi-02)!important;}
.font-c-d3 {color: var(--cp-simi-03)!important;}
.font-c-d4 {color: var(--cp-simi-04)!important;}
.font-c-e1 {color: var(--cp-etc-01)!important;}
.font-c-e2 {color: var(--cp-etc-02)!important;}
.font-c-e3 {color: var(--cp-etc-03)!important;}
.font-c-e4 {color: var(--cp-etc-04)!important;}

.font-c-w {color: white!important;}
.font-c-b {color: black!important;}

.font-w-b {font-weight: bold;}

/* 汎用BGクラス a:基本色 b:定番色 c:補色 d:同系色 */
.bg-c-a1 {background-color: var(--cp-base-01)!important;}
.bg-c-a2 {background-color: var(--cp-base-02)!important;}
.bg-c-a3 {background-color: var(--cp-base-03)!important;}
.bg-c-a4 {background-color: var(--cp-base-04)!important;}
.bg-c-b1 {background-color: var(--cp-stap-01)!important;}
.bg-c-b2 {background-color: var(--cp-stap-02)!important;}
.bg-c-b3 {background-color: var(--cp-stap-03)!important;}
.bg-c-b4 {background-color: var(--cp-stap-04)!important;}
.bg-c-c1 {background-color: var(--cp-comp-01)!important;}
.bg-c-c2 {background-color: var(--cp-comp-02)!important;}
.bg-c-c3 {background-color: var(--cp-comp-03)!important;}
.bg-c-c4 {background-color: var(--cp-comp-04)!important;}
.bg-c-d1 {background-color: var(--cp-simi-01)!important;}
.bg-c-d2 {background-color: var(--cp-simi-02)!important;}
.bg-c-d3 {background-color: var(--cp-simi-03)!important;}
.bg-c-d4 {background-color: var(--cp-simi-04)!important;}
.bg-c-e1 {background-color: var(--cp-etc-01)!important;}
.bg-c-e2 {background-color: var(--cp-etc-02)!important;}
.bg-c-e3 {background-color: var(--cp-etc-03)!important;}
.bg-c-e4 {background-color: var(--cp-etc-04)!important;}

.bg-c-w {background-color: white!important;}
.bg-c-b {background-color: black!important;}

.bg-none {background: none!important;}

.uk-navbar-right {
  min-height: 74px;
}
.uk-navbar-nav {
  height: 54px!important;
}
.uk-navbar-nav>li>a {
  min-height: 54px;
  padding: 15px;
  font-family: var(--fn-jp-02), sans-serif;
  font-size: 1rem;
  font-weight: bold;
  color: white;
	position: relative;
  z-index: 1;
	display: inline-block;
}
.uk-navbar-nav>li:hover>a,
.uk-navbar-nav>li>a.uk-open,
.uk-navbar-nav>li>a:focus {
  color: var(--cp-base-03)!important;
  transition: all .3s ease-out;
}
.uk-navbar-nav>li>a::before {
	position: absolute;
  z-index: -1;
	bottom: 0;
	left: 0;
	content: '';
	width: 100%;
	height: 100%;
	background: white;
	transform: scale(1, 0);
	transform-origin: left bottom;
	transition: transform .3s;
}
.uk-navbar-nav>li:hover>a::before {
	transform-origin: left bottom;
	transform: scale(1, 1);
}

.uk-table-striped tbody tr:nth-of-type(odd),
.uk-table-striped>tr:nth-of-type(odd) {
  background: var(--cp-stap-02);
}

.taglist>li {
  display: inline-block;
  margin-top: 0!important;
  margin-right: 10px;
  padding: 5px 10px 7px;
  color: white;
  font-weight: 500;
  border-radius: 5px;
  background: var(--cp-simi-01);
}


/* 見出し */
.head-skew {
  padding: 0.5rem 1.5rem;
  border-left: 6px double  var(--cp-base-01);
  background: #f4f4f4;
  -webkit-transform: skew(-15deg);
  transform: skew(-15deg);
}

.head-badge > span {
    display: inline-block;
    padding: 0 5px;
    font-size: 0.75rem;
    background-color: var(--cp-comp-01);
    color: white;
    border-radius: 4px;
    margin: 0 10px;
}


/* ボタン */
.uk-button-custom,
a.uk-button-custom,
button.uk-button-custom {
  font-size: .875rem;
  font-weight: 700;
  line-height: 38px;
  position: relative;
  display: inline-block;
  padding: 0 30px;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  text-align: center;
  vertical-align: middle;
  text-decoration: none;
  letter-spacing: 0.1em;
  color: var(--cp-etc-01);
  border-radius: 100vh;
}

a.btn-border-shadow {
  padding: 0 30px 6px;
  color: white;
}
a.btn-border-shadow:before {
  position: absolute;
  top: -3px;
  left: -3px;
  width: 100%;
  height: 100%;
  content: "";
  -webkit-transition: all .2s ease;
  transition: all .2s ease;
  border: 1px solid var(--cp-etc-01);
  border-radius: 100vh;
}
a.btn-border-shadow:hover {
  padding: 0 30px;
  color: white;
}
a.btn-border-shadow:hover:before {
  top: 0;
  left: 0;
}

a.btn-bs-dark {
  color: var(--cp-etc-01);
}
a.btn-bs-dark:before {
  border: 1px solid white;
}
a.btn-border-shadow:hover {
  color: var(--cp-etc-01);
}

a.btn-skew {
  -webkit-transform: skew(-15deg);
  transform: skew(-15deg);
  color: white;
  border-radius: 0;
  -webkit-box-shadow: 0 3px 5px rgba(0,0,0,.1);
  box-shadow: 0 3px 5px rgba(0,0,0,.1);
}
a.btn-skew:hover {
  -webkit-transform: skew(0);
  transform: skew(0);
  color: white;
  -webkit-box-shadow: 0 1px 1px rgba(0,0,0,.1);
  box-shadow: 0 1px 1px rgba(0,0,0,.1);
}

.btn-stripe-shadow {
  display: inline-block;
  position: relative;
  padding: 5px 20px;
  text-decoration: none;
  font-size: .875rem;
  font-weight: 700;
  line-height: 38px;
  letter-spacing: 0.1em;
  color: white;
  border: white 1px solid;
  transition: all .2s;
  border-radius: 100vh;
}
.btn-stripe-shadow:hover {
  opacity: .95;
  color: white;
}
.btn-stripe-shadow::after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: url("../img/bg_line_black.png") repeat;
  background-size: 4px;
  position: absolute;
  right: 0px;
  bottom: 0px;
  z-index: -1;
  transition: all .2s;
  border-radius: 100vh;
}
.btn-stripe-shadow:hover::after {
  transform: translate(5px, 5px);
}

.btn-approval>a, 
.btn-remove>a {
  display: block;
  margin: 0;
  width: 100%;
  max-width: 115px;
  min-width: 70px;
  height: 100%;
  padding: 1px 10px 0;
  color: white!important;
  border-radius: 10rem;
  transition: all 0.2s ease-out;
  text-align: center;
  text-decoration: none;
}
.btn-approval>a {
  background-color: var(--cp-base-01);
}
.btn-remove>a {
  background-color: var(--cp-comp-01);
}
.btn-approval>a:hover, 
.btn-remove>a:hover {
  opacity: 0.7;
}

.clickable-cell>a,
.clickable-cell>span {
  display: block;
  height: 42px;
  min-width: 40px;
  padding: 5px 6px!important;
  text-align: left!important;
  font-size: .75rem;
  line-height: .75rem;
  text-decoration: none!important;
  border: #e5e5e5 1px solid!important;
  color: var(--cp-etc-01)!important;
}
.color-descript>span {
  display: inline-block;
  height: 16px;
  width: 16px;
  vertical-align: middle;
}
.color-descript>.reservable, 
.clickable-cell>.reservable {
  background-color: #5fc3d8;
}
.color-descript>.no-reserve, 
.clickable-cell>.no-reserve {
  background-color: #a7a8ab;
}
.color-descript>.separate-reserved, 
.clickable-cell>.separate-reserved {
  background-color: #ddbf78;
}
.color-descript>.reserved, 
.clickable-cell>.reserved {
  background-color: #c8757b;
}

/* トグルスイッチ */
.toggle_input {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: 5;
  opacity: 0;
  cursor: pointer;
}
.toggle_label {
  width: 75px;
  height: 35px;
  background: #ccc;
  position: relative;
  display: inline-block;
  border-radius: 40px;
  transition: 0.4s;
  box-sizing: border-box;
}
.toggle_label:after {
  content: "";
  position: absolute;
  width: 35px;
  height: 35px;
  border-radius: 100%;
  left: 0;
  top: 0;
  z-index: 2;
  background: #fff;
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
  transition: 0.4s;
}
.toggle_input:checked + .toggle_label {
  background-color: #4BD865;
}
.toggle_input:checked + .toggle_label:after {
  left: 40px;
}
.toggle_button {
  position: relative;
  width: 75px;
  height: 35px;
  margin: auto;
}

label.datepick {
  position: relative;
  display: inline-block;
  width: 200px;
  height: 36px;
  border: 1px solid #ccc;
  border-radius: 5px;
}
input[type="date"] {
  position: relative;
  padding: 0 10px;
  width: 200px;
  height: 36px;
  border: 0;
  box-sizing: border-box;
  background: transparent;
  font-size: 20px;
}
input[type="date"]::-webkit-inner-spin-button{
    -webkit-appearance: none;
}
input[type="date"]::-webkit-clear-button{
    -webkit-appearance: none;
}
input[type="date"]::-webkit-calendar-picker-indicator {
  position: absolute;
  right: -1px;
  padding: 10px;
  background-color: var(--cp-stap-02);
  border: 1px solid #ccc;
  border-radius: 0 5px 5px 0;
}

.inp-date>select {
    text-transform: none;
    border: 0 none;
    padding: 0 10px 3px;
    margin-right: 5px;
    background: #fff;
    color: #666;
    border: 1px solid #e5e5e5;
    transition: .2s ease-in-out;
    transition-property: color,background-color,border;
}
.inp-date>select:not([multiple]):not([size]) {
    height: 40px;
    vertical-align: middle;
    display: inline-block;
    -webkit-appearance: none;
    -moz-appearance: none;
    padding-right: 20px;
    background-image: url(data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2224%22%20height%3D%2216%22%20viewBox%3D%220%200%2024%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23666%22%20points%3D%2212%201%209%206%2015%206%22%20%2F%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23666%22%20points%3D%2212%2013%209%208%2015%208%22%20%2F%3E%0A%3C%2Fsvg%3E%0A);
    background-repeat: no-repeat;
    background-position: 100% 50%;
}
.rdbox {
    margin-right: 10px;
}

/* サイドナビゲーション */
#sidenav {
  position: fixed;
  left: 0;
  top: 0;
  width: 360px;
  height: 100vh;
  transform: translateX(-230px);
  transition: all 0.3s;
  box-shadow: 0 0 5px 3px rgba(0,0,0,0.4);
  color: var(--cp-base-01);
  font-weight: bold;
}
.uk-offcanvas-bar {
  box-shadow: 0 0 5px 3px rgba(0,0,0,0.4);
  padding: 0;
  width: 360px!important;
  color: var(--cp-base-01);
  font-weight: bold;
}
.fnav-head {
  width: 40px; 
  writing-mode: vertical-rl;
  padding-right: 8px;
  background-color: var(--cp-base-03);
}
.fnav-body {
  width: 320px;
  padding: 0 35px;
}
.fnav-body .uk-nav-default>li a {
  color: var(--cp-base-03);
  transition: all 0.1s ease-out;
}
.fnav-body .uk-nav-default>li>a {
  display: inline!important;
}
.fnav-body .uk-nav-default>li:hover>a,
.fnav-body .uk-nav-default>li>a.uk-open,
.uk-accordion-content>ul>li:hover>a {
  padding-left: 10px;
  padding-right: 10px;
  color: white;
  background: var(--cp-base-03);
  border-radius: 5px;
}
.uk-accordion>:nth-child(n+2) {
  margin-top: 15px;
  margin-bottom: 15px;
}
.fnav-body .uk-nav-default>li>a.uk-accordion-title {
  font-size: .875rem;
}
.uk-nav-divider {
  border-top-color: var(--cp-base-03)!important;
}
.uk-accordion-title {
  opacity: 0;
}

/* ページトップへ戻るボタン */
.scroll2view #page_top {
  display: none;
  transition: all 0.2s ease-out;
}
#page_top {
  width: 50px;
  height: 50px;
  position: fixed;
  right: 15px;
  bottom: 25px;
  opacity: 0.6;
  transition: all 0.2s ease-out;
}
#page_top a {
  width: 100%;
  height: 100%;
  text-decoration: none;
}
#page_top a::before {
  font-family: 'Font Awesome 5 Free';
  font-weight: 900;
  content: '\f139';
  font-size: 50px;
  color: var(--cp-base-04);
}
#page_top:hover {
  opacity: 1;
}

/* ローディングアニメーション */
.loading {
  position: fixed;
  z-index: 9999;
  width: 100%;
  height: 100vh;
  margin: 0;
  padding: 0;
  background-color: white;
}
.loading.hide {
  opacity: 0;
  pointer-events: none;
  transition: opacity 1.5s;
}
.l-wrap{
  width:200px;
  height:60px;
  position: absolute;
  left:50%;
  top:50%;
  transform: translate(-50%, -50%);
}
.circle{
  width:20px;
  height:20px;
  position: absolute;
  border-radius: 50%;
  background-color: var(--cp-base-01);
  left:15%;
  transform-origin: 50%;
  animation: circle .5s alternate infinite ease;
}
@keyframes circle{
  0%{
    top:60px;
    height:5px;
    border-radius: 50px 50px 25px 25px;
    transform: scaleX(1.7);
  }
  40%{
    height:20px;
    border-radius: 50%;
    transform: scaleX(1);
  }
  100%{
    top:0%;
  }
}
.circle:nth-child(2){
  background-color: var(--cp-base-03);
  left:45%;
  animation-delay: .2s;
}
.circle:nth-child(3){
  background-color: var(--cp-base-04);
  left:auto;
  right:15%;
  animation-delay: .3s;
}
.shadow{
  width:20px;
  height:4px;
  border-radius: 50%;
  background-color: rgba(0,0,0,.5);
  position: absolute;
  top:62px;
  transform-origin: 50%;
  z-index: -1;
  left:15%;
  filter: blur(1px);
  animation: shadow .5s alternate infinite ease;
}
@keyframes shadow{
  0%{
    transform: scaleX(1.5);
  }
  40%{
    transform: scaleX(1);
    opacity: .7;
  }
  100%{
    transform: scaleX(.2);
    opacity: .4;
  }
}
.shadow:nth-child(4){
  left: 45%;
  animation-delay: .2s
}
.shadow:nth-child(5){
  left:auto;
  right:15%;
  animation-delay: .3s;
}
.l-wrap span{
  position: absolute;
  top:75px;
  font-size: 20px;
  letter-spacing: 12px;
  color: var(--cp-base-01);
  left:15%;
}

.uk-tab-fad>*:not(:first-child) {
  padding-left: 0!important;
}
.uk-tab-fad>*>a {
  color: #333!important;
  border: #e5e5e5 solid 1px;
  background-color: white;
  border-radius: 5px 5px 0 0;
}
.uk-tab-fad>.uk-active>a {
  color: white!important;
  border-color: var(--cp-base-03);
  background-color: var(--cp-base-03);
  border-radius: 5px 5px 0 0;
}
.uk-tab-tz>*>a {
  border-bottom: 5px solid transparent
}
.uk-tab-tz>.uk-active>a {
  color: var(--cp-base-03)!important;
  font-weight: 700;
  border-color: var(--cp-base-03);
}

.timetable>table>thead>tr>th {
  text-align: left;
  color: #333!important;
  background-color: var(--cp-stap-02);
}
.timetable>table>thead {
  /* 縦スクロール時に固定する */
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  /* tbody内のセルより手前に表示する */
  z-index: 1;
}
.timetable>table>tbody>tr>th {
  text-align: left;
  color: #333;
  background-color: white;
  transition: background-color .1s linear;
}
.timetable>table>tbody>tr:hover>th {
  background-color: #ffd;
}
.timetable>table>thead>tr>th:first-child,
.timetable>table>tbody>tr>th:first-child {
  /* 横スクロール時に固定する */
  position: -webkit-sticky;
  position: sticky;
  left: 0;
}
.timetable.timetable-user>table>thead>tr>th:nth-child(2) {
  /* 横スクロール時に固定する */
  position: -webkit-sticky;
  position: sticky;
  left: 69px;
}
.timetable.timetable-user>table>thead>tr>th:nth-child(2n+1):not(:first-child),
.timetable.timetable-user>table>tbody>tr>td:nth-child(2n) {
  border-left: 1px solid #bbb!important;
}
.timetable:not(.timetable-user)>table>thead>tr>th:not(:nth-last-child(n+17)),
.timetable:not(.timetable-user)>table>tbody>tr>td:nth-last-child(2n) {
  border-left: 4px solid #e5e5e5!important;
}
.timetable>table>thead>tr>th:first-child {
  /* ヘッダー行内の他のセルより手前に表示する */
  z-index: 2;
}
.timetable>table>tbody>tr>td {
  text-align: center;
  color: #999;
}
.btn-circle {
  display: inline-block;
  margin: 0;
  width: 40px;
  height: 100%;
  padding-bottom: 2px;
  background-color: var(--cp-base-03);
  color: white!important;
  border-radius: 10rem;
  text-align: center;
}
.timetable>table>tbody>tr>td>.btn-circle {
  display: block;
  width: 100%;
}
.timetable>table>tbody>tr>td>a.btn-circle:hover {
  opacity: 0.7;
}
.timetable-hcell {
  min-width: 64px!important;
  font-weight: 700!important;
  text-align: center!important;
}

.uk-height-min-small {min-height: 150px;}
.uk-height-min-medium {min-height: 300px;}
.uk-height-min-390px {min-height: 390px;}
.uk-height-min-large {min-height: 450px;}

/* 取消時のスタイル追加 */
tr.line-through td:nth-child( -n + 3 ),
tr.line-through td:nth-child( -n + 3 ) span{
    text-decoration: line-through;
}

/* 印刷時に非表示にする */
@media print {
    .print_none {
        display: none;
    }
    main table th,
    main table td {
        padding-top:5px !important;
        padding-bottom:5px !important;
    }
    h4 {
        margin-bottom:8px !important;
        margin-top:8px !important;
    }
}

