@font-face {
    font-family: "Season VF-TRIAL";
    src: url("/assets/fonts/season/SeasonCollectionVF-TRIAL.ttf") format("truetype");
    font-display: swap;
}

/* #region Font fundamentals */

:root {
    --season: "Season VF-TRIAL", Georgia, "Times New Roman", serif;

    --bodytext-fontsize: 0.930rem;
    --bodytext-fontweight: 530;
    --bodytext-lineheight: calc(var(--bodytext-fontsize) * 1.5);
    --bodytext-fontfamily: var(--season);
    --bodytext-fontvariationsettings: "SERF" 0, "wght" var(--bodytext-fontweight);
    --bodytext-letterspacing: calc(var(--bodytext-fontsize) * 0.026);
    --bodytext-color: var(--ink);

    --bodytext-link-underline-offset: 0.22rem;

    --bodytext-hover-fontweight: 610;
    --bodytext-hover-letterspacing: calc(var(--bodytext-fontsize) * 0.021);

    --small-fontsize: max(calc(var(--bodytext-fontsize) / 1.29), 11px);
    --small-fontweight: 530;
    --small-lineheight: calc(var(--small-fontsize) * 1.5);
    --small-fontfamily: var(--season);
    --small-fontvariationsettings: "SERF" 0, "wght" var(--small-fontweight);
    --small-letterspacing: calc(var(--small-fontsize) * 0.035);

    --bodytextxl-fontsize: 1.0625rem;
    --bodytextxl-weight: 700;
    --bodytextxl-weight-light: 560;
    --bodytextxl-lineheight: calc(var(--bodytextxl-fontsize) * 1.1);
    --bodytextxl-letterspacing: calc(var(--bodytextxl-fontsize) * 0.04);

    --smallcaps-fontsize: calc(var(--bodytext-fontsize) * 0.9);
    --smallcaps-fontweight: 620;
    --smallcaps-lineheight: var(--bodytext-lineheight);
    --smallcaps-fontfamily: var(--bodytext-fontfamily);
    --smallcaps-letterspacing: calc(var(--smallcaps-fontsize) * 0.15);
    --smallcaps-color: var(--oak);
    --smallcaps-texttransform: uppercase;
    --smallcaps-fontvariationsettings: "SERF" 0, "wght" var(--smallcaps-fontweight);

    --abstract-fontsize: 1.45rem;
    --abstract-fontweight: 400;
    --abstract-lineheight: 2.00rem;
    --abstract-fontfamily: var(--season);
    --abstract-letterspacing: calc(var(--abstract-fontsize) * -0.005);
    --abstract-color: var(--ink);

    --h1-fontsize: clamp(2.5rem, 14.0vw, 3.9rem);
    --h1-fontweight: 517;
    --h1-fontfamily: var(--season);
    --h1-fontvariationsettings: "SERF" 100, "wght" var(--h1-fontweight);
    --h1-lineheight: calc(var(--h1-fontsize) * 1.1);
    --h1-letterspacing: calc(var(--h1-fontsize) * -0.005);

    --h2-fontsize: 2.05rem;
    --h2-fontweight: 520;
    --h2-fontfamily: var(--h1-fontfamily);
    --h2-fontvariationsettings: "SERF" 75, "wght" var(--h2-fontweight);
    --h2-lineheight: calc(var(--h2-fontsize) * 1.15);
    --h2-letterspacing: calc(var(--h2-fontsize) * 0.018);

    --h3-fontsize: 1.75rem;
    --h3-fontweight: 520;
    --h3-fontfamily: var(--h2-fontfamily);
    --h3-fontvariationsettings: "SERF" 70, "wght" var(--h3-fontweight);
    --h3-lineheight: calc(var(--h3-fontsize) * 1.3);
    --h3-letterspacing: calc(var(--h3-fontsize) * 0.020);
}

@media (max-width: 45rem) {
    :root {
        --h2-fontsize: clamp(1.35rem, 6.3vw, 1.8rem);
        --h3-fontsize: 1.5rem;
        --h3-lineheight: calc(var(--h3-fontsize) * 1.1);
    }
}

html {
    font-family: var(--bodytext-fontfamily);
}

body {
    color: var(--bodytext-color);
    font-size: var(--bodytext-fontsize);
    line-height: var(--bodytext-lineheight);
    font-weight: var(--bodytext-fontweight);
    font-variation-settings: var(--bodytext-fontvariationsettings);
    letter-spacing: var(--bodytext-letterspacing);
}

::selection {
    background-color: var(--portal-selection-background-color, var(--gold));
    color: var(--portal-selection-color, var(--portal-surface));
}

::-moz-selection {
    background-color: var(--portal-selection-background-color, var(--gold));
    color: var(--portal-selection-color, var(--portal-surface));
}

/* #endregion */

/* #region Article */

.article,
.article > * {
    font-size: var(--bodytext-fontsize);
    line-height: var(--bodytext-lineheight);
    font-family: var(--bodytext-fontfamily);
    font-weight: var(--bodytext-fontweight);
    font-variation-settings: var(--bodytext-fontvariationsettings);
    letter-spacing: var(--bodytext-letterspacing);
}

