:root {
    --header_height: 100px;
    --footer_height: 50px;
    --theme_color: #151515;
    --background_color: #f8f4f0;
    --font_color: #101010;
}

* {
    margin: 0;
    padding: 0;
}

body {
    font-family: Tahoma, Helvetica, sans-serif;
	font-optical-sizing: auto;
	font-style: normal;
	font-weight: 300;
    background-color: var(--theme_color);
    background-image: linear-gradient(
      0deg,
      var(--theme_color) 0,
      var(--theme_color) calc(var(--footer_height) - 1px),
      var(--background_color) var(--footer_height),
      var(--background_color) calc(100% - var(--header_height)),
      var(--theme_color) calc(100% - (var(--header_height) - 1px))
    );
    color: #ffffff;
    min-height: calc(100vh - 20px);
    font-size: 18px;
}

h1 {
    display: none;
    font-size: 32px;
    text-align: center;
    margin-top: 30px;
    color: color-mix(in srgb, var(--theme_color) 75%, white);
}

h2 {
    font-size: 32px;
    margin-bottom: 10px;
}

p {
    line-height: 26px;
}

b {
    font-weight: 600;
}

a {
    color: color-mix(in srgb, var(--theme_color) 70%, white);
    text-decoration: none;
    font-weight: 600;
}

hr {
    margin-bottom: 30px;
}

ul {
    list-style-type: "⬥ ";
}

.logo {
    width: fit-content;
    position: absolute;
    top: calc(var(--header_height) * 0.5 - 32px);
    margin: 10px;
    left: calc((100vw - 1200px) * 0.5 - 16px);
    color: #ffffff;
    padding-right: 10px;
}

.logo_image {
	float: left;
	padding: 5px;
	margin-left: 5px;
}

.cta {
    width: fit-content;
    position: absolute;
    top: calc(var(--header_height) * 0.5 - 12px);
    right: calc((100vw - 1200px) * 0.5);
}

.cta_button {
    background-color: #ffffff;
    border-radius: 50px;
    color: var(--theme_color);
    padding: 5px;
    padding-left: 25px;
    padding-right: 25px;
    text-decoration: none;
    margin: 5px;
}

.header {
    height: calc(var(--header_height) - 20px);
    margin-bottom: 60px;
    display: flex;
    justify-content: center;
	justify-items: center;
}

.content {
    display: flex;
    justify-content: center;
	justify-items: center;
	min-height: calc(100vh - var(--header_height) - var(--footer_height) - 30px - 60px - 1px);
	margin-bottom: 60px;
	min-width: 1200px;
}

.content_grid {
    color: var(--font_color);
    display: grid;
    grid-template-columns: 1fr 2fr;
    grid-template-rows: 200px 1fr 1fr;
    gap: 20px;
	max-width: 1200px;
}

.factsheet {
    grid-area: 1 / 1 / 2 / 2;
}

.links {
    grid-area: 2 / 1 / 4 / 2;
}

.description {
    grid-area: 1 / 2 / 4 / 3;
}

.media {
    grid-area: 4 / 1 / 5 / 3;
}

.footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
	justify-items: center;
    text-align: center;
    color: color-mix(in srgb, var(--theme_color) 60%, white);
    margin-bottom: 15px;
    gap: 30px;
}

.title_image {
    height: 200px;
    max-width: 1200px;
    display: block;
    margin: auto;
}

.title_image_no_color {
    filter: brightness(0.1);
}

.media_grid {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}

.media_grid img {
    max-width: 580px;
    max-height: 330px;
    object-fit: contain;
    background: conic-gradient(#888888 25%, #444444 0% 50%, #888888 0% 75%, #444444 0%);
    background-size: 58px 58px;
    border-radius: 7px;
    border: 2px solid #101010;
}

.links a {
    line-height: 32px;
}

.theme_toggle {
    position: absolute;
    top: calc(var(--header_height) * 0.5);
    transform: translateY(-50%);
    left: calc(50vw + 300px);
}

.light {
    display: none;
}

.dark {
    display: block;
}

@media(max-width: 1279px) {
    :root {
        --header_height: 200px;
    }

    .header {
        margin-bottom: 20px;
    }

    .content {
        min-height: calc(100vh - var(--header_height) - var(--footer_height) - 40px);
        min-width: 720px;
    }

    .content_grid {
        display: block;
    }

    .content_box {
        width: 620px;
        margin-bottom: 20px;
    }

    .logo {
        margin: auto;
        position: absolute;
        top: 50px;
        left: 50%;
        transform: translateX(-50%);
    }

    .cta {
        width: fit-content;
        position: absolute;
        top: 120px;
        left: 50%;
        transform: translateX(-50%);
    }

    .title_image {
        height: 150px;
        max-width: 600px;
    }

    .media_grid img {
        max-width: 620px;
        max-height: 350px;
    }

    .theme_toggle {
        top: calc(var(--header_height) + 30px);
        left: initial;
        right: 20px;
        color: var(--font_color);
    }
}

@media (prefers-color-scheme: dark) {
    :root {
        --font_color: #e0e0e0;
        --background_color: #101010;
    }

    body {
        background-color: color-mix(in srgb, var(--theme_color) 50%, black);
        background-image: linear-gradient(
          0deg,
          color-mix(in srgb, var(--theme_color) 50%, black) 0,
          color-mix(in srgb, var(--theme_color) 50%, black) calc(var(--footer_height) - 1px),
          var(--background_color) var(--footer_height),
          var(--background_color) calc(100% - var(--header_height)),
          color-mix(in srgb, var(--theme_color) 50%, black) calc(100% - (var(--header_height) - 1px))
        );
    }

    .title_image_no_color {
        filter: brightness(0.95);
    }

    .light {
        display: block;
    }

    .dark {
        display: none;
    }
}

:root:has(#dark_mode:target) {
    --font_color: #e0e0e0;
    --background_color: #101010;
}

:root:has(#dark_mode:target) body {
    background-color: color-mix(in srgb, var(--theme_color) 50%, black);
    background-image: linear-gradient(
        0deg,
        color-mix(in srgb, var(--theme_color) 50%, black) 0,
        color-mix(in srgb, var(--theme_color) 50%, black) calc(var(--footer_height) - 1px),
        var(--background_color) var(--footer_height),
        var(--background_color) calc(100% - var(--header_height)),
        color-mix(in srgb, var(--theme_color) 50%, black) calc(100% - (var(--header_height) - 1px))
    );
}

:root:has(#dark_mode:target) .title_image_no_color {
    filter: brightness(0.95);
}

:root:has(#dark_mode:target) .light {
    display: block;
}

:root:has(#dark_mode:target) .dark {
    display: none;
}


:root:has(#light_mode:target) {
    --font_color: #101010;
    --background_color: #f8f4f0;
}

:root:has(#light_mode:target) body {
    background-color: var(--theme_color);
    background-image: linear-gradient(
        0deg,
        var(--theme_color) 0,
        var(--theme_color) calc(var(--footer_height) - 1px),
        var(--background_color) var(--footer_height),
        var(--background_color) calc(100% - var(--header_height)),
        var(--theme_color) calc(100% - (var(--header_height) - 1px))
    );
}

:root:has(#light_mode:target) .title_image_no_color {
    filter: brightness(0.1);
}

:root:has(#light_mode:target) .light {
    display: none;
}

:root:has(#light_mode:target) .dark {
    display: block;
}
