/* Air Disasters theme: masthead, footer and page frames. Colours, fonts and sizes come from
   theme.json presets; module styling stays in the VideoVault plugin. Spacing uses 4/8/12/16/24/32 px
   steps (then 8 px steps), matching the plugin's scale. */

/* Fallback faces sized to the web fonts' metrics, so text keeps its line breaks when Literata and
   Fira Sans arrive (no layout shift from the font swap). Measured with fonttools against Georgia
   and Arial; only the fallback is affected, never the loaded fonts. */
/* "Literata" is the display family: 700 is the 72pt cut (headings), lighter weights and italic are the
   12pt text cut, so its fallback follows the 12pt metrics below 700 and the 72pt Bold metrics at 700. */
@font-face { font-family: "Literata Fallback"; font-weight: 400 650; src: local("Georgia"); size-adjust: 107.7%; ascent-override: 109.3%; descent-override: 28.6%; line-gap-override: 0%; }
@font-face { font-family: "Literata Fallback"; font-weight: 400; font-style: italic; src: local("Georgia Italic"), local("Georgia-Italic"); size-adjust: 99.3%; ascent-override: 118.5%; descent-override: 31%; line-gap-override: 0%; }
@font-face { font-family: "Literata Fallback"; font-weight: 651 900; src: local("Georgia Bold"), local("Georgia-Bold"); size-adjust: 96.9%; ascent-override: 121.4%; descent-override: 31.8%; line-gap-override: 0%; }
/* "Literata Text" is the 12pt text cut at every weight: reading text (review rule R32). */
@font-face { font-family: "Literata Text Fallback"; font-weight: 400 500; src: local("Georgia"); size-adjust: 107.7%; ascent-override: 109.3%; descent-override: 28.6%; line-gap-override: 0%; }
@font-face { font-family: "Literata Text Fallback"; font-weight: 400; font-style: italic; src: local("Georgia Italic"), local("Georgia-Italic"); size-adjust: 99.3%; ascent-override: 118.5%; descent-override: 31%; line-gap-override: 0%; }
@font-face { font-family: "Literata Text Fallback"; font-weight: 501 900; src: local("Georgia Bold"), local("Georgia-Bold"); size-adjust: 98.6%; ascent-override: 119.4%; descent-override: 31.3%; line-gap-override: 0%; }
@font-face { font-family: "Fira Sans Fallback"; font-weight: 100 900; src: local("Arial"), local("ArialMT"); size-adjust: 100.8%; ascent-override: 92.8%; descent-override: 26.3%; line-gap-override: 0%; }


:root {
	--fgw-rule: var(--wp--preset--color--accent-6);
	--fgw-muted: var(--wp--preset--color--accent-4);
	--fgw-field: var(--wp--preset--color--accent-5);
	--fgw-panel: var(--wp--preset--color--accent-2);
	--fgw-green: var(--wp--preset--color--accent-1);
	--fgw-ui: var(--wp--preset--font-family--fira-sans);
	--fgw-bar-h: 72px;
	/* Reading measure: 57ch is about 69 characters of Literata 12pt on real text (review rule R32). */
	--fgw-measure: 57ch;
}

body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }
:focus-visible { outline: 2px solid var(--fgw-green); outline-offset: 2px; }

/* ---- Masthead ------------------------------------------------------------------------------ */
.fgw-header { position: relative; z-index: 20; background: var(--wp--preset--color--base); border-bottom: 1px solid var(--fgw-rule); }
.fgw-masthead__bar { position: relative; min-height: var(--fgw-bar-h); gap: 16px !important; }
.fgw-wordmark { margin: 0; flex: none; white-space: nowrap; }
.fgw-wordmark a { color: var(--wp--preset--color--contrast); }
/* Home board 2026-10-31: the wordmark with the tagline under it; the menu on the right, then a thin rule and the search icon. */
.fgw-brand { display: flex; flex-direction: column; gap: 2px; flex: none; padding-block: 12px; }
.fgw-brand > * { margin-block: 0; }
.fgw-masthead__bar > .fgw-nav { margin: 0 0 0 auto; }
.fgw-tagline.wp-block-site-tagline { margin: 0; font-family: var(--fgw-ui); font-size: 0.9375rem; line-height: 1.3; color: var(--wp--preset--color--contrast); }
.fgw-masthead__bar > .fgw-search--icon { padding-left: 16px; border-left: 1px solid var(--fgw-rule); }
/* The strapline (a theme setting) under the masthead on the front page. */
.fgw-strapline { border-top: 1px solid var(--fgw-rule); }
.fgw-strapline__text { max-width: min(var(--wp--style--global--wide-size, 1180px), calc(100% - 32px)); margin: 0 auto; padding: 8px 0; text-align: center; font-family: var(--fgw-ui); font-size: 0.9375rem; line-height: 1.45; color: var(--wp--preset--color--contrast); }
.fgw-nav .wp-block-navigation__container { gap: 40px; }
.fgw-nav .wp-block-navigation-item__content { display: inline-block; padding: 8px 0; border-bottom: 2px solid transparent; color: var(--wp--preset--color--contrast); }
.fgw-nav .wp-block-navigation-item__content:hover { border-bottom-color: var(--fgw-rule); color: var(--wp--preset--color--contrast); }
.fgw-nav .current-menu-item > .wp-block-navigation-item__content { border-bottom-color: var(--fgw-green); }

