@font-face {
    font-family: "Barlow Condensed";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url("../fonts/barlow-condensed-latin.woff2") format("woff2");
}

@font-face {
    font-family: "Bodoni Moda";
    font-style: normal;
    font-weight: 400 600;
    font-display: swap;
    src: url("../fonts/bodoni-moda-latin.woff2") format("woff2");
}

@font-face {
    font-family: "Bodoni Moda";
    font-style: italic;
    font-weight: 400 600;
    font-display: swap;
    src: url("../fonts/bodoni-moda-italic-latin.woff2") format("woff2");
}

@font-face {
    font-family: "Geist Mono";
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url("../fonts/geist-mono-latin.woff2") format("woff2");
}

:root,
html[data-theme-mode="dark"],
html.theme-dark {
    color-scheme: light;
    --a2a-paper: #f2eddf;
    --a2a-paper-deep: #e8e1cf;
    --a2a-ink: #242320;
    --a2a-muted: #68645c;
    --a2a-rule: #9f998c;
    --a2a-accent: #e84b2c;
    --a2a-accent-strong: #a92b16;
    --a2a-font-display: "Barlow Condensed", "Arial Narrow", sans-serif;
    --a2a-font-editorial: "Bodoni Moda", Georgia, serif;
    --a2a-font-mono: "Geist Mono", "SFMono-Regular", Consolas, monospace;
    --a2a-gutter: clamp(1.125rem, 4vw, 4.5rem);
    --a2a-reading-width: 47rem;
    --text: var(--a2a-ink);
    --text-light: var(--a2a-muted);
    --text-lighter: var(--a2a-muted);
    --text-primary: var(--a2a-ink);
    --text-secondary: var(--a2a-muted);
    --bg: var(--a2a-paper);
    --bg-subtle: var(--a2a-paper-deep);
    --bg-secondary: var(--a2a-paper-deep);
    --border: var(--a2a-rule);
    --white: var(--a2a-paper);
    --accent: var(--a2a-accent);
    --accent-hover: var(--a2a-accent-strong);
}

html {
    background: var(--a2a-paper);
    color: var(--a2a-ink);
    scroll-padding-top: 1rem;
    -webkit-text-size-adjust: 100%;
}

