h1, .h1 {
  margin: 0;
  padding-top: 10px;
}

h2, .h2, h3, .h3 {
	margin-top: 5px;
	margin-bottom: 2px;
}
.navbar-brand {
  background: url("../img/logo-top-sp.png") no-repeat left center;
  background-size: contain;
  height: 60px;
  width: 200px;
  margin-left: 10px;
}

header.main-header > a.navbar-brand.logo {
  background-color: #222d32;
}

section.page-header {
  margin: 0;
  padding: 0px 14px 0px 14px;
}

.hidden {
  display: none;
}

.p5 {
  padding: 5px;
}
.p10 {
  padding: 10px;
}
.pt15 {
  padding-top: 15px;
}
.mt5 {
  margin-top: 5px;
}
.ml5 {
  margin-left: 5px;
}
.ml10 {
  margin-left: 10px;
}
.mr5 {
  margin-right: 5px;
}
.mb10 {
  margin-bottom: 10px;
}
/* OPにも.boldが存在するので、基幹も.boldに統一していく。 */
.text-bold {
  font-weight: bold;
}
.bold {
  font-weight: bold;
}
.normal {
  font-weight: normal;
}
.fs12 {
  font-size: 12px;
}
.fs20 {
  font-size: 20px;
}
.faicon:hover {
  cursor: pointer;
}
.df-end {
  display: flex;
  justify-content: flex-end;
}
.w100per {
  width: 100%;
}
.border-green {
  border: 1px solid green;
}
.border-primary {
  border: 1px solid #3c8dbc;
}
.border-gray {
  border: 1px solid #aaa;
}

.bg_lightgray {
  background-color: lightgray;
}

.pointer:hover {
  cursor: pointer;
}

span.red {
  font-weight: bold;
  color: #cc333f;
}

.fa.fa-question-circle.help {
  color: steelblue;
  font-size: 16px;
  cursor: pointer;
}

@media (max-width: 767px) {
  div.wrapper > div.content-wrapper {
    margin-top: 0px;
    overflow-x: auto;
    padding-top: 50px;
  }
}

@media (min-width: 768px) {
  div.wrapper > div.content-wrapper {
    padding: 0;
    margin-top: 10px;
    overflow-x: auto;
  }
}

/* Sticky footer styles
-------------------------------------------------- */
html {
  position: relative;
  min-height: 100%;
}
body {
  /* Margin bottom by footer height */
  margin-bottom: 60px;
  padding-top: 40px;
  padding-bottom: 40px;
  background-color: #FFF;
}
.footer {
  position: absolute;
  bottom: 0;
  width: 100%;
  /* Set the fixed height of the footer here */
  height: 60px;
  background-color: #222;
}


/* Custom page CSS
-------------------------------------------------- */
/* Not required for template or sticky footer method. */

body > .container {
  padding: 0px 15px 0;
}
.container .text-muted {
  margin: 20px 0;
}

.footer > .container {
  padding-right: 15px;
  padding-left: 15px;
}

code {
  font-size: 80%;
}

.page-header{
	clear: both;
	padding: .5em;
	background-color: #f1f1f1;
	color: #2e375b;
	font-size: 2em;
	font-weight: normal;
}

