@charset "UTF-8";
/*!
Theme Name: Top Floor
Theme URI: 
Author: ddm marketing + communications
Author URI: https://teamddm.com/
Description: A base block theme built for the basics
Requires at least: 5.8
Tested up to: 7.1
Requires PHP: 5.8
Version: 2.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Template: 
Text Domain: topfloor
Tags: one-column, custom-colors, custom-menu, custom-logo, editor-style, featured-images, full-site-editing, rtl-language-support, theme-options, threaded-comments, translation-ready, wide-blocks
*/
/* _root-variables.scss
* Description: root variable definitions, referenced by theme.json
* Author: Chris Jeffereies and Caleb Copeland
* Date: 12 November 2025
*/
:root {
  --content-size: 1440px;
  --body-font-family: Roboto, Helvetica Neue, Arial, sans-serif;
  --heading-font-family: Oswald, Arial Narrow, Arial, sans-serif;
  --bg-color-1: #74388B;
  --bg-color-2: #EFE9E1;
  --bg-color-3: #48525B;
  --bg-color-4: #EEF0F1;
  --fg-color-1: #74388B;
  --fg-color-2: #5B6773;
  --fg-color-3: #3E7A71;
  --fg-color-4: #29514C;
  --accent-color-1: #FFCA2B;
  --accent-color-2: #A5760F;
  --default-body-bg-color: #fff;
  --color-bg--text: #1C1620;
  --color-bg--text-muted: #63596B;
  --color-bg--primary: #74388B;
  --color-bg--primary-hover: #462254;
  --color-bg--primary-text: #fff;
  --color-bg--secondary: #5B6773;
  --color-bg--secondary-hover: #434D57;
  --color-bg--secondary-text: #fff;
  --color-bg--tertiary: #3E7A71;
  --color-bg--tertiary-hover: #2C5A53;
  --color-bg--accent: #A5760F;
  --color-bg--accent-hover: #7D5809;
  --color-bg--link: #29514C;
  --color-bg--link-hover: #1A3733;
  --color-bg--border: #8A8290;
  --shadow-small: 0 0.13rem 0.63rem 0 rgba(0, 0, 0, 0.15);
  --shadow-large: 0 0.13rem 0.63rem 0 rgba(0, 0, 0, 0.15), 0 0.25rem 1.25rem 0 rgba(0, 0, 0, 0.15);
  --radius-sm: 0.25rem;
  --radius-md: 0.5rem;
  --radius-pill: 999px;
  --spacing-xs: 0.5rem;
  --spacing-sm: 1rem;
  --spacing-md: 1.5rem;
  --spacing-ml: 2rem;
  --spacing-lg: 3rem;
  --spacing-xl: 5rem;
  --spacing-xxl: 7.5rem;
}

/* _normalize.scss
 * Description: cross-browser baseline, based on normalize.css v8.0.1
 *              (MIT - github.com/necolas/normalize.css), plus the
 *              theme-level resets Gutenberg needs. Fixes that only
 *              applied to IE/Edge legacy are kept for now; anything
 *              theme-specific lives in the last section.
 */
/* -----------------------------------
   Box sizing
----------------------------------- */
*,
*::before,
*::after {
  box-sizing: border-box;
}

/* -----------------------------------
   Document + sections
----------------------------------- */
html {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
}

:root body {
  margin: 0;
}
:root body :where(.is-layout-flow) > *,
:root body :where(.is-layout-constrained) > * {
  margin-block-start: 0;
  margin-block-end: unset;
}

main {
  display: block;
  margin: 0;
}

footer {
  margin: 0;
}

/* -----------------------------------
   Grouping content
----------------------------------- */
hr {
  height: 0;
  overflow: visible;
}

pre,
code,
kbd,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}

/* -----------------------------------
   Text-level semantics
----------------------------------- */
a {
  background-color: transparent;
}

abbr[title] {
  border-bottom: none;
  text-decoration: underline;
  text-decoration: underline dotted;
}

b,
strong {
  font-weight: bolder;
}

small {
  font-size: 80%;
}

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* -----------------------------------
   Embedded content
----------------------------------- */
img {
  border-style: none;
}

/* -----------------------------------
   Forms
----------------------------------- */
button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  font-size: 100%;
  line-height: 1.15;
  margin: 0;
}

button,
input {
  overflow: visible;
}

button,
select {
  text-transform: none;
}

button,
[type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
}

button::-moz-focus-inner,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

button:-moz-focusring,
[type=button]:-moz-focusring,
[type=reset]:-moz-focusring,
[type=submit]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

fieldset {
  padding: 0.35em 0.75em 0.625em;
}

legend {
  color: inherit;
  display: table;
  max-width: 100%;
  padding: 0;
  white-space: normal;
}

progress {
  vertical-align: baseline;
}

textarea {
  overflow: auto;
}

[type=checkbox],
[type=radio] {
  padding: 0;
}

[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
  height: auto;
}

[type=search] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}

[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit;
}

/* -----------------------------------
   Interactive + misc
----------------------------------- */
details {
  display: block;
}

summary {
  display: list-item;
}

template,
[hidden] {
  display: none;
}

/* -----------------------------------
   Theme adjustments

   Not part of normalize.css - kept here
   because they set the same baseline.
----------------------------------- */
html.wf-active body :where(p, a, li, .wp-block-heading, .wp-block-button a span),
html .wf-inactive body :where(p, a, li, .wp-block-heading, .wp-block-button a span) {
  visibility: visible;
}
html.wf-loading body :where(p, a, li, .wp-block-heading, .wp-block-button a span) {
  visibility: hidden;
}

body .wp-site-blocks {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
body .wp-site-blocks > main {
  flex-grow: 1;
}

a,
a > span,
button {
  transition: all 0.2s;
}

/* _print.scss
 * Description: styles for print that can't be defined in theme.json
 * Author: Caroline Ferraby
 * Date: 01 August 2023
 */
@media print {
  * {
    background: transparent !important;
    color: black !important;
    text-shadow: none !important;
    filter: none !important;
    -ms-filter: none !important;
  }
  a, a:visited {
    color: #444 !important;
    text-decoration: underline;
  }
  a:after, a:visited:after {
    content: " (" attr(href) ")";
  }
  abbr[title]:after {
    content: " (" attr(title) ")";
  }
  a[href^="javascript:"]:after,
  a[href^="#"]:after {
    content: "";
  }
  pre, blockquote {
    border: 1px solid #999;
    page-break-inside: avoid;
  }
  thead {
    display: table-header-group;
  }
  tr, img {
    page-break-inside: avoid;
  }
  img {
    max-width: 100% !important;
  }
  @page {
    margin: 1.5cm 0.25cm;
  }
  p, h2, h3 {
    orphans: 3;
    widows: 3;
  }
  h2,
  h3 {
    page-break-after: avoid;
  }
  nav,
  header.wp-block-template-part,
  footer.wp-block-template-part {
    display: none !important;
  }
}
/* _fontface.scss
 * Description: font-face declarations for self-hosted webfonts
 * Author: Caroline Ferraby
 * Date: 01 August 2023
 */
@font-face {
  font-family: "Roboto";
  font-weight: 100 900;
  font-style: normal;
  font-stretch: normal;
  font-display: swap;
  src: url("resources/fonts/Roboto-Variable.woff2") format("woff2");
}
@font-face {
  font-family: "Oswald";
  font-weight: 200 700;
  font-style: normal;
  font-stretch: normal;
  font-display: swap;
  src: url("resources/fonts/Oswald-Variable.woff2") format("woff2");
}
/* _typography.scss
 * Description: styles for text elements
 * Author: Chris Jeffereies and Caleb Copeland
 * Date: 12 November 2025
 */
/* ---------------------------------------------------
   HTML elements

   Gutenberg targets block classes instead of elements 
   (with only a few exceptions), but we still want the 
   elements to be styled. Headers are defined here so h1 
   and .is-style-h1 can be defined in the same place. The
   mixin lets each entrypoint scope the styles to its own
   root element — `body` on the front end, and the
   compound `body.editor-styles-wrapper` in the editor, so
   nothing reaches the surrounding admin areas.
--------------------------------------------------- */
html {
  font-size: 16px;
}
@media (max-width: 1024px) {
  html {
    font-size: 15px;
  }
}
@media (max-width: 781px) {
  html {
    font-size: 14px;
  }
}
@media screen and (prefers-reduced-motion: no-preference) {
  html {
    scroll-behavior: smooth;
  }
}

/* button.scss
 * Description: styles for things that look like buttons but are not the button
 *              block — the button element, submits, and the read-more blocks.
 *              The button block itself is styled in blocks/core/button.scss.
 *              Both sides share the treatments in _button-mixins.scss.
 * Author: Chris Jefferies and Caleb Copeland
 * Date: 18 November 2025
 */
/* _button-mixins.scss
 * Description: the button treatments, as mixins, so the button block and the
 *              plain elements that look like buttons cannot drift apart.
 *              Emits nothing on its own — see _button.scss for the element
 *              side and blocks/core/button.scss for the block side.
 * Author: Chris Jefferies and Caleb Copeland
 * Date: 18 November 2025
 */
/* ---------------------------------------------------
   Variables

   Read by the mixins below, so both the element side (_button.scss)
   and the block side (blocks/core/button.scss) take their shape and
   type from one place.
--------------------------------------------------- */
/* ---------------------------------------------------
   Default styles for default, primary, secondary, and minimal buttons.
   Ideally, all styles should be able to be set in _variables.
--------------------------------------------------- */
.wp-element-button,
body:where(:not(.wp-admin)) button:where(:not(.components-button)),
[type=submit] {
  padding: 0.625rem 1.25rem;
  font-size: 1rem;
  font-family: Roboto, Helvetica Neue, Arial, sans-serif;
  font-weight: 400;
  letter-spacing: 0;
  border-radius: 0rem;
  border: 0.13rem solid;
  cursor: pointer;
  transition: all 300ms;
}
.small .wp-element-button,
.small body:where(:not(.wp-admin)) button:where(:not(.components-button)),
.small [type=submit] {
  padding: 0.5rem 1rem;
}
.wp-element-button:focus-visible,
body:where(:not(.wp-admin)) button:where(:not(.components-button)):focus-visible,
[type=submit]:focus-visible {
  outline: 0.13rem solid var(--color-bg--primary);
  outline-offset: 0.13rem;
}

.wp-element-button:not(.wp-block-button__link),
body:where(:not(.wp-admin)) button:where(:not(.components-button)),
[type=submit] {
  color: var(--color-bg--primary-text);
  background: var(--color-bg--primary);
  border-color: var(--color-bg--primary);
}
.wp-element-button:not(.wp-block-button__link):hover,
body:where(:not(.wp-admin)) button:where(:not(.components-button)):hover,
[type=submit]:hover {
  color: var(--color-bg--primary);
  background: transparent;
  border-color: var(--color-bg--primary);
}

.is-style-secondary [type=submit] {
  color: var(--color-bg--secondary);
  background: transparent;
  border-color: var(--color-bg--secondary);
}
.is-style-secondary [type=submit]:hover {
  color: var(--color-bg--secondary-text);
  background: var(--color-bg--secondary);
  border-color: var(--color-bg--secondary);
}

.wp-block-post-excerpt__more-link,
.wp-block-read-more {
  position: relative;
  padding-inline: 0.25rem;
  color: var(--color-bg--tertiary);
  background: transparent;
  border: 0;
}
.wp-block-post-excerpt__more-link:after,
.wp-block-read-more:after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  height: 2px;
  width: 100%;
  background-color: transparent;
  transition: all 250ms ease-out;
}
.wp-block-post-excerpt__more-link:hover,
.wp-block-read-more:hover {
  color: var(--color-bg--tertiary);
}
.wp-block-post-excerpt__more-link:hover:after,
.wp-block-read-more:hover:after {
  background: var(--color-bg--tertiary-hover);
}

/* _spacing.scss
 * Description: styles for spacing that can't be defined in theme.json
 * Author: Caroline Ferraby
 * Date: 12 November 2025
 */
/* ---------------------------------------------------
   Horizontal spacing ( gap )
--------------------------------------------------- */
.is-layout-constrained > .wp-block-group {
  margin-top: 0 !important;
}

:where(.is-layout-flex) {
  gap: 0;
}
:where(.is-layout-flex) > * {
  margin-bottom: 0 !important;
}

.wp-block-buttons.is-layout-flex {
  --wp--style--block-gap: 1rem;
  gap: 1rem;
}

:where(.wp-block-post-content > .wp-block-group > .wp-block-group) {
  gap: 2rem;
}

:where(.wp-block-columns.is-layout-flex) {
  gap: 2rem;
}
:where(.wp-block-columns.is-layout-flex) .wp-block-column {
  display: block;
}

.wp-block-gallery.is-layout-flex {
  --wp--style--block-gap: 0.75rem;
  gap: 0.75rem;
}

:where(.wp-block-group.is-nowrap:not(.is-vertical)) {
  gap: 1.5rem;
}

.wp-block-post-template:where(.is-layout-grid) {
  gap: 1.5rem;
}

/* ---------------------------------------------------
   Vertical spacing ( margin bottom )

   The styles below define default margin bottom values
   that will provide consistent vertical spacing, 
   regardless of whether or not container blocks are 
   used, and can easily be overridden as necessary.
--------------------------------------------------- */
:root body :where(.is-layout-constrained, .is-layout-flow) > .is-style-title:not(:last-child) {
  margin-block-end: 1.5rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow) > h1:not(:last-child) {
  margin-block-end: 1.095rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow) > h2:not(:last-child) {
  margin-block-end: 1.095rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow) > h3:not(:last-child) {
  margin-block-end: 1.095rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow) > h4:not(:last-child) {
  margin-block-end: 1rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow) > h5:not(:last-child) {
  margin-block-end: 1rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow) > h6:not(:last-child) {
  margin-block-end: 1rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow) > p:not(:last-child) {
  margin-block-end: 1rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow) > .is-style-intro:not(:last-child) {
  margin-block-end: 1rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow) > .is-style-small:not(:last-child) {
  margin-block-end: 1rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow) > .is-style-pre-header:not(:last-child) {
  margin-block-end: 1rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow) > hr:not(:last-child) {
  margin-block-end: 1rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow) > pre:not(:last-child) {
  margin-block-end: 1rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow) > ul.wp-block-list:not(:last-child) {
  margin-block-end: 1rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow) > ol.wp-block-list:not(:last-child) {
  margin-block-end: 1rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow) > blockquote:not(:last-child) {
  margin-block-end: 2rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow) > details:not(:last-child) {
  margin-block-end: 1rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow) > details:has(+ details):not(:last-child) {
  margin-block-end: 0;
}