body {
    min-width: 20rem;
    margin: 0;
    overflow-x: clip;
    background:
        linear-gradient(90deg, rgb(36 35 32 / 2.5%) 1px, transparent 1px) 0 0 / 25% 100%,
        var(--a2a-paper);
    color: var(--a2a-ink);
    font-family: Arial, Helvetica, sans-serif;
    font-size: 1rem;
    line-height: 1.5;
    transition: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body button,
body input,
body select,
body textarea {
    font: inherit;
}

body a {
    color: inherit;
}

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

body :where(a, button, input, select, textarea, summary):focus-visible {
    outline: 2px solid var(--a2a-accent);
    outline-offset: 0.25rem;
}

body .site-main {
    width: min(100%, 112.5rem);
    min-height: calc(100vh - 12rem);
    margin-inline: auto;
    padding: 0 var(--a2a-gutter);
}

body.is-homepage .site-main,
body .is-homepage .site-main {
    min-height: 0;
    padding-bottom: 0;
}

body .site-header {
    position: relative;
    top: auto;
    z-index: 100;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.a2a-shell {
    width: min(100%, 112.5rem);
    margin-inline: auto;
    padding-inline: var(--a2a-gutter);
}

body .site-main .a2a-shell {
    width: 100%;
    max-width: none;
    padding-inline: 0;
}

/* Publication header */
.a2a-masthead {
    min-height: 3.75rem;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    border-bottom: 1px solid var(--a2a-ink);
    font-family: var(--a2a-font-mono);
    font-size: 0.68rem;
    font-weight: 650;
    letter-spacing: 0.13em;
    line-height: 1.35;
    text-transform: uppercase;
}

.a2a-masthead p,
.a2a-masthead .issue-mark,
.a2a-masthead .edition,
.a2a-masthead .date-line {
    margin: 0;
}

.a2a-masthead .issue-mark,
.issue-mark {
    color: var(--a2a-accent);
    text-decoration: none;
}

.a2a-masthead .edition,
.edition {
    justify-self: center;
    text-align: center;
}

.a2a-masthead .date-line,
.date-line {
    justify-self: end;
    color: var(--a2a-muted);
    text-align: right;
}

.a2a-inner-nav {
    position: relative;
    min-height: 4.25rem;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 2rem;
    align-items: center;
    border-bottom: 1px solid var(--a2a-ink);
}

.a2a-wordmark {
    width: fit-content;
    color: var(--a2a-ink);
    font-family: var(--a2a-font-editorial);
    font-size: clamp(1.55rem, 2.2vw, 2.15rem);
    font-weight: 500;
    line-height: 1;
    letter-spacing: -0.055em;
    text-decoration: none;
    white-space: nowrap;
}

.a2a-wordmark em,
.a2a-wordmark .a2a-accent {
    color: var(--a2a-accent);
    font-weight: inherit;
}

.a2a-wordmark:hover {
    color: var(--a2a-accent);
}

.a2a-nav,
.a2a-nav.site-nav {
    display: flex;
    align-items: center;
    gap: 1.5rem;
}

.a2a-nav ul,
.a2a-nav .menu-list {
    display: flex;
    align-items: center;
    gap: clamp(1rem, 2vw, 2rem);
    margin: 0;
    padding: 0;
    list-style: none;
}

.a2a-nav li,
.a2a-nav .menu-item,
.a2a-nav .submenu-item {
    position: relative;
    margin: 0;
    padding: 0;
}

.a2a-nav a {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding-block: 0.4rem;
    color: var(--a2a-muted);
    font-family: var(--a2a-font-mono);
    font-size: 0.68rem;
    font-weight: 650;
    letter-spacing: 0.12em;
    line-height: 1.3;
    text-decoration: none;
    text-transform: uppercase;
}

.a2a-nav a:hover,
.a2a-nav a.active,
.a2a-nav .current-menu-item > a,
.a2a-nav .current-menu-parent > a {
    color: var(--a2a-accent);
}

.a2a-nav a.active::after {
    display: none;
}

.a2a-nav .menu-icon {
    width: 0.9rem;
    height: 0.9rem;
    margin: 0;
}

.a2a-nav .submenu-arrow {
    width: 0.75rem;
    height: 0.75rem;
    margin: 0;
}

.a2a-nav .submenu {
    position: absolute;
    z-index: 1000;
    top: calc(100% + 0.35rem);
    left: -1rem;
    min-width: 13rem;
    display: grid;
    gap: 0;
    padding: 0.45rem 0;
    border: 1px solid var(--a2a-ink);
    border-radius: 0;
    background: var(--a2a-paper);
    box-shadow: 0.45rem 0.45rem 0 var(--a2a-ink);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-0.4rem);
    transition: opacity 160ms ease, transform 160ms ease, visibility 160ms ease;
}

.a2a-nav .submenu a {
    display: flex;
    width: 100%;
    padding: 0.7rem 1rem;
    color: var(--a2a-ink);
    white-space: nowrap;
}

.a2a-nav .submenu a:hover,
.a2a-nav .submenu a.active {
    background: var(--a2a-accent);
    color: var(--a2a-paper);
}

.a2a-nav li:hover > .submenu,
.a2a-nav li:focus-within > .submenu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.a2a-nav .submenu .submenu {
    top: -0.45rem;
    left: calc(100% + 0.45rem);
}

.a2a-menu-toggle {
    width: auto;
    min-width: 4.8rem;
    height: 2.75rem;
    display: none;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
    padding: 0.7rem;
    border: 1px solid var(--a2a-ink);
    border-radius: 0;
    background: transparent;
    color: var(--a2a-ink);
    font-family: var(--a2a-font-mono);
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    line-height: 1;
    text-transform: uppercase;
    cursor: pointer;
}

.a2a-menu-toggle span {
    width: auto;
    height: auto;
    display: inline-block;
    background: transparent;
    transition: transform 180ms ease, opacity 180ms ease;
}

.a2a-menu-toggle-mark {
    color: var(--a2a-accent);
    font-family: Arial, sans-serif;
    font-size: 1.2rem;
    font-weight: 400;
}

/* Homepage */
.a2a-home-hero {
    min-height: 0;
    display: block;
    padding: 0;
    border: 0;
}

.a2a-home-hero-grid {
    min-height: 19rem;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(17rem, 0.34fr);
    gap: clamp(2rem, 5vw, 5.5rem);
    align-items: end;
    padding: clamp(2.25rem, 4vw, 4rem) 0 clamp(2rem, 3vw, 3rem);
    border-bottom: 1px solid var(--a2a-ink);
}

.a2a-kicker,
.a2a-page-kicker {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin: 0 0 1.25rem;
    color: var(--a2a-ink);
    font-family: var(--a2a-font-mono);
    font-size: 0.68rem;
    font-weight: 650;
    letter-spacing: 0.17em;
    line-height: 1.4;
    text-transform: uppercase;
}

.a2a-kicker::before,
.a2a-page-kicker::before {
    width: 0.65rem;
    height: 0.65rem;
    flex: 0 0 auto;
    border-radius: 50%;
    background: var(--a2a-accent);
    content: "";
}

.a2a-home-title {
    max-width: 100%;
    margin: 0;
    color: var(--a2a-ink);
    font-family: var(--a2a-font-editorial);
    font-size: clamp(4.5rem, 9.65vw, 9.75rem);
    font-weight: 500;
    line-height: 0.74;
    letter-spacing: -0.075em;
    white-space: nowrap;
}

.a2a-home-title em,
.a2a-home-title .a2a-accent {
    color: var(--a2a-accent);
    font-weight: 500;
}

.a2a-standfirst {
    align-self: center;
    max-width: 28rem;
    margin: 3.25rem 0 0;
    color: var(--a2a-ink);
    font-family: var(--a2a-font-editorial);
    font-size: clamp(1.45rem, 2vw, 2.15rem);
    font-style: italic;
    font-weight: 400;
    line-height: 1.06;
    letter-spacing: -0.03em;
}

.standfirst a,
.a2a-standfirst a {
    text-decoration-color: color-mix(in srgb, var(--a2a-accent) 72%, transparent);
    text-decoration-thickness: 0.06em;
    text-underline-offset: 0.14em;
}

.standfirst a:hover,
.a2a-standfirst a:hover {
    color: var(--a2a-accent);
}

.a2a-byline {
    display: block;
    margin-top: 1.15rem;
    color: var(--a2a-muted);
    font-family: var(--a2a-font-mono);
    font-size: 0.66rem;
    font-style: normal;
    font-weight: 650;
    letter-spacing: 0.15em;
    line-height: 1.45;
    text-transform: uppercase;
}

.a2a-catalog-heading {
    min-height: 3.2rem;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 1rem;
    align-items: center;
    border-bottom: 1px solid var(--a2a-ink);
    font-family: var(--a2a-font-mono);
    font-size: 0.68rem;
    font-weight: 650;
    letter-spacing: 0.15em;
    line-height: 1.4;
    text-transform: uppercase;
}

.a2a-home-catalog {
    padding: 0;
}

.a2a-catalog-heading h2,
.a2a-catalog-heading p {
    margin: 0;
    font: inherit;
}

.a2a-catalog-heading p {
    color: var(--a2a-accent);
    text-align: right;
}

.a2a-catalog {
    border-bottom: 1px solid var(--a2a-ink);
}

.a2a-home-catalog-last .a2a-catalog {
    border-bottom: 0;
}

.a2a-project-band {
    display: grid;
    grid-template-columns: 58% 42%;
    padding: 0;
    border-bottom: 1px solid var(--a2a-rule);
}

.a2a-project-band:nth-child(3n + 2) {
    grid-template-columns: 38% 62%;
}

.a2a-project-band:nth-child(3n) {
    grid-template-columns: 56% 44%;
}

.a2a-project-band:last-child {
    border-bottom: 0;
}

.a2a-project-band:has(> :only-child) {
    grid-template-columns: 1fr;
}

.a2a-project {
    position: relative;
    min-width: 0;
    min-height: clamp(10.25rem, 12vw, 13.25rem);
    display: grid;
    grid-template-columns: 3.4rem minmax(min-content, 0.72fr) minmax(11rem, 1fr) 1.6rem;
    gap: clamp(0.7rem, 1.4vw, 1.5rem);
    align-items: start;
    overflow: hidden;
    padding: clamp(1.35rem, 2vw, 2.15rem) clamp(1.1rem, 2.1vw, 2.25rem) 1.5rem;
    color: var(--a2a-ink);
    text-decoration: none;
    isolation: isolate;
}

.a2a-project + .a2a-project {
    border-left: 1px solid var(--a2a-rule);
}

.a2a-project::after {
    position: absolute;
    z-index: -1;
    inset: 0;
    background: var(--a2a-accent);
    content: "";
    transform: translateY(101%);
    transition: transform 320ms cubic-bezier(0.22, 0.8, 0.24, 1);
}

.a2a-project-number {
    padding-top: 0.28rem;
    color: var(--a2a-accent);
    font-family: var(--a2a-font-mono);
    font-size: 0.68rem;
    font-weight: 650;
    letter-spacing: 0.1em;
    line-height: 1.35;
    transition: color 180ms ease;
}

.a2a-project h3 {
    margin: 0;
    color: inherit;
    font-family: var(--a2a-font-display);
    font-size: clamp(2rem, 2.75vw, 3.35rem);
    font-weight: 700;
    line-height: 0.83;
    letter-spacing: -0.045em;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
    text-transform: uppercase;
}

.a2a-project p,
.a2a-project-description {
    max-width: 29rem;
    margin: 0;
    color: var(--a2a-muted);
    font-family: var(--a2a-font-editorial);
    font-size: clamp(0.96rem, 1.15vw, 1.18rem);
    line-height: 1.24;
    transition: color 180ms ease;
}

.a2a-project-description > * {
    margin: 0;
    color: inherit;
    font: inherit;
}

.a2a-project-arrow {
    justify-self: end;
    font-family: Arial, sans-serif;
    font-size: 1.55rem;
    line-height: 1;
    transition: transform 200ms ease;
}

a.a2a-project:hover,
a.a2a-project:focus-visible {
    color: var(--a2a-paper);
    outline: 0;
}

a.a2a-project:hover::after,
a.a2a-project:focus-visible::after {
    transform: translateY(0);
}

a.a2a-project:hover .a2a-project-number,
a.a2a-project:hover p,
a.a2a-project:hover .a2a-project-description,
a.a2a-project:focus-visible .a2a-project-number,
a.a2a-project:focus-visible p,
a.a2a-project:focus-visible .a2a-project-description {
    color: var(--a2a-paper);
}

a.a2a-project:hover .a2a-project-arrow,
a.a2a-project:focus-visible .a2a-project-arrow {
    transform: translate(0.23rem, -0.23rem);
}

a.a2a-project:focus-visible {
    box-shadow: inset 0 0 0 3px var(--a2a-ink);
}

/* Page and archive headers */
.a2a-page-header {
    min-height: clamp(15rem, 28vw, 25rem);
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(16rem, 0.34fr);
    grid-template-areas:
        "kicker kicker"
        "title deck";
    column-gap: clamp(2rem, 6vw, 7rem);
    row-gap: 1.25rem;
    align-items: end;
    padding: clamp(3rem, 7vw, 7rem) 0 clamp(2.5rem, 5vw, 4.5rem);
    border-bottom: 1px solid var(--a2a-ink);
}

.a2a-page-header .a2a-page-kicker {
    grid-area: kicker;
    margin-bottom: 0;
}

.a2a-page-title {
    grid-area: title;
    max-width: 13ch;
    margin: 0;
    color: var(--a2a-ink);
    font-family: var(--a2a-font-editorial);
    font-size: clamp(3.7rem, 8.4vw, 8.75rem);
    font-weight: 500;
    line-height: 0.84;
    letter-spacing: -0.065em;
    overflow-wrap: anywhere;
    text-wrap: balance;
}

.a2a-page-deck {
    grid-area: deck;
    align-self: end;
    max-width: 34rem;
    margin: 0;
    color: var(--a2a-muted);
    font-family: var(--a2a-font-editorial);
    font-size: clamp(1.25rem, 1.8vw, 1.85rem);
    font-style: italic;
    line-height: 1.18;
    letter-spacing: -0.02em;
}

.a2a-content-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(14rem, 18rem);
    gap: clamp(3rem, 7vw, 7.5rem);
    align-items: start;
    padding-block: clamp(3rem, 6vw, 6.5rem);
}

.a2a-prose {
    width: 100%;
    max-width: var(--a2a-reading-width);
    min-width: 0;
}

.a2a-sidebar {
    min-width: 0;
    position: sticky;
    top: 1.5rem;
    align-self: start;
}

