/* Authored by iqbserve.de */
@import url("iqbserve-base.css");

* {
    box-sizing: border-box;
}

html {
    height: 100%;
    scroll-behavior: smooth;
}

body {
    height: 100vh;
    height: 100dvh;
    min-height: 0;
    margin: 0;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    overflow: hidden;

    background: transparent;
    color: var(--text-gray);
    line-height: 1.6;
}

a {
    color: var(--link-light-blue);
    text-underline-offset: 0.2em;
}

a:hover {
    color: var(--text-light-gray);
}

a:focus-visible {
    outline: 2px solid var(--ctrl-border-focus);
    outline-offset: 4px;
}

.skip-link {
    position: fixed;
    z-index: 2;
    top: 0.5rem;
    left: 0.5rem;
    padding: 0.5rem 0.75rem;
    transform: translateY(-160%);
    background: var(--header-bg);
    color: var(--text-light-gray);
}

.skip-link:focus {
    transform: translateY(0);
}

.site-header,
.site-footer {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    gap: 1rem;
    background: var(--header-bg);
    user-select: none;
}

.site-header {
    justify-content: left;
    min-height: 4.5rem;
    padding: 0.75rem clamp(1rem, 4vw, 3rem);
    border-bottom: 1px solid var(--border-gray);
}

.site-brand-container {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 15px;
    text-decoration: none;
    margin-right: 30px;
}

.site-brand-logo {
    width: 40px;
    height: 40px;
}

.site-brand {
    display: flex;
    flex-direction: column;
    color: var(--text-light-gray);
    line-height: 1.25;
    text-decoration: none;
}

.site-brand__title {
    font-size: 1.5rem;
    font-weight: 300;
}

.site-brand__subtitle {
    color: var(--text-gray);
    font-size: 0.85rem;
}

.site-nav {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.5rem 1.5rem;
}

.site-nav a {
    color: var(--text-light-gray);
    text-decoration: none;
}

/* touch devices keep :hover stuck on the last tapped link, so only apply it with a real hover pointer */
@media (hover: hover) {
    .site-nav a:hover {
        color: var(--link-light-blue);
        text-decoration: underline;
    }
}

.site-nav a[aria-current="page"] {
    color: var(--link-light-blue);
    text-decoration: underline;
    text-underline-offset: 0.4em;
}

.site-icons {
    display: flex;
    gap: 15px;
    margin-left: auto;
}

.site-icons a {
    display: flex;
    align-items: center;
    text-decoration: none;
}

.site-icons s-icon:hover {
    color: var(--link-light-blue);
}

.site-footer a {
    color: var(--text-gray);
    text-decoration: none;
}

.site-footer a:hover {
    color: var(--link-light-blue);
    text-decoration: underline;
}

.nav-menu {
    position: relative;
}

.nav-menu__toggle {
    padding: 0;
    border: 0;
    background: none;
    color: var(--text-light-gray);
    font: inherit;
    cursor: pointer;
}

.nav-menu__toggle[aria-expanded="true"],
.nav-menu:has([aria-current="page"])>.nav-menu__toggle {
    color: var(--link-light-blue);
}

.nav-menu__toggle:focus-visible,
.nav-menu__list a:focus-visible {
    outline: 2px solid var(--ctrl-border-focus);
    outline-offset: 4px;
}

.nav-menu__list {
    position: absolute;
    z-index: 3;
    top: calc(100% + 0.75rem);
    left: 0;
    min-width: 12rem;
    margin: 0;
    padding: 0.25rem 0;
    list-style: none;
    border: 1px solid var(--border-gray);
    background: var(--header-bg);
    box-shadow: 0 0.5rem 1rem rgb(0 0 0 / 50%);
}

.nav-menu__list[hidden] {
    display: none;
}

.site-nav .nav-menu__list a {
    display: block;
    padding: 0.6rem 1rem;
}

@media (hover: hover) {
    .nav-menu__toggle:hover {
        color: var(--link-light-blue);
    }

    .site-nav .nav-menu__list a:hover {
        background: var(--tbl-row-hover-bg);
        text-decoration: none;
    }
}

.workarea {
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-gutter: stable both-edges;
    overscroll-behavior: contain;
    padding: 0 0;
    scrollbar-color: var(--scrollbar-thumb-fg) var(--scrollbar-track-bg);
}

.braced-title {
    line-height: 1.6;
    background-image: linear-gradient(var(--title-brace-green), var(--title-brace-green)),
        linear-gradient(var(--title-brace-green), var(--title-brace-green)),
        linear-gradient(var(--title-brace-green), var(--title-brace-green)),
        linear-gradient(var(--title-brace-green), var(--title-brace-green));

    background-repeat: no-repeat;
    background-size: 13px 2px;
    background-position: top left, top right, bottom left, bottom right;

    border: solid var(--title-brace-green);
    text-align: center;
    border-width: 0 2px;
    display: inline-block;
    vertical-align: top;
    padding: 5px 15px;
}

