html {
    font-size: 87.5%;
}

@media (min-width: 426px) {
    html {
        font-size: 93.75%;
      }
}

body {
  font-size: 1rem;
  line-height: 1.5;
  font-weight: 400;
  font-family: 'Yu Gothic', メイリオ, Meiryo, Arial, 'Hiragino Kaku Gothic Std', 'Lucida Grande', 'Trebuchet MS', Verdana, 'MS ゴシック', "Raleway", "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif;
  color: #222;
}

/* sticky footer
body {
  display: flex;
  flex-flow: column;
  min-height: 100vh;
}
main {
    flex: 1;
}
*/

h1, h2, h3, h4, h5, h6 {
  margin-bottom: 0.5rem;
  font-weight: 500;
  line-height: 1.2;
}

h1 { font-size: 1.4rem; }
h2 { font-size: 1.25rem; }
h3 { font-size: 1.15rem; }
h4 { font-size: 1.1rem; }
h5 { font-size: 1.05rem; }
h6 { font-size: 1rem; }
  
p { margin-top: 0; }

.btn,
button,
input[type="submit"],
input[type="reset"],
input[type="button"] {
    display: inline-block;
    color: #555;
    text-align: center;
    font-weight: 500;
    letter-spacing: .1rem;
    text-transform: uppercase;
    text-decoration: none;
    white-space: nowrap;
    background-color: transparent;
    border: 1px solid transparent;
    outline: 1px solid transparent;
    cursor: pointer;
    box-sizing: border-box;
    vertical-align: middle;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    padding: .6rem 1.25rem;
    font-size: 1rem;
    line-height: 1.5;
    border-radius: 0.25rem;
}

.btn:hover,
button:hover,
input[type="submit"]:hover,
input[type="reset"]:hover,
input[type="button"]:hover,
.btn:focus,
button:focus,
input[type="submit"]:focus,
input[type="reset"]:focus,
input[type="button"]:focus {
    color: #333;
    border-color: #888;
    outline-color: #888;
    box-shadow: 0 0 .2rem .2rem rgba(0,0,0,0.25);
}

.btn.btn-primary,
button.btn-primary,
input[type="submit"].btn-primary,
input[type="reset"].btn-primary,
input[type="button"].btn-primary {
    color: #FFF;
    background-color: #2962FF;
    border-color: #2962FF;
}

.btn.btn-primary:not(:disabled):hover,
button.btn-primary:not(:disabled):hover,
input[type="submit"].btn-primary:not(:disabled):hover,
input[type="reset"].btn-primary:not(:disabled):hover,
input[type="button"].btn-primary:not(:disabled):hover,
.btn.btn-primary:not(:disabled):focus,
button.btn-primary:not(:disabled):focus,
input[type="submit"].btn-primary:not(:disabled):focus,
input[type="reset"].btn-primary:not(:disabled):focus,
input[type="button"].btn-primary:not(:disabled):focus {
    color: #FFF;
    background-color: #1565C0;
    border-color: #1565C0;
    outline-color: #1565C0;
}

.btn.btn-secondary,
button.btn-secondary,
input[type="submit"].btn-secondary,
input[type="reset"].btn-secondary,
input[type="button"].btn-secondary {
  color: #FFF;
  background-color: #A7A7A7;
  border-color: #A7A7A7;
}

.btn.btn-secondary:hover,
button.btn-secondary:hover,
input[type="submit"].btn-secondary:hover,
input[type="reset"].btn-secondary:hover,
input[type="button"].btn-secondary:hover,
.btn.btn-secondary:focus,
button.btn-secondary:focus,
input[type="submit"].btn-secondary:focus,
input[type="reset"].btn-secondary:focus,
input[type="button"].btn-secondary:focus
{
    color: #FFF;
    background-color: #666666;
    border-color: #666666;
    outline-color: #666666;
}

.btn.btn-info,
button.btn-info,
input[type="submit"].btn-info,
input[type="reset"].btn-info,
input[type="button"].btn-info {
  color: #FFF;
  background-color: #0091EA;
  border-color: #0091EA;
}

