/*
 * AA Universal editorial presentation (0.6.0).
 *
 * Loaded only where an editorial component renders or a site opts into an
 * editorial setting (Assets::EDITORIAL_STYLE). Colors come exclusively from the
 * site's palette tokens; nothing here applies to sites at their defaults.
 */

/* Breadcrumb trail (Breadcrumbs). */
.aau-breadcrumbs { font-size: .875rem; line-height: 1.5; }
.aau-breadcrumbs__list { display: flex; flex-wrap: wrap; gap: .25rem .5rem; margin: 0; padding: 0; list-style: none; }
.aau-breadcrumbs__item { display: inline-flex; min-width: 0; align-items: baseline; gap: .5rem; overflow-wrap: anywhere; }
.aau-breadcrumbs__item + .aau-breadcrumbs__item::before { color: var(--aau-color-muted); content: "›"; content: "›" / ""; }
.aau-breadcrumbs a { color: inherit; }
.aau-breadcrumbs [aria-current] { color: var(--aau-color-muted); }

/* Shared post card and grid (Post_Card): 3 columns, 2 on tablets, 1 on phones. A grid
   shows media cards (3:2 image) when every post has a featured image, otherwise
   compact cards (aau-card--compact): bordered, without a media box. */
.aau-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.75rem, 3vw, 2.5rem) clamp(1rem, 2.5vw, 1.5rem); margin: 0; padding: 0; list-style: none; }
@media (max-width: 1023px) { .aau-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) { .aau-card-grid { grid-template-columns: minmax(0, 1fr); } }
.aau-card-grid__item { display: flex; min-width: 0; margin: 0; }
.aau-card { position: relative; display: flex; min-width: 0; flex: 1; flex-direction: column; gap: .625rem; }
.aau-card__media { overflow: hidden; margin-bottom: .25rem; aspect-ratio: 3 / 2; border-radius: 8px; background: var(--aau-color-surface); }
.aau-card__image { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 300ms ease; }
.aau-card__label { margin: 0; color: var(--aau-color-accent-ink, var(--aau-color-contrast)); font-size: .75rem; font-weight: 600; letter-spacing: .12em; line-height: 1.4; text-transform: uppercase; }
.aau-card__title { display: -webkit-box; overflow: hidden; margin: 0; font-size: clamp(1.125rem, 1.05rem + .35vw, 1.3125rem); line-height: 1.25; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; }
.aau-card__link { color: var(--aau-color-contrast); text-decoration: none; }
/* The title link is the card's only link; its hit area covers the whole card. */
.aau-card__link::after { position: absolute; z-index: 1; inset: 0; content: ""; }
.aau-card__excerpt { display: -webkit-box; overflow: hidden; margin: 0; color: var(--aau-color-muted); font-size: .9375rem; line-height: 1.5; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; }
.aau-card__meta { margin: auto 0 0; color: var(--aau-color-muted); font-size: .8125rem; }
.aau-card--compact { padding: 1.25rem 1.25rem 1.125rem; border: 1px solid var(--aau-color-border); border-radius: 8px; background: var(--aau-color-base); transition: border-color 160ms ease, box-shadow 160ms ease; }
/* The text fills the card; the reading time aligns at the bottom across a row. */
.aau-card--compact .aau-card__body { display: flex; flex: 1; flex-direction: column; gap: .5rem; }
@media (hover: hover) and (pointer: fine) {
	.aau-card:hover .aau-card__link { text-decoration: underline; text-underline-offset: .16em; }
	.aau-card:hover .aau-card__image { transform: scale(1.025); }
	.aau-card--compact:hover { border-color: color-mix(in srgb, var(--aau-color-contrast) 30%, var(--aau-color-border)); box-shadow: 0 4px 16px color-mix(in srgb, var(--aau-color-contrast) 8%, transparent); }
}
@supports selector(:has(*)) {
	.aau-card__link:focus-visible { outline: none; box-shadow: none; }
	.aau-card:has(.aau-card__link:focus-visible) { border-radius: 8px; outline: 3px solid var(--aau-color-focus-ring); outline-offset: 4px; box-shadow: 0 0 0 7px var(--aau-color-focus-halo); }
}

/*
 * Reading layout (article_layout = reading, body.aau-article-layout-reading).
 * Text runs in a ~680px measure; tables, figures, galleries, embeds and wide
 * blocks use ~1040px. theme.json widths stay unchanged for every other surface.
 */