.top-menu{
	max-width:500px;
}
.btn-topmenu{
	margin-bottom:10px;
}
.btn-margin{
  margin-left: 5px;
  margin-right: 5px;
}
h1 > span.sub {
    display: block;
    font-size: 40%;
    line-height: 1.6;
}
h1 > span.main {
    display: block;
    font-size: 80%;
    line-height: 1.6;
}
h1 > ul {
  padding-left: 0;
  margin-bottom: 0;
}
h1 > ul li {
  display: inline-block;
  list-style: none;
}
h1 > ul li span.small {
  font-size: 40%;
  line-height: 1.6;
}
h1 > ul li span.big {
  display: block;
  font-size: 80%;
  line-height: 1.6;
  margin-right: 50px;
}
h2{
	padding-top: 4px;
	padding-left: 9px;
	padding-bottom: 4px;
    margin: 40px 0 20px;
    border-left: 10px solid #CCCCCC;
    border-bottom: 1px solid #eee;
}
h3{
	padding-top: 2px;
	padding-left: 4px;
	padding-bottom: 2px;
    margin: 20px 0 10px;
    border-left: 10px solid #CCCCCC;
    border-bottom: 1px solid #eee;
}
h4{
	padding-top: 2px;
	padding-left: 4px;
	padding-bottom: 2px;
    margin: 20px 0 10px;
    border-bottom: 1px solid #eee;
}
.form-input {
  max-width: 720px;
  padding: 5px;
  margin: 0 auto;
}
.form-input .short_input {
  max-width: 200px;
  display: block;
}
.form-input .sshort_input {
  max-width: 80px;
  display: inline-block;
}
.form-input .ssshort_input {
  max-width: 60px;
  display: inline-block;
}
.form-input textarea.big_textarea {
  padding: 5px;
  width: 100%;
  height: 300px
}
.search_panel{
	margin-top:20px;
	margin-bottom:20px;
}
.no-padding-left{
	margin-left: -15px;
}
.no-padding-right{
	margin-right: -15px;
}
.no-padding{
	margin-left: -15px;
	margin-right: -15px;
}
.col-form-label {
    padding-top: calc(.5rem - 1px * 2);
    padding-bottom: calc(.5rem - 1px * 2);
    margin-bottom: 0;
}
.form-group {
    margin-bottom: 10px;
}
.float-right {
  float:right;
}
.tab-panel-default{
	border-left-color: #ddd; 
	border-right-color: #ddd;
	border-bottom-color: #ddd;
}

.mt10 {
  margin-top: 10px;
}
.mt20{
	margin-top: 20px;
}
.mt60{
    margin-top: 60px;
}
.mb20{
	margin-bottom: 20px;
}

.d_flex {
  display: flex;
}
.flw_wrap {
  flex-wrap: wrap;
}
.fd_column {
  flex-direction: column;
}

.fs17 {
  font-size: 17px;
}

.text_center {
  text-align: center;
}

.error_item {
  margin: 3px 0;
  color: #ee0101;
  font-weight: bold;
}

#resultStats{
	color: #808080;
	padding-left: 12px;
    padding-top: 0;
    padding-bottom: 0;
    padding-right: 8px;
}
.sat{
	color: #3F51B5;
}
.sun{
	color: #D50000;;
}
.breadcrumb{
  margin-bottom: 0;
  padding: 0px 0px 0px 15px;
  font-size: 0.5em;
  background-color: inherit;
}
.custom-dialog {
  width: 250px;
  margin: auto;
  border: 1px solid #aaa;
  box-shadow: 2px 2px 4px #888;
  position: fixed;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  z-index: 100;
  text-align: center;
  background-color: white;
  display: none;
}
.block {
  display: block;
}

fieldset.panel-tab {
  border-color: #ddd;
  box-shadow: 1px 1px 2px #888;
}

fieldset.panel-tab > div.tab-content {
  padding: 0.5em 1em 0.5em 1em;
  box-shadow: 2px 2px 4px #888;
}

fieldset.border {
  padding: 0.5em;
  margin: 1em 0em;
  border: 1px solid silver;
}

legend.inherit-line-height {
  display: block;
  width: 100%;
  padding: 0;
  margin-bottom: 20px;
  font-size: inherit;
  line-height: inherit;
  color: #333;
  border: 0;
  border-bottom: 1px solid #e5e5e5;
}

.alert-narrow {
    padding-top: 0px;
    padding-bottom: 0px;
}

form.form-inline > textarea.lesson-note {
  min-width: 300px;
  width: 100%;
  margin-bottom: 10px;
}

/*
---------------------------------------------

曜日のチェックボックスについてのデザイン定義

---------------------------------------------
*/

.checkbox-day-of-week {
  margin-bottom: 8px;
}

.checkbox-day-of-week label {
  padding-left: 0px;
  margin-right: 13px;
}

.checkbox-day-of-week label input[type="checkbox"] {
  position: absolute;
  opacity: 0;
}

.checkbox-day-of-week label input[type="checkbox"] + span {
  display: block;
  color: #fff;
  background: #ccc;
  border: 1px solid #ccc;
  border-radius: 4px;
  padding: 3px 6px 3px 6px;
  cursor: pointer;
  box-shadow: 0.5px 0.5px 0.5px 0.5px lightgrey;
}

