@font-face {
    font-family: "Nunito Sans";
    src: url(../fonts/NunitoSans-Variable.woff2) format("woff2");
    font-weight: 200 1000;
    font-stretch: 75% 125%;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Nunito Sans";
    src: url(../fonts/NunitoSans-Italic-Variable.woff2) format("woff2");
    font-weight: 200 1000;
    font-stretch: 75% 125%;
    font-style: italic;
    font-display: swap;
}

/* RESET CSS */

/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)
*/

*, *::before, *::after { box-sizing: border-box; }

html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strong, sub, sup, var,
b, u, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, 
nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font: inherit;
	vertical-align: baseline;
}
body {
	line-height: 1.5;
}
ol, ul {
	list-style: none;
}
blockquote, q {
	quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
	content: '';
	content: none;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}
img, picture, svg, video { display: block; max-width: 100%; }
input, button, textarea, select { font: inherit; color: inherit; }
html { -webkit-text-size-adjust: none; text-size-adjust: none; }
h1, h2, h3, h4 { text-wrap: balance; }
p { text-wrap: pretty; }

[hidden] { display: none !important; }

/* /RESET CSS */

:root {
    
    font-family: "Nunito Sans", sans-serif;
    font-size: 150%;

    --spacing-xxs:0.375rem;
    --spacing-xs: 0.75rem;
    --spacing-s: 1rem;
    --spacing-m: 1.5rem;
    --spacing-l: 3rem;
    --spacing-xl: 4.5rem;

    /* Colors: */
    --bg-blue: #B8D0E5;
    --bg-brown: #C5BBB2;
    --bg-brown-darker: #AB8B85;
    --bg-green: #BDC7B5;
    --bg-light-grey: #ddd;
    --color-text: #25273E;
    --color-accent: #E7334C;

    --border-style-default: 2px black solid;

    --border-radius-default: 20px;

    color: var(--color-text);
}

.container {
    --container-pad: clamp(var(--spacing-s), 7vw, 100px);
    max-width: 1440px;
    margin: auto;
    padding: var(--spacing-xl) var(--container-pad);
    background-color: white;
}

.bg-blue {
    background-color: var(--bg-blue);
}

.bg-brown {
    background-color: var(--bg-brown);
}
.bg-brown-darker {
    background-color: var(--bg-brown-darker);
}
.bg-green {
    background-color: var(--bg-green);
}

body {
    background-color: var(--bg-light-grey);
}

/* In-Page-Links sanft scrollen */
@media (prefers-reduced-motion: no-preference) {
    html {
        scroll-behavior: smooth;
    }
}

a {
    color: var(--color-text);
    &:hover,
    &:focus-visible {
        color: var(--color-accent);
    }
    &.button {
        text-decoration: none;
        padding: var(--spacing-xs) var(--spacing-m) var(--spacing-xs) var(--spacing-m);
        border: var(--border-style-default);
        border-radius: var(--border-radius-default);
        display: inline-block;
    }
    &.button:hover,
    &.button:focus-visible {
        color: white;
        background-color: var(--color-accent);
        border-color: var(--color-accent);
    }
    &.download-link {
        /* arrow */
    }
}

p {
    margin-bottom: 0.5em;
    max-width: 735px;
}

h1, h2, h3, h4, h5, h6 {
    margin-bottom: 0.5em;
    line-height: 1.125em;
    font-weight: 500;
}

h1 {
    font-size: 2em;
}

h2 {
    font-size: 1.5em;
}

h3 {
    font-size: 1.25em;
}
h4 {
    font-size: 1.1em;
}

/* LAYOUT UTILITIES */

/*
   Breakpoints (media queries can't use custom properties):
   - tablet: max-width 1280px
   - mobile: max-width 900px
*/

/* Grid */
.grid {
    display: grid;
    grid-template-columns: repeat(var(--grid-cols, 1), minmax(0, 1fr));
    gap: var(--spacing-m);
}

.grid-cols-2 { --grid-cols: 2; }
.grid-cols-3 { --grid-cols: 3; }
.grid-cols-4 { --grid-cols: 4; }
.grid-cols-6 { --grid-cols: 6; }

.col-span-2 { grid-column: span 2; }
.col-span-full { grid-column: 1 / -1; }

/* Flex */
.flex {
    display: flex;
    gap: var(--spacing-m);
}

.flex-col { flex-direction: column; }
.flex-wrap { flex-wrap: wrap; }

.justify-start { justify-content: flex-start; }
.justify-center { justify-content: center; }
.justify-end { justify-content: flex-end; }
.justify-between { justify-content: space-between; }
.justify-around { justify-content: space-around; }
.justify-evenly { justify-content: space-evenly; }

.items-center { align-items: center; }

/* Gap (overrides the default gap of .grid / .flex) */
.gap-0 { gap: 0; }
.gap-xxs { gap: var(--spacing-xxs); }
.gap-xs { gap: var(--spacing-xs); }
.gap-s { gap: var(--spacing-s); }
.gap-m { gap: var(--spacing-m); }
.gap-l { gap: var(--spacing-l); }
.gap-xl { gap: var(--spacing-xl); }

/* Responsive: columns step down automatically */
@media (max-width: 1280px) {
    .grid-cols-3,
    .grid-cols-4 { --grid-cols: 2; }
    .grid-cols-6 { --grid-cols: 3; }
}

@media (max-width: 900px) {
    .grid-cols-2,
    .grid-cols-3,
    .grid-cols-4 { --grid-cols: 1; }
    .grid-cols-6 { --grid-cols: 2; }

    .col-span-2 { grid-column: auto; }

    /* Horizontal flex rows stack on mobile */
    .flex-stack-mobile { flex-direction: column; }
}

/* /LAYOUT UTILITIES */