.aau-article-layout-reading { --aau-measure: 42.5rem; --aau-measure-wide: 65rem; }
.aau-article-layout-reading .aau-single-post > :is(.aau-article, .aau-related, .aau-post-navigation, .wp-block-comments) { max-width: var(--aau-measure-wide); }
.aau-article-layout-reading .aau-single-post > .aau-post-header { max-width: var(--aau-measure); }
.aau-article-layout-reading .aau-article > * { max-width: var(--aau-measure); }
/* The reading type scale applies to the article's blocks, not to the post header (its
   first block), which keeps the page's type as before it moved into the article. The
   rule has no specificity, so it acts like inherited type: any rule for a block wins. */
:where(.aau-article-layout-reading .aau-article > :not(.aau-post-header)) { font-size: clamp(1.0625rem, .975rem + .3vw, 1.125rem); line-height: 1.65; }
.aau-article-layout-reading .aau-article > .wp-block-post-content { width: 100%; max-width: none; }
.aau-article-layout-reading .aau-article > .wp-block-post-content > :not(.alignleft, .alignright, .alignfull) { max-width: var(--aau-measure); margin-inline: auto; }
.aau-article-layout-reading .aau-article > .wp-block-post-content > :is(figure, .wp-block-gallery, .wp-block-embed, .wp-block-video, .alignwide):not(.alignleft, .alignright, .alignfull) { max-width: var(--aau-measure-wide); }
.aau-article-layout-reading .aau-article :is(h2, h3) { line-height: 1.25; }
.aau-article-layout-reading .aau-article h2 { margin-block: 2.25em .6em; font-size: clamp(1.5rem, 1.3rem + .8vw, 1.75rem); }
.aau-article-layout-reading .aau-article h3 { margin-block: 1.75em .5em; font-size: clamp(1.1875rem, 1.12rem + .3vw, 1.375rem); }
.aau-article-layout-reading .aau-article .wp-block-post-content > :first-child { margin-block-start: 0; }

/*
 * Tables in the reading layout (posts and pages). The scroll region that wraps every
 * core table (Content_Blocks) carries a rounded frame, so the overflow hint above
 * it and the sticky first column of an overflowing table keep working. Cells get
 * comfortable padding and row rules; the header row (and row headers) use the
 * surface tint; plain tables add subtle zebra rows. Rows are painted and first
 * cells inherit their row's color, so a sticky first cell is never see-through.
 * Header cells without an authored alignment start like the data cells instead
 * of the browser's centering; authored (for example numeric) alignment stays.
 * Tables with their own background, border color or inline style keep their look
 * (no frame, cells as authored); tables with their own text color get no zebra;
 * Stripes-style tables keep their stripes (no second zebra). Only tables wrapped
 * in the region are styled, so other figures (for example the bracelet size
 * chart shortcode) keep theme.css.
 */
.aau-article-layout-reading .wp-block-table > .aau-table-scroll:has(> table:not(.has-background, .has-border-color, [style])) { border: 1px solid var(--aau-color-border); border-radius: 8px; }
.aau-article-layout-reading .wp-block-table.is-style-stripes:has(> .aau-table-scroll) { border-bottom: 0; }
.aau-article-layout-reading .wp-block-table > .aau-table-scroll > table:not(.has-background, .has-border-color, [style]) :is(th, td) { padding: .75rem 1rem; border: 0; border-block-end: 1px solid var(--aau-color-border); }
.aau-article-layout-reading .wp-block-table > .aau-table-scroll > table:not(.has-background, .has-border-color, [style]) > :last-child > tr:last-child > * { border-block-end: 0; }
.aau-article-layout-reading .wp-block-table > .aau-table-scroll > table:not(.has-background, .has-border-color, [style]) th:not([data-align], [class*="has-text-align-"]) { text-align: start; }
.aau-article-layout-reading .wp-block-table > .aau-table-scroll > table:not(.has-background, .has-border-color, [style]) > :is(thead, tfoot) { border: 0; }
.aau-article-layout-reading .wp-block-table > .aau-table-scroll > table:not(.has-background, .has-border-color, [style]) > thead > tr { background-color: var(--aau-color-surface); }
.aau-article-layout-reading .wp-block-table > .aau-table-scroll > table:not(.has-background, .has-border-color, [style]) > thead > tr > :first-child { background-color: inherit; }
.aau-article-layout-reading .wp-block-table:not(.is-style-stripes) > .aau-table-scroll > table:not(.has-background, .has-border-color, .has-text-color, [style]) > tbody > tr { background-color: var(--aau-color-base); }
.aau-article-layout-reading .wp-block-table:not(.is-style-stripes) > .aau-table-scroll > table:not(.has-background, .has-border-color, .has-text-color, [style]) > tbody > tr:nth-child(even) { background-color: color-mix(in srgb, var(--aau-color-surface) 50%, var(--aau-color-base)); }
.aau-article-layout-reading .wp-block-table:not(.is-style-stripes) > .aau-table-scroll > table:not(.has-background, .has-border-color, .has-text-color, [style]) > tbody > tr > :first-child { background-color: inherit; }
.aau-article-layout-reading .wp-block-table > .aau-table-scroll > table:not(.has-background, .has-border-color, [style]) > tbody > tr > th:first-child { background-color: var(--aau-color-surface); }
.aau-article-layout-reading .wp-block-table:has(> .aau-table-scroll) > figcaption { margin-block-start: .625rem; color: var(--aau-color-muted); font-size: .875rem; line-height: 1.5; text-align: start; }

