* {
    box-sizing: border-box; /* when I mean width, I mean innerWidth + padding + border */
}

body {
    margin: 15px;
    background: #f6f6f6;
    font-size: 16px; /* Google recommendation */
}

section {
    border: 2px solid #ccc;
    border-radius: 25px;
    
    padding: 20px;
    background: white; /* #F7F7FF */
    border-radius: 0px 0px 25px 25px;
}

.index section:first-of-type {
    padding-top: 0;
    border-top: 0;
    background: rgba(250, 250, 250, .8); /* #fafafacc; */
}

.index section {
    text-align: left;
}

.index {
    text-align: center;
}

.index section.header-section {
    text-align: center;
}

.index section.grouping {
    display: inline-block;
    vertical-align: top;
    margin: 10px;
    border-radius: 25px;
    transition: background 1s, border 1s;
}

.index section.grouping.selected {
    background: #ddffff;
    border-color: #009;
}

.index section.grouping[id=""] {
    display: block;
}

.index .ext-py {
    list-style-image: url('li-py.png');
}

.index .ext-php {
    list-style-image: url('li-php.png');
}

.index .ext-java {
    list-style-image: url('li-java.png');
}

.index .ext-pdf {
    list-style-image: url('li-pdf.png');
}

.index .ext-js {
    list-style-image: url('li-js.png');
}

.index .ext-svg {
    list-style-image: url('li-svg.png');
}

.index .ext-png {
    list-style-image: url('li-png.png');
}

.index .ext-html {
    list-style-image: url('li-html.png');
}

.index .ext-zip {
    list-style-image: url('li-zip.png');
}

section.notitle {
    margin-top: 20px;
    border-radius: 25px;
}
.index section.notitle {
    margin-top: 10px;
    padding: 5px;
}

.index section.grouping {
    box-shadow: 10px 10px 5px #888888;
}

h2, h1, .exercice h3 {
    margin: 15px 0px 0px 0px;
    background: rgba(250, 250, 250, .8); /* #fafafacc; */
    border-radius: 25px 25px 0px 0px;
    border-width: 2px 2px 0 2px;
    border-color: #ccc;
    border-style: solid;
}

.exercice h3 {
    padding: 10px 15px;
    text-align: center;
}

h2 {
    padding: 20px 30px;
}

h1 {
    color: #555;
    white-space: nowrap;
}

h3 {
    color: #339;
}

h4 {
    color: #66f;
}

.index h1 {
    padding: 20px 30px;
    border-bottom-width: 0;
    padding-bottom: 0;
}

h1 .text {
    /* display:inline-block; */
    padding: 0 10px;
    white-space: normal;
}

.index h1 .text {
    display: inline;
    padding: 0;
}

h1.nocontent, h2.nocontent {
    border-radius: 25px;
    margin: 15px 0px 15px 0px;
    border-bottom-width: 2px;
}

h1 .homeicon {
    display: inline-block;
    vertical-align: middle;
    height: 2.0em; /* height_of_text + padding */
    border-radius: 25px 0px 0px;
    width: 40px;
    border-right: 2px solid rgb(204, 204, 204);
    background-image: url("home.png");
    background-size: 30px 30px;
    background-position: center;
    background-repeat: no-repeat;
}

h1.nocontent .homeicon {
    border-radius: 25px 0 0 25px;
}

nav {
    border: 2px solid #ccc;
    border-radius: 5px;
    display: inline-block;
    background: rgba(250, 250, 250, .8); /* #fafafacc; hexadecimal with hex value https://stackoverflow.com/a/31029864/1980630 */ /* https://developer.mozilla.org/en-US/docs/Web/CSS/color_value#rgba() */
}
nav a {
    display: inline-block;
    padding: 10px;
    border-left: 1px solid #ccc;
    white-space: nowrap;
}
nav a:first-child {
    border-left: 0px none;
    border-radius: 5px 0 0 5px;
}
nav a:last-child {
    border-radius: 0 5px 5px 0;
}
nav {
    margin: 15px 15px 0 15px;
    vertical-align: middle;
}

@media screen and (max-width: 620px) {
nav a {
    display: block;
    border: 0;
    text-align: center;
}
nav {
    width: 100%;
    margin-left: 0 !important;
    margin-right: 0 !important;
    margin-top: 10px;
    margin-bottom: 10px;
    border-radius: 0 !important;
    border-left-width: 0 !important;
    border-right-width: 0 !important;
}
.index .part {
    white-space: normal !important;
    text-align: center;
    width: 100%;
}
.header-section {
    padding: 0 !important;
}
body {
    margin: 0;
    padding: 0;
}
.index section {
    margin-left: 0 !important;
    margin-right: 0 !important;
    border-left-width: 0;
    border-right-width: 0;
    box-shadow: none !important;
    border-radius: 0 !important;
    width: 100%;
}
}

