:root {
    --input-vertical-padding: 0.375rem;
    --input-horizontal-padding: 0.75rem;
    --input-line-height: 1.5;
}

html {
    font-size: 13pt;
    box-sizing: border-box;
    scrollbar-gutter: stable both-edges;
}

body {
    margin: 0;
    font-family: sans-serif;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
    color: #212529;
    text-align: left;
    background-color: #fff;
}

h1 {
    font-family: inherit;
    font-size: 1.5em !important;
    font-weight: 600;
}
h2 {
    font-family: inherit;
    font-size: 1.25em !important;
    font-weight: 600;
}
p {
    margin: 0 0 0.5em 0;
    text-justify: inter-word;
}
p:last-of-type {
    margin-bottom: 0;
} 
small {
    font-size: 80%;
    font-weight: 400;
}

form {
    width: 30rem;
    margin: 2rem auto;
    padding: 1rem 1rem;
    border-radius: 0.5rem;
    background-color: #fcfcfc;
}

label {
    display: inline-block;
    margin-bottom: 0.5rem;
    font-family: inherit;
}
label > input {
    display: inline;
}

.input,
input {
    display: block;
    width: 100%;
    margin: 0;
    padding: var(--input-vertical-padding) var(--input-horizontal-padding);
    font-family: inherit;
    font-size: 1rem;
    line-height: var(--input-line-height);
    color #495057;
    background-color: #fff;
    background-clip: padding-box;
    border: 1px solid #ced4da;
    border-radius: 0.25rem;
    box-sizing: border-box;
}

.invalid,
:invalid:not([type="file"]):not(:focus) {
    border-color: red;
}

legend {
    display: inline-block;
    margin-bottom: 0.5rem;
    font-family: inherit;
}

.row, .row2 {
    display: flex;
    width: 100%;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: baseline;
    margin-bottom: .5em;
}
.row2 > * {
    width: 50%;
    margin: 0;
}

/*
.row input, .row2 input {
    display: inline-block;
    width: auto;
}*/

input.form-control-small {
    padding: 0.25rem .5rem;
    font-size: 0.875rem;
    border-radius: 0.2rem;
}

input[type="radio"],
input[type="checkbox"] {
    display: inline-block;
    height: auto;
    width: auto;
}

input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
    margin: 0;
    -webkit-appearance: none;
}
input[type="number"] {
    -moz-appearance: textfield;
}

input[type="file"] {
    padding: 0 calc(2 * var(--input-horizontal-padding)) 0 0;
    cursor: pointer;
}
input[type="file"]::file-selector-button {
    border: none;
    border-right: 1px solid #ced4da;
    margin: 0 var(--input-horizontal-padding) 0 0;
    padding: var(--input-vertical-padding) var(--input-horizontal-padding);
    line-height: var(--input-line-height);
    background-color: #e9e9ed;
    cursor: pointer;
}
input[type="submit"] {
    cursor: pointer;
    background-color: #e9e9ed;
}
input[type="submit"]:hover,
input[type="file"]:hover::file-selector-button {
    background-color: #d9d9dd;
}

:focus {
    outline: 3px solid #c1dffe;
    outline-offset: 0;
}
:focus:not(:focus-visible) {
    outline: none;
}

input:focus {
    border-color: #81bffc;
}

.form-group {
    display: block;
    padding: 0;
    margin: 0 0 1rem 0;
    border: none;
}

fieldset {
    margin-bottom: 0.5rem;
}
fieldset.form-group legend {
    float: left;
    margin-right: 0.15em;
}

.form-text {
    display: block;
    margin-top: 0.25rem;
}
.text-muted { color: #6c757d; }

.required:after {
    content: "*";
    color: red;
    padding-left: .2rem;
}

details.more-info {
    display: contents;
}
details.more-info > summary {
    display: inline-block;
    margin: 0;
    padding: 0;
    width: 1rem;
    height: 1rem;
    font-size: 1rem;
    line-height: 1;
    //vertical-align: top;
    cursor: pointer;
    outline: none;
    list-style: none;
    user-select: none;

/* handle information character */
    text-align: center;
    vertical-align: middle;
    width: 1.25em;
    height: 1.25em;
    line-height: 1.25em;
    font-size: smaller;
//    font-weight: bold;
    font-family: monospace;
    background-color: RoyalBlue;
    color: white;
    border-radius: 3px;
}
details.more-info > summary::marker,
details.more-info > summary::-webkit-details-marker {
    display: none;
}

/*
details.more-info > summary:focus,
*/
details.more-info > summary:hover {
    filter: brightness(150%);
/*
    outline: 3px solid #c1dffe;
    outline: 3px solid Skyblue;
    outline-offset: 0;
*/
}

details.more-info > :not(summary) {
    display: block;
    position: relative;
    margin: 0 0 1rem 0;
    padding: var(--input-vertical-padding) var(--input-horizontal-padding);
    background-color: LightYellow;
    background-color: Ivory;
    border-radius: 0.5rem;
    font-size: smaller;
}
details:not([open]) > :not(summary) { display: none; }

[hidden] { display: none; }
.visually-hidden {
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px;
}


.accordion > summary {
    cursor: pointer;
    user-select: none;
    position: relative;
    list-style: none;
    line-height: 3rem;
    border: 1px solid Transparent;
    border-bottom: 1px solid Grey;
    padding: 0 .5rem;
}
.accordion > summary:hover {
    background-color: #f2f5f9;
}
.accordion > summary:after {
    content: "+";
    color: black;
    position: absolute;
    font-size: 2rem;
    font-family: monospace;
    line-height: inherit;
    font-weight: 300;
    transform-origin: center;
    transition: 200ms linear;
    right: .5rem;
}
.accordion[open] > summary:after {
    transform: rotate(135deg);
}
.accordion > summary:focus-visible {
    border-radius: 0.5rem;
    border: 1px solid #81bffc;
}

.valid {
    color: Green;
}
.invalid {
    color: Red;
}
div.error {
    padding: 15px;
    margin-bottom: 20px;
    border: 1px solid transparent;
    border-color: #ebccd1;
    border-radius: 4px;
    color: #a94442;
    background-color: #f2dede;
}

.requirement {
    color: #6c757d;
}
:not([type="file"]):invalid:not(:focus) + .requirement,
:not([type="file"]):invalid:not(:focus) + * > .requirement {
    color: Red;
}
.file-upload-status {
    max-width: 50%;
    overflow: hidden;
    white-space: nowrap;
    text-align: right;
    text-overflow: ellipsis;
/*
    direction: rtl;
*/
    visibility: hidden;
}
.file-upload-status.error,
.file-upload-status.empty {
    color: Red;
}
:invalid:not(:focus) ~ .file-upload-status,
:invalid:not(:focus) ~ * > .file-upload-status {
    visibility: visible;
}














.no-js nav:focus-within ul[hidden] { display: block; }

details.info {
    display: contents;
}

h1 + details.info > summary { font-size: 1.4rem; line-height: 1.4rem; }

.info > summary::marker,
.info > summary::-webkit-details-marker {
    display: none;
}

.info > summary {
    font-family: icomoon;
    display: inline-block;
    margin: 0;
    padding: 0;
    width: 1em;
    height: 1em;
    border-radius: 50%;
    text-align: center;
    list-style: none;
    cursor: pointer;
    user-select: none;
}

details.info[open] > summary {
    font-weight: bold;
}