.article.article--small,
.article.article--small > * {
    font-size: var(--small-fontsize);
    line-height: var(--small-lineheight);
    font-family: var(--small-fontfamily);
    font-weight: var(--small-fontweight);
    font-variation-settings: var(--small-fontvariationsettings);
    letter-spacing: var(--small-letterspacing);
}

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

.article--topborder {
    margin-top: 3rem;
    padding-top: 3rem;
    border-top-width: var(--outline-width-thick);
    border-top-style: solid;
}

.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--xnarrow {
    max-width: 50ch;
    margin: 0 auto;
}

.article--narrowplus40 {
    max-width: calc(65ch * 1.4);
}

.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.article--compact > * + * {
    margin-top: 0.5rem;
}

.article--gap1rem  > * + * {
    margin-top: 1rem;
}

.article ol {
    padding-left: calc(var(--bodytext-lineheight) * 1.25);
}

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

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

.article ul li::before {
    content: "";
    position: absolute;
    left: -1.25rem;
    top: 0.50rem;
    width: 0.90rem;
    height: 0.30rem;
    background-color: var(--oak);
    border-radius: 0.225rem;
}

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

.article .text-link {
    color: var(--teal);
    text-decoration: underline;
    text-decoration-color: var(--teal-fade-50);
    text-decoration-thickness: 0.13rem;
    text-underline-offset: var(--bodytext-link-underline-offset);
    transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

.article p a {
    color: var(--teal);
    font-weight: var(--bodytext-link-fontweight);
    font-variation-settings: "SERF" 0, "wght" var(--bodytext-link-fontweight);
    text-decoration: underline;
    text-decoration-color: currentColor;
    text-decoration-thickness: 0.1rem;
    text-underline-offset: var(--bodytext-link-underline-offset);
}

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

.article .article__strong {
    font-weight: var(--bodytext-link-fontweight);
    font-variation-settings: "SERF" 0, "wght" var(--bodytext-link-fontweight);
}

.article p + .article__list--tight {
    margin-top: 0;
}

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

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

.chevron-text-link:after {
    display: inline-block;
    content: " ";
    text-decoration: none;
    height: calc(var(--bodytext-fontsize) * 0.8);
    width: calc(var(--bodytext-fontsize) * 0.66);
    background-image: url(../images/icons/clay/chevron.svg);
    background-size: contain;
    background-position: center center;
    margin-left: calc(var(--bodytext-fontsize) * 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(--oak);
    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--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);
    font-variation-settings: var(--h1-fontvariationsettings);
    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);
    font-variation-settings: var(--h2-fontvariationsettings);
    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);
}

.article :is(p, ul) + :is(.h2, .h3) {
    margin-top: calc(var(--bodytext-lineheight) * 2);
}

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

.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);
    font-variation-settings: var(--h3-fontvariationsettings);
    letter-spacing: var(--h3-letterspacing);
    --h3-optical-correction: calc(var(--h3-fontsize) * -0.01);
    margin-left: var(--h3-optical-correction);
    margin-right: var(--h3-optical-correction);
}

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

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

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

@media (max-width: 45rem) {
    .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);
    }
}

/* #endregion */

/* #region Portal shell type */

.portal-kicker {
    color: var(--oak);
    font-size: var(--smallcaps-fontsize);
    font-weight: var(--smallcaps-fontweight);
    letter-spacing: var(--smallcaps-letterspacing);
    line-height: var(--smallcaps-lineheight);
    margin: 0;
    text-transform: var(--smallcaps-texttransform);
}

.portal-heading {
    font-family: var(--h1-fontfamily);
    font-size: clamp(2.6rem, 5vw, var(--h1-fontsize));
    font-variation-settings: var(--h1-fontvariationsettings);
    font-weight: var(--h1-fontweight);
    letter-spacing: var(--h1-letterspacing);
    line-height: 0.95;
    margin: 0;
}

.h1--lightbackground {
    color: var(--portal-heading-lightbackground-color, var(--gold));
}

.h2--lightbackground {
    color: var(--portal-subheading-lightbackground-color, var(--gold));
}

.empty-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding-top: 2rem;
    padding-bottom: 3rem;
}

.portal-summary,
.placeholder-panel__body,
.placeholder-form__body,
.placeholder-form__note,
.portal-footer__summary,
.portal-nav__label,
.portal-header__support-label {
    color: var(--portal-muted);
}

.portal-summary,
.placeholder-panel__body,
.placeholder-form__body,
.placeholder-form__note {
    font-size: 1rem;
    line-height: 1.55;
    margin: 0;
    max-width: 64ch;
}

.placeholder-panel__title,
.placeholder-form__title {
    font-family: var(--h2-fontfamily);
    font-size: clamp(1.4rem, 2.6vw, var(--h2-fontsize));
    font-variation-settings: var(--h2-fontvariationsettings);
    font-weight: var(--h2-fontweight);
    letter-spacing: var(--h2-letterspacing);
    line-height: 1.05;
    margin: 0;
}

.empty-state__body {
    margin-top: 1rem;
}

.portal-header__eyebrow,
.portal-header__title,
.portal-footer__summary {
    display: block;
}

.portal-header__eyebrow,
.portal-header__title,
.portal-footer__summary,
.portal-nav__label,
.portal-chip,
.placeholder-panel__action,
.empty-state__action,
.placeholder-form__label,
.placeholder-form__button {
    font-size: 0.9rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

/* #endregion */
