/* Shared accessible defaults. Native block presets and inline settings remain editable. */
html { scroll-padding-block-start: 6rem; scroll-padding-block-end: 8rem; }
.rx-figma-page { overflow: visible; }
:where(.wp-site-blocks, .editor-styles-wrapper) :is(.wp-block-group, .wp-block-column, .wp-block-query, .wp-block-post, .rx-query-loop) { min-inline-size: 0; }
:where(.wp-site-blocks, .editor-styles-wrapper) :is(p, h1, h2, h3, h4, li, address, td, th, .rx-meta-field) { overflow-wrap: anywhere; }
:where(.wp-site-blocks, .editor-styles-wrapper) p { line-height: 1.5; }
:where(.wp-site-blocks, .editor-styles-wrapper) :is(h1, h2, h3, h4) { text-wrap: balance; }
.rx-home-story-media { inline-size: 100%; max-inline-size: 100%; margin-inline: 0; }
.rx-home-track__query.rx-figma-carousel { width: 100%; max-width: 100%; }
.rx-home-about__copy .rx-figma-type-lead { line-height: 1.3; }
.rx-home-about__card .rx-figma-prose,
.rx-home-section-head__copy > .rx-figma-prose,
.rx-home-section-head__copy-columns .rx-figma-prose { font-size: var(--wp--preset--font-size--body); line-height: 1.5; }
.rx-home-about__card .rx-figma-kicker { font-size: var(--wp--preset--font-size--micro); line-height: 1.4; }
.rx-home-about__actions .wp-block-button__link { font-size: var(--wp--preset--font-size--small); min-block-size: 2.75rem; line-height: 1.4; }
.rx-home-brand-card__body .wp-block-post-excerpt { line-height: 1.5; }
.rx-home-track__query .wp-block-post-title { font-size: var(--wp--preset--font-size--body); line-height: 1.3; margin-inline-end: 3.5rem; }
.rx-home-track--rexpol-brand .wp-block-post-title { font-size: var(--wp--preset--font-size--subheading); }
.rx-home-events .rx-figma-event-row .rx-meta-field strong,
.rx-home-events .rx-figma-event-row .wp-block-post-title { font-size: var(--wp--preset--font-size--small); line-height: 1.4; }
.rx-home-event__badge .rx-meta-field strong { font-size: var(--wp--preset--font-size--micro) !important; }
.rx-home-event__cfp,
.rx-home-event__title .rx-meta-field strong { font-size: var(--wp--preset--font-size--micro); line-height: 1.4; }
.rx-home-event__badge { display: flex; flex-wrap: wrap; align-items: center; }
.rx-home-event__badge .rx-meta-field strong { white-space: nowrap; }
.rx-home-project-card { display: flex; flex-direction: column; gap: 2rem; overflow: visible; aspect-ratio: auto; min-block-size: 18rem; }
.rx-home-project-card__title { position: relative; inset: auto; margin-block-start: auto; margin-inline-end: 2rem; font-size: var(--wp--preset--font-size--small); line-height: 1.4; }