/*
 * Reading layout on pages (including topic hubs and the front page). The page
 * content forms a centered wide frame (--aau-measure-wide) shared with the page
 * hero: text runs in the reading measure from the frame's left edge; tables,
 * figures, galleries, embeds, columns, link tiles and wide blocks fill the frame;
 * full-width bands still bleed to the screen edges and constrain their content to
 * the frame. Body text and headings use the article's reading type scale.
 */
.aau-article-layout-reading .aau-page-content { font-size: clamp(1.0625rem, .975rem + .3vw, 1.125rem); line-height: 1.65; }
.aau-article-layout-reading .aau-page-content :is(h2, h3) { line-height: 1.25; }
.aau-article-layout-reading .aau-page-content h2 { font-size: clamp(1.5rem, 1.3rem + .8vw, 1.75rem); }
.aau-article-layout-reading .aau-page-content h3 { font-size: clamp(1.1875rem, 1.12rem + .3vw, 1.375rem); }
.aau-article-layout-reading .site-main > .aau-page-content > .wp-block-post-content > :not(.alignfull, .alignleft, .alignright) { max-width: var(--aau-measure); margin-inline: max(0px, (100% - var(--aau-measure-wide)) / 2) auto; }
.aau-article-layout-reading .site-main > .aau-page-content > .wp-block-post-content > :is(figure, .wp-block-table, .wp-block-gallery, .wp-block-embed, .wp-block-video, .wp-block-columns, .is-style-aau-link-tiles, .alignwide):not(.alignfull, .alignleft, .alignright) { max-width: var(--aau-measure-wide); margin-inline: auto; }
/* Only replaces WordPress's site-wide constrained width (bands without their own
   layout settings). Groups with a custom content width carry a `wp-container-*`
   class with WordPress's per-block layout rules and keep them; the rule stays
   weak, so components inside bands (such as the hero lead) keep their measure. */
.aau-article-layout-reading :where(.site-main > .aau-page-content > .wp-block-post-content > .alignfull.is-layout-constrained:not([class*="wp-container-"])) > :not(.alignfull) { max-width: var(--aau-measure-wide); }
.aau-article-layout-reading .aau-content-hero__inner { width: min(calc(100% - 2 * var(--aau-page-gutter)), var(--aau-measure-wide)); }
.aau-article-layout-reading .site-main > .aau-topic-posts { max-width: var(--aau-measure-wide); }

/*
 * Content Query Loops in the reading layout (posts and pages, for example a front
 * page's "Latest guides"). Their block-built cards (`aau-post-card` groups in a
 * post template) look like the shared compact cards: bordered, padded, equal
 * heights per row, title (three lines) and excerpt (two lines) on the card type
 * scale, the title link stretched over the card. A featured image shows at 3:2 on
 * top of its card (the block's own aspect ratio is an inline style, hence the
 * important; the explicit width, rather than a stretched width, lets WebKit
 * derive the height from the full card width); an empty featured-image wrapper is
 * not rendered. Grid templates get
 * 3/2/1 columns. Story cards (aau-story-card) and other sites keep their cards.
 */
