/*! smplHTML v1.0.0          | MIT License | https://gitlab.com/krisztianmukli/smplHTML */
/*! HTML5 Boilerplate v6.1.0 | MIT License | https://html5boilerplate.com/ */

/*
 * What follows is the result of much research on cross-browser styling.
 * Credit left inline and big thanks to Nicolas Gallagher, Jonathan Neal,
 * Kroc Camen, and the H5BP dev community and team.
 */

/* ==========================================================================
     Base styles: opinionated defaults
     ========================================================================== */

html {
    color: #222;
    font-size: 1em;
    line-height: 1.4;
}

/*
 * Remove text-shadow in selection highlight:
 * https://twitter.com/miketaylr/status/12228805301
 *
 * Vendor-prefixed and regular ::selection selectors cannot be combined:
 * https://stackoverflow.com/a/16982510/7133471
 *
 * Customize the background color to match your design.
 */

::-moz-selection {
    background: #b3d4fc;
    text-shadow: none;
}

::selection {
    background: #b3d4fc;
    text-shadow: none;
}

/*
 * A better looking default horizontal rule
 */

hr {
    display: block;
    height: 1px;
    border: 0;
    border-top: 1px solid #ccc;
    margin: 1em 0;
    padding: 0;
}

/*
 * Remove the gap between audio, canvas, iframes,
 * images, videos and the bottom of their containers:
 * https://github.com/h5bp/html5-boilerplate/issues/440
 */

audio,
canvas,
iframe,
img,
svg,
video {
    vertical-align: middle;
}

/*
 * Remove default fieldset styles.
 */

fieldset {
    border: 0;
    margin: 0;
    padding: 0;
}

/*
 * Allow only vertical resizing of textareas.
 */

textarea {
    resize: vertical;
}
/* ==========================================================================
     Author's custom styles
     ========================================================================== */
/*
*   Typography
*/
@font-face {
    font-family: 'Noto Sans';
    src: local('Noto Sans Regular'),
    url(/fonts/NotoSans-Regular.woff2),url(/fonts/NotoSans-Regular.woff);
    font-weight: normal;
    font-style: normal;
}

@font-face {
    font-family: 'Noto Sans';
    src: local('Noto Sans Bold'),
    url(/fonts/NotoSans-Bold.woff2),url(/fonts/NotoSans-Bold.woff);
    font-weight: bold;
    font-style: normal;
}

@font-face {
    font-family: 'Noto Sans';
    src: local('Noto Sans Italic'),
    url(/fonts/NotoSans-Italic.woff2),url(/fonts/NotoSans-Italic.woff);
    font-weight: normal;
    font-style: italic;
}

@font-face {
    font-family: 'Noto Sans';
    src: local('Noto Sans Bold Italic'),
    url(/fonts/NotoSans-BoldItalic.woff2),url(/fonts/NotoSans-BoldItalic.woff);
    font-weight: bold;
    font-style: italic;
}

@font-face {
    font-family: 'Noto Serif';
    src: local('Noto Serif Regular'),
    url(/fonts/NotoSerif-Regular.woff2),url(/fonts/NotoSerif-Regular.woff);
    font-weight: normal;
    font-style: normal;
}

@font-face {
    font-family: 'Noto Serif';
    src: local('Noto Serif Bold'),
    url(/fonts/NotoSerif-Bold.woff2),url(/fonts/NotoSerif-Bold.woff);
    font-weight: bold;
    font-style: normal;
}

@font-face {
    font-family: 'Noto Serif';
    src: local('Noto Serif Italic'),
    url(/fonts/NotoSerif-Italic.woff2),url(/fonts/NotoSerif-Italic.woff);
    font-weight: normal;
    font-style: italic;
}

@font-face {
    font-family: 'Noto Serif';
    src: local('Noto Serif Bold Italic'),
    url(/fonts/NotoSerif-BoldItalic.woff2),url(/fonts/NotoSerif-BoldItalic.woff);
    font-weight: bold;
    font-style: italic;
}