/* Links in prose remain recognisable without relying on colour alone. */
:where(.wp-site-blocks main, .editor-styles-wrapper) p > a:not(.wp-block-button__link) { text-decoration: underline; text-underline-offset: .2em; text-decoration-thickness: .08em; }
:where(.wp-site-blocks, .editor-styles-wrapper) :is(a, button, input, textarea, select, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--wp--preset--color--blue);
	outline-offset: 3px;
	box-shadow: 0 0 0 6px #fff;
}
.rx-floating-menu :is(a, button):focus-visible,
.rx-mega-menu :is(a, button):focus-visible { outline: 2px solid #fff; outline-offset: -3px; box-shadow: inset 0 0 0 4px #000; }
.rx-floating-menu .rx-menu--floating > li > :is(a, .rx-floating-menu__trigger):focus-visible { outline: 2px solid #fff; outline-offset: -3px; box-shadow: inset 0 0 0 4px #000; }
.rx-floating-menu .rx-floating-menu__trigger,
.rx-floating-menu .rx-menu--floating > li > a,
.rx-floating-menu .rx-floating-menu__branch a { min-block-size: 2.75rem; opacity: 1; line-height: inherit; }
.rx-floating-menu .rx-floating-menu__trigger { color: inherit; }
.rx-mega-menu .rx-mega-menu__rows a { color: inherit; opacity: 1; }
.rx-floating-menu .rx-floating-menu__chevron { opacity: 1; }
.rx-floating-menu .rx-floating-menu__panel-inner { max-block-size: 65dvh; overflow: auto; }
.wp-site-blocks > header .rx-primary-nav > .rx-menu { flex-wrap: wrap; row-gap: .25rem; }
.rx-header { block-size: auto; }
.rx-footer .rx-footer-menu li { margin-block-end: .25rem; }
.rx-footer .rx-footer-menu a { display: inline-flex; align-items: center; min-block-size: 2.75rem; font-size: var(--wp--preset--font-size--small); line-height: 1.4; }
.rx-footer .rx-footer__address { font-size: var(--wp--preset--font-size--small); line-height: 1.5; }
.rx-home-card__arrow, .rx-home-event__link { display: inline-grid; place-items: center; min-inline-size: 2.75rem; min-block-size: 2.75rem; }
.rx-home-events__filters { flex-wrap: wrap; gap: .5rem; }
.rx-home-events__filters .wp-block-button__link { min-block-size: 2.75rem; font-size: var(--wp--preset--font-size--small); line-height: 1.4; white-space: normal; }
.wp-block-button .wp-block-button__link { min-block-size: 2.75rem; max-inline-size: 100%; white-space: normal; line-height: 1.4; }
.rx-home-hero .rx-home-hero__actions .wp-block-button__link { min-block-size: 2.75rem; }

/* Keep 2D tables scrollable locally, not the whole document. */
.wp-block-table { max-inline-size: 100%; overflow-x: auto; }
.wp-block-table:focus-visible { outline: 3px solid var(--wp--preset--color--blue); outline-offset: 3px; }
.jet-form-builder :is(input, select, textarea) { font-size: max(1rem, var(--wp--preset--font-size--body)); line-height: 1.5; min-inline-size: 0; max-inline-size: 100%; }
.jet-form-builder :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]), select, textarea, button) { min-block-size: 2.75rem; }
.jet-form-builder :is(input[type=checkbox], input[type=radio]) { inline-size: 1.25rem; block-size: 1.25rem; flex-shrink: 0; }
.rx-form-error-summary { border: 2px solid #a30000; background: #fff; color: #750000; padding: 1rem; margin-block-end: 1.5rem; }
.rx-form-error-summary a { color: inherit; text-decoration: underline; }
.rx-form-field-error { color: #a30000; font-size: var(--wp--preset--font-size--small); line-height: 1.5; margin-block-start: .35rem; }
.rx-form-error-summary[hidden], .rx-form-field-error[hidden] { display: none; }
.jet-form-builder [aria-invalid=true] { border-color: #a30000; border-width: 2px; }

@media (max-width: 50rem) {
	/* Preserve the authored desktop Row; stack its core children when they no longer fit. */
	:is(.rx-home-about__grid,.rx-home-section-head,.rx-home-section-head__copy-columns,.rx-home-events__body,.rx-home-projects__body).is-layout-flex { flex-direction: column; align-items: stretch; }
	:is(.rx-home-about__grid,.rx-home-section-head,.rx-home-section-head__copy-columns,.rx-home-events__body,.rx-home-projects__body).is-layout-flex > * { flex-basis: auto; width: 100%; }
	/* Fixed-column native grids need a single-column adaptation on small screens. */
	:is(.rx-home-events__body,.rx-home-projects__body).is-layout-grid { grid-template-columns: minmax(0,1fr); }
	:is(.rx-home-events__body,.rx-home-projects__body).is-layout-grid > * { grid-column: 1 / -1; }
	.rx-home-events__filters { flex-wrap: wrap; overflow: visible; }
	.rx-home-events__filters .wp-block-button__link { white-space: normal; }
	.rx-home-hero .rx-home-hero__claim { line-height: 1.35; }
	.rx-home-events .rx-figma-event-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.rx-home-events .rx-home-event__title { grid-column: 1 / -1; }
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	:where(.wp-site-blocks, .editor-styles-wrapper) *,
	:where(.wp-site-blocks, .editor-styles-wrapper) *::before,
	:where(.wp-site-blocks, .editor-styles-wrapper) *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
@media (forced-colors: active) {
	:where(.wp-site-blocks) :is(a, button, input, textarea, select, summary, [tabindex]):focus-visible { outline: 3px solid Highlight; box-shadow: none; }
	.rx-carousel-control, .rx-floating-menu__trigger { border: 1px solid ButtonText; }
}