:root body :where(.is-layout-constrained, .is-layout-flow) > figure:not(:last-child) {
  margin-block-end: 1.5rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow) > .wp-block-columns:not(:last-child) {
  margin-block-end: 2rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow) > .wp-block-buttons:not(:last-child) {
  margin-block-end: 1rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow) > .wp-block-heading:has(+ .wp-block-buttons):not(:last-child) {
  margin-block-end: 2rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow) > p:has(+ .wp-block-buttons):not(:last-child) {
  margin-block-end: 2rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow) > .wp-block-file:not(:last-child) {
  margin-block-end: 1rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow) > .wp-block-social-links:not(:last-child) {
  margin-block-end: 1rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow) > .wp-block-media-text-content:not(:last-child) {
  margin-block-end: 1rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow) > .wp-block-query-pagination:not(:last-child) {
  margin-block-end: 1rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow) > .wp-block-post-date:not(:last-child) {
  margin-block-end: 1rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow) > .wp-block-post-terms:not(:last-child) {
  margin-block-end: 1rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow) > .wp-block-pullquote:not(:last-child) {
  margin-block-end: 2rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow) > .wp-block-tabs:not(:last-child) {
  margin-block-end: 2rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow) > .wp-block-table:not(:last-child) {
  margin-block-end: 1.5rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow) > .wp-block-custom-prefix:not(:last-child) {
  margin-block-end: 1.5rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow) > .wp-block-custom-contains:not(:last-child) {
  margin-block-end: 1.5rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow) > .wpcf7:not(:last-child) {
  margin-block-end: 2rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow) > .blocks-gallery-caption:not(:last-child) {
  margin-block-end: 0;
}

:root body :where(.is-layout-constrained, .is-layout-flow) > .figcaption-not-gallery:not(:last-child) {
  margin-block-end: 1rem;
}

.is-layout-flex > * {
  margin-bottom: 0 !important;
}

blockquote > :last-child,
.wp-block-cover__inner-container > :last-child,
.wp-block-group > :last-child,
.wp-block-group.is-nowrap:not(.is-vertical) > *:last-child {
  margin-bottom: 0;
}

@media screen and (max-width: 781px) {
  .wp-block-column:last-child > :last-child,
  .wp-block-column.has-background > :last-child {
    margin-bottom: 0;
  }
}
@media screen and (min-width: 782px) {
  .wp-block-column > :last-child,
  .wp-block-media-text__content > :last-child {
    margin-bottom: 0;
  }
}
:root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group:has(> .is-style-title:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> .is-style-title)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> .is-style-title.last)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > .is-style-title:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > .is-style-title.last:last-child)):not(:last-child) {
  margin-block-end: 1.5rem;
}

:where(.wp-block-columns:has(> div.has-background > .is-style-title:last-child)),
:where(.wp-block-columns:has(> div.has-background > .is-style-title.last:last-child)) {
  row-gap: 1.5rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group:has(> h1:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> h1)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> h1.last)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > h1:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > h1.last:last-child)):not(:last-child) {
  margin-block-end: 1.095rem;
}

:where(.wp-block-columns:has(> div.has-background > h1:last-child)),
:where(.wp-block-columns:has(> div.has-background > h1.last:last-child)) {
  row-gap: 1.095rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group:has(> h2:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> h2)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> h2.last)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > h2:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > h2.last:last-child)):not(:last-child) {
  margin-block-end: 1.095rem;
}

:where(.wp-block-columns:has(> div.has-background > h2:last-child)),
:where(.wp-block-columns:has(> div.has-background > h2.last:last-child)) {
  row-gap: 1.095rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group:has(> h3:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> h3)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> h3.last)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > h3:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > h3.last:last-child)):not(:last-child) {
  margin-block-end: 1.095rem;
}

:where(.wp-block-columns:has(> div.has-background > h3:last-child)),
:where(.wp-block-columns:has(> div.has-background > h3.last:last-child)) {
  row-gap: 1.095rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group:has(> h4:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> h4)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> h4.last)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > h4:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > h4.last:last-child)):not(:last-child) {
  margin-block-end: 1rem;
}

:where(.wp-block-columns:has(> div.has-background > h4:last-child)),
:where(.wp-block-columns:has(> div.has-background > h4.last:last-child)) {
  row-gap: 1rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group:has(> h5:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> h5)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> h5.last)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > h5:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > h5.last:last-child)):not(:last-child) {
  margin-block-end: 1rem;
}

:where(.wp-block-columns:has(> div.has-background > h5:last-child)),
:where(.wp-block-columns:has(> div.has-background > h5.last:last-child)) {
  row-gap: 1rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group:has(> h6:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> h6)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> h6.last)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > h6:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > h6.last:last-child)):not(:last-child) {
  margin-block-end: 1rem;
}

:where(.wp-block-columns:has(> div.has-background > h6:last-child)),
:where(.wp-block-columns:has(> div.has-background > h6.last:last-child)) {
  row-gap: 1rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group:has(> p:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> p)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> p.last)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > p:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > p.last:last-child)):not(:last-child) {
  margin-block-end: 1rem;
}

:where(.wp-block-columns:has(> div.has-background > p:last-child)),
:where(.wp-block-columns:has(> div.has-background > p.last:last-child)) {
  row-gap: 1rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group:has(> .is-style-intro:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> .is-style-intro)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> .is-style-intro.last)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > .is-style-intro:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > .is-style-intro.last:last-child)):not(:last-child) {
  margin-block-end: 1rem;
}

:where(.wp-block-columns:has(> div.has-background > .is-style-intro:last-child)),
:where(.wp-block-columns:has(> div.has-background > .is-style-intro.last:last-child)) {
  row-gap: 1rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group:has(> .is-style-small:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> .is-style-small)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> .is-style-small.last)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > .is-style-small:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > .is-style-small.last:last-child)):not(:last-child) {
  margin-block-end: 1rem;
}

:where(.wp-block-columns:has(> div.has-background > .is-style-small:last-child)),
:where(.wp-block-columns:has(> div.has-background > .is-style-small.last:last-child)) {
  row-gap: 1rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group:has(> .is-style-pre-header:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> .is-style-pre-header)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> .is-style-pre-header.last)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > .is-style-pre-header:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > .is-style-pre-header.last:last-child)):not(:last-child) {
  margin-block-end: 1rem;
}

:where(.wp-block-columns:has(> div.has-background > .is-style-pre-header:last-child)),
:where(.wp-block-columns:has(> div.has-background > .is-style-pre-header.last:last-child)) {
  row-gap: 1rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group:has(> hr:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> hr)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> hr.last)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > hr:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > hr.last:last-child)):not(:last-child) {
  margin-block-end: 1rem;
}

:where(.wp-block-columns:has(> div.has-background > hr:last-child)),
:where(.wp-block-columns:has(> div.has-background > hr.last:last-child)) {
  row-gap: 1rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group:has(> pre:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> pre)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> pre.last)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > pre:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > pre.last:last-child)):not(:last-child) {
  margin-block-end: 1rem;
}

:where(.wp-block-columns:has(> div.has-background > pre:last-child)),
:where(.wp-block-columns:has(> div.has-background > pre.last:last-child)) {
  row-gap: 1rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group:has(> ul.wp-block-list:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> ul.wp-block-list)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> ul.wp-block-list.last)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > ul.wp-block-list:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > ul.wp-block-list.last:last-child)):not(:last-child) {
  margin-block-end: 1rem;
}

:where(.wp-block-columns:has(> div.has-background > ul.wp-block-list:last-child)),
:where(.wp-block-columns:has(> div.has-background > ul.wp-block-list.last:last-child)) {
  row-gap: 1rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group:has(> ol.wp-block-list:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> ol.wp-block-list)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> ol.wp-block-list.last)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > ol.wp-block-list:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > ol.wp-block-list.last:last-child)):not(:last-child) {
  margin-block-end: 1rem;
}

:where(.wp-block-columns:has(> div.has-background > ol.wp-block-list:last-child)),
:where(.wp-block-columns:has(> div.has-background > ol.wp-block-list.last:last-child)) {
  row-gap: 1rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group:has(> blockquote:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> blockquote)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> blockquote.last)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > blockquote:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > blockquote.last:last-child)):not(:last-child) {
  margin-block-end: 2rem;
}

:where(.wp-block-columns:has(> div.has-background > blockquote:last-child)),
:where(.wp-block-columns:has(> div.has-background > blockquote.last:last-child)) {
  row-gap: 2rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group:has(> details:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> details)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> details.last)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > details:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > details.last:last-child)):not(:last-child) {
  margin-block-end: 1rem;
}

:where(.wp-block-columns:has(> div.has-background > details:last-child)),
:where(.wp-block-columns:has(> div.has-background > details.last:last-child)) {
  row-gap: 1rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group:has(> details:has(+ details):last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> details:has(+ details))):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> details:has(+ details).last)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > details:has(+ details):last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > details:has(+ details).last:last-child)):not(:last-child) {
  margin-block-end: 0;
}

:where(.wp-block-columns:has(> div.has-background > details:has(+ details):last-child)),
:where(.wp-block-columns:has(> div.has-background > details:has(+ details).last:last-child)) {
  row-gap: 0;
}

:root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group:has(> figure:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> figure)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> figure.last)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > figure:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > figure.last:last-child)):not(:last-child) {
  margin-block-end: 1.5rem;
}

:where(.wp-block-columns:has(> div.has-background > figure:last-child)),
:where(.wp-block-columns:has(> div.has-background > figure.last:last-child)) {
  row-gap: 1.5rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group:has(> .wp-block-columns:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> .wp-block-columns)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> .wp-block-columns.last)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > .wp-block-columns:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > .wp-block-columns.last:last-child)):not(:last-child) {
  margin-block-end: 2rem;
}

:where(.wp-block-columns:has(> div.has-background > .wp-block-columns:last-child)),
:where(.wp-block-columns:has(> div.has-background > .wp-block-columns.last:last-child)) {
  row-gap: 2rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group:has(> .wp-block-buttons:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> .wp-block-buttons)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> .wp-block-buttons.last)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > .wp-block-buttons:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > .wp-block-buttons.last:last-child)):not(:last-child) {
  margin-block-end: 1rem;
}

:where(.wp-block-columns:has(> div.has-background > .wp-block-buttons:last-child)),
:where(.wp-block-columns:has(> div.has-background > .wp-block-buttons.last:last-child)) {
  row-gap: 1rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group:has(> .wp-block-heading:has(+ .wp-block-buttons):last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> .wp-block-heading:has(+ .wp-block-buttons))):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> .wp-block-heading:has(+ .wp-block-buttons).last)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > .wp-block-heading:has(+ .wp-block-buttons):last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > .wp-block-heading:has(+ .wp-block-buttons).last:last-child)):not(:last-child) {
  margin-block-end: 2rem;
}

:where(.wp-block-columns:has(> div.has-background > .wp-block-heading:has(+ .wp-block-buttons):last-child)),
:where(.wp-block-columns:has(> div.has-background > .wp-block-heading:has(+ .wp-block-buttons).last:last-child)) {
  row-gap: 2rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group:has(> p:has(+ .wp-block-buttons):last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> p:has(+ .wp-block-buttons))):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> p:has(+ .wp-block-buttons).last)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > p:has(+ .wp-block-buttons):last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > p:has(+ .wp-block-buttons).last:last-child)):not(:last-child) {
  margin-block-end: 2rem;
}

:where(.wp-block-columns:has(> div.has-background > p:has(+ .wp-block-buttons):last-child)),
:where(.wp-block-columns:has(> div.has-background > p:has(+ .wp-block-buttons).last:last-child)) {
  row-gap: 2rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group:has(> .wp-block-file:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> .wp-block-file)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> .wp-block-file.last)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > .wp-block-file:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > .wp-block-file.last:last-child)):not(:last-child) {
  margin-block-end: 1rem;
}

:where(.wp-block-columns:has(> div.has-background > .wp-block-file:last-child)),
:where(.wp-block-columns:has(> div.has-background > .wp-block-file.last:last-child)) {
  row-gap: 1rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group:has(> .wp-block-social-links:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> .wp-block-social-links)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> .wp-block-social-links.last)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > .wp-block-social-links:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > .wp-block-social-links.last:last-child)):not(:last-child) {
  margin-block-end: 1rem;
}

:where(.wp-block-columns:has(> div.has-background > .wp-block-social-links:last-child)),
:where(.wp-block-columns:has(> div.has-background > .wp-block-social-links.last:last-child)) {
  row-gap: 1rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group:has(> .wp-block-media-text-content:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> .wp-block-media-text-content)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> .wp-block-media-text-content.last)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > .wp-block-media-text-content:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > .wp-block-media-text-content.last:last-child)):not(:last-child) {
  margin-block-end: 1rem;
}

:where(.wp-block-columns:has(> div.has-background > .wp-block-media-text-content:last-child)),
:where(.wp-block-columns:has(> div.has-background > .wp-block-media-text-content.last:last-child)) {
  row-gap: 1rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group:has(> .wp-block-query-pagination:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> .wp-block-query-pagination)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> .wp-block-query-pagination.last)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > .wp-block-query-pagination:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > .wp-block-query-pagination.last:last-child)):not(:last-child) {
  margin-block-end: 1rem;
}

