/* Design Manifesto: the one stylesheet. Based on Rapid Bootstrap V5 (MIT, Niklaus Gerber). Self-hosted Source Sans Pro (SIL Open Font License). */

/*!
 * Rapid Bootstrap V5
 * https://github.com/niklausgerber/rapid-bootstrap-v5
 *
 * Copyright (c) 2016 Niklaus Gerber, niklausgerber.com
 * Licensed under the MIT license
*/

@media screen {
    @font-face {
        font-family: 'Source Sans Pro';
        font-style: normal;
        font-weight: 400;
        src: local('Source Sans Pro Regular'), local('SourceSansPro-Regular'), url(/assets/fonts/source-sans-pro-regular.woff2) format('woff2');
        font-display: swap;
        unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215;
    }

    @font-face {
        font-family: 'Source Sans Pro';
        font-style: normal;
        font-weight: 600;
        src: local('Source Sans Pro SemiBold'), local('SourceSansPro-SemiBold'), url(/assets/fonts/source-sans-pro-semi-bold.woff2) format('woff2');
        font-display: swap;
        unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215;
    }

    /* Polish and other Central European letters (latin-ext), self-hosted */
    @font-face {
        font-family: 'Source Sans Pro';
        font-style: normal;
        font-weight: 400;
        font-display: swap;
        src: url(/assets/fonts/source-sans-pro-latin-ext-400.woff2) format('woff2');
        unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
    }

    @font-face {
        font-family: 'Source Sans Pro';
        font-style: normal;
        font-weight: 600;
        font-display: swap;
        src: url(/assets/fonts/source-sans-pro-latin-ext-600.woff2) format('woff2');
        unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
    }

    /* Setup */
    html {
        font-family: 'Source Sans Pro', sans-serif;
    }

    body {
        background: white;
        color: #252527;
        font-weight: 400;
        text-rendering: optimizelegibility;
        margin: 0;
    }

    /* Copy & Lists */
    p {
        line-height: 1.5rem;
        margin: 0 0 1.5rem 0;
    }

    ul,
    ol {
        margin: 1.5rem 0 1.5rem 0;
    }

    ul li,
    ol li {
        line-height: 1.5rem;
    }

    ul ul,
    ol ul,
    ul ol,
    ol ol {
        margin-top: 0;
        margin-bottom: 0;
    }

    blockquote {
        line-height: 1.5rem;
        margin: 1.5rem 0 1.5rem 0;
    }

    /* Headings */
    h1,
    h2,
    h3,
    h4,
    h5,
    h6 {
        color: #140f33;
        line-height: 1.5rem;
        margin-bottom: 0.833rem;
        word-wrap: break-word;
    }

    h1 {
        font-weight: 600;
        font-size: 1.728rem;
        line-height: 2.074rem;
        margin-top: 1.44rem;
    }

    h2 {
        font-weight: 400;
        font-size: 1.44rem;
        margin-top: 1.2rem;
    }

    h3 {
        font-weight: 400;
        font-size: 1.2rem;
        margin-top: 1rem;
        margin-bottom: 0;
    }

    h4 {
        font-weight: 800;
        font-size: 1rem;
        margin-top: 1rem;
        margin-bottom: 0;
    }

    /* Hyperlinks */
    a {
        color: #276ee3;
        text-decoration: none;
    }

    a:link {
        color: #276ee3;
    }

    a:hover {
        color: #140f33;
        border-bottom: none;
    }

    a:active {
        color: #140f33;
        border-bottom: none;
    }

    a:visited {
        color: #276ee3;
        border-bottom: none;
    }

    /* Tables */
    table {
        margin-top: 1.5rem;
        border-spacing: 0px;
        border-collapse: collapse;
    }

    table td,
    table th {
        padding: 0;
        line-height: 33px;
    }

    /* Responsive Images */
    img,
    video,
    canvas,
    object,
    embed {
        max-width: 100%;
        _width: 100%;
    }

    img {
        vertical-align: middle;
        border: 0;
        -ms-interpolation-mode: bicubic;
        /* Improve IE's resizing of images */
        display: block;
        margin: 1.5rem auto 1.5rem auto;
    }

    /* FitMyVideo | https://github.com/niklausgerber/FitMyVideo */
    .Flexible-container {
        position: relative;
        padding-bottom: 56.25%;
        padding-top: 30px;
        height: 0;
        overflow: hidden;
        margin: 1.5rem auto 1.5rem auto;
    }

    .Flexible-container iframe,
    .Flexible-container object,
    .Flexible-container embed {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
    }

    /* Code blocks */
    code {
        vertical-align: bottom;
    }

    /* Leading paragraph text */
    .lead {
        font-size: 1.414rem;
    }

    /* Hug the block above you */
    .hug {
        margin-top: 0;
    }

    /* UI */
    header {
        min-height: 50vh;
        background-color: #F7FBFB;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    header section {
        text-align: center;
    }

    nav ul {
        margin: 0;
    }

    nav ul li {
        display: inline;
    }

    nav li {
        padding-right: 2rem;
        text-transform: uppercase;
    }

    nav li:last-child {
        padding-right: 0;
    }

    nav select {
        -webkit-appearance: none;
        -moz-appearance: none;
        appearance: none;
        color: #276ee3;
        background-color: transparent;
        font-size: 1rem;
        border: none;
        background-color: none;
        font-family: "source-sans-pro", sans-serif;
        font-size: 0.875rem;
        text-transform: uppercase;
        cursor: pointer;
    }

    hr {
        display: block;
        height: 1px;
        border: 0;
        border-top: 1px solid #EAF6F6;
        margin: 2rem 0;
        padding: 0;
    }

    footer {
        min-height: 30vh;
        background-color: #F7FBFB;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    /*Safari & Chrome*/
    ::-webkit-input-placeholder {
        color: #A7AEB2;
    }

    /*Firefox*/
    ::-moz-placeholder {
        color: #A7AEB2;
    }

    :-moz-placeholder {
        color: #A7AEB2;
    }

    /*IE*/
    :-ms-input-placeholder {
        color: #A7AEB2;
    }

    input[type="text"],
    input[type="email"] {
        font-family: "source-sans-pro", sans-serif;
        overflow: hidden;
        background: none;
        border: none;
        border-bottom: solid 1px #D3EBEB;
        color: #252527;
        padding-bottom: 0.5rem;
        margin-bottom: 1rem;
        font-size: 1rem;
        font-weight: 400;
        appearance: none;
        box-shadow: none;
        -moz-border-radius: 0;
        -webkit-border-radius: 0;
        border-radius: 0;
        -khtml-border-radius: 0;
        -webkit-appearance: none;
        transition: 0.5s ease-in-out;
        -moz-transition: 0.5s ease-in-out;
        -webkit-transition: 0.5s ease-in-out;
    }

    input[type="text"]:focus,
    input[type="email"]:focus {
        outline: none;
        border-bottom: solid 1px #276ee3;
        transition: 0.5s ease-in-out;
        -moz-transition: 0.5s ease-in-out;
        -webkit-transition: 0.5s ease-in-out;
    }

    input[type="submit"] {
        font-family: "source-sans-pro", sans-serif;
        padding: 0.5rem;
        font-size: 1rem;
        -moz-border-radius: 3px;
        -webkit-border-radius: 3px;
        border-radius: 3px;
        -khtml-border-radius: 3px;
        border: solid 2px #276ee3;
        background-color: #276ee3;
        color: #F7FBFB;
        cursor: pointer;
        -webkit-appearance: none;
        transition: 0.25s ease-in-out;
        -moz-transition: 0.25s ease-in-out;
        -webkit-transition: 0.25s ease-in-out;
    }

    input[type="submit"]:hover {
        border: solid 2px #252527;
        background-color: #252527;
        color: #F7FBFB;
        transition: 0.25s ease-in-out;
        -moz-transition: 0.25s ease-in-out;
        -webkit-transition: 0.25s ease-in-out;
    }

    input[type="submit"]:disabled {
        border: solid 2px #A7AEB2;
        background-color: #A7AEB2;
        color: #F7FBFB;
        transition: 0.25s ease-in-out;
        -moz-transition: 0.25s ease-in-out;
        -webkit-transition: 0.25s ease-in-out;
    }

    footer select {
        width: 95%;
        padding-bottom: 0.5rem;
        margin-bottom: 1rem;
        font-size: 1rem;
        -webkit-appearance: none;
        -moz-appearance: none;
        appearance: none;
        -webkit-border-radius: 0px;
        -moz-border-radius: 0px;
        border-radius: 0px;
        color: #A7AEB2;
        border: none;
        border-bottom: solid 1px #D3EBEB;
        background-color: transparent;
        background-color: none;
        font-family: "source-sans-pro", sans-serif;
        cursor: pointer;
    }

    footer select:focus {
        border-bottom: solid 1px #276ee3;
        color: #252527;
        transition: 0.5s ease-in-out;
        -moz-transition: 0.5s ease-in-out;
        -webkit-transition: 0.5s ease-in-out;
    }

    /* Responsive Design */
    section {
        width: 95%;
        max-width: 735px;
        margin: 5rem auto 5rem auto;
    }

    .flex-grid {
        display: flex;
        justify-content: space-between;
    }

    #copyright {
        margin: 0;
        padding: 1rem 0 1rem 0;
        width: 100%;
        max-width: 100%;
        background-color: #F7FBFB;
    }

    #copyright p {
        font-size: 0.875rem;
        margin: auto;
        width: 95%;
        max-width: 735px;
    }

    @media (min-width: 320px) {
        html {
            font-size: 112.5%;
        }

        .flex-grid {
            display: block;
        }

        .flex-grid .left {
            width: 33%;
        }

        .flex-grid .right {
            width: 100%;
        }

        #logo {
            width: 33%;
            margin: auto;
        }

        input[type="submit"] {
            float: left;
            margin-top: 1rem;
        }

        input[type="text"],
        input[type="email"] {
            width: 95%;
        }

        footer select {
            width: 100%;
        }
    }

    @media (min-width: 600px) {
        html {
            font-size: 112.5%;
        }

        .flex-grid {
            display: flex;
        }

        .flex-grid .left {
            width: 20%;
        }

        .flex-grid .right {
            width: 75%;
        }

        #logo {
            width: 20%;
            margin: auto;
        }

        input[type="text"],
        input[type="email"] {
            width: 100%;
        }

        input[type="submit"] {
            float: right;
            margin-top: -2.5rem;
        }
    }

    @media (min-width: 768px) {
        html {
            font-size: 125%;
        }
    }

    @media (min-width: 1024px) {
        html {
            font-size: 125%;
        }
    }

    @media (min-width: 1360px) {
        html {
            font-size: 125%;
        }
    }
}

    

