/* Works well with Microsoft Print To PDF (via Firefox) or "prince" <princexml.com> */
@page {
  size: A4;
  margin-top: 10mm;
  margin-bottom: 10mm;
  margin-left: 1mm;
  margin-right: 1mm;
}

/*.page_footer {
    display: none;
}

@media print {
    #page_footer {
        display: table-footer-group;
    }

    #page_footer:after {
        counter-increment: page;
        content: counter(page);
    }
}*/

@page :blank {
  @top-center { content: "This page is intentionally left blank." }
}

/*
@page { 
  @bottom-left {
    margin: 10pt 0 30pt 0;
    border-top: .25pt solid #666;
    content: "My book";
    font-size: 9pt;
    color: #333;
  }
}
*/

body {
    background-color: #11111128;
}

.body {
    margin-top: 0px;
    margin-bottom: 0px;
    margin-left: 2%;
    margin-right: 2%;
    padding-top: 1px;
    padding-left: 16px;
    padding-bottom: 6px;
    padding-right: 16px;
    font-family: arial;
    background-color: #ffffffff;
    border-radius: 15px; 
    -o-border-radius: 15px; 
    -moz-border-radius: 15px; 
}

@media print {
    body {
        background-color: #fff;
    }

    .body {
        border-radius: 0px;
    }
}

.p {
    margin-top: 0.5em;
    margin-bottom: 0.5em;
}

@media print {
  .col {
    column-count: 2;
    -webkit-column-count: 2;
    -moz-column-count: 2;
  }
}

/* p preceded by p */
.p ~ .p {
    margin-top: 0.75em;
}

.br {
    margin-bottom: 0.25em;
}

.h1 {
    margin-top: 1.5em;
    margin-bottom: 0px;
}

.h1_enum {
    color: #999;
}

@media print { .h1 { page-break-before:always; } }

.h2 {
    margin-top: 1.5em;
    margin-bottom: 0.5em;
}

.h2_enum {
    color: #999;
}

.h3 {
    margin-top: 1em;
}

.h3_enum {
    color: #999;
}

.h4 {
}

.h4_enum {
    color: #999;
}

.h5 {
}

.h5_enum {
    color: #999;
}

.h6 {
}

.h6_enum {
    color: #999;
}

.h7 {
    color: rgba(0,0,0,0.8);
}

.h7_enum {
    color: #999;
}

.h8 {
    color: rgba(0,0,0,0.6);
}

.h8_enum {
    color: #aaa;
}

.h9 {
    color: rgba(0,0,0,0.4);
}

.h9_enum {
    color: #bbb;
}

a:link {
    color: #08d;
    text-decoration: none;
}

a:visited {
    color: #46b;
}

a:hover {
    color: #f00;
}

a:active {
    color: #f36;
}

.em {
    font-style: italic;
    font-weight: normal;
    text-decoration: none;
}

.em2 {
    font-style: normal;
    font-weight: normal;
    font-size: larger;
    text-decoration: underline;
}

.strong {
    font-style: normal;
    font-weight: bold;
    text-decoration: none;
}

.strong2 {
    font-style: normal;
    font-weight: bold;
    text-decoration: underline;
}

.code {
    background-color: #ffff1120;
    color: #321;
    font-size: larger;
    font-weight: normal;
    font-family: monospace;
    border: 1px solid #eeeecc;
    padding-top: 0px;
    padding-left: 1px;
    padding-bottom: 0px;
    padding-right: 1px;
}

.code2 {
    background-color: #ffff1120;
    color: #321;
    font-size: larger;
    font-weight: bold;
    font-family: monospace;
    border: 1px solid #eeeecc;
    padding-left: 2px;
}

.td > .code {
    background: none;
    border: 0;
}

.pre {
    display: inline-block;
    margin-left: 1em;
    margin-top: 0em;
    margin-bottom: 0.05em;
    padding: 4px 8px 4px 8px;
    padding-top: 6px;
    padding-bottom: 6px;
    background-color: #ffffd8;
    color: #000;
    font-size: larger;
    font-weight: normal;
    font-family: monospace;
    border: 2px dotted #000;
    border-left-width: 4px;
    border-left-style: solid;
    /*border-left-color: #442;*/
    border-left-color: #111111a8;
    white-space: pre-wrap;       /* css-3 */
    white-space: -moz-pre-wrap;  /* Mozilla, since 1999 */
    white-space: -pre-wrap;      /* Opera 4-6 */
    white-space: -o-pre-wrap;    /* Opera 7 */
    word-wrap: break-word;       /* Internet Explorer 5.5+ */
}