.btn.btn-info:hover,
button.btn-info:hover,
input[type="submit"].btn-info:hover,
input[type="reset"].btn-info:hover,
input[type="button"].btn-info:hover,
.btn.btn-info:focus,
button.btn-info:focus,
input[type="submit"].btn-info:focus,
input[type="reset"].btn-info:focus,
input[type="button"].btn-info:focus
{
    color: #FFF;
    background-color: #0288D1;
    border-color: #0288D1;
    outline-color: #0288D1;
}

button.btn.btn-link {
    font-weight: 400;
    color: #007bff;
    text-decoration: none;
    letter-spacing: 0;
    padding: 0;
    vertical-align: unset;
}
  
button.btn.btn-link:hover,
button.btn.btn-link:focus {
    color: #0056b3;
    text-decoration: underline;
    border-color: transparent;
    outline-color: transparent;
    box-shadow: none;
}
  
.btn-link:disabled {
    color: #6c757d;
    pointer-events: none;
}

.btn:disabled,
button:disabled,
input[type="submit"]:disabled,
input[type="reset"]:disabled,
input[type="button"]:disabled {
    color: #9E9E9E;
    background-color: #E0E0E0;
    border: #E0E0E0;
    outline: none;
    box-shadow: none;
}

input[type="email"],
input[type="number"],
input[type="text"],
input[type="tel"],
input[type="password"],
textarea,
select {
    height: 2.6rem;
    padding: .5rem .75rem;
    background-color: #fff;
    border: 1px solid #D1D1D1;
    border-radius: 4px;
    box-shadow: none;
    box-sizing: border-box;
}

