body{
    font-family: 'Avenir','Helvetica Neue','Helvetica','Arial','メイリオ',Meiryo,YuGothic,'Yu Gothic','Hiragino Sans','ヒラギノ角ゴシック','ＭＳ Ｐゴシック','MS PGothic',sans-serif;
    color:#3c3c3c;
    height: 100vh;
    font-size:15px;
    letter-spacing: 0.05em;
}

*:not([type="checkbox"]):not([type="radio"]):focus {
    outline: none;
}

input[type="checkbox"]:focus,
input[type="radio"]:focus {
    outline: 1px solid #009fe8;
}

.blue{
    color:#009fe8;
}

.light-blue{
    color:#e1e4e8;
}

.w-4{width:4%!important;}
.w-5{width:5%!important;}
.w-10{width:10%!important;}
.w-15{width:15%!important;}
.w-20{width:20%!important;}
.w-25{width:25%!important;}
.w-30{width:30%!important;}
.w-40{width:40%!important;}
.w-45{width:45%!important;}
.w-50{width:50%!important;}
.w-55{width:55%!important;}
.w-60{width:60%!important;}
.w-70{width:70%!important;}
.w-80{width:80%!important;}
.w-85{width:85%!important;}
.w-90{width:90%!important;}
.w-96{width:96%!important;}

.w-38{width:38%;}


/*———————————
btn
———————————*/
.btn-navy {
    font-weight: bold;
    color: #fff;
    background-color: #183c5a;
    border:none;
    font-size: 0.8rem;
    padding-top: 0.3em;
    padding-bottom: 0.3em;
}

.btn-navy:hover {
    color:#fff;
    background-color: #285377;
    text-decoration: none;
}

.btn-lightblue {
    font-weight: bold;
    color: #6c6e71;
    background-color: #e1e4e8;
    border:none;
    font-size: 0.8rem;
    padding-top: 0.3em;
    padding-bottom: 0.3em;
}

.btn-lightblue:hover {
    color:#6c6e71;
    background-color: #d0d4d8;
    text-decoration: none;
}

.btn-outline-blue {
    font-weight: bold;
    color: #009fe8;
    background-color: #fff;
    border:2px solid #009fe8;
}

.btn-outline-blue:hover {
    color:#fff;
    background-color: #009fe8;
    text-decoration: none;
}

.btn-circle-gray{
    font-weight: bold;
    color: #fff;
    background-color: #acb1b5;
    border:none;
    width: 1.5rem;
    height: 1.5rem;
}

.btn-circle-gray:hover {
    color:#fff;
    background-color: #009fe8;
    text-decoration: none;
}

.btn-circle-gray i{
    font-size: 1rem;
}

.btn[disabled]{
    color: gray;
    border-color: gray;
}

.btn[disabled]:hover{
    background-color: transparent;
}


/*———————————
header
———————————*/
header{
    background-color:#fff;
}

header .h-box{
    padding:3px 0;
    height:66px;
}

header .h-box p{
    margin-bottom:0;
}

header .h-box .logo{
    width: auto;
    height:60px;    /* .h-boxの高さ(66px - 上下の余白3pxずつ = 60px) */
    margin-right: calc(1rem + 56px + 1rem);
}

header .h-box .logo img{
    width: auto;
    height: 60px;    /* .h-boxの高さ(66px - 上下の余白3pxずつ = 60px) */
}

header .h-box .menu-btn{
    margin-left: calc(-1rem - 56px);
}

header .h-box .page-info h1,
.modal .page-info h2{
    font-size:1.1rem;
    margin-bottom:0;
    font-weight: bold;
}

header .h-box .page-info h2,
.modal .page-info h3{
    font-size:0.7rem;
    margin-bottom:0;
    font-weight: normal;
    color:#848484;
}

header .h-box .login-info p{
    text-align:right;
    font-size:0.65rem;
}

