/*------------------------------
  body
------------------------------*/
body {
  min-width: 1140px;
  color: #333333;
  background: #F5F5F5;
  padding-bottom: 50px;
}

/*------------------------------
  header
------------------------------*/
.navbar-brand {
  padding: 10px;
}
.navbar {
  height: 48px;
  padding: 0 10px 0 0;
}
.navbar.navbar-type01 {
  background: #313131;
  border-top: 2px solid #313131;
  border-bottom: 2px solid #313131;
}
.navbar.navbar-type02 {
  background: #24487d;
  border-top: 2px solid #24487d;
  border-bottom: 2px solid #24487d;
}
.navbar-info {
  font-size: 0.75rem;
  color: rgba(255,255,255,1);
}
.navbar.navbar-dark .navbar-nav .nav-link {
  color: rgba(255,255,255,1);
}
.navbar-info li + li {
  margin-right: 20px;
}
.navbar-nav .nav-item {
  position: relative;
}
.navbar-nav .nav-item:after {
  content: '';
  display: block;
  width: 1px;
  height: 100%;
  background: #ffffff;
  position: absolute;
  top: 0;
  right: 0;
}
.navbar.navbar-type01 .nav-item a {
  white-space: nowrap;
  padding: 10px 10px !important;
  background: #313131;
}
.navbar.navbar-type02 .nav-item a {
  padding: 10px 20px !important;
  background: #24487d;
}
.navbar .nav-item a:hover {
  opacity: 0.7;
}
.navbar-nav .nav-item.active a {
  background: rgba(255,255,255,1)
} 
.navbar.navbar-type01 .nav-item.active a {
  color: #111831;
}
.navbar.navbar-type02 .nav-item.active a {
  color: #313131;
}
/*------------------------------
  container
------------------------------*/
.container {
  padding: 30px 20px;
  margin: 30px auto;
  background: #ffffff;
  box-shadow: 0px 0px 8px 2px rgba(0, 0, 0, 0.05);
  min-width: 1140px;
}

/*------------------------------
  layout
------------------------------*/

/* PC / TAB 表示切り替え */
.is_pc {
  display: block;
}
body.is_ipad .is_pc {
  display: none;
}

.is_tab {
  display: none;
}
body.is_ipad .is_tab {
  display: block;
}

.select-type01 .select01 {
  height: 180px;
}
.select-type01 .select02 {
  height: 100px;
}
.select-type01 > div {
  width: 480px;
}
.select-type01 .select-btn {
  width: 140px;
  padding: 0 20px;
  padding-top: 25px;
}
.select-type01 > div:nth-of-type(1),
.select-type01 > div:nth-of-type(3) {
  margin-bottom: auto;
}
.select-type01 .select-btn button {
  width: 100px;
}
.select-type01 .select-btn button + button {
  margin-top: 10px;
}
.select-type01 + .card-type01 {
  margin-top: 1rem;;
}
.select-type01 .alert {
  margin-top: 10px;
  margin-bottom: 0;
}
.select-type01 select {
  width: 100%;
}
.select-type01  select.custom-select option {
  overflow: hidden;
  font-family: "ＭＳ ゴシック", "MS Gothic", Osaka−等幅;
}
.select-type01 + .select-type01 {
  margin-top: 20px;
}

.box-select {
  overflow-y: auto;
  height: 180px;
  width: 100%;
  padding: .375rem .75rem .375rem .75rem;
  border: 1px solid #ced4da;
  border-radius: .25rem;
  transition: background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;
  border-radius: 3px;
}
.box-select .select01 {
  height: 180px;
}
.box-select .select02 {
  height: 100px;
}
.box-select ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.box-select ul li {
  display: flex;
  color: #495057;
}
.box-select ul li.is_active {
  background: #bee0f3;
  color: rgb(16, 16, 16);
}
.box-select ul li.is_checked {
  background-color: rgb(206, 206, 206);
  color: rgb(16, 16, 16);
}
.box-select ul li.is_disabled {
  color: #ddd;
}
.box-select ul li span {
  height: 24px;
  cursor: default;
  overflow: hidden;
}


/*------------------------------
  table
------------------------------*/
/* table-type01 */
.table-type01 {
  margin-bottom: 0;
  width: 100%;
  table-layout: fixed;
  word-break: break-all;
  word-wrap: break-all;
}
.table-type01 th,
.table-type01 td {
  vertical-align: top;
  font-size: 0.875rem;
  padding-top: 10px;
  padding-bottom: 10px;
  word-wrap: break-word;
}
.table-type01 th {
  padding-top: 15px;
  line-height: 2;
  text-align: right;
}
.table-type01 th label {
  margin-bottom: 0;
}
.table-type01 th label input {
  margin-left: 10px;
}
.table-type01 td {
  padding-right: 30px;
}
.table-type01 td .text-danger,
.table-type01 td .text-simple {
  margin-top: 5px;
}