@media print {
    .pre {
        border: 1.5px solid #000; /* print*/
        background-color: #ffffd8 !important;
        -webkit-print-color-adjust: exact; 
        box-shadow: inset 0 0 0 1000px #ffffd8; /* hack to fix background color */
    }

    li {
        page-break-inside: avoid;
    }
}

.ulroot {
    margin-top: 10px;
    margin-left: 0.25em;
    margin-bottom: 1.5em;
}

.olroot {
    margin-top: 10px;
    margin-left: 0.25em;
    margin-bottom: 1.5em;
}

.liroot {
    margin-top: 4px;
    margin-bottom: 4px;
    /*font-size: larger;
    font-weight: bold;
    color: #555;*/
}

.lirootwithsub {
    margin-top: 8px;
    margin-bottom: 4px;
}

.lirootlast {
    margin-bottom: 10px;
}

.lisub {
    margin-top: 4px;
    margin-bottom: 4px;
}

.lisubwithsub {
    margin-top: 2px;
    margin-bottom: 4px;
}

.lisublast {
    margin-bottom: 10px;
}


.hr {
    width: 100%;
    height: 4px;
    background: #eee;
    border: 0;
}

.hr_pagebreak {
    border: 0;
    height: 0px;
}

@media print { .hr_pagebreak { page-break-after:always; } }

.hr_asterisk {
    width: 100%;
    height: 8px;
    background: #eee;
    border: 0;
}

.hr_spaced_asterisk {
    width: 100%;
    text-align: center;
    border: 0;
}

.hr_spaced_asterisk_inner {
    margin: auto;
    width: 0%;
    font-size: larger;
    border: 10;
}

.img {
    display: inline-block;
    /*vertical-align: center;*/
    border: 1px;
    padding-top: 0px;
    padding-left: 0px;
    padding-bottom: 0px;
    padding-right: 0px;
    margin-top: 0em;
    margin-left: 0em;
    margin-bottom: 0em;
    margin-right: 0em;
}

.imgnowhitespace {
    /* special case when paragraph contains only an image */
    font-size: 0;
}

.oimg {
    border-color: #888;
}

.subdiv_outer {
    display: inline-block;
    vertical-align: top;
    margin-top: 0em;
    margin-left: 1em;
    margin-bottom: 0em;
    margin-right: 0em;
    /*border: 1px solid #000;*/
    margin-bottom: 0.75em;
    padding-top: 0px;
    padding-left: 0px;
    padding-bottom: 0px;
    padding-right: 0px;
}

.subdiv_inner .pre {
    margin-top: 0em;
    margin-left: 0em;
    margin-bottom: 0em;
    margin-right: 0em;
}

.subdiv_inner .ulroot {
    margin-top: 0em;
    margin-left: 1em;
    margin-bottom: 0em;
    padding-top: 6px;
    padding-left: 4px;
    padding-bottom: 6px;
}

.subdiv_inner {
    /*display: block;*/
    /*vertical-align: text-bottom;*/
    margin-top: 0em;
    margin-left: 0em;
    margin-bottom: 0em;
    margin-right: 0em;
    padding-top: 0px;
    padding-left: 0px;
    padding-bottom: 0px;
    padding-right: 0px;
    background-color: #11111108;
}

.subdiv_title {
    display: inline-block;
    display: block;
    vertical-align: top;
    margin-top: 0.15em;
    margin-left: 0em;
    margin-bottom: 0em;
    margin-right: 0em;
    padding-top: 0px;
    padding-left: 0px;
    padding-bottom: 0px;
    padding-right: 0px;
    font-size: small;
    font-style: italic;
    font-weight: normal;
    color: #000;
    /*background-color: #eee;*/
}

.table_div {
}

.table {
    border: 1px solid black;
}

.thtr {
    border: 1px solid black;
}

.thtd {
    border-bottom: 1px solid black;
    /*border-right: 1px solid black;*/
    padding-left: 8px;
    padding-right: 8px;
}