header div.last-update-Info,
.modal div.last-update-Info {
    font-size: 0.8rem;
    height: calc(0.8em + 0.5rem + 0.5em);
    padding: .2rem .5rem;
    background-color: #009fe8;
    color: #fff;
}


/*———————————
alert
———————————*/
.alert-type-1{
    background-color:#ffd8d8;
    color:#d14545;
    border:none;
}

.alert-type-1 p{
    margin-bottom:0;
}


/*———————————
form
———————————*/
/* form-default */

form.form-default .form-group {
    margin-bottom: 0.6rem;
}

form.form-default textarea:focus,
form.form-default select:focus,
form.form-default input:not([type="checkbox"]):not([type="radio"]):focus,
form.form-default .uneditable-input:focus {
  outline: 0;
  box-shadow: none;
  border: 1px solid #009fe8;
  background-color: #ffffff;
}

form.form-default label{
    width: calc(100% - 1.0rem);
    text-align: center;
    background-color:#b9c4cd;
    border-radius:5px;
    font-size:0.8rem;
    height: calc(0.8em + 0.5rem + 0.5em);
    padding: .2rem .5rem;
    display: block;
    margin-bottom: 2px;
}

form.form-default p.label {
    font-size: 0.8rem;
    white-space: nowrap
}

form.form-default .form-check label{
    font-weight: normal;
}

form.form-default input[type="text"],
form.form-default input[type="email"],
form.form-default input[type="password"],
form.form-default select,
form.form-default textarea{
    height: calc(0.8em + 0.5rem + 0.5em);
    padding: .2rem .5rem;
    font-size: 0.86rem;
    line-height: 1.5;
    border-radius: .2rem;
    border-color: #a4a9ae;
}

form.form-default .form-control.is-invalid,
form.form-default .was-validated .form-control:invalid,
form.form-default .custom-combobox-input.is-invalid {
    background-image:none;
    background-color: #fff1f1;
}

form.form-default .form-control.is-warning {
    background-image:none;
    background-color: #fffff2;
}

/* Firefoxにてd-flex配下のテキストボックスの幅が広くなる現象の対策 */
.d-flex .form-control {
    min-width: 0;
}

form.form-default input::placeholder {
  color: #b7b7b7;
}
form.form-default input:-ms-input-placeholder {
  color: #b7b7b7;
}
form.form-default input::-ms-input-placeholder {
  color: #b7b7b7;
}

form.form-default button.btn-sm {
    height: calc(0.8em + 0.5rem + 0.5em);
    padding: .2rem .5rem;
    font-size: 0.8rem;
}

/* form-type-1 */
form.form-type-1 label{
    text-align: left;
    background:none;
}

/* form-type-2 */
form.form-type-2 label{
    text-align: left;
    background:none;
    font-size:1.0rem;
    display: inline;
}

/* error */
.error i{
    font-size: 1.0rem;
    color:#F44336!important;
}
div.error a{
    cursor: pointer;
}

div.error a[data-toggle="popover"][data-content=""] {
    visibility: hidden;
}

.form-control.is-invalid{
    padding-right:.75rem;
}

/* warning */
.warning i{
    font-size: 1.0rem;
    color: #ffc107!important;
}

/* input-group */
form.form-default .input-group {
    width: 100%;
}

form.form-default .input-group > .form-control{
    width: 1%;
}

form.form-default .input-group>.input-group-append>.btn{
    padding:0;
    padding-left:0.5rem;
    padding-right:0.5rem;
    border-color: #a4a9ae !important;
}

/* カレンダーコントロールが非活性の場合にアイコンを非表示にする */
form.form-default .input-group>.datetimepicker-input[disabled]:not(:last-child){
    border-top-right-radius: .2rem!important;
    border-bottom-right-radius: .2rem!important;
    cursor: default;
}
form.form-default .input-group>.datetimepicker-input[disabled]:not(:last-child) + .input-group-append{
    display: none;
}

