* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

:root {
    --bloc-height: 43px;
}
body {}

.row { display: flex; }
.col#toc { width: calc(100% / 3); }
.col#map { width: calc(100% / 3 + 100% / 3); }
.col.right { margin-left: auto; }




header {
    position: sticky;
    top: 0px;
    z-index: 2;
    padding: .5rem 1rem .5rem 1rem;

    background-color: white;

    display: flex;

}


header h2 {
    margin-left: 0.6rem;
}

#interface_container {
    height: calc(100vh - var(--bloc-height));
}
.col#toc,
.col#map {
    height: 100%;
    padding: 1rem;
}
.col#toc {
    overflow-y: scroll;
}
body {
    height: 100vh;
}

header {
    padding-left: 1rem;
    padding-right: 1rem;
}


ul { list-style: none; }
ul ul {}

body {
    font-family: "Jost";
}




#toc div > ul {
    border: 2px solid black;
}
#toc .tab_container {
    margin-top: .5rem;
}
#toc li span {
    display: block;
    cursor: pointer;
    border-top: 2px solid black;
    border-bottom: 2px solid black;
    margin-bottom: -2px;
}
#toc div > ul > li:first-child span { border-top: 0px }


#toc li [data-indent="0"] {
    margin-left: 2rem;
    padding-left: .2rem;
}
#toc li [data-indent="1"] {
    margin-left: 3rem;
    padding-left: .2rem;
}
#toc li [data-indent="2"] {
    margin-left: 4rem;
    padding-left: .2rem;
}
#toc ul li {
    position: relative;
}
#toc li::before {
    content: "";
    width: 1rem;
    height: 23px;
    background-color: aquamarine;
    left: 0px;
    top: 0px;
    position: absolute;
    z-index: 10;
    border-right: 2px solid black;
    border-bottom: 2px solid black;
}
#toc div > ul > li:first-child::before {
    border-bottom: 2px solid black;
    z-index: 11;
}

#toc li:hover > span {
    background-color: aquamarine;
}

/* onglets */

.tab_container {
    display: flex;
    height: var(--bloc-height);
}
.tab_container .tab_item {
    display: grid;
    place-items: center;
    text-align: center;

    border: 2px solid black;
    padding: 0px .6rem 0px .6rem;
    border-right: 0px;
    border-bottom: 0px;
}
.tab_container .tab_item:last-child { border-right: 2px solid black; }

#map .tab_item { cursor: pointer; }

#map .tab_item.active,
#map .tab_item:hover {
    background-color: coral;
}

#map .tab_target:not(.active) {
    display: none;
}

#map .tab_target {
    border: 2px solid black;
    height: calc(100% - var(--bloc-height));
}

#map { position:relative; }
#map #title {
    position: absolute;
    top: 70px;
    left: 30px;
}


#toggle_map {
    display: grid;
    place-items: center;
    text-align: center;
    border: 2px solid black;
    border-bottom: 0px;
    padding: 0px .6rem 0px .6rem;

    cursor: pointer;
}


.tab_target {
    position: relative;
}
.tab_target svg {
    position: absolute;
    top: 0px;
    left: 0px;
    z-index: 10;
}
.tab_target img {
    position: absolute;
    top: 0px;
    left: 0px;
    z-index: 9;

    object-fit: contain;
    width: 100%;
    height: 100%;
    object-position: center;
}
svg {
    width: 100%;
    height: 100%;
}

svg text {
    font-size: 170px;
}
div[data-target="CG_1871.jpg"] svg text {
    font-size: calc(170px / 5);
}
.tab_target svg #g_text {
    display: none;
}
.tab_target.placenames svg #g_text {
    display: block;
}


.tab_target:not(.img_carte) img {
    display: none;
}
.tab_target.img_carte svg path {
    display: none;
}

/* TYPO */

h1, h2, h3, h4, h5, h6 {
    font-size: 1.17rem;
}
aside p + p {
    text-indent: calc(1rem + 2px);
}
a {
    color: inherit;
    text-decoration: none;
}


/* INPUTS */

fieldset {
    margin-top: .5rem;
    border: 2px solid black;
    padding: .5rem;
}
fieldset legend {
    padding: 0 .5rem 0 .5rem;
}