:where(.wp-block-columns:has(> div.has-background > .wp-block-query-pagination:last-child)),
:where(.wp-block-columns:has(> div.has-background > .wp-block-query-pagination.last:last-child)) {
  row-gap: 1rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group:has(> .wp-block-post-date:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> .wp-block-post-date)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> .wp-block-post-date.last)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > .wp-block-post-date:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > .wp-block-post-date.last:last-child)):not(:last-child) {
  margin-block-end: 1rem;
}

:where(.wp-block-columns:has(> div.has-background > .wp-block-post-date:last-child)),
:where(.wp-block-columns:has(> div.has-background > .wp-block-post-date.last:last-child)) {
  row-gap: 1rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group:has(> .wp-block-post-terms:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> .wp-block-post-terms)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> .wp-block-post-terms.last)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > .wp-block-post-terms:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > .wp-block-post-terms.last:last-child)):not(:last-child) {
  margin-block-end: 1rem;
}

:where(.wp-block-columns:has(> div.has-background > .wp-block-post-terms:last-child)),
:where(.wp-block-columns:has(> div.has-background > .wp-block-post-terms.last:last-child)) {
  row-gap: 1rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group:has(> .wp-block-pullquote:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> .wp-block-pullquote)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> .wp-block-pullquote.last)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > .wp-block-pullquote:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > .wp-block-pullquote.last:last-child)):not(:last-child) {
  margin-block-end: 2rem;
}

:where(.wp-block-columns:has(> div.has-background > .wp-block-pullquote:last-child)),
:where(.wp-block-columns:has(> div.has-background > .wp-block-pullquote.last:last-child)) {
  row-gap: 2rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group:has(> .wp-block-tabs:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> .wp-block-tabs)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> .wp-block-tabs.last)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > .wp-block-tabs:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > .wp-block-tabs.last:last-child)):not(:last-child) {
  margin-block-end: 2rem;
}

:where(.wp-block-columns:has(> div.has-background > .wp-block-tabs:last-child)),
:where(.wp-block-columns:has(> div.has-background > .wp-block-tabs.last:last-child)) {
  row-gap: 2rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group:has(> .wp-block-table:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> .wp-block-table)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> .wp-block-table.last)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > .wp-block-table:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > .wp-block-table.last:last-child)):not(:last-child) {
  margin-block-end: 1.5rem;
}

:where(.wp-block-columns:has(> div.has-background > .wp-block-table:last-child)),
:where(.wp-block-columns:has(> div.has-background > .wp-block-table.last:last-child)) {
  row-gap: 1.5rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group:has(> .wp-block-custom-prefix:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> .wp-block-custom-prefix)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> .wp-block-custom-prefix.last)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > .wp-block-custom-prefix:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > .wp-block-custom-prefix.last:last-child)):not(:last-child) {
  margin-block-end: 1.5rem;
}

:where(.wp-block-columns:has(> div.has-background > .wp-block-custom-prefix:last-child)),
:where(.wp-block-columns:has(> div.has-background > .wp-block-custom-prefix.last:last-child)) {
  row-gap: 1.5rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group:has(> .wp-block-custom-contains:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> .wp-block-custom-contains)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> .wp-block-custom-contains.last)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > .wp-block-custom-contains:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > .wp-block-custom-contains.last:last-child)):not(:last-child) {
  margin-block-end: 1.5rem;
}

:where(.wp-block-columns:has(> div.has-background > .wp-block-custom-contains:last-child)),
:where(.wp-block-columns:has(> div.has-background > .wp-block-custom-contains.last:last-child)) {
  row-gap: 1.5rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group:has(> .wpcf7:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> .wpcf7)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> .wpcf7.last)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > .wpcf7:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > .wpcf7.last:last-child)):not(:last-child) {
  margin-block-end: 2rem;
}

:where(.wp-block-columns:has(> div.has-background > .wpcf7:last-child)),
:where(.wp-block-columns:has(> div.has-background > .wpcf7.last:last-child)) {
  row-gap: 2rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group:has(> .blocks-gallery-caption:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> .blocks-gallery-caption)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> .blocks-gallery-caption.last)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > .blocks-gallery-caption:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > .blocks-gallery-caption.last:last-child)):not(:last-child) {
  margin-block-end: 0;
}

:where(.wp-block-columns:has(> div.has-background > .blocks-gallery-caption:last-child)),
:where(.wp-block-columns:has(> div.has-background > .blocks-gallery-caption.last:last-child)) {
  row-gap: 0;
}

:root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group:has(> .figcaption-not-gallery:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> .figcaption-not-gallery)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-group.is-nowrap:not(.is-vertical):has(> .figcaption-not-gallery.last)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > .figcaption-not-gallery:last-child)):not(:last-child), :root body :where(.is-layout-constrained, .is-layout-flow):where(.wp-block-columns:has(> div > .figcaption-not-gallery.last:last-child)):not(:last-child) {
  margin-block-end: 1rem;
}

:where(.wp-block-columns:has(> div.has-background > .figcaption-not-gallery:last-child)),
:where(.wp-block-columns:has(> div.has-background > .figcaption-not-gallery.last:last-child)) {
  row-gap: 1rem;
}

:root body :where(.is-layout-constrained, .is-layout-flow) * + .wp-block-heading {
  margin-block-start: 0.75em;
}

:root body :where(.wp-block-quote, .wp-block-pullquote):not(:first-child) {
  margin-block-start: 2rem;
}

/* _all-templates.scss
 * Description: loads all template partials.
 *              Import with: @use "templates/all-templates";
 * Author: Caleb Copeland
 * Date: 26 August 2026
 */
/* _pattern_header.scss
 * Description: styles for the header template part — topbar, and the header's
 *              overrides of the navigation block (desktop links and the
 *              hamburger). The open mobile overlay and its scrim live in
 *              templates/_pattern_overlay-nav.scss; the navigation block's own
 *              styles live in blocks/core/navigation.scss.
 * Author: Chris Jefferies and Caleb Copeland
 * Date: 18 November 2025
 */
/* ---------------------------------------------------
   Variables

   The header template part. The open mobile overlay's variables live in
   templates/_pattern_overlay-nav.scss, and the navigation block's own in
   blocks/core/navigation.scss.
--------------------------------------------------- */
/* ---------------------------------------------------
   Topbar Styles
--------------------------------------------------- */
#topbar > div {
  flex-wrap: wrap;
  justify-content: flex-start;
  row-gap: 0.25rem;
}
#topbar .topbar-cta {
  flex: 1;
}
#topbar a:where(:not(.wp-element-button)) {
  color: var(--color-bg--link);
  font-size: 0.875rem;
  line-height: 1em;
  text-decoration: underline;
  text-decoration-style: dotted;
}
#topbar a:where(:not(.wp-element-button)):hover {
  color: var(--color-bg--link-hover);
}

/* ---------------------------------------------------
   Header Main Navigation Styles
--------------------------------------------------- */
header.wp-block-template-part .wp-block-site-logo a:hover {
  opacity: 0.7;
}
header.wp-block-template-part .wp-block-site-logo a img {
  max-height: 5rem;
  width: auto;
}
header.wp-block-template-part .nav-container nav.wp-block-navigation > .wp-block-navigation__responsive-container:not(.is-menu-open) ul.wp-block-navigation__container > li.wp-block-navigation-item > a.wp-block-navigation-item__content {
  color: var(--color-bg--primary);
  font-size: 1rem;
  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
  font-weight: 400;
  line-height: 3em;
  letter-spacing: 0;
}
header.wp-block-template-part .nav-container nav.wp-block-navigation > .wp-block-navigation__responsive-container:not(.is-menu-open) ul.wp-block-navigation__container > li.wp-block-navigation-item > a.wp-block-navigation-item__content:hover {
  color: var(--color-bg--primary-hover);
}
header.wp-block-template-part .nav-container nav.wp-block-navigation > .wp-block-navigation__responsive-container:not(.is-menu-open) ul.wp-block-navigation__container > li.wp-block-navigation-item > a.wp-block-navigation-item__content:after {
  content: "";
  position: absolute;
  width: 100%;
  height: 2px;
  left: 0;
  bottom: -8px;
  background: var(--color-bg--tertiary);
  pointer-events: none;
  opacity: 0;
  transition: all 0.3s;
}
header.wp-block-template-part .nav-container nav.wp-block-navigation > .wp-block-navigation__responsive-container:not(.is-menu-open) ul.wp-block-navigation__container > li.wp-block-navigation-item > a.wp-block-navigation-item__content:hover::after {
  bottom: -5px;
  opacity: 1;
}
header.wp-block-template-part .nav-container nav.wp-block-navigation > .wp-block-navigation__responsive-container:not(.is-menu-open) ul.wp-block-navigation__container > li.wp-block-navigation-item .wp-block-navigation__submenu-icon {
  color: var(--color-bg--secondary);
}
header.wp-block-template-part .nav-container nav.wp-block-navigation > .wp-block-navigation__responsive-container:not(.is-menu-open) ul.wp-block-navigation__container > li.wp-block-navigation-item ul.wp-block-navigation__submenu-container > li.wp-block-navigation-item > a.wp-block-navigation-item__content {
  font-size: 1rem;
}
header.wp-block-template-part .nav-container button.wp-block-navigation__responsive-container-open {
  position: relative;
  height: 2.5rem;
  width: 2.5rem;
  color: var(--color-bg--secondary) !important;
  border-radius: 0;
}
header.wp-block-template-part .nav-container button.wp-block-navigation__responsive-container-open > svg {
  height: 100%;
  width: 100%;
  transform: scaleY(0.8);
}
header.wp-block-template-part .nav-container button.wp-block-navigation__responsive-container-open .tf-block-icon {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  line-height: 0;
  transition: transform 300ms ease, color 300ms;
}
header.wp-block-template-part .nav-container button.wp-block-navigation__responsive-container-open .tf-block-icon svg {
  display: block;
  width: 100%;
  height: 100%;
  fill: currentColor;
  stroke: none;
}
header.wp-block-template-part .nav-container button.wp-block-navigation__responsive-container-open:hover {
  color: var(--color-bg--secondary-hover) !important;
}
@media (min-width: 1201px) {
  header.wp-block-template-part .nav-container .wp-block-navigation__responsive-container-open:not(.always-shown) {
    display: none !important;
  }
  header.wp-block-template-part .nav-container .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
    display: block !important;
    width: 100%;
    position: relative;
    z-index: auto;
    background-color: inherit;
  }
}
@media (max-width: 1200px) {
  header.wp-block-template-part .nav-container {
    flex-direction: row-reverse;
    gap: 1.5rem;
  }
  header.wp-block-template-part .nav-container nav.wp-block-navigation > .wp-block-navigation__responsive-container:not(.is-menu-open),
  header.wp-block-template-part .nav-container nav.wp-block-navigation > .wp-block-navigation__responsive-container:not(.is-menu-open) > .wp-block-navigation__responsive-close,
  header.wp-block-template-part .nav-container nav.wp-block-navigation > .wp-block-navigation__responsive-container:not(.is-menu-open) > .wp-block-navigation__responsive-close > .wp-block-navigation__responsive-dialog,
  header.wp-block-template-part .nav-container nav.wp-block-navigation > .wp-block-navigation__responsive-container:not(.is-menu-open) > .wp-block-navigation__responsive-close > .wp-block-navigation__responsive-dialog > .wp-block-navigation__responsive-container-content {
    display: contents !important;
  }
  header.wp-block-template-part .nav-container nav.wp-block-navigation > .wp-block-navigation__responsive-container:not(.is-menu-open) ul.wp-block-navigation__container,
  header.wp-block-template-part .nav-container nav.wp-block-navigation > .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-container-close {
    display: none !important;
  }
  header.wp-block-template-part .nav-container nav.wp-block-navigation > .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-buttons {
    order: -1;
  }
}
@media (max-width: 1200px) and (max-width: 500px) {
  header.wp-block-template-part .nav-container nav.wp-block-navigation > .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-buttons {
    display: none;
  }
}
header.wp-block-template-part .nav-container {
  /* Neutralize the wp default for 600px */
}
@media (min-width: 600px) {
  header.wp-block-template-part .nav-container .wp-block-navigation__responsive-container-open:not(.always-shown) {
    display: flex;
  }
  header.wp-block-template-part .nav-container .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
    display: none;
  }
}

/* _pattern_overlay-nav.scss
 * Description: the navigation overlay — scrim, and the panels a
 *              navigation-overlay template part renders into. See "Navigation
 *              overlays" in README.md for how the pieces fit together.
 * Author: Chris Jefferies and Caleb Copeland
 * Date: 1 September 2026
 */