/* Search: a field with the magnifier on the left (desktop), an icon that opens it (phones). */
.fgw-search .wp-block-search__inside-wrapper { flex-direction: row-reverse; align-items: center; height: 40px; padding: 0 12px 0 4px; border: 1px solid var(--fgw-rule); border-radius: 3px; background: var(--fgw-field); }
.fgw-search .wp-block-search__input { min-width: 0; height: 100%; padding: 0 4px; border: 0; background: transparent; color: var(--wp--preset--color--contrast); font-family: var(--fgw-ui); font-size: 0.9375rem; }
.fgw-search .wp-block-search__input::placeholder { color: var(--fgw-muted); opacity: 1; }
/* The input draws no outline of its own (the field is the box), so the box shows focus (WCAG 2.4.7). */
.fgw-search .wp-block-search__input:focus { outline: none; }
.fgw-search .wp-block-search__inside-wrapper:focus-within { outline: 2px solid var(--fgw-green); outline-offset: 2px; border-color: var(--fgw-green); }
/* Phones: the field opens under the icon, so it carries the ring itself (the icon button keeps its own). */
.fgw-search--icon .wp-block-search__inside-wrapper:focus-within { outline: none; }
.fgw-search--icon .wp-block-search__input:focus { outline: 2px solid var(--fgw-green); outline-offset: -2px; }
.fgw-search .wp-block-search__button { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; margin: 0; padding: 0; border: 0; background: transparent; color: var(--wp--preset--color--contrast); }
.fgw-search .wp-block-search__button svg { width: 22px; height: 22px; min-width: 22px; fill: currentColor; }
.fgw-search--field { flex: 0 1 320px; margin: 0; }
/* The masthead keeps only the search icon (board): the explore page has its own large search box. */
.fgw-search--icon { display: block; margin: 0; }
.fgw-search--icon .wp-block-search__inside-wrapper { height: auto; padding: 0; border: 0; background: none; }
.fgw-search--icon .wp-block-search__button { width: 44px; height: 44px; }
.fgw-search--icon:not(.wp-block-search__searchfield-hidden) .wp-block-search__input { position: absolute; right: 0; top: 100%; width: min(420px, 100%); height: 48px; padding: 0 16px; border: 1px solid var(--fgw-rule); border-radius: 3px; background: var(--fgw-field); box-shadow: 0 8px 24px rgb(0 0 0 / 0.08); }
.fgw-search--page { max-width: 560px; }

@media (max-width: 781px) {
	:root { --fgw-bar-h: 60px; }
	.fgw-masthead__bar { gap: 8px !important; }
	.wp-block-site-title.fgw-wordmark { font-size: 1.625rem; }
	.fgw-masthead__bar > .fgw-brand { margin-right: auto; padding-block: 0; }
	.fgw-masthead__bar > .fgw-search--icon { padding-left: 0; border-left: 0; }
	.fgw-tagline.wp-block-site-tagline { display: none; }
	.fgw-masthead__bar > .fgw-nav { order: 3; margin: 0; }
	.fgw-search--field { display: none; }
	.fgw-search--icon { display: block; order: 2; }
	.fgw-search--icon .wp-block-search__inside-wrapper { height: auto; padding: 0; border: 0; background: none; }
	.fgw-search--icon .wp-block-search__button { width: 44px; height: 44px; }
	/* Opened: the field drops below the bar at full width instead of squeezing the wordmark. */
	.fgw-search--icon:not(.wp-block-search__searchfield-hidden) .wp-block-search__input { position: absolute; left: 0; right: 0; top: 100%; height: 48px; padding: 0 16px; border: 1px solid var(--fgw-rule); border-radius: 3px; background: var(--fgw-field); box-shadow: 0 8px 24px rgb(0 0 0 / 0.08); }
	.fgw-nav .wp-block-navigation__responsive-container-open { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; }
	.fgw-nav .wp-block-navigation__responsive-container-open svg { width: 26px; height: 26px; }
	.fgw-nav .wp-block-navigation__responsive-container.is-menu-open { padding: 16px; }
	.fgw-nav .is-menu-open .wp-block-navigation__container { gap: 8px; }
	.fgw-nav .is-menu-open .wp-block-navigation-item__content.wp-block-navigation-item__content { padding: 8px 0; font-family: var(--wp--preset--font-family--literata); font-size: 1.5rem; font-weight: 600; }
	.fgw-nav .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 48px; }
}