/* One h1 per page: headings that moved down a level keep the look of the level they had. */
.as-h1, .as-h2 { color: #140f33; margin: 0 0 0.833rem 0; word-wrap: break-word; text-transform: none; padding-right: 0; }
.as-h1 { font-weight: 600; font-size: 1.728rem; line-height: 2.074rem; margin-top: 1.44rem; }
.as-h2 { font-weight: 400; font-size: 1.44rem; line-height: 1.5rem; margin-top: 1.2rem; }

/* Header tools: a language menu (plain <details>, no script) and the PDF downloads, side by side as two pills. */
.tools { display: flex; flex-wrap: wrap; justify-content: center; align-items: flex-start; gap: 0.75rem; margin-top: 1.75rem; }
.lang-menu summary,
.downloads { display: inline-flex; align-items: center; gap: 0.5rem; min-height: 2.5rem; margin: 0; padding: 0 1rem; box-sizing: border-box;
    border: 1px solid #D3EBEB; border-radius: 999px; background: #fff; color: #140f33; font-size: 0.9rem; line-height: 1; }

.lang-menu details { position: relative; }
.lang-menu summary { cursor: pointer; list-style: none; user-select: none; }
.lang-menu summary::-webkit-details-marker { display: none; }
.lang-menu summary::before { content: ""; width: 1rem; height: 1rem; flex: none;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23276ee3' stroke-width='1.8'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Cpath d='M2.5 12h19M12 2.5c2.6 2.6 3.9 5.8 3.9 9.5s-1.3 6.9-3.9 9.5M12 2.5C9.4 5.1 8.1 8.3 8.1 12s1.3 6.9 3.9 9.5'/%3E%3C/svg%3E") center / contain no-repeat; }
.lang-menu summary::after { content: ""; width: 0.4rem; height: 0.4rem; margin: -0.2rem 0 0 0.1rem; flex: none;
    border-right: 1.5px solid #276ee3; border-bottom: 1.5px solid #276ee3; transform: rotate(45deg); transition: transform 0.15s; }
.lang-menu details[open] summary::after { transform: rotate(-135deg); margin-top: 0.25rem; }
.lang-menu summary:hover,
.lang-menu details[open] summary { border-color: #276ee3; }
.lang-menu summary:focus-visible { outline: 2px solid #276ee3; outline-offset: 3px; }

.lang-menu ul { position: absolute; z-index: 5; top: calc(100% + 0.5rem); left: 50%; transform: translateX(-50%);
    display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: repeat(5, auto); grid-auto-flow: column; gap: 0.15rem; width: 18rem; margin: 0; padding: 0.5rem; list-style: none;
    background: #fff; border: 1px solid #D3EBEB; border-radius: 0.75rem; box-shadow: 0 0.75rem 2rem rgba(20, 15, 51, 0.12); text-align: left; }
.lang-menu li { display: block; padding: 0; text-transform: none; line-height: 1.2; }
.lang-menu li a { display: block; padding: 0.55rem 0.75rem; border-radius: 0.45rem; font-size: 0.9rem; }
.lang-menu li a:hover { background: #F7FBFB; color: #140f33; }
.lang-menu li a[aria-current="page"] { color: #140f33; font-weight: 600; background: #F7FBFB; }

.downloads::before { content: ""; width: 1rem; height: 1rem; flex: none;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23276ee3' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v12M7 10l5 5 5-5M4 20h16'/%3E%3C/svg%3E") center / contain no-repeat; }
.downloads a { padding: 0.3rem 0.55rem; border-radius: 999px; font-weight: 600; }
.downloads a:hover { background: #F7FBFB; }

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

/* Keyboard focus and a skip link that only shows when focused. */
a:focus-visible { outline: 2px solid #276ee3; outline-offset: 3px; }
.skip { position: absolute; left: 1rem; top: -100px; padding: 0.5rem 1rem; background: #140f33; color: #fff; z-index: 10; }
.skip:focus { top: 1rem; }