.tr {
}

.tr:nth-child(even) {
    background-color: #11111118;
}

.tr:nth-child(odd) {
    background-color: #11111108;
}

.td {
    vertical-align: text-top;
}

.blockquote {
    margin-left: 1em;
    padding-left: 10px;
    border-left: 4px solid #ddd;
}

.blockquote_cite {
    display: inline-block;
    /*font-style: normal;*/
    font-style: italic;
    font-size: large;
    font-family: monospace;
    color: #222;
    border-radius: 20px;
    border: 5px solid #f2f2f2;
    background-color: #f2f2f2;
    margin-top: 0em;
    margin-left: 0em;
    margin-right: 0em;
    margin-bottom: 0em;
    padding-top: 0em;
    padding-left: 0px;
    padding-bottom: 0px;
    padding-right: 0px;
    line-height: 0.9 !important;
    z-index: 100;
}

@media print {
    .blockquote_cite {
        border: 0px;
    }
}

.blockquote_cite > .p {
    margin-top: -80px;
    margin-left: 50px;
    line-height: 1.3 !important;
    background-color: #f2f2f2;
}

.blockquote_cite::before {
    /*content: "«";*/
    content: '\201C';
    display: block;
    font-family: Georgia, serif;
    color: #a55;
    margin-right: 0.5em;
    font-size: 100px;
}

.blockquote_cite_begin {
}
.blockquote_cite_end {
}

.blockquote_cite_end::before {
    /*content: "»";*/
    /*content: '\201D';*/
    display: inline-block;
    position: absolute;
    z-index: -100;
    top: -2em;
    left: -1em;
    color: #a55;
    margin-left: 0.5em;
    font-size: 40px;
}

.footer_cite {
    display: inline-block;
    font-family: arial;
    /*font-style: italic;*/
    font-style: normal;
    font-weight: bold;
    font-size: small;
    color: #444;
    border-radius: 20px;
    border: 5px solid #f2f2f2;
    background-color: #f2f2f2;
    float: right;
    margin-top: -1em;
    margin-left: 0em;
    margin-right: 0em;
    margin-bottom: 0em;
    padding-top: 0px;
    padding-left: 0px;
    padding-bottom: 0px;
    padding-right: 0px;
}

@media print {
    .blockquote_cite {
        padding-right: 8px;
    }
    .footer_cite {
        border: 0px;
        padding-bottom: 4px;
    }
}

.blockquote > .blockquote {
    margin-left: 0.0em;
    padding-left: 10px;
    border-left: 4px solid #ddd;
}

.blockquote > .ulroot {
    margin-left: 1em;
    padding-left: 0px;
}

.blockquote > .olroot {
    margin-left: 0em;
    padding-left: 0px;
}

.blockquote > pre {
    margin-left: 0em;
    padding-left: 0px;
}

.note_s_div_outer {
    margin-top: 0.5em;
    margin-left: 0em;
    margin-bottom: 0.5em;
    margin-right: 0em;
}

.note_l_div_outer {
    margin-top: 0.5em;
    margin-bottom: 0.5em;
}

.important_s_div_outer {
    margin-top: 0.5em;
    margin-bottom: 0.5em;
}

.important_l_div_outer {
    margin-top: 0.5em;
    margin-bottom: 0.5em;
}

.tip_s_div_outer {
    margin-top: 0.5em;
    margin-bottom: 0.5em;
}

.tip_l_div_outer {
    margin-top: 0.5em;
    margin-bottom: 0.5em;
}

.caution_s_div_outer {
    margin-top: 0.5em;
    margin-bottom: 0.5em;
}

.caution_l_div_outer {
    margin-top: 0.5em;
    margin-bottom: 0.5em;
}

.warning_s_div_outer {
    margin-top: 0.5em;
    margin-bottom: 0.5em;
}

.warning_l_div_outer {
    margin-top: 0.5em;
    margin-bottom: 0.5em;
}

.todo_s_div_outer {
    margin-top: 0.5em;
    margin-bottom: 0.5em;
}

.todo_l_div_outer {
    margin-top: 0.5em;
    margin-bottom: 0.5em;
}

.note_s_div_table {
    border: 0px solid black;
    border-collapse: collapse;
}