/* ---- Main ------------------------------------------------------------------------------------ */
.fgw-main { padding-bottom: var(--wp--preset--spacing--70); }
.fgw-main > .vvault-front:first-child, .fgw-main > :first-child { margin-block-start: 0; }
.fgw-plain { padding-top: var(--wp--preset--spacing--50); }
/* Plain pages and policy pages (Photo credits, Privacy): body text stays within the reading measure. */
.fgw-plain .entry-content > :is(p, ul, ol, dl, blockquote), .fgw-page .entry-content > :is(p, ul, ol, dl, blockquote) { max-width: var(--fgw-measure); }
/* Topics page: the Find a crash band sits 32 px above the footer. */
.fgw-main.fgw-topics { padding-bottom: var(--wp--preset--spacing--50); }

/* Phones: the home hero picture runs edge to edge, as on the home board. */
@media (max-width: 781px) {
	.fgw-home .vvault-hero__media { margin-inline: calc(-1 * var(--wp--style--root--padding-left, 16px)) calc(-1 * var(--wp--style--root--padding-right, 16px)); }
	.fgw-home .vvault-hero__caption { padding-inline: var(--wp--style--root--padding-left, 16px) var(--wp--style--root--padding-right, 16px); }
}

/* Breadcrumb row directly under the masthead. */
.fgw-main > .vvault-front:has(.vvault-breadcrumbs):first-child, .fgw-main > .vvault-breadcrumbs:first-child { padding-block: 12px; font-family: var(--fgw-ui); font-size: 0.875rem; }

/* Event page (board 04): the title, dateline and standfirst sit tight, spaced by the modules' own
   margins (8 px, then 16 px) rather than the theme's block gap. */
.vvault-evpage__head > .vvault-front { margin-block-start: 0; }

/* Video list and search results: sections 32 px apart. */
.fgw-stack > * + * { margin-block-start: 32px; }
/* The breadcrumb owns the space above the page title; the block gap after it is not added on top. */
.fgw-main > .wp-block-videovault-breadcrumbs + * { margin-block-start: 0; }

/* Plain lists (blog archive, site search). */
.fgw-list .wp-block-post-template { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.fgw-list__item { padding-block: 24px; border-top: 1px solid var(--fgw-rule); }
.fgw-list__item > * { margin-block: 0 8px; }

/* ---- Footer ---------------------------------------------------------------------------------- */
.fgw-footer-part { margin-top: 0; background: var(--fgw-panel); border-top: 1px solid var(--fgw-rule); }
.fgw-footer { padding-block: 48px 24px; font-size: 0.9375rem; }
.fgw-footer__top { display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; }
.fgw-wordmark--footer.wp-block-site-title { font-size: 1.75rem; margin-bottom: 12px; }
.fgw-footer__blurb, .fgw-footer__note { margin: 0; max-width: 34em; color: var(--fgw-muted); line-height: 1.55; }
.fgw-footer__h.wp-block-heading { margin: 0 0 12px; font-family: var(--fgw-ui); font-size: 0.875rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--fgw-muted); }
.fgw-footer__list { margin: 0; padding: 0; list-style: none; font-family: var(--fgw-ui); }
.fgw-footer__list li { margin: 0 0 8px; }
.fgw-footer__list a { text-decoration: none; }
/* Small links get a 24px-high hit area (WCAG 2.5.8) without moving the text: padding taken back by margin. */
.fgw-footer__list a, .fgw-footer__base a { display: inline-block; padding-block: 4px; margin-block: -4px; }
.fgw-footer__list a:hover { text-decoration: underline; }
.fgw-footer__base { margin-top: 40px !important; padding-top: 16px; border-top: 1px solid var(--fgw-rule); font-family: var(--fgw-ui); font-size: 0.875rem; color: var(--fgw-muted); }
.fgw-footer__base p { margin: 0; }
.fgw-footer__base a { color: inherit; }
@media (min-width: 782px) {
	.fgw-footer__top { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1.4fr); gap: 48px; }
}
.fgw-footer__top > *, .fgw-footer__about > *, .fgw-footer__nav > * { margin-block-start: 0; }
/* Home board 2026-10-31: name and blurb left; the videos note and small links right, after a thin rule. */
.fgw-footer--board { padding-block: 24px; }
.fgw-footer__cols { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
.fgw-footer__cols > *, .fgw-footer__side > * { margin-block: 0; }
.fgw-footer--board .fgw-wordmark--footer.wp-block-site-title { margin-bottom: 4px; }
.fgw-footer--board .fgw-footer__blurb { color: var(--wp--preset--color--contrast); }
.fgw-footer__side { font-family: var(--fgw-ui); font-size: 0.9375rem; line-height: 1.5; }
.fgw-footer__side .fgw-footer__note { color: var(--wp--preset--color--contrast); }
.fgw-footer__links { margin-top: 8px !important; display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 8px; }
.fgw-footer__links a { display: inline-block; padding-block: 4px; margin-block: -4px; text-decoration: underline; text-underline-offset: 3px; }
.fgw-footer__sep { color: var(--fgw-muted); }
@media (min-width: 782px) {
	.fgw-footer__cols { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 48px; align-items: center; }
	.fgw-footer__side { padding-left: 32px; border-left: 1px solid var(--fgw-rule); }
}

/* ---- Guides and editorial pages ---------------------------------------------------------------
   Article pages follow boards 02/04: breadcrumbs, the title, the standfirst in the dek size, a
   Fira byline, then the body beside a right-hand "Events in this guide" card (below the body on
   phones). Sources sit in the event page's finding panel. */
.fgw-guide-page, .fgw-hub-page, .fgw-page { padding-bottom: 64px; }
.fgw-guide > *, .fgw-hub > *, .fgw-page__main > *, .fgw-guide__grid > *, .fgw-guide__main > * { margin-block: 0; }

.fgw-crumbs { padding: 1rem 0 0; margin: 0 0 1rem; font-family: var(--fgw-ui); font-size: 0.9rem; line-height: 1.8; color: var(--fgw-muted); }
.fgw-crumbs ol { display: flex; flex-wrap: wrap; align-items: baseline; margin: 0; padding: 0; list-style: none; }
.fgw-crumbs li { min-width: 0; overflow-wrap: anywhere; }
.fgw-crumbs li:not(:last-child)::after { content: "/"; margin-inline: 0.6em; }
.fgw-crumbs__sep { display: none; }
.fgw-crumbs a { color: var(--fgw-muted); text-decoration: none; }
.fgw-crumbs a:is(:hover, :focus-visible) { text-decoration: underline; text-underline-offset: 0.22em; }
.fgw-crumbs [aria-current] { color: var(--fgw-muted); }

.fgw-guide__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 48px; margin-top: 16px !important; }
@media (min-width: 1024px) {
	.fgw-guide__grid { grid-template-columns: minmax(0, 720px) 300px; justify-content: space-between; gap: 64px; }
	.fgw-guide__grid > .fgw-rel { position: sticky; top: 24px; }
}