/* ---------------------------------------------------
   Variables — global
--------------------------------------------------- */
/* ---------------------------------------------------
   Variables — scrim
--------------------------------------------------- */
/* ---------------------------------------------------
   Variables — sidebar
--------------------------------------------------- */
/* ---------------------------------------------------
   Variables — fullscreen
--------------------------------------------------- */
/* ---------------------------------------------------
   Accordion submenus

   Opt-in for a shape whose children should open on their toggle instead of
   sitting open. Core renders the toggle; the open state is the class
   scripts.js puts on the item, because core binds aria-expanded to a state
   that counts an open overlay as an open submenu.
--------------------------------------------------- */
/* ---------------------------------------------------
   GLOBAL — every open overlay, custom part or core's default
--------------------------------------------------- */
nav.wp-block-navigation .wp-block-navigation__responsive-container.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content ul.wp-block-navigation__container:not(.wp-block-navigation__submenu-container) {
  font-size: 1.25rem;
}
nav.wp-block-navigation .wp-block-navigation__responsive-container.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content li.wp-block-navigation-item {
  width: 100%;
  flex-direction: column;
  align-items: flex-start;
}
nav.wp-block-navigation .wp-block-navigation__responsive-container.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content li.wp-block-navigation-item a.wp-block-navigation-item__content {
  width: 100%;
  padding: 0.25rem 0;
  font-size: inherit;
  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
  font-weight: 400;
  line-height: 1.5em;
  transition: color 300ms;
}
nav.wp-block-navigation .wp-block-navigation__responsive-container.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content li.wp-block-navigation-item a.wp-block-navigation-item__content:hover, nav.wp-block-navigation .wp-block-navigation__responsive-container.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content li.wp-block-navigation-item a.wp-block-navigation-item__content:focus {
  color: var(--color-bg--primary);
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-overlay-close,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
  color: var(--color-bg--text);
  transition: color 300ms;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-overlay-close:hover,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close:hover {
  color: var(--color-bg--primary);
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-overlay-close svg,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close svg {
  width: 1.88rem;
  height: 1.88rem;
  fill: currentColor;
}

/* ---------------------------------------------------
   GLOBAL — submenus in flow
--------------------------------------------------- */
nav.wp-block-navigation .wp-block-navigation__responsive-container.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content ul.wp-block-navigation__submenu-container {
  position: static;
  width: 100%;
  font-size: 0.85em;
  min-width: 0;
  height: auto;
  padding: 0 0 0 var(--tf-overlay-submenu-indent, 1.5rem);
  border: 0;
  border-inline-start: var(--tf-overlay-submenu-rule, 1px solid var(--color-bg--border));
  opacity: 1;
  overflow: visible;
  visibility: visible;
  box-shadow: none !important;
}
nav.wp-block-navigation .wp-block-navigation__responsive-container.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content ul.wp-block-navigation__submenu-container:not(.has-background) {
  background: transparent;
}
nav.wp-block-navigation .wp-block-navigation__responsive-container.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content ul.wp-block-navigation__submenu-container:not(.has-text-color) {
  color: var(--color-bg--link);
}
nav.wp-block-navigation .wp-block-navigation__responsive-container.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content ul.wp-block-navigation__submenu-container ul.wp-block-navigation__submenu-container {
  border-inline-start: 0;
}
nav.wp-block-navigation .wp-block-navigation__responsive-container.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content ul.wp-block-navigation__submenu-container > li.wp-block-navigation-item {
  padding: 0;
}
nav.wp-block-navigation .wp-block-navigation__responsive-container.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content ul.wp-block-navigation__submenu-container > li.wp-block-navigation-item > .wp-block-navigation-item__content {
  font-size: inherit;
}
nav.wp-block-navigation .wp-block-navigation__responsive-container.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content ul.wp-block-navigation__submenu-container > li.wp-block-navigation-item > .wp-block-navigation-item__content:hover, nav.wp-block-navigation .wp-block-navigation__responsive-container.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content ul.wp-block-navigation__submenu-container > li.wp-block-navigation-item > .wp-block-navigation-item__content:active {
  opacity: 1;
}
nav.wp-block-navigation .wp-block-navigation__responsive-container.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content ul.wp-block-navigation__submenu-container > li.wp-block-navigation-item:not(:first-child) > .wp-block-navigation-item__content {
  border-top: 0;
}
nav.wp-block-navigation .wp-block-navigation__responsive-container.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-icon {
  display: none;
}

/* ---------------------------------------------------
   CUSTOM — scrim, and the scaffolding a part sits in
--------------------------------------------------- */
.wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open {
  background-color: rgba(0, 0, 0, 0.5);
  backdrop-filter: none;
  overflow: hidden;
}
@media (prefers-reduced-motion: no-preference) {
  .wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open {
    animation: nav-overlay-scrim-in 300ms ease both;
  }
}
.wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-close,
.wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-dialog,
.wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content,
.wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__overlay-container {
  display: flex;
  flex: 1;
  width: 100%;
  max-width: none;
  min-height: 0;
  margin: 0;
  padding: 0;
  align-items: stretch;
}
.wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__overlay-container > * {
  box-sizing: border-box;
  max-width: 100%;
  overflow-y: auto;
}
.wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__overlay-container > *:not(.has-background) {
  background-color: #fff;
}

/* ---------------------------------------------------
   SIDEBAR — parts/navigation-overlay.html
--------------------------------------------------- */
.wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__overlay-container:has(> .nav-overlay__panel--sidebar) {
  justify-content: flex-end;
}
.wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .nav-overlay__panel--sidebar {
  width: max(50%, 300px);
  box-shadow: -0.12rem 0 1rem 0 rgba(0, 0, 0, 0.15);
}
@media (prefers-reduced-motion: no-preference) {
  .wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .nav-overlay__panel--sidebar {
    animation: nav-overlay-panel-in-right 300ms cubic-bezier(0.22, 0.61, 0.36, 1) both;
  }
}

/* ---------------------------------------------------
   FULLSCREEN — parts/navigation-overlay-fullscreen.html
--------------------------------------------------- */
.wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .nav-overlay__panel--fullscreen {
  width: 100%;
  --tf-overlay-submenu-indent: 0;
  --tf-overlay-submenu-rule: 0;
}
@media (prefers-reduced-motion: no-preference) {
  .wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .nav-overlay__panel--fullscreen {
    animation: nav-overlay-panel-fade-in 300ms ease both;
  }
}
.wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .nav-overlay__panel--fullscreen > * {
  width: 100%;
  max-width: var(--content-size);
  margin-inline: auto;
}

nav.wp-block-navigation .wp-block-navigation__responsive-container.wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .nav-overlay__panel--fullscreen li.wp-block-navigation-item.has-child {
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.25em;
}
nav.wp-block-navigation .wp-block-navigation__responsive-container.wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .nav-overlay__panel--fullscreen li.wp-block-navigation-item.has-child > a.wp-block-navigation-item__content {
  width: auto;
  flex: none;
}
nav.wp-block-navigation .wp-block-navigation__responsive-container.wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .nav-overlay__panel--fullscreen ul.wp-block-navigation__submenu-container {
  display: none;
  width: 100%;
}
nav.wp-block-navigation .wp-block-navigation__responsive-container.wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .nav-overlay__panel--fullscreen li.wp-block-navigation-item.tf-submenu-open > ul.wp-block-navigation__submenu-container {
  display: block;
}
nav.wp-block-navigation .wp-block-navigation__responsive-container.wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .nav-overlay__panel--fullscreen .wp-block-navigation__submenu-icon {
  display: flex;
}
nav.wp-block-navigation .wp-block-navigation__responsive-container.wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .nav-overlay__panel--fullscreen .wp-block-navigation__submenu-icon svg {
  transform: none;
  transition: transform 300ms ease;
}
nav.wp-block-navigation .wp-block-navigation__responsive-container.wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .nav-overlay__panel--fullscreen li.wp-block-navigation-item.tf-submenu-open > .wp-block-navigation__submenu-icon svg,
nav.wp-block-navigation .wp-block-navigation__responsive-container.wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .nav-overlay__panel--fullscreen li.wp-block-navigation-item.tf-submenu-open > .wp-block-navigation-submenu__toggle svg {
  transform: rotate(180deg);
}
nav.wp-block-navigation .wp-block-navigation__responsive-container.wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .nav-overlay__panel--fullscreen ul.wp-block-navigation__container,
nav.wp-block-navigation .wp-block-navigation__responsive-container.wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .nav-overlay__panel--fullscreen ul.wp-block-navigation__submenu-container,
nav.wp-block-navigation .wp-block-navigation__responsive-container.wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .nav-overlay__panel--fullscreen li.wp-block-navigation-item {
  align-items: center;
}
nav.wp-block-navigation .wp-block-navigation__responsive-container.wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .nav-overlay__panel--fullscreen ul.wp-block-navigation__container:not(.wp-block-navigation__submenu-container) {
  font-size: 1.5rem;
}
nav.wp-block-navigation .wp-block-navigation__responsive-container.wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .nav-overlay__panel--fullscreen li.wp-block-navigation-item > a.wp-block-navigation-item__content {
  justify-content: center;
  text-align: center;
}

/* ---------------------------------------------------
   DEFAULT — a navigation block with no overlay part

   Mirrors core's five-class white fill one element longer, keeping its
   `:not(.has-background)` guard.
--------------------------------------------------- */
nav.wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) {
  background-color: #fff;
}

/* ---------------------------------------------------
   Keyframes
--------------------------------------------------- */
@keyframes nav-overlay-scrim-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes nav-overlay-panel-fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes nav-overlay-panel-in-right {
  from {
    transform: translateX(100%);
  }
  to {
    transform: none;
  }
}
@keyframes nav-overlay-panel-in-left {
  from {
    transform: translateX(-100%);
  }
  to {
    transform: none;
  }
}
/* _pattern_footer.scss
 * Description: styles for the footer template part
 * Author: Chris Jefferies and Caleb Copeland
 * Date: 18 November 2025
 */
/* ---------------------------------------------------
   Footer template part
--------------------------------------------------- */
footer.wp-block-template-part .wp-block-columns {
  margin-bottom: 1rem;
}
footer.wp-block-template-part .wp-block-columns .footer-logo a {
  opacity: 1;
  transition: opacity 300ms;
}
footer.wp-block-template-part .wp-block-columns .footer-logo a:hover {
  opacity: 0.7;
}
footer.wp-block-template-part .wp-block-columns .footer-logo a img {
  width: 100%;
  max-width: 200px;
}
footer.wp-block-template-part .wp-block-columns nav.wp-block-navigation ul.wp-block-navigation__container li.wp-block-navigation-item a.wp-block-navigation-item__content {
  line-height: 1.3em;
}
@media (max-width: 1024px) {
  footer.wp-block-template-part .wp-block-columns {
    flex-wrap: wrap !important;
  }
  footer.wp-block-template-part .wp-block-columns .logo-column {
    flex-basis: 48% !important;
  }
  footer.wp-block-template-part .wp-block-columns .nav-column {
    flex-basis: 48% !important;
  }
  footer.wp-block-template-part .wp-block-columns .nav-column .wp-block-columns {
    flex-wrap: wrap !important;
  }
  footer.wp-block-template-part .wp-block-columns .contact-column {
    flex-basis: 100% !important;
  }
}
@media (max-width: 781px) {
  footer.wp-block-template-part .wp-block-columns {
    align-items: center;
  }
  footer.wp-block-template-part .wp-block-columns .logo-column {
    flex-basis: 50% !important;
  }
  footer.wp-block-template-part .wp-block-columns .nav-column {
    flex-basis: 50% !important;
  }
  footer.wp-block-template-part .wp-block-columns .contact-column {
    flex-basis: 100% !important;
  }
}
footer.wp-block-template-part .privacy-row {
  padding-top: 1rem;
  border-top: 1px solid #74388B;
}
footer.wp-block-template-part .privacy-row nav.wp-block-navigation ul.wp-block-navigation__container li.wp-block-navigation-item a.wp-block-navigation-item__content {
  color: #fff;
  text-decoration-style: dotted !important;
}

/* _pattern_promotion.scss
 * Description: styles for promotion synced patterns 
 * Author: Caleb Copeland
 * Date: 16 December 2025
 */
/* ---------------------------------------------------
   Variables
--------------------------------------------------- */
/* ---------------------------------------------------
   Styles
--------------------------------------------------- */
.promotion {
  display: flex;
  position: relative;
  padding: 0 !important;
  height: 100%;
  flex-flow: column nowrap;
}
.promotion:has(img, .heading:not(:empty), .description:not(:empty), .alt-text:not(:empty), .wp-block-buttons:not(:empty)) {
  box-shadow: 0 0.13rem 0.63rem 0 rgba(0, 0, 0, 0.15);
}
.promotion > figure {
  display: flex;
  flex-flow: column;
  justify-content: center;
  align-items: center;
  margin: 0 !important;
  aspect-ratio: 2 / 1;
  object-fit: cover;
  overflow: hidden;
}
.promotion > figure img {
  width: 100%;
  aspect-ratio: 2 / 1;
  object-fit: cover;
  transition: transform 1s;
}
.promotion > figure.fallback img {
  width: calc(100% - 3rem);
  object-fit: contain;
}
.promotion > figure.fallback:has(+ .wp-block-post-featured-image) {
  display: none !important;
}
.promotion .content-container {
  display: flex;
  position: static;
  margin: 0;
  flex-flow: column nowrap;
  flex-grow: 1;
}
.promotion .content-container:has(.heading:not(:empty), .description:not(:empty), .alt-text:not(:empty), .wp-block-buttons:not(:empty)) {
  padding: 1.5rem;
}
.promotion .content-container .heading:empty,
.promotion .content-container .description:empty,
.promotion .content-container .description:has(~ .alt-text:empty):has(~ .wp-block-buttons:empty),
.promotion .content-container .alt-text:empty,
.promotion .content-container .wp-block-buttons:empty {
  margin-bottom: 0;
}
.promotion .content-container :where(.heading) {
  color: var(--color-bg--secondary);
  transition: color 300ms;
}
.promotion .content-container .description {
  font-size: 1rem;
}
.promotion .content-container :where(.alt-text) {
  margin-bottom: 1rem;
  color: var(--color-bg--secondary);
  font-size: 0.8rem;
}
.promotion .content-container .wp-block-buttons {
  margin-bottom: auto !important;
  width: 100%;
}
.promotion .content-container .wp-block-buttons .wp-block-button {
  margin-bottom: 1.5rem;
  padding: 0;
  border: 0;
}
.promotion .content-container .wp-block-buttons .wp-block-button .is-style-minimal a {
  padding: 0;
  border: 0;
}
.promotion .content-container .wp-block-buttons .wp-block-button a[href]:not([href=""]):not([href="#"])::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}
.promotion:has(.wp-block-button a[href]:not([href=""]):not([href="#"]):hover) > figure img {
  transform: scale(1.01);
}
.promotion:has(.wp-block-button a[href]:not([href=""]):not([href="#"]):hover) .content-container .heading {
  color: var(--color-bg--secondary-hover) !important;
}

.wp-block-group :has(> .wp-block-query) {
  width: 100%;
}

