html,body{
    min-height: 100%;
}

body{
    background: white;
    font-family: 'Raleway', sans-serif;
}

body.no-overflow{
    overflow: hidden;
}

main{
    min-height: 100vh;
}

main>*{
    margin-top: auto;
    margin-bottom: auto;
}

section{
    flex: 1;
    display: flex;
}

a:hover,
a:focus,
a:active,
button.btn-link:hover,
button.btn-link:focus{
    text-decoration: none;
}

.form-control::-webkit-input-placeholder{color:rgba(102, 102, 102, 0.5);opacity:1}
.form-control::-moz-placeholder{color:rgba(102, 102, 102, 0.5);opacity:1}
.form-control:-ms-input-placeholder{color:rgba(102, 102, 102, 0.5);opacity:1}
.form-control::-ms-input-placeholder{color:rgba(102, 102, 102, 0.5);opacity:1}
.form-control::placeholder{color: rgba(102, 102, 102, 0.5);opacity:1}

h1:first-child{margin-top: 0}
p:last-child, ul:last-child, ol:last-child, form > *:last-child{
    margin-bottom: 0;
}

.full-height,
.full-height > .row,
.full-height > .row > *[class^="col-"],
.full-height > .row > *[class*=" col-"]{
    min-height: 100vh;
}

