/** GENERAL **/
:root {
    --bgcol-light: #fff;
    --bgcol-dark: #333;
    --fontcol-light: var(--bgcol-dark);
    --fontcol-dark: #ffe;

    --btncol-light: #7ce;
    --btncol-dark: #344;
    --disablecol: #888;
    --commcol-light: var(--fontcol-light);
    --commcol-dark: var(--fontcol-dark);

    --bgcol-list-light: #def;/*var(--bgcol-dark)*/
    --bgcol-list-dark: #ddc;
    --fontcol-list-light: var(--fontcol-light);
    --fontcol-list-dark: var(--fontcol-light);
    --link-col-light: var(--fontcol-light);/*darkslateblue*/
    --link-col-dark: var(--fontcol-dark);/*beige*/

    --body-width: 63rem;

    --btn-height: 3.3rem;
    --btn-width: 12rem;
    --btn-hheight: calc(0.5 * var(--btn-height));
    --btn-pad-left: var(--btn-hheight);
    --btn-radius: var(--btn-hheight);
    --info-spacing: var(--btn-hheight);
    --btn-logo-margin: 0.45rem;
    --logo-length: calc(var(--btn-height) - (2 * var(--btn-logo-margin)));

    --margin-btn-tb: calc(0.4 * var(--btn-height));
    --margin-btn-lr: 1rem;

    --section-margin-bot: 1rem;
}

* { font-family: "Open Sans",sans-serif; }
html { font-size: 120%; }
.page {
    max-width: var(--body-width);
    margin: 0 auto 10rem auto;
    text-align: center;
}

/** SECTIONS **/

h1 { font-size: 3rem; }
.s1_content {
    display: block;
    text-align: left;
}

h2 {
    text-align: left;
    margin-bottom: var(--section-margin-bot);
}
.s2_content {
    display: inline-block;
    align-content: start;
    margin-bottom: var(--section-margin-bot);
}

/** BUTTONS **/

.s2_elt {
    margin: var(--margin-btn-tb) var(--margin-btn-lr);
}
.btn {
    appearance: button;
    -moz-appearance: button;
    -webkit-appearance: button;
    text-decoration: none;
    cursor: pointer;
    height: var(--btn-height);
    width: var(--btn-width);
    border-radius: var(--btn-radius);
    float: left;
}
.btn:hover {
    transition: all 300ms;
    box-shadow: 3px 2px 7px rgb(0,0,0,0.3);
}
.btn_descr {
    display:flex;
    align-items: center;
    padding-left: var(--btn-pad-left);
}

img.logo {
    max-height: var(--logo-length);
    max-width: var(--logo-length);
    border-radius: 50%;
    margin: 0 0.8rem 0 calc(-1 * var(--btn-pad-left) + var(--btn-logo-margin) + 0.05rem);
}
.text_but {
    font-weight: bold;
}

.subd_info {
    position: absolute;
    user-select: none;
}

.not_yet {
    text-decoration: line-through;
    cursor: not-allowed;
    filter: opacity(0.7) blur(1px);
}
.not_yet:hover {
    box-shadow: 0 0;
}

/** DETAILS **/

.details {
    display: block;
    padding: 0;
    margin: var(--margin-btn-tb) calc(2 * var(--margin-btn-lr)) var(--margin-btn-tb) var(--margin-btn-lr);
}

summary {
    width: calc(var(--btn-width) - 1.6rem);
    height: var(--btn-height);
    border-radius: var(--btn-radius);
    position: absolute;
}
summary::marker { content: ""; }
summary::-webkit-details-marker {
    display: none;
}
.chevron-down {
    box-sizing: border-box;
    position: absolute;
    display: block;
    transform: translateX(10rem) translateY(-1px);
    width: 15px;
    height: 15px;
    border: 2px solid transparent;
    border-radius: 100px;
}
.chevron-down::after {
    content: "";
    display: block;
    box-sizing: border-box;
    position: absolute;
    width: 12px;
    height: 12px;
    border-bottom: 3px solid;
    border-right: 3px solid;
    transition: 250ms transform ease;
    transform: rotate(45deg);
    transform-origin: 60% 60%;
    left: 0px;
    top: 0px;
}
details[open] .chevron-down::after {
    transform: rotate(225deg);
}
details[open] {
    margin-bottom: 8rem;
}
.info_menu {
    border-radius: 0 0 var(--btn-radius) var(--btn-radius);
    margin-top: var(--info-spacing);
    margin-bottom: var(--margin-btn-tb);
    height: fit-content;
    width: calc(var(--btn-width) + var(--btn-pad-left));
    font-size: 0.9rem;
    cursor: auto;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    overflow: hidden;
    animation: closeMenu 300ms ease-in-out forwards;
}
.info_menu div:nth-of-type(1) {
    margin-top: calc(var(--info-spacing) + 4px);
}
.info_menu div:nth-last-of-type(1) {
    margin-bottom: 20px;
}
.info_menu > div {
    padding: 2px 5px;
    margin: 2px 10px;
    text-align: left;
}
.property {
    font-weight: bold;
}
.value {
    text-align: right;
    font-family: monospace;
    font-size: 0.8rem;
    /*letter-spacing: -1px;*/
}
.value > a {
    text-decoration: none;
    font-style: italic;
    color: inherit;
}
.linktxt {
    text-decoration: underline solid transparent;
    transition: text-decoration 0.15s ease;
}
.linktxt:hover {
    text-decoration: underline solid currentColor;
    transition: text-decoration 0.2s ease;
}
/* .property, .value { margin: 0 3px; } */
.comment {
    font-size: 10pt;
    font-family: Open Sans;
    display: block;
}
.on, .off, .unkn {
    padding: 2px 6px;
    border-radius: 3px;
}
.on { background-color: mediumseagreen; }
.off {background-color: orangered; }
.unkn {background-color: gray; }

/* animation */
details[open] .info_menu {
  animation-name: menuAnim;
}
@keyframes menuAnim {
  0% {
    height: 0;
  }
  100% {
    height: 8.5rem;
  }
}

/** THEMES **/

@media (prefers-color-scheme: dark) {
    body {
        background: var(--bgcol-dark);
        color: var(--fontcol-dark);
    }
    .text_but { color: var(--fontcol-dark); }
    .btn { background: var(--btncol-dark); }
    .not_yet { color: var(--disablecol); }

/*    .comment { color: var(--commcol-dark); }*/

    .info_menu {
        background: var(--bgcol-list-dark);
    }
    .info_menu, .value {
        color: var(--fontcol-list-dark);
    }

    a {
        color: var(--link-col-dark);
    }
}
@media (prefers-color-scheme: light) {
    body {
        background: var(--bgcol-light);
        color: var(--fontcol-light);
    }
    .text_but { color: var(--fontcol-light); }
    .btn { background: var(--btncol-light); }
    .not_yet { color: var(--disablecol); }

/*    .comment { color: var(--commcol-light); }*/

    .info_menu {
        background: var(--bgcol-list-light);
    }

    .info_menu, .value {
        color: var(--fontcol-list-light);
    }
    
    a {
        color: var(--link-col-light);
    }
}

@media only screen and (max-width: 1650px) {/* --body-width */
    html { font-size: 140%; }
    .page { max-width: calc(0.75 * var(--body-width)); }
}

@media only screen and (max-width: 1075px) {/* 3/4 * --body-width */
    html { font-size: 175%; }
    .page { max-width: calc(0.5 * var(--body-width)); }
}