.aau-article-layout-reading .wp-block-post-template.is-layout-grid:has(> li > .aau-post-card:not(.aau-story-card)) { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.75rem, 3vw, 2.5rem) clamp(1rem, 2.5vw, 1.5rem); }
@media (max-width: 1023px) { .aau-article-layout-reading .wp-block-post-template.is-layout-grid:has(> li > .aau-post-card:not(.aau-story-card)) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) { .aau-article-layout-reading .wp-block-post-template.is-layout-grid:has(> li > .aau-post-card:not(.aau-story-card)) { grid-template-columns: minmax(0, 1fr); } }
.aau-article-layout-reading .wp-block-post-template > li:has(> .aau-post-card:not(.aau-story-card)) { display: flex; min-width: 0; }
.aau-article-layout-reading .wp-block-post-template > li > .aau-post-card:not(.aau-story-card) { position: relative; display: flex; min-width: 0; flex: 1; flex-direction: column; gap: .5rem; margin: 0; padding: 1.25rem 1.25rem 1.125rem; border: 1px solid var(--aau-color-border); border-radius: 8px; background: var(--aau-color-base); transition: border-color 160ms ease, box-shadow 160ms ease; }
.aau-article-layout-reading .wp-block-post-template > li > .aau-post-card:not(.aau-story-card) > * { margin: 0; }
.aau-article-layout-reading .wp-block-post-template > li > .aau-post-card:not(.aau-story-card) > .wp-block-post-featured-image { overflow: hidden; flex: none; width: calc(100% + 2.5rem); max-width: none; margin: -1.25rem -1.25rem .25rem; aspect-ratio: 3 / 2 !important; border-radius: 7px 7px 0 0; }
.aau-article-layout-reading .wp-block-post-template > li > .aau-post-card:not(.aau-story-card) > .wp-block-post-featured-image:not(:has(img)) { display: none; }
/* List-layout loops: cards span the frame, so the image stays a 20rem thumbnail inside the padding. */
.aau-article-layout-reading .wp-block-post-template:not(.is-layout-grid) > li > .aau-post-card:not(.aau-story-card) > .wp-block-post-featured-image { width: min(100%, 20rem); margin: 0 0 .25rem; border-radius: 6px; }
.aau-article-layout-reading .wp-block-post-template > li > .aau-post-card:not(.aau-story-card) > .wp-block-post-featured-image :is(a, img) { display: block; width: 100%; height: 100%; }
.aau-article-layout-reading .wp-block-post-template > li > .aau-post-card:not(.aau-story-card) > .wp-block-post-featured-image img { object-fit: cover; }
.aau-article-layout-reading .wp-block-post-template > li > .aau-post-card:not(.aau-story-card) > .wp-block-post-title { display: -webkit-box; overflow: hidden; font-size: clamp(1.125rem, 1.05rem + .35vw, 1.3125rem); line-height: 1.25; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; }
.aau-article-layout-reading .wp-block-post-template > li > .aau-post-card:not(.aau-story-card) > .wp-block-post-title a { display: inline; color: var(--aau-color-contrast); text-decoration: none; }
/* The title link is the card's hit area (the image link has the same destination). */
.aau-article-layout-reading .wp-block-post-template > li > .aau-post-card:not(.aau-story-card) > .wp-block-post-title a::after { position: absolute; z-index: 1; inset: 0; content: ""; }
.aau-article-layout-reading .wp-block-post-template > li > .aau-post-card:not(.aau-story-card) > .wp-block-post-excerpt { color: var(--aau-color-muted); font-size: .9375rem; line-height: 1.5; }
.aau-article-layout-reading .wp-block-post-template > li > .aau-post-card:not(.aau-story-card) .wp-block-post-excerpt__excerpt { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; }
@media (hover: hover) and (pointer: fine) {
	.aau-article-layout-reading .wp-block-post-template > li > .aau-post-card:not(.aau-story-card):hover { border-color: color-mix(in srgb, var(--aau-color-contrast) 30%, var(--aau-color-border)); box-shadow: 0 4px 16px color-mix(in srgb, var(--aau-color-contrast) 8%, transparent); }
	.aau-article-layout-reading .wp-block-post-template > li > .aau-post-card:not(.aau-story-card):hover > .wp-block-post-title a { text-decoration: underline; text-underline-offset: .16em; }
}
.aau-article-layout-reading .wp-block-post-template > li > .aau-post-card:not(.aau-story-card) > .wp-block-post-title a:focus-visible { outline: none; box-shadow: none; }
.aau-article-layout-reading .wp-block-post-template > li > .aau-post-card:not(.aau-story-card):has(> .wp-block-post-title a:focus-visible) { outline: 3px solid var(--aau-color-focus-ring); outline-offset: 4px; box-shadow: 0 0 0 7px var(--aau-color-focus-halo); }