.no-gutters,
.no-gutters > .row {
    margin-right: 0 !important;
    margin-left: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.no-gutters > .row > [class^="col-"],
.no-gutters > .row > [class*=" col-"] {
    padding-right: 0;
    padding-left: 0;
}

.p100{
    padding: 100px !important;
}

.mt40{
    margin-top: 40px;
}

.back-dark-grad{
    background: #2f2f2f; /* Old browsers */
    background: -moz-linear-gradient(top, #2f2f2f 0%,#1d1b1b 100%); /* FF3.6-15 */
    background: -webkit-linear-gradient(top, #2f2f2f 0%,#1d1b1b 100%); /* Chrome10-25,Safari5.1-6 */
    background: linear-gradient(to bottom, #2f2f2f 0%,#1d1b1b 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
}

.flex-row{
    display: flex;
    flex-direction: row;
}

.center-h{
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.center-v {
    align-items: center;
}

.text-white,
.text-white *{
    color: white;
}

.text-black,
.text-black *{
    color: #202020;
}

.text-white a:hover,
.text-white a:active
.text-white a:focus{
    color: #f3ae02;
}

.back-orange{
    background: url("../images/connexion-illustration-v3.jpg") no-repeat center bottom #f3ae02;
}

.back-orange a:hover,
.back-orange a:focus{
    color: #2f2f2f;
}

.shadow-big{
    -moz-box-shadow: 0px 0px 90px rgba(0, 0, 0, 0.5);
    -webkit-box-shadow: 0px 0px 90px rgba(0, 0, 0, 0.5);
    box-shadow: 0px 0px 90px rgba(0, 0, 0, 0.5);
}

.title-page{
    font-size: 38px;
    font-weight: 200;
    margin-bottom: 52px;
}

.breadcrumb-title,
.breadcrumb-title span{
    font-size: 17px;
    color: rgba(255,255,255,0.5);
}

.title-line{
    font-size: 17px;
    font-weight: 300;
    margin: 0;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.btn.active.focus,
.btn.active:focus,
.btn.focus,
.btn.focus:active,
.btn:active:focus,
.btn:focus {
    outline: 0 !important;
    outline-offset: 0  !important;
    -webkit-box-shadow: none !important;
    box-shadow: none  !important;
}

.copyright-bottom {
    margin-top: 60px;
}

.copyright-bottom .logo-min{
    vertical-align: middle;
    display: inline-block;
    margin-right: 20px;
    opacity: 0.2;
}

.back-dark-grad .copyright-bottom *{
    color: rgba(255,255,255,0.3);
}

.copyright-bottom a{
    font-weight: bold;
}

.separator-60{
    padding-top: 60px;
    display: block;
}

.alert{
    border-radius: 0;
    border: none;
    font-size: 18px;
    font-weight: 500;
    padding: 0;
    margin-bottom: 40px;
    background: none;
    border: 0;
    border-radius: 0;
}

.alert .fa{
    padding-right: 10px;
}

.back-dark-grad .alert-danger .message-content,
.back-dark-grad .alert-danger .message-content .fa{
    color: #D82B2B;
}
.back-dark-grad .alert-success .message-content,
.back-dark-grad .alert-success .message-content .fa{
    color: #1fa522;
}

/****** Authentification ******/
.big-message{
    font-weight: 300;
    font-size: 26px;
    line-height: 1.45em;
}

#authentication-form label{
    font-weight: normal;
    opacity: 0.8;
    font-size: 15px;
}

.btn.btn-primary{
    -webkit-border-radius: 40px;
    border-radius: 40px;
    background: #fdb918; /* Old browsers */
    background: -moz-linear-gradient(top, #fdb918 0%, #e7a302 100%); /* FF3.6-15 */
    background: -webkit-linear-gradient(top, #fdb918 0%,#e7a302 100%); /* Chrome10-25,Safari5.1-6 */
    background: linear-gradient(to bottom, #fdb918 0%,#e7a302 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
    border: 0;
    -webkit-box-shadow: 2px 2px 30px rgba(0,0,0,0.7);
    box-shadow: 2px 2px 30px rgba(0,0,0,0.7);
    padding: 10px 50px;
    font-size: 15px;
}

.btn.btn-primary:hover,
.btn.btn-primary:focus{
    -webkit-box-shadow: 2px 2px 2px rgba(0,0,0,0.5);
    box-shadow: 2px 2px 2px rgba(0,0,0,0.5);
    background: #fdb918;
    color: #ffffff;
}

.form-horizontal .other-action{
    line-height: 46px;
    vertical-align: middle;
    margin-top: 8px;
    display: inline-block;
    margin-left: 40px;
}

input[type=text].shadow-input,
input[type=password].shadow-input{
    background: none;
    border-color: rgba(255,255,255,0.1);
    border-style: solid;
    border-width: 0 0 1px 0;
    -webkit-border-radius: 0;
    border-radius: 0;
    padding: 10px 0;
    color: white;
    height: 45px;
    font-size: 15px;
    -webkit-appearance: none;
    box-shadow: inset 0px 0px 0px 0px red;
}
input[type=text].shadow-input:focus,
input[type=password].shadow-input:focus{
    border-color: rgba(255,255,255,0.7);
}

.form-group + .form-group{
    margin-top: 38px;
}

.iframe-ctnr iframe{
    flex-grow: 2;
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
}

.head-nav {
    margin-bottom: 60px;
}

.head-nav nav a{
    margin: 0 40px 0 0;
    display: inline-block;
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: 2px;
    color: rgba(255,255,255,0.5);
}
.head-nav nav a:last-child{
	margin-right: 0;
}

.head-nav nav a.active {
    color: rgba(255, 255, 255, 1);
}

label.required:after{
    content:" *";
    color: #f00;
}

nav > .nav{
    margin-bottom: 15px;
}


.jumbotron.show{margin-bottom:0}

.col-position, .col-actions, .col-less-width{
    width: 10px;
    white-space: nowrap;
}

.radio label,
.checkbox label{
    position: relative;
}
.radio label > input[type="radio"],
.checkbox label > input[type="checkbox"]{
    position: absolute;
    clip: rect(0, 0, 0, 0);
    pointer-events: none;
}

.radio label:before,
.checkbox label:before {
    font-family: FontAwesome;
    width: 1.28571429em;
    position: absolute;
    left: 0;
    color: #f3ae02;
    font-weight: 400;
}
.radio label.checked:before,
.checkbox label.checked:before{
    color: #f3ae02;
}
.radio label:before {content: "\f10c";}
.radio label.checked:before{content: "\f05d";}
.checkbox label:before{content: "\f096";}
.checkbox label.checked:before{content: "\f046";}


.form-group + .form-group > hr{
    margin-top: 5px;
}

.checkbox label.required{font-weight: 700}

.flex-fill{
    flex: 2;
}

.mb60{
    margin-bottom: 60px;
}

/****** Dashboard *********/
.ctnr-lib-quiz {
    display: flex;
    flex-direction: row;
    align-items: center;
}

.ctnr-lib-quiz.success-quiz h2,
.ctnr-lib-quiz.success-quiz .action-quiz,
.ctnr-lib-quiz.success-quiz .action-quiz .fa{
    color: #1fa522;
}

.ctnr-lib-quiz + .ctnr-lib-quiz{
    margin-top: 2.8rem;
}

.ctnr-lib-quiz .title-quiz {
    margin: 25px 25px 25px 20px;
}

.ctnr-lib-quiz .fill-back {
    display: block;
    background: linear-gradient(to right, #404040, rgba(32, 32, 32, 0));
    flex-grow: 1;
    margin: 0 20px 0 0;
    height: 1px;
}

.ctnr-lib-quiz.success-quiz .action-quiz{
    margin: 25px 20px 25px 0;
}

.ctnr-lib-quiz .action-quiz a{
    margin-right: 10px;
}

.ctnr-lib-quiz .box-mess {
    height: 70px;
    width: 30px;
    line-height: 70px;
    text-align: center;
    font-size: 23px;
}

.ctnr-lib-quiz .box-mess .fa {
    color: rgba(255,255,255,0.1);
}

.ctnr-lib-quiz.success-quiz .box-mess .fa {
    color: #1fa522;
}

/****** Video *********/
.form-video{
    display: flex;
    flex-direction: column;
}

.form-video #video-ctnr{
    display: flex;
    flex-direction: column;
    align-items: center;
    flex-grow: 2;
}

.after-video{
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
}

.after-video .solution {
    padding: 70px;
    background: rgba(0,0,0,0.1);
    margin: 40px;
}

.after-video .solution h2 {
    margin: 0 0 60px 0;
}

.after-video .solution img {
    margin: 0 auto;
    margin-bottom: 40px;
    display: block;
}

/****** Questionnaire *********/
.q-title{
    margin-bottom: 80px;
    margin-top: 0;
    line-height: 1.4em;
}

.next-question,
.previous-question{
    display: flex;
    align-items: center;
    width: 160px;
    flex-shrink: 0;
    /* justify-content: center; */
    overflow: hidden;
}

.previous-question .btn,
.next-question .btn{
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: 2px;
    padding-left: 5px;
    padding-right: 5px;
    white-space: normal;
}
.btn .btn-message-t{
    display: block;
    text-align: left;
    margin-top: 13px;
    text-transform: none;
    font-weight: 500;
    color: #f3ae02;
}

.previous-question .btn .lib{
    text-align: left;
    padding-left: 15px;
}

.next-question .btn .lib {
    text-align: right;
    padding-right: 15px;
}

.ctnr-question{
    flex-grow: 2;
    display: flex;
    padding: 50px;
    flex-direction: row;
    align-items: stretch;
}

.ctnr-question .block-question {
    border: 1px solid rgba(255,255,255,0.1);
    padding: 40px;
    position: relative;
    border-width: 0px 1px 0px 1px;
}

.ctnr-question .block-question .progress {
    position: absolute;
    bottom: 50px;
    left: 50px;
    right: 50px;
    margin: 0;
    height: 2px;
}

.ctnr-question .block-question .progress-bar{
    background-color: #f3ae02;
}

.question-action .number-question{
    font-family: 'Montserrat', sans-serif;
    font-size: 90px;
    display: block;
    color: rgba(255,255,255,0.15);
    line-height: 100px;
    text-align: center;
    transition: 0.8s all ease;
}

.question-action .btn:hover .fa{
    -moz-animation: bounce 0.5s infinite linear;
    -o-animation: bounce 0.5s infinite linear;
    -webkit-animation: bounce 0.5s infinite linear;
    animation: bounce 0.5s infinite linear;
}

.question-action .btn:hover .number-question{
    color: #f3ae02;
}

.answer-list{
    display: flex;
    justify-content: stretch;
    flex-wrap: wrap;
}

.answer{
    padding: 20px;
    flex-grow: 2;
    text-align: left;
}

.answer-list .checkbox label, .answer-list .radio label{
    font-size: 22px;
    padding-left: 32px;
    font-weight: 300;
}

#no-empty-q{
    text-align: center;
    margin: 0;
    padding: 0;
}

#no-empty-q h3{
    font-size: 23px;
    font-weight: 300;
    margin-bottom: 20px;
}

#no-empty-q p {
    color: #f3ae02;
    font-size: 16px;
    line-height: 1.7em;
}

/****** Confirmation *********/
.after-quiz{
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
}

.after-quiz .solution {
    padding: 70px;
    background: rgba(0,0,0,0.1);
    margin: 40px 0;
}

.after-quiz .solution h2 {
    margin: 0 0 30px 0;
}

.after-quiz .solution p.explanation {
    margin-bottom: 40px;
    font-size: 18px;
    color: #f3ae02;
}

.after-quiz .solution img {
    margin: 0 auto;
    margin-bottom: 40px;
    display: block;
}

.after-quiz .block-text{
    overflow-y: scroll;
    max-height: 210px;
    display: block;
    padding: 20px 10px;
    background: #fafafa;
    text-align: justify;
}

.after-quiz .block-text h3:first-child{
    margin-top: 0;
}

/****** Animations *********/

@-webkit-keyframes bounce {
    0% { transform: translateX(0); }
    50% { transform: translateX(-0.2em); }
    70% { transform: translateX(-0.3em); }
    100% { transform: translateX(0); }
}
@-moz-keyframes bounce {
    0% { transform: translateX(0); }
    50% { transform: translateX(-0.2em); }
    70% { transform: translateX(-0.3em); }
    100% { transform: translateX(0); }
}
@-o-keyframes bounce {
    0% { transform: translateX(0); }
    50% { transform: translateX(-0.2em); }
    70% { transform: translateX(-0.3em); }
    100% { transform: translateX(0); }
}
@-ms-keyframes bounce {
    0% { transform: translateX(0); }
    50% { transform: translateX(-0.2em); }
    70% { transform: translateX(-0.3em); }
    100% { transform: translateX(0); }
}
@keyframes bounce {
    0% { transform: translateX(0); }
    50% { transform: translateX(-0.2em); }
    70% { transform: translateX(-0.3em); }
    100% { transform: translateX(0); }
}

/****** Responsive *********/

@media screen and (max-width: 768px){
    .p100{
        padding: 40px !important;
    }
}

.controller-admin main,
.controller-adminresults main,
.controller-adminquiz main,
.controller-adminusers main
{
	padding-top: 2em;
	display: flex;
	flex-direction: column;
}

.controller-admin main > section,
.controller-adminresults main > section,
.controller-adminquiz main > section,
.controller-adminusers main > section
{
	flex-grow: 1;
}

.controller-admin main > footer,
.controller-adminresults main > footer,
.controller-adminquiz main > footer,
.controller-adminusers main > footer
{
	padding: 1em;
}

.msg-itemsgrouped-dont-copy{
	display: inline-block;
	font-style: italic;
	padding: .5em 0;
}