.fgw-ghead { margin: 0 0 32px; }
.fgw-ghead__title { margin: 0; font-size: clamp(2rem, 1.35rem + 2.2vw, 2.875rem); line-height: 1.08; letter-spacing: -0.01em; text-wrap: balance; }
.fgw-dek { margin: 16px 0 0; max-width: var(--fgw-measure); font-size: var(--wp--preset--font-size--large); line-height: 1.5; }
.fgw-byline { display: flex; flex-wrap: wrap; align-items: center; row-gap: 4px; margin: 16px 0 0; font-family: var(--fgw-ui); font-size: 0.9375rem; line-height: 1.4; color: var(--fgw-muted); }
.fgw-byline__avatar { display: inline-grid; place-items: center; flex: none; width: 28px; height: 28px; margin-right: 8px; border-radius: 50%; background: var(--fgw-muted); color: var(--wp--preset--color--base); font-size: 0.875rem; font-weight: 600; }
/* Separators sit in the gap before each item; the first item of every line pushes its dot into
   the clipped margin, so a wrapped line never starts with "·". */
.fgw-byline { flex-wrap: nowrap; }
.fgw-byline__items { flex: 1; min-width: 0; padding-block: 2px; overflow: hidden; }
.fgw-byline__list { display: flex; flex-wrap: wrap; row-gap: 2px; margin-left: -20px; }
.fgw-byline__item { position: relative; margin-left: 20px; white-space: nowrap; }
.fgw-byline__item::before { content: "·"; position: absolute; left: -13px; }
.fgw-byline__name { color: var(--wp--preset--color--contrast); font-weight: 500; }
.fgw-byline__name a { color: inherit; }

.fgw-toc { margin: 0 0 40px; padding: 24px; border-radius: 4px; background: var(--fgw-panel); font-family: var(--fgw-ui); font-size: 0.9375rem; line-height: 1.45; }
.fgw-toc__title { margin: 0 0 8px; font-size: 0.875rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--fgw-muted); }
.fgw-toc ol { margin: 0; padding-left: 1.25em; columns: 2 240px; column-gap: 32px; }
.fgw-toc li { margin: 0 0 4px; break-inside: avoid; }
.fgw-toc li::marker { color: var(--fgw-muted); }
.fgw-toc a { color: var(--wp--preset--color--contrast); text-decoration: none; }
.fgw-toc a:hover { text-decoration: underline; }

/* Body typography: long reading in the Literata 12pt text cut (18 px / 1.6, about 69 characters a
   line), data and notes in Fira (review rule R32). */