.wp-block-query {
  width: 100%;
}
.wp-block-query .wp-block-post {
  margin-bottom: 0;
}
.wp-block-query .wp-block-post .promotion {
  position: relative;
  margin: 0;
}
.wp-block-query .wp-block-post .promotion .term-container {
  position: absolute;
  display: flex;
  flex-flow: row wrap;
  top: 1rem;
  left: 1rem;
  margin-bottom: 0;
  gap: 0.5rem;
}
.wp-block-query .wp-block-post .promotion .term-container .term {
  padding: 0.5rem;
  color: var(--color-bg--secondary);
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.19rem;
  background-color: #fff;
  z-index: 1;
}
.wp-block-query .wp-block-post .promotion figure {
  margin: 0;
}
.wp-block-query .wp-block-post .promotion figure img {
  transition: transform 1s;
}
.wp-block-query .wp-block-post .promotion .heading, .wp-block-query .wp-block-post .promotion .heading a {
  color: #74388B;
}
.wp-block-query .wp-block-post .promotion .heading:hover, .wp-block-query .wp-block-post .promotion .heading a:hover {
  color: var(--color-bg--secondary-hover);
}
.wp-block-query .wp-block-post .promotion .heading a[href]:not([href=""]):not([href="#"])::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}
.wp-block-query .wp-block-post .promotion:has(.heading a[href]:not([href=""]):not([href="#"]):hover) figure img {
  transform: scale(1.05);
}
.grid-row .promotion {
  height: 100%;
  width: 100%;
  margin-bottom: 0;
}

/* _page-404.scss
 * Description: styles for the 404 template
 * Author: Chris Jefferies and Caleb Copeland
 * Date: 18 November 2025
 */
/* ---------------------------------------------------
   Variables
--------------------------------------------------- */
/* ---------------------------------------------------
   404 template part
--------------------------------------------------- */
.error404 .error-404 {
  margin-bottom: auto !important;
}
.error404 .error-404__code {
  font-size: 8rem;
}
.error404 .error-404__form {
  max-width: 28rem;
  margin-inline: auto;
}

/* _page-search.scss
 * Description: styles for the search results template
 * Author: Chris Jefferies and Caleb Copeland
 * Date: 1 September 2026
 */
/* ---------------------------------------------------
   Variables
--------------------------------------------------- */
/* ---------------------------------------------------
   Search page — shared

   Body classes: `search` on both states, plus `search-results` when the query
   returned rows and `search-no-results` when it did not. Anything that should
   hold in both states goes on `.search`.
--------------------------------------------------- */
.search .wp-block-search__input[type=search] {
  max-width: none;
  padding: 0.5rem 1rem;
}
.search .wp-block-query {
  margin-bottom: 0;
}

/* ---------------------------------------------------
   Header band

   The query title and the field sit together on a tinted full-bleed band, so
   the page opens with the thing you came to use rather than a bare heading.
--------------------------------------------------- */
.search-header__title {
  overflow-wrap: break-word;
}
.search-header__form {
  max-width: 35rem;
  margin-inline: auto;
}
.search-header__form .wp-block-search__inside-wrapper {
  border: 0.13rem solid var(--color-bg--border);
  border-radius: 0.25rem;
  background-color: #fff;
  transition: border-color 200ms ease-out;
}
.search-header__form .wp-block-search__input[type=search] {
  border: 0;
  background-color: transparent;
}
.search-header__form .wp-block-search__input[type=search]:focus {
  box-shadow: none;
  outline: 0;
}
.search-header__form:focus-within .wp-block-search__inside-wrapper {
  border-color: var(--color-bg--primary);
  outline: 0.13rem solid var(--color-bg--primary);
  outline-offset: 0.13rem;
}

/* ---------------------------------------------------
   Result rows

   Rows, not cards. A hairline between them and a lot of air inside them, so
   ten results read as one list instead of ten boxes. The whole row is the
   click target and takes a faint wash on hover.
--------------------------------------------------- */
.search-results-list {
  list-style: none;
  padding-left: 0;
  margin-inline: -1rem;
}
.search-results-list.is-layout-grid {
  gap: 0;
}

.search-result {
  position: relative;
  padding-block: 1.5rem;
  padding-inline: 1rem;
  border-block-end: 0.07rem solid color-mix(in srgb, currentcolor 15%, transparent);
  transition: background-color 200ms ease-out;
}
.search-result:hover, .search-result:focus-within {
  background-color: color-mix(in srgb, var(--color-bg--primary) 7%, transparent);
}
.search-result:hover .search-result__title a, .search-result:focus-within .search-result__title a {
  text-decoration: underline;
  text-decoration-thickness: from-font;
  text-underline-offset: 0.15em;
}
.search-result__date {
  color: var(--color-bg--text-muted);
  font-family: "Oswald", "Arial Narrow", Arial, sans-serif;
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.13rem;
  line-height: 1.2em;
  text-transform: uppercase;
}
.search-result__title a {
  color: var(--color-bg--text);
  text-decoration: none;
  overflow-wrap: break-word;
}
.search-result__title a::after {
  content: "";
  position: absolute;
  inset: 0;
}
.search-result__excerpt {
  color: var(--color-bg--text-muted);
}
.search-result__excerpt p {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
}
@media screen and (prefers-reduced-motion: reduce) {
  .search-result {
    transition: none;
  }
}

.search-results-list > li:last-child .search-result {
  border-block-end: 0;
}

:root body .search-result > .search-result__date {
  margin-block-end: 0;
}

/* ---------------------------------------------------
   Empty state
--------------------------------------------------- */
.search-empty {
  padding-block: 1.5rem;
}

/* _block-containers.scss
 * Description: Styles for the container blocks — group and columns — that
 *              can't be defined in theme.json. Color tokens for backgrounds
 *              live in _bg-color-scheme.scss.
 * Author: Chris Jefferies and Caleb Copeland
 * Date: 27 August 2026
 */
/* ---------------------------------------------------
   Groups with a background color
--------------------------------------------------- */
:where(.wp-block-post-content, .is-root-container) > .wp-block-group {
  padding-block: 3rem;
}

.wp-block-post-content div > .wp-block-group.has-background {
  padding: 1.5rem;
}

.wp-block-group.has-background + .wp-block-group.has-background {
  margin-top: 0;
}

.has-bg-1-background-color + .wp-block-group.has-background.has-bg-1-background-color {
  padding-top: 0;
}

.has-bg-2-background-color + .wp-block-group.has-background.has-bg-2-background-color {
  padding-top: 0;
}

.has-bg-3-background-color + .wp-block-group.has-background.has-bg-3-background-color {
  padding-top: 0;
}

.has-bg-4-background-color + .wp-block-group.has-background.has-bg-4-background-color {
  padding-top: 0;
}

.has-white-background-color + .wp-block-group.has-background.has-white-background-color,
.has-black-background-color + .wp-block-group.has-background.has-black-background-color {
  padding-top: 0;
}

/* ---------------------------------------------------
   Full-width children of a vertical flex container

   A Group set to flex + vertical gets `align-items: flex-start` from core.
   That does not stretch its children, so each one is sized to MAX-CONTENT
   instead of to the container. Any child whose content is intrinsically wide
   then sets its own width and stops tracking the viewport — it overflows to
   the right and the page gains a horizontal scrollbar, while the container
   itself still reports the correct width.

   `alignfull` means "span the full width of the container", so a full-width
   child being max-content sized is never what was intended. Correcting it is
   a straight fix, not a preference.

   It has to be `width: 100%`, not `align-self: stretch`. Stretch sets the
   cross size from the container, but it is still clamped upward by the item's
   automatic minimum size, so a child with wide content keeps its own width and
   nothing changes — measured, stretch left the overflow exactly as it was.
   `width: 100%` resolves against the container instead of the content, which
   is the only version that actually holds.

   min-width: 0 lifts that automatic minimum so the content inside can reflow
   rather than push back out.

   Two kinds of child qualify, for the same reason:

   - `alignfull`, which literally asks to span the full width.
   - anything with a background, because a group carrying a background reads as
     a band or a panel. Sized to max-content it hugs its longest line instead,
     so the panel edge lands at whatever the copy happens to measure and moves
     whenever that copy is edited.
--------------------------------------------------- */
:where(.is-layout-flex.is-vertical) > :is(.alignfull, .has-background) {
  width: 100%;
  min-width: 0;
}