/* date-type-2 */
form.form-default .date-type-2{
    width: calc(100% - 1.3rem);
}

/* tani-type-1 */
form.form-default .tani-type-1 input{
    width: calc(100% - 2.6rem);
}

/* tani-type-2 */
form.form-default .tani-type-2 input{
    width: calc(100% - 3.5rem);
}

/* tani-type-3 */
form.form-default .tani-type-3 input{
    width: calc(100% - 1.3rem);
}

/* text-type-1 */
form.form-default .text-type-1{
    width: calc(100% - 1.3rem);
}

/* cb-type-1 */
form.form-default .cb-type-1 label{
    text-align: left;
    background:none;
    border:none;
    font-size:0.8rem;
    padding:3px 0 0;
    display: block;
    margin-bottom: 0;
}

/* cb-type-2 */
form.form-default .cb-type-2 label{
    text-align: left;
    background: none;
    border: none;
    font-size: 0.8rem;
    padding: 0px;
    display: block;
    margin-bottom: 0;
    width: auto;
    height: auto;
}

/* cb-type-3 */
form.form-default .cb-type-3 label{
    background: none;
    padding: 0;
    margin-bottom: 0;
    width: auto;
    height: auto;
}

/*———————————
combobox
———————————*/
.custom-combobox {
    position: relative;
    display: inline-block;
    width: calc(100% - 1.0rem - 30px);
}

.date-hokenkikan .item-2 .custom-combobox{
    width: calc(100% - 1.0em - 30px);
}

.ui-menu{
    z-index: 1200!important;
}

.ui-autocomplete {
    max-height: 400px;
    overflow: hidden scroll;
}

span.custom-combobox input.custom-combobox-input {
    width:100%;
    /*height: calc(1.5em + .75rem + 2px);*/
    /*padding:.375rem .75rem*/
    background-color: #fff;
    border: 1px solid #ced4da;
    height: calc(0.8em + 0.5rem + 0.5em);
    padding: .2rem .5rem;
    font-size: 0.8rem;
    line-height: 1.5;
    border-color: #a4a9ae;
}

.custom-combobox-toggle {
    position: absolute;
    top: 0;
    bottom: 0;
    margin-left: -1px;
    padding: 0;
    width:30px;
    border-color: #a4a9ae;
}

/*エラー*/
.combobox-error .custom-combobox-input {
    border: 1px solid #dc3545;
    background-color: #fff1f1;
}

/*無効*/
.combobox[disabled] + .custom-combobox{
    width: calc(100% - 1.0rem);
}

.date-hokenkikan .item-2 .combobox[disabled] + .custom-combobox{
    width: 100%;
}

.combobox[disabled] + .custom-combobox .custom-combobox-input {
    border-radius: .2rem;
    background-color: #e9ecef;
    opacity: 1;
    pointer-events: none;
}

.combobox[disabled] + .custom-combobox .custom-combobox-toggle {
    pointer-events: none;
    display: none;
}


/*———————————
保険期間
———————————*/
.date-hokenkikan .item-1{
    width:35%;
}

.date-hokenkikan .item-2{
    width:15%;
}

.date-hokenkikan .item-3{
    width:5%;
}

/*———————————
登録番号
———————————*/

.touroku-item .custom-combobox{
    width: 100%;
}

.touroku-item .custom-combobox .custom-combobox-input{
    width: calc(100% - 30px);
}


/*———————————
linebox
———————————*/
.linebox-1{
    border:1px solid #ccc;
    padding:0.55rem;
    border-radius: 5px;
}

.linebox-1 h4{
    color:#009fe8;
    font-weight:bold;
    text-align: center;
    border-radius:5px;
    font-size:0.9rem;
}

.linebox-1 label{
    text-align:left!important;
    background:none!important;
    padding:0!important;
}


/*———————————
table
———————————*/
.box-table{
    width:100%;
    /*overflow-x: scroll;
    height:280px;
    overflow-y: scroll;*/
}