@font-face {
    font-family: 'Noto Mono';
    src: local('Noto Mono'),
    url(/fonts/NotoMono-Regular.woff2),url(/fonts/NotoMono-Regular.woff);
    font-weight: normal;
    font-style: normal;
}

/*
* HTML elements
*/
html {
    font-family: 'Noto Sans', Arial, Helvetica, sans-serif;
    overflow-y: scroll;
}

body {
    margin: 0 auto;
    max-width: 50em;
    padding: .5em;
}

h1 > a {
    color: #000;
    text-decoration: none;
}

h3 {
    border-bottom: .063em solid #c0c0c0;
}

a {
    text-decoration: none; /* Officially it is not WCAG conform! */
}

a:hover, a:focus {
    text-decoration: underline;
}

a.inactive {
    color: #dc143c;
}

a[href*="//"]::after {
    content: "\02197"; /* Upper right arrow for external links */
}

a:not([href]):hover, a:not([href]):focus {
    text-decoration: none;
}

a[download]::after {
    content: "\02935"; /* Curving downwards arrow for Download links*/
} 

blockquote {
    border-left: .188em solid #808080;
    font-family: 'Noto Serif', 'Times New Roman', Times, serif;
    font-style: italic;
    margin: .5em;
    padding-left: 1em;
}

q {
    font-style: italic;
}

pre,
code,
kbd,
samp {
    font-family: 'Noto Mono', 'Courier New', Courier, monospace;
    font-size: 1em;
}

dt {
    font-weight: bold;
}

ins {
    border-bottom: .063em solid #008000;
    text-decoration: none;
}

del {
    color: #808080;
}

table {
    border-collapse: collapse;
}

caption {
    caption-side: bottom;
    color: #808080;
    padding: .75em 0;
    text-align: left;
}

th {
    text-align: inherit;
}

img {
    margin: auto .5em;
}

footer {
    border-top: .125em solid #c0c0c0;
    line-height: 1.4;
    padding-top: 1em;
    clear: both;
}

/*
*   Localization
*/
#l10n {
    float: right;
    font-weight: bold;
    padding: 0;
}

#l10n li {
    display: inline;
}

#l10n li::before {
    content:'[';
}

#l10n li::after {
    content:']';
}

/*
*   Breadcrumb
*/
#breadcrumb {
    display: inline;
    float: left;
    max-width: 90%;
    padding: 0;
}

#breadcrumb li {
    display: inline;
}

#breadcrumb li:not(:last-child)::after {
    content:" > ";
}

#breadcrumb li:only-child {
    visibility: hidden;
}

#breadcrumb li:last-child a {
   color: #000;
   pointer-events: none;
   text-decoration: none;
}
/*
*    Blog
*/

#blog .blog-posts time:after {
    content: " - ";
}

#blog-post header > p {
    color: #808080;
    margin-top: -10px;
}

/*
*   Tags
*/
.tag-list {
    margin-top: -10px;
    padding: 0;
}

.tag-list li {
    display: inline;
}

.tag {    
    color: #ce5c00;
}

.tag:before{
    content: "@";    
}

/*
*   Forum
*/
#forum {
    margin-bottom: 1em;
}

#forum header {
    border-bottom: .126em solid #c0c0c0;
    border-top: .063em solid #c0c0c0;
    width: 100%;  
    display: table;
    white-space: nowrap;
    background-color: #c0c0c0;
    border-color: #808080;
    color: #000;
    padding: 0 .5em;
}

#forum header > h3 {
    margin: 0;
    font-size: 1em;
    border: none;
}

#forum header > h3,
#forum .topic {
    display: table-cell;
    margin: 0;
    width: 100%;
}

#forum header a {
    color: #000;
}

#forum .messages,
#forum .last-message,
#forum .poster {
    display: none;
}

#forum .messages, 
#forum .last-message,
#forum .poster {
    padding: 0 0.5em;
}

#forum .messages {
    display: table-cell;        
}