/* ---------------------------------------------------
   Columns with a background color
--------------------------------------------------- */
.wp-block-column.has-background {
  align-self: auto;
  padding: 2rem;
}
.wp-block-column.has-background.is-vertically-aligned-center {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.wp-block-column.has-background.is-vertically-aligned-bottom {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}

/* _bg-color-scheme.scss
 * Description: publishes the color tokens for each background color. Every
 *              --color-bg--* property a partial reads comes from here (or from
 *              the :root defaults in _root-variables.scss).
 * Author: Chris Jefferies and Caleb Copeland
 * Date: 27 August 2026
 */
/* ---------------------------------------------------
   Color tokens per background

   Each background republishes the --color-bg--* properties that
   _root-variables.scss sets defaults for. Because custom properties inherit,
   everything inside the container picks these up — so a partial writing
   `color: $primary` gets the right color for its background with no work.

   Both the backgrounds and the tokens come from $bg-tokens in
   _variables-color.scss. Add either one there and it appears here
   automatically — nothing in this file needs to change.
--------------------------------------------------- */
.has-bg-1-background-color {
  color: #fff;
  --color-bg--text: #fff;
  --color-bg--text-muted: #D8C3E2;
  --color-bg--primary: #E6D3ED;
  --color-bg--primary-hover: #F2E7F6;
  --color-bg--primary-text: #74388B;
  --color-bg--secondary: #DDE0E4;
  --color-bg--secondary-hover: #EFF1F3;
  --color-bg--secondary-text: #48525B;
  --color-bg--tertiary: #9BD0C8;
  --color-bg--tertiary-hover: #C2E4DF;
  --color-bg--accent: #FFCA2B;
  --color-bg--accent-hover: #FFDD7A;
  --color-bg--link: #A2D9D0;
  --color-bg--link-hover: #C8E9E4;
  --color-bg--border: #BF9ECD;
}

.has-bg-2-background-color {
  color: #221E1A;
  --color-bg--text: #221E1A;
  --color-bg--text-muted: #665E54;
  --color-bg--primary: #74388B;
  --color-bg--primary-hover: #462254;
  --color-bg--primary-text: #EFE9E1;
  --color-bg--secondary: #545C64;
  --color-bg--secondary-hover: #3C424A;
  --color-bg--secondary-text: #EFE9E1;
  --color-bg--tertiary: #376D66;
  --color-bg--tertiary-hover: #275049;
  --color-bg--accent: #96690D;
  --color-bg--accent-hover: #70500A;
  --color-bg--link: #29514C;
  --color-bg--link-hover: #1B3733;
  --color-bg--border: #8A8278;
}

.has-bg-3-background-color {
  color: #fff;
  --color-bg--text: #fff;
  --color-bg--text-muted: #C3CAD1;
  --color-bg--primary: #D7B9E3;
  --color-bg--primary-hover: #E9D7F0;
  --color-bg--primary-text: #48525B;
  --color-bg--secondary: #DDE0E4;
  --color-bg--secondary-hover: #EFF1F3;
  --color-bg--secondary-text: #48525B;
  --color-bg--tertiary: #8FCFC6;
  --color-bg--tertiary-hover: #B6E0DA;
  --color-bg--accent: #FFCA2B;
  --color-bg--accent-hover: #FFDD7A;
  --color-bg--link: #93D6CD;
  --color-bg--link-hover: #BCE6E0;
  --color-bg--border: #99A3AC;
}

.has-bg-4-background-color {
  color: #1A1C1E;
  --color-bg--text: #1A1C1E;
  --color-bg--text-muted: #5C6469;
  --color-bg--primary: #74388B;
  --color-bg--primary-hover: #462254;
  --color-bg--primary-text: #fff;
  --color-bg--secondary: #545C64;
  --color-bg--secondary-hover: #3C424A;
  --color-bg--secondary-text: #fff;
  --color-bg--tertiary: #376E65;
  --color-bg--tertiary-hover: #27504A;
  --color-bg--accent: #97690D;
  --color-bg--accent-hover: #715009;
  --color-bg--link: #29514C;
  --color-bg--link-hover: #1B3733;
  --color-bg--border: #82898E;
}

/* ---------------------------------------------------
   Applying the tokens

   Written once, not per background. Each rule points at a --color-bg--*
   token, and custom properties resolve against the NEAREST ancestor that
   sets them — so an h1 inside a bg-1 group nested in a bg-3 group picks up
   bg-1, automatically. Repeating these rules inside the loop above would
   emit five identical copies AND break that nesting, because the five
   copies have equal specificity and the last one in the file would win.

   Add a background or retune a color in $bg-tokens; nothing here changes.
--------------------------------------------------- */
body {
  color: var(--color-bg--text);
}

a:where(:not(.wp-element-button)),
.has-inline-color > a:where(:not(.wp-element-button)),
.has-text-color > a:where(:not(.wp-element-button)) {
  color: var(--color-bg--link);
}
a:where(:not(.wp-element-button)):hover, a:where(:not(.wp-element-button)):active,
.has-inline-color > a:where(:not(.wp-element-button)):hover,
.has-inline-color > a:where(:not(.wp-element-button)):active,
.has-text-color > a:where(:not(.wp-element-button)):hover,
.has-text-color > a:where(:not(.wp-element-button)):active {
  color: var(--color-bg--link-hover);
}

figcaption {
  color: var(--color-bg--text-muted);
}

.is-style-title,
h1, .is-style-h1, :root :where(.wp-block-cover h1:not(.has-text-color)),
h2, .is-style-h2, :root :where(.wp-block-cover h2:not(.has-text-color)) {
  color: var(--color-bg--primary);
}

h3, .is-style-h3, :root :where(.wp-block-cover h3:not(.has-text-color)),
h4, .is-style-h4, :root :where(.wp-block-cover h4:not(.has-text-color)),
h5, .is-style-h5, :root :where(.wp-block-cover h5:not(.has-text-color)),
h6, .is-style-h6, :root :where(.wp-block-cover h6:not(.has-text-color)) {
  color: var(--color-bg--secondary);
}

:where(:not(.is-layout-flex)) > :is(h1, .is-style-h1, h2, .is-style-h2) + :is(h2, .is-style-h2) {
  color: var(--color-bg--secondary);
}

ul > li::marker {
  color: var(--color-bg--secondary);
}

/* ---------------------------------------------------
   Per-background overrides
--------------------------------------------------- */
/* _pagination.scss
 * Description: styles for pagination that can't be defined in theme.json
 * Author: Chris Jefferies and Caleb Copeland
 * Date: 18 November 2025
 */
/* ---------------------------------------------------
   Pagination styles for the following blocks:
   * pagination block
   * comments pagination block
   * page break block
--------------------------------------------------- */
.post-page-numbers,
.page-numbers {
  padding: 0.3125rem 0.4rem;
  margin-left: 0.25rem;
  border: 1px solid var(--color-bg--border);
  border-radius: 3px;
}
.post-page-numbers.current,
.page-numbers.current {
  background-color: var(--color-bg--primary);
  border-color: var(--color-bg--primary);
  color: var(--color-bg--primary-text);
}
.post-page-numbers:hover,
.page-numbers:hover {
  border-color: var(--color-bg--primary-hover);
}

.post-page-numbers,
.wp-block-query-pagination a,
.wp-block-query-pagination-numbers a {
  text-decoration: none;
}

.wp-block-query-pagination-numbers:first-child .page-numbers:first-child {
  margin-left: 0;
}

.wp-block-query-pagination .wp-block-query-pagination-next-arrow {
  margin-left: 5px;
}

.wp-block-query-pagination .wp-block-query-pagination-previous-arrow {
  margin-right: 5px;
}

.wp-block-query-pagination > .wp-block-query-pagination-next,
.wp-block-query-pagination > .wp-block-query-pagination-numbers,
.wp-block-query-pagination > .wp-block-query-pagination-previous {
  margin-top: 0.5em;
}

/* button.scss
 * Description: styles for things that look like buttons but are not the button
 *              block — the button element, submits, and the read-more blocks.
 *              The button block itself is styled in blocks/core/button.scss.
 *              Both sides share the treatments in _button-mixins.scss.
 * Author: Chris Jefferies and Caleb Copeland
 * Date: 18 November 2025
 */
/* _forms.scss
 * Description: styles for forms created with the Contact Form 7 plugin
 * Author: Chris Jefferies and Caleb Copeland
 * Date: 18 November 2025
 */
/* -----------------------------------
   Variables
----------------------------------- */
/* -----------------------------------
   Form styles
----------------------------------- */
.wpcf7 form p {
  margin-top: 0.75rem;
}

.wpcf7 label {
  font-weight: 600;
}
.wpcf7 label .wpcf7-list-item-label {
  font-weight: 400;
}

p:has(input.wpcf7-validates-as-required) label::after {
  content: " *";
  position: relative;
  color: #A02528;
}

.wpcf7-form-control {
  display: inline-block;
}
.wpcf7-form-control:last-child {
  margin-bottom: 1.625rem;
}

.wpcf7 textarea,
.wpcf7 [type=text],
.wpcf7 [type=date],
.wpcf7 [type=datetime],
.wpcf7 [type=datetime-local],
.wpcf7 [type=month],
.wpcf7 [type=time],
.wpcf7 [type=week],
.wpcf7 [type=number],
.wpcf7 [type=search],
.wpcf7 [type=password],
.wpcf7 [type=email],
.wpcf7 [type=url],
.wpcf7 [type=tel],
.wpcf7 [type=file],
.wpcf7 select {
  box-sizing: border-box;
  width: 100%;
  padding: 0.625rem 0.75rem;
  margin: 0.5rem 0 0;
  color: var(--color-bg--text);
  background-color: #fff;
  border: 0.13rem solid var(--color-bg--border);
  border-radius: 0;
  outline: 0.06rem solid transparent;
  outline-offset: -0.13rem;
}
.wpcf7 textarea:focus,
.wpcf7 [type=text]:focus,
.wpcf7 [type=date]:focus,
.wpcf7 [type=datetime]:focus,
.wpcf7 [type=datetime-local]:focus,
.wpcf7 [type=month]:focus,
.wpcf7 [type=time]:focus,
.wpcf7 [type=week]:focus,
.wpcf7 [type=number]:focus,
.wpcf7 [type=search]:focus,
.wpcf7 [type=password]:focus,
.wpcf7 [type=email]:focus,
.wpcf7 [type=url]:focus,
.wpcf7 [type=tel]:focus,
.wpcf7 [type=file]:focus,
.wpcf7 select:focus {
  outline: 0.13rem solid var(--color-bg--primary);
  outline-offset: 0.13rem;
}
.wpcf7 [type=submit] {
  cursor: pointer;
}
.wpcf7 [type=checkbox],
.wpcf7 [type=radio] {
  margin: 0 0.5rem 0 -1.375rem;
  accent-color: var(--color-bg--primary);
}
.wpcf7 [type=checkbox]:focus-visible,
.wpcf7 [type=radio]:focus-visible {
  outline: 0.13rem solid var(--color-bg--primary);
  outline-offset: 0.13rem;
}
.wpcf7 .wpcf7-list-item {
  display: block;
  margin: 0.5rem 0 0 0;
}
.wpcf7 .wpcf7-list-item label {
  margin: 0;
  padding-left: 1.375rem;
}

/* -----------------------------------
   Validation
----------------------------------- */
.wpcf7 select:invalid,
.wpcf7 input:not([type=search]):invalid,
.wpcf7 textarea:invalid,
.wpcf7-not-valid {
  outline-color: #A02528;
}
.wpcf7 select:invalid:focus,
.wpcf7 input:not([type=search]):invalid:focus,
.wpcf7 textarea:invalid:focus,
.wpcf7-not-valid:focus {
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 4px #A02528;
  outline-color: #A02528;
}

.wpcf7-not-valid-tip {
  margin-top: 0.375rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
}

.wpcf7 form .wpcf7-response-output {
  font-size: 0.875rem;
  padding: 0;
  margin: 1rem 0;
  border-width: 0;
}
.wpcf7 form .wpcf7-response-output::before {
  content: "×";
  display: inline-block;
  margin-right: 5px;
  padding: 1px 5px;
  line-height: 1;
  box-shadow: 0 0 1px rgba(0, 0, 0, 0.25);
  border-radius: 10px;
  background-color: #A02528;
  color: #fff;
}

.wpcf7 form.spam .wpcf7-response-output::before {
  background-color: #E8B909;
}

.wpcf7 form.sent .wpcf7-response-output::before {
  content: "✓";
  padding: 1 3px;
  background-color: #008745;
}

/* -----------------------------------
   Gravity Form styles
----------------------------------- */
.gform_wrapper.gform-theme--framework > .gform_heading {
  display: none;
}
.gform_wrapper.gform-theme--framework > form .gform-body .gform_fields {
  row-gap: 1.5rem;
}
.gform_wrapper.gform-theme--framework > form .gform-body .gform_fields .gfield label, .gform_wrapper.gform-theme--framework > form .gform-body .gform_fields .gfield legend {
  color: var(--color-bg--text);
}
.gform_wrapper.gform-theme--framework > form .gform-body .gform_fields .gfield input, .gform_wrapper.gform-theme--framework > form .gform-body .gform_fields .gfield textarea, .gform_wrapper.gform-theme--framework > form .gform-body .gform_fields .gfield select {
  border-radius: 0.5rem;
  border: 2px solid var(--color-bg--border);
}
.has-bg-3-background-color .gform_wrapper.gform-theme--framework > form .gform-body .gform_fields .gfield input, .has-bg-3-background-color .gform_wrapper.gform-theme--framework > form .gform-body .gform_fields .gfield textarea, .has-bg-3-background-color .gform_wrapper.gform-theme--framework > form .gform-body .gform_fields .gfield select {
  background: transparent;
}

.gform_wrapper.gform-theme--framework > form .gform-body .gform_fields .gfield input:focus, .gform_wrapper.gform-theme--framework > form .gform-body .gform_fields .gfield textarea:focus, .gform_wrapper.gform-theme--framework > form .gform-body .gform_fields .gfield select:focus {
  outline-color: var(--color-bg--primary);
  outline-width: 2px;
}
.gform_wrapper.gform-theme--framework > form .gform-body .gform_fields .gfield input {
  padding-block: 0.2rem;
  line-height: 1.2;
}
.gform_wrapper.gform-theme--framework > form .gform-body .gform_fields .gfield textarea {
  min-block-size: 10rem;
}
.gform_wrapper.gform-theme--framework > form .gform-footer.gform_footer input[type=submit].gform_button.button {
  padding: 0.625rem 1.25rem;
  font-size: 1rem;
  font-family: Roboto, Helvetica Neue, Arial, sans-serif;
  font-weight: 400;
  letter-spacing: 0;
  border-radius: 0rem;
  border: 0.13rem solid;
  cursor: pointer;
  transition: all 300ms;
}
.small .gform_wrapper.gform-theme--framework > form .gform-footer.gform_footer input[type=submit].gform_button.button {
  padding: 0.5rem 1rem;
}
.gform_wrapper.gform-theme--framework > form .gform-footer.gform_footer input[type=submit].gform_button.button:focus-visible {
  outline: 0.13rem solid var(--color-bg--primary);
  outline-offset: 0.13rem;
}
.gform_wrapper.gform-theme--framework > form .gform-footer.gform_footer input[type=submit].gform_button.button {
  color: var(--color-bg--primary-text);
  background: var(--color-bg--primary);
  border-color: var(--color-bg--primary);
}
.gform_wrapper.gform-theme--framework > form .gform-footer.gform_footer input[type=submit].gform_button.button:hover {
  color: var(--color-bg--primary);
  background: transparent;
  border-color: var(--color-bg--primary);
}
.gform_wrapper.gform-theme--framework > form .gform-footer.gform_footer input[type=submit].gform_button.button {
  border-radius: 1rem 0;
  transition: all 300ms !important;
}
.gform_wrapper.gform-theme--framework > form.has-secondary-btn .gform-footer input[type=submit].gform_button.button {
  color: var(--color-bg--secondary);
  background: transparent;
  border-color: var(--color-bg--secondary);
}
.gform_wrapper.gform-theme--framework > form.has-secondary-btn .gform-footer input[type=submit].gform_button.button:hover {
  color: var(--color-bg--secondary-text);
  background: var(--color-bg--secondary);
  border-color: var(--color-bg--secondary);
}
.gform_wrapper.gform-theme--framework > form.has-small-btn .gform-footer input[type=submit].gform_button.button {
  padding: 0.5rem 1rem;
  border-radius: 0.5rem;
}
.gform_wrapper.gform-theme--framework > form.has-large-btn .gform-footer input[type=submit].gform_button.button {
  padding: 0.875rem 1.75rem;
}
.gform_wrapper.gform-theme--framework .gform_validation_errors, .gform_wrapper.gform-theme--framework .gfield_validation_message {
  color: #A02528 !important;
  border-radius: 0.5rem;
  border: 2px solid #A02528;
  outline: 0 !important;
  background-color: rgba(255, 255, 255, 0.9) !important;
}
.gform_wrapper.gform-theme--framework .gform_validation_errors {
  margin-bottom: 1.5rem;
}
.gform_wrapper.gform-theme--framework .gfield_validation_message {
  padding: 0.25rem 0.25rem 0.25rem 0.5rem;
}

/* _utilities.scss
 * Description: styles for utilities that can be used as helper classes
 * Author: Chris Jeffereies and Caleb Copeland
 * Date: 12 November 2025
 */
/* ---------------------------------------------------
   For Administrators (use all caps)
--------------------------------------------------- */
.FLAG {
  color: #FF00FF;
}

/* ---------------------------------------------------
   For Developers
--------------------------------------------------- */
.frame {
  border: 1px solid rgba(0, 0, 0, 0.2);
}

.flex-row {
  flex-direction: row;
}

.flex-column {
  flex-direction: column;
}

.flex-wrap {
  flex-wrap: wrap;
}

.flex-nowrap {
  flex-wrap: nowrap;
}

.flex-grow {
  flex-grow: 1;
}

.flex-shrink-0 {
  flex-shrink: 0;
}

.flex-1 {
  flex: 1 1 0%;
}

.justify-flex-start {
  justify-content: flex-start;
}

.justify-center {
  justify-content: center;
}

.justify-flex-end {
  justify-content: flex-end;
}

.justify-space-between {
  justify-content: space-between;
}

.justify-space-around {
  justify-content: space-around;
}

.align-items-flex-start {
  align-items: flex-start;
}

.align-items-center {
  align-items: center;
}

.align-items-flex-end {
  align-items: flex-end;
}

.align-items-stretch {
  align-items: stretch;
}

.mt-quarter {
  margin-top: 0.25rem !important;
}

.mt-half {
  margin-top: 0.5rem !important;
}

.m-0 {
  margin: 0 !important;
}

.m-xs {
  margin: 0.5rem !important;
}

.m-sm {
  margin: 1rem !important;
}

.m-md {
  margin: 1.5rem !important;
}

.m-ml {
  margin: 2rem !important;
}

.m-lg {
  margin: 3rem !important;
}

.m-xl {
  margin: 5rem !important;
}

.m-xxl {
  margin: 7.5rem !important;
}

.m-auto {
  margin: auto !important;
}

.mx-0 {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.mx-xs {
  margin-left: 0.5rem !important;
  margin-right: 0.5rem !important;
}

.mx-sm {
  margin-left: 1rem !important;
  margin-right: 1rem !important;
}

.mx-md {
  margin-left: 1.5rem !important;
  margin-right: 1.5rem !important;
}

.mx-ml {
  margin-left: 2rem !important;
  margin-right: 2rem !important;
}

.mx-lg {
  margin-left: 3rem !important;
  margin-right: 3rem !important;
}

.mx-xl {
  margin-left: 5rem !important;
  margin-right: 5rem !important;
}

.mx-xxl {
  margin-left: 7.5rem !important;
  margin-right: 7.5rem !important;
}

.mx-auto {
  margin-left: auto !important;
  margin-right: auto !important;
}

.my-0 {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.my-xs {
  margin-top: 0.5rem !important;
  margin-bottom: 0.5rem !important;
}

.my-sm {
  margin-top: 1rem !important;
  margin-bottom: 1rem !important;
}

.my-md {
  margin-top: 1.5rem !important;
  margin-bottom: 1.5rem !important;
}

.my-ml {
  margin-top: 2rem !important;
  margin-bottom: 2rem !important;
}

.my-lg {
  margin-top: 3rem !important;
  margin-bottom: 3rem !important;
}

.my-xl {
  margin-top: 5rem !important;
  margin-bottom: 5rem !important;
}

.my-xxl {
  margin-top: 7.5rem !important;
  margin-bottom: 7.5rem !important;
}

.my-auto {
  margin-top: auto !important;
  margin-bottom: auto !important;
}

.mt-0 {
  margin-top: 0 !important;
}

.mt-xs {
  margin-top: 0.5rem !important;
}

.mt-sm {
  margin-top: 1rem !important;
}

.mt-md {
  margin-top: 1.5rem !important;
}

.mt-ml {
  margin-top: 2rem !important;
}

.mt-lg {
  margin-top: 3rem !important;
}

.mt-xl {
  margin-top: 5rem !important;
}

.mt-xxl {
  margin-top: 7.5rem !important;
}

.mr-0 {
  margin-right: 0 !important;
}

.mr-xs {
  margin-right: 0.5rem !important;
}

.mr-sm {
  margin-right: 1rem !important;
}

.mr-md {
  margin-right: 1.5rem !important;
}

.mr-ml {
  margin-right: 2rem !important;
}

.mr-lg {
  margin-right: 3rem !important;
}

.mr-xl {
  margin-right: 5rem !important;
}

.mr-xxl {
  margin-right: 7.5rem !important;
}

.mb-0 {
  margin-bottom: 0 !important;
}

.mb-xs {
  margin-bottom: 0.5rem !important;
}

.mb-sm {
  margin-bottom: 1rem !important;
}

.mb-md {
  margin-bottom: 1.5rem !important;
}

.mb-ml {
  margin-bottom: 2rem !important;
}

.mb-lg {
  margin-bottom: 3rem !important;
}

.mb-xl {
  margin-bottom: 5rem !important;
}

.mb-xxl {
  margin-bottom: 7.5rem !important;
}

.ml-0 {
  margin-left: 0 !important;
}

.ml-xs {
  margin-left: 0.5rem !important;
}

.ml-sm {
  margin-left: 1rem !important;
}

.ml-md {
  margin-left: 1.5rem !important;
}

.ml-ml {
  margin-left: 2rem !important;
}

.ml-lg {
  margin-left: 3rem !important;
}

.ml-xl {
  margin-left: 5rem !important;
}

.ml-xxl {
  margin-left: 7.5rem !important;
}

.p-0 {
  padding: 0 !important;
}

.p-xs {
  padding: 0.5rem !important;
}

.p-sm {
  padding: 1rem !important;
}

.p-md {
  padding: 1.5rem !important;
}

.p-ml {
  padding: 2rem !important;
}

.p-lg {
  padding: 3rem !important;
}

.p-xl {
  padding: 5rem !important;
}

.p-xxl {
  padding: 7.5rem !important;
}

.p-1 {
  padding: 0.5rem !important;
}

.p-2 {
  padding: 1rem !important;
}

.px-0 {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.px-xs {
  padding-left: 0.5rem !important;
  padding-right: 0.5rem !important;
}

.px-sm {
  padding-left: 1rem !important;
  padding-right: 1rem !important;
}

.px-md {
  padding-left: 1.5rem !important;
  padding-right: 1.5rem !important;
}

.px-ml {
  padding-left: 2rem !important;
  padding-right: 2rem !important;
}

.px-lg {
  padding-left: 3rem !important;
  padding-right: 3rem !important;
}

.px-xl {
  padding-left: 5rem !important;
  padding-right: 5rem !important;
}

.px-xxl {
  padding-left: 7.5rem !important;
  padding-right: 7.5rem !important;
}

.py-0 {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.py-xs {
  padding-top: 0.5rem !important;
  padding-bottom: 0.5rem !important;
}

.py-sm {
  padding-top: 1rem !important;
  padding-bottom: 1rem !important;
}

.py-md {
  padding-top: 1.5rem !important;
  padding-bottom: 1.5rem !important;
}

.py-ml {
  padding-top: 2rem !important;
  padding-bottom: 2rem !important;
}

.py-lg {
  padding-top: 3rem !important;
  padding-bottom: 3rem !important;
}

.py-xl {
  padding-top: 5rem !important;
  padding-bottom: 5rem !important;
}

.py-xxl {
  padding-top: 7.5rem !important;
  padding-bottom: 7.5rem !important;
}

.pt-0 {
  padding-top: 0 !important;
}

.pt-xs {
  padding-top: 0.5rem !important;
}

.pt-sm {
  padding-top: 1rem !important;
}

.pt-md {
  padding-top: 1.5rem !important;
}

.pt-ml {
  padding-top: 2rem !important;
}

.pt-lg {
  padding-top: 3rem !important;
}

.pt-xl {
  padding-top: 5rem !important;
}

.pt-xxl {
  padding-top: 7.5rem !important;
}

.pr-0 {
  padding-right: 0 !important;
}

.pr-xs {
  padding-right: 0.5rem !important;
}

.pr-sm {
  padding-right: 1rem !important;
}

.pr-md {
  padding-right: 1.5rem !important;
}

.pr-ml {
  padding-right: 2rem !important;
}

.pr-lg {
  padding-right: 3rem !important;
}

.pr-xl {
  padding-right: 5rem !important;
}

.pr-xxl {
  padding-right: 7.5rem !important;
}

.pb-0 {
  padding-bottom: 0 !important;
}

.pb-xs {
  padding-bottom: 0.5rem !important;
}

.pb-sm {
  padding-bottom: 1rem !important;
}

.pb-md {
  padding-bottom: 1.5rem !important;
}

.pb-ml {
  padding-bottom: 2rem !important;
}

.pb-lg {
  padding-bottom: 3rem !important;
}

.pb-xl {
  padding-bottom: 5rem !important;
}

.pb-xxl {
  padding-bottom: 7.5rem !important;
}

.pl-0 {
  padding-left: 0 !important;
}

.pl-xs {
  padding-left: 0.5rem !important;
}

.pl-sm {
  padding-left: 1rem !important;
}

.pl-md {
  padding-left: 1.5rem !important;
}

.pl-ml {
  padding-left: 2rem !important;
}

.pl-lg {
  padding-left: 3rem !important;
}

.pl-xl {
  padding-left: 5rem !important;
}

.pl-xxl {
  padding-left: 7.5rem !important;
}

.gap-0 {
  gap: 0 !important;
}

.gap-xs {
  gap: 0.5rem !important;
}

.gap-sm {
  gap: 1rem !important;
}

.gap-md {
  gap: 1.5rem !important;
}

.gap-ml {
  gap: 2rem !important;
}

.gap-lg {
  gap: 3rem !important;
}

.gap-xl {
  gap: 5rem !important;
}

.gap-xxl {
  gap: 7.5rem !important;
}

.gap-row-0 {
  row-gap: 0 !important;
}

.gap-row-xs {
  row-gap: 0.5rem !important;
}

.gap-row-sm {
  row-gap: 1rem !important;
}

.gap-row-md {
  row-gap: 1.5rem !important;
}

.gap-row-ml {
  row-gap: 2rem !important;
}

.gap-row-lg {
  row-gap: 3rem !important;
}

.gap-row-xl {
  row-gap: 5rem !important;
}

.gap-row-xxl {
  row-gap: 7.5rem !important;
}

.gap-col-0 {
  column-gap: 0 !important;
}

.gap-col-xs {
  column-gap: 0.5rem !important;
}

.gap-col-sm {
  column-gap: 1rem !important;
}

.gap-col-md {
  column-gap: 1.5rem !important;
}

.gap-col-ml {
  column-gap: 2rem !important;
}

.gap-col-lg {
  column-gap: 3rem !important;
}

.gap-col-xl {
  column-gap: 5rem !important;
}

.gap-col-xxl {
  column-gap: 7.5rem !important;
}

.m-reg {
  margin: 1rem !important;
}

.mx-reg {
  margin-left: 1rem !important;
  margin-right: 1rem !important;
}

.my-reg {
  margin-top: 1rem !important;
  margin-bottom: 1rem !important;
}

.mt-reg {
  margin-top: 1rem !important;
}

.mr-reg {
  margin-right: 1rem !important;
}

.mb-reg {
  margin-bottom: 1rem !important;
}

.ml-reg {
  margin-left: 1rem !important;
}

.p-reg {
  padding: 1rem !important;
}

.px-reg {
  padding-left: 1rem !important;
  padding-right: 1rem !important;
}

.py-reg {
  padding-top: 1rem !important;
  padding-bottom: 1rem !important;
}

.pt-reg {
  padding-top: 1rem !important;
}

.pr-reg {
  padding-right: 1rem !important;
}

.pb-reg {
  padding-bottom: 1rem !important;
}

.pl-reg {
  padding-left: 1rem !important;
}

.gap-reg {
  gap: 1rem !important;
}

.gap-row-reg {
  row-gap: 1rem !important;
}

.gap-col-reg {
  column-gap: 1rem !important;
}

.box-shadow-small {
  box-shadow: 0 0.13rem 0.63rem 0 rgba(0, 0, 0, 0.15);
}

.box-shadow-large {
  box-shadow: 0 0.13rem 0.63rem 0 rgba(0, 0, 0, 0.15), 0 0.25rem 1.25rem 0 rgba(0, 0, 0, 0.15);
}

.fs-small, .fs-small a {
  font-size: 0.8rem;
}

.fs-hero, .fs-hero a {
  font-size: 3.13rem;
}

.text-balance {
  text-wrap: balance;
}

.text-pretty {
  text-wrap: pretty;
}

.list-unstyled {
  list-style: none;
  padding-left: 0;
  margin-left: 0;
}

.rounded-sm {
  border-radius: 0.25rem;
}

.rounded-md {
  border-radius: 0.5rem;
}

.rounded-pill {
  border-radius: 999px;
}

.overflow-hidden {
  overflow: hidden !important;
}

.object-cover,
.object-cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.object-contain,
.object-contain img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.aspect-square,
.aspect-square img {
  aspect-ratio: 1;
}

.aspect-video,
.aspect-video img {
  aspect-ratio: 16/9;
}

.stretched-link-parent {
  position: relative;
}

.stretched-link::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: transparent !important;
  pointer-events: auto;
  z-index: 1;
}

@media (max-width: 781px) {
  .order-first-mobile {
    order: -1 !important;
  }
  .order-last-mobile {
    order: 1 !important;
  }
}
/* _visual-review.scss
 * Description: the Visual Review page — generated token classes, the helpers
 *              that paint them, and the swatch shapes.
 * Author: Chris Jefferies and Caleb Copeland
 * Date: 27 August 2026
 */
/* ---------------------------------------------------
   Token classes [GENERATED — do not hand-edit]

   One class per token in $bg-tokens. Each sets --token rather than a color or
   a background, so the consumer decides whether to paint it as text, fill or
   border. Keys come from "default" because every background defines the same
   set.
--------------------------------------------------- */
.is-token-text {
  --token: var(--color-bg--text);
}

.is-token-text-muted {
  --token: var(--color-bg--text-muted);
}

.is-token-primary {
  --token: var(--color-bg--primary);
}

.is-token-primary-hover {
  --token: var(--color-bg--primary-hover);
}

.is-token-primary-text {
  --token: var(--color-bg--primary-text);
}

.is-token-secondary {
  --token: var(--color-bg--secondary);
}

.is-token-secondary-hover {
  --token: var(--color-bg--secondary-hover);
}

.is-token-secondary-text {
  --token: var(--color-bg--secondary-text);
}

.is-token-tertiary {
  --token: var(--color-bg--tertiary);
}

.is-token-tertiary-hover {
  --token: var(--color-bg--tertiary-hover);
}

.is-token-accent {
  --token: var(--color-bg--accent);
}

.is-token-accent-hover {
  --token: var(--color-bg--accent-hover);
}

.is-token-link {
  --token: var(--color-bg--link);
}

.is-token-link-hover {
  --token: var(--color-bg--link-hover);
}

.is-token-border {
  --token: var(--color-bg--border);
}

.is-token-negative {
  --token: #A02528;
}

.is-token-caution {
  --token: #E8B909;
}

.is-token-positive {
  --token: #008745;
}

.is-token-flag {
  --token: #FF00FF;
}

.token-text {
  color: var(--token, currentColor);
}

.token-fill {
  background-color: var(--token, transparent);
}

.token-stroke {
  border: 2px solid var(--token, currentColor);
}

.token-ring {
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.3), inset 0 0 0 2px rgba(0, 0, 0, 0.25);
}

/* ---------------------------------------------------
   Swatch layout comes from core blocks (Grid on the wrapper, Flex on the box
   row), so only the bar and the boxes are styled here. The same markup renders
   on every background — --color-bg--* are inherited per background by
   _bg-color-scheme.scss.
--------------------------------------------------- */
.tf-token-preview {
  margin-top: 1.5rem;
}
.tf-token-preview__label {
  color: var(--color-bg--text-muted);
  font-size: 0.8rem;
  margin-bottom: 0.5rem;
}

/* ---------------------------------------------------
   The swatch bar

   One Paragraph per token: `.token-bar` + `.is-token-<name>`. The label stays
   in $text above the fill rather than on it — no token exists for "readable on
   an arbitrary color".
--------------------------------------------------- */
.token-bar {
  font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
  font-size: 0.75rem;
  font-weight: 400;
  letter-spacing: 0.02rem;
  color: var(--color-bg--text);
  margin: 0;
}
.token-bar::after {
  content: "";
  display: block;
  width: 100%;
  height: 2.88rem;
  margin-top: 0.5rem;
  border-radius: 0.5rem;
  background-color: var(--token, transparent);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.3), inset 0 0 0 2px rgba(0, 0, 0, 0.25), 0 0.13rem 0.63rem 0 rgba(0, 0, 0, 0.15);
  transition: transform 0.12s ease, box-shadow 0.12s ease;
}
.token-bar {
  position: relative;
}
.token-bar.is-copyable {
  cursor: pointer;
}
.token-bar.is-copyable:focus-visible {
  outline: 0.13rem solid var(--color-bg--primary);
  outline-offset: 0.13rem;
  border-radius: 0.25rem;
}
.token-bar[data-copied]::before {
  content: attr(data-copied);
  position: absolute;
  left: 50%;
  bottom: 1.44rem;
  transform: translate(-50%, 50%);
  z-index: 1;
  padding: 0.25rem 0.63rem;
  border-radius: 0.25rem;
  background-color: var(--color-bg--text);
  color: var(--color-bg--primary-text);
  font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
  font-size: 0.69rem;
  line-height: 1.4;
  white-space: nowrap;
  pointer-events: none;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.3), inset 0 0 0 2px rgba(0, 0, 0, 0.25), 0 0.13rem 0.63rem 0 rgba(0, 0, 0, 0.15);
  transition: transform 0.12s ease;
}
.token-bar:hover[data-copied]::before {
  transform: translate(-50%, calc(50% - 0.13rem));
}
@media (prefers-reduced-motion: reduce) {
  .token-bar[data-copied]::before {
    transition: none;
  }
  .token-bar:hover[data-copied]::before {
    transform: translate(-50%, 50%);
  }
}
.token-bar:hover::after {
  transform: translateY(-0.13rem);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.3), inset 0 0 0 2px rgba(0, 0, 0, 0.25), 0 0.13rem 0.63rem 0 rgba(0, 0, 0, 0.15), 0 0.25rem 1.25rem 0 rgba(0, 0, 0, 0.15);
}
@media (prefers-reduced-motion: reduce) {
  .token-bar::after {
    transition: none;
  }
  .token-bar:hover::after {
    transform: none;
  }
}