.fgw-prose { font-size: var(--wp--preset--font-size--medium); line-height: 1.6; }
.fgw-prose > :is(p, ul, ol, dl, blockquote) { max-width: var(--fgw-measure); }
.fgw-prose > * { margin-block: 0; }
.fgw-prose > * + * { margin-block-start: 1.1em; }
.fgw-prose > h2 { margin-block-start: 48px; font-size: var(--wp--preset--font-size--x-large); line-height: 1.2; scroll-margin-top: 16px; }
.fgw-prose > h3 { margin-block-start: 32px; font-size: 1.25rem; line-height: 1.3; scroll-margin-top: 16px; }
.fgw-prose > :is(h2, h3) + * { margin-block-start: 12px; }
.fgw-prose :is(ul, ol) { padding-left: 1.4em; }
.fgw-prose li + li { margin-top: 8px; }
.fgw-prose li::marker { color: var(--fgw-muted); }
.fgw-prose a { text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
.fgw-prose a:hover { text-decoration-thickness: 2px; }
.fgw-prose .wp-block-table { margin-inline: 0; overflow-x: auto; }
.fgw-prose .wp-block-table table { width: 100%; border-collapse: collapse; font-family: var(--fgw-ui); font-size: 0.9375rem; line-height: 1.45; }
.fgw-prose .wp-block-table table:has(th:nth-child(4)) { min-width: 560px; }
.fgw-prose .wp-block-table thead { border: 0; }
.fgw-prose .wp-block-table :is(th, td) { padding: 12px 16px 12px 0; border: 0; border-bottom: 1px solid var(--fgw-rule); text-align: left; vertical-align: top; }
.fgw-prose .wp-block-table thead th { padding-top: 0; font-size: 0.875rem; font-weight: 600; color: var(--fgw-muted); border-bottom-color: var(--wp--preset--color--contrast); }
.fgw-prose .wp-block-table tbody td:first-child { font-weight: 500; }
.fgw-prose :is(figcaption, .wp-element-caption) { margin-top: 8px; font-family: var(--fgw-ui); font-size: var(--wp--preset--font-size--x-small); line-height: 1.45; color: var(--fgw-muted); text-align: left; }
.fgw-prose figure:not(.wp-block-table) { margin-inline: 0; }
.fgw-prose img { max-width: 100%; height: auto; border-radius: 4px; }
.fgw-prose blockquote { margin-inline: 0; padding: 4px 0 4px 24px; border-left: 3px solid var(--fgw-green); font-size: var(--wp--preset--font-size--large); line-height: 1.5; }
.fgw-prose blockquote :is(cite, footer) { display: block; margin-top: 8px; font-family: var(--fgw-ui); font-size: 0.9375rem; font-style: normal; color: var(--fgw-muted); }
.fgw-prose hr { margin-block: 40px; border: 0; border-top: 1px solid var(--fgw-rule); }

/* Sources: the event page's "Official finding" panel (green tint, document icon). */
.fgw-prose > .fgw-sources { display: grid; grid-template-columns: 40px minmax(0, 1fr); column-gap: 24px; margin-block-start: 56px; padding: 24px; border: 1px solid color-mix(in srgb, var(--fgw-green) 30%, transparent); border-radius: 4px; background: color-mix(in srgb, var(--fgw-green) 11%, var(--wp--preset--color--base)); }
.fgw-sources__icon { width: 40px; height: 40px; color: var(--fgw-green); }
.fgw-sources__body > * { margin: 0; }
.fgw-sources__body > * + * { margin-top: 12px; }
.fgw-sources .fgw-sources__title { margin: 0; font-size: 1.25rem; line-height: 40px; color: var(--fgw-green); }
/* The title trims to cap height and is padded back to the icon's height, so its cap middle meets the icon's centre (R31). */
.fgw-sources .fgw-sources__body > .fgw-sources__title { line-height: 1.2; text-box: trim-both cap alphabetic; margin-block: calc((40px - 1cap) / 2); --vv-space-intent: align; /* centres the title on the 40px icon (R34) */ }
.fgw-sources :is(ol, ul) { padding-left: 1.5em; font-family: var(--fgw-ui); font-size: 0.9375rem; line-height: 1.5; }
.fgw-sources li + li { margin-top: 8px; }
.fgw-sources li::marker { color: var(--fgw-muted); font-variant-numeric: tabular-nums; }
.fgw-sources p { font-family: var(--fgw-ui); font-size: 0.9375rem; line-height: 1.5; color: var(--fgw-muted); }
.fgw-sources a { color: var(--wp--preset--color--contrast); overflow-wrap: anywhere; }
.fgw-sources .fgw-ext { margin-inline-start: 4px; }
@media (max-width: 781px) {
	.fgw-prose > .fgw-sources { grid-template-columns: 28px minmax(0, 1fr); column-gap: 12px; padding: 16px; }
	.fgw-sources__icon { width: 28px; height: 28px; }
	.fgw-sources .fgw-sources__body > .fgw-sources__title { margin-block: calc((28px - 1cap) / 2); }
}

/* Glossary: an A–Z list that stays at the top while reading, and terms that are easy to land on. */
.fgw-prose > .fgw-az { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 5; display: flex; align-items: center; margin-block-start: 32px; padding: 8px 0; border-block: 1px solid var(--fgw-rule); background: var(--wp--preset--color--base); }
.fgw-prose .fgw-az__list { display: grid; grid-template-columns: repeat(26, minmax(0, 1fr)); gap: 2px; flex: 1; min-width: 0; margin: 0; padding: 0; list-style: none; font-family: var(--fgw-ui); font-size: 0.9375rem; font-weight: 600; }
.fgw-prose .fgw-az__list li { margin: 0; }
.fgw-az__list :is(a, span) { display: grid; place-items: center; min-width: 24px; height: 32px; border-radius: 3px; text-decoration: none; }
.fgw-az__list a { color: var(--fgw-green); }
.fgw-az__list a:hover, .fgw-az__list a:focus-visible { background: var(--fgw-panel); }
.fgw-az__list span { color: var(--fgw-muted); opacity: 0.45; }
.fgw-prose > h2[id^="letter-"] { margin-block-start: 40px; padding-bottom: 8px; border-bottom: 1px solid var(--fgw-rule); font-size: 2rem; line-height: 1; scroll-margin-top: 72px; }
.fgw-prose > h3[id^="term-"] { margin-block-start: 20px; padding-top: 4px; font-size: 1.125rem; scroll-margin-top: 64px; }
.fgw-prose > h3[id^="term-"] + p { margin-block-start: 0; padding-block: 4px; }
.fgw-prose > h3[id^="term-"]:target, .fgw-prose > h3[id^="term-"]:target + p { background: color-mix(in srgb, var(--fgw-green) 10%, transparent); box-shadow: -12px 0 0 color-mix(in srgb, var(--fgw-green) 10%, transparent), 12px 0 0 color-mix(in srgb, var(--fgw-green) 10%, transparent); }
@media (max-width: 781px) {
	.fgw-prose .fgw-az__list { display: flex; overflow-x: auto; scrollbar-width: none; }
	.fgw-az__list::-webkit-scrollbar { display: none; }
	.fgw-az__list :is(a, span) { min-width: 36px; height: 36px; }
	.fgw-prose > h2[id^="letter-"] { scroll-margin-top: 76px; }
	.fgw-prose > h3[id^="term-"] { scroll-margin-top: 68px; }
}

/* "Events in this guide": board 02's "Part of this event" card. */
.fgw-rel { align-self: start; padding: 24px; border: 1px solid var(--fgw-rule); border-radius: 4px; background: var(--fgw-panel); }
.fgw-rel__title { margin: 0 0 16px; font-size: 1.0625rem; line-height: 1.3; font-weight: 600; }
.fgw-rel__list { display: grid; gap: 24px; margin: 0; padding: 0; list-style: none; }
.fgw-rel__item { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 12px; margin: 0; }
.fgw-rel__icon { display: grid; place-items: center; width: 48px; height: 48px; border: 1px solid var(--fgw-rule); border-radius: 3px; background: var(--wp--preset--color--base); color: var(--fgw-green); }
.fgw-rel__name { margin: 0; font-size: 1.125rem; line-height: 1.25; font-weight: 600; }
.fgw-rel__name a { text-decoration: none; }
.fgw-rel__name a:hover { text-decoration: underline; }
.fgw-rel__lead { margin: 4px 0 8px; font-size: 0.9375rem; line-height: 1.45; color: var(--fgw-muted); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.fgw-arrowlink { font-family: var(--fgw-ui); font-size: 0.9375rem; font-weight: 500; color: var(--fgw-green); text-underline-offset: 3px; white-space: nowrap; }

/* Section heads and guide cards (More guides, the hub). */
.fgw-modhead { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin: 0 0 24px; padding-top: 16px; border-top: 1px solid var(--fgw-rule); }
.fgw-modhead__title { margin: 0; font-size: var(--wp--preset--font-size--x-large); }
.fgw-modhead__link { flex: none; font-family: var(--fgw-ui); font-size: 0.875rem; font-weight: 500; text-decoration: none; }
.fgw-modhead__link:hover { text-decoration: underline; }
.fgw-guide > .fgw-more { margin-top: 64px; }
.fgw-cards, .fgw-hub__list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px 40px; margin: 0; padding: 0; list-style: none; }
@media (min-width: 640px) { .fgw-cards, .fgw-hub__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .fgw-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.fgw-card { display: flex; flex-direction: column; margin: 0; }
.fgw-card__kicker { order: -1; margin: 0 0 8px; font-family: var(--fgw-ui); font-size: 0.875rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--fgw-muted); }
.fgw-card__title { margin: 0; font-size: 1.25rem; line-height: 1.25; text-wrap: pretty; }
.fgw-card__title a { text-decoration: none; }
.fgw-card__title a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
.fgw-card__dek { margin: 8px 0 0; font-size: 1rem; line-height: 1.5; color: #3E423F; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.fgw-card__meta { margin: 0; padding-top: 12px; font-family: var(--fgw-ui); font-size: 0.9375rem; color: var(--fgw-muted); }

/* The /guides/ hub: an editorial index, one section per theme. */
.fgw-hub__head { max-width: 760px; margin: 16px 0 0 !important; }
.fgw-hub__title { margin: 0; font-size: var(--wp--preset--font-size--xx-large); line-height: 1.05; }
.fgw-hub__count { margin: 24px 0 8px; font-family: var(--fgw-ui); font-size: 0.875rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--fgw-muted); }
.fgw-hub__jump { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; font-family: var(--fgw-ui); font-size: 0.875rem; }
.fgw-hub__jump a { display: inline-flex; align-items: center; gap: 8px; min-height: 32px; padding: 0 12px; border: 1px solid var(--fgw-rule); border-radius: 999px; background: var(--fgw-field); color: var(--wp--preset--color--contrast); text-decoration: none; }
.fgw-hub__jump a:hover { border-color: var(--fgw-muted); }
.fgw-hub__n { color: var(--fgw-muted); font-variant-numeric: tabular-nums; }
.fgw-hub__group { display: grid; gap: 24px; margin-top: 48px !important; padding-top: 24px; border-top: 1px solid var(--fgw-rule); scroll-margin-top: 16px; }
.fgw-hub__ghead > * { margin: 0; }
.fgw-hub__gtitle { font-size: var(--wp--preset--font-size--x-large); }
.fgw-hub__gtext { margin-top: 8px !important; max-width: 34em; font-size: 1rem; line-height: 1.5; color: var(--fgw-muted); }
@media (min-width: 1024px) {
	.fgw-hub__group { grid-template-columns: 280px minmax(0, 1fr); gap: 64px; }
	.fgw-hub__ghead { position: sticky; top: 24px; align-self: start; }
}

/* Editorial pages (policy, how we work): one reading column. */
.fgw-page__main { max-width: 720px; }
.fgw-page__main > .fgw-ghead { margin-top: 16px; }

/* Author pages and the editors list on About (house bylines, inc/authors.php). Monograms are SVG. */
.fgw-avatar { display: block; flex: none; border-radius: 50%; }
.fgw-byline__avatar--mono { background: none; }
.fgw-byline__avatar--mono .fgw-avatar { width: 28px; height: 28px; }
.fgw-author-page .fgw-author-wrap > * { margin-block: 0; }
.fgw-author { display: flex; align-items: center; gap: 24px; margin: 16px 0 0; }
.fgw-author__head { min-width: 0; }
.fgw-author__name { margin: 0; }
.fgw-author__angle { margin-top: 8px; }
.fgw-author__bio { margin-top: 32px; }
.fgw-author__covers { margin-top: 32px; padding-top: 16px; border-top: 1px solid var(--fgw-rule); }
.fgw-author__h { margin: 0 0 12px; font-family: var(--fgw-ui); font-size: 0.875rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--fgw-muted); }
.fgw-author__topics { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; font-family: var(--fgw-ui); font-size: 0.9375rem; }
.fgw-author__topics li { display: inline-flex; align-items: center; min-height: 32px; padding: 0 12px; border: 1px solid var(--fgw-rule); border-radius: 999px; background: var(--fgw-field); color: var(--wp--preset--color--contrast); }
.fgw-author__note { margin: 32px 0 0; max-width: var(--fgw-measure); font-family: var(--fgw-ui); font-size: 0.9375rem; line-height: 1.55; color: var(--fgw-muted); }
.fgw-author__works { margin-top: 56px !important; }
.fgw-author__count { flex: none; margin: 0; font-family: var(--fgw-ui); font-size: 0.875rem; color: var(--fgw-muted); }
.fgw-author__empty { margin: 0; max-width: var(--fgw-measure); color: var(--fgw-muted); }
@media (max-width: 639px) {
	.fgw-author { flex-direction: column; align-items: flex-start; gap: 16px; }
	.fgw-author .fgw-avatar { width: 72px; height: 72px; }
}
ul.fgw-team { display: grid; gap: 32px; margin: 24px 0 0; padding: 0; list-style: none; }
.fgw-team > li.fgw-team__item { margin-top: 0; }
.fgw-team__item { display: grid; grid-template-columns: 64px minmax(0, 1fr); column-gap: 20px; margin: 0; padding-top: 24px; border-top: 1px solid var(--fgw-rule); }
.fgw-team__body > * { margin: 0; }
.fgw-team__name { font-size: 1.25rem; line-height: 1.25; }
.fgw-team__name a { text-decoration: none; }
.fgw-team__name a:is(:hover, :focus-visible) { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
.fgw-team__angle { margin-top: 4px !important; font-family: var(--fgw-ui); font-size: 0.9375rem; font-weight: 500; color: var(--fgw-muted); }
.fgw-team__bio { margin-top: 12px !important; font-size: 1rem; line-height: 1.55; }
.fgw-team__bio > p { margin: 0; }
.fgw-team__bio > p + p { margin-top: 0.8em; }
.fgw-team__meta { margin-top: 8px !important; font-family: var(--fgw-ui); font-size: 0.875rem; color: var(--fgw-muted); }
@media (max-width: 479px) {
	.fgw-team__item { grid-template-columns: 48px minmax(0, 1fr); column-gap: 16px; }
	.fgw-team__item > .fgw-avatar { width: 48px; height: 48px; }
}

/* Five masthead links between 782 and 1100 px: tighter spacing so search keeps its room. */
@media (min-width: 782px) and (max-width: 1100px) {
	.fgw-masthead__bar > .fgw-nav { margin-left: auto; }
	.fgw-tagline.wp-block-site-tagline { display: none; }
	.fgw-nav .wp-block-navigation__container { gap: 24px; }
	.fgw-search--field { flex-basis: 240px; }
}
.fgw-nowrap { white-space: nowrap; }

/* Visitors who ask for less motion get none. */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; }
}