.checkbox-day-of-week label input[type="checkbox"] + span:hover {
  background: #a3a3a3;
  border: 1px solid #a3a3a3;
}

.checkbox-day-of-week label input[type="checkbox"]:checked + span {
  background: #87ceeb;
  border: 1px solid #87ceeb;
  color: #333;
  cursor: pointer;
   -webkit-user-select: none;
   -moz-user-select: none;
   -ms-user-select: none;
   user-select: none;
}

.checkbox-day-of-week label input[type="checkbox"]:checked + span:hover {
  background: #72b3cc;
  border: 1px solid #72b3cc;
}

.checkbox-excluding-holiday {
  margin-bottom: 8px;
  margin-left: 14px;
}

.checkbox-excluding-holiday label {
  padding-left: 0px;
  margin-left: 10px;
}

.checkbox-excluding-holiday label input[type="checkbox"] {
  position: absolute;
  opacity: 0;
}

.checkbox-excluding-holiday label input[type="checkbox"] + span {
  display: block;
  color: #fff;
  background: #ccc;
  border: 1px solid #ccc;
  border-radius: 4px;
  padding: 3px 6px 3px 6px;
  box-shadow: 1px 1px 1px 1px #ddd;
  cursor: pointer;
   -webkit-user-select: none;
   -moz-user-select: none;
   -ms-user-select: none;
   user-select: none;
}

.checkbox-excluding-holiday label input[type="checkbox"] + span:hover {
  background: #a3a3a3;
  border: 1px solid #a3a3a3;
}

.checkbox-excluding-holiday label input[type="checkbox"]:checked + span {
  background: #87ceeb;
  border: 1px solid #87ceeb;
  color: #333;
  cursor: pointer
}

.checkbox-excluding-holiday label input[type="checkbox"]:checked + span:hover {
  background: #72b3cc;
  border: 1px solid #72b3cc;
}

.btn-select-all {
  padding: 4px 8px 4px 8px;
  border-radius: 4px;
  box-shadow: 1px 1px 1px 1px #ddd;
}

.btn-clear-all {
  padding: 4px 8px 4px 8px;
  border-radius: 4px;
  box-shadow: 1px 1px 1px 1px #ddd;
  margin-left: 12px;
}


/* 終日（All day）ボタンのデザイン定義 */

#set_all_day,
#set_all_day_one,
#set_all_day_together {
  padding: 4px 8px 4px 8px;
  margin-left: 12px;
  margin-top: 2.5px;
}

.read-only {
    pointer-events: none;
    background-color: #eee;
    opacity: 1;
}

.item_detail {
  border: 2px solid green;
  padding: 10px;
  border-radius: 3px;
}
.item_detail_title {
  font-weight: bold;
  color: green;
  margin-bottom: 10px;
}

/*
=================================================

メニューダイアログ

　マイページカレンダー用

=================================================
*/
.msg-modal-dialog .modal-content .modal-body {
  padding-top: 20px;
  padding-bottom: 30px;
}
.reserve-cancel-modal-dialog .modal-content .modal-body {
  padding-top: 70px;
  padding-bottom: 50px;
}
.msg-modal-dialog .modal-content .modal-body .info-area .info-msg {
  font-size: 15px;
  line-height: 2em;
}
.msg-modal-dialog .modal-content .modal-body .modal-btn-area {
  margin-top: 30px;
}

.modal-btn-area .btn-close {
  background: #efefef;
}

.msg-modal-dialog .modal-head {
  background: #d50000;
  border-radius: 4px 4px 0px 0px;
  text-align: center;
  padding: 4px;
  color: #fff;
  letter-spacing: 4px;
  font-size: 14px;
}

/*
=================================================

講師画面用　宿題表示

=================================================
*/
.lesson_homework {
  border-left: 3px solid #00adb5;
}
.lesson_homework {
  margin-bottom: 30px;
}
.lesson_homework table {
  width: 100%;
}
.lesson_homework table tbody tr th, .lesson_homework table tbody tr td {
  padding: 5px;
}
.lesson_homework table tbody tr th {
  width: 15%;
}
.lesson_homework table tbody tr:nth-child(odd) {
  background: #eaf8f9;
}
.lesson_homework table tbody tr:nth-child(even) {
  background: #ffffff;
}
.lesson_homework table tbody tr textarea {
  height: 200px;
}
.lesson_homework button {
  display: block;
  margin: 10px auto;
}

