.skip-link { position: absolute; left: -999px; top: .5rem; padding: .6rem 1rem; background: var(--tf-ink); color: var(--tf-paper); z-index: 10; }
.skip-link:focus { left: .5rem; }

.site-header {
    position: sticky;
    top: 0;
    z-index: 5;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .7rem var(--tf-gutter);
    background: rgb(243 237 226 / 94%);
    border-bottom: 1.5px solid var(--tf-ink);
    backdrop-filter: blur(6px);
}

.site-header nav { display: flex; gap: 1.1rem; align-items: center; font-weight: 600; font-size: var(--tf-step--1); }
.site-header nav a { text-decoration: none; }
.site-header nav a:not(.site-header-cta) { display: none; }
.site-header-cta { padding: .45rem .8rem; border: 1.5px solid var(--tf-ink); border-radius: var(--tf-radius); }

.wordmark {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    text-decoration: none;
    font: 800 1.65rem/1 var(--tf-display);
    letter-spacing: .04em;
    text-transform: uppercase;
}

.wordmark .tf-icon { width: 1.6rem; height: 1.6rem; color: var(--tf-brick); }

.site-footer {
    display: grid;
    gap: 2rem;
    margin-top: 4rem;
    padding: 2.5rem var(--tf-gutter) 2rem;
    background: var(--tf-bottle-deep);
    color: var(--tf-paper);
    border-top: 6px double var(--tf-gilt);
}

.site-footer .wordmark .tf-icon { color: var(--tf-gilt); }
.site-footer-sign p { margin-top: .6rem; color: rgb(243 237 226 / 78%); }
.site-footer nav { display: grid; gap: .5rem; }
.site-footer nav a { text-decoration: none; }
.site-footer nav a:hover { color: var(--tf-gilt); }
.site-footer-heading { font: 700 var(--tf-step--1)/1 var(--tf-text); letter-spacing: .14em; text-transform: uppercase; color: var(--tf-gilt); }
.site-footer-legal { display: grid; gap: .6rem; font-size: var(--tf-step--1); color: rgb(243 237 226 / 72%); max-width: 40rem; }

@media (min-width: 48rem) {
    .site-header nav a:not(.site-header-cta) { display: inline; }
    .site-footer { grid-template-columns: 1.4fr 1fr 2fr; }
}