/* Icons from the VideoVault icon set (review rule R31): same stroke and alignment tokens as the plugin. */
:where(.fgw-crumbs, .fgw-sources, .fgw-rel, .fgw-guide, .fgw-arrowlink, .fgw-modhead__link) .vvault-ico { flex: none; overflow: visible; }
:where(.fgw-crumbs, .fgw-sources, .fgw-rel, .fgw-guide, .fgw-arrowlink, .fgw-modhead__link) .vvault-ico[fill="none"] { stroke-width: clamp(1.25px, 0.09em, 2.25px); }
:where(.fgw-crumbs, .fgw-sources, .fgw-rel, .fgw-guide, .fgw-arrowlink, .fgw-modhead__link) .vvault-ico[fill="none"] * { vector-effect: non-scaling-stroke; }
:where(.fgw-crumbs, .fgw-sources, .fgw-rel, .fgw-guide, .fgw-arrowlink, .fgw-modhead__link) .vvault-ico--inline { --vv-ico-size: 1em; width: var(--vv-ico-size); height: var(--vv-ico-size); vertical-align: calc((0.7em - var(--vv-ico-size)) / 2); vertical-align: calc((1cap - var(--vv-ico-size)) / 2); }
.fgw-rel__icon .vvault-ico { width: 28px; height: 28px; }