#forum .forumtopic {
    border-bottom: .063em solid #c0c0c0;
    padding: 0.5em;
    width: 100%;  
    display: table;
    white-space: nowrap;
}

#forum .forumtopic:nth-of-type(odd) {
    background-color: rgba(0, 0, 0, 0.05);
}

#forum .forumtopic:hover {
    background-color: rgba(0, 0, 0, 0.090);
}

/*
*   Comments for blog and forum
*/
#comments ol {
    list-style-type: none;
    padding: 0;
    margin: 0;
}

#comments ol li {
    margin-bottom: .5em;
}

#comments ol li:nth-of-type(odd) {
    background-color: #f6f6f6;
}

#comments .header {
    border-bottom: .126em solid #c0c0c0;
    border-top: .063em solid #c0c0c0;
    display: table;
    white-space: nowrap;
    background-color: #c0c0c0;
    border-color: #808080;
    color: #000;
    padding: 0 .5em;
}

#comments .header time:after {
    content: " | "
}

#comments .header a {
    display: table-cell;
    color: #000;
}

#comments .header a:first-child {
    font-weight: bold;
    width: 100%;
}

#comments .section {
    padding: 10px;
    color: #000;
}

#comments .footer {
    font-size: 0.813em;
    padding: 10px;
    color: #000;    
    margin: 0;
    border-top: .063em solid #c0c0c0;
    line-height: 1.4;
    padding-top: 1em;
}

/*
*   Post comment for blog and forum
*/
#post-comment form {
    margin: 8px auto;
    text-align: center;
    width: 75%;
}

#post-comment input[type=submit] {
    display: block;    
    margin: 8px auto;
    padding:4px 8px; 
}

#post-comment input[type=text] {
    display: block;
    height: 1.5em;
    width: 100%;
}

#post-comment label {
    float: left;
}

/*
*   Table of Contents
*/
#toc ol {
  list-style-type: none;
  counter-reset: item;
  margin: 0;
  padding: 0;
}

#toc > ol {
    margin: 1em 0 1em 2.5em;
}

#toc ol > li {
  display: table;
  counter-increment: item;
  margin-bottom: 0.6em;
}

#toc ol > li::before {
  content: counters(item, ".") ". ";
  display: table-cell;
  padding-right: 0.6em;    
}

#toc li ol > li {
  margin: 0.2em 0;
}

#toc li ol > li::before {
  content: counters(item, ".") " ";
}

/*
*   Footnotes
*/

#footnotes h3 {
    border-bottom: .063em dashed #c0c0c0;
}

/*
*   Pagination
*/
#pagination {
    font-size: 1.2em;
    font-weight: bold;
}

#pagination ul {
    text-align: center;
    margin: 0.5em 0;
    padding: 0;
    display: table;
    width: 100%;
}

#pagination li {
    display: inline;
}

#pagination a[accesskey="p"] {
    float: left;
}

#pagination a[accesskey="u"] {
    margin: 0 auto;
}

#pagination a[accesskey="n"] {
    float: right;
}
#pagination a.active {
   color: #000;   
   pointer-events: none;
   text-decoration: none;
}

/*
*   Gallery
*/

.gallery figure {
    border: 1px solid #ccc;
    margin: 6px 0;
}

.gallery figure:hover {
    border: 1px solid #777;
}

.gallery img {
    width: 100%;
    height: auto;
    margin: 0;
}

.gallery figcaption {
    padding: 15px;
    text-align: center;
}

.gallery {
    padding: 0 6px;
    float: left;
    width: 97.5%;
}

/*
*   Family Tree
*/
.position-fixed-x {
    position: relative; 
}

.position-fixed-y {
    position: relative;
}

#family-tree {
    width: 5300px; /* Must be calculated dynamically, or changed by manually */
    position: relative;   
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
}

#family-tree ul {
    padding-top: 20px; 
    position: relative;
    -webkit-transition: all 0.5s;
    -moz-transition: all 0.5s;
    transition: all 0.5s;
}