section:not(.grouping) {
    line-height: 1.4;
}

h1 .text {
    vertical-align: middle;
}
h1 a.homepage {
    vertical-align: middle;
    display: inline-block;
}
h1 a.homepage img {
    width: 24px;
    height: 24px;
    padding: 10px;
}

ul li, ol li {
    margin-top: 5px;
    margin-bottom: 5px;
}

.index h1 .text {
    margin-left: 10px;
}

.index li {
    padding: 2px 0px;
}

a, a:visited {
    color: #339; /* 009 */
    text-decoration: none;
}

a:visited {
    /* color: #66f; */
}

a:hover {
    text-decoration: underline;
    color: #33c;
}

a.totop::before {
    content: "↑"; /* U+2191 */
}

a.permalink {
    margin-left: 5px;
}
a.permalink::before {
    content: "¶"; /* ¶ U+00B6 vs U+204B ⁋ */
}

a.next[href]:not([href=""]) {
    padding-left: 10px;
    padding-right: 10px;
    display: inline-block;
}
a.next[href]:not([href=""])::after {
    content:"›"; /* U+203A */
}

a.prev[href]:not([href=""]) {
    padding-right: 10px;
    padding-left: 10px;
    display: inline-block;
}
a.prev[href]:not([href=""])::before {
    content: "‹"; /* U+2039 */
}


/*
a.prev:not([href]), a.next:not([href]),
a.prev[href=""], a.next[href=""] {
    visibility: hidden;
}
*/

.index h1 {
    color: #063490;
    margin: 0;
    /* font-size: 24px; */
}

.index .part {
    display: inline-block;
    white-space: nowrap;
}

.index .part nav {
    white-space: normal;
}

.index .part strong {
    color: #3333cc;
}

.index .dir-name.root {
    display: none;
}

.index hr {
    height: 1px;
    border: 0;
    background: #ccc;
}

.index hr#theorie {
    height: 0;
}

.index #selfdomain {
    background: #ededed;
    padding: 10px;
    margin: 10px;
    border: 2px solid #ccc;
    border-radius: 10px;
}

figure .element {
    display: inline-block;
    vertical-align: top;
    text-align: center;
}

figure .element img {
    display: block;
}

#wrapper {
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    /*
    padding: 15px;
    box-shadow: 5px 5px 15px 0px rgba(0,0,0,0.75);
    background: white;
    border-radius: 10px;
    */
}

.para-discret, .lang-switch {
    margin: 0;
    font-style: italic;
}

.normal-comment, .normal-comments .hljs-comment {
    font-family: sans;
}
p.desc {
    font-style: italic;
}

.nowrap {
    white-space: nowrap;
}

p > code.hljs {
    display: inline;
    padding: 2px !important;
    background: transparent !important;
}

blockquote {
    text-align: italic;
    /* the margin is too big but that's alright */
}

/* nav.external */
nav.external {
    margin: 10px 10px 10px 10px;
}
nav.external a {
    padding: 0px;
}

nav.external > a:first-child {
    padding: 15px; 
}
nav.external hr {
    border-top: 3px dotted #ccc;
    margin: 0;
    color: transparent;
}
nav.external > a:first-child::before {
    margin-right: 5px;
}
nav.external > a:first-child:not(.video)::before {
    content: "🔗"; /* U+1F517 🔗 LINK SYMBOL */ /* "⇒" */
}
nav.external > a.video:first-child::before {
    content: "🎥"; /* U+1F3A5 🎥 MOVIE CAMERA */
}
nav.external > a:hover:first-child::before {
    text-decoration: none;
}

nav.external > a+ul, /* TODO: doesn't work like I want */
nav.external > a+ol {
    padding-bottom: 0px; 
}

nav.external ul,
nav.external ol {
    margin-right: 20px;
    /* margin-left: 10px; */
}
/* END nav.external */

p.comment, ul.comment, ol.comment, div.comment p,
p.info, ul.info, ol.info, div.info p {
    font-style: italic;
}
p.comment em:before, ul.comment em:before, ol.comment em:before, div.comment p em:before,
p.info em:before, ul.info em:before, ol.info em:before, div.info p em:before {
    content: "«";
}
p.comment em:after, ul.comment em:after, ol.comment em:after, div.comment p em:after,
p.info em:after, ul.info em:after, ol.info em:after, div.info p em:after {
    content: "»";
}
p.comment, div.comment,
p.info, div.info  {
    margin-left: 10px;
    padding-left: 10px;
    border-left: 2px dotted #ccc;
}
