svg,
img {
    max-width: 100%;
    height: auto;
}

img:is([sizes="auto" i], [sizes^="auto," i]) {
    contain: size !important;
    contain-intrinsic-size: 300px 150px;
}

figure {
    margin: 1rem 0;
}

figure.aligncenter {
    display: flex;
    justify-content: center;
}

iframe {
    max-width: 100%;
}

a {
    color: var(--text);
    transition: color, box-shadow 0.3s;
}

a:hover {
    color: var(--brand);
}

h1 {
    font-size: 3rem;
    line-height: 3.2rem;
    margin: 2rem 0;
}

h2 {
    font-size: 2.5rem;
    line-height: 2.7rem;
    margin: 1.5rem 0;
}

h3 {
	font-weight: 400;
    font-size: 1.5rem;
    line-height: 1.7rem;
    margin: 1rem 0;
}

h4 {
    font-size: 1.2rem;
    line-height: 1.4rem;
    margin: 0.5rem 0;
}

header {
    position: relative;
    width: 100%;
    padding: 1rem 0;
    z-index: 99;
}

header.header-bg {
    color: var(--header-color);
    background-color: var(--header-bg);
    box-shadow: var(--box-shadow);
}

header.header-bg a {
    color: var(--header-color);
}

header.header-bg.header-pattern-triangles {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='326' height='271.7' viewBox='0 0 1080 900'%3E%3Cg fill-opacity='0.03'%3E%3Cpolygon fill='%23444' points='90 150 0 300 180 300'/%3E%3Cpolygon points='90 150 180 0 0 0'/%3E%3Cpolygon fill='%23AAA' points='270 150 360 0 180 0'/%3E%3Cpolygon fill='%23DDD' points='450 150 360 300 540 300'/%3E%3Cpolygon fill='%23999' points='450 150 540 0 360 0'/%3E%3Cpolygon points='630 150 540 300 720 300'/%3E%3Cpolygon fill='%23DDD' points='630 150 720 0 540 0'/%3E%3Cpolygon fill='%23444' points='810 150 720 300 900 300'/%3E%3Cpolygon fill='%23FFF' points='810 150 900 0 720 0'/%3E%3Cpolygon fill='%23DDD' points='990 150 900 300 1080 300'/%3E%3Cpolygon fill='%23444' points='990 150 1080 0 900 0'/%3E%3Cpolygon fill='%23DDD' points='90 450 0 600 180 600'/%3E%3Cpolygon points='90 450 180 300 0 300'/%3E%3Cpolygon fill='%23666' points='270 450 180 600 360 600'/%3E%3Cpolygon fill='%23AAA' points='270 450 360 300 180 300'/%3E%3Cpolygon fill='%23DDD' points='450 450 360 600 540 600'/%3E%3Cpolygon fill='%23999' points='450 450 540 300 360 300'/%3E%3Cpolygon fill='%23999' points='630 450 540 600 720 600'/%3E%3Cpolygon fill='%23FFF' points='630 450 720 300 540 300'/%3E%3Cpolygon points='810 450 720 600 900 600'/%3E%3Cpolygon fill='%23DDD' points='810 450 900 300 720 300'/%3E%3Cpolygon fill='%23AAA' points='990 450 900 600 1080 600'/%3E%3Cpolygon fill='%23444' points='990 450 1080 300 900 300'/%3E%3Cpolygon fill='%23222' points='90 750 0 900 180 900'/%3E%3Cpolygon points='270 750 180 900 360 900'/%3E%3Cpolygon fill='%23DDD' points='270 750 360 600 180 600'/%3E%3Cpolygon points='450 750 540 600 360 600'/%3E%3Cpolygon points='630 750 540 900 720 900'/%3E%3Cpolygon fill='%23444' points='630 750 720 600 540 600'/%3E%3Cpolygon fill='%23AAA' points='810 750 720 900 900 900'/%3E%3Cpolygon fill='%23666' points='810 750 900 600 720 600'/%3E%3Cpolygon fill='%23999' points='990 750 900 900 1080 900'/%3E%3Cpolygon fill='%23999' points='180 0 90 150 270 150'/%3E%3Cpolygon fill='%23444' points='360 0 270 150 450 150'/%3E%3Cpolygon fill='%23FFF' points='540 0 450 150 630 150'/%3E%3Cpolygon points='900 0 810 150 990 150'/%3E%3Cpolygon fill='%23222' points='0 300 -90 450 90 450'/%3E%3Cpolygon fill='%23FFF' points='0 300 90 150 -90 150'/%3E%3Cpolygon fill='%23FFF' points='180 300 90 450 270 450'/%3E%3Cpolygon fill='%23666' points='180 300 270 150 90 150'/%3E%3Cpolygon fill='%23222' points='360 300 270 450 450 450'/%3E%3Cpolygon fill='%23FFF' points='360 300 450 150 270 150'/%3E%3Cpolygon fill='%23444' points='540 300 450 450 630 450'/%3E%3Cpolygon fill='%23222' points='540 300 630 150 450 150'/%3E%3Cpolygon fill='%23AAA' points='720 300 630 450 810 450'/%3E%3Cpolygon fill='%23666' points='720 300 810 150 630 150'/%3E%3Cpolygon fill='%23FFF' points='900 300 810 450 990 450'/%3E%3Cpolygon fill='%23999' points='900 300 990 150 810 150'/%3E%3Cpolygon points='0 600 -90 750 90 750'/%3E%3Cpolygon fill='%23666' points='0 600 90 450 -90 450'/%3E%3Cpolygon fill='%23AAA' points='180 600 90 750 270 750'/%3E%3Cpolygon fill='%23444' points='180 600 270 450 90 450'/%3E%3Cpolygon fill='%23444' points='360 600 270 750 450 750'/%3E%3Cpolygon fill='%23999' points='360 600 450 450 270 450'/%3E%3Cpolygon fill='%23666' points='540 600 630 450 450 450'/%3E%3Cpolygon fill='%23222' points='720 600 630 750 810 750'/%3E%3Cpolygon fill='%23FFF' points='900 600 810 750 990 750'/%3E%3Cpolygon fill='%23222' points='900 600 990 450 810 450'/%3E%3Cpolygon fill='%23DDD' points='0 900 90 750 -90 750'/%3E%3Cpolygon fill='%23444' points='180 900 270 750 90 750'/%3E%3Cpolygon fill='%23FFF' points='360 900 450 750 270 750'/%3E%3Cpolygon fill='%23AAA' points='540 900 630 750 450 750'/%3E%3Cpolygon fill='%23FFF' points='720 900 810 750 630 750'/%3E%3Cpolygon fill='%23222' points='900 900 990 750 810 750'/%3E%3Cpolygon fill='%23222' points='1080 300 990 450 1170 450'/%3E%3Cpolygon fill='%23FFF' points='1080 300 1170 150 990 150'/%3E%3Cpolygon points='1080 600 990 750 1170 750'/%3E%3Cpolygon fill='%23666' points='1080 600 1170 450 990 450'/%3E%3Cpolygon fill='%23DDD' points='1080 900 1170 750 990 750'/%3E%3C/g%3E%3C/svg%3E");
}