#family-tree li {
    float: left; 
    text-align: center;
    list-style-type: none;
    position: relative;
    padding: 20px 5px 0 5px;
    -webkit-transition: all 0.5s;
    -moz-transition: all 0.5s;
    transition: all 0.5s;
    margin-bottom: 0.5em;
}

/*We will use ::before and ::after to draw the connectors*/
#family-tree li::before,
#family-tree li::after{
    content: '';
    position: absolute; 
    top: 0; 
    right: 50%;
    border-top: 1px solid #c0c0c0;
    width: 50%; 
    min-height: 112px;
    z-index: -1;
}

#family-tree li::after{
    right: auto; 
    left: 50%;
    border-left: 1px solid #c0c0c0;
}

/*We need to remove left-right connectors from elements without any siblings*/
#family-tree li:only-child::after, 
#family-tree li:only-child::before {
    display: none;
}

/*Remove space from the top of single children*/
#family-tree li:only-child { 
    padding-top: 0;
}

/*Remove left connector from first child and right connector from last child*/
#family-tree li:first-child::before, 
#family-tree li:last-child::after {
    border: 0 none;
}

/*Adding back the vertical connector to the last nodes*/
#family-tree li:last-child::before {
    border-right: 1px solid #c0c0c0;
    border-radius: 0 5px 0 0;
    
    -webkit-transform: translateX(1px);
    -moz-transform: translateX(1px);
    transform: translateX(1px);
 
    -webkit-border-radius: 0 5px 0 0;
    -moz-border-radius: 0 5px 0 0;
    border-radius: 0 5px 0 0;
}

#family-tree li:first-child::after {
    border-radius: 5px 0 0 0;
    -webkit-border-radius: 5px 0 0 0;
    -moz-border-radius: 5px 0 0 0;
}

/* Time to add downward connectors from parents */
#family-tree ul ul::before {
    content: '';
    position: absolute; 
    top: -60px; 
    left: 50%;
    border-left: 1px solid #c0c0c0;
    width: 0; 
    height: 80px;
    z-index: -1;
}

#family-tree li a {
    border: 1px solid #c0c0c0;
    padding: 5px 10px;
    text-decoration: none;
    color: #666;
    display: inline-block;
    background: white;
    min-height: 92px;

    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    border-radius: 5px;

    -webkit-transition: all 0.5s;
    -moz-transition: all 0.5s;
    transition: all 0.5s;
}

#family-tree li a+a {
    margin-left: 20px;
    position: relative;
}

#family-tree li a+a::before {
    content: '';
    position: absolute;
    border-top: 1px solid #c0c0c0;
    top: 50%; left: -21px; 
    width: 20px;
}

#family-tree li a img {
    width: 64px;
}

#family-tree li .male {
    background: #87cefa;
}

#family-tree li .female {
    background: #ffb6c1; 
}

#family-tree li a.inactive {
    color: #dc143c;
}

/*Time for some hover effects*/
/*We will apply the hover effect the the lineage of the element also*/
#family-tree li a:hover, 
#family-tree li a:hover~ul li a {
    background: #fff5ee;
    color: #000; 
    border: 1px solid #808080;
}

/*Connector styles on hover*/
#family-tree li a:hover~ul li:after, 
#family-tree li a:hover~ul li:before, 
#family-tree li a:hover~ul:before, 
#family-tree li a:hover~ul ul:before
{
    border-color: #808080;
}

/*
*   Text
*/
.text-capitalize {
    text-transform: capitalize !important;
}

.text-center {
    text-align: center !important;
}

.text-justify {
    text-align: justify !important;
}

.text-left {
    text-align: left !important;
}

.text-lowercase {
    text-transform: lowercase !important;
}

.text-monospace {
    font-family: 'Noto Mono', 'Courier New', Courier, monospace;
}

.text-right {
    text-align: right !important;
}

.text-truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.text-uppercase {
    text-transform: uppercase !important;
}

/*
*   Floats
*/
.float-center {
    margin: 0 auto !important;
}

.float-left {
    float: left !important;
}