:root body :where(.is-layout-constrained, .is-layout-flow) * + .tf-token-preview__label {
  margin-block-start: 1.5rem;
}

/* ---------------------------------------------------
   Targets
--------------------------------------------------- */
/* ---------------------------------------------------
   Tokens
--------------------------------------------------- */
.tf-up {
  --tf-x: 0px;
  --tf-y: var(--tf-dist, 2rem);
  --tf-clip-from: inset(100% 0 0 0);
}

.tf-down {
  --tf-x: 0px;
  --tf-y: calc(var(--tf-dist, 2rem) * -1);
  --tf-clip-from: inset(0 0 100% 0);
}

.tf-left {
  --tf-x: var(--tf-dist, 2rem);
  --tf-y: 0px;
  --tf-clip-from: inset(0 0 0 100%);
}

.tf-right {
  --tf-x: calc(var(--tf-dist, 2rem) * -1);
  --tf-y: 0px;
  --tf-clip-from: inset(0 100% 0 0);
}

.tf-still {
  --tf-x: 0px;
  --tf-y: 0px;
}

.tf-speed-fast {
  --tf-dur: 300ms;
}

.tf-speed-reg {
  --tf-dur: 600ms;
}

.tf-speed-slow {
  --tf-dur: 1000ms;
}

.tf-speed-xslow {
  --tf-dur: 1600ms;
}