.a2a-archive {
    padding-bottom: clamp(3rem, 6vw, 6rem);
}

.a2a-posts-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0;
    border-top: 1px solid var(--a2a-ink);
}

.a2a-post-card {
    position: relative;
    min-width: 0;
    min-height: clamp(16rem, 24vw, 23rem);
    display: block;
    padding: 0;
    border-bottom: 1px solid var(--a2a-rule);
    background: transparent;
    color: var(--a2a-ink);
    transition: background-color 180ms ease, color 180ms ease;
}

.a2a-post-card-link {
    width: 100%;
    min-height: inherit;
    display: grid;
    grid-template-columns: 3rem minmax(0, 1fr) 1.5rem;
    grid-template-rows: auto 1fr;
    gap: 1.2rem;
    align-items: start;
    padding: clamp(1.5rem, 3vw, 3rem);
    color: var(--a2a-ink);
    text-decoration: none;
}

.a2a-post-card-link > .a2a-project-number {
    grid-column: 1;
    grid-row: 1;
}

.a2a-post-card-copy {
    min-width: 0;
    display: grid;
    align-content: start;
    gap: 0.85rem;
    grid-column: 2;
    grid-row: 1;
}

.a2a-post-card-image {
    grid-column: 1 / -1;
    grid-row: 2;
    align-self: end;
    margin-top: 0.5rem;
}

.a2a-post-card-link > .a2a-project-arrow {
    grid-column: 3;
    grid-row: 1;
}

.a2a-post-card:nth-child(even) {
    border-left: 1px solid var(--a2a-rule);
}

.a2a-post-card:hover,
.a2a-post-card:focus-within {
    background: var(--a2a-paper-deep);
}

.a2a-post-card img {
    width: 100%;
    max-height: 20rem;
    display: block;
    margin: 0 0 0.35rem;
    border-bottom: 1px solid var(--a2a-ink);
    object-fit: cover;
    aspect-ratio: 16 / 9;
    filter: saturate(0.78) contrast(1.03);
}

.a2a-post-card :where(.a2a-post-card-meta, .a2a-post-meta, .a2a-post-card-date, time) {
    color: var(--a2a-accent);
    font-family: var(--a2a-font-mono);
    font-size: 0.68rem;
    font-weight: 650;
    letter-spacing: 0.12em;
    line-height: 1.45;
    text-transform: uppercase;
}

.a2a-post-card h2,
.a2a-post-card h3 {
    margin: 0;
    font-family: var(--a2a-font-display);
    font-size: clamp(2.25rem, 4.3vw, 4.75rem);
    font-weight: 700;
    line-height: 0.88;
    letter-spacing: -0.045em;
    overflow-wrap: anywhere;
    text-transform: uppercase;
    text-wrap: balance;
}

.a2a-post-card h2 a,
.a2a-post-card h3 a {
    color: inherit;
    text-decoration: none;
}

.a2a-post-card :where(.a2a-post-card-excerpt, .a2a-post-excerpt, p) {
    display: block;
    max-width: 35rem;
    margin: 0;
    color: var(--a2a-muted);
    font-family: var(--a2a-font-editorial);
    font-size: clamp(1rem, 1.35vw, 1.2rem);
    line-height: 1.35;
}

.a2a-post-card :where(.read-more, .a2a-read-more) {
    position: relative;
    z-index: 1;
    margin-top: auto;
    color: var(--a2a-accent);
    font-family: var(--a2a-font-mono);
    font-size: 0.68rem;
    font-weight: 650;
    letter-spacing: 0.12em;
    text-decoration: none;
    text-transform: uppercase;
}

/* Article */
.a2a-article {
    min-width: 0;
}

.a2a-article-header {
    padding: clamp(3rem, 7vw, 7rem) 0 clamp(2.5rem, 5vw, 4.5rem);
    border-bottom: 1px solid var(--a2a-ink);
}

.a2a-article-title {
    max-width: 15ch;
    margin: 0;
    color: var(--a2a-ink);
    font-family: var(--a2a-font-editorial);
    font-size: clamp(3.5rem, 8vw, 8.5rem);
    font-weight: 500;
    line-height: 0.86;
    letter-spacing: -0.062em;
    overflow-wrap: anywhere;
    text-wrap: balance;
}

.a2a-article-deck {
    max-width: 42rem;
    margin: clamp(1.75rem, 4vw, 3rem) 0 0;
    color: var(--a2a-muted);
    font-family: var(--a2a-font-editorial);
    font-size: clamp(1.35rem, 2.15vw, 2rem);
    font-style: italic;
    line-height: 1.2;
    letter-spacing: -0.025em;
}

.a2a-article-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.5rem;
    margin: 1.5rem 0 0;
    color: var(--a2a-muted);
    font-family: var(--a2a-font-mono);
    font-size: 0.68rem;
    font-weight: 650;
    letter-spacing: 0.12em;
    line-height: 1.45;
    text-transform: uppercase;
}

.a2a-article-meta > * {
    margin: 0;
}

.a2a-article-meta a:hover {
    color: var(--a2a-accent);
}

.a2a-article > :where(.a2a-featured-image, .post-featured-image),
.a2a-article-header + :where(.a2a-featured-image, .post-featured-image) {
    width: 100%;
    max-height: 52rem;
    display: block;
    margin: 0;
    border-bottom: 1px solid var(--a2a-ink);
    object-fit: cover;
}

.a2a-article-featured {
    margin: 0 auto;
    padding-top: clamp(1.5rem, 4vw, 4rem);
}

.a2a-article-featured img {
    width: 100%;
    max-height: 52rem;
    display: block;
    border-bottom: 1px solid var(--a2a-ink);
    object-fit: cover;
}

.a2a-article-body {
    width: min(100%, var(--a2a-reading-width));
    margin-inline: auto;
    padding-block: clamp(3rem, 7vw, 7rem);
}

.a2a-prose,
.a2a-article-body,
.a2a-blocks .content,
.a2a-blocks.content {
    color: var(--a2a-ink);
    font-family: var(--a2a-font-editorial);
    font-size: clamp(1.08rem, 1.25vw, 1.25rem);
    line-height: 1.72;
}

.a2a-prose > :first-child,
.a2a-article-body > :first-child,
.a2a-blocks .content > :first-child {
    margin-top: 0;
}

.a2a-prose > :last-child,
.a2a-article-body > :last-child,
.a2a-blocks .content > :last-child {
    margin-bottom: 0;
}

.a2a-prose :where(p, ul, ol, dl),
.a2a-article-body :where(p, ul, ol, dl),
.a2a-blocks .content :where(p, ul, ol, dl) {
    margin-top: 0;
    margin-bottom: 1.35em;
}

.a2a-prose :where(ul, ol),
.a2a-article-body :where(ul, ol),
.a2a-blocks .content :where(ul, ol) {
    padding-left: 1.4em;
}

.a2a-prose li,
.a2a-article-body li,
.a2a-blocks .content li {
    margin: 0.45em 0;
    padding-left: 0.25em;
}

.a2a-prose li::marker,
.a2a-article-body li::marker,
.a2a-blocks .content li::marker {
    color: var(--a2a-accent);
}

.a2a-prose :where(h2, h3, h4, h5, h6),
.a2a-article-body :where(h2, h3, h4, h5, h6),
.a2a-blocks .content :where(h2, h3, h4, h5, h6) {
    color: var(--a2a-ink);
    text-wrap: balance;
}

.a2a-prose h2,
.a2a-article-body h2,
.a2a-blocks .content h2 {
    margin: 2.3em 0 0.65em;
    font-family: var(--a2a-font-display);
    font-size: clamp(2.35rem, 4.5vw, 4.25rem);
    font-weight: 700;
    line-height: 0.93;
    letter-spacing: -0.04em;
    text-transform: uppercase;
}

.a2a-prose h3,
.a2a-article-body h3,
.a2a-blocks .content h3 {
    margin: 2em 0 0.65em;
    font-family: var(--a2a-font-editorial);
    font-size: clamp(1.75rem, 3vw, 2.65rem);
    font-weight: 500;
    line-height: 1.05;
    letter-spacing: -0.035em;
}

.a2a-prose :where(h4, h5, h6),
.a2a-article-body :where(h4, h5, h6),
.a2a-blocks .content :where(h4, h5, h6) {
    margin: 1.8em 0 0.55em;
    font-family: var(--a2a-font-mono);
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    line-height: 1.4;
    text-transform: uppercase;
}

