/* #region Font fundamentals */

:root {
    --geist: "Geist", system-ui, sans-serif;
    --figtree: "Figtree", system-ui, sans-serif;

    --bodytext-fontsize: 1rem;
    --bodytext-fontweight: 450;
    --bodytext-lineheight: 1.25rem;
    --bodytext-fontfamily: var(--geist);
    --bodytext-letterspacing: calc(var(--bodytext-fontsize) * -0.005);
    --bodytext-color: var(--plum);

    --smallcaps-fontsize: 0.9rem;
    --smallcaps-fontweight: 550;
    --smallcaps-lineheight: var(--bodytext-lineheight);
    --smallcaps-fontfamily: var(--bodytext-fontfamily);
    --smallcaps-letterspacing: calc(var(--smallcaps-fontsize) * 0.12);
    --smallcaps-color: var(--smoke);
    --smallcaps-texttransform: uppercase;

    --abstract-fontsize: 1.45rem;
    --abstract-fontweight: 400;
    --abstract-lineheight: 1.80rem;
    --abstract-fontfamily: var(--geist);
    --abstract-letterspacing: calc(var(--abstract-fontsize) * -0.005);
    --abstract-color: var(--plum);

    --h1-fontsize: 3.6rem;
    --h1-fontweight: 500;
    --h1-fontfamily: var(--figtree);
    --h1-lineheight: 4rem;
    --h1-letterspacing: calc(var(--h1-fontsize) * -0.018);

    --h2-fontsize: calc(var(--h1-fontsize) * 0.72);
    --h2-fontweight: var(--h1-fontweight);
    --h2-fontfamily: var(--h1-fontfamily);
    --h2-lineheight: calc(var(--h1-lineheight) * 0.72);
    --h2-letterspacing: calc(var(--h2-fontsize) * -0.0100);

    --h3-fontsize: calc(var(--h2-fontsize) * 0.66);
    --h3-fontweight: 575;
    --h3-fontfamily: var(--h2-fontfamily);
    --h3-lineheight: calc(var(--h2-lineheight) * 0.66);
    --h3-letterspacing: calc(var(--h3-fontsize) * 0.017);
}

html {
    font-family: var(--geist);
}

/* #endregion */

/* #region Article */

.article, .article > * {
    font-size: var(--bodytext-size);
    line-height: var(--bodytext-lineheight);
    font-weight: var(--bodytext-weight);
    letter-spacing: var(--bodytext-letterspacing);
}

.article--pad {
    padding: var(--gap-m);
}

.article--insetoneline {
    padding-top: var(--bodytext-lineheight);
    padding-bottom: var(--bodytext-lineheight);
}

.article--line-break-before {
    border-top: var(--border-width) var(--smoke) solid;
}

.article--narrow {
    max-width: 65ch;
    margin: 0 auto;
}

.article--aligncenter {
    text-align: center;
}

.article > * {
    margin: 0;
    padding: 0;
}

.article p:first-child {
    margin-top: calc(var(--bodytext-lineheight) * -0.15);
}

.article p:last-child {
    margin-bottom: calc(var(--bodytext-lineheight) * -0.20);
}

.article > * + * {
    margin-top: var(--bodytext-lineheight);
}

.article ul {
    padding-left: var(--bodytext-lineheight);
    list-style: none;
}

.article ul li {
    position: relative;
    padding-left: calc(var(--bodytext-lineheight) * 0.6);
}

.article ul li::before {
    content: "";
    position: absolute;
    left: -1.25rem;
    top: 0.8rem;
    width: 1.35rem;
    height: 0.45rem;
    background-color: var(--smoke);
    border-radius: 0.225rem;
}

.article ul li + li {
    margin-top: 0;
}