input[type="email"],
input[type="number"],
input[type="text"],
input[type="tel"],
input[type="password"],
textarea {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

textarea {
    min-height: 65px;
    padding-top: 6px;
    padding-bottom: 6px;
}

input[type="email"]:focus,
input[type="number"]:focus,
input[type="text"]:focus,
input[type="tel"]:focus,
input[type="password"]:focus,
textarea:focus,
select:focus {
    border: 1px solid #2962FF;
    outline: 1px solid transparent;
}

.validated:valid:not(:focus),
.validated.valid:not(:focus) {
    border: 1px solid #00C853;
}

.validated:invalid:not(:focus),
.validated.invalid:not(:focus) {
    border: 1px solid #D50000;
}

.ifinvalid {
    display: none;
    clear: both;
    width: 100%;
}

.validated:invalid ~ .ifinvalid,
.validated.invalid ~ .ifinvalid {
    display: block;
    color: #D50000;
    font-size: .86rem;
}

.hint {
    display: block;
    font-size: .86rem;
    clear: both;
    width: 100%;
}

label {
    display: inline-block;
    margin-bottom: .5rem;
    font-weight: 400;
}

legend {
    display: block;
    font-size: 1.1rem;
    margin-bottom: .5rem;
    font-weight: 500;
}

fieldset {
    padding: 0;
    border-width: 0;
}

input[type="checkbox"],
input[type="radio"] {
    display: inline;
    margin: .25rem;
}

label > .label-body {
    display: inline-block;
    margin-left: .5rem;
    font-weight: normal;
}

.input-group {
    padding-top: .25rem;
    padding-bottom: .25rem;
}

.input-group,
input,
textarea,
select,
fieldset {
  margin-bottom: .75rem;
  overflow: auto;
}

.input-group input,
.input-group select,
.input-group label
{
  margin-bottom: 0;
  padding-top: .5rem;
}

.input-group button:not(.btn-link) {
    margin-bottom: 0;
    padding: .5rem 1rem !important;
}


.input-addon {
    position: relative;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -ms-flex-align: stretch;
    align-items: stretch;
    width: 100%;
}

.input-addon>input {
    position: relative;
    -ms-flex: 1 1 auto;
    flex: 1 1 auto;
    width: 1%;
    min-width: 0;
    margin-bottom: 0;
}

.input-addon>input:not(:last-child) {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.input-addon>.append {
    margin-left: -1px;
}

.input-addon>.append {
    display: -ms-flexbox;
    display: flex;
}

.input-addon>.append>button {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
    position: relative;
    z-index: 2;
}

pre,
blockquote,
dl,
figure,
table,
p,
ul,
ol,
form { margin-bottom: 1rem; }

ol { padding-inline-start: 1.5rem; }
dt { font-weight: 500; }

dd {
  margin-bottom: .5rem;
  margin-left: 1rem;
}

.danger {
  color: #D50000 !important;
  font-weight: 700 !important;
  font-size: 1rem;
}

.fw-bold {
  font-weight: 700 !important;
}

.d-block { display: block !important; }
.b-1 { border: 1px solid #e0e0e0 !important; }
.bt-1 { border-top: 1px solid #e0e0e0 !important; }
.br-1 { border-right: 1px solid #e0e0e0 !important; }
.bb-1 { border-bottom: 1px solid #e0e0e0 !important; }
.bl-1 { border-left: 1px solid #e0e0e0 !important; }
.b-2 { border: 2px solid #e0e0e0 !important; }
.bt-2 { border-top: 2px solid #e0e0e0 !important; }
.br-2 { border-right: 2px solid #e0e0e0 !important; }
.bb-2 { border-bottom: 2px solid #e0e0e0 !important; }
.bl-2 { border-left: 2px solid #e0e0e0 !important; }
.ws-pl { white-space: pre-line; }
.pl-1 { padding-left: 1rem !important; }
.pr-1 { padding-right: 1rem !important; }
.w100 { width: 100%; }
.w75 { width:75%; }
.w50 { width:50%; }
.w25 { min-width:25%; max-width: 100%; }
.mt-0 { margin-top: 0 !important; }
.mt-1 { margin-top: 1rem !important; }
.mb-0 { margin-bottom: 0 !important; }
.mb-1 { margin-bottom: 1rem !important; }
.ml-1 { margin-left: 1rem !important; }
.ml-auto { margin-left: auto !important; }
.float-right { float: right !important; }
.ta-left { text-align: left !important; }
.ta-center { text-align: center !important; }
.ta-right { text-align: right !important; }
.list-inline { padding-left: 0; list-style: none; }
.list-inline-item { display: inline-block; }
.list-inline-item:not(:last-child) { margin-right: 0.5rem; }
.flex {
    display: -ms-flexbox !important;
    display: flex !important;
}
.jc-start {
    -ms-flex-pack: start !important;
    justify-content: flex-start !important;
} 
.jc-end {
    -ms-flex-pack: end !important;
    justify-content: flex-end !important;
}
.jc-center {
    -ms-flex-pack: center !important;
    justify-content: center !important;
}
.jc-between {
    -ms-flex-pack: justify !important;
    justify-content: space-between !important;
}
.jc-around {
    -ms-flex-pack: distribute !important;
    justify-content: space-around !important;
}
.ai-center {
    -ms-flex-align: center !important;
    align-items: center !important;
}
.as-end {
    -ms-flex-item-align: end !important;
    align-self: flex-end !important;
}
.ico {
    display: inline-block;
    vertical-align: middle;
}
  
.faq {
    padding-left: 1rem;
    padding-right: 1rem;
    padding-top: 1rem;
    padding-bottom: 1rem;
    font-weight: 600;
    cursor: pointer;
}

.faq-q {
    display: inline-block;
}

.faq-q-ico {
    margin-left: 1rem;
    display: flex;
    justify-content: center;
    align-items: center;
}

.faq.show .down {
    display: none;
}

.faq.hide .up {
    display: none;
}

.faq-ans {
    padding-left: 1rem;
    padding-right: 1rem;
    max-height: 0;
    overflow: hidden;
    transition: max-height .35s ease;
}

.inline-radio {
    display: inline-flex;
    align-items: center;
    margin-right: .9rem;
}
.inline-radio input[type="radio"] {
    position: static;
    margin-top: 0;
    margin-right: .3125rem;
    margin-left: 0;
}
.inline-radio label {
    margin-bottom: 0;
}

.alert {
    position: relative;
    padding: .5rem;
    margin-bottom: 1rem;
    border: 1px solid transparent;
    border-radius: .25rem;
    color: #721c24;
    background-color: #FFEBEE;
    border-color: #FFCDD2;
}

.list {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
    flex-direction: column;
    padding-left: 0;
    margin-bottom: 0;
}
  
.list-item-action {
    width: 100%;
    text-align: inherit;
}
  
.list-item-action:hover, .list-item-action:focus {
    z-index: 1;
    text-decoration: none;
    background-color: #f8f9fa;
}
  
.list-item-action:active {
    background-color: #e9ecef;
}
  
.list-item {
    position: relative;
    display: block;
    margin-bottom: -1px;
    background-color: #fff;
    border: 1px solid #bbb;
}
  
.list-item:first-child {
    border-top-left-radius: 0.25rem;
    border-top-right-radius: 0.25rem;
}
  
.list-item:last-child {
    margin-bottom: 0;
    border-bottom-right-radius: 0.25rem;
    border-bottom-left-radius: 0.25rem;
}

.container {
    position: relative;
    width: 100%;
    max-width: 992px;
    margin: 0 auto;
    padding: 0 10px;
    box-sizing: border-box;
}

@media (min-width: 426px) {
    .container {
      padding: 0 16px;
    }
}

@media (min-width: 992px) {
    .container {
      max-width: 960px;
      padding: 0 16px;
    }
}

.row {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}

.container:after,
.row:after {
  content: "";
  display: table;
  clear: both;
}

.col {
    position: relative;
    box-sizing: border-box;
    float: left;
    width: 100%;
}

@media (min-width: 768px) {
.m-md-0 {
  margin: 0 !important;
}
.mt-md-0,
.my-md-0 {
  margin-top: 0 !important;
}
.mr-md-0,
.mx-md-0 {
  margin-right: 0 !important;
}
.mb-md-0,
.my-md-0 {
  margin-bottom: 0 !important;
}
.ml-md-0,
.mx-md-0 {
  margin-left: 0 !important;
}

.col {
    -ms-flex-preferred-size: 0;
    flex-basis: 0;
    -ms-flex-positive: 1;
    flex-grow: 1;
}

dd {
    margin-left: 0;
}
  
.col.auto {
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
    width: auto;
    max-width: 100%;
}
    
.col.one {
    -ms-flex: 0 0 8.333333%;
    flex: 0 0 8.333333%;
    max-width: 8.333333%;
}
  
.col.two {
    -ms-flex: 0 0 16.666667%;
    flex: 0 0 16.666667%;
    max-width: 16.666667%;
}
  
.col.three {
    -ms-flex: 0 0 25%;
    flex: 0 0 25%;
    max-width: 25%;
}
  
.col.four {
    -ms-flex: 0 0 33.333333%;
    flex: 0 0 33.333333%;
    max-width: 33.333333%;
}
  
.col.five {
    -ms-flex: 0 0 41.666667%;
    flex: 0 0 41.666667%;
    max-width: 41.666667%;
}
 
.col.six {
    -ms-flex: 0 0 50%;
    flex: 0 0 50%;
    max-width: 50%;
}
  
.col.seven {
    -ms-flex: 0 0 58.333333%;
    flex: 0 0 58.333333%;
    max-width: 58.333333%;
}
  
.col.eight {
    -ms-flex: 0 0 66.666667%;
    flex: 0 0 66.666667%;
    max-width: 66.666667%;
}
  
.col.nine {
    -ms-flex: 0 0 75%;
    flex: 0 0 75%;
    max-width: 75%;
}
  
.col.ten {
    -ms-flex: 0 0 83.333333%;
    flex: 0 0 83.333333%;
    max-width: 83.333333%;
}
  
.col.eleven {
    -ms-flex: 0 0 91.666667%;
    flex: 0 0 91.666667%;
    max-width: 91.666667%;
}
  
.col.twelve {
    -ms-flex: 0 0 100%;
    flex: 0 0 100%;
    max-width: 100%;
}
.jc-sb {
    -ms-flex-pack: justify !important;
    justify-content: space-between !important;
}
}