/* Editorial post header (aa-universal/post-header). */
.aau-post-header { display: grid; gap: .875rem; margin-block-end: clamp(2rem, 5vw, 3rem); }
.aau-post-header > * { margin: 0; }
.aau-post-header .aau-breadcrumbs { margin-block-end: .25rem; }
.aau-post-header__topic { font-size: .75rem; font-weight: 600; letter-spacing: .12em; line-height: 1.4; text-transform: uppercase; }
.aau-post-header__topic a { color: var(--aau-color-accent-ink, var(--aau-color-contrast)); text-decoration: none; }
.aau-post-header__topic a:hover { text-decoration: underline; }
.aau-post-header__title { max-width: 30ch; font-size: clamp(2rem, 1.45rem + 2.2vw, 2.75rem); letter-spacing: -.01em; line-height: 1.15; overflow-wrap: break-word; }
.aau-standfirst { max-width: 65ch; color: var(--aau-color-muted); font-size: clamp(1.125rem, 1.03rem + .4vw, 1.3125rem); line-height: 1.5; }
.aau-post-header__meta { padding-block-end: 1.25rem; border-bottom: 1px solid var(--aau-color-border); color: var(--aau-color-muted); font-size: .875rem; }
.aau-post-header__media { margin-block-start: .75rem; }
.aau-post-header__image { display: block; width: 100%; height: auto; border-radius: 10px; }
/* Phones: the H1 repeats the current page, so the trail shows only its ancestors,
   on one line; long ancestor names (never the home link) end in an ellipsis.
   `display: none` also removes the duplicate from the accessibility tree; the
   BreadcrumbList schema is unaffected. */
