* {
    margin: 0;
    padding: 0;
}
a, h1, h2, h3, h4, h5, h6, button {
    user-select: none;
}

html, body {
    background-color: #222222;
    color: #DDDDDD;
    font-family: sans-serif;
}
body {
    overflow-x: hidden;
}
section {
    position: relative;
    width: 90vw;
    max-width: 1024px;
    margin: 0 auto;
}
h2 {
    margin-bottom: 1em;
    padding-bottom: 1em;
    border-bottom-width: 0.1cm;
    border-bottom-style: ridge;
    border-bottom-color: #00CCFF;
}
p {
    margin: 1em 0;
}
a {
    color: inherit;
}
a:visited, a:active {
    color: unset;
}
fieldset {
    margin-bottom: 0.5cm;
    border: none;
}
label {
    display: inline-block;
    padding: 0.5em 0;
}
input[type=text], input[type=mail] {
    display: inline-block;
    padding: 0.5em 1em;
    border: 0.5mm inset silver;
    background: white;
    color: black;
}
button, a.button, input[type=button], input[type=submit] {
    cursor: pointer;
    display: inline-block;
    padding: 0.5em 1em;
    border: 0.5mm solid white;
    background: none;
    color: white;
    text-decoration: none;
    transition: background-color 500ms;
}
button:hover, a.button:hover, input[type=button]:hover, input[type=submit]:hover {
    background-color: white;
    box-shadow: 0 0 2mm black;
    color: black;
}
img {
    max-width: 100%;
}
figure, figure.left {
    float: left;
    max-width: 50%;
    margin: 0 1em 1em 0;
}
figure.right {
    float: right;
    margin: 0 0 1em 1em;
}
figure > img {
    width: 100%;
    box-shadow: 0 0 1mm black;
}
figure > figcaption {
    width: 100%;
    font-size: 0.8em;
    font-style: italic;
}

#main_header {
    z-index: 1;
    position: sticky;
    top: calc(1cm - 25vw - 1px);
    width: 100vw;
    height: 25vw;
    margin-bottom: 1cm;
    background-color: #000000;
    background-image: url('../img/pic/2110001.JPG');
    background-size: 100%;
    background-repeat: no-repeat;
    box-shadow: 0 0 0.25cm black;
}

#main_logo {
    height: 1cm;
    vertical-align: bottom;
}

#main_title {
    display: none;
    cursor: pointer;
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 0 0.5cm;
    height: 1cm;
    line-height: 1cm;
    white-space: nowrap;
    background-color: inherit;
    font-variant: small-caps;
    font-size: 4mm;
}
#main_title::first-letter {
    font-size: 0.8cm;
    vertical-align: top;
}

#main_nav {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 0 0.5cm;
    white-space: nowrap;
    background-color: inherit;
    font-size: 3.5mm;
}
#main_nav_container {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    max-width: 1024px;
    margin: 0 auto;
}
#main_nav a {
    text-decoration: none;
}
#main_nav .menu {
    position: relative;
    display: inline-block;
}
#main_nav .menu h3 {
    height: 1cm;
    line-height: 1cm;
    margin: 0 0.25cm;
    font-variant: small-caps;
}
#main_nav .menu.group h3::after {
    content: '▾';
}
#main_nav .menu:nth-of-type(1) a:hover  {
    color: #00CCFF;
}
#main_nav .menu:nth-of-type(2) a:hover {
    color: #FFCC00;
}
#main_nav .menu:nth-of-type(3) a:hover {
    color: #CC0000;
}
#main_nav .menu ul {
    z-index: 1;
    display: none;
    position: absolute;
    top: 1cm;
    list-style: none;
    background-color: black;
    color: white;
    box-shadow: 0 0 0.25cm black;
}
#main_nav_container > div:first-child .menu ul {
    left: 0;
}
#main_nav_container > div:nth-child(2) .menu ul {
    right: 0;
}
#main_nav .menu:hover ul {
    display: block;
}
#main_nav .menu ul li {
    display: block;
    padding: 0.25cm 0.5cm;
    border-left: 1px solid #444444;
    border-right: 1px solid #444444;
    border-bottom: 1px solid #444444;
}

#main_page {
    position: relative;
    margin-bottom: 2cm;
}
#main_page.actu .poster {
    width: auto;
    /* max-height: calc(100vh - 25vw - 2cm); */
    box-shadow: 0 0 1mm black;
}
#main_page.bio p {
    font-style: italic;
}
#main_page.contacts > div > div {
    display: block;
    white-space: nowrap;
    margin-bottom: 1cm;
}
#main_page.contacts > div > div > * {
    display: inline-block;
}
#main_page.contacts label {
    width: 2cm;
}
#main_page.contacts label img {
    height: 100%;
    filter: invert(1);
    vertical-align: bottom;
}
#newsletter_text.success {
    color: #008800;
    font-weight: bold;
}
#newsletter_text.error {
    color: #FF0000;
    font-weight: bold;
}
#main_page.videos video {
    display: block;
    width: 720px;
    max-width: 90%;
    margin: 0 auto;
}

#newletter {
    text-align: center;
}

#main_footer {
    clear: left;
    margin: 1cm 0;
}
#footer_nav {
    color: #888888;
}
#footer_nav ul {
    display: flex;
    flex-direction: row;
    justify-content: space-around;
    list-style: none;
    max-width: 1024px;
    margin: 1cm auto;
    padding: 1cm 0;
    border-top: 1px solid #444444;
    border-bottom: 1px solid #444444;
}
#copyright, #credits {
    margin-bottom: 2mm;
    color: #444444;
    text-align: center;
    font-size: 0.8em;
}

@media (orientation: portrait) or (max-width: 10cm) {
    #main_title {
        display: block;
    }
    #main_nav {
        z-index: 1;
        position: absolute;
        top: 100%;
        left: 0;
        right: unset;
        bottom: unset;
        display: none;
        white-space: unset;
        box-shadow: 0 0 0.25cm black;
    }
    #main_nav.visible {
        display: block;
    }
    #main_nav_container {
        display: block;
        flex-direction: unset;
        justify-content: unset;
        max-width: 100vw;
    }
    #main_nav .menu {
        display: block;
    }
    #main_nav .menu h3 {
        height: 1cm;
        line-height: 1cm;
        margin: 0.25cm 0;
        font-variant: small-caps;
    }
    #main_nav .menu ul {
        display: block;
        position: relative;
        top: unset;
        box-shadow: none;
    }
    #main_nav_container > div .menu ul {
        left: unset;
        right: unset;
    }
    #main_nav .menu ul li {
        padding: 0.25cm 0.5cm;
        border-left: none;
        border-right: none;
    }
  }