/* Scoped library composition. Brand, font, spacing and radii come from AMP. */
.lib-page {
 --lib-ink: var(--wp--preset--color--dark);
 --lib-accent: var(--wp--preset--color--primary);
 --lib-muted: var(--wp--custom--surface--muted);
 --lib-line: var(--wp--custom--border--color);
 --lib-soft: var(--wp--preset--color--soft);
 color: var(--wp--preset--color--body-text);
 background: var(--wp--preset--color--white);
 padding-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--80);
}
.lib-page .lib-shell { inline-size: min(calc(100% - 2 * var(--wp--custom--layout--gutter)), var(--wp--style--global--wide-size)); max-inline-size: var(--wp--style--global--wide-size); margin-inline: auto; }
.lib-page :where(.lib-card, .lib-hero, .lib-panel, .lib-reading-column, .lib-archive-main, .lib-sidebar) { min-inline-size: 0; }
.lib-page :where(h1, h2, h3, h4) { color: var(--lib-ink); text-wrap: balance; }
.lib-page :where(.lib-hero h1, .lib-post-header h1) { font-size: clamp(1.9rem, 3.2vw, 3rem); line-height: 1.35; margin-block: var(--wp--preset--spacing--30); }
.lib-page :where(a, button, summary, select, input):focus-visible { outline: 2px solid var(--lib-accent); outline-offset: 4px; }
.lib-breadcrumbs { display: flex; flex-wrap: wrap; gap: .5rem; font-size: var(--wp--preset--font-size--small); color: var(--lib-muted); margin-block-end: var(--wp--preset--spacing--40); }
.lib-breadcrumbs > * + *::before { content: '‹'; margin-inline-end: .5rem; }
.lib-breadcrumbs a { color: inherit; text-decoration: none; }
.lib-caption, .lib-dates, .lib-author small { font-size: var(--wp--preset--font-size--small); color: var(--lib-muted); }
.lib-lead { font-size: var(--wp--preset--font-size--large); line-height: 1.85; }
.lib-hero { border: 1px solid var(--lib-line); border-radius: var(--wp--custom--radius--medium); background: linear-gradient(115deg, var(--wp--preset--color--white), var(--lib-soft)); overflow: hidden; margin-block-end: var(--wp--preset--spacing--50); }
.lib-hero-copy { padding: var(--wp--preset--spacing--60); }
.lib-hero-with-image { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); align-items: stretch; }
.lib-hero figure { margin: 0; min-block-size: 16rem; }
.lib-hero figure img { display: block; inline-size: 100%; block-size: 100%; object-fit: cover; }
.lib-term-strip { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--20); margin-block: var(--wp--preset--spacing--50); }
.lib-chip { display: inline-flex; align-items: center; max-inline-size: 100%; min-block-size: 30px; padding: .3rem .75rem; border-radius: var(--wp--custom--radius--pill); background: var(--lib-soft); color: var(--lib-accent); text-decoration: none; font-size: var(--wp--preset--font-size--small); line-height: 1.4; }
.lib-chip:hover { background: color-mix(in srgb, var(--lib-accent) 12%, white); }
.lib-search { display: flex; gap: .5rem; padding: var(--wp--preset--spacing--30); margin-block: var(--wp--preset--spacing--40); border: 1px solid var(--lib-line); border-radius: var(--wp--custom--radius--small); background: var(--lib-soft); }
.lib-search input { flex: 1; min-inline-size: 0; border: 0; border-radius: .4rem; padding: .7rem; font: inherit; background: white; }
.lib-page :where(.lib-button, .lib-search button) { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-block-size: 44px; padding: .65rem 1rem; border: 0; border-radius: var(--wp--custom--radius--small); background: var(--lib-accent); color: white; font: inherit; text-decoration: none; cursor: pointer; }
.lib-page :where(.lib-button, .lib-search button):hover { background: var(--wp--preset--color--primary-hover); color: white; }
.lib-toolbar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--wp--preset--spacing--40); margin-block: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40); }
.lib-toolbar h2 { margin: 0; font-size: var(--wp--preset--font-size--heading-small); }
.lib-toolbar form { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; font-size: var(--wp--preset--font-size--small); }
.lib-page :where(.lib-toolbar button, .lib-toolbar select, .lib-actions button) { min-block-size: 44px; padding: .5rem .7rem; border: 1px solid var(--lib-line); border-radius: var(--wp--custom--radius--small); background: white; color: var(--lib-accent); font: inherit; }
.lib-toolbar button, .lib-actions button { cursor: pointer; }
.lib-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--wp--preset--spacing--40); }
.lib-card { display: flex; flex-direction: column; border: 1px solid var(--lib-line); border-radius: var(--wp--custom--radius--small); overflow: hidden; background: white; }
.lib-card-image { display: block; aspect-ratio: 16 / 10; overflow: hidden; }
.lib-card-image img { display: block; inline-size: 100%; block-size: 100%; object-fit: cover; }
.lib-card-copy { display: flex; flex-direction: column; align-items: flex-start; flex: 1; gap: var(--wp--preset--spacing--30); padding: var(--wp--preset--spacing--40); }
.lib-card-copy > * { margin: 0; }
.lib-card h2 { font-size: clamp(1.15rem, 1.4vw, 1.35rem); line-height: 1.5; }
.lib-card h2 a { color: inherit; text-decoration: none; }
.lib-card h2 a:hover { color: var(--lib-accent); text-decoration: underline; }
.lib-card-copy > p { font-size: var(--wp--preset--font-size--body); line-height: 1.75; color: var(--lib-muted); }
.lib-card .lib-author { margin-block-start: auto; padding-block-start: .25rem; }
.lib-card .lib-dates { inline-size: 100%; justify-content: space-between; }
.lib-card-featured { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); direction: ltr; margin-block: var(--wp--preset--spacing--50); }
.lib-card-featured > * { direction: rtl; }
.lib-card-featured .lib-card-image { aspect-ratio: auto; min-block-size: 19rem; }
.lib-card-featured .lib-card-copy { padding: var(--wp--preset--spacing--50); }
.lib-card-featured h2 { font-size: var(--wp--preset--font-size--heading-small); }
.lib-card-featured.lib-card-no-image { grid-template-columns: minmax(0, 1fr); }
.lib-featured-label { padding: .3rem .7rem; border-radius: var(--wp--custom--radius--pill); background: var(--wp--custom--surface--orange-soft); color: var(--lib-ink); font-size: var(--wp--preset--font-size--small); }
.lib-author { display: flex; align-items: center; gap: var(--wp--preset--spacing--30); }
.lib-author > div { min-inline-size: 0; }
.lib-author :where(strong, small, .lib-caption) { display: block; }
.lib-author strong { font-size: var(--wp--preset--font-size--small); color: var(--lib-ink); }
.lib-author strong a { color: inherit; text-decoration: none; }
.lib-avatar { flex: 0 0 44px; inline-size: 44px; block-size: 44px; border-radius: 50%; object-fit: cover; }
.lib-dates { display: flex; flex-wrap: wrap; align-items: center; gap: var(--wp--preset--spacing--30); }
.lib-dates time { display: inline-block; }
.lib-pagination { margin-block-start: var(--wp--preset--spacing--60); }
.lib-pagination .page-numbers { display: flex; flex-wrap: wrap; justify-content: center; gap: .4rem; margin: 0; padding: 0; list-style: none; }
.lib-pagination :where(a, span).page-numbers { display: grid; place-items: center; min-inline-size: 44px; min-block-size: 44px; padding: .4rem .6rem; border: 1px solid var(--lib-line); border-radius: .5rem; text-decoration: none; color: var(--lib-accent); }
.lib-pagination .current { background: var(--lib-accent); color: white; }
.lib-archive-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--wp--preset--spacing--50); }
.lib-panel, .lib-page .amp-article-toc { padding: var(--wp--preset--spacing--40); border: 1px solid var(--lib-line); border-radius: var(--wp--custom--radius--small); background: white; box-shadow: none; }
.lib-panel h2, .lib-page .amp-article-toc-title { margin: 0 0 var(--wp--preset--spacing--40); font-size: var(--wp--preset--font-size--heading-small); font-weight: 700; }
.lib-panel p { font-size: var(--wp--preset--font-size--body); line-height: 1.8; }
.lib-service, .lib-join { background: linear-gradient(135deg, white, var(--lib-soft)); }
.lib-panel .lib-button { inline-size: 100%; }
.lib-sidebar-panels, .lib-single-extras { display: flex; flex-direction: column; gap: var(--wp--preset--spacing--40); }
.lib-selected { list-style: none; margin: 0; padding: 0; }
.lib-selected li + li { margin-block-start: var(--wp--preset--spacing--40); }
.lib-selected a { display: flex; align-items: center; gap: .75rem; color: var(--lib-ink); text-decoration: none; font-size: var(--wp--preset--font-size--small); }
.lib-selected img { inline-size: 4rem; block-size: 3.5rem; object-fit: cover; border-radius: .5rem; flex-shrink: 0; }
.lib-empty { grid-column: 1 / -1; padding: var(--wp--preset--spacing--60); border: 1px solid var(--lib-line); border-radius: var(--wp--custom--radius--small); }
.lib-page .lib-single-layout.amp-article-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--wp--preset--spacing--50); }
.lib-reading-column { margin: 0; }
.lib-post-header { margin-block-end: var(--wp--preset--spacing--60); }
.lib-post-meta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--wp--preset--spacing--40); margin-block: var(--wp--preset--spacing--50); }
.lib-post-image { margin: var(--wp--preset--spacing--50) 0 0; overflow: hidden; border-radius: var(--wp--custom--radius--medium); }
.lib-post-image img { display: block; inline-size: 100%; block-size: auto; max-block-size: 34rem; object-fit: cover; }
/* Direct prose only: Gutenberg tables, comparisons, notices and custom patterns retain their own designs. */
.lib-page .lib-article-body.wp-block-post-content { font-size: var(--wp--preset--font-size--large); line-height: var(--wp--custom--reading--line-height); }
.lib-page .lib-article-body.wp-block-post-content > :where(p, ul, ol) { max-inline-size: none; inline-size: 100%; }
.lib-page .lib-article-body > :where(h2, h3, h4) { scroll-margin-block-start: 8rem; line-height: 1.5; }
.lib-page .lib-article-body > h2 { font-size: var(--wp--preset--font-size--heading-small); margin-block: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40); }
.lib-page .lib-article-body > h2::after { display: none; }
.lib-article-body > p a { text-decoration: underline; text-underline-offset: .2em; }
.lib-article-body .lib-article-end { margin-block-start: var(--wp--preset--spacing--60); }
.lib-end-section { margin-block: var(--wp--preset--spacing--60); }
.lib-page .lib-end-section > h2 { font-size: var(--wp--preset--font-size--heading-small); margin-block: 0 var(--wp--preset--spacing--40); }
.lib-resources { padding: var(--wp--preset--spacing--40); border: 1px solid var(--lib-line); border-radius: var(--wp--custom--radius--small); background: var(--lib-soft); }
.lib-resources > ul { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); gap: var(--wp--preset--spacing--30); list-style: none; padding: 0; margin: 0; }
.lib-resources .lib-file { display: flex; align-items: flex-start; gap: .75rem; padding: var(--wp--preset--spacing--30); border: 1px solid var(--lib-line); border-radius: .5rem; background: white; margin: 0; }
.lib-file > div { min-inline-size: 0; }
.lib-file-icon { flex-shrink: 0; padding: .4rem; font-size: .75rem; font-weight: 700; border: 1px solid currentColor; border-radius: .25rem; color: var(--lib-accent); }
.lib-page .lib-file h3 { font-size: var(--wp--preset--font-size--body); line-height: 1.6; margin: 0; }
.lib-file :where(small, p, a) { font-size: var(--wp--preset--font-size--small); }
.lib-file a { display: inline-flex; align-items: center; min-block-size: 44px; }
.lib-file p { margin: .5rem 0; }
.lib-actions { display: flex; gap: var(--wp--preset--spacing--30); }
.lib-actions button { flex: 1; }
.lib-share-status:empty { display: none; }
.lib-page .amp-article-toc ol { padding-inline: 1.25rem 0; margin-block: 0; }
.lib-page .amp-article-toc > ol > li > a::before { display: none; }
.lib-page .amp-article-toc li { margin-block: .25rem; }
.lib-page .amp-article-toc a { display: block; padding: .55rem .5rem; border-radius: .5rem; color: var(--lib-ink); font-size: var(--wp--preset--font-size--small); line-height: 1.65; text-decoration: none; }
.lib-page .amp-article-toc a[aria-current="location"] { background: var(--lib-soft); color: var(--lib-accent); font-weight: 700; }
.lib-page .amp-article-toc ol ol { border-inline-start: 1px solid var(--lib-line); }
.lib-page :where(.lib-toc-disclosure, .lib-sidebar-disclosure) > summary { min-block-size: 44px; padding: .7rem 1rem; border: 1px solid var(--lib-line); border-radius: var(--wp--custom--radius--small); background: var(--lib-soft); color: var(--lib-accent); font-weight: 700; cursor: pointer; }
.lib-page :where(.lib-toc-disclosure, .lib-sidebar-disclosure)[open] > summary { margin-block-end: var(--wp--preset--spacing--40); }
.lib-sidebar > * + * { margin-block-start: var(--wp--preset--spacing--40); }
@media (min-width: 64.01rem) {
 .lib-archive-layout.lib-has-sidebar { grid-template-columns: minmax(0, 1fr) var(--wp--custom--reading--sidebar-width); align-items: start; }
 .lib-archive-layout.lib-sidebar-right { grid-template-columns: var(--wp--custom--reading--sidebar-width) minmax(0, 1fr); }
 .lib-archive-layout.lib-sidebar-right .lib-sidebar { grid-column: 1; grid-row: 1; }
 .lib-archive-layout.lib-sidebar-right .lib-archive-main { grid-column: 2; }
 .lib-page .lib-single-layout[data-sidebar="left"] { grid-template-columns: minmax(0, 1fr) var(--wp--custom--reading--sidebar-width); grid-template-areas: 'main side'; }
 .lib-page .lib-single-layout[data-sidebar="right"] { grid-template-columns: var(--wp--custom--reading--sidebar-width) minmax(0, 1fr); grid-template-areas: 'side main'; }
 .lib-single-layout[data-sidebar] > .lib-reading-column { grid-area: main; }
 .lib-page .lib-single-layout > .amp-article-sidebar { display: block; grid-area: side; margin: 0; }
 .lib-page .lib-sidebar.is-sticky, .ampmici-archive-sidebar-sticky .lib-sidebar { position: sticky; inset-block-start: 7rem; max-block-size: calc(100dvh - 8rem); overflow-y: auto; overscroll-behavior: contain; }
 .lib-sidebar :where(.lib-toc-disclosure, .lib-sidebar-disclosure) > summary { display: none; }
}
@media (max-width: 64rem) {
 .lib-page .lib-single-layout.amp-article-layout { grid-template-columns: minmax(0, 1fr); grid-template-areas: none; }
 .lib-page .lib-single-layout > .amp-article-sidebar { display: block; position: static; grid-area: auto; order: 2; }
 .lib-single-layout > .lib-reading-column { order: 1; }
 .lib-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
 .lib-sidebar { position: static; }
 .lib-sidebar-disclosure:not([open]) > :not(summary), .lib-toc-disclosure:not([open]) > :not(summary) { display: none; }
 .lib-toc-slot:not(:empty) { margin-block-end: var(--wp--preset--spacing--50); }
}
@media (max-width: 40rem) {
 .lib-card-grid, .lib-card-featured, .lib-hero-with-image { grid-template-columns: minmax(0, 1fr); }
 .lib-card-featured .lib-card-image { aspect-ratio: 16 / 9; min-block-size: 0; }
 .lib-hero figure { min-block-size: 0; aspect-ratio: 16 / 9; }
 .lib-hero-copy, .lib-card-featured .lib-card-copy { padding: var(--wp--preset--spacing--40); }
 .lib-hero-copy { order: 1; }
 .lib-hero figure { order: 2; }
 .lib-term-strip { flex-wrap: nowrap; overflow-x: auto; padding-block-end: .5rem; }
 .lib-term-strip a { flex: 0 0 auto; max-inline-size: 85vw; white-space: normal; }
 .lib-page .lib-article-body.wp-block-post-content { font-size: var(--wp--preset--font-size--body); }
 .lib-post-meta { align-items: flex-start; flex-direction: column; }
 .lib-toolbar { align-items: flex-start; }
 .lib-resources > ul { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: no-preference) { .lib-page { scroll-behavior: smooth; } }
@media print {
 .lib-page .lib-sidebar, .lib-toc-slot, .lib-page .lib-actions { display: none !important; }
 .lib-page .lib-single-layout.amp-article-layout { display: block; }
 .lib-page .lib-shell { inline-size: 100%; }
 .lib-page a { color: black; }
}

/* Keep the reading column full width and related cards independent of article heading styles. */
.lib-page .lib-reading-column,
.lib-page .lib-article-body.wp-block-post-content { inline-size: 100%; max-inline-size: none; margin-inline: 0; }
.lib-page .lib-article-body.wp-block-post-content .lib-related .lib-card h2 { font-size: clamp(1.05rem, 1.25vw, 1.25rem); line-height: 1.55; margin: 0; padding: 0; }
.lib-page .lib-article-body.wp-block-post-content .lib-related h2::after { display: none; }
.lib-page .lib-related .lib-card-copy { gap: .75rem; padding: 1.15rem; }
.lib-page .lib-related .lib-card-copy > * { margin-block: 0; }
.lib-page .lib-related .lib-card .lib-author { margin-block-start: auto; padding-block-start: .5rem; }
.lib-page .lib-related .lib-card .lib-dates { margin-block-start: .5rem; }