@media (max-width: 599px) {
	.aau-post-header .aau-breadcrumbs { min-width: 0; }
	.aau-post-header .aau-breadcrumbs__list { flex-wrap: nowrap; }
	.aau-post-header .aau-breadcrumbs__item { flex: 0 1 auto; overflow-wrap: normal; white-space: nowrap; }
	.aau-post-header .aau-breadcrumbs__item:first-child { flex-shrink: 0; }
	.aau-post-header .aau-breadcrumbs__item:last-child { display: none; }
	.aau-post-header .aau-breadcrumbs__item > :is(a, span) { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
}

/* Article footer (aa-universal/post-tags): the post's tags as a "Related topics" chip row. */
.aau-article > .aau-post-tags { display: flex; flex-wrap: wrap; align-items: center; gap: .625rem .75rem; margin-block-start: clamp(2rem, 5vw, 3rem); padding-block-start: 1.5rem; border-top: 1px solid var(--aau-color-border); }
.aau-post-tags__label { margin: 0; color: var(--aau-color-muted); font-size: .875rem; font-weight: 600; }
.aau-post-tags__list { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.aau-post-tags__item { margin: 0; }
.aau-post-tags__link { display: inline-flex; min-height: 2.25rem; align-items: center; padding: .25rem .875rem; border: 1px solid var(--aau-color-control-border, var(--aau-color-muted)); border-radius: 999px; color: var(--aau-color-contrast); font-size: .875rem; line-height: 1.3; text-decoration: none; }
.aau-post-tags__link:hover { background: var(--aau-color-surface); text-decoration: underline; text-underline-offset: .16em; }
.aau-post-tags__link:focus-visible { outline: 3px solid var(--aau-color-focus-ring); outline-offset: 2px; }

/* Sources (aa-universal/post-sources): the external links the article cites, as a numbered
   list after the text; its heading is a small caption (written after the reading layout's
   H2 rule of equal specificity, which it overrides). */
.aau-article > .aau-post-sources { margin-block-start: clamp(2rem, 5vw, 3rem); padding-block-start: 1.5rem; border-top: 1px solid var(--aau-color-border); }
.aau-post-sources > h2.aau-post-sources__title { margin: 0 0 .75rem; color: var(--aau-color-muted); font-family: var(--aau-font-body, inherit); font-size: .8125rem; font-weight: 600; letter-spacing: .12em; line-height: 1.4; text-transform: uppercase; }
.aau-post-sources__list { margin: 0; padding-inline-start: 1.5rem; color: var(--aau-color-muted); font-size: .9375rem; line-height: 1.55; }
.aau-post-sources__item { margin: 0; padding-inline-start: .25rem; overflow-wrap: anywhere; }
.aau-post-sources__item + .aau-post-sources__item { margin-block-start: .375rem; }
.aau-post-sources__link { color: var(--aau-color-contrast); text-underline-offset: .16em; }
.aau-post-sources__host { font-size: .875rem; }

/* Key facts (Key_Facts, reading layout): an authored "Key facts" heading and its list as one
   surface box in the text column. The heading is a small uppercase label, the list a compact
   bullet list (both written after the reading layout's heading and text rules of equal
   specificity, which they override). */
.aau-article-layout-reading .aau-key-facts { margin-block: clamp(1.75rem, 4vw, 2.5rem); padding: clamp(1.125rem, 3vw, 1.5rem) clamp(1.25rem, 3vw, 1.75rem); border: 1px solid var(--aau-color-border); border-radius: 8px; background: var(--aau-color-surface); }
.aau-article-layout-reading .aau-key-facts > :is(h2, h3, h4) { margin: 0 0 .75rem; color: var(--aau-color-muted); font-family: var(--aau-font-body, inherit); font-size: .8125rem; font-weight: 600; letter-spacing: .12em; line-height: 1.4; text-transform: uppercase; }
.aau-article-layout-reading .aau-key-facts > :is(ul, ol) { margin: 0; padding-inline-start: 1.25rem; font-size: 1rem; line-height: 1.55; }
.aau-article-layout-reading .aau-key-facts > :is(ul, ol) > li { margin: 0; padding-inline-start: .25rem; }
.aau-article-layout-reading .aau-key-facts > :is(ul, ol) > li + li { margin-block-start: .5rem; }

/* Related posts (aa-universal/related-posts). */
.aau-related { margin-block-start: clamp(3rem, 7vw, 5rem); }
.aau-related__title { margin: 0 0 1.5rem; font-size: clamp(1.5rem, 1.3rem + .8vw, 1.75rem); line-height: 1.25; }
.aau-related__all { margin: 1.75rem 0 0; font-weight: 600; }
.aau-related__all a { color: var(--aau-color-contrast); text-underline-offset: .16em; }

/*
 * Table of contents (aa-universal/table-of-contents): a disclosure after the post
 * header below 1200px, a sticky rail beside the text from 1200px. The post header
 * is the article's first child, so the rail's grid area starts level with the
 * breadcrumb and the rail is on the first screen. Wide blocks extend to the
 * right, away from the rail, so the rail is never covered.
 */
.aau-has-toc { --aau-toc-width: 15rem; --aau-toc-gap: 3rem; }
.aau-toc { margin-block-end: clamp(1.5rem, 4vw, 2.25rem); font-size: .9375rem; line-height: 1.45; }
.aau-toc__details { border: 1px solid var(--aau-color-border); border-radius: 8px; background: var(--aau-color-surface); }
.aau-toc__summary { display: flex; min-height: 44px; align-items: center; justify-content: space-between; gap: 1rem; padding: .625rem 1rem; border-radius: 8px; cursor: pointer; font-weight: 600; list-style: none; }
.aau-toc__summary::-webkit-details-marker { display: none; }
.aau-toc__summary::after { width: .5rem; height: .5rem; flex: 0 0 auto; border-block-end: 2px solid currentColor; border-inline-end: 2px solid currentColor; content: ""; transform: translateY(-25%) rotate(45deg); transition: transform 160ms ease; }
.aau-toc__details[open] > .aau-toc__summary::after { transform: translateY(25%) rotate(-135deg); }
.aau-toc__summary:focus-visible { outline: 3px solid var(--aau-color-focus-ring); outline-offset: 2px; }
.aau-toc__title { display: none; }
.aau-toc__list { margin: 0; padding: 0 1rem 1rem; list-style: none; }
.aau-toc__link { display: block; padding: .375rem 0 .375rem .875rem; border-inline-start: 2px solid var(--aau-color-border); color: var(--aau-color-muted); text-decoration: none; }
.aau-toc__link:hover { color: var(--aau-color-contrast); text-decoration: underline; }
.aau-toc__link[aria-current] { border-inline-start-color: var(--aau-color-accent); color: var(--aau-color-contrast); font-weight: 600; }
@media (min-width: 1200px) {
	.aau-has-toc .aau-single-post > .aau-article { display: grid; grid-template-columns: var(--aau-toc-width) var(--aau-toc-gap) minmax(0, 1fr); align-items: start; }
	.aau-has-toc .aau-single-post > .aau-article > * { grid-column: 3 / -1; width: 100%; }
	.aau-has-toc .aau-single-post > .aau-article > .wp-block-post-content { margin-block-start: 0; }
	/* Rows 1-2: the post header and the content (in templates saved from 0.6.0, whose
	   header precedes the article, the content and the category line). */
	.aau-has-toc .aau-single-post > .aau-article > .aau-toc { position: sticky; top: calc(var(--aau-header-top, 0px) + var(--aau-header-height, 69px) + 1.5rem); max-height: calc(100vh - var(--aau-header-top, 0px) - var(--aau-header-height, 69px) - 3rem); overflow-y: auto; grid-column: 1; grid-row: 1 / span 2; margin: 0; }
	.aau-toc--rail .aau-toc__details { border: 0; background: none; }
	.aau-toc--rail .aau-toc__summary { display: none; }
	.aau-toc--rail .aau-toc__title { display: block; margin: 0 0 .75rem; color: var(--aau-color-muted); font-size: .75rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
	.aau-toc--rail .aau-toc__list { padding: 0; }
	/* Reading layout: the text column starts beside the rail and every section of the
	   post aligns with it; wide blocks extend to the right. The header selectors
	   keep templates saved from 0.6.0 (header before the article) aligned. */
	.aau-article-layout-reading.aau-has-toc .aau-single-post > :is(.aau-article, .aau-post-header, .aau-related, .aau-post-navigation, .wp-block-comments) { max-width: calc(var(--aau-toc-width) + var(--aau-toc-gap) + var(--aau-measure-wide)); }
	.aau-article-layout-reading.aau-has-toc .aau-single-post > :is(.aau-post-header, .aau-related, .aau-post-navigation, .wp-block-comments) { padding-inline-start: calc(var(--aau-toc-width) + var(--aau-toc-gap)); }
	.aau-article-layout-reading.aau-has-toc .aau-post-header > * { max-width: var(--aau-measure); }
	/* Children fill the text column; WordPress's important auto margins then cannot center them. */
	.aau-article-layout-reading.aau-has-toc .aau-single-post > .aau-article > :not(.aau-toc) { max-width: none; }
	/* The text column is its own track (the measure) beside the wide extension, so the chip
	   row (text, top rule) ends with the text: WordPress's important auto margins on
	   constrained children rule out a max-width with start alignment here. */
	.aau-article-layout-reading.aau-has-toc .aau-single-post > .aau-article { grid-template-columns: var(--aau-toc-width) var(--aau-toc-gap) minmax(0, var(--aau-measure)) minmax(0, 1fr); }
	.aau-article-layout-reading.aau-has-toc .aau-single-post > .aau-article > :is(.aau-post-sources, .aau-post-tags) { grid-column: 3; }
	.aau-article-layout-reading.aau-has-toc .aau-article > .wp-block-post-content > :not(.alignleft, .alignright, .alignfull) { margin-inline: 0 auto; }
}

/*
 * Compact content hero (page_hero_style = compact; listings of editorial sites):
 * no minimum-height band, titles on the type scale (topic hubs 52/36px, other
 * surfaces 44/32px) and at most ~360px tall at 1440px including the intro
 * (topic hubs: the plugin-provided intro paragraph under the title).
 */
.aau-content-hero--compact { min-height: 0; margin-bottom: clamp(1.75rem, 4vw, 3rem); }
.aau-content-hero--compact .aau-content-hero__inner { padding-block: clamp(2rem, 4vw, 3rem); }
.aau-content-hero--compact .aau-breadcrumbs { margin-bottom: 1rem; }
.aau-content-hero--compact h1 { max-width: 30ch; font-size: clamp(2rem, 1.45rem + 2.2vw, 2.75rem); letter-spacing: -.01em; line-height: 1.15; hyphens: manual; }
.aau-content-hero--compact.aau-content-hero--topic h1 { font-size: clamp(2.25rem, 1.55rem + 2.8vw, 3.25rem); }
.aau-content-hero--compact :is(.aau-content-hero__intro, .aau-content-hero__meta, .aau-content-hero__description) { max-width: 65ch; margin-top: .75rem; font-size: clamp(1rem, .95rem + .3vw, 1.125rem); line-height: 1.55; }
/* A topic hub's intro (aa_universal_page_intro): one muted lead paragraph under the title. */
.aau-content-hero--compact .aau-content-hero__intro { margin-bottom: 0; }
.aau-content-hero--compact:not(.aau-content-hero--image) .aau-content-hero__intro { color: var(--aau-color-muted); }
.aau-content-hero--compact .aau-content-hero__description > * { margin-block: 0; }
.aau-content-hero--compact .aau-content-hero__description > * + * { margin-block-start: .75em; }

/* Hand-picked post cards (aa-universal/post-cards): a section heading above the shared
   card grid; a wide block, so it fills the reading frame on pages. */
.aau-post-cards { margin-block: clamp(2.5rem, 6vw, 4rem); }
.aau-post-cards__title { margin: 0 0 1.5rem; font-size: clamp(1.5rem, 1.3rem + .8vw, 1.75rem); line-height: 1.25; }
h3.aau-post-cards__title { font-size: clamp(1.1875rem, 1.12rem + .3vw, 1.375rem); }

/* Latest articles (Latest_Articles): a lead card (feature) or day headings each followed by
   that day's card grid (timeline); the cards are the shared Post_Card. A day heading is a
   short date label with a rule that runs to the end of the row. */
.aau-latest-articles { margin-block: clamp(2.5rem, 6vw, 4rem); }
.aau-latest-articles__title { margin: 0 0 1.5rem; font-size: clamp(1.5rem, 1.3rem + .8vw, 1.75rem); line-height: 1.25; }
h3.aau-latest-articles__title { font-size: clamp(1.1875rem, 1.12rem + .3vw, 1.375rem); }
.aau-latest-articles__lead { display: flex; }
.aau-latest-articles__lead + .aau-card-grid { margin-block-start: clamp(1.5rem, 3vw, 2rem); }
.aau-card--feature.aau-card--compact { padding: clamp(1.5rem, 4vw, 2.25rem); background: var(--aau-color-surface); }
/* Element-qualified, so the reading layout's heading scale (.aau-page-content h3, earlier in this file) does
   not override them. Day headings are short labels in the body font, like the other small labels here. */
.aau-card--feature :is(h2, h3, h4).aau-card__title { font-size: clamp(1.375rem, 1.2rem + .9vw, 1.75rem); -webkit-line-clamp: 4; line-clamp: 4; }
.aau-card--feature .aau-card__excerpt { display: block; max-width: var(--aau-measure, 42.5rem); font-size: clamp(1rem, .97rem + .15vw, 1.0625rem); -webkit-line-clamp: unset; line-clamp: none; }
.aau-latest-articles :is(h2, h3, h4).aau-latest-articles__day { display: flex; align-items: center; gap: .75rem; margin: clamp(1.75rem, 4vw, 2.5rem) 0 1rem; color: var(--aau-color-muted); font-family: var(--aau-font-body, inherit); font-size: .875rem; font-weight: 600; letter-spacing: .04em; line-height: 1.4; }
.aau-latest-articles__day::after { flex: 1; border-block-start: 1px solid var(--aau-color-border); content: ""; }
.aau-latest-articles__title + :is(h2, h3, h4).aau-latest-articles__day, .aau-latest-articles > :is(h2, h3, h4).aau-latest-articles__day:first-child { margin-block-start: 0; }
.aau-latest-articles__links { display: flex; flex-wrap: wrap; gap: .25rem 1.5rem; margin: clamp(1.5rem, 3vw, 2rem) 0 0; padding: 0; list-style: none; }
.aau-latest-articles__links-item { margin: 0; }
.aau-latest-articles__link { display: inline-block; padding-block: .375rem; color: var(--aau-color-contrast); font-weight: 600; line-height: 1.4; text-underline-offset: .16em; }

/* Topic hub grid (aa-universal/topic-posts). */
.aau-topic-posts { margin-block-start: clamp(3rem, 7vw, 5rem); }
.aau-topic-posts__title { margin: 0 0 1.5rem; font-size: clamp(1.5rem, 1.3rem + .8vw, 1.75rem); line-height: 1.25; }

/* Card listings of editorial sites (archives, search, blog index). */
.aau-editorial-listing .aau-search-page__content > .wp-block-search { margin-block-end: clamp(1.75rem, 3vw, 2.5rem); }
.aau-editorial-listing .wp-block-post-template.is-layout-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.75rem, 3vw, 2.5rem) clamp(1rem, 2.5vw, 1.5rem); }
.aau-editorial-listing .wp-block-post-template.is-layout-grid > li { display: flex; min-width: 0; }
@media (max-width: 1023px) { .aau-editorial-listing .wp-block-post-template.is-layout-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) { .aau-editorial-listing .wp-block-post-template.is-layout-grid { grid-template-columns: minmax(0, 1fr); } }
