/* ==========================================================================
   Svenofuchs.org - Main Stylesheet
   ========================================================================== */

/* ==========================================================================
   CSS Variables
   ========================================================================== */
:root {
    --color-primary: #EF3340;
    --color-black: #000;
    --color-white: #fff;
    --color-selection: #FF0000;
    --space: clamp(1rem, 1vh, 1.5rem);
}

@media (min-width: 768px) {
    :root {
        --space: clamp(0.75rem, 1vw, 1.25rem);
    }
}


/* ==========================================================================
   Font Declarations
   ========================================================================== */
@font-face {
    font-family: 'svenofuchs grotesk';
    src: url('../font/svenofuchscd-regular.woff2') format('woff2');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'typewalk 1955 beta';
    src: url('../font/Typewalk1955-Medium.woff2') format('woff2');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}


/* ==========================================================================
   Base Styles & Reset
   ========================================================================== */
html,
button,
input,
select,
textarea {
    color: var(--color-black);
}

html {
    font-size: 1em;
    line-height: 1.4;
    height: 100%;
}

body {
    margin: 0;
    padding: 0;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    font-family: 'typewalk 1955 beta', sans-serif;
}

/* Selection Colors */
::selection {
    background: var(--color-selection);
    color: var(--color-white);
    text-shadow: none;
}

::-moz-selection {
    background: var(--color-selection);
    color: var(--color-white);
    text-shadow: none;
}


/* ==========================================================================
   Base Elements
   ========================================================================== */
hr {
    display: block;
    height: 1px;
    border: 0;
    border-top: 1px solid #ccc;
    margin: 1em 0;
    padding: 0;
}

audio,
canvas,
img,
video {
    vertical-align: middle;
}

fieldset {
    border: 0;
    margin: 0;
    padding: 0;
}

textarea {
    resize: vertical;
}

h2 {
    margin-bottom: 0;
}

a {
    color: var(--color-primary);
    text-decoration: none;
}

a:active {
    color: var(--color-black);
}


/* ==========================================================================
   Layout - Header
   ========================================================================== */
#head {
    position: fixed;
    top: 0;
    left: 2rem;
    padding-top: 0.5rem;
    background: var(--color-white);
    width: 86vw;
    z-index: 100;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
}

#logo {
    float: left;
    font-family: 'svenofuchs grotesk', sans-serif;
    text-decoration: none;
    color: var(--color-black);
}

#navi {
    float: right;
}


/* ==========================================================================
   Layout - Main Content
   ========================================================================== */
#main {
    flex: 1;
    margin-left: 1rem;
    margin-top: 10rem;
    margin-bottom: 5rem;
    width: 86vw;
    font-family: 'typewalk 1955 beta', sans-serif;
    line-height: 1.5rem;
}

.blog-teaser {
    margin-top: 4rem;
}
2
.blog-meta {
    font-size: 0.8rem;
}


/* ==========================================================================
   Layout - Footer & Disclaimer
   ========================================================================== */
.site-footer {
    font-family: 'typewalk 1955 beta', sans-serif;
    font-size: 0.8rem;
    width: 86vw;
    margin-left: 2rem;
    padding-bottom: 1rem;
}

#disc {
    font-family: 'typewalk 1955 beta', sans-serif;
    margin-left: 2rem; 
    font-size: 1rem;
    line-height: 1.4rem;
    width: 85vw;
    letter-spacing: 0.05rem;
     margin-top: 60vh;
}


/* ==========================================================================
   Utility Classes
   ========================================================================== */
.spacer {
    height: var(--space);
}

.idfont {
    font-family: 'svenofuchs grotesk', sans-serif;
    font-size: 36px;
}

.boxborder {
    border: 6px solid var(--color-black);
}

.hidden {
    display: none !important;
    visibility: hidden;
}

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

.visuallyhidden.focusable:active,
.visuallyhidden.focusable:focus {
    clip: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    position: static;
    width: auto;
}

.invisible {
    visibility: hidden;
}

.clearfix::before,
.clearfix::after {
    content: " ";
    display: table;
}

.clearfix::after {
    clear: both;
}


/* ==========================================================================
   Special Elements (currently hidden)
   ========================================================================== */
#box1,
#box2 {
    display: none;
    position: fixed;
}

#sveno,
#fuchs {
    position: relative;
}


/* ==========================================================================
   Media Queries - Tablet & Desktop
   ========================================================================== */
@media (min-width: 768px) {
    
    /* Header */
    #head {
        width: 60vw;
        max-width: 1200px;
        margin: 0 auto;
        left: 50%;
        transform: translateX(-50%);
    }
    
    /* Main Content */
    #main {
        width: 60vw;
        max-width: 800px;
        font-size: 1.6rem;
        line-height: 2.2rem;
        margin: 0 auto;
    }
    
    h2 {
        line-height: 2.8rem;
    }
    
    /* Footer */
    .site-footer {
        width: 60vw;
        max-width: 1200px;
        margin: 0 auto;
    }
    
    /* Disclaimer */
    #disc {
        position: fixed;
        bottom: 4vh;
        width: 60vw;
        max-width: 1200px;
        font-size: 1.7vw;
        line-height: 1.85vw;
        left: 50%;
        transform: translateX(-50%);
    }
}


/* ==========================================================================
   Print Styles
   ========================================================================== */
@media print {
    * {
        background: transparent !important;
        color: var(--color-black) !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) ")";
    }
    
    .ir a::after,
    a[href^="javascript:"]::after,
    a[href^="#"]::after {
        content: "";
    }
    
    pre,
    blockquote {
        border: 1px solid #999;
        page-break-inside: avoid;
    }
    
    thead {
        display: table-header-group;
    }
    
    tr,
    img {
        page-break-inside: avoid;
    }
    
    img {
        max-width: 100% !important;
    }
    
    @page {
        margin: 0.5cm;
    }
    
    p,
    h2,
    h3 {
        orphans: 3;
        widows: 3;
    }
    
    h2,
    h3 {
        page-break-after: avoid;
    }
}