/* ナビゲーションバーの新着件数表示用 */
.menu li a h3.case-name {
  white-space: normal;
}

#file_url {
  width: 80%;
  margin-right: 5px;
}

/* カウンセリングシート　編集フォーム用 */
#couseling_sheet_form div.form-group div p {
  margin-bottom: 0;
}
#couseling_sheet_form div .error_item,
#counselor_shift_form div .error_item,
#lesson_schedule_form div .error_item {
  margin-bottom: 3px;
  color: #ee0101;
  font-weight: bold;
}

/*
=================================================

カレンダー関連

=================================================
*/
.weekly_calendar {
  width: 100%;
  table-layout:fixed;
  border: 1px solid #D4D4D4;
  margin-bottom: 30px;
}
.weekly_calendar table thead, .weekly_calendar table tbody {
  display: block;
}
.weekly_calendar table thead {
  margin-right: 17px;
}
.weekly_calendar table tbody {
  overflow-x: hidden;
  overflow-y: scroll;
  height: 400px;
}
.weekly_calendar table th, .weekly_calendar table td {
  text-align: center;
  font-size: 14px;
  border: 1px solid #D4D4D4 !important;;
  background: none;
  height: 35px;
/*  width: calc(100% / 8);
  width : -webkit-calc(100% / 8) ;*/
}
.weekly_calendar table th.r_date {
  background: #F5DCE7;
}
.weekly_calendar table th.b_date {
  background: #D3E3F3;
}
.weekly_calendar table th.w_date {
  background: #FFFFFF;
}
.weekly_calendar ul.change_week {
  padding: 0;
  margin: 10px 0;
  text-align: center;
  font-size: 16px;
}
.weekly_calendar .change_week li {
  padding: 5px 15px;
  margin: 0 15px;
  list-style: none;
  cursor: pointer;
  border: 1px solid #D4D4D4;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  -ms-border-radius: 4px;
  border-radius: 4px;
}
.weekly_calendar .change_week li.prev_week {
  float: left;
}
.weekly_calendar .change_week li.next_week {
  float: right;
}
.weekly_calendar .change_week li:hover {
  background: #6C757D;
  color: #FFFFFF;
}
.weekly_calendar .loding {
  text-align: center;
  height: 525px;
  line-height: 525px;
  display: flex;
  justify-content: center;
  align-items: center;
}
.weekly_calendar .temporary {
  color: #CC4466;
  cursor: pointer;
  font-weight: bold;
  font-size: 14px;
}
.weekly_calendar .temporary:hover {
  background: #ffcfdb;
}
.weekly_calendar .ng {
  background: #e6e6e6;
  font-size: 22px;
}
.hope_middle_area {
  margin: 0 auto 30px;
  padding: 10px;
  width: 100%;
  max-width: 430px;
  background: #F4F7F9;
  border: 1px solid #212529;
  display: none;
}
.hope_middle_area p {
  margin: 2px 0;
}
.hope_middle_area span {
  color: #00a65a;
  font-weight: bold;
}

/*
=================================================

講師住民税設定画面

=================================================
*/
.inhabitant_tax_table {
  min-width:900px;
}

/*
=================================================

教室割り当て種別ダイアログ関連

=================================================
*/
.classroom_color_dialog {
  width: 500px;
  height: 200px;
  text-align: center;
  border: 1px solid #aaa;
  box-shadow: 2px 2px 4px #888;
  background: #FFF;
  position: fixed;
  z-index: 100;
}
.classroom_color_dialog label {
  padding: 3px 6px;
  margin: 10px 5px;
  font-weight: normal;
}

/*
=================================================

ヘッダーナビ ドロップダウンメニュー

=================================================
*/
.dropdown-menu {
  max-height: 90vh;
  overflow: scroll;
}

/*
=================================================

吹き出し

=================================================
*/
.pop_memo {
  display: none;
  padding: 10px;
  font-size: 14px;
  margin: 0 0 0 15px;
  background: #666;
  color: #fff;
  position: absolute;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
}
.pop_memo:before {
  right: 100%;
  top: 6px;
  border: solid transparent;
  content: " ";
  height: 0;
  width: 0;
  position: absolute;
  border-right-color: #5e5e5e;
  border-width: 6px;
}