.float-right {
    float: right !important;
}

/*
*    Code
*/
.code { 
    background: #fff; 
    border: solid #808080;
    border-width: .1em .1em .1em .8em;
    margin: 0.5em;     
    overflow:auto;
    padding:.2em .6em;
}

/*
*   Border
*/
.border {
    border: 1px solid #c0c0c0 !important;
}

.rounded {
    border-radius: 0.25rem !important;
}

.rounded-circle {
    border-radius: 50% !important;
}

/*
*   Widths
*/
.w-10 {
    width: 10% !important;
}

.w-25 {
    width: 25% !important;
}

.w-33 {
    width: 33% !important;
}

.w-50 {
    width: 50% !important;
}

.w-66 {
    width: 66% !important;
}

.w-75 {
    width: 75% !important;
}

.w-90 {
    width: 90% !important;
}

.w-100 {
    width: 100% !important;
}

.w-100px {
   width: 100px !important;
}

.w-200px {
   width: 200px !important;
}

.w-300px {
   width: 300px !important;
}

.w-400px {
   width: 400px !important;
}

.w-500px {
   width: 500px !important;
}

.w-600px {
   width: 600px !important;
}

.w-700px {
   width: 700px !important;
}

.w-800px {
   width: 800px !important;
}
/*
*   Heights
*/
.h-10 {
    height: 10% !important;
}

.h-25 {
    height: 25% !important;
}

.h-33 {
    height: 33% !important;
}

.h-50 {
    height: 50% !important;
}

.h-66 {
    height: 66% !important;
}

.h-75 {
    height: 75% !important;
}

.h-90 {
    height: 90% !important;
}

.h-100 {
    height: 100% !important;
}

.h-100px {
    height: 100px !important;
}

.h-200px {
    height: 200px !important;
}

.h-300px {
    height: 300px !important;
}

.h-400px {
    height: 400px !important;
}

.h-500px {
    height: 500px !important;
}

.h-600px {
    height: 600px !important;
}

.h-700px {
    height: 700px !important;
}

.h-800px {
    height: 800px !important;
}
/*
*   Display
*/
.d-block {
  display: block !important;
}

.d-flex {
  display: -ms-flexbox !important;
  display: flex !important;
}

.d-inline {
  display: inline !important;
}

.d-inline-block {
  display: inline-block !important;
}

.d-inline-flex {
  display: -ms-inline-flexbox !important;
  display: inline-flex !important;
}
.d-none {
  display: none !important;
}

.d-table {
  display: table !important;
}

.d-table-cell {
  display: table-cell !important;
}

.d-table-row {
  display: table-row !important;
}

/*
*   Tables 
*/
.table {
    background-color: transparent;
    margin-bottom: 1rem;
}

.table th,
.table td {
    border-top: 1px solid #c0c0c0;
    padding: 0.75rem;
    vertical-align: top;
}

.table thead th {
    border-bottom: 2px solid #c0c0c0;
    vertical-align: bottom;
}

.table tbody + tbody {
    border-top: 2px solid #c0c0c0;
}

.table .table {
    background-color: #fff;
}

.table-bordered {
    border: 1px solid #c0c0c0;
}

.table-bordered th,
.table-bordered td {
    border: 1px solid #c0c0c0;
}

.table-bordered thead th,
.table-bordered thead td {
    border-bottom-width: 2px;
}

.table-striped tbody tr:nth-of-type(odd) {
    background-color: rgba(0, 0, 0, 0.05);
}

.table-hover tbody tr:hover {
    background-color: rgba(0, 0, 0, 0.090);
}

.table .thead-dark th {
    background-color: #000;
    border-color: #808080;
    color: #fff;
}

.table .thead-light th {
    background-color: #c0c0c0;
    border-color: #808080;
    color: #000;
}

/* ==========================================================================
     Helper classes
     ========================================================================== */

/*
 * Hide visually and from screen readers
 */

.hidden {
    display: none !important;
}

/*
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *      causes content to wrap 1 word per line:
 *      https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 */