.note_l_div_table {
    border: 0px solid black;
    border-collapse: collapse;
}

.important_s_div_table {
    border: 0px solid black;
    border-collapse: collapse;
}

.important_l_div_table {
    border: 0px solid black;
    border-collapse: collapse;
}

.tip_s_div_table {
    border: 0px solid black;
    border-collapse: collapse;
}

.tip_l_div_table {
    border: 0px solid black;
    border-collapse: collapse;
}

.caution_s_div_table {
    border: 0px solid black;
    border-collapse: collapse;
}

.caution_l_div_table {
    border: 0px solid black;
    border-collapse: collapse;
}

.warning_s_div_table {
    border: 0px solid black;
    border-collapse: collapse;
}

.warning_l_div_table {
    border: 0px solid black;
    border-collapse: collapse;
}

.todo_s_div_table {
    border: 0px solid black;
    border-collapse: collapse;
}

.todo_l_div_table {
    border: 0px solid black;
    border-collapse: collapse;
}

.note_s_div_tr {
    margin: 0px;
    padding: 0px;
    border: 0px solid black;
}

.note_l_div_tr {
    margin: 0px;
    padding: 0px;
    border: 0px solid black;
}

.important_s_div_tr {
    margin: 0px;
    padding: 0px;
    border: 0px solid black;
}

.important_l_div_tr {
    margin: 0px;
    padding: 0px;
    border: 0px solid black;
}

.tip_s_div_tr {
    margin: 0px;
    padding: 0px;
    border: 0px solid black;
}

.tip_l_div_tr {
    margin: 0px;
    padding: 0px;
    border: 0px solid black;
}

.caution_s_div_tr {
    margin: 0px;
    padding: 0px;
    border: 0px solid black;
}

.caution_l_div_tr {
    margin: 0px;
    padding: 0px;
    border: 0px solid black;
}

.warning_s_div_tr {
    margin: 0px;
    padding: 0px;
    border: 0px solid black;
}

.warning_l_div_tr {
    margin: 0px;
    padding: 0px;
    border: 0px solid black;
}

.todo_s_div_tr {
    margin: 0px;
    padding: 0px;
    border: 0px solid black;
}

.todo_l_div_tr {
    margin: 0px;
    padding: 0px;
    border: 0px solid black;
}

.note_s_div_td_icon {
    margin: 0;
    padding: 0px;
    border: 0px solid black;
}

.note_l_div_td_icon {
    margin: auto;
    padding: 0px;
    border: 0px solid black;
}

.important_s_div_td_icon {
    margin: 0;
    padding: 0px;
    border: 0px solid black;
}

.important_l_div_td_icon {
    margin: auto;
    padding: 0px;
    border: 0px solid black;
}

.tip_s_div_td_icon {
    margin: 0;
    padding: 0px;
    border: 0px solid black;
}

.tip_l_div_td_icon {
    margin: auto;
    padding: 0px;
    border: 0px solid black;
}

.caution_s_div_td_icon {
    margin: 0;
    padding: 0px;
    border: 0px solid black;
}

.caution_l_div_td_icon {
    margin: auto;
    padding: 0px;
    border: 0px solid black;
}

.warning_s_div_td_icon {
    margin: 0;
    padding: 0px;
    border: 0px solid black;
}

.warning_l_div_td_icon {
    margin: auto;
    padding: 0px;
    border: 0px solid black;
}

.todo_s_div_td_icon {
    margin: 0;
    padding: 0px;
    border: 0px solid black;
}

.todo_l_div_td_icon {
    margin: auto;
    padding: 0px;
    border: 0px solid black;
}

.note_s_div_td_text {
    margin-left: 0;
    padding: 0;
    border: 0px solid black;
}

.note_l_div_td_text {
}

.important_s_div_td_text {
}

.important_l_div_td_text {
}

.tip_s_div_td_text {
    /*background-color: #fff;*/
    /*background: none;*/
}

.tip_l_div_td_text {
}

.caution_s_div_td_text {
}

.caution_l_div_td_text {
}

.warning_s_div_td_text {
}

.warning_l_div_td_text {
}

.todo_s_div_td_text {
}

.todo_l_div_td_text {
}

