/* --- VARIABLES ET CONSTANTES --- */
:root {
    /* Couleurs */
    --color-bg-default: #f7f7f7;
    --color-text-main: #443a31;
    --color-primary: #0077B6;
    --color-primary-dark: #005484;
    --color-input-border: #97D4EE;
    --color-alert-bg: #e0dfde;
    --color-alert-border: #b6b5b4;
    --color-white: #FFFFFF;

    /* Dimensions et Espacement */
    --container-width-desktop: 940px;
    --form-width-desktop: 360px;
    --input-width: 225px;
    --label-width: 117px;
    --spacing-standard: 20px;

    /* Polices */
    --font-main: Arial, Helvetica, sans-serif;
}

/* --- STYLES DE BASE --- */
body {
    height: 100%;
    margin: 0;
    padding: 0;
    color: var(--color-text-main);
    background: var(--color-bg-default);
    overflow-y: auto;
}

.container-global {
    font-family: var(--font-main);
}

.m-0 {
    margin: 0;
}

.unstyled-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

#content {
    position: relative;
    box-shadow: unset !important;
    padding-top: 5px;
}

.container-langue {
    position: absolute;
    /*top: -64px;*/
    right: 0;
}

.container-langue {
    height: 54px;
    line-height: 54px;
    text-align: right;
}

.container-langue .styled {
    width: 100px;
    overflow: hidden;
    background: url(/cas/images/chevron-725e7cbcfd3ab98a5c27a2c8eac1c303.png) no-repeat 96% var(--color-bg-default);
    float: right;
    margin-right: 12px;
}

.container-langue .styled select {
    background: transparent;
    width: 120px;
    padding: 5px;
    font-size: 16px;
    border: 1px solid var(--color-bg-default);
    height: 34px;
    -webkit-appearance: none;
}

/* Boutons et Inputs */
#fm1 input[type='submit'],
#fm1 input[type='button'] {
    -webkit-appearance: none;
    border: 3px solid var(--color-primary);
    border-bottom-color: var(--color-primary-dark);
    border-radius: 0;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    background: var(--color-primary);
    color: var(--color-white);
    height: 40px;
}

.fident label, .fmdp label {
    width: var(--label-width);
    display: inline-block;
    margin-top: 10px;
    text-align: right;
}

.fident input, .fmdp input {
    width: var(--input-width);
    border: 1px solid var(--color-input-border);
    background: var(--color-white);
    padding: 5px;
}

.fmdp, .fident {
    padding-top: 0;
}

/* Messages d'alerte */
#msg.error, #msg.errors, #msg.success, #msg.info {
    margin-top: var(--spacing-standard);
    margin-bottom: var(--spacing-standard);
    padding: var(--spacing-standard);
    text-align: center;
    border: 1px solid var(--color-alert-border);
    background-color: var(--color-alert-bg) !important;
}

#msg2 {
    margin-left: var(--spacing-standard);
    margin-right: var(--spacing-standard);
}

#content .mdc-card {
    background-color: transparent !important;
    box-shadow: unset !important;
}


/* Logo IDNUM */
.idnum {
    width: 94px;
    height: 42px;
    margin-top: 35px;
}

.cas-fields {
    display: flex;
}

/* Liens */
.container-liens ul {
    list-style: none;
    padding-left: 0;
}

.container-liens li.lien {
    padding-bottom: 16px;
}

.container-liens li.lien.premier {
    padding-top: 10px;
}

.container-liens li.lien a {
    display: block;
    padding-left: 30px;
    background: url(/cas/images/next-ter-81abb026b49cbd7d8720f506fc661d7e.gif) no-repeat left var(--color-bg-default) !important;
    background-size: 30px 30px !important;
    color: var(--color-text-main);
}


.validation {
    width: 100%;
}

/* Accessibilité */
.sr-only {
    border: 0 !important;
    clip: rect(1px,1px,1px,1px) !important;
    clip-path: inset(50%) !important;
    height: 1px !important;
    overflow: hidden !important;
    padding: 0 !important;
    position: absolute !important;
    width: 1px !important;
    white-space: nowrap !important;
}

button:focus, input[type=button]:focus, input[type=submit]:focus {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
}

.banner-danger {
    border-color: var(--color-alert-border) !important;
    color: var(--color-text-main) !important;
    background-color: var(--color-alert-bg) !important;
    border-radius: unset !important;
    text-align: center !important;
}

.banner {
    box-shadow: unset !important;
}

.container-infos {
    display: flex;
}