.visuallyhidden {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap; /* 1 */
}

/*
 * Extends the .visuallyhidden class to allow the element
 * to be focusable when navigated to via the keyboard:
 * https://www.drupal.org/node/897638
 */

.visuallyhidden.focusable:active,
.visuallyhidden.focusable:focus {
    clip: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    position: static;
    width: auto;
    white-space: inherit;
}

/*
 * Hide visually and from screen readers, but maintain layout

 */

.invisible {
    visibility: hidden;
}

/*
 * Clearfix: contain floats
 *
 * For modern browsers
 * 1. The space content is one way to avoid an Opera bug when the
 *      `contenteditable` attribute is included anywhere else in the document.
 *      Otherwise it causes space to appear at the top and bottom of elements
 *      that receive the `clearfix` class.
 * 2. The use of `table` rather than `block` is only necessary if using
 *      `:before` to contain the top-margins of child elements.
 */

.clearfix:before,
.clearfix:after {
    content: " "; /* 1 */
    display: table; /* 2 */
}

.clearfix:after {
    clear: both;
}

/* ==========================================================================
     Media Queries for Responsive Design.
     These examples override the primary ('mobile first') styles.
     Modify as content requires.
     ========================================================================== */

/* Extra small devices (portrait phones, less than 576px)
No media query for these since this is the default */

/* Small devices (landscape phones, 576px and up) */
@media (min-width: 576px) { 
    .gallery {
        width: 47.8%;
    }

    #forum .last-message {
        display: table-cell;
    }
}

/* Medium devices (tablets, 768px and up) */
@media (min-width: 768px) {
    .gallery {
       width: 23.4%;
    }
    
    #forum .poster {
        display: table-cell;
    }
}

/* Large devices (desktops, 992px and up) */
@media (min-width: 992px) {
    
}

/* Extra large devices (large desktops, 1200px and up) */
@media (min-width: 1200px) {
    
}

/* Extra small devices (portrait phones, less than 576px) */
@media (max-width: 575.98px) {
    
}

/* Small devices (landscape phones, less than 768px) */
@media (max-width: 767.98px) {
    
}

/* Medium devices (tablets, less than 992px) */
@media (max-width: 991.98px) {
    
}

/* Large devices (desktops, less than 1200px) */
@media (max-width: 1199.98px) {
    
}

/* Extra large devices (large desktops)
No media query since the extra-large breakpoint has no upper bound on its width */

@media print,
         (-webkit-min-device-pixel-ratio: 1.25),
         (min-resolution: 1.25dppx),
         (min-resolution: 120dpi) {
    /* Style adjustments for high resolution devices */
}

/* ==========================================================================
     Print styles.
     Inlined to avoid the additional HTTP request:
     https://www.phpied.com/delay-loading-your-print-css/
     ========================================================================== */

@media print {
    *,
    *:before,
    *:after {
        background: transparent !important;
        color: #000 !important; /* Black prints faster */
        -webkit-box-shadow: none !important;
        box-shadow: none !important;
        text-shadow: none !important;
    }

    a,
    a:visited {
        text-decoration: underline;
    }

    a[href]:after {
        content: " (" attr(href) ")";
    }

    abbr[title]:after {
        content: " (" attr(title) ")";
    }

    /*
     * Don't show links that are fragment identifiers,
     * or use the `javascript:` pseudo protocol
     */

    a[href^="#"]:after,
    a[href^="javascript:"]:after {
        content: "";
    }

    pre {
        white-space: pre-wrap !important;
    }
    pre,
    blockquote {
        border: 1px solid #999;
        page-break-inside: avoid;
    }

    /*
     * Printing Tables:
     * http://css-discuss.incutio.com/wiki/Printing_Tables
     */

    thead {
        display: table-header-group;
    }

    tr,
    img {
        page-break-inside: avoid;
    }

    p,
    h2,
    h3 {
        orphans: 3;
        widows: 3;
    }

    h2,
    h3 {
        page-break-after: avoid;
    }
}