.note_s_div_inner {
    margin: 0em;
    margin-left: 0.5em;
    padding: 0px;
    border: 0px solid black;
    border-top: 2px solid #eee;
    border-bottom: 2px solid #eee;
    line-height: 0.7em;
}

.note_l_div_inner {
    margin: 0.5em;
    padding: 0px;
    border: 0px solid black;
    border-top: 4px solid #eee;
    border-bottom: 4px solid #eee;
}

.important_s_div_inner {
    margin: 0em;
    margin-left: 0.5em;
    padding: 0px;
    border: 0px solid black;
    border-top: 2px dotted #eee;
    border-bottom: 2px dotted #eee;
    line-height: 0.7em;
}

.important_l_div_inner {
    margin: 0.5em;
    padding: 0px;
    border: 0px solid black;
    border-top: 4px solid #eee;
    border-bottom: 4px solid #eee;
}

.tip_s_div_inner {
    margin: 0em;
    margin-left: 0.5em;
    padding: 0px;
    border: 0px solid black;
    border-top: 2px dotted #eee;
    border-bottom: 2px dotted #eee;
    line-height: 0.7em;
}

.tip_l_div_inner {
    margin: 0.5em;
    padding: 0px;
    border: 0px solid black;
    border-top: 4px solid #eee;
    border-bottom: 4px solid #eee;
}

.caution_s_div_inner {
    margin: 0em;
    margin-left: 0.5em;
    padding: 0px;
    border: 0px solid black;
    border-top: 2px dotted #eee;
    border-bottom: 2px dotted #eee;
    line-height: 0.7em;
}

.caution_l_div_inner {
    margin: 1.4em;
    padding: 0px;
    border: 0px solid black;
    border-top: 4px solid #eee;
    border-bottom: 4px solid #eee;
}

.warning_s_div_inner {
    margin: 0em;
    margin-left: 0.5em;
    padding: 0px;
    border: 0px solid black;
    border-top: 2px dotted #eee;
    border-bottom: 2px dotted #eee;
    line-height: 0.7em;
}

.warning_l_div_inner {
    margin: 0.5em;
    padding: 0px;
    border: 0px solid black;
    border-top: 4px solid #eee;
    border-bottom: 4px solid #eee;
}

.todo_s_div_inner {
    margin: 0em;
    margin-left: 0.5em;
    padding: 0px;
    border: 0px solid black;
    border-top: 2px dotted #eee;
    border-bottom: 2px dotted #eee;
    line-height: 0.7em;
}

.todo_l_div_inner {
    margin: 0.5em;
    padding: 0px;
    border: 0px solid black;
    border-top: 4px solid #eee;
    border-bottom: 4px solid #eee;
}

.toc_div {
    border: 0px solid black;
    border-top: 2px solid #ccc;
    border-bottom: 2px solid #ccc;
    background-color: #fcfcfc;
    font-size: larger;
}

.toc_ulroot {
    margin-top: 10px;
    margin-left: 0.0em;
    margin-bottom: 1.5em;
    list-style-type: none;
}

.toc_ulsub {
    list-style-type: none;
    margin-top: 4px;
}

.toc_lisub {
    /*display: flex;*/
    /*background-color: #eee;*/
}

.toc_lisub > .toc_enum {
    /*order: 1;
    flex-grow: 0;*/
}

.toc_lisub > a {
    /*order: 2;
    flex-grow: 0;*/
}

/*.toc_lisub > .toc_pagedots {
    border-bottom: 2px dotted;
    height: 1em;
    order: 3;
    flex-grow: 1;
}*/

.toc_div a::after {
    /* prince-only: */
    content: leader('.') target-counter(attr(href), page);
    /*order: 3;*/
}

.toc_liroot {
    margin-top: 4px;
    margin-bottom: 4px;
    /*font-size: larger;
    font-weight: bold;
    color: #555;*/
}

.toc_lirootwithsub {
    margin-top: 8px;
    margin-bottom: 4px;
}

.toc_lirootlast {
    margin-bottom: 10px;
}

.toc_lisub {
    margin-top: 4px;
    margin-bottom: 4px;
}

.toc_lisubwithsub {
    margin-top: 2px;
    margin-bottom: 4px;
}

.toc_lisublast {
    margin-bottom: 10px;
}

.toc_enum {
    display: inline-block;
    margin: auto;
    margin-right: 0.5em;
}