.article .text-link {
    color: var(--blue-lighten-1);
    text-decoration: underline;
    text-decoration-color: var(--blue-fade-60);
    text-decoration-thickness: 0.13rem;
    text-underline-offset: 0.28rem;
    transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

.article .text-link:hover,
.article .text-link:focus-visible {
    color: var(--blue-lighten-2);
    text-decoration-color: currentColor;
}

.chevron-text-link {
    display: inline-block;
}

.article--blue .chevron-text-link {
    color: var(--blue-lighten-2);
}

.section--background-stone .article--forest .chevron-text-link {
    color: var(--blue-on-stone);
}

.chevron-text-link:after {
    display: inline-block;
    content: " ";
    text-decoration: none;
    height: calc(var(--bodytext-size) * 0.8);
    width: calc(var(--bodytext-size) * 0.66);
    background-image: url(../images/icons/clay/chevron.svg);
    background-size: contain;
    background-position: center center;
    margin-left: calc(var(--bodytext-size) * 0.15);
    vertical-align: -0.065rem;
}

.object--background-stone .article--forest .chevron-text-link:after,
.section--background-stone .article--forest .chevron-text-link:after {
    background-image: url(../images/icons/clay-on-stone/chevron.svg);
}

.article hr {
    border: 0;
    height: var(--border-width);
    opacity: 0.3;
    background-color: var(--smoke);
    margin: calc(var(--bodytext-lineheight) * 2) 0;
}

.article .abstract {
    font-size: var(--abstract-fontsize);
    line-height: var(--abstract-lineheight);
    font-family: var(--abstract-fontfamily);
    font-weight: var(--abstract-fontweight);
    letter-spacing: var(--abstract-letterspacing);
}

.article .underline {
    text-decoration: underline;
    text-underline-offset: 0.16rem;
}

.article .abstract .highlight {
}

.article .abstract--xnarrow {
    max-width: 40ch;
}

.article--aligncenter .abstract--xnarrow {
    margin-left: auto;
    margin-right: auto;
}

.article .smallcaps {
    font-size: var(--smallcaps-fontsize);
    line-height: var(--smallcaps-lineheight);
    font-family: var(--smallcaps-fontfamily);
    font-weight: var(--smallcaps-fontweight);
    letter-spacing: var(--smallcaps-letterspacing);
    text-transform: var(--smallcaps-texttransform);
}

.article .h1 {
    font-size: var(--h1-fontsize);
    line-height: var(--h1-lineheight);
    font-family: var(--h1-fontfamily);
    font-weight: var(--h1-fontweight);
    letter-spacing: var(--h1-letterspacing);
}

.article .h1:first-child {
    margin-top: calc(var(--h1-lineheight) * -0.15)   
}

.article .h2 {
    font-size: var(--h2-fontsize);
    line-height: var(--h2-lineheight);
    font-family: var(--h2-fontfamily);
    font-weight: var(--h2-fontweight);
    letter-spacing: var(--h2-letterspacing);
    margin-left: -0.12rem;
    margin-right: -0.12rem;
}

.article .h2:first-child,
.object .h2:first-child {
    margin-top: calc(var(--h2-fontsize) * -0.17);
}

.hyphenate {
    word-break: normal;
    overflow-wrap: break-word;
    hyphens: auto;
    -webkit-hyphens: auto;
    -ms-hyphens: auto;
}

.overspill--right {
    margin-right: -1rem;
}

.article .h3 {
    font-size: var(--h3-fontsize);
    line-height: var(--h3-lineheight);
    font-family: var(--h3-fontfamily);
    font-weight: var(--h3-fontweight);
    letter-spacing: var(--h3-letterspacing);
    margin-left: -0.12rem;
    margin-right: -0.12rem;
}

.article .h3:first-child {
    margin-top: calc(var(--h3-fontsize) * -0.17);
}

.article strong,
.article .strong {
    font-weight: 600;
    letter-spacing: calc(var(--bodytext-letterspacing) * 2);
}

.keep-together {
    white-space: nowrap;
}

@media (max-width: 50rem) {
    .article .abstract {
        font-size: calc(var(--abstract-fontsize) * 0.8);
        line-height: calc(var(--abstract-lineheight) * 0.8);
    }

    .article .h1 {
        font-size: calc(var(--h1-fontsize) * 0.65);
        line-height: calc(var(--h1-lineheight) * 0.65);
    }

    .article .h2 {
        font-size: calc(var(--h2-fontsize) * 0.75);
        line-height: calc(var(--h2-lineheight) * 0.75);
    }
}

/* #endregion */