.braced-title-center {
    text-align: center;
    margin: auto;
    width: 100%;
    user-select: none;
}

.start-lead {
    color: var(--text-light-gray);
    font-size: 1.4rem;
    margin: 0 0 10px 0;
    user-select: none;
}

.content-section h1.start-head-1 {
    font-weight: 300;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
}

.content-section h2.start-head-2 {
    color: var(--text-gray);
    font-size: 1.4rem;
    font-weight: 300;
    text-align: center;
    margin-top: 0px;
    margin-bottom: 20px;
}

.content-panel {
    width: min(72rem, calc(100% - 2rem));
    min-height: 100%;
    margin-inline: auto;
    padding: clamp(1.25rem, 4vw, 3rem);
    text-align: justify;
    max-width: 850px;
    word-wrap: normal;
    word-break: normal;
    hyphens: none;
}

.content-panel-accent {
    border: 1px solid rgb(255 255 255 / 12%);
    background: rgb(30 30 30 / 78%);
}

.content-section {
    padding-block: 0;
    scroll-margin-block: 1rem;
}

.content-section+.content-section {
    margin-top: 1.5rem;
    border-top: 1px solid var(--border-gray);
}

.content-section h1,
.content-section h2 {
    margin: 0 0 0.75rem;
    color: var(--text-light-gray);
    line-height: 1.2;
}

.content-section h1 {
    font-size: clamp(1.5rem, 2vw, 2rem);
}

.content-section h2 {
    font-size: clamp(1rem, 2vw, 1.4rem);
    color: var(--text-light-gray-dimmed);
}

.content-section p {
    word-wrap: normal;
    word-break: normal;
    hyphens: none;
}

.content-section ul {
    text-align: left;
}

.lead {
    color: var(--text-light-gray);
    font-size: 1.2rem;
}

.site-footer {
    justify-content: center;
    min-height: 3rem;
    flex-wrap: wrap;
    padding: 0.75rem clamp(1rem, 4vw, 3rem);
    border-top: 1px solid var(--border-gray);
    font-size: 0.875rem;
}

.cookie-notice {
    position: fixed;
    z-index: 2;
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    padding: 0.75rem clamp(1rem, 4vw, 3rem);
    border-top: 1px solid var(--border-gray);
    background: var(--statusline-bg);
    color: var(--text-light-gray);
    font-size: 0.875rem;
    user-select: none;
}

.cookie-notice[hidden] {
    display: none;
}

.cookie-notice p {
    margin: 0;
}

.cookie-notice button {
    flex: none;
    padding: 0.5rem 1rem;
    border: 1px solid var(--accent-blue);
    border-radius: 0.25rem;
    background: var(--ok-button-dark-green);
    color: var(--text-light-gray);
    font: inherit;
    cursor: pointer;
}

.cookie-notice button:hover {
    background: var(--ok-button-green);
}

.cookie-notice button:focus-visible {
    outline: 2px solid var(--text-light-gray);
    outline-offset: 2px;
}

@media (max-width: 48rem) {
    .cookie-notice {
        align-items: stretch;
        flex-direction: column;
        gap: 0.5rem;
    }

    .site-header {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.75rem;
        padding-block: 0.75rem;
    }

    .site-nav {
        justify-content: flex-start;
        gap: 0.5rem 1rem;
    }

    /* the list spans the full header width, anchored to the header */
    .nav-menu {
        position: static;
    }

    .nav-menu__list {
        top: 100%;
        right: 0;
        left: 0;
        border-width: 1px 0;
    }

    .site-nav .nav-menu__list a {
        padding: 0.9rem clamp(1rem, 4vw, 3rem);
    }

    .content-panel {
        width: calc(100% - 1rem);
        padding: 1rem;
    }

    .site-footer {
        flex-direction: column;
        gap: 0.25rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }
}

big-l {
    display: inline;
    font-size: 1.5em;
    font-weight: bold;
    color: var(--start-title-fg);
}

s-icon {
    display: inline-block;
    color: var(--text-gray);
    width: 20px;
    height: 20px;
}

s-icon[iconname="github"] {
    color: var(--text-gray);
}

s-icon[iconname="linkedin"] {
    color: var(--text-gray);
}

s-icon[iconname="xing"] {
    color: var(--text-gray);
}

s-icon[iconname="randstad"] {
    color: var(--text-gray);
    height: 30px;
    width: 27px;
    transform: translateY(5px);
}