.toc_a::after {
    /*content: leader(dotted) "bla"*/
    /*content: "(page " target-counter(attr(href, url), page) ")";*/
    /*content: "(page " target-counter(attr(href), page) ")";*/
}

.footnote_nr {
    vertical-align: super;
    font-size: smaller;
    color: #0f0;
}

.footnote_table_local {
    /* display: block;*/
    display: inline-block;
    margin-left: 1em;
    border: 0px solid black;
    border-top: 2px solid #eee;
    border-left: 2px solid #eee;
    border-bottom: 2px solid #eee;
    border-right: 2px solid #eee;
    background-color: #fcfcfc;
}

.footnote_table_global {
    /* display: block;*/
    display: inline-block;
    margin-top: 2em;
    margin-left: 1em;
    border: 0px solid black;
    border-top: 2px solid #eee;
    border-bottom: 2px solid #eee;
}

.footnote_tr {
}

.footnote_td_nr {
    vertical-align: super;
    font-size: smaller;
}

.footnote_td_link {
}

.footnote_a {
    padding-right: 0.5em;
}

.footnote_title {
    /*font-size: larger;*/
}

.lf {
    margin: 0em;
    padding: 0px;
}

.header > .table {
    border: 0px solid #eeeeee;
    margin-top: 1em;
    margin-left: 0em;
    margin-bottom: -1.5em;
    font-size: 20;
}

.header .td {
    background-color: #fff;
}

.header .td:nth-child(1) {
    padding-left: 0.5em;
    color: #999;
}

.header .td:nth-child(2) {
    padding-left: 0.5em;
}

@media print {
    .header {
        margin-top: 19em;
        font-size: 20;
    }

    .header td:nth-child(1) {
        padding-top: 1em;
        font-size: 30;
    }

    .header td:nth-child(2) {
        padding-top: 1em;
        font-size: 40;
    }
}


/* User defined CSS classes (used in test.md) */

.cmdline {
    margin-left: 2em;
    padding: 0;
}

.cmdline > .table {
    border: 0px solid black;
}

.cmdline .td:nth-child(1) {
    padding-top: 1em;
    font-size: larger;
    font-weight: bold;
    font-family: monospace;
    background-color: #fff;
}

.cmdline .td:nth-child(2) {
    padding-top: 0.5em;
    background-color: #fff;
    padding-left: 1em;
}

.myclass {
    display: block;
    font-size: larger;
    background-color: #000;
    color: #fff;
    padding: 1px 2px 1px 4px;
}

.none {
    float: none;
    clear: both;
}

.left  {
    float: left;
    margin-top: 0px;
    margin-right: 1.5em;
}

.right  {
    float: right;
    margin-top: 0px;
    margin-left: 1.5em;
}

.noheader_table_example > .table {
    border: 0px solid black;
    margin-left: 2em;
    border-collapse: collapse;
}

.noheader_table_example .td:nth-child(1) {
    font-size: 20;
    font-weight: normal;
    background-color: #eee;
    padding-left: 0.25em;
    padding-right: 0.25em;
    border: 0px;
}

.noheader_table_example .td:nth-child(2) {
    font-size: 30;
    font-weight: normal;
    background-color: #ccc;
    padding-left: 0.25em;
    padding-right: 0.25em;
    border: 0px;
}

.tip_l_div_inner .pre {
    margin-bottom: 0.5em;
}

.subdiv_outer.csstable {
    width: 50%;
}

@media print {
    .subdiv_outer.csstable {
        width: 80%;
    }
}

.subdiv_inner.csstable {
    border: 0px solid black;
}

.csstable > .table {
    width: 100%;
}

.create {
    font-size: small;
    font-family: monospace;
    float: left;
    color: #aaa;
    padding-top: 4px;
}



/* Image Gallery */
#gallery #gallery-container {
          position: relative;
             width: 100%;
            height: 0px;
    padding-bottom: 56.7%; /* 16/9 ratio */
  background-color: blue;
}

#gallery #gallery-container #gallery-content {
  position: absolute;
       top: 0px;
     right: 0px;
    bottom: 0px;
      left: 0px;
    height: 100%;
   display: flex;
  
  scroll-snap-type: x mandatory;
        overflow-x: scroll;
   scroll-behavior: smooth;
}