.table-type01.table-type01-confirm th,
.table-type01.table-type01-confirm td {
  padding-top: 20px;
  vertical-align: top;
}
.table-type01.table-type01-confirm th {
  line-height: 1.5;
}

.table-type01 .table-type01-inner th,
.table-type01 .table-type01-inner td {
  padding-top: 5px;
  vertical-align: middle;
}

/* table-type02 */
.table-type02 {
  margin-top: 1rem;
  margin-bottom: 0;
  table-layout: fixed;
}
.table-type02 tr.table_line {
  border-top: 3px solid #dee2e6;
}
.table-type02 th,
.table-type02 td {
  vertical-align: middle;
  font-size: 0.875rem;
  padding: .3rem .5rem
}
.table-type02 thead th {
  vertical-align: middle;
  border-bottom: none;
}
.table-type02 .table-active, .table-active>td, .table-active>th {
  background: rgba(0,0,0,.02);
}
.table-type02 td {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.table-type02 td {
  text-align: left;
}
.table-type02 .btn-confirm {
  padding: .1rem .5rem;
  margin-left: 5px;
}
.table-type02 .table-active > th {
  font-weight: normal;
  text-align: center;
}

/* 教材 */
.table-type02.table-type02-size01 td {
  height: 50px;
  white-space: normal;
}
.table-type02.table-type02-size01 td.txt-type01 {
  height: auto;
  font-size: 0.6875rem;
}
.table-type02.table-type02-size02 td {
  height: 60px;
  white-space: normal;
}
.table-type02.table-type02-size02 td.txt-type01 {
  height: auto;
  font-size: 0.6875rem;
}
.table-type02 .icon_viewer {
  position: relative;
  padding-right: 85px;
}
.table-type02 .icon_viewer > span {
  position: absolute;
  top: 50%;
  right: 0;
  width: 80px;
  margin-top: -15px;
}

/* table-type03 */
.table-type03 {
  margin-top: 1rem;
  table-layout: fixed;
}
.table-type03 tr.table_line {
  border-top:  3px solid rgba(0,0,0,.075);
}
.table-type03 th,
.table-type03 td {
  padding: 6px 10px;
  vertical-align: middle;
  font-size: 0.875rem;
}
.table-type03 .table-active td {
  background: #ffffff;
}
/* table-type04 */
.table-type04 th,
.table-type04 td {
  padding-top: 0px;
  padding-bottom: 0px;
}
/* table-type05 */
.table-type05 {
	table-layout: fixed;
}
/* table-type06 */
.table-type06 {
	table-layout: fixed;
	margin-left: 12px;
	margin-bottom: 0;
}
.table-type06 td {
	font-size: 0.875rem;
}


.table-bordered th,
.table-bordered td {
  border: 1px solid #dee2e6;
}

/*------------------------------
  title
------------------------------*/
.hl_h2 {
  display: flex;
  align-items: center;
  background: #e9d2b1;
  height: 80px;
  border-top: 2px solid #CCC;
  border-bottom: 2px solid #CCC;
}
.in_hl_h2 {
  width: 1140px;
  margin: 0 auto
}
.hl_h2 h2 {
  margin-bottom: 0;
  font-size: 1.25rem;
  text-align: center;
  font-weight: bold;
}

/*------------------------------
  link
------------------------------*/
.link-type01 p {
  font-size: 0.875rem;
}
.link-type01 p + p {
  margin-left: 20px;
}

/*------------------------------
  text
------------------------------*/
.text-note {
  font-size: 0.875rem;
}

/*------------------------------
  btn
------------------------------*/
.btn-info {
  background: #64c0ab;
  border: 1px solid #64c0ab;
}
.btn-info:hover {
  background: #64c0ab;
  border: 1px solid #64c0ab;
  opacity: 0.8;
}
.btn-info.disabled {
  background: rgba(0,0,0,0.2);
  border: none;
}

/*------------------------------
  pagination
------------------------------*/
.pagination-type01 li:nth-child(2) {
  padding-top: 6px;
  font-size: 0.875rem;
}
.pagination-type01 .page-link {
  border: none;
}
.pagination-type01 .btn:hover {
  background: none;
}
.pagination-type01 + .table {
  margin-top: 5px;
}
.table + .pagination-type01{
  margin-top: 5px;
}

/*------------------------------
  card
------------------------------*/
.btn-group {
  margin-bottom: 20px;
}

/*------------------------------
  card
------------------------------*/
.card-type01 {
  margin-bottom: 40px;
  border-radius: 0;
}
.card-type01 .card-body {
  background: rgba(0,0,0,.02);
}
.card-type01 .card-footer {
  background: rgba(0,0,0,.04);
}
.card-type01 .input-group + .input-group {
  margin-left: 20px;
}
.card-type01 .card-text {
  font-size: 0.875rem;
}
.card-type01 .badge-wrap {
  padding-right: 40px;
  position: relative;
}
.card-type01 .badge-wrap .badge {
  position: absolute;
  top: 21px;
  right: 2px;
}
.card-type01.card-login {
  box-shadow: 0px 0px 8px 2px rgba(0, 0, 0, 0.05);
}
.card-type01.card-login {
  width: 650px;
  margin: 5rem auto 5rem auto;
}
.card-type01.card-login .card-body,
.card-type01.card-login .card-footer {
  background: #ffffff;
}
.card-type01.card-login .alert {
  margin-top: 10px;
  margin-bottom: 0;
}
.card-type01.card-login input[type=checkbox] {
  margin-right: 5px;
}
.card-btn-type01 {
  position: relative;
}
.card-btn-type01 button + button {
  position: absolute;
  right: 0;
}
.card-btn-type01 p {
  position: absolute;
  right: 20px;
  margin-top: 10px;
  margin-bottom: 0;
  font-size: 0.75rem;
}
.card-btn-type02 {
  position: relative;
}
.card-btn-type02 button + button {
  position: absolute;
  left: 0;
}
.card-btn-type02 button + a {
  position: absolute;
  left: 0;
}
.card-btn-type03 {
  position: relative;
}
.card-btn-type03 a:nth-of-type(1) {
  position: absolute;
  left: 0;
}
.card-btn-type03 a:nth-of-type(3) {
  position: absolute;
  right: 0;
}
.card-btn-type04 {
  position: relative;
}
.card-btn-type04 a:nth-of-type(1) {
  position: absolute;
  left: 0;
}
/* margin */
.card-type01 + .pagination {
  margin-top: 40px;
}
.card-type01-footer {
  margin-top: 1rem;
}
.card-type01-footer .card-footer {
  border-top: none;
}

/*------------------------------
  modal
------------------------------*/
.modal-footer {
  justify-content: center;
}
.modal .progress {
  margin:  20px 0 20px 0;
}

/*------------------------------
  width
------------------------------*/
.w_20 {
  width: 20%;
}
.w_100 {
  width: 100%;
}
.w-40px {
  width: 40px !important;
}
.w-60px {
  width: 60px !important;
}
.w-85px {
  width: 85px !important;
}
.w-100px {
  width: 100px !important;
}
.w-120px {
  width: 120px !important;
}
.w-158px {
  width: 158px !important;
}
.w-170px {
  width: 170px !important;
}
.w-185px {
  width: 185px !important;
}

/*------------------------------
  form
------------------------------*/
select option:disabled {
  color: #ddd;
}
.form-checkbox {
  padding-left: 2rem;
}
.form-check-inline + .form-check-inline {
  margin-top: 10px;
}

/*------------------------------
  list-group
------------------------------*/
.list-group {
  padding-right: 0;
}
.list-group-item {
  padding: .5rem .75rem;
  border-radius: 0 !important;
  font-size: 0.875rem;
  display: flex;
}
.list-group-item-wrap {
  padding: 0;
  border-radius: none;
}
.list-group-item-wrap + .list-group-item-wrap {
  margin-top: 1rem;
}
.list-group-item-ttl {
  width: 30%;
  padding: .5rem;
  font-size: 1rem;
  border-right: 1px solid rgba(0,0,0,.125);
  background: rgba(0,0,0,.06);
  cursor: pointer;
}
.list-group-inner {
  width: 70%;
  padding: 5px;
}
.list-group-inner .list-group-item {
  cursor: pointer;
}
.list-group-inner .list-group-item + .list-group-item {
  border-top: 1px solid rgba(0,0,0,.125);
}

/*------------------------------
  footer
------------------------------*/
footer {
  width: 100%;
  padding: 15px 20px 0 20px;
  border-top: 2px solid #ccc;
}
footer p {
  margin-bottom: 0;
  font-size: 0.875rem;
}

/*------------------------------
  image
------------------------------*/
.book_image {
  max-width: 400px;
  max-height: 500px;
}

/*------------------------------
  bootstrap
------------------------------*/
.form-control.is-invalid {
  background-image: none;
  padding-right: 0.75rem;
}
.datepicker .class-sunday {
  color: red !important;
}
.datepicker .class-saturday {
  color: blue !important;
}