/* Sticky footer: short pages keep the footer at the bottom of the window; long pages end with their content. */
.wp-site-blocks {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	min-height: 100dvh;
}
.wp-site-blocks > main,
.wp-site-blocks > .fgw-main {
	flex: 1 0 auto;
}
.wp-site-blocks > footer {
	flex-shrink: 0;
}
/* Logged in: the admin bar is 32px (46px on narrow screens) and already takes space above the page. */
body.admin-bar .wp-site-blocks {
	min-height: calc(100vh - 32px);
	min-height: calc(100dvh - 32px);
}
@media screen and (max-width: 782px) {
	body.admin-bar .wp-site-blocks {
		min-height: calc(100vh - 46px);
		min-height: calc(100dvh - 46px);
	}
}
/* Slim footer (video pages): wordmark, sections and small print on one line; they stack on a phone. */
.fgw-footer--slim { padding-block: 20px; }
.fgw-footer__row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 32px; }
.fgw-footer__row > * { margin: 0; }
.fgw-footer__list--inline { display: flex; flex-wrap: wrap; gap: 4px 24px; }
.fgw-footer__list--inline li { margin: 0; }
.fgw-footer__small { margin: 0; font-family: var(--fgw-ui); font-size: 0.875rem; color: var(--fgw-muted); }
.fgw-footer__small a { color: inherit; display: inline-block; padding-block: 4px; margin-block: -4px; }
.fgw-footer--slim .fgw-wordmark--footer { font-size: 1.375rem; }

/* ---- Links ------------------------------------------------------------------------------------ */
/* Links are Hangar green (theme.json styles.elements.link). A link that is a title or a heading stays ink, as on the board. */
.wp-site-blocks :is(h1, h2, h3, h4, h5, h6, .wp-block-post-title, .wp-block-site-title) a:not(:hover, :focus-visible) { color: inherit; }

/* Plain pages (About, policies, credits): a wider 820px column that the text fills, like the marketing site (Bart, 2026-11-02: "content width is so narrow"). */
.fgw-page { --wp--style--global--content-size: 820px; }
.fgw-page > .fgw-page__main { max-width: 820px; margin-inline: auto; }
.fgw-page .fgw-prose > :is(p, ul, ol, dl, blockquote), .fgw-page .entry-content > :is(p, ul, ol, dl, blockquote) { max-width: none; }