table.ta-type-1{
    margin-bottom:0;
}

table.ta-type-1 thead tr th{
    text-align: center;
    background-color:#183c5a!important;
    border:1px solid #e1e4e8!important;
    color:#fff;
    font-weight: normal;
    font-size: 0.8rem;
}

table.ta-type-1 thead tr th,
table.ta-type-1 tbody tr td{
    vertical-align: middle;
    white-space: nowrap;
}

.box-table .table .detail-select{
    width: 55px;
}

.box-table .table input[type="text"].form-control {
    min-width: 10px;
}

table tr.selected td {
    background-color: #ffc57f !important;
}

table#carInfoTable td {
    text-align: right;
}

table.table-header-sticky thead th {
    position: sticky;
    position: -webkit-sticky;
    top: -1px;
    z-index: 1;
}

table.table-header-sticky th.second-row {
    top: 1.7rem
}

/*———————————
datetimepicker
———————————*/
.bootstrap-datetimepicker-widget {
    position:absolute;
    bottom:0;
}

table.ta-type-1 .bootstrap-datetimepicker-widget table th {
    background-color:#fff!important;
    color:#3c3c3c;
}

table.ta-type-1 .bootstrap-datetimepicker-widget table th,
table.ta-type-1 .bootstrap-datetimepicker-widget table td{
    white-space:normal!important;
}


/*———————————
h3 title
———————————*/
.box-main h3,
.modal-body h3{
    font-size: 0.9rem;
    color:#fff;
    font-weight: bold;
    background-color:#46627a;
    padding:0.4rem 0.5rem;
    letter-spacing:0.08rem;
    margin-bottom:0;
}

.box-main h3 a{
    font-size: 0.9rem;
    display: block;
    color:#fff;
    text-decoration: none;
}

.box-main h3 label,
.modal-body h3 label{
    font-weight:normal;
    font-size:0.8rem;
}


/*———————————
h4 title
———————————*/
.box-main h4{
    height: calc(0.8em + 0.5rem + 0.5em);
    font-size: 0.8rem;
    color:#3c3c3c;
    font-weight: bold;
    background-color: #87CEFA;
    padding-top: .3rem;
    padding-bottom: .3rem;
    padding-left: 1.4rem;
    letter-spacing: 0.08rem;
    margin-bottom: 0;
}

.box-main h4 a{
    font-size: 0.8rem;
    display: block;
    color:#3c3c3c;
    text-decoration: none;
}

.box-main h4 label{
    font-weight:normal;
    font-size:0.8rem;
}


/*———————————
tab
———————————*/
ul.nav-tabs {
    border-bottom: 2px solid #009fe8;
}
li.nav-item {
    border: 2px solid transparent;
    border-bottom-color: #009fe8;
    border-top-left-radius: .25rem;
    border-top-right-radius: .25rem;
}
li.nav-item.active {
    border-color: #009fe8 #009fe8 #fff;
}

ul.tabs-type-1 .nav-link.active {
    color: #009fe8;
    font-weight: bold;
    border-width:2px;
}

ul.tabs-type-1 .nav-item a{
    color: #bfc5cc;
    font-weight: bold;
    padding: .4rem 3rem;
    border: none;
    display: inline-block;
}
ul.tabs-type-1 div.error {
    display: inline-block;
    min-width: 0px;
}
ul.tabs-type-1 div.error a[data-toggle="popover"] {
    padding: 0;
    padding-right: .5rem;
    margin-left: -24.75px;
}
ul.tabs-type-1 div.error a[data-toggle="popover"][data-content=""] {
    padding: 0;
    width: 0;
}

.tabs-type-1 .nav-item {
    margin-bottom: -2px;
}


/*———————————
drawer
———————————*/
.drawer-hamburger {
    position:static;
    cursor: pointer!important;
}

.drawer-nav {
    top: 66px;
    height: 100%;
    color: #fff;
    background-color: #009fe8;
    z-index: 999;
}