.tf-delay-1 {
  --tf-delay: 100ms;
}

.tf-delay-2 {
  --tf-delay: 200ms;
}

.tf-delay-3 {
  --tf-delay: 300ms;
}

.tf-delay-4 {
  --tf-delay: 400ms;
}

.tf-delay-5 {
  --tf-delay: 500ms;
}

.tf-delay-6 {
  --tf-delay: 600ms;
}

.tf-move-sm {
  --tf-dist: .75rem;
}

.tf-move-reg {
  --tf-dist: 2rem;
}

.tf-move-lg {
  --tf-dist: 4rem;
}

.tf-fx-fade {
  --tf-opacity: 0;
}

.tf-fx-none {
  --tf-opacity: 1;
}

.tf-fx-zoom {
  --tf-scale: .92;
}

.tf-fx-blur {
  --tf-blur: 8px;
}

.tf-fx-clip {
  --tf-clip: var(--tf-clip-from, inset(100% 0 0 0));
}

.tf-stagger-fast {
  --tf-step: 60ms;
}

.tf-stagger {
  --tf-step: 120ms;
}

.tf-stagger-slow {
  --tf-step: 220ms;
}

/* ---------------------------------------------------
   States
--------------------------------------------------- */
html.tf-anim-on .tf-anim, html.tf-anim-on :where(.tf-stagger, .tf-stagger-fast, .tf-stagger-slow) > *:not(:where(.wp-block-post-template)), html.tf-anim-on :where(.tf-stagger, .tf-stagger-fast, .tf-stagger-slow) > :where(.wp-block-post-template) > * {
  opacity: var(--tf-opacity, 0);
  transform: translate3d(var(--tf-x, 0px), var(--tf-y, var(--tf-dist, 2rem)), 0) scale(var(--tf-scale, 1));
  transition-property: opacity, transform;
  transition-duration: var(--tf-dur, 600ms);
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-delay: calc(var(--tf-delay, 0ms) + var(--tf-i, 0) * var(--tf-step, 0ms));
}
html.tf-anim-on .tf-anim:where(.tf-fx-blur, .tf-fx-blur *), html.tf-anim-on :where(.tf-stagger, .tf-stagger-fast, .tf-stagger-slow) > *:not(:where(.wp-block-post-template)):where(.tf-fx-blur, .tf-fx-blur *), html.tf-anim-on :where(.tf-stagger, .tf-stagger-fast, .tf-stagger-slow) > :where(.wp-block-post-template) > *:where(.tf-fx-blur, .tf-fx-blur *) {
  filter: blur(var(--tf-blur, 8px));
  transition-property: opacity, transform, filter;
}
html.tf-anim-on .tf-anim:where(.tf-fx-clip, .tf-fx-clip *), html.tf-anim-on :where(.tf-stagger, .tf-stagger-fast, .tf-stagger-slow) > *:not(:where(.wp-block-post-template)):where(.tf-fx-clip, .tf-fx-clip *), html.tf-anim-on :where(.tf-stagger, .tf-stagger-fast, .tf-stagger-slow) > :where(.wp-block-post-template) > *:where(.tf-fx-clip, .tf-fx-clip *) {
  clip-path: var(--tf-clip, inset(100% 0 0 0));
  transition-property: opacity, transform, clip-path;
}
html.tf-anim-on .tf-anim.tf-in-view, html.tf-anim-on :where(.tf-stagger, .tf-stagger-fast, .tf-stagger-slow) > *:not(:where(.wp-block-post-template)).tf-in-view, html.tf-anim-on :where(.tf-stagger, .tf-stagger-fast, .tf-stagger-slow) > :where(.wp-block-post-template) > .tf-in-view {
  opacity: 1;
  transform: none;
}
html.tf-anim-on .tf-anim.tf-in-view:where(.tf-fx-blur, .tf-fx-blur *), html.tf-anim-on :where(.tf-stagger, .tf-stagger-fast, .tf-stagger-slow) > *:not(:where(.wp-block-post-template)).tf-in-view:where(.tf-fx-blur, .tf-fx-blur *), html.tf-anim-on :where(.tf-stagger, .tf-stagger-fast, .tf-stagger-slow) > :where(.wp-block-post-template) > .tf-in-view:where(.tf-fx-blur, .tf-fx-blur *) {
  filter: blur(0px);
}
html.tf-anim-on .tf-anim.tf-in-view:where(.tf-fx-clip, .tf-fx-clip *), html.tf-anim-on :where(.tf-stagger, .tf-stagger-fast, .tf-stagger-slow) > *:not(:where(.wp-block-post-template)).tf-in-view:where(.tf-fx-clip, .tf-fx-clip *), html.tf-anim-on :where(.tf-stagger, .tf-stagger-fast, .tf-stagger-slow) > :where(.wp-block-post-template) > .tf-in-view:where(.tf-fx-clip, .tf-fx-clip *) {
  clip-path: inset(0 0 0 0);
}
@media (max-width: 781px) {
  html.tf-anim-on .tf-anim:where(.tf-anim-off-mobile, .tf-anim-off-mobile *), html.tf-anim-on :where(.tf-stagger, .tf-stagger-fast, .tf-stagger-slow) > *:not(:where(.wp-block-post-template)):where(.tf-anim-off-mobile, .tf-anim-off-mobile *), html.tf-anim-on :where(.tf-stagger, .tf-stagger-fast, .tf-stagger-slow) > :where(.wp-block-post-template) > *:where(.tf-anim-off-mobile, .tf-anim-off-mobile *) {
    opacity: 1;
    transform: none;
    filter: none;
    clip-path: none;
    transition: none;
  }
}

/* _flagged.scss
 * Description: the block-level "needs review" badge. Its inline counterpart
 *              (.FLAG) lives in _utilities.scss — same color, independent
 *              mechanism, so flagging a block and a phrase inside it don't
 *              interfere.
 * Author: Caleb Copeland
 * Date: 31 August 2026
 */
/* ---------------------------------------------------
   Block-level flag

   The class and the note (a native `title` tooltip) are written onto the
   block's saved markup by the Flag panel in resources/js/editor.js, so no
   extra markup is needed here. Blocks that save a replaced element — the
   Separator's <hr> — can't render the pill; the tooltip still works.
--------------------------------------------------- */
.ddm-flagged {
  position: relative;
  outline: 2px dashed #FF00FF;
  outline-offset: 4px;
}
.ddm-flagged::before {
  content: "{ddm}";
  position: absolute;
  top: 0;
  right: 0;
  transform: translate(4px, -50%);
  z-index: 2;
  padding: 0.13rem 0.5rem;
  border-radius: 999px;
  background-color: #FF00FF;
  color: #fff;
  font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
  font-size: 0.69rem;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0;
  text-transform: none;
  white-space: nowrap;
  pointer-events: none;
}

body {
  font-size: 1rem;
  font-style: normal;
  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
  font-weight: 400;
  line-height: 1.5em;
}
body a:where(:not(.wp-element-button)) {
  text-decoration-style: dotted;
  text-underline-offset: 0.15em;
}
body a:where(:not(.wp-element-button)):focus-visible {
  outline: 0.13rem solid var(--color-bg--primary);
  outline-offset: 0.13rem;
  border-radius: 0.13rem;
}
body figure > blockquote {
  margin-right: 2.5rem;
}
body figcaption {
  font-size: 0.9rem;
}
body figure:has(figcaption) {
  margin-bottom: 0;
}
body img {
  width: 100%;
}
body .is-style-title {
  font-size: 3.13rem;
  font-family: "Oswald", "Arial Narrow", Arial, sans-serif;
  font-weight: 700;
  line-height: 1.2em;
  letter-spacing: 0.07rem;
  text-transform: none;
}
body h1, body .is-style-h1, body :root :where(.wp-block-cover h1:not(.has-text-color)) {
  font-size: 2.63rem;
  font-family: "Oswald", "Arial Narrow", Arial, sans-serif;
  font-weight: 700;
  line-height: 1.2em;
  letter-spacing: 0.07rem;
  text-transform: none;
}
body h2, body .is-style-h2, body :root :where(.wp-block-cover h2:not(.has-text-color)) {
  font-size: 2.19rem;
  font-family: "Oswald", "Arial Narrow", Arial, sans-serif;
  font-weight: 700;
  line-height: 1.2em;
  letter-spacing: 0.07rem;
  text-transform: none;
}
body h3, body .is-style-h3, body :root :where(.wp-block-cover h3:not(.has-text-color)) {
  font-size: 1.82rem;
  font-family: "Oswald", "Arial Narrow", Arial, sans-serif;
  font-weight: 700;
  line-height: 1.2em;
  letter-spacing: 0.07rem;
  text-transform: none;
}
body h4, body .is-style-h4, body :root :where(.wp-block-cover h4:not(.has-text-color)) {
  font-size: 1.5rem;
  font-family: "Oswald", "Arial Narrow", Arial, sans-serif;
  font-weight: 600;
  line-height: 1.2em;
  letter-spacing: 0.07rem;
  text-transform: none;
}
body h5, body .is-style-h5, body :root :where(.wp-block-cover h5:not(.has-text-color)) {
  font-size: 1.25rem;
  font-family: "Oswald", "Arial Narrow", Arial, sans-serif;
  font-weight: 600;
  line-height: 1.2em;
  letter-spacing: 0.07rem;
  text-transform: none;
}
body h6, body .is-style-h6, body :root :where(.wp-block-cover h6:not(.has-text-color)) {
  font-size: 1rem;
  font-family: "Oswald", "Arial Narrow", Arial, sans-serif;
  font-weight: 600;
  line-height: 1.2em;
  letter-spacing: 0.07rem;
  text-transform: none;
}
body li > ol,
body li > ul {
  margin-top: 0;
}
body ul {
  list-style-type: disc;
  margin-bottom: 0;
}
body p.is-style-intro {
  font-size: 1.11rem;
  font-family: "Oswald", "Arial Narrow", Arial, sans-serif;
  font-weight: 200;
  line-height: 1.5em;
  letter-spacing: 0;
  text-transform: uppercase;
}
body p.is-style-pre-header {
  font-size: 0.8rem;
  font-family: "Oswald", "Arial Narrow", Arial, sans-serif;
  font-weight: 600;
  line-height: 1.2em;
  letter-spacing: 0.13rem;
  text-transform: uppercase;
}
body p:empty {
  margin-top: 0;
}
body pre {
  margin-bottom: 0;
}

@media (max-width: 781px) {
  .hide-mobile {
    display: none !important;
  }
}
@media (max-width: 1024px) {
  .hide-tablet,
  .show-desktop {
    display: none !important;
  }
}
@media (min-width: 782px) {
  .show-mobile {
    display: none !important;
  }
}
@media (min-width: 1025px) {
  .hide-desktop,
  .show-tablet {
    display: none !important;
  }
}