.a2a-prose a,
.a2a-article-body a,
.a2a-blocks .content a {
    color: var(--a2a-accent);
    text-decoration-thickness: 0.06em;
    text-underline-offset: 0.14em;
}

.a2a-prose a:hover,
.a2a-article-body a:hover,
.a2a-blocks .content a:hover {
    color: var(--a2a-accent-strong);
    opacity: 1;
}

.a2a-prose blockquote,
.a2a-article-body blockquote,
.a2a-blocks .content blockquote {
    margin: 2.25em 0;
    padding: 0.2em 0 0.2em clamp(1.25rem, 4vw, 2.5rem);
    border: 0;
    border-left: 0.35rem solid var(--a2a-accent);
    border-radius: 0;
    background: transparent;
    color: var(--a2a-ink);
    font-family: var(--a2a-font-editorial);
    font-size: clamp(1.45rem, 2.6vw, 2.35rem);
    font-style: italic;
    line-height: 1.25;
    letter-spacing: -0.025em;
}

.a2a-prose blockquote p,
.a2a-article-body blockquote p,
.a2a-blocks .content blockquote p {
    margin-bottom: 0.6em;
    color: inherit;
    font-size: inherit;
    line-height: inherit;
}

.a2a-prose blockquote cite,
.a2a-article-body blockquote cite,
.a2a-blocks .content blockquote cite,
.a2a-prose figcaption,
.a2a-article-body figcaption,
.a2a-blocks figcaption {
    color: var(--a2a-muted);
    font-family: var(--a2a-font-mono);
    font-size: 0.65rem;
    font-style: normal;
    font-weight: 600;
    letter-spacing: 0.1em;
    line-height: 1.5;
    text-transform: uppercase;
}

.a2a-prose :where(img, video),
.a2a-article-body :where(img, video),
.a2a-blocks .content :where(img, video) {
    max-width: 100%;
    display: block;
    margin: 2.25em 0;
    border-radius: 0;
}

.a2a-prose hr,
.a2a-article-body hr,
.a2a-blocks .content hr {
    height: 1px;
    margin: 3em 0;
    border: 0;
    background: var(--a2a-rule);
}

.a2a-prose :where(code, kbd),
.a2a-article-body :where(code, kbd),
.a2a-blocks .content :where(code, kbd) {
    padding: 0.16em 0.36em;
    border-radius: 0;
    background: var(--a2a-paper-deep);
    color: var(--a2a-ink);
    font-family: var(--a2a-font-mono);
    font-size: 0.82em;
}

.a2a-prose pre,
.a2a-article-body pre,
.a2a-blocks .content pre {
    max-width: 100%;
    overflow-x: auto;
    margin: 2em 0;
    padding: clamp(1.1rem, 3vw, 2rem);
    border: 1px solid var(--a2a-ink);
    border-radius: 0;
    background: var(--a2a-paper-deep);
    color: var(--a2a-ink);
    font-family: var(--a2a-font-mono);
    font-size: 0.82rem;
    line-height: 1.65;
    tab-size: 4;
}

.a2a-prose pre code,
.a2a-article-body pre code,
.a2a-blocks .content pre code {
    padding: 0;
    background: transparent;
    font-size: inherit;
}

.a2a-prose table,
.a2a-article-body table,
.a2a-blocks .content table {
    width: 100%;
    margin: 2em 0;
    border-collapse: collapse;
    font-size: 0.92em;
}

.a2a-prose :where(th, td),
.a2a-article-body :where(th, td),
.a2a-blocks .content :where(th, td) {
    padding: 0.75rem;
    border-bottom: 1px solid var(--a2a-rule);
    text-align: left;
    vertical-align: top;
}