.drawer-overlay {
    background:none;
}


/*———————————
g-navi
———————————*/
ul.g-navi{
    padding-left:0;
}

ul.g-navi .menu-item i {
    color:rgba(255, 255, 255, 0.7);
}

ul.g-navi .menu-item a{
    padding:0.6rem;
    color: #fff;
    display: block;
    background-color:#0091d3;
    border-bottom:1px solid #0184bf;
    padding:0.6rem;
}

ul.g-navi .menu-item a:hover{
    background-color:#14abf0;
    text-decoration: none;
}

ul.g-navi a.menu-item-link,
ul.g-navi .menu-item > a{
    font-weight: bold;
}

ul.g-navi ul.submenu {
    display: none;
    list-style: none;
    padding-left:0;
}

ul.g-navi li.submenu-item a{
    padding:0.6rem 0.6rem 0.6rem 1.5rem;
    background-color: #009fe8;
    font-weight: normal;
}


/*———————————
list-group
———————————*/
.listgroup-type-1 a i{
    color:#009fe8;
}

.listgroup-type-1 a:hover{
    background-color:#009fe8;
    color:#fff;
    transition: all 0.2s ease 0s;
}

.listgroup-type-1 a:hover i{
    color:#fff;
    transition: all 0.2s ease 0s;
}


/*———————————
modal
———————————*/
.modal-type-1 h1{
    font-size:1.2rem;
    color:#009fe8;
    font-weight:bold;
    margin-bottom:0;
}

/*———————————
loading
———————————*/
.box-loading {
    width: 100%;
    height: 100%;
    background: #fff;
    opacity: 0.9;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 2000;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.box-loading .spinner-border {
    color:#009fe8;
    width: 3rem;
    height: 3rem;
}

.loading-item-1 {
    border: .35em solid #009fe8;
    border-right-color: transparent;
}

.loading-2{
    position: relative;
}

.loading-2 .loading-item-2{
    position: absolute;
    top:-1.6rem;
    right:-1.6rem;
    color:#009fe8;
    width:1.5rem;
    height: 1.5rem;
}


/*———————————
scroll
———————————*/
.scroll-box-type-1{
    display: flex!important;
    flex-direction: column;
    height: calc(100vh - 44px - 66px - 35px - 40px - 2.0rem - 0.5em);
}

.scroll-box-type-2{
    display: flex!important;
    flex-direction: column;
    height: calc(100vh - 66px - 35px - 1.0rem - 1.1em);
}

.scroll-inner{
    flex: 1;
    overflow: auto;
}

/*———————————
住所検索ダイアログ
———————————*/
#modal-address-search-result {
    max-height: 70vh;
    overflow-y: scroll;
}

/*———————————
pager
———————————*/
div.fixed-table-pagination div.pagination-detail span.page-list,
div.fixed-table-pagination div.pagination-detail span.pagination-info {
    display: none !important;
}
div.pagination span.badge {
    position: absolute;
    z-index: 2;
}

/*———————————
bootstrap-table オーバーライト
———————————*/
/*
 * getScrollBarWidth()でスクロール幅を取得する際に利用するクラス
 * 現在の方法だと他の要素に影響されてFirefoxの時に正しくスクロール幅が取得されない
 * ※縦幅が小さくなりスクロール幅の計算がうまくできない
 * そのため、他の要素に影響されないよう「position: absolute」を付加する
 */
.fixed-table-scroll-outer {
    position: absolute;
}


/*
Media Queries
================================*/

@media screen and (max-width: 1024px) {
}
@media screen and (max-width: 768px) {
}
@media screen and (max-width: 480px) {
    form.form-default label {
        text-align: left;
    }
}
@media screen and (min-width: 751px){
}


ul.no-bullet {
    list-style-type: none; /* リストアイテムの前の点を取り除く */
    /*padding-left: 0;*/ /* デフォルトのパディングも取り除く */
}