header.header-bg.header-pattern-gradient {
  background: linear-gradient(to right, var(--header-bg), var(--brand-alt));
}

header.header-bg.header-pattern-dots {
    --dot-size: 2px;
    --dot-space: 1rem;
    background:
        linear-gradient(90deg, var(--header-bg) calc(var(--dot-space) - var(--dot-size)), transparent 1%) center / var(--dot-space) var(--dot-space),
        linear-gradient(var(--header-bg) calc(var(--dot-space) - var(--dot-size)), transparent 1%) center / var(--dot-space) var(--dot-space),
        var(--brand-alt);
}

header.header-bg.header-pattern-hexagons {
    background-image: url(../img/hexagons.png);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
}

header.header-bg-transparent {
    background-color: transparent;
    position: absolute;
    top: 0;
    left: 0;
}

main {
    padding-bottom: 2rem;
    width: 100%;
    color: var(--text);
}

footer {
    width: 100%;
    margin-top: auto;
    padding: 0;
    border-top: 1px var(--footer-bg) solid;
}

blockquote {
    border: 1px #ccc solid;
    border-radius: var(--border-radius);
    padding: 20px;
    background-image: url("data:image/svg+xml,%3Csvg width='24px' height='24px' viewBox='-6.5 0 65 65' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' xmlns:sketch='http://www.bohemiancoding.com/sketch/ns'%3E%3Cg id='Page-1' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd' sketch:type='MSPage'%3E%3Cg id='Feather' sketch:type='MSLayerGroup' transform='translate(1.000000, 2.000000)' stroke='%236B6C6E' stroke-width='2'%3E%3Cpath d='M7.3,51.7 C9.5,51.7 19,49.9 27.6,41.5 C28.4,40.7 23.7,39.7 24.4,38.8 C25.2,37.9 31.5,37.2 32.2,36.3 C35,32.8 37.5,29.3 39.6,25.9 C40.2,25 33.8,26.6 34.3,25.7 C34.8,24.8 42.2,21.5 42.6,20.7 C48.5,10 50.8,1.3 49.5,0.1 C48.5,-0.9 40.4,2.2 36.5,5.4 C35.7,6 30.5,15.6 29.5,16 C28.7,16.3 29.2,10.5 32.1,7.8 C28.3,9.6 23,12.5 19.4,15.8 C19.1,16.1 18.4,24.1 18.1,24.5 C17.4,25.2 17.2,18.1 16.6,18.9 C7.6,29.9 1.2,45.1 4.8,50.6 C5.1,50.5 5.7,51.7 7.3,51.7 L7.3,51.7 Z' id='Shape' sketch:type='MSShapeGroup'%3E%3C/path%3E%3Cpath d='M0,61.9 C1,60.9 15.8,30.9 40.4,11.9' id='Shape' sketch:type='MSShapeGroup'%3E%3C/path%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: 70px;
    background-position: bottom right;
}

blockquote cite {
    opacity: .5;
}

@media (max-width: 820px) {
    html {
        font-size: 0.95rem;
    }

    h1 {
        font-size: 2.5rem;
        line-height: 2.7rem;
        margin: 1.5rem 0;
    }

    h2 {
        font-size: 2rem;
        line-height: 2.2rem;
        margin: 1rem 0;
    }

    h3 {
        font-size: 1.2rem;
        line-height: 1.4rem;
        margin: 0.5rem 0;
    }

    h4 {
        font-size: 1rem;
        line-height: 1.2rem;
        margin: 0.3rem 0;
    }
}

@media (max-width: 420px) {

    h1 {
        font-size: 2rem;
        line-height: 2.4rem;
    }

    h2 {
        font-size: 1.6rem;
        line-height: 2rem;
    }

    h3 {
        font-size: 1.1rem;
        line-height: 1.3rem;
    }
}