/* --- DESKTOP (>= 940px) --- */
@media screen and (min-width: 940px) {
    body {
        background: url("/cas/images/fond_image-c512ae65d2a54065be517f878760a715.jpg") no-repeat center / cover;
    }

    #container {
        display: flex;
        justify-content: center;
        align-items: center;
        min-height: 100vh;
    }

    .container-global {
        width: var(--container-width-desktop);
        background: var(--color-bg-default) url("/cas/themes/ub/images/fond_central_form-4d0722b9260827a83c9a2dbe87be8924.png") no-repeat;
        margin-left: auto;
        margin-right: auto;
        margin-top: 50vh;
        transform: translateY(-50%);
    }

    .container-langue {
        height: 54px;
        line-height: 54px;
        text-align: right;
    }

    .container-langue .styled {
        width: 100px;
        overflow: hidden;
        background: url(/cas/images/chevron-725e7cbcfd3ab98a5c27a2c8eac1c303.png) no-repeat 96% var(--color-bg-default);
        float: right;
        margin-right: 12px;
    }

    .container-langue .styled select {
        background: transparent;
        width: 100px;
        padding: 5px;
        font-size: 16px;
        border: 1px solid var(--color-bg-default);
        height: 34px;
        -webkit-appearance: none;
    }

    .container-bandeau {
        margin-left: 40px;
        height: 84px;
        margin-top: 64px;
    }

    .container-infos {
        margin-top: 60px;
    }

    .container-forms {
        width: 60%;
        min-height: 220px;
        border-right: 1px solid var(--color-text-main);
    }

    .formulaire {
        width: var(--form-width-desktop);
        padding-left: 5px;
    }

    .validation {
        margin-top: var(--spacing-standard);
        text-align: center;
    }

    .container-liens {
        width: 40%;
        padding-left: var(--spacing-standard);
    }

    .container-secu {
        clear: both;
        padding: 5px 15px 15px;
    }

    .fmdp, .fident {
        padding-top: 15px;
    }
}

/* --- TABLETTE (768px - 939px) --- */
@media all and (max-width: 992px) {
    .container-infos {
        flex-direction: column;
    }

    .container-forms, .container-liens {
        width: 100%;
        border: none;
    }

    .container-secu {
        padding-top: 0;
    }
}

@media screen and (min-width: 768px) and (max-width: 939px) {
    .container-global {
        width: 100%;
    }


    .container-bandeau {
        margin-left: 40px;
        height: 84px;
        margin-top: 64px;
    }

    .container-forms {
        width: 100%;
        min-height: 150px;
        border-right: none;
        margin: 0 auto;
    }

    .formulaire {
        margin-top: var(--spacing-standard);
        padding-left: calc(50% - 232px);
    }

    .idnum {
        margin-left: var(--spacing-standard);
    }

    .validation {
        margin-top: 10px;
        text-align: center;
    }

    .container-liens {
        clear: both;
        padding: var(--spacing-standard);
    }

    .container-secu {
        clear: both;
        padding: 0 var(--spacing-standard) var(--spacing-standard);
    }

    #msg2 {
        margin-top: var(--spacing-standard);
    }
}

/* --- MOBILE (< 767px) --- */
@media screen and (max-width: 767px) {
    .container-langue {
        position: initial;
    }

    .container-bandeau {
        margin: 10px;
        width: auto;
        height: auto;
    }

    .container-bandeau img {
        width: 100%;
        height: auto;
        max-width: 500px;
    }

    .fident label, .fmdp label {
        padding-left: 10px;
    }

    .fident input, .fmdp input {
        margin-left: 10px;
    }

    .validation {
        margin-top: 10px;
    }

    #fm1 input[type='submit'], #fm1 input[type='button'] {
        margin-left: 142px;
    }

    .formulaire {
        text-align: center;
        width: 100%;
    }

    .container-liens {
        padding: var(--spacing-standard) var(--spacing-standard) 0;
    }

    .container-secu {
        clear: both;
        padding: 0 var(--spacing-standard) var(--spacing-standard);
    }

    .idnum {
        display: none;
    }

    .validation {
        text-align: left;
    }

    #msg2 {
        margin-bottom: var(--spacing-standard);
    }
}

/* --- PETIT MOBILE (< 369px) --- */
@media screen and (max-width: 430px) {
    #fm1 input[type='submit'], #fm1 input[type='button'] {
        margin: 0;
    }

    .fident, .fmdp, .validation, .fident label, .fmdp label {
        text-align: center !important;
    }

    .fident input, .fmdp input {
        width: 100%;
        margin-left: 0;
    }

    #msg2, .container-liens, .container-secu {
        margin-left: 0;
        margin-right: 0;
        padding-left: 0;
        padding-right: 0;
        width: 100%;
    }
}