.a2a-prose th,
.a2a-article-body th,
.a2a-blocks .content th {
    border-bottom-color: var(--a2a-ink);
    font-family: var(--a2a-font-mono);
    font-size: 0.68rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.a2a-prose details,
.a2a-article-body details,
.a2a-blocks .content details {
    margin: 1.5em 0;
    border: 1px solid var(--a2a-rule);
    border-radius: 0;
    background: transparent;
}

.a2a-prose details summary,
.a2a-article-body details summary,
.a2a-blocks .content details summary {
    padding: 1rem 1.25rem;
    border: 0;
    background: var(--a2a-paper-deep);
    color: var(--a2a-ink);
    font-family: var(--a2a-font-mono);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.a2a-prose details[open] summary,
.a2a-article-body details[open] summary,
.a2a-blocks .content details[open] summary {
    border-bottom: 1px solid var(--a2a-rule);
    background: var(--a2a-paper-deep);
    color: var(--a2a-accent);
}

.a2a-prose details div[data-type="detailsContent"],
.a2a-article-body details div[data-type="detailsContent"],
.a2a-blocks .content details div[data-type="detailsContent"] {
    padding: 1.25rem;
    background: transparent;
}

/* Tags, post navigation, empty states and pagination */
.a2a-tags {
    width: min(100%, var(--a2a-reading-width));
    margin: 0 auto clamp(3rem, 6vw, 6rem);
    padding-top: 1.5rem;
    border-top: 1px solid var(--a2a-ink);
}

.a2a-tags :where(.label, .a2a-tags-label, h2, h3) {
    display: block;
    margin: 0 0 1rem;
    color: var(--a2a-muted);
    font-family: var(--a2a-font-mono);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.a2a-tags :where(ul, .tag-list) {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.a2a-tags :where(li, .tag-item) {
    margin: 0;
    padding: 0;
}

.a2a-tags a,
.a2a-tags .tag-link {
    display: inline-flex;
    padding: 0.45rem 0.7rem;
    border: 1px solid var(--a2a-rule);
    border-radius: 0;
    background: transparent;
    color: var(--a2a-ink);
    box-shadow: none;
    font-family: var(--a2a-font-mono);
    font-size: 0.65rem;
    font-weight: 650;
    letter-spacing: 0.08em;
    text-decoration: none;
    text-transform: uppercase;
}

.a2a-tags a:hover,
.a2a-tags .tag-link:hover {
    border-color: var(--a2a-accent);
    background: var(--a2a-accent);
    color: var(--a2a-paper);
    box-shadow: none;
    transform: none;
}

.a2a-post-navigation {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: clamp(2rem, 5vw, 5rem);
    border-top: 1px solid var(--a2a-ink);
    border-bottom: 1px solid var(--a2a-ink);
}

.a2a-post-navigation > * {
    min-width: 0;
    padding: clamp(1.25rem, 3vw, 2.5rem);
}

.a2a-post-navigation > * + * {
    border-left: 1px solid var(--a2a-rule);
}

.a2a-post-navigation :where(.post-nav-label, small) {
    display: block;
    margin-bottom: 0.65rem;
    color: var(--a2a-accent);
    font-family: var(--a2a-font-mono);
    font-size: 0.65rem;
    font-weight: 650;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.a2a-post-navigation > a > span {
    display: block;
    margin-bottom: 0.65rem;
    color: var(--a2a-accent);
    font-family: var(--a2a-font-mono);
    font-size: 0.65rem;
    font-weight: 650;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.a2a-post-navigation > a > strong {
    display: block;
    font: inherit;
}

.a2a-post-navigation :where(.post-nav-title, a) {
    display: block;
    color: var(--a2a-ink);
    font-family: var(--a2a-font-display);
    font-size: clamp(1.55rem, 3vw, 2.75rem);
    font-weight: 700;
    line-height: 0.98;
    letter-spacing: -0.035em;
    overflow-wrap: anywhere;
    text-decoration: none;
    text-transform: uppercase;
}

.a2a-post-navigation > *:hover {
    background: var(--a2a-paper-deep);
}

.a2a-empty {
    min-height: 16rem;
    display: grid;
    place-items: center;
    padding: clamp(3rem, 8vw, 8rem) var(--a2a-gutter);
    border-top: 1px solid var(--a2a-ink);
    border-bottom: 1px solid var(--a2a-ink);
    color: var(--a2a-muted);
    font-family: var(--a2a-font-editorial);
    font-size: clamp(1.35rem, 2.5vw, 2.25rem);
    font-style: italic;
    text-align: center;
}

.a2a-empty > * {
    margin: 0;
}

.a2a-posts-grid > .a2a-empty {
    grid-column: 1 / -1;
}

.a2a-pagination,
body .pagination-wrapper {
    margin: clamp(2.5rem, 5vw, 5rem) 0 0;
}

.a2a-pagination nav,
body .pagination {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 0.4rem;
    margin: 0;
}

.a2a-pagination nav > div {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
}

.a2a-pagination :where(a, span),
body .pagination .page-link {
    min-width: 2.65rem;
    min-height: 2.65rem;
    display: inline-grid;
    place-items: center;
    padding: 0.45rem 0.7rem;
    border: 1px solid var(--a2a-rule);
    border-radius: 0;
    background: transparent;
    color: var(--a2a-ink);
    box-shadow: none;
    font-family: var(--a2a-font-mono);
    font-size: 0.68rem;
    font-weight: 650;
    line-height: 1;
    text-decoration: none;
}

.a2a-pagination a:hover,
.a2a-pagination [aria-current="page"] > span,
body .pagination .page-link:hover,
body .pagination .page-item.active .page-link {
    border-color: var(--a2a-accent);
    background: var(--a2a-accent);
    color: var(--a2a-paper);
}

.a2a-pagination svg,
body .pagination .page-link svg {
    width: 1rem;
    height: 1rem;
}

/* Sidebar and CMS menus */
body .sidebar,
.a2a-sidebar {
    color: var(--a2a-ink);
}

body .sidebar-widget,
.a2a-sidebar .sidebar-widget {
    margin: 0 0 2.5rem;
}

body .sidebar-title,
.a2a-sidebar .sidebar-title {
    margin: 0 0 0.9rem;
    color: var(--a2a-muted);
    font-family: var(--a2a-font-mono);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    line-height: 1.4;
    text-transform: uppercase;
}

body .sidebar-menu-list,
body .sidebar-submenu,
.a2a-sidebar :where(ul, .sidebar-menu-list, .sidebar-submenu) {
    margin: 0;
    padding: 0;
    border-top: 1px solid var(--a2a-ink);
    list-style: none;
}

body .sidebar-submenu,
.a2a-sidebar .sidebar-submenu {
    margin: 0.35rem 0 0 0.75rem;
    border-top-color: var(--a2a-rule);
}

body .sidebar-menu-item,
body .sidebar-submenu-item,
.a2a-sidebar li {
    margin: 0;
    padding: 0;
    border-bottom: 1px solid var(--a2a-rule);
}

body .sidebar-menu-item > a,
body .sidebar-submenu-item a,
.a2a-sidebar li > a {
    display: block;
    padding: 0.75rem 0;
    color: var(--a2a-ink);
    font-family: var(--a2a-font-editorial);
    font-size: 1rem;
    line-height: 1.35;
    text-decoration: none;
}

body .sidebar-menu-item > a:hover,
body .sidebar-submenu-item a:hover,
.a2a-sidebar li > a:hover {
    color: var(--a2a-accent);
}

body .sidebar-menu-item :where(.count, .post-date),
.a2a-sidebar :where(.count, .post-date) {
    color: var(--a2a-muted);
    font-family: var(--a2a-font-mono);
    font-size: 0.62rem;
    letter-spacing: 0.06em;
    line-height: 1.45;
    text-transform: uppercase;
}

/* Nimble blocks */
.a2a-blocks {
    min-width: 0;
}

.a2a-blocks > section {
    padding: clamp(2.5rem, 6vw, 3rem) 0;
    /* border-bottom: 1px solid var(--a2a-rule); */
}

.a2a-blocks > section:last-child {
    border-bottom: 0;
}

.a2a-blocks .container {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}

.a2a-fullwidth-blocks > section > .container,
.a2a-home-blocks > section > .container,
.a2a-archive-intro > section > .container,
.a2a-page-no-title .a2a-blocks > section > .container {
    width: 100%;
    max-width: none;
    margin-inline: auto;
    padding-inline: 0;
}

.a2a-blocks .eyebrow,
.a2a-blocks :where(.features-subheading, .team-subheading) + .eyebrow {
    margin: 0 0 0.9rem;
    color: var(--a2a-accent);
    font-family: var(--a2a-font-mono);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    line-height: 1.4;
    text-transform: uppercase;
}

.a2a-blocks section > .container > h2,
.a2a-blocks .latest-posts-heading,
.a2a-blocks .timeline-block__title {
    margin: 0 0 clamp(1.5rem, 4vw, 3rem);
    color: var(--a2a-ink);
    font-family: var(--a2a-font-display);
    font-size: clamp(2.75rem, 6vw, 6rem);
    font-weight: 700;
    line-height: 0.88;
    letter-spacing: -0.045em;
    text-transform: uppercase;
    text-wrap: balance;
}

.a2a-blocks .hero-block {
    min-height: min(42rem, 78vh);
    position: relative;
    display: grid;
    align-items: end;
    overflow: hidden;
    padding: 0;
    border: 1px solid var(--a2a-ink);
}

.a2a-blocks .hero-container,
.a2a-blocks .hero-copy-panel {
    position: relative;
    z-index: 2;
    padding: clamp(2rem, 6vw, 5rem);
}

.a2a-blocks .hero-content {
    max-width: 58rem;
    margin: 0;
}

.a2a-blocks .hero-block h1 {
    margin: 0;
    color: inherit;
    font-family: var(--a2a-font-editorial);
    font-size: clamp(3.5rem, 8vw, 8rem);
    font-weight: 500;
    line-height: 0.86;
    letter-spacing: -0.06em;
    overflow-wrap: anywhere;
    text-wrap: balance;
}

.a2a-blocks .hero-subheading,
.a2a-blocks .hero-richtext,
.a2a-blocks .hero-post-actions {
    max-width: 42rem;
    margin-top: 1.5rem;
    font-family: var(--a2a-font-editorial);
    font-size: clamp(1.2rem, 2vw, 1.75rem);
    line-height: 1.35;
}

.a2a-blocks .hero-split-grid {
    min-height: inherit;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.a2a-blocks .hero-split-media img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.a2a-blocks .hero-overlay {
    background: rgb(36 35 32 / 55%);
}

.a2a-blocks :where(.features-grid, .team-grid, .testimonials-grid, .news-events-grid, .stats-grid, .google-reviews-grid, .latest-posts-grid) {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    border-top: 1px solid var(--a2a-ink);
    border-left: 1px solid var(--a2a-rule);
}

.a2a-blocks :where(.feature-item, .team-member, .testimonial-item, .news-event-item, .stat-item, .google-review-card, .lp-card) {
    min-width: 0;
    margin: 0;
    padding: clamp(1.25rem, 3vw, 2.5rem);
    border-right: 1px solid var(--a2a-rule);
    border-bottom: 1px solid var(--a2a-rule);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.a2a-blocks .feature-item-link {
    color: var(--a2a-ink);
    text-decoration: none;
}

.a2a-blocks .feature-item-link:hover,
.a2a-blocks .news-event-item:hover,
.a2a-blocks .lp-card:hover {
    background: var(--a2a-paper-deep);
    box-shadow: none;
    transform: none;
}

.a2a-blocks :where(.feature-item, .team-member, .news-event-item, .lp-card) img {
    border-radius: 0;
    filter: saturate(0.78) contrast(1.03);
}

.a2a-blocks :where(.feature-item h3, .team-member-name, .news-event-item h3, .lp-card__title) {
    margin: 1rem 0 0.65rem;
    color: var(--a2a-ink);
    font-family: var(--a2a-font-display);
    font-size: clamp(1.75rem, 3.2vw, 3.2rem);
    font-weight: 700;
    line-height: 0.94;
    letter-spacing: -0.035em;
    text-transform: uppercase;
}

.a2a-blocks :where(.feature-description, .team-member-bio, .testimonial-quote, .news-event-content, .lp-card__excerpt, .google-review-text) {
    color: var(--a2a-muted);
    font-family: var(--a2a-font-editorial);
    line-height: 1.45;
}

.a2a-blocks .trust-bar {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1rem clamp(1.5rem, 5vw, 4rem);
}

.a2a-blocks .trust-item {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    margin: 0;
}

.a2a-blocks .trust-dot,
.a2a-blocks .timeline-block__marker-inner {
    background: var(--a2a-accent);
}

.a2a-blocks .trust-text,
.a2a-blocks .timeline-block__tagline,
.a2a-blocks .timeline-block__time {
    font-family: var(--a2a-font-mono);
    font-size: 0.68rem;
    font-weight: 650;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.a2a-blocks :where(.two-columns-block, .three-columns-block) .columns-grid {
    display: grid;
    gap: clamp(2rem, 5vw, 5rem);
}

.a2a-blocks .two-columns-block .columns-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.a2a-blocks .three-columns-block .columns-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.a2a-blocks .column {
    min-width: 0;
}

.a2a-blocks .cta-block {
    padding: clamp(3rem, 8vw, 8rem) clamp(1.5rem, 5vw, 5rem);
    background: var(--a2a-accent) !important;
    color: var(--a2a-paper);
    text-align: left;
}

.a2a-blocks .cta-block :where(h2, h3, p, .eyebrow) {
    color: inherit;
}

.a2a-blocks .cta-block h2 {
    max-width: 12ch;
    font-family: var(--a2a-font-editorial);
    font-size: clamp(3rem, 7vw, 7rem);
    font-weight: 500;
    line-height: 0.88;
    letter-spacing: -0.055em;
    text-align: left;
}

.a2a-blocks .image-wrapper,
.a2a-blocks .image-block figure {
    margin: 0;
}

.a2a-blocks .image-block img {
    width: 100%;
    display: block;
    border-radius: 0;
}

.a2a-blocks .stat-number,
.a2a-blocks .google-reviews-score {
    color: var(--a2a-accent);
    font-family: var(--a2a-font-editorial);
    font-size: clamp(3.5rem, 7vw, 7rem);
    font-weight: 500;
    line-height: 0.9;
    letter-spacing: -0.055em;
}

.a2a-blocks .stat-label,
.a2a-blocks :where(.google-reviews-count, .google-reviews-meta, .google-review-published, .lp-card__date, .lp-list-item__date) {
    color: var(--a2a-muted);
    font-family: var(--a2a-font-mono);
    font-size: 0.65rem;
    font-weight: 650;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.a2a-blocks .google-reviews-star,
.a2a-blocks .testimonial-rating .filled {
    color: var(--a2a-accent);
}

.a2a-blocks .timeline-block__items {
    border-color: var(--a2a-rule);
}

.a2a-blocks .timeline-block__item {
    border-color: var(--a2a-rule);
    background: transparent;
    box-shadow: none;
}

.a2a-blocks .timeline-block__description {
    color: var(--a2a-muted);
    font-family: var(--a2a-font-editorial);
}

.a2a-blocks .faq-list {
    border-top: 1px solid var(--a2a-ink);
}

.a2a-blocks .faq-item {
    margin: 0;
    border: 0;
    border-bottom: 1px solid var(--a2a-rule);
    border-radius: 0;
    background: transparent;
}

.a2a-blocks .faq-question {
    padding: 1.25rem 3rem 1.25rem 0;
    background: transparent;
    color: var(--a2a-ink);
    font-family: var(--a2a-font-display);
    font-size: clamp(1.5rem, 3vw, 2.5rem);
    font-weight: 700;
    line-height: 1;
    letter-spacing: -0.025em;
    text-transform: uppercase;
}

.a2a-blocks .faq-question:hover,
.a2a-blocks .faq-item[open] .faq-question {
    background: transparent;
    color: var(--a2a-accent);
}

.a2a-blocks .faq-answer {
    max-width: var(--a2a-reading-width);
    padding: 0 0 1.5rem;
}

.a2a-blocks :where(.latest-posts-header, .google-reviews-header) {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 1.5rem;
    margin-bottom: 2rem;
}

.a2a-blocks .latest-posts-list {
    border-top: 1px solid var(--a2a-ink);
}

.a2a-blocks .lp-list-item {
    display: grid;
    grid-template-columns: minmax(8rem, 0.3fr) minmax(0, 1fr);
    gap: clamp(1.25rem, 4vw, 4rem);
    padding: 1.5rem 0;
    border-bottom: 1px solid var(--a2a-rule);
}

.a2a-blocks .lp-list-item__image {
    width: 100%;
    height: 100%;
    min-height: 9rem;
    display: block;
    object-fit: cover;
}

.a2a-blocks .lp-list-item__title {
    margin: 0.45rem 0;
    font-family: var(--a2a-font-display);
    font-size: clamp(2rem, 4vw, 4rem);
    line-height: 0.95;
    text-transform: uppercase;
}

.a2a-blocks :where(.lp-card__title, .lp-list-item__title) a,
.a2a-blocks :where(.lp-card__read-more, .lp-list-item__read-more, .latest-posts-view-all-inline) {
    color: var(--a2a-ink);
    text-decoration: none;
}

.a2a-blocks :where(.lp-card__read-more, .lp-list-item__read-more, .latest-posts-view-all-inline) {
    color: var(--a2a-accent);
    font-family: var(--a2a-font-mono);
    font-size: 0.68rem;
    font-weight: 650;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.a2a-blocks .btn,
body .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.9rem;
    padding: 0.75rem 1.15rem;
    border: 1px solid var(--a2a-ink);
    border-radius: 0;
    background: var(--a2a-ink);
    color: var(--a2a-paper);
    box-shadow: none;
    font-family: var(--a2a-font-mono);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    line-height: 1.2;
    text-decoration: none;
    text-transform: uppercase;
    transform: none;
}

.a2a-blocks .btn:hover,
body .btn:hover {
    border-color: var(--a2a-accent);
    background: var(--a2a-accent);
    color: var(--a2a-paper);
    opacity: 1;
    transform: none;
}

.a2a-blocks .btn-outline,
body .btn-outline {
    background: transparent;
    color: var(--a2a-ink);
}

.a2a-blocks .cta-block .btn,
.a2a-blocks .hero-block.has-bg-media .btn {
    border-color: var(--a2a-paper);
    background: var(--a2a-paper);
    color: var(--a2a-ink);
}

/* Forms */
body :where(.custom-form, .contact-form-wrapper) {
    color: var(--a2a-ink);
}

body .contact-form-wrapper {
    display: grid;
    gap: clamp(2rem, 5vw, 5rem);
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

body .contact-form-wrapper.contact-form-two_column {
    grid-template-columns: minmax(0, 0.7fr) minmax(0, 1fr);
}

body :where(.contact-info, .contact-form-content) h2,
body :where(.contact-info, .contact-form-content) h3 {
    color: var(--a2a-ink);
    font-family: var(--a2a-font-display);
    font-size: clamp(2rem, 4vw, 4rem);
    line-height: 0.95;
    text-transform: uppercase;
}

body .form-field,
body .form-field-group {
    margin-bottom: 1.25rem;
}

body :where(.form-field label, .form-radio-group legend, .form-group-heading, .form-static-label) {
    display: block;
    margin: 0 0 0.45rem;
    color: var(--a2a-ink);
    font-family: var(--a2a-font-mono);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1.4;
    text-transform: uppercase;
}

body :where(
    .form-input,
    .form-textarea,
    .form-select,
    .form-field input:not([type="radio"]):not([type="checkbox"]),
    .form-field textarea,
    input[type="text"],
    input[type="email"],
    input[type="password"],
    input[type="number"],
    input[type="tel"],
    input[type="url"],
    input[type="search"],
    select,
    textarea
) {
    width: 100%;
    min-height: 3rem;
    padding: 0.75rem 0.85rem;
    border: 1px solid var(--a2a-rule);
    border-radius: 0;
    background: color-mix(in srgb, var(--a2a-paper) 86%, transparent);
    color: var(--a2a-ink);
    box-shadow: none;
    font-family: Arial, Helvetica, sans-serif;
}

body :where(
    .form-input,
    .form-textarea,
    .form-select,
    .form-field input,
    .form-field textarea,
    input,
    select,
    textarea
):focus {
    border-color: var(--a2a-accent);
    background: var(--a2a-paper);
    box-shadow: 0 0 0 1px var(--a2a-accent);
    outline: 0;
}

body textarea,
body .form-textarea {
    min-height: 9rem;
    resize: vertical;
}

body :where(input[type="checkbox"], input[type="radio"], .form-checkbox, .form-radio) {
    accent-color: var(--a2a-accent);
}

body :where(.form-helper-text, .form-group-description, .contact-description) {
    color: var(--a2a-muted);
    font-family: var(--a2a-font-editorial);
}

body :where(.form-error, .form-errors, .required) {
    color: var(--a2a-accent-strong);
}

body .form-success-message {
    padding: 1rem;
    border: 1px solid var(--a2a-ink);
    border-radius: 0;
    background: var(--a2a-paper-deep);
    color: var(--a2a-ink);
}

body .form-submit button,
body .custom-form button[type="submit"] {
    min-height: 3rem;
    padding: 0.75rem 1.2rem;
    border: 1px solid var(--a2a-ink);
    border-radius: 0;
    background: var(--a2a-ink);
    color: var(--a2a-paper);
    font-family: var(--a2a-font-mono);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    cursor: pointer;
}

body .form-submit button:hover,
body .custom-form button[type="submit"]:hover {
    border-color: var(--a2a-accent);
    background: var(--a2a-accent);
}

body .privacy-notice {
    padding: 1rem !important;
    border: 0 !important;
    border-left: 0.3rem solid var(--a2a-accent) !important;
    border-radius: 0 !important;
    background: var(--a2a-paper-deep) !important;
    color: var(--a2a-ink) !important;
}

/* Galleries, slideshows and lightbox */
.a2a-blocks :where(.gallery-grid, .gallery-masonry) {
    gap: clamp(0.65rem, 1.5vw, 1.25rem);
}

.a2a-blocks .gallery-item {
    overflow: hidden;
    margin: 0;
    border: 1px solid var(--a2a-rule);
    border-radius: 0;
    background: var(--a2a-paper-deep);
}

.a2a-blocks .gallery-item img {
    width: 100%;
    height: 100%;
    display: block;
    border-radius: 0;
    object-fit: cover;
    transition: transform 240ms ease, filter 240ms ease;
}

.a2a-blocks .gallery-item:hover {
    opacity: 1;
    transform: none;
}

.a2a-blocks .gallery-item:hover img {
    filter: saturate(0.78) contrast(1.04);
    transform: scale(1.015);
}

.a2a-blocks .gallery-scroll-wrapper {
    border-top: 1px solid var(--a2a-ink);
    border-bottom: 1px solid var(--a2a-ink);
}

.a2a-blocks .gallery-scroll-item {
    border-right: 1px solid var(--a2a-rule);
    border-radius: 0;
}

.a2a-blocks .slideshow-container {
    border: 1px solid var(--a2a-ink);
    border-radius: 0;
    background: var(--a2a-ink);
}

.a2a-blocks :where(.slideshow-arrow, .slideshow-dot) {
    border-radius: 0;
}

.a2a-blocks .slideshow-arrow {
    border: 1px solid var(--a2a-paper);
    background: var(--a2a-ink);
    color: var(--a2a-paper);
}

.a2a-blocks .slideshow-dot.active {
    background: var(--a2a-accent);
}

.a2a-blocks .embed-container {
    border: 1px solid var(--a2a-ink);
    background: var(--a2a-paper-deep);
}

body .lightbox {
    z-index: 100000;
    background: rgb(36 35 32 / 94%);
}

body .lightbox-image {
    border: 1px solid var(--a2a-paper);
    border-radius: 0;
    box-shadow: none;
}

body :where(.lightbox-close, .lightbox-prev, .lightbox-next) {
    border: 1px solid var(--a2a-paper);
    border-radius: 0;
    background: var(--a2a-ink);
    color: var(--a2a-paper);
}

body :where(.lightbox-close, .lightbox-prev, .lightbox-next):hover {
    border-color: var(--a2a-accent);
    background: var(--a2a-accent);
    color: var(--a2a-paper);
}

/* Footer */
.a2a-footer,
body .site-footer.a2a-footer {
    margin: 0;
    padding: 0;
    border: 0;
    border-top: 1px solid var(--a2a-ink);
    background: transparent;
    color: var(--a2a-ink);
    text-align: left;
}

.a2a-footer-columns {
    display: grid;
    grid-template-columns: repeat(var(--a2a-footer-columns, 3), minmax(0, 1fr));
    gap: clamp(2rem, 6vw, 6rem);
    margin: 0;
    padding-block: clamp(2.5rem, 5vw, 5rem);
    border-bottom: 1px solid var(--a2a-rule);
}

.a2a-footer-column {
    min-width: 0;
    padding: 0;
}

.a2a-footer-column > h2 {
    margin: 0 0 1rem;
    color: var(--a2a-muted);
    font-family: var(--a2a-font-mono);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    line-height: 1.4;
    text-transform: uppercase;
}

.a2a-footer :where(.footer-column, .footer-block) {
    min-width: 0;
    margin: 0;
}

.a2a-footer :where(.footer-column-title, .footer-block-title) {
    margin: 0 0 1rem;
    color: var(--a2a-muted);
    font-family: var(--a2a-font-mono);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    line-height: 1.4;
    text-transform: uppercase;
}

.a2a-footer :where(ul, .footer-menu-list, .footer-nav) {
    display: grid;
    justify-content: start;
    gap: 0.65rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.a2a-footer :where(li, .footer-menu-item) {
    margin: 0;
    padding: 0;
}

.a2a-footer :where(a, .footer-menu-item a, .footer-nav a) {
    color: var(--a2a-ink);
    font-family: var(--a2a-font-editorial);
    font-size: 1rem;
    line-height: 1.4;
    text-decoration: none;
}

.a2a-footer :where(a, .footer-menu-item a, .footer-nav a):hover {
    color: var(--a2a-accent);
}

.a2a-footer :where(p, .footer-block) {
    font-size: 1rem;
}

.a2a-footer-bottom {
    min-height: 5rem;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1.5rem;
    align-items: center;
    padding: 1.25rem 0;
    border: 0;
    color: var(--a2a-muted);
    font-family: var(--a2a-font-mono);
    font-size: 0.65rem;
    font-weight: 650;
    letter-spacing: 0.1em;
    line-height: 1.45;
    text-transform: uppercase;
}

.a2a-footer-bottom p,
.a2a-footer-bottom .powered-by {
    margin: 0;
    font: inherit;
}

.a2a-footer-bottom nav {
    display: flex;
    flex-wrap: wrap;
    gap: 0.8rem clamp(1rem, 2.4vw, 2.5rem);
}

.a2a-footer-bottom nav a,
.a2a-footer-bottom .a2a-colophon,
.a2a-footer-bottom .a2a-colophon a {
    font: inherit;
}

.a2a-footer-bottom .a2a-colophon > span {
    display: block;
    margin-top: 0.25rem;
}

.a2a-footer-bottom > :last-child {
    text-align: right;
}

/* Cookie controls, admin toolbar and inherited utilities */
body .cookie-settings-trigger {
    border: 1px solid var(--a2a-ink);
    border-radius: 0;
    background: var(--a2a-accent);
    color: var(--a2a-paper);
    box-shadow: 0.25rem 0.25rem 0 var(--a2a-ink);
}

body .cookie-consent-modal {
    background: rgb(36 35 32 / 72%);
    backdrop-filter: blur(2px);
}

body .cookie-modal-content {
    border: 1px solid var(--a2a-ink);
    border-radius: 0;
    background: var(--a2a-paper);
    color: var(--a2a-ink);
    box-shadow: 0.75rem 0.75rem 0 var(--a2a-ink);
}

body :where(.cookie-modal-header, .cookie-modal-footer) {
    border-color: var(--a2a-rule);
    background: var(--a2a-paper-deep);
}

body .cookie-modal-header h3 {
    color: var(--a2a-ink);
    font-family: var(--a2a-font-display);
    font-size: clamp(1.75rem, 4vw, 3rem);
    line-height: 1;
    text-transform: uppercase;
}

body .cookie-modal-close,
body .cookie-toggle-info {
    border-radius: 0;
    color: var(--a2a-ink);
}

body .cookie-category {
    border-color: var(--a2a-rule);
    border-radius: 0;
    background: transparent;
}

body .cookie-category-title h4 {
    color: var(--a2a-ink);
    font-family: var(--a2a-font-mono);
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

body .cookie-category-info,
body .cookie-intro {
    color: var(--a2a-muted);
    font-family: var(--a2a-font-editorial);
}

body .cookie-badge,
body .cookie-btn {
    border-radius: 0;
    font-family: var(--a2a-font-mono);
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

body .cookie-btn-primary {
    border-color: var(--a2a-accent);
    background: var(--a2a-accent);
    color: var(--a2a-paper);
}

body .cookie-btn-secondary {
    border-color: var(--a2a-ink);
    background: transparent;
    color: var(--a2a-ink);
}

body .cookie-btn-secondary:hover {
    background: var(--a2a-ink);
    color: var(--a2a-paper);
}

body .cookie-slider,
body input:checked + .cookie-slider {
    background: var(--a2a-accent);
}

body .cookie-policy-link {
    color: var(--a2a-accent);
}

body .admin-toolbar {
    border: 1px solid var(--a2a-paper);
    border-radius: 0;
    background: var(--a2a-ink);
    color: var(--a2a-paper);
    box-shadow: 0.35rem 0.35rem 0 var(--a2a-accent);
    font-family: var(--a2a-font-mono);
}

body .admin-toolbar-toggle,
body .admin-toolbar-btn {
    border-radius: 0;
    color: var(--a2a-paper);
    font-family: var(--a2a-font-mono);
    font-size: 0.68rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

body .admin-toolbar-btn:hover,
body .admin-toolbar-toggle:hover {
    background: var(--a2a-accent);
    color: var(--a2a-paper);
}

body .back-to-top {
    border: 1px solid var(--a2a-ink);
    border-radius: 0;
    background: var(--a2a-paper);
    color: var(--a2a-ink);
    box-shadow: 0.25rem 0.25rem 0 var(--a2a-ink);
}

body .back-to-top:hover {
    background: var(--a2a-accent);
    color: var(--a2a-paper);
}

@media (max-width: 74rem) {
    .a2a-home-hero-grid,
    .a2a-page-header {
        min-height: 0;
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .a2a-page-header {
        grid-template-areas:
            "kicker"
            "title"
            "deck";
    }

    .a2a-standfirst {
        max-width: 38rem;
        margin-top: 0;
    }

    .a2a-page-deck {
        max-width: 42rem;
    }

    .a2a-project {
        grid-template-columns: 3.1rem minmax(min-content, 0.8fr) minmax(10rem, 1fr) 1.4rem;
    }

    .a2a-content-grid {
        grid-template-columns: minmax(0, 1fr) minmax(13rem, 16rem);
        gap: clamp(2.5rem, 5vw, 5rem);
    }

    .a2a-blocks :where(.features-grid, .team-grid, .testimonials-grid, .news-events-grid, .stats-grid, .google-reviews-grid, .latest-posts-grid) {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 58rem) {
    .a2a-project-band,
    .a2a-project-band:nth-child(3n + 2),
    .a2a-project-band:nth-child(3n) {
        grid-template-columns: 1fr;
    }

    .a2a-project,
    .a2a-project + .a2a-project {
        min-height: 0;
        padding: 1.65rem clamp(1rem, 3vw, 1.5rem);
        border-left: 0;
    }

    .a2a-project + .a2a-project {
        border-top: 1px solid var(--a2a-rule);
    }

    .a2a-posts-grid {
        grid-template-columns: 1fr;
    }

    .a2a-post-card:nth-child(even) {
        border-left: 0;
    }

    .a2a-content-grid {
        grid-template-columns: 1fr;
    }

    .a2a-sidebar,
    .a2a-content-grid .sidebar {
        position: static;
        display: block;
        padding-top: 2.5rem;
        border-top: 1px solid var(--a2a-ink);
    }

    .a2a-footer-columns {
        grid-template-columns: repeat(auto-fit, minmax(min(16rem, 100%), 1fr));
    }

    .a2a-blocks .hero-split-grid,
    .a2a-blocks .two-columns-block .columns-grid,
    .a2a-blocks .three-columns-block .columns-grid,
    body .contact-form-wrapper.contact-form-two_column {
        grid-template-columns: 1fr;
    }

    .a2a-blocks .hero-split-media {
        min-height: 18rem;
    }
}

@media (max-width: 44rem) {
    :root,
    html[data-theme-mode="dark"],
    html.theme-dark {
        --a2a-gutter: 1rem;
    }

    .a2a-masthead {
        min-height: 4.25rem;
        grid-template-columns: 1fr auto;
        gap: 1rem;
    }

    .a2a-masthead .edition,
    .a2a-masthead > .edition {
        display: none;
    }

    .a2a-inner-nav {
        min-height: 4.25rem;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 1rem;
    }

    .a2a-menu-toggle {
        display: flex;
    }

    .a2a-menu-toggle.is-open .a2a-menu-toggle-mark,
    body.a2a-menu-open .a2a-menu-toggle-mark {
        transform: rotate(45deg);
    }

    .a2a-nav,
    .a2a-nav.site-nav {
        position: absolute;
        z-index: 1000;
        top: 100%;
        right: 0;
        left: 0;
        max-height: 0;
        display: block;
        overflow: hidden;
        padding: 0 var(--a2a-gutter);
        border-bottom: 0 solid var(--a2a-ink);
        background: var(--a2a-paper);
        opacity: 0;
        visibility: hidden;
        transition: max-height 240ms ease, opacity 160ms ease, visibility 160ms ease, padding 240ms ease, border-width 240ms ease;
    }

    body.a2a-menu-open .a2a-nav,
    .a2a-nav.is-open,
    .a2a-inner-nav.is-open .a2a-nav {
        max-height: min(75vh, 34rem);
        overflow-y: auto;
        padding-block: 0.75rem;
        border-bottom-width: 1px;
        opacity: 1;
        visibility: visible;
    }

    .a2a-nav ul,
    .a2a-nav .menu-list {
        display: grid;
        gap: 0;
    }

    .a2a-nav li,
    .a2a-nav .menu-item {
        border-bottom: 1px solid var(--a2a-rule);
    }

    .a2a-nav li:last-child,
    .a2a-nav .menu-item:last-child {
        border-bottom: 0;
    }

    .a2a-nav a {
        width: 100%;
        justify-content: space-between;
        padding: 0.8rem 0;
    }

    .a2a-nav .submenu,
    .a2a-nav .submenu .submenu {
        position: static;
        min-width: 0;
        display: none;
        padding: 0 0 0.5rem 0.85rem;
        border: 0;
        border-left: 1px solid var(--a2a-rule);
        background: transparent;
        box-shadow: none;
        opacity: 1;
        visibility: visible;
        transform: none;
    }

    .a2a-nav .submenu-open > .submenu {
        display: grid;
    }

    .a2a-nav .submenu li {
        border: 0;
    }

    .a2a-nav .submenu a {
        padding: 0.55rem 0.75rem;
        white-space: normal;
    }

    .a2a-home-title {
        font-size: clamp(2.75rem, 16.5vw, 6.9rem);
        line-height: 0.8;
        letter-spacing: -0.085em;
    }

    .a2a-catalog-heading {
        min-height: 4.25rem;
    }

    .a2a-catalog-heading p {
        max-width: 9rem;
    }

    .a2a-project {
        grid-template-columns: 2.75rem minmax(0, 1fr) 1.4rem;
        gap: 0.75rem;
    }

    .a2a-project h3 {
        font-size: clamp(2.35rem, 12vw, 3.7rem);
    }

    .a2a-project p,
    .a2a-project-description {
        grid-column: 2 / -1;
        padding-right: 1rem;
        font-size: 1.03rem;
    }

    .a2a-project-arrow {
        grid-column: 3;
        grid-row: 1;
    }

    .a2a-page-title,
    .a2a-article-title {
        font-size: clamp(3rem, 16vw, 5.75rem);
        line-height: 0.9;
    }

    .a2a-post-card {
        min-height: 14rem;
    }

    .a2a-post-card-link {
        grid-template-columns: 2.5rem minmax(0, 1fr) 1.35rem;
        gap: 0.8rem;
        padding: 1.5rem 1rem;
    }

    .a2a-post-navigation {
        grid-template-columns: 1fr;
    }

    .a2a-post-navigation > * + * {
        border-top: 1px solid var(--a2a-rule);
        border-left: 0;
    }

    .a2a-footer-columns,
    .a2a-footer-bottom,
    .a2a-blocks :where(.features-grid, .team-grid, .testimonials-grid, .news-events-grid, .stats-grid, .google-reviews-grid, .latest-posts-grid) {
        grid-template-columns: 1fr;
    }

    .a2a-footer-bottom {
        align-items: start;
    }

    .a2a-footer-bottom > :last-child {
        text-align: left;
    }

    .a2a-blocks .lp-list-item {
        grid-template-columns: 1fr;
    }

    .a2a-blocks :where(.latest-posts-header, .google-reviews-header) {
        display: grid;
        align-items: start;
    }

    body :where(.form-field-half, .form-field-one-third, .form-field-two-thirds) {
        width: 100%;
        grid-column: 1 / -1;
    }

    body .cookie-modal-content {
        box-shadow: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        animation-duration: 1ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 1ms !important;
    }
}

@media (forced-colors: active) {
    .a2a-kicker::before,
    .a2a-page-kicker::before,
    .a2a-project::after {
        forced-color-adjust: none;
    }

    a.a2a-project:focus-visible {
        outline: 2px solid CanvasText;
        outline-offset: -2px;
    }
}