#gallery #gallery-container #gallery-content .gallery__item {
              width: 100%;
             height: 100%;
        flex-shrink: 0;
  scroll-snap-align: start;
   scroll-snap-stop: always;
           position: relative;
}

#gallery #gallery-container #gallery-content .gallery__item img {
           display: block;
             width: 100%;
            height: 100%;
        object-fit: contain;
  background-color: white;
}

.gallery-click-zone {
  position: absolute;
     width: 20%;
    height: 100%;
   z-index: 3;
}

.gallery-click-zone.gallery-click-zone-prev {
  left: 0px;
}

.gallery-click-zone.gallery-click-zone-next {
  right: 0px;
}

#gallery:not(:hover) .gallery-arrow {
  opacity: 0;
}

.gallery-arrow {
        text-align: center;
         font-size: 34pt;
           z-index: 3;
          position: absolute;
           display: block;
             width: 50px;
     padding-right: 2px;
            height: 50px;
  background-color: white;
     border-radius: 50%;
   text-decoration: none;
             color: #777;
           opacity: 0.4; 
        transition: opacity 200ms ease;
}

.gallery-arrow:hover {
  opacity: .8;
}

.gallery-arrow span {
  position: relative;
       top: 2px;
}

.gallery-arrow.gallery-arrow-prev {
   top: 44%;
  left: 5px;
}

.gallery-arrow.gallery-arrow-next {
    top: 44%;
  right: 5px;
}

.gallery-arrow.gallery-arrow-disabled {
  opacity: 0.1;
}

#gallery:not(:hover) #gallery-controls {
  opacity: 0;
}

#gallery #gallery-container #gallery-controls {
          display: flex;
            width: 100%;
  justify-content: center;
          z-index: 4;
         position: absolute;
            right: 0;
           bottom: 1em;
             left: 0;
       text-align: center;
}

#gallery #gallery-container #gallery-controls .gallery-controls__dot {
             width: 0.85em;
            height: 0.85em;
     border-radius: 50%;
           outline: none;
  background-color: #fff;
           opacity: .3;
            cursor: pointer;
        transition: opacity 200ms ease;
}

.gallery-controls__dot:not(:first-child) {
  margin-left: 0.25em;
}

.gallery-hidden {
    border: 0;
      clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
  overflow: hidden;
   padding: 0;
  position: absolute;
     width: 1px;
}

#gallery #gallery-container #gallery-controls .gallery-controls__dot:hover {
  opacity: .8;
}

#gallery:not(:hover) #gallery-container #toggleFullscreenVisual {
  opacity: 0;
}

#gallery #gallery-container #toggleFullscreenVisual {
   display: block;
     width: 36px;
    height: 40px;
  position: absolute;
       top: 10px;
     right: 10px;
  
         font-size: 28pt;
             color: #7aaa;
            cursor: pointer;
           z-index: 4;
  background-color: white;
           opacity: .05;
        transition: opacity 200ms ease;
} 

#gallery #gallery-container #toggleFullscreenVisual:hover {
  opacity: .8;
}

#toggleFullscreen {
  display: none;
}

/* (note) vh = viewport relative height https://developer.mozilla.org/en-US/docs/Web/CSS/length */
#toggleFullscreen:checked ~ #gallery-main {
    height: 100vh;
  overflow: hidden;
}

#toggleFullscreen:checked ~ #gallery-main #gallery #gallery-container {
        position: absolute;
             top: 0px;
           right: 0px;
          bottom: 0px;
            left: 0px;
          height: 100%;
  padding-bottom: 0px;
}

#toggleFullscreen:checked ~ #gallery-main #gallery #toggleFullscreenVisual {
           opacity: .6;
  background-color: grey;
          position: fixed;
}

#toggleFullscreen:checked ~ #gallery-main #gallery #gallery-controls {
  position: fixed;
}

#toggleFullscreen:checked ~ #gallery-main #gallery #gallery-controls .gallery-controls__dot {
           opacity: .6;
  background-color: grey;
}

#gallery-main #content {
  padding: 0px 36px;
}

#gallery-main #content p {
  margin-top: 36px;
}

#gallery-main {
    padding: 0px;
     margin: 0px;
  max-width: 75%;
     margin: auto;
}
