/* --- core/modules/system/css/components/align.module.css --- */
/**
 * @file
 * Alignment classes for text and block level elements.
 */

.text-align-left {
  text-align: left;
}
.text-align-right {
  text-align: right;
}
.text-align-center {
  text-align: center;
}
.text-align-justify {
  text-align: justify;
}

/**
 * Alignment classes for block level elements (images, videos, blockquotes, etc.)
 */
.align-left {
  float: left;
}
.align-right {
  float: right;
}
.align-center {
  display: block;
  margin-right: auto;
  margin-left: auto;
}


/* --- core/modules/system/css/components/fieldgroup.module.css --- */
/**
 * @file
 * Fieldgroup border reset.
 */

.fieldgroup {
  padding: 0;
  border-width: 0;
}


/* --- core/modules/system/css/components/container-inline.module.css --- */
/**
 * @file
 * Inline items.
 */

.container-inline div,
.container-inline label {
  display: inline-block;
}
/* Details contents always need to be rendered as block. */
.container-inline .details-wrapper {
  display: block;
}
.container-inline .hidden {
  display: none;
}


/* --- core/modules/system/css/components/clearfix.module.css --- */
/**
 * @file
 * Float clearing.
 *
 * Based on the micro clearfix hack by Nicolas Gallagher, with the :before
 * pseudo selector removed to allow normal top margin collapse.
 *
 * @see http://nicolasgallagher.com/micro-clearfix-hack
 */

.clearfix::after {
  display: table;
  clear: both;
  content: "";
}


/* --- core/modules/system/css/components/details.module.css --- */
/**
 * @file
 * Collapsible details.
 *
 * @see collapse.js
 */

.js details:not([open]) .details-wrapper {
  display: none;
}


/* --- core/modules/system/css/components/hidden.module.css --- */
/**
 * @file
 * Utility classes to hide elements in different ways.
 */

/**
 * Hide elements from all users.
 *
 * Used for elements which should not be immediately displayed to any user. An
 * example would be collapsible details that will be expanded with a click
 * from a user. The effect of this class can be toggled with the jQuery show()
 * and hide() functions.
 */
.hidden {
  display: none;
}

/**
 * Hide elements visually, but keep them available for screen readers.
 *
 * Used for information required for screen reader users to understand and use
 * the site where visual display is undesirable. Information provided in this
 * manner should be kept concise, to avoid unnecessary burden on the user.
 * "!important" is used to prevent unintentional overrides.
 */
.visually-hidden {
  position: absolute !important;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  width: 1px;
  height: 1px;
  word-wrap: normal;
}

/**
 * The .focusable class extends the .visually-hidden class to allow
 * the element to be focusable when navigated to via the keyboard.
 */
.visually-hidden.focusable:active,
.visually-hidden.focusable:focus-within {
  position: static !important;
  overflow: visible;
  clip: auto;
  width: auto;
  height: auto;
}

/**
 * Hide visually and from screen readers, but maintain layout.
 */
.invisible {
  visibility: hidden;
}


/* --- core/modules/system/css/components/item-list.module.css --- */
/**
 * @file
 * Styles for item list.
 */

.item-list__comma-list,
.item-list__comma-list li {
  display: inline;
}
.item-list__comma-list {
  margin: 0;
  padding: 0;
}
.item-list__comma-list li::after {
  content: ", ";
}
.item-list__comma-list li:last-child::after {
  content: "";
}


/* --- core/modules/system/css/components/js.module.css --- */
/**
 * @file
 * Utility classes to assist with JavaScript functionality.
 */

/**
 * For anything you want to hide on page load when JS is enabled, so
 * that you can use the JS to control visibility and avoid flicker.
 */
.js .js-hide {
  display: none;
}

/**
 * For anything you want to show on page load only when JS is enabled.
 */
.js-show {
  display: none;
}
.js .js-show {
  display: block;
}

/**
 * Use the scripting media features for modern browsers to reduce layout shifts.
 */
@media (scripting: enabled) {
  /* Extra specificity to override previous selector. */
  .js-hide.js-hide {
    display: none;
  }
  .js-show {
    display: block;
  }
}


/* --- core/modules/system/css/components/nowrap.module.css --- */
/**
 * @file
 * Utility class to prevent text wrapping.
 */

.nowrap {
  white-space: nowrap;
}


/* --- core/modules/system/css/components/position-container.module.css --- */
/*
 * @file
 * Contain positioned elements.
 */

.position-container {
  position: relative;
}


/* --- core/modules/system/css/components/reset-appearance.module.css --- */
/*
 * @file
 * Utility class to remove browser styles, especially for button.
 */

.reset-appearance {
  margin: 0;
  padding: 0;
  border: 0 none;
  background: transparent;
  line-height: inherit;
  -webkit-appearance: none;
  appearance: none;
}


/* --- core/modules/system/css/components/resize.module.css --- */
/**
 * @file
 * Resizable textareas.
 */

.resize-none {
  resize: none;
}
.resize-vertical {
  min-height: 2em;
  resize: vertical;
}
.resize-horizontal {
  max-width: 100%;
  resize: horizontal;
}
.resize-both {
  max-width: 100%;
  min-height: 2em;
  resize: both;
}


/* --- core/modules/system/css/components/system-status-counter.css --- */
/**
 * @file
 * Styles for the system status counter component.
 */

.system-status-counter__status-icon {
  display: inline-block;
  width: 25px;
  height: 25px;
  vertical-align: middle;
}
.system-status-counter__status-icon::before {
  display: block;
  width: 100%;
  height: 100%;
  content: "";
  background-repeat: no-repeat;
  background-position: center 2px;
  background-size: 16px;
}

.system-status-counter__status-icon--error::before {
  background-image: url(../images/error.svg);
}
.system-status-counter__status-icon--warning::before {
  background-image: url(../images/warning.svg);
}
.system-status-counter__status-icon--checked::before {
  background-image: url(../images/check.svg);
}


/* --- core/modules/system/css/components/system-status-report-counters.css --- */
/**
 * @file
 * Styles for the system status report counters.
 */

.system-status-report-counters__item {
  width: 100%;
  margin-bottom: 0.5em;
  padding: 0.5em 0;
  text-align: center;
  white-space: nowrap;
  background-color: rgba(0, 0, 0, 0.063);
}

@media screen and (min-width: 60em) {
  .system-status-report-counters {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
  }
  .system-status-report-counters__item--half-width {
    width: 49%;
  }
  .system-status-report-counters__item--third-width {
    width: 33%;
  }
}


/* --- core/modules/system/css/components/system-status-report-general-info.css --- */
/**
 * @file
 * Default styles for the System Status general info.
 */

.system-status-general-info__item {
  margin-top: 1em;
  padding: 0 1em 1em;
  border: 1px solid #ccc;
}

.system-status-general-info__item-title {
  border-bottom: 1px solid #ccc;
}


/* --- core/modules/system/css/components/tablesort.module.css --- */
/**
 * @file
 * Table sort indicator.
 *
 * @see tablesort-indicator.html.twig
 */

.tablesort {
  display: inline-block;
  width: 16px;
  height: 16px;
  background-size: 100%;
}
.tablesort--asc {
  background-image: url(../images/twistie-down.svg);
}
.tablesort--desc {
  background-image: url(../images/twistie-up.svg);
}


/* --- core/modules/filter/css/filter.caption.css --- */
/**
 * @file
 * Caption filter: default styling for displaying image captions.
 */

/**
 * Essentials, based on http://stackoverflow.com/a/13363408.
 */
.caption {
  display: table;
}
.caption > * {
  display: block;
  max-width: 100%;
}
.caption > figcaption {
  display: table-caption;
  max-width: none;
  caption-side: bottom;
}

/**
 * While editing and whenever the caption is empty, show a placeholder.
 *
 * Based on http://codepen.io/flesler/pen/AEIFc.
 */
.caption > figcaption[contenteditable="true"]:empty::before {
  content: attr(data-placeholder);
  font-style: italic;
}


/* --- core/modules/views/css/views.module.css --- */
/* table style column align */
.views-align-left {
  text-align: left;
}
.views-align-right {
  text-align: right;
}
.views-align-center {
  text-align: center;
}
/* Grid style column align. */
.views-view-grid .views-col {
  float: left;
}
.views-view-grid .views-row {
  float: left;
  clear: both;
  width: 100%;
}
/* Provide some space between display links. */
.views-display-link + .views-display-link {
  margin-left: 0.5em;
}


/* --- core/themes/olivero/css/base/fonts.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Base Fonts.
 */

@font-face {
  font-family: metropolis;
  src: url("../fonts/Metropolis-Regular.woff2") format("woff2");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: metropolis;
  src: url("../fonts/Metropolis-Bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: metropolis;
  src: url("../fonts/Metropolis-SemiBold.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

/* lora-regular - latin */

@font-face {
  font-family: Lora;
  src:
    local("Lora Regular"),
    local("Lora-Regular"),
    url("../fonts/lora-v14-latin-regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* lora-italic - latin */

@font-face {
  font-family: Lora;
  src:
    local("Lora Italic"),
    local("Lora-Italic"),
    url("../fonts/lora-v14-latin-italic.woff2") format("woff2");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

/* lora-700 - latin */

@font-face {
  font-family: Lora;
  src:
    local("Lora Bold"),
    local("Lora-Bold"),
    url("../fonts/lora-v14-latin-700.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}


/* --- core/themes/olivero/css/base/variables.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/*
  Global CSS custom properties.
*/

/* stylelint-disable */

:root {
  --font-sans: "metropolis", sans-serif;
  --font-serif: "Lora", "georgia", serif;

  /* Typography helpers. */
  --font-size-base: 1rem;
  --font-size-l: 1.125rem;
  --font-size-s: 0.875rem;
  --font-size-xs: 0.8125rem;
  --font-size-xxs: 0.75rem;
  --line-height-base: 1.6875rem;
  --line-height-s: 1.125rem;

  /* Layout helpers. */
  --max-width: 84.375rem;
  --max-bg-color: 98.125rem; /* Width to which the background color extends to. */
  --sp: 1.125rem;
  --content-left: 5.625rem;
  --site-header-height-wide: var(--sp10);
  --container-padding: var(--sp);

  /**
   * Grid helpers.
   *
   * These variables help authors apply widths and negative margins to break items out of
   * the grid, while still conforming to the larger grid system.
   */
  --scrollbar-width: 0px; /* Unit must be specified here for calc() to work properly.*/
  --grid-col-count: 6;
  --grid-gap: var(--sp);
  --grid-gap-count: calc(var(--grid-col-count) - 1); /* Count of grid-gaps. */
  --grid-full-width: calc(100vw - var(--sp2) - var(--scrollbar-width)); /* Width of the entire grid. */
  --grid-col-width: calc((var(--grid-full-width) - (var(--grid-gap-count) * var(--grid-gap))) / var(--grid-col-count));

  /* Layout helpers */
  --sp0-25: calc(0.25 * var(--sp));
  --sp0-5: calc(0.5 * var(--sp));
  --sp0-75: calc(0.75 * var(--sp));
  --sp1: calc(1 * var(--sp));
  --sp1-5: calc(1.5 * var(--sp));
  --sp2: calc(2 * var(--sp));
  --sp2-5: calc(2.5 * var(--sp));
  --sp3: calc(3 * var(--sp));
  --sp3-5: calc(3.5 * var(--sp));
  --sp4: calc(4 * var(--sp));
  --sp4-5: calc(4.5 * var(--sp));
  --sp5: calc(5 * var(--sp));
  --sp6: calc(6 * var(--sp));
  --sp7: calc(7 * var(--sp));
  --sp8: calc(8 * var(--sp));
  --sp9: calc(9 * var(--sp));
  --sp10: calc(10 * var(--sp));
  --sp11: calc(11 * var(--sp));
  --sp12: calc(12 * var(--sp));
  --sp13: calc(13 * var(--sp));

  /**
   * Gray colors.
   *
   * Color number roughly corresponds to its luminosity.
   */
  --color--gray-hue: 201;
  --color--gray-saturation: 15%;
  --color--gray-5: hsl(var(--color--gray-hue), var(--color--gray-saturation), 5%); /* Black */
  --color--gray-10: hsl(var(--color--gray-hue), var(--color--gray-saturation), 11%);
  --color--gray-20: hsl(var(--color--gray-hue), var(--color--gray-saturation), 20%); /* Black 2 */
  --color--gray-45: hsl(var(--color--gray-hue), var(--color--gray-saturation), 44%); /* Gray Dark */
  --color--gray-60: hsl(var(--color--gray-hue), var(--color--gray-saturation), 57%); /* Gray medium */
  --color--gray-65: hsl(var(--color--gray-hue), var(--color--gray-saturation), 63%); /* Black 4 */
  --color--gray-70: hsl(var(--color--gray-hue), var(--color--gray-saturation), 72%); /* Gray medium 2 */
  --color--gray-90: hsl(var(--color--gray-hue), var(--color--gray-saturation), 88%); /* Gray light */
  --color--gray-95: hsl(var(--color--gray-hue), var(--color--gray-saturation), 93%); /* Gray light 1 */
  --color--gray-100: hsl(var(--color--gray-hue), var(--color--gray-saturation), 97%); /* Gray light 2 */

  /**
   * Primary colors.
   *
   * Color number roughly corresponds to its luminosity.
   */
  --color--primary-hue: 202;
  --color--primary-saturation: 79%;
  --color--primary-lightness: 50;
  --color--primary-30: hsl(var(--color--primary-hue), var(--color--primary-saturation), calc(1% * (var(--color--primary-lightness) - (0.36 * var(--color--primary-lightness)))));
  --color--primary-40: hsl(var(--color--primary-hue), var(--color--primary-saturation), calc(1% * (var(--color--primary-lightness) - (0.24 * var(--color--primary-lightness))))); /* Blue dark */
  --color--primary-50: hsl(var(--color--primary-hue), var(--color--primary-saturation), calc(1% * var(--color--primary-lightness))); /* Blue medium */
  --color--primary-60: hsl(var(--color--primary-hue), var(--color--primary-saturation), calc(1% * (var(--color--primary-lightness) + (0.24 * (100 - var(--color--primary-lightness)))))); /* Blue bright */
  --color--primary-80: hsl(var(--color--primary-hue), var(--color--primary-saturation), calc(1% * (var(--color--primary-lightness) + (0.85 * (100 - var(--color--primary-lightness)))))); /* Blue very bright */

  /**
   * Variables specific to text.
   */
  --color-text-neutral-soft: var(--color--gray-45);
  --color-text-neutral-medium: var(--color--gray-20);
  --color-text-neutral-loud: var(--color--gray-5);

  --color-text-primary-medium: var(--color--primary-40);
  --color-text-primary-loud: var(--color--primary-30);

  /**
   * Named Colors.
   */
  --color--black: #000; /* Black */
  --color--white: #fff; /* White */
  --color--red: #e33f1e; /* Red */
  --color--gold: #fdca40; /* Gold */
  --color--green: #3fa21c; /* Green */

  /* Header */
  --header-height-wide-when-fixed: var(--sp6);

  /* Width of slide out navigation */
  --mobile-nav-width: 31.25rem;

  /* Border radius */
  --border-radius: 0.1875rem; /* Inline padding on .container elements. */
}

@media (min-width: 75rem) {
  :root {
    --container-padding: var(--sp2);
  }
}

/* Width of a grid column. */

@media (min-width: 43.75rem) {
  :root {
    --grid-col-count: 14;
    --grid-gap: var(--sp2);
  }
}

@media (min-width: 62.5rem) {
  :root {
    --scrollbar-width: 0.9375rem; /* Approximate width of a scrollbar. Doesn't have to be perfect. */
  }
}

@media (min-width: 75rem) {
  :root {
    --grid-full-width: calc(100vw - var(--scrollbar-width) - var(--content-left) - var(--sp4));
  }
}

@media (min-width: 90rem) {
  :root {
    --grid-full-width: calc(var(--max-width) - var(--sp4));
  }
}


/* --- core/themes/olivero/css/base/base.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Generic base elements.
 */

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  font-family: var(--font-sans);
  font-size: 100%;
  font-weight: normal;
  font-style: normal;
  line-height: var(--line-height-base);
}

body {
  margin: 0;
  word-wrap: break-word;
  hyphens: auto;
  color: var(--color-text-neutral-medium);
  background-color: var(--color--gray-100);
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='50' height='84' viewBox='0 0 50 84'%3e  %3cpath opacity='0.05' fill='%230e6ba6' d='M25,61.7C25,68.5,19.4,74,12.5,74S0,68.5,0,61.7c0-5.7,3.9-9.6,7.4-12.9c2.3-2.2,4.5-4.4,5.1-6.8c0.7,2.4,2.8,4.6,5.1,6.8C21.1,52.2,25,56,25,61.7z M42.6,6.8c-2.3-2.2-4.5-4.4-5.1-6.8c-0.7,2.4-2.9,4.6-5.1,6.8C28.9,10.2,25,14,25,19.7C25,26.5,30.6,32,37.5,32S50,26.5,50,19.7C50,14,46.1,10.2,42.6,6.8z'/%3e%3c/svg%3e");
  background-position: top left; /* LTR */
}

body.is-fixed {
  position: fixed;
  overflow: hidden;
  width: 100%;
}

[dir="rtl"] body {
  background-position: top right;
}

a {
  color: var(--color-text-primary-medium);
}

a:hover {
  color: var(--color--primary-50);
}

a:focus {
  outline: solid 2px currentColor;
  outline-offset: 2px;
}

button {
  font-family: inherit;
}

img,
video {
  display: block;
  max-width: 100%;
  height: auto;
}

audio {
  display: block;
  max-width: 100%;
}

h1 {
  letter-spacing: -0.01em;
  font-size: 1.75rem;
  line-height: var(--sp2);
}

@media (min-width: 43.75rem) {
  h1 {
    font-size: 3.75rem;
    line-height: var(--sp4);
  }
}

h2 {
  letter-spacing: -0.01em;
  font-size: 1.5rem;
  line-height: var(--sp2);
}

@media (min-width: 43.75rem) {
  h2 {
    font-size: 2.25rem;
    line-height: var(--sp3);
  }
}

h3 {
  font-size: 1.25rem;
  line-height: var(--sp1-5);
}

@media (min-width: 43.75rem) {
  h3 {
    font-size: 1.5rem;
    line-height: var(--sp2);
  }
}

h4 {
  font-size: 1.125rem;
  line-height: var(--sp1-5);
}

h5 {
  font-size: 1rem;
  line-height: var(--sp1-5);
}

h6 {
  font-size: 0.875rem;
  line-height: var(--sp);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin-block: var(--sp);
  color: var(--color-text-neutral-loud);
  font-family: var(--font-sans);
  font-weight: bold;
}

@media (min-width: 43.75rem) {
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    margin-block: var(--sp2);
  }
}

ul {
  margin-block-start: 0.25em;
  margin-block-end: 0.25em;
  margin-inline-start: 1.5em;
  margin-inline-end: 0;
  padding-inline-start: 0;
  list-style-type: disc;
  list-style-image: none;
}


/* --- core/themes/olivero/css/layout/layout.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Base Layout.
 */

.container {
  width: 100%;
  max-width: var(--max-width);
  padding-inline: var(--container-padding);

  /* This fixes an issue where if the toolbar is open in vertical mode, and
   * the mobile navigation is open, the "close" button gets pushed outside of
   * the viewport. */
}

body.is-fixed .container {
  width: calc(100% - var(--drupal-displace-offset-left, 0px) - var(--drupal-displace-offset-right, 0px));
}

.page-wrapper {
  max-width: var(--max-bg-color);
  background: var(--color--white);
}

/**
 * Creates stacking context ensuring that child elements can never appear in
 * front of mobile navigation.
 */

.layout-main-wrapper {
  position: relative;
  z-index: 2; /* Ensure dropdown is not cut off by footer. */
}

/* Contains the social sidebar, and the primary content area. */

@media (min-width: 75rem) {
  .layout-main {
    display: flex;
    flex-direction: row-reverse;
    flex-wrap: wrap;
  }
}

@media (min-width: 75rem) {
  .main-content {
    width: calc(100% - var(--content-left));
    margin-inline-end: auto;
  }
}

.main-content__container {
  padding-block-start: var(--sp3);
}

@media (min-width: 43.75rem) {
  .main-content__container {
    padding-block-start: var(--sp5);
  }
}

/*
 * Contextual link wrappers load without the ".contextual" CSS class, which
 * causes layout shifts. We fix this by setting this to position: absolute;
 */

[data-contextual-id]:not(.contextual) {
  position: absolute;
}


/* --- core/themes/olivero/css/layout/grid.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Grid system.
 */

.grid-full {
  display: grid;
  grid-template-rows: 1fr;
  grid-template-columns: repeat(var(--grid-col-count), minmax(0, 1fr));
  grid-column-gap: var(--grid-gap);

  /* .grid-full classes nested 3 or more deep go full width. */
}

.grid-full .grid-full .grid-full {
  display: block;
}

/*
  If the .grid-full is nested within the following, apply the appropriate number of columns.
    - .layout--content-narrow class.
    - Element that's inheriting the layout--content-narrow styles from its parent region.
*/

@media (min-width: 43.75rem) {
  .layout--content-narrow .grid-full,
  .layout--pass--content-narrow > * .grid-full {
    grid-template-columns: repeat(calc(var(--grid-col-count) - 2), minmax(0, 1fr));
  }
}

@media (min-width: 62.5rem) {
  .layout--content-narrow .grid-full,
  .layout--pass--content-narrow > * .grid-full {
    grid-template-columns: repeat(calc(var(--grid-col-count) - 6), minmax(0, 1fr));
  }
}

/*
  If the .grid-full is nested within the following, apply the appropriate number of columns.
    - .layout--content-medium class.
    - Element that's inheriting the layout--content-medium styles from its parent region.
*/

@media (min-width: 43.75rem) {
  .layout--content-medium .grid-full,
  .layout--pass--content-medium > * .grid-full {
    grid-template-columns: repeat(calc(var(--grid-col-count) - 2), minmax(0, 1fr));
  }
}

@media (min-width: 62.5rem) {
  .layout--content-medium .grid-full,
  .layout--pass--content-medium > * .grid-full {
    grid-template-columns: repeat(calc(var(--grid-col-count) - 4), minmax(0, 1fr));
  }
}


/* --- core/themes/olivero/css/layout/layout-content-narrow.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Grid system definition for the content narrow layout.
 */

.layout--content-narrow,
.layout--pass--content-narrow > * {
  grid-column: 1 / 7;
  width: 100%;
}

@media (min-width: 43.75rem) {
  .layout--content-narrow,
  .layout--pass--content-narrow > * {
    grid-column: 2 / 14;
  }
}

@media (min-width: 62.5rem) {
  .layout--content-narrow,
  .layout--pass--content-narrow > * {
    grid-column: 3 / 11;
  }
}

/*
  If .layout--content-narrow is nested within any of the following, allocate the appropriate
  amount of columns within its parent .grid-full.
    - .layout--content-narrow class.
    - Element that's inheriting the layout--content-narrow styles from its parent region.
    - .layout--content-medium class.
    - Element that's inheriting the layout--content-medium styles from its parent region.
*/

@media (min-width: 43.75rem) {
  .layout--content-narrow .layout--content-narrow,
  .layout--pass--content-narrow > * .layout--content-narrow,
  .layout--content-medium .layout--content-narrow,
  .layout--pass--content-medium > * .layout--content-narrow,
  .layout--content-narrow .layout--pass--content-narrow > *,
  .layout--pass--content-narrow > * .layout--pass--content-narrow > *,
  .layout--content-medium .layout--pass--content-narrow > *,
  .layout--pass--content-medium > * .layout--pass--content-narrow > * {
    grid-column: 1 / 13;
  }
}

@media (min-width: 62.5rem) {
  .layout--content-narrow .layout--content-narrow,
  .layout--pass--content-narrow > * .layout--content-narrow,
  .layout--content-medium .layout--content-narrow,
  .layout--pass--content-medium > * .layout--content-narrow,
  .layout--content-narrow .layout--pass--content-narrow > *,
  .layout--pass--content-narrow > * .layout--pass--content-narrow > *,
  .layout--content-medium .layout--pass--content-narrow > *,
  .layout--pass--content-medium > * .layout--pass--content-narrow > * {
    grid-column: 1 / 9;
  }
}

/*
  Special grid-breaking treatment for text-content elements that
  reside in a content-narrow layout.
*/

@media (min-width: 43.75rem) {
  .layout--content-narrow.text-content blockquote::before,
  .layout--pass--content-narrow > *.text-content blockquote::before,
  .layout--content-narrow .text-content blockquote::before,
  .layout--pass--content-narrow > * .text-content blockquote::before {
    inset-inline-start: calc(-1 * (var(--grid-col-width) + var(--grid-gap)));
  }
}

@media (min-width: 43.75rem) {
  .layout--content-narrow.text-content blockquote::after,
  .layout--pass--content-narrow > *.text-content blockquote::after,
  .layout--content-narrow .text-content blockquote::after,
  .layout--pass--content-narrow > * .text-content blockquote::after {
    inset-inline-start: calc(-1 * (var(--grid-col-width) + var(--grid-gap)));
    width: var(--sp);
    height: calc(100% - 2.8125rem);
    margin-inline-start: 2px;
  }
}

@media (min-width: 43.75rem) {
  .layout--content-narrow.text-content blockquote,
  .layout--pass--content-narrow > *.text-content blockquote,
  .layout--content-narrow .text-content blockquote,
  .layout--pass--content-narrow > * .text-content blockquote {
    width: calc(10 * var(--grid-col-width) + 9 * var(--grid-gap));
    margin-block: var(--sp3);
    padding-inline-start: 0;
  }
}

@media (min-width: 43.75rem) {
  .layout--content-narrow.text-content pre,
  .layout--pass--content-narrow > *.text-content pre,
  .layout--content-narrow .text-content pre,
  .layout--pass--content-narrow > * .text-content pre {
    margin-block: var(--sp3);
  }
}

@media (min-width: 62.5rem) {
  .layout--content-narrow.text-content pre,
  .layout--pass--content-narrow > *.text-content pre,
  .layout--content-narrow .text-content pre,
  .layout--pass--content-narrow > * .text-content pre {
    width: calc(12 * var(--grid-col-width) + 11 * var(--grid-gap));
    margin-inline-start: calc(-1 * (var(--grid-col-width) + var(--grid-gap)));
  }
}

/**
 * <pre> and <blockquote> elements should not break containers and overflow
 * into sidebar region when present.
 */

.sidebar-grid .layout--content-narrow.text-content blockquote,
.sidebar-grid .layout--pass--content-narrow > *.text-content blockquote,
.sidebar-grid .layout--content-narrow .text-content blockquote,
.sidebar-grid .layout--pass--content-narrow > * .text-content blockquote,
.sidebar-grid .layout--content-narrow.text-content pre,
.sidebar-grid .layout--pass--content-narrow > *.text-content pre,
.sidebar-grid .layout--content-narrow .text-content pre,
.sidebar-grid .layout--pass--content-narrow > * .text-content pre {
  width: auto;
}


/* --- core/themes/olivero/css/layout/layout-content-medium.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Grid system definition for the content wide layout.
 */

.layout--content-medium,
.layout--pass--content-medium > * {
  grid-column: 1 / 7;
  width: 100%;
}

@media (min-width: 43.75rem) {
  .layout--content-medium,
  .layout--pass--content-medium > * {
    grid-column: 2 / 14;
  }
}

@media (min-width: 62.5rem) {
  .layout--content-medium,
  .layout--pass--content-medium > * {
    grid-column: 3 / 13;
  }
}

/*
  If .layout--content-medium is nested within itself, or an element that's inheriting the
  layout--content-medium styles from its parent region, go full width within its
  parent .grid-full.
*/

@media (min-width: 43.75rem) {
  .layout--pass--content-medium > * .layout--content-medium,
  .layout--content-medium .layout--content-medium,
  .layout--pass--content-medium > * .layout--pass--content-medium > *,
  .layout--content-medium .layout--pass--content-medium > * {
    grid-column: 1 / 13;
  }
}

@media (min-width: 62.5rem) {
  .layout--pass--content-medium > * .layout--content-medium,
  .layout--content-medium .layout--content-medium,
  .layout--pass--content-medium > * .layout--pass--content-medium > *,
  .layout--content-medium .layout--pass--content-medium > * {
    grid-column: 1 / 11;
  }
}


/* --- core/themes/olivero/css/layout/layout-footer.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Grid system definition for the footer top and footer bottom layouts.
 */

/**
 * Creates stacking context ensuring that child elements can never appear in
 * front of mobile navigation.
 */

.site-footer {
  position: relative;
  z-index: 1;
}

.site-footer__inner {
  padding-block: var(--sp2);
}

@media (min-width: 75rem) {
  .site-footer__inner {
    padding-block: var(--sp4) var(--sp13);
  }
}

.region--footer_top__inner > *,
.region--footer_bottom__inner > * {
  margin-block-end: var(--sp2);
}

@media (min-width: 43.75rem) {
  .region--footer_top__inner > *,
  .region--footer_bottom__inner > * {
    flex: 1;
    margin-block-end: 0;
  }

  .region--footer_top__inner > *:not(:last-child),
  .region--footer_bottom__inner > *:not(:last-child) {
    margin-inline-end: var(--sp2);
  }
}

@media (min-width: 43.75rem) {
  .region--footer_top__inner,
  .region--footer_bottom__inner {
    display: flex;
    flex-wrap: wrap;
  }
}


/* --- core/themes/olivero/css/layout/region.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Region default layout.
 */

.region > *:where(:not([data-big-pipe-placeholder-id])) {
  margin-block-end: var(--sp);
}

@media (min-width: 43.75rem) {
  .region > *:where(:not([data-big-pipe-placeholder-id])) {
    margin-block-end: var(--sp2);
  }
}

@media (min-width: 62.5rem) {
  .region > *:where(:not([data-big-pipe-placeholder-id])) {
    margin-block-end: var(--sp3);
  }
}


/* --- core/themes/olivero/css/layout/region-content.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Content region layout.
 */

.region--content {
  margin-block-end: var(--sp);
}

@media (min-width: 43.75rem) {
  .region--content {
    margin-block-end: var(--sp2);
  }
}

@media (min-width: 62.5rem) {
  .region--content {
    margin-block-end: var(--sp3);
  }
}


/* --- core/themes/olivero/css/layout/region-hero.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Region default layout.
 */

.region--hero > *:last-child {
  margin-block-end: 0;
}

.region--hero .wide-content {
  max-width: 100%;
  margin-inline: 0;
}


/* --- core/themes/olivero/css/layout/region-secondary-menu.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Secondary menu region layout styling.
 */

.region--secondary-menu {
  display: flex;
  margin-block-start: var(--sp2);
  margin-block-end: var(--sp2);
}

.region--secondary-menu > * {
  margin-block-end: 0;
}

@media (min-width: 75rem) {
  body:not(.is-always-mobile-nav) .region--secondary-menu {
    justify-content: flex-end;
    margin: 0;

    /* If the secondary nav is the first item within the header, it does not need left separator. */
  }
  body:not(.is-always-mobile-nav) .region--secondary-menu:first-child .secondary-nav::before {
    content: none;
  }
}


/* --- core/themes/olivero/css/layout/social-bar.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Social Bar Region
 .
 */

@media (min-width: 75rem) {
  .social-bar {
    flex-shrink: 0;
    width: var(--content-left);
    background-color: var(--color--gray-100);
  }
}

.social-bar__inner {
  position: relative;
  padding-block: var(--sp0-5);
  padding-inline-start: var(--sp);
  padding-inline-end: var(--sp);
}

@media (min-width: 75rem) {
  .social-bar__inner {
    position: relative;
    width: var(--content-left);
    padding-block: var(--sp5);
    padding-inline-start: 0;
    padding-inline-end: 0;
  }

  .social-bar__inner.is-fixed {
    position: fixed;
    inset-block-start: var(--sp6);
    inset-inline-start: 0;
    height: calc(100vh - var(--sp6));
  }
}

.rotate > * {
  margin-block-end: var(--sp2);
}

@media (min-width: 75rem) {
  .rotate > * {
    display: flex;
    align-items: center;
    margin-block-end: 0;
  }

  .rotate > *:not(:first-child) {
    margin-inline-end: var(--sp2);
  }
}

@media (min-width: 75rem) {
  .rotate .contextual {
    inset-inline: 100% auto;
    transform: rotate(90deg); /* LTR */
    transform-origin: top left; /* LTR */
  }

  .rotate .contextual .trigger {
    float: left; /* LTR */

    /**
         * Chromium and Webkit do not yet support flow relative logical properties,
         * such as float: inline-end. However, PostCSS Logical does not compile this
         * value, so we accommodate by not using these.
         *
         * @see https://caniuse.com/mdn-css_properties_clear_flow_relative_values
         * @see https://github.com/csstools/postcss-plugins/issues/632
         */
  }
  .rotate .contextual .trigger:dir(rtl) {
    float: right;
  }
}

@media (min-width: 75rem) {
  .rotate {
    position: absolute;
    inset-inline-start: 50%;
    display: flex;
    flex-direction: row-reverse;
    width: 100vh;
    transform: rotate(-90deg) translateX(-100%); /* LTR */
    transform-origin: left; /* LTR */
  }

  @supports (width: max-content) {
    .rotate {
      width: max-content;
    }
  }
}

@media (min-width: 75rem) {
  [dir="rtl"] .rotate {
    transform: rotate(90deg) translateX(100%);
    transform-origin: right;
  }

  [dir="rtl"] .rotate .contextual {
    transform: rotate(-90deg);
    transform-origin: top right;
  }
}


/* --- core/themes/olivero/css/layout/views.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Styles for views.
 */

.view,
.view-content {
  display: grid;
  gap: var(--sp2);
  grid-template-rows: max-content;
}

@media (min-width: 43.75rem) {
  .view,
  .view-content {
    gap: var(--sp3);
  }
}


/* --- core/themes/olivero/css/components/block.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Block styling.
 */

.block__title {
  margin-block: 0 var(--sp);
  letter-spacing: 0.02em;
  color: var(--color-text-neutral-soft);
  font-size: var(--font-size-s);
  line-height: var(--sp);
}

.site-footer .block__title {
  color: var(--color--gray-65);
}


/* --- core/themes/olivero/css/components/breadcrumb.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Breadcrumb region.
 */

.breadcrumb {
  position: relative;
  font-size: 0.875rem;
  font-weight: bold;
  line-height: var(--sp1);

  /* Shadow on the right side of breadcrumbs for narrow screens. */
}

.breadcrumb::after {
  position: absolute;
  inset-block-start: 0;
  inset-inline-end: calc(var(--sp1) * -1);
  width: var(--sp3);
  height: var(--sp2);
  content: "";
  background: linear-gradient(to left, var(--color--white) 0%, rgba(255, 255, 255, 0) 100%); /* LTR */
}

@media (min-width: 62.5rem) {
  .breadcrumb::after {
    content: none;
  }
}

@media (min-width: 62.5rem) {
  .breadcrumb {
    position: static;
  }
}

[dir="rtl"] .breadcrumb::after {
  background: linear-gradient(to right, var(--color--white) 0%, rgba(255, 255, 255, 0) 100%);
}

.breadcrumb__content {
  overflow: auto;
  margin-block-start: calc(var(--sp0-5) * -1);
  margin-block-end: calc(var(--sp0-5) * -1);
  margin-inline-start: calc(var(--sp0-5) * -1);
  margin-inline-end: calc(var(--sp1) * -1);
  padding-block-start: var(--sp0-5);
  padding-block-end: var(--sp0-5);
  padding-inline-start: var(--sp0-5);
  -webkit-overflow-scrolling: touch;
}

@media (min-width: 62.5rem) {
  .breadcrumb__content {
    margin-inline-end: 0;
  }
}

.breadcrumb__list {
  overflow-x: auto;
  width: max-content;
  margin-block: 0;
  margin-inline-start: calc(var(--sp1) * -1);
  margin-inline-end: calc(var(--sp1) * -1);
  padding-block: 0 var(--sp1);
  padding-inline-start: var(--sp1);
  padding-inline-end: 0;
  list-style: none;
  white-space: nowrap;
}

@media (min-width: 62.5rem) {
  .breadcrumb__list {
    overflow: visible;
    width: auto;
    margin-inline-start: 0;
    margin-inline-end: 0;
    padding-block-end: 0;
    padding-inline-start: 0;
    white-space: normal;
  }
}

.breadcrumb__item {
  display: inline-block;
}

.breadcrumb__item:nth-child(n + 2)::before {
  display: inline-block;
  width: 0.5rem;
  height: 0.5rem;
  margin-inline: 1rem 1.25rem;
  content: "";
  transform: rotate(45deg); /* LTR */
  border-block-start: 2px solid var(--color--gray-45);
  border-inline-end: 2px solid var(--color--gray-45);
}

.breadcrumb__item:last-child {
  margin-inline-end: var(--sp3);
}

@media (min-width: 62.5rem) {
  .breadcrumb__item:last-child {
    margin-inline-end: 0;
  }
}

[dir="rtl"] .breadcrumb__item:nth-child(n + 2)::before {
  transform: rotate(-45deg);
}

.breadcrumb__link {
  -webkit-text-decoration: none;
  text-decoration: none;
  color: var(--color-text-primary-medium);
}

.breadcrumb__link:hover,
.breadcrumb__link:focus {
  -webkit-text-decoration: underline;
  text-decoration: underline;
}


/* --- core/themes/olivero/css/components/embedded-media.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Embedded Media.
 */

figure {
  background: var(--color--gray-100);
}

figcaption {
  padding-block: var(--sp0-5);
  padding-inline-start: var(--sp0-5);
  padding-inline-end: var(--sp0-5);
  color: var(--color-text-neutral-medium);
  background: var(--color--gray-100);
  font-family: var(--font-serif);
  font-size: 0.875rem;
  font-style: italic;
  line-height: var(--sp);
}

@media (min-width: 31.25rem) {
  figcaption {
    padding-block: var(--sp);
    padding-inline-start: var(--sp);
    padding-inline-end: var(--sp);
  }
}

.align-right {
  float: none; /* Override core's align.module.css. */
  max-width: 100%;
  margin-block: var(--sp3);
  margin-inline-start: 0;
  margin-inline-end: 0;
}

@media (min-width: 43.75rem) {
  .align-right {
    float: right; /* LTR */
    max-width: 50%;
    margin-block-start: var(--sp);
    margin-block-end: var(--sp);
    margin-inline-start: var(--sp);
    margin-inline-end: 0;

    /**
     * Chromium and Webkit do not yet support flow relative logical properties,
     * such as float: inline-end. However, PostCSS Logical does not compile this
     * value, so we accommodate by not using these.
     *
     * @see https://caniuse.com/mdn-css_properties_clear_flow_relative_values
     * @see https://github.com/csstools/postcss-plugins/issues/632
     */
  }
  .align-right:dir(rtl) {
    float: left;
  }
}

/* Pull out of grid if nested in content narrow layout. */

/* @todo this can be simplified. */

@media (min-width: 43.75rem) {
  .layout--content-narrow .align-right,
  .layout--pass--content-narrow > * .align-right {
    margin-inline-end: calc(-1 * ((var(--grid-col-width) + var(--grid-gap))));
  }
}

@media (min-width: 62.5rem) {
  .layout--content-narrow .align-right,
  .layout--pass--content-narrow > * .align-right {
    margin-inline-end: calc(-2 * ((var(--grid-col-width) + var(--grid-gap))));
  }
}

@media (min-width: 75rem) {
  .layout--content-narrow .align-right,
  .layout--pass--content-narrow > * .align-right {
    margin-inline-end: calc(-3 * ((var(--grid-col-width) + var(--grid-gap))));
  }
}

@media (min-width: 90rem) {
  .layout--content-narrow .align-right,
  .layout--pass--content-narrow > * .align-right {
    margin-inline-end: calc(-3 * ((var(--grid-col-width) + var(--grid-gap))));
  }
}

.align-left {
  float: none; /* Override core's align.module.css. */
  max-width: 100%;
  margin-block-start: var(--sp3);
  margin-block-end: var(--sp3);
  margin-inline-start: 0;
  margin-inline-end: 0;
}

@media (min-width: 43.75rem) {
  .align-left {
    float: left; /* LTR */
    max-width: 50%;
    margin-block-start: var(--sp);
    margin-block-end: var(--sp);
    margin-inline-start: 0;
    margin-inline-end: var(--sp2); /* Extra right margins in case of aligning next to lists. */

    /**
     * Chromium and Webkit do not yet support flow relative logical properties,
     * such as float: inline-end. However, PostCSS Logical does not compile this
     * value, so we accommodate by not using these.
     *
     * @see https://caniuse.com/mdn-css_properties_clear_flow_relative_values
     * @see https://github.com/csstools/postcss-plugins/issues/632
     */
  }
  .align-left:dir(rtl) {
    float: right;
  }
}

/* Pull out of grid if nested in content narrow layout. */

@media (min-width: 43.75rem) {
  .layout--content-narrow .align-left,
  .layout--pass--content-narrow > * .align-left {
    margin-inline-start: calc(-1 * ((var(--grid-col-width) + var(--grid-gap))));
  }
}

.align-center img,
.align-center video,
.align-center audio {
  margin-inline: auto;
}

.media-oembed-content {
  display: block;
  max-width: 100%;
}


/* --- core/themes/olivero/css/components/footer.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Footer regions.
 */

.site-footer {
  position: relative; /* stack above left social bar */
  color: var(--color--gray-65);
  background: linear-gradient(180deg, var(--color--gray-5) 0%, var(--color--gray-10) 100%);
}

.site-footer .menu {
  margin-inline-start: 0;
  list-style: none;
}

.site-footer .menu ul {
  margin-inline-start: var(--sp);
}

.site-footer .menu li {
  margin-block-end: var(--sp0-5);
}

.site-footer a {
  color: inherit;
}

.site-footer a:hover {
  -webkit-text-decoration: none;
  text-decoration: none;
}

@media (min-width: 75rem) {
  body:not(.is-always-mobile-nav) .site-footer {
    border-inline-start: solid var(--content-left) var(--color--black);
  }
}


/* --- core/themes/olivero/css/components/button.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Buttons.
 */

.button {
  display: inline-block;
  height: var(--sp3);
  margin-block: var(--sp1);
  margin-inline-start: 0;
  margin-inline-end: var(--sp1);
  padding-block: calc((var(--sp3) - var(--line-height-s)) / 2);
  padding-inline: var(--sp1-5);
  cursor: pointer;
  text-align: center;
  -webkit-text-decoration: none;
  text-decoration: none;
  color: var(--color-text-primary-medium);
  border: solid 2px currentColor;
  border-radius: var(--border-radius);
  background-color: var(--color--white);
  font-family: var(--font-sans);
  font-size: var(--font-size-l);
  font-weight: 700;
  appearance: none;
  -webkit-font-smoothing: antialiased;
}

.button:hover,
.button:focus {
  -webkit-text-decoration: none;
  text-decoration: none;
  color: var(--color-text-primary-loud);
  border: solid 2px currentColor;
  background: none;
  font-weight: 700;
}

.button:focus {
  outline: 2px solid var(--color--primary-60);
  outline-offset: 2px;
}

.button:active {
  color: var(--color-text-primary-medium);
  border-color: currentColor;
}

.button:disabled,
.button.is-disabled {
  cursor: default;
  color: var(--color--gray-90);
  border-color: var(--color--gray-90);
}

/*
    IE11 doesn't work properly on button elements so we only do
    inline-flex on modern browsers.
  */

@supports (display: inline-flex) {
  .button {
    display: inline-flex;
    align-items: center;

    /* Top padding accounts for font not being vertically centered within line-height. */
    padding-block: 1px 0;
    padding-inline: var(--sp1-5);
    line-height: var(--line-height-s);
  }
}

/* No margin if is part of a menu. */

.menu .button {
  margin-block: 0;
  margin-inline-start: 0;
  margin-inline-end: 0;
}

.button--small {
  height: var(--sp2-5);
  padding-block: calc((var(--sp2-5) - var(--line-height-s)) / 2);
  padding-inline: var(--sp);
  font-size: var(--font-size-base);
  line-height: normal;
}

.button--primary {
  color: var(--color--white);
  border-color: var(--color--primary-40);
  background-color: var(--color--primary-40);
}

.button--primary:hover,
.button--primary:focus {
  color: var(--color--white);
  border-color: var(--color--primary-30);
  background-color: var(--color--primary-30);
}

.button--primary:active {
  color: var(--color--white);
  background-color: var(--color--primary-40);
}

.button--primary:disabled,
.button--primary.is-disabled {
  color: var(--color--white);
  background-color: var(--color--gray-90);
}

.button--icon-back {
  display: inline-flex;
  align-items: center;
}

.button--icon-back::before {
  display: block;
  width: 0.5em;
  height: 0.5em;
  margin-inline-end: 0.5em;
  content: "";
  transform: rotate(45deg); /* LTR */
  border-block-end: solid 2px currentColor;
  border-inline-start: solid 2px currentColor;
}

[dir="rtl"] .button--icon-back::before {
  transform: rotate(-45deg);
}

.shepherd-cancel-icon {
  font-size: 1.5em;
}


/* --- core/themes/olivero/css/components/container-inline.module.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Inline items.
 */

.container-inline div,
.container-inline label {
  display: inline-block;
}

.form-items-inline {
  margin-block: -0.125em; /* 2px */
}

.form-items-inline > .form-item {
  display: inline-block;
  margin-block: 0.125em;
}


/* --- core/themes/olivero/css/components/fieldset.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Fieldset.
 */

.fieldset {
  min-width: 0;
  margin-block: var(--sp1);
  margin-inline-start: 0;
  margin-inline-end: 0;
  padding-block: 0;
  padding-inline-start: 0;
  padding-inline-end: 0;
  color: inherit;
  border: solid 2px var(--color--gray-45);
  border-radius: var(--border-radius);
  background-color: var(--color--white);
}

.fieldset--group {
  width: 100%;
  color: inherit;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
}

.fieldset__legend {
  float: left; /* Prevent sticking out of top of fieldset. */
  width: 100%;
  color: inherit;
  border-top-left-radius: var(--border-radius);
  border-top-right-radius: var(--border-radius);
  background-color: var(--color--gray-45);
  font-size: var(--font-size-l);
  font-weight: 700;
  line-height: var(--line-height-base);
}

.fieldset__legend + * {
  clear: left;
}

.fieldset__legend .fieldset__label.form-required::after {
  background-image: url("data:image/svg+xml,%3Csvg height='16' width='16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m0 7.562 1.114-3.438c2.565.906 4.43 1.688 5.59 2.35-.306-2.921-.467-4.93-.484-6.027h3.511c-.05 1.597-.234 3.6-.558 6.003 1.664-.838 3.566-1.613 5.714-2.325l1.113 3.437c-2.05.678-4.06 1.131-6.028 1.356.984.856 2.372 2.381 4.166 4.575l-2.906 2.059c-.935-1.274-2.041-3.009-3.316-5.206-1.194 2.275-2.244 4.013-3.147 5.206l-2.856-2.059c1.872-2.307 3.211-3.832 4.017-4.575-2.081-.402-4.058-.856-5.93-1.356' fill='%23ffffff'/%3E%3C/svg%3E%0A");
}

.fieldset__legend--composite {
  margin-block-start: 2px;
  color: inherit;
}

.fieldset__legend--invisible {
  margin: 0;
}

.fieldset__legend--group {
  color: inherit;
}

.fieldset__label {
  display: block;
  padding-block: var(--sp0-5);
  padding-inline-start: var(--sp1);
  padding-inline-end: var(--sp1);
  color: var(--color--white);
  line-height: var(--line-height-s);
}

.fieldset__label.is-disabled {
  color: var(--color-text-neutral-soft);
}

.fieldset__description {
  margin-block: var(--sp0-5);
  font-size: var(--font-size-xs);
  line-height: var(--line-height-s);
}

.fieldset__description.is-disabled {
  color: var(--input--disabled-fg-color);
}

.fieldset__error-message {
  margin-block: var(--sp0-5);
  padding-inline-start: var(--sp1-5);
  color: var(--color--red);
  background-image: url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23E33F1E' d='M9 0C4.03125 0 0 4.03125 0 9C0 13.9688 4.03125 18 9 18C13.9687 18 18 13.9688 18 9C18 4.03125 13.9687 0 9 0ZM10.5 14.6133C10.5 14.8242 10.3359 15 10.1367 15H7.88672C7.67578 15 7.5 14.8242 7.5 14.6133V12.3867C7.5 12.1758 7.67578 12 7.88672 12H10.1367C10.3359 12 10.5 12.1758 10.5 12.3867V14.6133ZM10.4766 10.582C10.4648 10.7461 10.2891 10.875 10.0781 10.875H7.91016C7.6875 10.875 7.51172 10.7461 7.51172 10.582L7.3125 3.30469C7.3125 3.22266 7.34766 3.14063 7.42969 3.09375C7.5 3.03516 7.60547 3 7.71094 3H10.2891C10.3945 3 10.5 3.03516 10.5703 3.09375C10.6523 3.14063 10.6875 3.22266 10.6875 3.30469L10.4766 10.582Z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: left top; /* LTR */
  background-size: var(--sp1) var(--sp1);
  font-size: var(--font-size-s);
  line-height: var(--line-height-s);
}

@media screen and (-ms-high-contrast: active) {
  .fieldset__error-message {
    background-image: url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23ffffff' d='M9 0C4.03125 0 0 4.03125 0 9C0 13.9688 4.03125 18 9 18C13.9687 18 18 13.9688 18 9C18 4.03125 13.9687 0 9 0ZM10.5 14.6133C10.5 14.8242 10.3359 15 10.1367 15H7.88672C7.67578 15 7.5 14.8242 7.5 14.6133V12.3867C7.5 12.1758 7.67578 12 7.88672 12H10.1367C10.3359 12 10.5 12.1758 10.5 12.3867V14.6133ZM10.4766 10.582C10.4648 10.7461 10.2891 10.875 10.0781 10.875H7.91016C7.6875 10.875 7.51172 10.7461 7.51172 10.582L7.3125 3.30469C7.3125 3.22266 7.34766 3.14063 7.42969 3.09375C7.5 3.03516 7.60547 3 7.71094 3H10.2891C10.3945 3 10.5 3.03516 10.5703 3.09375C10.6523 3.14063 10.6875 3.22266 10.6875 3.30469L10.4766 10.582Z'/%3E%3C/svg%3E");
  }
}

[dir="rtl"] .fieldset__error-message {
  background-position: left top;
}

.fieldset__wrapper {
  margin-block-start: 0;
  padding-block: var(--sp);
  padding-inline: var(--sp);
}

.fieldset--group .fieldset__legend--visible ~ .fieldset__wrapper {
  border: solid 2px var(--color--gray-45);
  border-bottom-right-radius: var(--border-radius);
  border-bottom-left-radius: var(--border-radius);
}

.fieldset__wrapper--group {
  margin-block: 0;
  margin-inline-start: 0;
  margin-inline-end: 0;
}

.fieldset__wrapper > .container-inline {
  padding-block: 0;
  padding-inline-start: 0;
  padding-inline-end: 0;
}


/* --- core/themes/olivero/css/components/field.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Visual styles for fields.
 */

.field:not(:last-child) {
  margin-block-end: var(--sp2);
}

.field__label {
  font-weight: bold;
}

.field--label-inline .field__label,
.field--label-inline .field__items {
  float: left; /* LTR */

  /**
   * Chromium and Webkit do not yet support flow relative logical properties,
   * such as float: inline-end. However, PostCSS Logical does not compile this
   * value, so we accommodate by not using these.
   *
   * @see https://caniuse.com/mdn-css_properties_clear_flow_relative_values
   * @see https://github.com/csstools/postcss-plugins/issues/632
   */
}

.field--label-inline .field__label:dir(rtl),
.field--label-inline .field__items:dir(rtl) {
  float: right;
}

.field--label-inline .field__label,
.field--label-inline > .field__item,
.field--label-inline .field__items {
  padding-inline-end: 0.5em;
}

.field--label-inline .field__label::after {
  content: ":";
}


/* --- core/themes/olivero/css/components/form.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Main form and form item styles.
 */

::placeholder {
  color: var(--color--gray-60);
}

/**
 * General form item.
 */

.form-item {
  margin-block: var(--sp1);
}

.form-item__label--multiple-value-form {
  margin-block: 0;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
}

/**
 * When a table row or a container-inline has a single form item, prevent it
 * from adding unnecessary extra spacing.
 * If it has multiple form items, allow spacing between them, overriding core.
 */

tr .form-item,
.container-inline .form-item {
  margin-block: var(--sp0-5);
}

/**
 * Form element label.
 */

.form-item__label {
  display: block;
  margin-block: var(--sp0-5);
  font-size: var(--font-size-s);
  font-weight: bold;
  line-height: var(--line-height-s);
}

.container-inline .form-item__label {
  margin-inline-end: 1em;
}

.form-item__label--multiple-value-form {
  margin-block: 0;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
}

.form-item__label[for] {
  cursor: pointer;
}

.form-item__label.option {
  display: inline;
  font-weight: normal;
}

/* Label states. */

.form-item__label.is-disabled {
  cursor: default;
  color: var(--color--gray-70);
}

/* Form required star icon */

.form-item__label.form-required::after,
.fieldset__label.form-required::after,
.required-mark::after {
  display: inline-block;
  width: 0.5rem;
  height: 0.5rem;
  margin-inline: 0.3em;
  content: "";
  vertical-align: text-top;
  /* Use a background image to prevent screen readers from announcing the text. */
  background-image: url("data:image/svg+xml,%3Csvg height='16' width='16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m0 7.562 1.114-3.438c2.565.906 4.43 1.688 5.59 2.35-.306-2.921-.467-4.93-.484-6.027h3.511c-.05 1.597-.234 3.6-.558 6.003 1.664-.838 3.566-1.613 5.714-2.325l1.113 3.437c-2.05.678-4.06 1.131-6.028 1.356.984.856 2.372 2.381 4.166 4.575l-2.906 2.059c-.935-1.274-2.041-3.009-3.316-5.206-1.194 2.275-2.244 4.013-3.147 5.206l-2.856-2.059c1.872-2.307 3.211-3.832 4.017-4.575-2.081-.402-4.058-.856-5.93-1.356' fill='%232494DB'/%3E%3C/svg%3E%0A");
  background-repeat: no-repeat;
  background-size: 0.5rem 0.5rem;
}

@media screen and (-ms-high-contrast: active) {
  .form-item__label.form-required::after,
  .fieldset__label.form-required::after,
  .required-mark::after {
    background-image: url("data:image/svg+xml,%3Csvg height='16' width='16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m0 7.562 1.114-3.438c2.565.906 4.43 1.688 5.59 2.35-.306-2.921-.467-4.93-.484-6.027h3.511c-.05 1.597-.234 3.6-.558 6.003 1.664-.838 3.566-1.613 5.714-2.325l1.113 3.437c-2.05.678-4.06 1.131-6.028 1.356.984.856 2.372 2.381 4.166 4.575l-2.906 2.059c-.935-1.274-2.041-3.009-3.316-5.206-1.194 2.275-2.244 4.013-3.147 5.206l-2.856-2.059c1.872-2.307 3.211-3.832 4.017-4.575-2.081-.402-4.058-.856-5.93-1.356' fill='%23ffffff'/%3E%3C/svg%3E%0A");
  }
}

/**
 * Form item description.
 */

.form-item__description {
  margin-block: var(--sp0-5);
  max-width: 60ch;
  font-size: var(--font-size-s);
  line-height: var(--line-height-s);
}

.field-multiple-table + .form-item__description {
  margin-block-start: 0;
}

/**
 * Error message (Inline form errors).
 */

.form-item--error-message {
  margin-block: var(--sp0-5);
  padding-inline-start: var(--sp1-5);
  color: var(--color--red);
  background-image: url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23E33F1E' d='M9 0C4.03125 0 0 4.03125 0 9C0 13.9688 4.03125 18 9 18C13.9687 18 18 13.9688 18 9C18 4.03125 13.9687 0 9 0ZM10.5 14.6133C10.5 14.8242 10.3359 15 10.1367 15H7.88672C7.67578 15 7.5 14.8242 7.5 14.6133V12.3867C7.5 12.1758 7.67578 12 7.88672 12H10.1367C10.3359 12 10.5 12.1758 10.5 12.3867V14.6133ZM10.4766 10.582C10.4648 10.7461 10.2891 10.875 10.0781 10.875H7.91016C7.6875 10.875 7.51172 10.7461 7.51172 10.582L7.3125 3.30469C7.3125 3.22266 7.34766 3.14063 7.42969 3.09375C7.5 3.03516 7.60547 3 7.71094 3H10.2891C10.3945 3 10.5 3.03516 10.5703 3.09375C10.6523 3.14063 10.6875 3.22266 10.6875 3.30469L10.4766 10.582Z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: left top; /* LTR */
  background-size: var(--sp1) var(--sp1);
  font-size: var(--font-size-s);
  line-height: var(--line-height-s);
}

@media screen and (-ms-high-contrast: active) {
  .form-item--error-message {
    background-image: url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23ffffff' d='M9 0C4.03125 0 0 4.03125 0 9C0 13.9688 4.03125 18 9 18C13.9687 18 18 13.9688 18 9C18 4.03125 13.9687 0 9 0ZM10.5 14.6133C10.5 14.8242 10.3359 15 10.1367 15H7.88672C7.67578 15 7.5 14.8242 7.5 14.6133V12.3867C7.5 12.1758 7.67578 12 7.88672 12H10.1367C10.3359 12 10.5 12.1758 10.5 12.3867V14.6133ZM10.4766 10.582C10.4648 10.7461 10.2891 10.875 10.0781 10.875H7.91016C7.6875 10.875 7.51172 10.7461 7.51172 10.582L7.3125 3.30469C7.3125 3.22266 7.34766 3.14063 7.42969 3.09375C7.5 3.03516 7.60547 3 7.71094 3H10.2891C10.3945 3 10.5 3.03516 10.5703 3.09375C10.6523 3.14063 10.6875 3.22266 10.6875 3.30469L10.4766 10.582Z'/%3E%3C/svg%3E");
  }
}

[dir="rtl"] .form-item--error-message {
  background-position: right top;
}

/**
 * Form actions.
 */

.form-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  margin-block: var(--sp0-5);
}

.form-actions .button,
.form-actions .action-link {
  margin-block: var(--sp0-5);
}

.form-actions > .form-wrapper {
  margin-inline-end: var(--sp1);
}

.form-actions .ajax-progress--throbber {
  align-self: center;
}

/**
 * Custom label placement for editor filter format select.
 */

.form-item--editor-format {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  max-width: 100%;
}

.form-item--editor-format .form-item__label,
.form-item--editor-format .form-item__prefix,
.form-item--editor-format .form-item__suffix,
.form-item--editor-format .form-element--editor-format {
  min-width: 1px;
}

.form-item--editor-format .form-item__label,
.form-item--editor-format .form-item__prefix,
.form-item--editor-format .form-item__suffix {
  margin-inline-end: var(--sp0-5);
}

.form-item--editor-format .form-item__description,
.form-item--editor-format .form-item--error-message {
  flex: 0 1 100%;
  min-width: 1px;
}

/**
 * Inline forms.
 */

.form--inline > * {
  display: inline-block;
  margin-top: var(--sp0-5);
  margin-bottom: 0;
  vertical-align: top; /* Ensure proper alignment if description is present. */
}

.form--inline .form-item__label {
  margin: 0;
}

.form--inline .form-actions {
  margin-top: var(--sp1-5);
}

.layout-builder-form .form-actions {
  align-items: center;
}


/* --- core/themes/olivero/css/components/form-boolean.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Checkbox and radio input elements.
 */

input[type="checkbox"],
input[type="radio"] {
  display: inline-block;
  width: var(--sp1-5);
  height: var(--sp1-5);
  margin: 0;
  vertical-align: middle;
  border: 1px solid var(--color--gray-60);
  border-radius: 0.1875rem;
  background-color: var(--color--white);
  background-repeat: no-repeat;
  background-position: 50% 50%;
  background-size: var(--sp1) var(--sp1);
  appearance: none;
}

input[type="checkbox"]:focus,
input[type="radio"]:focus {
  border: solid 2px var(--color--primary-50);
  outline: solid 2px var(--color--primary-50);
}

@supports (outline-style: double) {
  input[type="checkbox"]:focus,
  input[type="radio"]:focus {
    border-width: 1px;
    outline-width: 6px;
    outline-style: double;
    outline-offset: -1px;
  }
}

input[type="checkbox"]:hover,
input[type="radio"]:hover {
  border-color: var(--color--primary-60);
}

input[type="checkbox"][disabled],
input[type="radio"][disabled] {
  background-color: var(--color--gray-100);
}

input[type="checkbox"][disabled]:hover,
input[type="radio"][disabled]:hover {
  border-color: var(--color--gray-60);
}

input[type="checkbox"][disabled]:checked,
input[type="radio"][disabled]:checked {
  border-width: 1px;
}

input[type="checkbox"]:checked,
input[type="radio"]:checked {
  border-width: 2px;
}

input.error[type="checkbox"],
input.error[type="radio"] {
  border: solid 2px var(--color--red);
}

input.error[type="checkbox"]:focus,
input.error[type="radio"]:focus {
  outline-color: var(--color--red);
  outline-offset: -2px;
}

input[type="checkbox"] + label,
input[type="radio"] + label {
  display: inline-block;
  padding-inline-start: var(--sp0-5);
}

input[type="checkbox"]:checked {
  background-image: url("data:image/svg+xml,%3Csvg width='17px' height='13px' viewBox='0 0 17 13' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cpath d='M14.8232,0.176777 C14.9209,0.0791457 15.0791,0.0791455 15.1768,0.176777 L16.9445,1.94454 C17.0422,2.04217 17.0422,2.20047 16.9445,2.2981 L6.23744,13.0052 C6.13981,13.1028 5.98151,13.1028 5.88388,13.0052 L0.176777,7.2981 C0.0791456,7.20047 0.0791456,7.04218 0.176777,6.94454 L1.94454,5.17678 C2.04217,5.07915 2.20047,5.07915 2.2981,5.17678 L5.88388,8.76256 C5.98151,8.86019 6.13981,8.86019 6.23744,8.76256 L14.8232,0.176777 Z' id='Path' fill='%232494DB' fill-rule='nonzero'%3E%3C/path%3E%3C/svg%3E");
}

input[type="radio"] {
  border-radius: 50%;
}

input[type="radio"]:checked {
  background-image: url("data:image/svg+xml,%3Csvg width='17' height='17' viewBox='0 0 17 17' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='8.5' cy='8.5' r='8.5' fill='%232494DB'/%3E%3C/svg%3E%0A");
  background-size: 1.0625rem;
}

input[type="radio"]:focus {
  border-width: 2px;
  border-color: var(--color--primary-50);
  outline-color: transparent;
  box-shadow:
    0 0 0 2px white,
    0 0 0 4px var(--color--primary-50);
}

input.error[type="radio"]:focus {
  outline-color: transparent;
  box-shadow:
    0 0 0 2px white,
    0 0 0 4px var(--color--red);
}

.form-type-boolean {
  margin-block: var(--sp1);
}


/* --- core/themes/olivero/css/components/form-text.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Text input elements.
 */

[type="color"],
[type="date"],
[type="datetime-local"],
[type="email"],
[type="file"],
[type="month"],
[type="number"],
[type="password"],
[type="search"],
[type="tel"],
[type="text"],
[type="time"],
[type="url"],
[type="week"],
textarea {
  width: 100%;
  max-width: 100%;
  min-height: var(--sp3);
  padding: 0 var(--sp);
  color: var(--color-text-neutral-loud);
  border: 1px solid var(--color--gray-60);
  border-radius: var(--border-radius);
  background-color: var(--color--white);
  font-family: inherit;
  font-size: inherit;
  appearance: none;
}

:is([type="color"], [type="date"], [type="datetime-local"], [type="email"], [type="file"], [type="month"], [type="number"], [type="password"], [type="search"], [type="tel"], [type="text"], [type="time"], [type="url"], [type="week"], textarea):focus {
  border: solid 2px var(--color--primary-50);
  outline: solid 2px var(--color--primary-50);
}

@supports (outline-style: double) {
  :is([type="color"], [type="date"], [type="datetime-local"], [type="email"], [type="file"], [type="month"], [type="number"], [type="password"], [type="search"], [type="tel"], [type="text"], [type="time"], [type="url"], [type="week"], textarea):focus {
    border-width: 1px;
    outline-width: 6px;
    outline-style: double;
    outline-offset: -1px;
  }
}

[disabled]:is([type="color"], [type="date"], [type="datetime-local"], [type="email"], [type="file"], [type="month"], [type="number"], [type="password"], [type="search"], [type="tel"], [type="text"], [type="time"], [type="url"], [type="week"], textarea) {
  color: var(--color--gray-60);
  background-color: var(--color--gray-100);
}

.error:is([type="color"], [type="date"], [type="datetime-local"], [type="email"], [type="file"], [type="month"], [type="number"], [type="password"], [type="search"], [type="tel"], [type="text"], [type="time"], [type="url"], [type="week"], textarea) {
  border: solid 2px var(--color--red);
}

.error:is([type="color"], [type="date"], [type="datetime-local"], [type="email"], [type="file"], [type="month"], [type="number"], [type="password"], [type="search"], [type="tel"], [type="text"], [type="time"], [type="url"], [type="week"], textarea):focus {
  outline-color: var(--color--red);
  outline-offset: -2px;
}

.error:is([type="color"], [type="date"], [type="datetime-local"], [type="email"], [type="file"], [type="month"], [type="number"], [type="password"], [type="search"], [type="tel"], [type="text"], [type="time"], [type="url"], [type="week"], textarea) + .ck-editor > .ck-editor__main {
  border: solid 2px var(--color--red);
}

.form-element--small:is([type="color"], [type="date"], [type="datetime-local"], [type="email"], [type="file"], [type="month"], [type="number"], [type="password"], [type="search"], [type="tel"], [type="text"], [type="time"], [type="url"], [type="week"], textarea) {
  min-height: var(--sp2-5);
}

@media (min-width: 31.25rem) {
  [type="color"],
  [type="date"],
  [type="datetime-local"],
  [type="email"],
  [type="file"],
  [type="month"],
  [type="number"],
  [type="password"],
  [type="search"],
  [type="tel"],
  [type="text"],
  [type="time"],
  [type="url"],
  [type="week"],
  textarea {
    width: auto;
  }
}

/* Ensure that date field isn't larger than other fields. */

[type="date"]::-webkit-datetime-edit-fields-wrapper {
  padding-block: 0;
  padding-inline-start: 0;
  padding-inline-end: 0;
}

[type="file"] {
  height: auto;
  padding-block: var(--sp0-75);
}

[type="color"] {
  width: var(--sp3);
  padding: 0;
}


/* --- core/themes/olivero/css/components/form-textarea.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Textarea.
 */

textarea {
  display: block;
  width: 100%;
  min-height: var(--sp8);
  padding: var(--sp);
}


/* --- core/themes/olivero/css/components/form-select.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Select input elements.
 */

:root {
  --form-element-select-icon: url("data:image/svg+xml,%3csvg width='18' height='11' viewBox='0 0 18 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M18 1.49699C18 1.35271 17.9279 1.19038 17.8196 1.08216L16.9178 0.18036C16.8096 0.0721439 16.6473 0 16.503 0C16.3587 0 16.1964 0.0721439 16.0882 0.18036L9 7.26854L1.91182 0.18036C1.80361 0.0721439 1.64128 0 1.49699 0C1.33467 0 1.19038 0.0721439 1.08216 0.18036L0.180361 1.08216C0.0721442 1.19038 0 1.35271 0 1.49699C0 1.64128 0.0721442 1.80361 0.180361 1.91182L8.58517 10.3166C8.69339 10.4248 8.85571 10.497 9 10.497C9.14429 10.497 9.30661 10.4248 9.41483 10.3166L17.8196 1.91182C17.9279 1.80361 18 1.64128 18 1.49699Z' fill='%235D7585'/%3e%3c/svg%3e");
}

select {
  max-width: 100%;
  height: var(--sp3);
  padding-block: 0;
  padding-inline-start: var(--sp);
  padding-inline-end: var(--sp3);
  color: var(--color-text-neutral-loud);
  border: 1px solid var(--color--gray-60);
  border-radius: var(--border-radius);
  background-color: var(--color--white);
  background-image: var(--form-element-select-icon);
  background-repeat: no-repeat;
  background-position: right var(--sp) center; /* LTR */
  font-family: inherit;
  font-size: inherit;
  appearance: none;
}

select:focus {
  border: solid 2px var(--color--primary-50);
  outline: solid 2px var(--color--primary-50);
}

@supports (outline-style: double) {
  select:focus {
    border-width: 1px;
    outline-width: 6px;
    outline-style: double;
    outline-offset: -1px;
  }
}

select[disabled] {
  color: var(--color--gray-60);
  background-color: var(--color--gray-100);
}

select.error {
  border: solid 2px var(--color--red);
}

select.error:focus {
  outline-color: var(--color--red);
}

select[multiple] {
  height: auto;
  padding: var(--sp0-5);
  background-image: none;
  line-height: 1; /* Needed by non-Chromium based MS Edge browsers. */
}

select[multiple] option {
  padding: var(--sp0-5);
}

select.form-element--small {
  height: var(--sp2-5);
}

/* Necessary to show chevron in forced colors mode in modern browsers. */

@media (forced-colors: active) {
  select {
    padding-inline-end: var(--sp);
    background-image: none;
    appearance: listbox; /* Default <select> appearance value for modern browsers. */

    /* Lets browser set <select> appearance to whatever the browser's default is. */
  }
  @supports (appearance: revert) {
    select {
      appearance: revert;
    }
  }
}

[dir="rtl"] select {
  background-position: left var(--sp) center;
}


/* --- core/themes/olivero/css/components/header-buttons-mobile.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Header Mobile Buttons.
 */

.mobile-buttons {
  margin-block-start: var(--sp0-5);
  margin-inline-start: auto;
}

@media (min-width: 31.25rem) {
  .mobile-buttons {
    margin-block-start: var(--sp2);
  }
}

@media (min-width: 43.75rem) {
  .mobile-buttons {
    margin-block-start: var(--sp4);
  }
}

@media (min-width: 75rem) {
  .mobile-buttons {
    margin-block-start: var(--sp6);
  }
}

@media (min-width: 75rem) {
  body:not(.is-always-mobile-nav) .mobile-buttons {
    display: none;
  }
}


/* --- core/themes/olivero/css/components/header-navigation.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Navigation in header.
 */

.header-nav {
  position: fixed;
  z-index: 501; /* Appear above overlay and contextual links in header. */
  inset-block-start: 0;
  inset-inline-start: 100%;
  visibility: hidden;
  overflow: auto;
  /* Ensure that header nav not use additional space and force system branding
   * block text to unnecessarily wrap. */
  flex-basis: max-content;
  width: 100%;
  max-width: var(--mobile-nav-width);
  height: 100%;
  padding-block: 0 var(--sp);
  padding-inline-start: var(--sp);
  padding-inline-end: var(--sp);
  /* Create room for the "close" button. We cannot use margin because the
   * mobile navigation needs to slide beneath the button, but we also cannot
   * use padding because that would enable the button to scroll out of the
   * viewport on short screens. */
  border-block-start: solid var(--color--white) calc(var(--sp3) + var(--drupal-displace-offset-top, 0px));
  background-color: var(--color--white);
  box-shadow: 0 0 72px rgba(0, 0, 0, 0.1);
}

.header-nav.is-active {
  visibility: visible;
  transform: translateX(calc(-100% - var(--drupal-displace-offset-right, 0px))); /* LTR */
}

.header-nav.is-active:dir(rtl) {
  transform: translateX(calc(100% + var(--drupal-displace-offset-left, 0px)));
}

@media (min-width: 31.25rem) {
  .header-nav {
    border-top-width: calc(var(--sp5) + var(--drupal-displace-offset-top, 0px));
  }
}

@media (min-width: 43.75rem) {
  .header-nav {
    padding-block-end: var(--sp3);
    padding-inline-start: var(--sp3);
    border-top-width: calc(var(--sp7) + var(--drupal-displace-offset-top, 0px));
  }
}

@media (min-width: 62.5rem) {
  .header-nav {
    grid-column: 5 / 14;
  }
}

/*
   * Ensure top border has the same color as the background when in forced colors.
   */

@media (forced-colors: active) {
  .header-nav {
    border-top-color: canvas;
  }
}

/*
 * Only apply transition styles when JS is loaded. This
 * works around https://bugs.chromium.org/p/chromium/issues/detail?id=332189
 */

html.js .header-nav {
  transition:
    visibility 0.2s,
    transform 0.2s;
}

@media (min-width: 75rem) {
  body:not(.is-always-mobile-nav) .header-nav {
    position: static;
    display: flex;
    visibility: visible;
    overflow: visible;
    grid-column: 5 / 15;
    align-items: center;
    justify-content: flex-end;
    max-width: none;
    height: var(--header-height-wide-when-fixed);
    margin-block-start: auto;
    padding-block: 0;
    padding-inline-start: 0;
    padding-inline-end: 0;
    transition: transform 0.2s;
    transform: none;
    border-block-start: 0;
    box-shadow: none;
  }
}

@media (min-width: 75rem) {
  body.is-always-mobile-nav .header-nav {
    overflow: auto;
    max-width: calc((7 * (var(--grid-col-width) + var(--grid-gap))));
    padding-inline-end: var(--sp);
    transition:
      transform 0.2s,
      visibility 0.2s;
    border-top-width: calc(var(--drupal-displace-offset-top, 0px) + var(--sp11));
  }
}

@media (min-width: 90rem) {
  body.is-always-mobile-nav .header-nav {
    max-width: calc(100vw - (var(--max-width) + var(--content-left)) + ((7 * (var(--grid-col-width) + var(--grid-gap)))));
    padding-inline-end: calc(100vw - (var(--max-width) + var(--content-left) - var(--sp)));
  }
}

.header-nav-overlay {
  position: fixed;
  z-index: 101;
  inset-block-start: 0;
  inset-inline-start: 0;
  display: none;
  width: 100%;
  height: 100vh;
  opacity: 0.2;
  background: var(--color--gray-5);
}

@media (forced-colors: active) {
  .header-nav-overlay {
    background: canvastext;
  }
}

.is-overlay-active .header-nav-overlay {
  display: block;
}


/* --- core/themes/olivero/css/components/header-site-branding.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Site branding in header.
 */

.site-branding {
  display: flex;
  flex-shrink: 1;
  align-items: flex-end;
  min-width: calc((2 * var(--grid-col-width)) + (2 * var(--grid-gap)) + var(--container-padding)); /* Span minimum of 2 column widths. */
  min-height: var(--sp3);
  margin-inline: calc(-1 * var(--container-padding)) var(--sp); /* Negative margin to break out of .container element. */
  padding-block: 0 var(--sp0-5);
  padding-inline-start: var(--container-padding);
  padding-inline-end: var(--container-padding);
  background-image: linear-gradient(160deg, var(--color--primary-50) 0%, var(--color--primary-40) 78.66%);
}

@media (min-width: 31.25rem) {
  .site-branding {
    min-height: var(--sp4);
  }
}

@media (min-width: 43.75rem) {
  .site-branding {
    min-width: calc((4 * var(--grid-col-width)) + (4 * var(--grid-gap)) + var(--container-padding)); /* Span minimum of 4 column widths. */
    min-height: var(--sp6);
    padding-block-end: var(--sp);
  }
}

@media (min-width: 62.5rem) {
  .site-branding {
    min-width: calc((2 * var(--grid-col-width)) + (2 * var(--grid-gap)) + var(--container-padding)); /* Span minimum of 2 column widths. */
  }
}

@media (min-width: 75rem) {
  .site-branding {
    min-height: var(--site-header-height-wide);
    margin-inline-start: calc(-1 * var(--container-padding));
    padding-block: 0;
  }
}

[dir="rtl"] .site-branding {
  background-image: linear-gradient(-160deg, var(--color--primary-50) 0%, var(--color--primary-40) 78.66%);
}

.site-branding--bg-gray {
  background: var(--color--gray-100);
}

.site-branding--bg-white {
  background: var(--color--white);
}

.site-branding__inner {
  display: flex;
  align-items: center;
}

.site-branding__inner a {
  -webkit-text-decoration: none;
  text-decoration: none;
}

@media (min-width: 75rem) {
  .site-branding__inner {
    height: var(--header-height-wide-when-fixed);
    padding-block: var(--sp0-5);
    padding-inline-start: 0;
    padding-inline-end: 0;
  }
}

.site-branding__logo {
  flex-shrink: 0;
  max-width: 100%;
}

.site-branding__logo img {
  width: auto;
  max-width: 100%;
  max-height: var(--sp2);
}

@media (min-width: 31.25rem) {
  .site-branding__logo img {
    max-height: var(--sp3);
  }
}

@media (min-width: 43.75rem) {
  .site-branding__logo img {
    max-height: var(--sp4);
  }
}

@media (min-width: 75rem) {
  .site-branding__logo img {
    max-height: calc(var(--header-height-wide-when-fixed) - var(--sp));
  }
}

.site-branding__text {
  color: var(--color--white);
  font-size: 1.125rem;
  font-weight: bold;
}

.site-branding__text a {
  color: inherit;
}

@media (min-width: 43.75rem) {
  .site-branding__text {
    font-size: 1.75rem;
    line-height: 1.75rem;
  }
}

@media (min-width: 75rem) {
  .site-branding__text {
    letter-spacing: 0.02em;
    font-size: 2rem;
    line-height: var(--sp2);
  }
}

.site-branding--bg-gray .site-branding__text,
.site-branding--bg-white .site-branding__text {
  color: var(--color--primary-50);
}

.site-branding__logo + .site-branding__text {
  margin-inline-start: 0.75rem;
}


/* --- core/themes/olivero/css/components/header-sticky-toggle.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Sticky Header Toggle Button.
 *
 * This button shows on the left hand side of the header (in LTR layouts), and
 * toggles fixing the header to the top of the viewport.
 */

.sticky-header-toggle {
  display: none;
}

@media (min-width: 75rem) {
  .sticky-header-toggle {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    width: var(--content-left);
    height: var(--sp6);
    pointer-events: none;
    opacity: 0;
    border: 0;
    outline: 0;
    background-color: var(--color--primary-50);
  }

  .sticky-header-toggle:focus {
    cursor: pointer;
    pointer-events: auto;
    opacity: 1;
    outline: solid 2px var(--color--white);
    outline-offset: -4px;
  }
}

@media (min-width: 75rem) {
  body:not(.is-always-mobile-nav) .is-fixed .sticky-header-toggle {
    visibility: visible;
  }
}

@media (min-width: 75rem) {
  body.is-always-mobile-nav .sticky-header-toggle {
    visibility: hidden;
  }
}

.sticky-header-toggle__icon {
  --icon-bar-height: 0.1875rem;
  --icon-bar-space: 0.4375rem;

  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: var(--sp2);
  height: calc((var(--icon-bar-height) * 3) + (var(--icon-bar-space) * 2));
  /* Height = 3 bars + 2 spaces */
  transition: opacity 0.2s;
  pointer-events: none;
  transform-style: preserve-3d;
}

.sticky-header-toggle__icon > span {
  display: block;
  width: 100%;
  height: var(--icon-bar-height);
  transition: transform 0.2s;
  transform-origin: center;
  background-color: var(--color--white);
}

.is-fixed .sticky-header-toggle {
  cursor: pointer;
  pointer-events: auto;
  opacity: 1;
}

[aria-checked="true"] .sticky-header-toggle__icon > span:nth-child(1) {
  transform: translateY(calc(var(--icon-bar-height) + var(--icon-bar-space))) rotate(-45deg);
}

[aria-checked="true"] .sticky-header-toggle__icon > span:nth-child(2) {
  opacity: 0;
}

[aria-checked="true"] .sticky-header-toggle__icon > span:nth-child(3) {
  transform: translateY(calc(0px - var(--icon-bar-height) - var(--icon-bar-space))) rotate(45deg);
}


/* --- core/themes/olivero/css/components/hero.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Main Hero.
 */

.hero__content {
  grid-column: 1 / 7;
}

@media (min-width: 43.75rem) {
  .hero__content {
    /* 700px */
    grid-column: 3 / 13;
  }
}

@media (min-width: 62.5rem) {
  .hero__content {
    grid-column: 3 / 11;
  }
}

.hero__img {
  grid-column: 1 / 7;
  margin-block-start: var(--sp2);
  margin-block-end: var(--sp2);
}

.hero__img img {
  width: 100%;
}

@media (min-width: 31.25rem) {
  .hero__img {
    margin-block-start: var(--sp3);
    margin-block-end: var(--sp3);
  }
}

@media (min-width: 43.75rem) {
  .hero__img {
    grid-column: 1 / 15;
    margin-block-start: var(--sp4);
    margin-block-end: var(--sp4);
  }
}

@media (min-width: 62.5rem) {
  .hero__img {
    grid-column: 2 / 14;
  }
}


/* --- core/themes/olivero/css/components/links.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Links component.
 */

.links.inline {
  margin-inline-start: 0;
  padding-block: 0;
  padding-inline-start: 0;
  padding-inline-end: 0;
  list-style: none;
}

.links.inline > * {
  display: inline;
}

.links.inline > *:not(:last-child) {
  padding-inline-end: 1em;
}

@media (min-width: 43.75rem) {
  .node--type-book .links.inline {
    text-align: end;
  }
}


/* --- core/themes/olivero/css/components/layout-field.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Visual styles for fields.
 */

.block-layout-builder:not(:last-child) .field {
  margin-block-end: var(--sp2);
}


/* --- core/themes/olivero/css/components/messages.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Messages.
 */

:root {
  --messages-icon-size: 2rem;
}

.messages-list {
  margin-block: var(--sp1);
  padding-block: 0;
  padding-inline-start: 0;
  padding-inline-end: 0;
  list-style: none;
}

.messages {
  min-height: calc(var(--messages-icon-size) + 2 * var(--sp1));
  padding-block: var(--sp1);
  padding-inline-start: var(--sp1-5);
  padding-inline-end: var(--sp1-5);
  color: var(--color--white);
  outline: solid 1px transparent;
  background-color: var(--color--gray-5);
}

.messages * {
  color: inherit;
}

/* Additional specificity to override contrib modules. */

.messages.messages-list__item {
  background-image: none;
}

.messages__list {
  margin-block: 0;
  margin-inline-start: 0;
  margin-inline-end: 0;
  padding-block: 0;
  padding-inline-start: 0;
  padding-inline-end: 0;
  list-style: none;
}

.messages:not(.hidden) ~ .messages {
  margin-block-start: var(--sp1);
}

.messages__item + .messages__item {
  margin-block-start: var(--sp0-5);
}

.messages__container {
  display: flex;
}

.messages__header {
  flex-shrink: 0;
  margin-inline-end: var(--sp1);
}

.messages__header.no-icon {
  margin-inline-end: 0;
}

.messages__content {
  overflow: auto; /* Ensure large code blocks can be scrolled to. */
  flex: 1;
  padding-block-start: 0.1875rem;
}

.messages__button {
  flex-shrink: 0;
  margin-inline-start: var(--sp1);
  padding-block-start: 0.1875rem;
}

.messages__close {
  position: relative;
  width: 1.5625rem;
  height: 1.5625rem;
  padding-block: 0;
  padding-inline-start: 0;
  padding-inline-end: 0;
  cursor: pointer;
  vertical-align: top;
  border: 0;
  background: none;
  appearance: none;
}

.messages__close::before,
.messages__close::after {
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  width: 2.0625rem;
  height: 0;
  content: "";
  border-top: solid 2px var(--color--gray-60);
}

.messages__close::before {
  transform: translate(-50%, -50%) rotate(45deg);
}

.messages__close::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.messages__close:hover::before,
.messages__close:hover::after {
  border-color: var(--color--white);
}

.messages__close:focus {
  outline: 2px solid var(--color--primary-60);
  outline-offset: 2px;
}

.messages__icon svg {
  vertical-align: top;
}

.messages--error .messages__icon svg {
  fill: var(--color--red);
}

.messages--warning .messages__icon svg {
  fill: var(--color--gold);
}

.messages--status .messages__icon svg {
  fill: var(--color--green);
}

.messages--info .messages__icon svg {
  fill: var(--color--primary-60);
}

.messages a {
  color: var(--color--white);
}

.messages pre {
  margin: 0;
}

.js-form-managed-file .messages {
  margin-block-end: var(--sp1);
  border-inline-start: solid 0.375rem var(--color--red);
}


/* --- core/themes/olivero/css/components/navigation/nav-button-mobile.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Nav Button Mobile.
 */

.mobile-nav-button {
  position: relative;
  z-index: 505; /* Appear above mobile nav. */
  display: flex;
  align-items: center;
  align-self: center;
  width: var(--sp2);
  height: var(--sp2);
  margin-inline-start: auto;
  margin-inline-end: -0.375rem;
  padding-block: 0;
  padding-inline-start: 0.375rem;
  padding-inline-end: 0.375rem;
  cursor: pointer;
  border: none;
  background: transparent;
  appearance: none;
}

.mobile-nav-button:focus {
  outline: solid 2px var(--color--primary-40);
}

.mobile-nav-button:active {
  color: inherit; /* Override Safari's default UA styles. */
}

@media (min-width: 31.25rem) {
  .mobile-nav-button {
    display: inline-flex;
    width: auto;
    padding-inline-start: var(--sp);
  }
}

/* Text that says "menu". */

.mobile-nav-button__label {
  position: absolute;
  display: block;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  width: 1px;
  height: 1px;
  word-wrap: normal;
}

@media (min-width: 31.25rem) {
  .mobile-nav-button__label {
    position: static;
    overflow: visible;
    clip: auto;
    width: auto;
    height: auto;
    margin-inline-end: 0.75rem;
    letter-spacing: 0.05em;
    font-size: 0.875rem;
    font-weight: 600;
  }
}

.mobile-nav-button__icon {
  position: relative;
  display: block;
  width: var(--sp2);
  height: 0;
  border-top: solid 3px var(--color--primary-50);
}

.mobile-nav-button__icon::before,
.mobile-nav-button__icon::after {
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: 0;
  width: 100%;
  height: 0;
  content: "";
  transition: transform 0.2s;
  border-top: solid 3px var(--color--primary-50);
}

.mobile-nav-button__icon::before {
  transform: translateY(-0.6875rem);
}

.mobile-nav-button__icon::after {
  transform: translateY(0.3125rem);
}

.mobile-nav-button[aria-expanded="true"] .mobile-nav-button__icon {
  border-top-color: transparent;
}

.mobile-nav-button[aria-expanded="true"] .mobile-nav-button__icon::before {
  transform: translateY(-0.1875rem) rotate(-45deg);
}

.mobile-nav-button[aria-expanded="true"] .mobile-nav-button__icon::after {
  transform: translateY(-0.1875rem) rotate(45deg);
}


/* --- core/themes/olivero/css/components/node.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Node specific styles.
 */

.node__meta {
  display: flex;
  align-items: center;
  margin-block-end: var(--sp1);
  color: var(--color-text-neutral-soft);
  font-size: 0.875rem;
  line-height: var(--sp);
}

.node__meta a {
  font-weight: bold;
}

@media (min-width: 31.25rem) {
  .node__meta {
    margin-block-end: var(--sp2);
  }
}

.node__author-image img {
  width: var(--sp2-5);
  height: var(--sp2-5);
  margin-inline-end: var(--sp0-5);
  object-fit: cover;
  border-radius: 50%;
}

.node__title a {
  padding-block-end: 0.1875rem;
  transition:
    background-size 0.2s,
    color 0.2s;
  -webkit-text-decoration: none;
  text-decoration: none;
  color: var(--color-text-neutral-loud);
  background-color: transparent;
  background-image: linear-gradient(var(--color--primary-50), var(--color--primary-50)); /* Two values are needed for IE11 support. */
  background-repeat: no-repeat;
  background-position: bottom left; /* LTR */
  background-size: 0 0.1875rem;
}

.node__title a:hover,
.node__title a:focus {
  color: var(--color-text-primary-medium);
}

[dir="rtl"] .node__title {
  background-position: bottom right;
}

.node__content {
  padding-block-end: var(--sp1-5);
}

@media (min-width: 62.5rem) {
  .node__content {
    padding-block-end: var(--sp3);
  }
}

.node--unpublished {
  /* There is no variable for the color - #fff4f4. */
  background-color: #fff4f4;
}


/* --- core/themes/olivero/css/components/node-teaser.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Node Teaser specific styles.
 */

.node--view-mode-teaser .node__meta {
  margin-block-end: var(--sp);
}

.node--view-mode-teaser .node__meta a {
  color: var(--color-text-primary-medium);
  font-weight: bold;
}

.node--view-mode-teaser .field--tag-ref {
  margin-block-start: var(--sp1);
  margin-block-end: 0;
  margin-inline-start: 0;
  margin-inline-end: 0;
  padding-block: 0;
  padding-inline-start: 0;
  padding-inline-end: 0;
  background-color: transparent;
}

@media (min-width: 62.5rem) {
  .node--view-mode-teaser .field--tag-ref {
    margin-block-start: var(--sp2);
  }
}


/* --- core/themes/olivero/css/components/page-title.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Page title.
 */

.page-title {
  /*
    Necessary to properly display the star icon from core's shortcut
    module.
  */
  display: inline;
}


/* --- core/themes/olivero/css/components/site-header.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Site header.
 */

.site-header {
  position: relative;
  /**
   * Ensure mobile site header is always above other elements including
   * contextual links, and Tour.
   */
  z-index: 101;
}

@media (min-width: 75rem) {
  .site-header {
    /* Necessary to keep the content from jumping up when header transitions to fixed. */
    min-height: var(--site-header-height-wide);
    border-block-end: solid 1px transparent; /* Will show in Windows high contrast mode. */
  }
}

.site-header__initial {
  position: relative;
  z-index: 102;
  display: flex;
  align-items: flex-end;
  align-self: stretch;
  background-color: var(--color--primary-50);
}

.site-header__fixable {
  display: flex;
  align-items: flex-end;
  transition: all 0.5s;
}

@media (min-width: 75rem) {
  .site-header__fixable.is-fixed:not(.is-expanded) {
    pointer-events: none;
  }
}

@media (min-width: 75rem) {
  body:not(.is-always-mobile-nav) .site-header__fixable.is-fixed {
    position: fixed;
    z-index: 102; /* Appear above body content that is position: relative */
    inset-block-start: calc(var(--drupal-displace-offset-top, 0px) - var(--sp4));
    max-width: var(--max-bg-color);
  }
}

.site-header__inner {
  position: relative;
  z-index: 1; /* Appear in front of Drupal's tabs. */
  flex-grow: 1;
  width: calc(100vw - var(--content-left) - var(--drupal-displace-offset-left, 0px) - var(--drupal-displace-offset-right, 0px));
  background: var(--color--white);
}

/*
 * Only apply transition styles when JS is loaded. This
 * works around https://bugs.chromium.org/p/chromium/issues/detail?id=332189
 */

@media (min-width: 75rem) {
  html.js body:not(.is-always-mobile-nav) .site-header__inner {
    transition:
      opacity 0.3s,
      transform 0.3s,
      box-shadow 0.3s;
  }
}

@media (min-width: 75rem) {
  .site-header__fixable.is-expanded .site-header__inner {
    box-shadow: -36px 1px 36px rgba(0, 0, 0, 0.08); /* LTR */
  }
}

@media (min-width: 75rem) {
  [dir="rtl"] .site-header__fixable.is-expanded .site-header__inner {
    box-shadow: 36px 1px 36px rgba(0, 0, 0, 0.08);
  }
}

/* Hide the desktop nav when it's fixed and not active. */

@media (min-width: 75rem) {
  body:not(.is-always-mobile-nav) .site-header__fixable.is-fixed:not(.is-expanded) .site-header__inner {
    transform: translateX(-101%); /* LTR */
    opacity: 0;
  }
}

@media (min-width: 75rem) {
  [dir="rtl"] body:not(.is-always-mobile-nav) .site-header__fixable.is-fixed:not(.is-expanded) .site-header__inner {
    transform: translateX(101%);
  }
}

.site-header__inner__container {
  display: flex;
  justify-content: space-between;
}

/* Reset width set by layout.css */

body.is-fixed .site-header__inner__container {
  width: auto;
}


/* --- core/themes/olivero/css/components/skip-link.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Skip link
 *
 * Allows keyboard users to quickly skip to the main content of the page.
 */

.skip-link {
  display: block;
  width: 100%;
  max-width: calc(var(--max-bg-color) + var(--drupal-displace-offset-left, 0px));
  padding-block: var(--sp0-5);
  padding-inline-start: var(--sp);
  padding-inline-end: var(--sp);
  -webkit-text-decoration: none;
  text-decoration: none;
  color: var(--color--white);
  outline: 0;
  background-color: var(--color--gray-5);
}

.skip-link:hover {
  -webkit-text-decoration: underline;
  text-decoration: underline;
  color: var(--color--white);
}

.skip-link::after {
  content: "\0020	➔";
}

.skip-link.focusable:focus {
  position: absolute !important; /* Override position from module file. */
  z-index: 503;
  width: 100%;
  height: 2.5rem;
  outline: none;
}


/* --- core/themes/olivero/css/components/pager.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Styles for pagination.
 */

.pager__items {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  margin-block: 0;
  margin-inline-start: 0;
  padding-block: 0;
  padding-inline-start: 0;
  padding-inline-end: 0;
  list-style: none;
  font-weight: bold;
}

.pager__item {
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--sp2-5);
  height: var(--sp2-5);
  cursor: default;
  color: var(--color-text-neutral-soft);
  background-color: var(--color--white);
}

@media (min-width: 31.25rem) {
  .pager__item {
    width: var(--sp3);
    height: var(--sp3);
  }
}

[dir="rtl"] .pager__item--control {
  transform: scaleX(-1);
}

.pager__item--active {
  color: var(--color--white);
  background-color: var(--color--primary-40);
}

@media (forced-colors: active) {
  .pager__item--control path {
    fill: linktext;
  }
}

.pager__link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  -webkit-text-decoration: none;
  text-decoration: none;
  color: var(--color-text-neutral-soft);
}

.pager__link:hover {
  background-color: var(--color--gray-95);
}

.pager__link:focus {
  color: var(--color-text-primary-medium);
  outline: solid 2px currentColor;
  outline-offset: -2px;
}

.pager__item svg {
  display: block;
  fill: currentColor;
}

.pager__item--next svg,
.pager__item--last svg {
  transform: rotate(180deg);
}


/* --- core/themes/olivero/css/components/table.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * User generated tables.
 */

.forum table,
.text-content table,
.views-table,
.draggable-table {
  margin-block-start: var(--sp2);
  margin-block-end: var(--sp2);
  border-spacing: 0;
  color: var(--color-text-neutral-medium);
  border: 0;
  border-collapse: collapse;
  font-family: var(--font-sans);
  font-size: 1rem;
  line-height: var(--sp1-5);
}

:is(.forum table, .text-content table, .views-table, .draggable-table) caption {
  margin-block-end: var(--sp1);
  text-align: start;
  color: var(--color-text-neutral-medium);
  font-family: var(--font-serif);
  font-size: 0.875rem;
  font-style: italic;
  line-height: var(--sp);
}

:is(.forum table, .text-content table, .views-table, .draggable-table) tr:last-child td {
  border-block-end: 0;
}

:is(.forum table, .text-content table, .views-table, .draggable-table) td,
:is(.forum table, .text-content table, .views-table, .draggable-table) th {
  padding-block: var(--sp1);
  padding-inline-start: 0;
  padding-inline-end: var(--sp1);
  vertical-align: top;
}

:is(.forum table, .text-content table, .views-table, .draggable-table) th {
  margin-block: 0;
  margin-inline-start: 0;
  margin-inline-end: 0;
  text-align: start;
  letter-spacing: 0.02em;
  color: var(--color-text-neutral-loud);
  border-block-end: 2px solid var(--color--primary-50);
  font-family: var(--font-sans);
  font-size: 0.875rem;
  line-height: var(--sp);
}

:is(.forum table, .text-content table, .views-table, .draggable-table) td {
  white-space: normal;
  border-block-end: 2px solid var(--color--gray-65);
}

:is(.forum table, .text-content table, .views-table, .draggable-table) th.checkbox,
:is(.forum table, .text-content table, .views-table, .draggable-table) td.checkbox {
  text-align: center;
}

.draggable-table {
  width: 100%;
}

.draggable-table .form-item {
  margin-top: 0;
}

.text-content table td,
.text-content table th {
  vertical-align: middle;
}

.tablesort {
  vertical-align: middle;
}

.sticky-header {
  z-index: 0;
  margin: 0;
  border-block-end: 0.25rem solid var(--color--primary-50);
}

/* Properly align VBO checkboxes. */

.views-field-node-bulk-form .form-item {
  margin: 0;
}


/* --- core/themes/olivero/css/components/text-content.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Text Content.
 */

.text-content,
.cke_editable {
  color: var(--color-text-neutral-medium);
  font-family: var(--font-serif);
  line-height: var(--sp1-5);

  /*
    @todo

    text-decoration-thickness is supported by FF & Safari
    text-underline-offset is supported by Safari

    text-decoration-color supported by Chrome, FF, & Safari
  */
}

.text-content a:where(:not(.button)),
.cke_editable a:where(:not(.button)) {
  color: var(--color-text-primary-medium);
  text-decoration-color: currentColor;
  text-decoration-thickness: 2px;
  overflow-wrap: break-word;
}

@supports (box-shadow: none) {
  .text-content a:where(:not(.button)),
  .cke_editable a:where(:not(.button)) {
    transition: box-shadow 0.3s cubic-bezier(0.55, 0.085, 0, 0.99);
    -webkit-text-decoration: none;
    text-decoration: none;
    box-shadow: inset 0 -2px 0 0 var(--color--primary-50);
  }

  .text-content a:where(:not(.button)):hover,
  .cke_editable a:where(:not(.button)):hover {
    -webkit-text-decoration: underline;
    text-decoration: underline;
    color: var(--color--black);
    box-shadow: inset 0 -2em 0 0 var(--color--primary-80);
    text-decoration-color: var(--color--primary-80);
  }
}

.text-content p,
.cke_editable p {
  margin-block-start: var(--sp);
  margin-block-end: var(--sp);
}

.text-content p:first-child,
.cke_editable p:first-child {
  margin-block-start: 0;
}

.text-content p:last-child,
.cke_editable p:last-child {
  margin-block-end: 0;
}

@media (min-width: 43.75rem) {
  .text-content p,
  .cke_editable p {
    margin-block-start: var(--sp2);
    margin-block-end: var(--sp2);
  }
}

.text-content code,
.cke_editable code {
  background-color: var(--color--gray-100);
}

.text-content pre code,
.cke_editable pre code {
  display: block;
  overflow: auto;
  padding-block: var(--sp);
  padding-inline-start: var(--sp);
  padding-inline-end: var(--sp);
  color: var(--color-text-neutral-soft);
}

.text-content blockquote,
.cke_editable blockquote {
  position: relative;
  margin-block: var(--sp2);
  margin-inline-start: 0;
  margin-inline-end: 0;
  padding-inline-start: var(--sp2);
  letter-spacing: -0.01em;
  font-family: var(--font-serif);
  font-size: 1.3125rem;
  line-height: var(--sp2);
}

.text-content blockquote::before,
.cke_editable blockquote::before {
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: 0;
  content: "\201C";
  color: var(--color--primary-60);
  font-size: 3.375rem;
}

.text-content blockquote::after,
.cke_editable blockquote::after {
  position: absolute;
  inset-block-end: 0;
  inset-inline-start: 0;
  width: var(--sp0-5);
  height: calc(100% - 1.875rem);
  margin-inline-start: 0.25rem;
  content: "";
  background: var(--color--gray-100);
}

@media (min-width: 43.75rem) {
  .text-content blockquote,
  .cke_editable blockquote {
    font-size: 2rem;
    line-height: var(--sp3);
  }
}

@media (min-width: 62.5rem) {
  .text-content blockquote,
  .cke_editable blockquote {
    font-size: 2.5rem;
    line-height: var(--sp3-5);
  }
}

@media (min-width: 43.75rem) {
  .text-content,
  .cke_editable {
    font-size: 1.125rem;
    line-height: var(--sp2);
  }
}

/**
 * Special colors for footer that has a dark background.
 */

.site-footer .text-content {
  color: inherit;
}

.site-footer .text-content * {
  color: inherit;
}

.site-footer .text-content a {
  -webkit-text-decoration: underline;
  text-decoration: underline;
  color: var(--color--white);
  box-shadow: none;
}

.site-footer .text-content a:hover {
  -webkit-text-decoration: none;
  text-decoration: none;
  color: var(--color--white);
  box-shadow: none;
}

/**
 * Decrease font-size for blockquote placed in sidebar region.
 */

@media (min-width: 62.5rem) {
  .region--sidebar .text-content blockquote {
    font-size: 1.5rem;
    line-height: var(--sp2);
  }
}


/* --- core/themes/olivero/css/components/wide-content.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Wide content
 *
 * This component breaks out of the layout-content-narrow grid layout using a
 * combination of carefully calculated negative margins and widths. It is used
 * on the article's default image field.
 */

.wide-content {
  margin-block-start: var(--sp0-5);
  margin-block-end: var(--sp2);
  margin-inline-start: 0;
  margin-inline-end: 0;
}

@media (min-width: 43.75rem) {
  .wide-content {
    width: calc(var(--grid-col-count) * var(--grid-col-width) + var(--grid-gap-count) * var(--grid-gap));
    margin-block: var(--sp2) var(--sp4);
    margin-inline-start: calc(-1 * ((var(--grid-col-width) + var(--grid-gap))));
  }
}

@media (min-width: 62.5rem) {
  .wide-content {
    width: calc(12 * var(--grid-col-width) + 11 * var(--grid-gap));
    margin-inline-start: calc(-1 * (var(--grid-col-width) + var(--grid-gap)));
  }
}

/* Ensure that image doesn't overlap sidebar. */

@media (min-width: 62.5rem) {
  .sidebar-grid .wide-content {
    width: calc(9 * var(--grid-col-width) + 8 * var(--grid-gap));
  }
}

@media (min-width: 81.25rem) {
  .sidebar-grid .wide-content {
    width: calc(10 * var(--grid-col-width) + 9 * var(--grid-gap));
  }
}

/* Ensure that image doesn't overlap layout builder sections when editing layouts. */

.layout-builder .wide-content,
.region--hero .wide-content {
  max-width: 100%;
  margin-inline: 0;
}


/* --- core/themes/olivero/css/components/header-search-narrow.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Header Search Narrow Block.
 */

.block-search-narrow {
  margin-inline: calc(-1 * var(--sp));
  margin-block-end: var(--sp2);
  background: var(--color--black);
}

.block-search-narrow .search-block-form {
  display: flex;
}

.block-search-narrow .form-item {
  flex-grow: 1;
  margin: 0;
}

.block-search-narrow .form-actions {
  margin: 0;
}

.block-search-narrow input[type="search"] {
  width: calc(100% + var(--sp2));
  height: var(--sp3);
  padding-block: 0;
  padding-inline-start: var(--sp);
  padding-inline-end: var(--sp);
  transition: background-size 0.4s;
  color: var(--color--white);
  border: solid 1px transparent;
  background-color: transparent;
  background-image: linear-gradient(var(--color--primary-50), var(--color--primary-50)); /* Two values are needed for IE11 support. */
  background-repeat: no-repeat;
  background-position: bottom left; /* LTR */
  background-size: 0% 0.3125rem;
  box-shadow: none;
  font-family: var(--font-serif);
  font-size: 1rem;
  -webkit-appearance: none;
}

.block-search-narrow input[type="search"]:focus {
  outline: solid 4px transparent;
  outline-offset: -4px;
  background-size: 100% 0.3125rem;
}

@media (min-width: 43.75rem) {
  .block-search-narrow input[type="search"] {
    height: var(--sp4);
    padding-inline-start: var(--sp2);
    padding-inline-end: var(--sp2);
  }
}

.block-search-narrow .search-form__submit {
  position: relative;
  overflow: hidden;
  align-self: stretch;
  width: var(--sp3);
  height: auto;
  margin-block: 0;
  margin-inline-start: 0;
  margin-inline-end: 0;
  padding-block: 0;
  padding-inline-start: 0;
  padding-inline-end: 0;
  cursor: pointer;
  border-color: transparent;
  background-color: transparent;

  /*
      When in Windows high contrast mode, FF will not output either background
      images or SVGs that are nested directly within a <button> element, so we add a <span>.
    */
}

.block-search-narrow .search-form__submit .icon--search {
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: 0;
  display: block;
  width: 100%; /* Width of the SVG background image. */
  height: 100%;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='26' height='27.2' viewBox='0 0 26 27.2'%3e  %3cpath fill='%23fff' d='M25.8,25.5l-5.3-5.3c2.1-2.1,3.4-5.1,3.4-8.3C23.9,5.3,18.5,0,11.9,0C5.3,0,0,5.3,0,11.9c0,6.6,5.3,11.9,11.9,11.9c2.6,0,5.1-0.9,7-2.3l5.4,5.4c0.4,0.4,1,0.4,1.4,0C26.1,26.6,26.1,25.9,25.8,25.5z M11.9,21.9c-5.5,0-9.9-4.4-9.9-9.9S6.4,2,11.9,2c5.5,0,9.9,4.4,9.9,9.9S17.4,21.9,11.9,21.9z'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: center;
  background-size: auto;
}

.block-search-narrow .search-form__submit .icon--search::after {
  position: absolute;
  inset-block-end: 0;
  inset-inline-start: 0;
  width: 100%;
  height: 0;
  content: "";
  transition: transform 0.2s;
  transform: scaleX(0);
  transform-origin: left; /* LTR */
  border-block-start: solid 0.3125rem var(--color--primary-50);
}

@media (forced-colors: active) {
  .block-search-narrow .search-form__submit .icon--search {
    background: buttontext;
    mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='26' height='27.2' viewBox='0 0 26 27.2'%3e  %3cpath fill='%23fff' d='M25.8,25.5l-5.3-5.3c2.1-2.1,3.4-5.1,3.4-8.3C23.9,5.3,18.5,0,11.9,0C5.3,0,0,5.3,0,11.9c0,6.6,5.3,11.9,11.9,11.9c2.6,0,5.1-0.9,7-2.3l5.4,5.4c0.4,0.4,1,0.4,1.4,0C26.1,26.6,26.1,25.9,25.8,25.5z M11.9,21.9c-5.5,0-9.9-4.4-9.9-9.9S6.4,2,11.9,2c5.5,0,9.9,4.4,9.9,9.9S17.4,21.9,11.9,21.9z'/%3e%3c/svg%3e");
    mask-repeat: no-repeat;
    mask-position: center;
  }
}

.block-search-narrow .search-form__submit:focus {
  outline: solid 4px transparent;
  outline-offset: -4px;
  box-shadow: none;
}

.block-search-narrow .search-form__submit:focus span::after {
  transform: scaleX(1);
}

@media screen and (-ms-high-contrast: active) {
  .block-search-narrow .search-form__submit:focus {
    border-bottom-width: var(--sp0-5);
  }

  .block-search-narrow .search-form__submit:focus span::after {
    content: none;
  }
}

@media (min-width: 43.75rem) {
  .block-search-narrow .search-form__submit {
    width: 5rem;
  }
}

@media screen and (-ms-high-contrast: active) {
  /* IE11's high contrast show will not show the background image, so we show the text. */
  .block-search-narrow .search-form__submit .visually-hidden {
    position: static;
    overflow: visible;
    clip: auto;
    width: auto;
    height: auto;
    text-align: center;
  }

  /* Edge's high contrast does show the background image, so we hide it. */
  .block-search-narrow .search-form__submit .icon--search {
    display: none;
  }
}

/* 500px is the width of the primary nav at mobile. */

@media (min-width: 31.25rem) {
  .block-search-narrow {
    margin-inline-start: 0;
    margin-inline-end: 0;
  }
}

@media (min-width: 75rem) {
  body:not(.is-always-mobile-nav) .block-search-narrow {
    display: none;
  }
}

[dir="rtl"] .block-search-narrow input[type="search"] {
  background-position: bottom right;
}

[dir="rtl"] .block-search-narrow .search-form__submit .icon--search::after {
  transform-origin: right;
}


/* --- core/themes/olivero/css/components/navigation/nav-primary.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Nav Primary.
 */

.primary-nav__menu {
  flex-wrap: wrap;
  list-style: none;
}

.primary-nav__menu-item {
  margin-block-end: var(--sp0-5);
}

.primary-nav__menu-item:last-child {
  margin-block-end: 0;
}

.primary-nav__menu-item.primary-nav__menu-item--has-children {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

.primary-nav__menu-item.primary-nav__menu-item--has-children .primary-nav__menu-link--link,
.primary-nav__menu-item.primary-nav__menu-item--has-children .primary-nav__menu-link--nolink {
  /* Ensure that long text doesn't make the mobile expand button wrap. */
  flex-basis: calc(100% - var(--sp3));
}

.primary-nav__menu-link {
  flex-grow: 1;
  -webkit-text-decoration: none;
  text-decoration: none;
  color: var(--color-text-neutral-loud);
  font-size: 1.75rem;
  font-weight: bold;
  line-height: var(--sp2);
}

.primary-nav__menu-link:hover {
  color: inherit;
}

.primary-nav__menu-link:focus {
  outline: auto 2px var(--color--primary-50);
  outline-offset: 2px;
}

.primary-nav__menu-link--nolink {
  padding-block: var(--sp0-5);
  padding-inline-start: 0;
  padding-inline-end: 0;
  color: var(--color-text-neutral-soft);
  font-weight: normal;
}

.primary-nav__menu-link--button {
  position: relative;
  padding-block: 0;
  padding-inline-start: 0;
  padding-inline-end: 0;
  cursor: pointer;
  text-align: start;
  border: 0;
  background: transparent;

  /* Plus icon for mobile navigation. */
}

.primary-nav__menu-link--button.primary-nav__menu-link--has-children {
  padding-inline-end: var(--sp3); /* Ensure text does not overlap icon. */
}

.primary-nav__menu-link--button.primary-nav__menu-link--has-children::before,
.primary-nav__menu-link--button.primary-nav__menu-link--has-children::after {
  position: absolute;
  inset-inline-end: 0.5625rem;
  inset-block-start: calc(var(--sp0-5) + 1.0625rem); /* Visually align button with menu link text. */
  width: 1.125rem;
  height: 0;
  content: "";
  /* Intentionally not using CSS logical properties. */
  border-top: solid 3px var(--color--primary-50);
}

.primary-nav__menu-link--button.primary-nav__menu-link--has-children::after {
  transition: opacity 0.2s;
  transform: rotate(90deg);
}

.primary-nav__menu-link--button.primary-nav__menu-link--has-children[aria-expanded="true"]::after {
  opacity: 0;
}

.primary-nav__menu-link-inner {
  position: relative;
  display: inline-flex;
  align-items: center;
  padding-block: var(--sp0-5);
  padding-inline-start: 0;
  padding-inline-end: 0;
}

.primary-nav__menu-link-inner::after {
  position: absolute;
  inset-block-end: 0;
  inset-inline-start: 0;
  width: 100%;
  height: 0;
  content: "";
  transition: transform 0.2s;
  transform: scaleX(0);
  transform-origin: left;
  /* Intentionally not using CSS logical properties. */
  border-top: solid 5px var(--color--primary-50);
}

.primary-nav__menu-link:hover .primary-nav__menu-link-inner::after {
  transform: scaleX(1);
}

/*
  Top level specific styles.
*/

.primary-nav__menu--level-1 {
  margin-block: 0;
  margin-inline-start: 0;
  margin-inline-end: 0;
  padding-block: 0;
  padding-inline-start: 0;
  padding-inline-end: 0;
}

.primary-nav__menu-link--level-1 {
  position: relative;
  display: flex;
  letter-spacing: -1px;
}

/*
  Secondary menu specific styles.
*/

.primary-nav__menu--level-2 {
  visibility: hidden;
  overflow: hidden;
  flex-basis: 100%;
  max-height: 0;
  margin-block: 0;
  margin-inline-start: calc(-1 * var(--sp));
  padding-inline-start: var(--sp2-5);
  transition:
    opacity 0.2s,
    visibility 0.2s,
    max-height 0.2s;
  opacity: 0;
  border-inline-start: solid var(--sp) var(--color--primary-50);
}

.primary-nav__menu--level-2.is-active-menu-parent {
  visibility: visible;
  max-height: none;
  margin-block-start: var(--sp1-5);
  opacity: 1;
}

.primary-nav__menu--level-2 .primary-nav__menu-item--level-2:first-child {
  padding-block-start: var(--sp0-25);
}

.primary-nav__menu--level-2 .primary-nav__menu-item--level-2:last-child {
  padding-block-end: var(--sp0-25);
}

@media (min-width: 43.75rem) {
  .primary-nav__menu--level-2 {
    margin-inline-start: calc(-1 * var(--sp3));
    padding-inline-start: var(--sp3);
  }
}

/*
 * Olivero doesn't officially support nested tertiary submenus, but this
 * ensures that it doesn't break all the way.
 *
 * @see https://www.drupal.org/project/drupal/issues/3221399
 */

.primary-nav__menu--level-2 .primary-nav__menu-item--has-children {
  display: block;
}

.primary-nav__menu-link--level-2 {
  font-size: 1rem;
  font-weight: normal;
  line-height: var(--sp);
}

html:not(.js) .primary-nav__menu--level-2 {
  visibility: visible;
  max-height: none;
  opacity: 1;
}

[dir="rtl"] .primary-nav__menu-link-inner::after {
  transform-origin: right;
}


/* --- core/themes/olivero/css/components/navigation/nav-primary-button.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Button that expands second level nav when clicked.
 */

.primary-nav__button-toggle {
  position: relative;
  overflow: hidden;
  width: var(--sp2);
  height: var(--sp2);
  margin-block-start: var(--sp0-5); /* Visually align button with menu link text. */
  padding-block: 0;
  padding-inline-start: 0;
  padding-inline-end: 0;
  cursor: pointer;
  text-indent: -62.4375rem;
  border: 0;
  background: transparent;
  -webkit-appearance: none;
}

.primary-nav__button-toggle:focus {
  outline: auto 2px var(--color--primary-50);
  outline-offset: 2px;
}

.primary-nav__button-toggle .icon--menu-toggle {
  position: absolute;
  /* stylelint-disable csstools/use-logical */
  top: 50%;
  left: 50%;
  /* stylelint-enable csstools/use-logical */
  width: 1rem;
  height: 1rem;
  transition: background-color 0.2s;
  transform: translate(-50%, -50%);
  border-radius: 2px;
}

.primary-nav__button-toggle .icon--menu-toggle::before,
.primary-nav__button-toggle .icon--menu-toggle::after {
  position: absolute;
  /* stylelint-disable csstools/use-logical */
  top: 50%;
  left: 50%;
  /* stylelint-enable csstools/use-logical */
  width: var(--sp);
  height: 0;
  content: "";
  transform: translate(-50%, -50%);
  /* Intentionally not using CSS logical properties. */
  border-top: solid 3px var(--color--primary-50);
}

.primary-nav__button-toggle .icon--menu-toggle::after {
  transition: opacity 0.2s;
  transform: translate(-50%, -50%) rotate(90deg);
}

.primary-nav__button-toggle[aria-expanded="true"] .icon--menu-toggle::after {
  opacity: 0;
}

/* aria-hidden attribute is removed by JS. Button is non-functional
     until JS is enabled.
  */

.primary-nav__button-toggle[aria-hidden="true"] {
  pointer-events: none;
}

@media (min-width: 75rem) {
  body:not(.is-always-mobile-nav) .primary-nav__button-toggle {
    flex-shrink: 0;
    align-self: stretch;
    width: calc(var(--sp2) + 0.5rem);
    height: auto;
    margin-block-start: 0;
    margin-inline-end: calc(-1 * var(--sp2));
  }

  body:not(.is-always-mobile-nav) .primary-nav__button-toggle:focus {
    border: 0;
    outline: 0;
  }

  body:not(.is-always-mobile-nav) .primary-nav__button-toggle:focus .icon--menu-toggle {
    border: solid 2px var(--color--primary-40);
  }

  body:not(.is-always-mobile-nav) .primary-nav__button-toggle:active {
    /* Necessary for Safari. */
    color: currentColor;
  }

  body:not(.is-always-mobile-nav) .primary-nav__button-toggle[aria-expanded="true"] .icon--menu-toggle::after {
    opacity: 0.8;
  }

  body:not(.is-always-mobile-nav) .primary-nav__button-toggle .icon--menu-toggle {
    inset-inline-start: 0.1875rem;
    width: 1.125rem;
    transform: translateY(-50%);
    border-radius: 0.25rem;
    background-color: var(--color--white);
  }

  body:not(.is-always-mobile-nav) .primary-nav__button-toggle .icon--menu-toggle::before {
    content: none;
  }

  body:not(.is-always-mobile-nav) .primary-nav__button-toggle .icon--menu-toggle::after {
    /* stylelint-disable csstools/use-logical */
    top: calc(50% - 2px);
    left: 0.1875rem;
    /* stylelint-enable csstools/use-logical */
    width: 0.5rem;
    height: 0.5rem;
    content: "";
    transform: translateY(-50%) rotate(45deg);
    opacity: 0.8;
    /* Intentionally not using CSS logical properties. */
    border-top: none;
    border-right: solid 2px currentColor;
    border-bottom: solid 2px currentColor;
    background: transparent;
  }
}


/* --- core/themes/olivero/css/components/navigation/nav-primary-wide.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Nav Primary (wide widths).
 */

@media (min-width: 75rem) {
  body:not(.is-always-mobile-nav) .primary-nav__menu-item {
    flex-wrap: nowrap; /* Ensure that sub navigation toggle button doesn't wrap underneath link. */
  }
  body:not(.is-always-mobile-nav) .primary-nav__menu-item.primary-nav__menu-item--has-children .primary-nav__menu-link--link,
  body:not(.is-always-mobile-nav) .primary-nav__menu-item.primary-nav__menu-item--has-children .primary-nav__menu-link--nolink {
    flex-basis: auto;
  }

  /* Remove hover state if submenu exists. */
  body:not(.is-always-mobile-nav) .primary-nav__menu-item.primary-nav__menu-item--has-children .primary-nav__menu-link--level-1 .primary-nav__menu-link-inner::after {
    content: none;
  }

  body:not(.is-always-mobile-nav) .primary-nav__menu-link {
    letter-spacing: 0.02em;
    font-size: 1rem;
    line-height: var(--sp1-5);
  }

  body:not(.is-always-mobile-nav) .primary-nav__menu-link:focus {
    position: relative;
    outline: 0;
  }

  body:not(.is-always-mobile-nav) .primary-nav__menu-link:focus::before {
    position: absolute;
    top: 50%;
    left: 50%;
    width: calc(100% + var(--sp));
    height: var(--sp3);
    content: "";
    transform: translate(-50%, -50%);
    border: solid 2px var(--color--primary-50);
    border-radius: 0.25rem;
  }
  body:not(.is-always-mobile-nav) .primary-nav__menu-link--button.primary-nav__menu-link--has-children {
    overflow: visible; /* Necessary to view icon in IE11 */
    padding-inline-end: 0.5625rem;
  }

  body:not(.is-always-mobile-nav) .primary-nav__menu-link--button.primary-nav__menu-link--has-children:focus::before {
    width: calc(100% + var(--sp1-5));
    content: "";
  }

  body:not(.is-always-mobile-nav) .primary-nav__menu-link--button.primary-nav__menu-link--has-children::before {
    content: none;
  }

  /* Chevron icon for desktop navigation. */
  body:not(.is-always-mobile-nav) .primary-nav__menu-link--button.primary-nav__menu-link--has-children::after {
    position: absolute;
    inset-block-start: 50%;
    inset-inline-start: calc(100% - 0.1875rem);
    width: 0.5rem;
    height: 0.5rem;
    margin-block-start: -2px;
    transform: translateY(-50%) rotate(45deg);
    /* Intentionally not using CSS logical properties. */
    border-top: 0;
    border-right: solid 2px currentColor;
    border-bottom: solid 2px currentColor;
  }

  body:not(.is-always-mobile-nav) .primary-nav__menu-link--button.primary-nav__menu-link--has-children[aria-expanded="true"]::after {
    opacity: 1;
  }

  body:not(.is-always-mobile-nav) .primary-nav__menu-link-inner {
    padding-block: var(--sp2);
    padding-inline-start: 0;
    padding-inline-end: 0;
  }

  body:not(.is-always-mobile-nav) .primary-nav__menu-link-inner::after {
    transform-origin: center;
    border-top-width: var(--sp0-5);
  }

  body:not(.is-always-mobile-nav) .primary-nav__menu--level-1 {
    display: flex;
    align-items: stretch;
    margin-inline-end: var(--sp);
  }

  body:not(.is-always-mobile-nav) .primary-nav__menu-item--level-1 {
    position: relative; /* Anchor secondary menu */
    display: flex;
    align-items: center;
    width: max-content;
    max-width: 12.5rem;
    margin-block: 0;
    margin-inline-start: 0;
    margin-inline-end: 0;
  }

  body:not(.is-always-mobile-nav) .primary-nav__menu-item--level-1:not(:last-child) {
    margin-inline-end: var(--sp2);
  }

  body:not(.is-always-mobile-nav) .primary-nav__menu--level-2 {
    position: absolute;
    z-index: 105; /* Appear above search container. */
    top: calc(100% - var(--sp0-5));
    left: 50%;
    visibility: hidden;
    overflow: auto;
    width: 15.625rem;
    /* Ensure that long level-2 menus will never overflow viewport (focused
       * elements should always be in viewport per accessibility guidelines). */
    max-height: calc(100vh - var(--site-header-height-wide) - var(--drupal-displace-offset-top, 0px) - var(--drupal-displace-offset-bottom, 0px) - var(--sp));
    margin-block-start: 0;
    margin-inline-start: 0;
    padding-block: var(--sp3);
    padding-inline-start: var(--sp2);
    padding-inline-end: var(--sp2);
    transition: none;
    transform: translate(-50%, -1.25rem);
    opacity: 0;
    /* Intentionally not using CSS logical properties. */
    border-top: solid var(--color--primary-50) var(--sp0-5);
    border-right: solid 1px transparent; /* Transparent borders useful for Windows High Contrast mode. */
    border-bottom: solid 1px transparent;
    border-left: solid 1px transparent;
    border-radius: 0 0 2px 2px;
    background: var(--color--white);
    box-shadow: 0 1px 36px rgba(0, 0, 0, 0.08);
  }

  body:not(.is-always-mobile-nav) .primary-nav__menu--level-2.is-active-menu-parent {
    visibility: visible;
    margin-block-start: 0;
    transform: translate(-50%, 0);
    opacity: 1;
  }

  body:not(.is-always-mobile-nav) .primary-nav__menu-link--level-2 {
    display: block;
  }

  body:not(.is-always-mobile-nav) .primary-nav__menu-link--level-2:focus::before {
    top: 0;
    left: calc(var(--sp0-5) * -1);
    height: 100%;
    transform: none;
  }

  body:not(.is-always-mobile-nav) .primary-nav__menu-link--level-2 .primary-nav__menu-link-inner {
    padding-block: var(--sp0-5);
    padding-inline-start: 0;
    padding-inline-end: 0;
  }

  body:not(.is-always-mobile-nav) .primary-nav__menu-link--level-2 .primary-nav__menu-link-inner::after {
    transform-origin: left; /* LTR */
    border-top-width: 3px;
  }

  body:not(.is-always-mobile-nav) .primary-nav__menu-link--level-2 .primary-nav__menu-link-inner::after:dir(rtl) {
    transform-origin: right;
  }

  /**
     * Arrow is placed outside of submenu because the submenu has the
     * `overflow: hidden` CSS rule applied.
     */
  body:not(.is-always-mobile-nav) .primary-nav__menu-🥕 {
    position: absolute;
    z-index: 105; /* Match level 2 menus. */
    top: calc(100% - var(--sp));
    left: 50%;
    visibility: hidden;
    width: 0;
    height: 0;
    transform: translate(-50%, -1.25rem);
    opacity: 0;
    /* Intentionally not using CSS logical properties. */
    border-right: solid 10px transparent;
    border-bottom: solid 10px var(--color--primary-50);
    border-left: solid 10px transparent;
  }

  body:not(.is-always-mobile-nav) .primary-nav__menu-🥕.is-active-menu-parent {
    visibility: visible;
    transform: translate(-50%, 0);
    opacity: 1;
  }

  /**
     * When ensuring that long menus don't overflow viewport, we can give a
     * little extra room when the toolbar is fixed (and is shorter).
     */
  body:not(.is-always-mobile-nav) .is-fixed .primary-nav__menu--level-2 {
    max-height: calc(100vh - var(--site-header-height-wide) - var(--drupal-displace-offset-top, 0px) - var(--drupal-displace-offset-bottom, 0px) - var(--sp) + var(--sp4));
  }
}

/*
 * Only apply transition styles to menu when JS is loaded. This
 * works around https://bugs.chromium.org/p/chromium/issues/detail?id=332189
 */

@media (min-width: 75rem) {
  html.js body:not(.is-always-mobile-nav) .primary-nav__menu--level-2,
  html.js body:not(.is-always-mobile-nav) .primary-nav__menu-🥕 {
    transition:
      visibility 0.2s,
      transform 0.2s,
      opacity 0.2s;
  }
}


/* --- core/themes/olivero/css/components/header-search-wide.css --- */
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * @file
 * Header Search Wide Block.
 */

/* Override contextual links so we can position against .site-header. */

.block-search-wide.contextual-region {
  position: static;
}

.block-search-wide__wrapper {
  position: absolute;
  z-index: 1; /* Ensure left border shows above social region in IE11. */
  inset-block-start: 100%;
  inset-inline-start: calc(-1 * var(--content-left));
  display: none;
  visibility: hidden;
  overflow: hidden;
  width: calc(100% + var(--content-left));
  max-width: var(--max-bg-color);
  height: var(--sp8);
  max-height: 0;
  margin-block: 0;
  margin-inline-start: 0;
  margin-inline-end: 0;
  padding-block: 0;
  padding-inline-start: 0;
  padding-inline-end: 0;
  transition: all 0.2s;
  border-inline-start: solid var(--content-left) var(--color--gray-20);
  background: var(--color--black);
}

.block-search-wide__wrapper.is-active {
  visibility: visible;
  max-height: var(--sp8);
}

.block-search-wide__wrapper form {
  display: flex;
  grid-column: 1 / 14;
}

.block-search-wide__wrapper input[type="search"] {
  width: calc(100% + var(--sp2));
  height: var(--sp8);
  padding-block: 0;
  padding-inline-start: var(--sp12);
  padding-inline-end: 0;
  transition: background-size 0.4s;
  color: var(--color--white);
  border: solid 1px transparent;
  box-shadow: none;
  font-family: var(--font-serif);
  font-size: 2rem;
  -webkit-appearance: none;
}

.block-search-wide__wrapper input[type="search"]:focus {
  outline: solid 4px transparent;
  outline-offset: -4px;
}

.block-search-wide__wrapper .form-item-keys {
  flex-grow: 1;
  margin: 0;
}

.block-search-wide__wrapper .form-actions {
  display: flex;
  margin: 0;
}

.block-search-wide__wrapper .search-form__submit {
  position: relative;
  overflow: hidden;
  align-self: stretch;
  width: 6.25rem;
  height: auto;
  margin-block: 0;
  margin-inline-start: 0;
  margin-inline-end: 0;
  padding-block: 0;
  padding-inline-start: 0;
  padding-inline-end: 0;
  cursor: pointer;
  border-color: transparent;
  background-color: transparent;

  /*
      When in Windows high contrast mode, FF will not output either background
      images or SVGs that are nested directly within a <button> element, so we add a <span>.
    */
}

.block-search-wide__wrapper .search-form__submit .icon--search {
  position: absolute;
  inset-block-start: 0;
  inset-inline-end: 0;
  display: block;
  width: 1.5rem; /* Width of the SVG background image. */
  height: 100%;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='26' height='27.2' viewBox='0 0 26 27.2'%3e  %3cpath fill='%23fff' d='M25.8,25.5l-5.3-5.3c2.1-2.1,3.4-5.1,3.4-8.3C23.9,5.3,18.5,0,11.9,0C5.3,0,0,5.3,0,11.9c0,6.6,5.3,11.9,11.9,11.9c2.6,0,5.1-0.9,7-2.3l5.4,5.4c0.4,0.4,1,0.4,1.4,0C26.1,26.6,26.1,25.9,25.8,25.5z M11.9,21.9c-5.5,0-9.9-4.4-9.9-9.9S6.4,2,11.9,2c5.5,0,9.9,4.4,9.9,9.9S17.4,21.9,11.9,21.9z'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

.block-search-wide__wrapper .search-form__submit .icon--search::after {
  position: absolute;
  inset-block-end: 0;
  inset-inline-start: 0;
  width: 100%;
  height: 0;
  content: "";
  transition: transform 0.2s;
  transform: scaleX(0);
  transform-origin: left;
  border-block-start: solid var(--sp0-5) var(--color--primary-50);
}

.block-search-wide__wrapper .search-form__submit:focus {
  outline: solid 4px transparent;
  outline-offset: -4px;
  box-shadow: none;
}

.block-search-wide__wrapper .search-form__submit:focus span::after {
  transform: scaleX(1);
}

@media screen and (-ms-high-contrast: active) {
  .block-search-wide__wrapper .search-form__submit:focus {
    border-bottom-width: var(--sp0-5);
  }

  .block-search-wide__wrapper .search-form__submit:focus span::after {
    content: none;
  }
}

@media screen and (-ms-high-contrast: active) {
  /* Edge's high contrast does show the background image, so we hide it. */
  .block-search-wide__wrapper .search-form__submit .icon--search {
    display: none;
  }
}

.block-search-wide__container {
  max-width: var(--max-width);
  padding-inline-end: var(--sp2);
}

.block-search-wide__grid {
  display: grid;
  grid-template-columns: repeat(var(--grid-col-count), 1fr);
  grid-column-gap: var(--grid-gap);
}

/* Override specificity from container-inline.module.css */

.container-inline .block-search-wide__container {
  display: block;
}

.container-inline .block-search-wide__grid {
  display: grid;
}

.block-search-wide__button {
  position: relative;
  display: none;
  width: var(--sp3);
  height: var(--sp6);
  cursor: pointer;
  color: var(--color-text-neutral-loud); /* Affects SVG search icon. */
  border: 0;
  background: transparent;
  -webkit-appearance: none;
}

.block-search-wide__button:focus {
  position: relative;
  outline: 0;
}

.block-search-wide__button:focus::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 80%;
  height: var(--sp3);
  content: "";
  transform: translate(-50%, -50%);
  border: solid 2px var(--color--primary-50);
  border-radius: 0.25rem;
}

.block-search-wide__button[aria-expanded="true"] {
  background: var(--color--black);
}

.block-search-wide__button[aria-expanded="true"]:focus::after {
  border-color: var(--color--white);
}

.block-search-wide__button[aria-expanded="true"] .block-search-wide__button-close::before,
.block-search-wide__button[aria-expanded="true"] .block-search-wide__button-close::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: var(--sp1-5);
  height: 0;
  content: "";
  border-block-start: solid 2px var(--color--white);
}

.block-search-wide__button[aria-expanded="true"] .block-search-wide__button-close::before {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.block-search-wide__button[aria-expanded="true"] .block-search-wide__button-close::after {
  transform: translate(-50%, -50%) rotate(45deg);
}

.block-search-wide__button[aria-expanded="true"] svg {
  display: none;
}

.block-search-wide__button svg {
  margin-inline-start: auto;
  margin-inline-end: auto;
}

@media (forced-colors: active) {
  .block-search-wide__button {
    background: ButtonFace;
  }

  .block-search-wide__button path {
    fill: ButtonText;
  }
}

/* Provide rudimentary access to site search if JS is disabled. */

html:not(.js) .search-block-form:focus-within .block-search-wide__wrapper {
  visibility: visible;
  max-height: var(--sp8);
}

/* Necessary to override specificity of transpiled PostCSS properties from default input focus styling. */

[dir] .block-search-wide__wrapper input[type="search"] {
  background-color: transparent;
  background-image: linear-gradient(var(--color--primary-50), var(--color--primary-50)); /* Two values are needed for IE11 support. */
  background-repeat: no-repeat;
  background-position: bottom left; /* LTR */
  background-size: 0% 0.625rem;
}

[dir] .block-search-wide__wrapper input[type="search"]:focus {
  background-size: 100% var(--sp0-5);
}

[dir="rtl"] .block-search-wide__wrapper input[type="search"] {
  background-position: bottom right;
}

[dir="rtl"] .block-search-wide__wrapper .search-form__submit .icon--search::after {
  transform-origin: right;
}

@media (min-width: 75rem) {
  body:not(.is-always-mobile-nav) .block-search-wide__wrapper,
  body:not(.is-always-mobile-nav) .block-search-wide__button {
    display: block;
  }
}


/* --- sites/default/files/asset_injector/css/buttons-eb783cfbcca14b728cc738945d0aafce.css --- */
.field--name-field-button-link a {
    background-color: #005B93; /* Background color */
    color: white; /* Text color */
    padding: 10px 20px; /* Padding around the text */
    text-decoration: none; /* Removes underline from the link */
    display: inline-block; /* Allows padding and other box model properties */
    border-radius: 5px; /* Rounds the corners of the button */
    font-size: 16px; /* Adjusts the font size */
    font-weight: bold; /* Makes the font bold */
    transition: background-color 0.3s, color 0.3s, transform 0.3s; /* Smooth transition for hover and focus effects */
    outline: none; /* Removes the default outline */
}

.field--name-field-button-link a:hover, .field--name-field-button-link a:focus {
    background-color: #003f6f; /* Even darker color on hover and focus for more pronounced effect */
    color: #ffffff; /* Maintains high contrast text color */

    outline: 2px solid #ffffff; /* Adds a white outline on focus for keyboard navigation visibility */
}



/* --- sites/default/files/asset_injector/css/featured_block-f7f59005bfade707ebeb202438e61630.css --- */
/* Style for the container div */
div.featured-consultation-block,
  div.mobile-feature-consult-block
{
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.2); /* Add shadow around the full block */
	margin: 5px;
  text-align: center; /* Center the text within the container */

}


/* Title of block */
#featured-consultation-block > h2,
#mobile-feature-consult-block > h2
{
  font-size: x-large;	
  padding-top:10px;
}



/* Style for the image */
div.views-field-field-banner-image img {
  display: block;
  margin: 0 auto; /* Center the image horizontally */
}

/* Style for the consultation title link */
div.views-field-title-1 a {
  display: block;
  text-align: center; /* Center the text */


}

/* Style for the closing date */

span.views-field.views-field-field-closing-date {
    font-size: smaller;
}




/* Style for the "Related to" text */
div.views-field-field-related-area .views-label {
  margin-right: 5px; /* Add some spacing between the label and the items */
}


/* Style for the related area */
div.views-field-field-related-area {

  align-items: center; /* Center the items vertically */
  font-size: x-small; /* Set font size to x-small */
}

/* Style for the views-row items within the featured-consultation-block */
div.featured-consultation-block .view-content > .views-row {
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.2); /* Add shadow for each item */
  padding: 10px; /* Add padding for individual item */
  margin-bottom: 10px; /* Add margin between items */
}



div#featured-consultation-block {
    width: 350px;
    padding-bottom: 5px;
}



/* Mobile hide and display  */

/* Styles for small screens */
@media screen and (max-width: 767px) {
#mobile-feature-consult-block {
    display: none; /* Show the block on small screens */
  }
  
#featured-consultation-block {
    display: none; /* Hides feature block the block on small screens */
  }
  
  


}

/* Styles for large screens */
@media screen and (min-width: 768px) {
#mobile-feature-consult-block {
    display: none; /* Hide the block on large screens */
  }
}










/* --- sites/default/files/asset_injector/css/home_page-5afb0d36221b23dd4b1f0502f137a3c3.css --- */
/*Hide home page title*/

#block-olivero-page-title
{
	display:none;
}
  
  
    table {
    margin: 0 auto;
  }
  /* Center the text */
  td > figure > figcaption {
    text-align: center;
  }

  /* Make the text bigger */
  td > figure > figcaption > a {
    font-size: 24px;
  }
  
  
  
    /* Responsive layout */
  @media (max-width: 600px) {
    table {
      display: block;
    }

    td {
      display: block;
      text-align: center;
    }

    td img {
      margin: 0 auto;
    }

    td h4 {
      margin-top: 10px;
    }
  }

/* --- sites/default/files/asset_injector/css/forms_page_styling-3a6a19e9f08b70ef43e4ef4341b2e7b0.css --- */
.forms-block {

  background-color: #f1f1f1;
  padding: 20px;
}

.cardform {
  flex-basis: calc(33.33% - 30px);
  background: #FFFFFF;
  border-radius: 20px;
  opacity: 1;
  padding: 15px;
  margin-bottom: 30px;
  cursor: pointer;
  height: 130px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* Add this line for shadow */
}

.cardformicon {
  margin-right: 10px;
}

.cardformtitle {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.cardformtitle a {
  text-decoration: none;
  color: #000;
  font-weight: bold;
}



/* --- sites/default/files/asset_injector/css/local_gov_paragraphs_styling-032c0e737d152e672c4efa2fac7bc9b0.css --- */
/* Style the accordion title buttons */
.accordion-pane__title h3 button {
  background-color: #0071B8; /* Updated background color */
  color: #fff; /* Change to your desired text color */
  padding: 15px 20px; /* Adjust the padding values to make it bigger in height */
  border: none;
  cursor: pointer;
  width: 100%;
  text-align: left;
  border-radius: 5px;
  font-size: 16px;
  margin: 0;
  position: relative;
  padding-right: 30px; /* Added right padding for the "+" symbol */
}

/* Add a "+" symbol on the far right of the accordion title button */
.accordion-pane__title h3 button::after {
  content: "+";
  position: absolute;
  right: 10px; /* Adjust the right position to align the symbol as desired */
}

/* Style the active accordion title button */
.accordion-pane__title h3 button[aria-expanded="true"] {
  background-color: #0056b3; /* Change to your desired active background color */
}

/* Style the accordion content */
.accordion-pane__content {
  display: none;
  padding: 10px;
}

/* Show the active accordion content */
.accordion-pane__content.active {
  display: block;
  background-color: #f5f5f5; /* Change to your desired content background color */
  padding: 15px;
  border-radius: 5px;
}


/* --- sites/default/files/asset_injector/css/theme_adjustments-0c8fd6141dc8a597dbe072729c6b1973.css --- */
/*Removed published by*/

#block-olivero-content > div > article > header > div {
    display: none;
}



/*Tighten up spacing between breadcrumb and image*/

div#block-olivero-breadcrumbs {
    margin-bottom: 1px;
}



/*Adjust Image location*/
#block-olivero-content > div > article > div > div.consult_img.wide-image.field.field--name-field-banner-image.field--type-image.field--label-hidden.field__item
{
	    margin-left: 0px;

}



/*Remove Drupal default background*/

body {
  background: none;
}

/*Remove page wrapper to make page full width*/
.page-wrapper {
     max-width: none;
    background: var(--color--white);
}

.container {
  max-width: none;
}

/*Remove social media bar*/
.social-bar {
   display:none;
}


/*Remove black footer*/
body:not(.is-always-mobile-nav) .site-footer {
    border-inline-start: none;
}


/*Add custom image to footer*/
.site-footer__inner {
	
background-image: url('../images/footer_banner.png');
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    padding-block: var(--sp4) calc(13 * var(--sp));
}

/* Define the keyframe animation variable in this case zoom-footer-img on mobile */
@keyframes zoom-footer-img {
  0% {
    transform: scale(1);
  }

  100% {
    transform: scale(1.5);
  }
}

/* Apply the animation to the image on mobile */
@media only screen and (max-width: 767px) {
  .site-footer__inner {
    animation: zoom-footer-img 10s forwards;
  }
}


/* --- sites/default/files/asset_injector/css/archive-layout-fix.css --- */
/*
 * archive-layout-fix.css
 * ----------------------
 * Fixes for CSS layout issues that occur when the Drupal Olivero theme is
 * served as a static archive (without Drupal's JS context).
 *
 * Issues fixed:
 *
 * 1. Two-column (75-25) layout inside consultation node pages renders
 *    incorrectly — main content is crushed into a narrow column and the
 *    sidebar text appears vertically.
 *
 *    Root cause: The .layout--twocol-section uses CSS grid with
 *    grid-template-columns: var(--layout-twocol-grid) which depends on
 *    CSS custom properties set via media queries. The inner grid items
 *    (.layout__region--first / --second) can inherit a grid-column
 *    property from ancestor .layout--pass--content-medium rules that
 *    overrides the twocol grid placement.
 *
 * 2. The .timetogo block uses float:left which can affect layout flow
 *    in some rendering contexts.
 *
 * 3. The footer background image path is incorrect for the node/ subdirectory.
 */

/* -----------------------------------------------------------------------
 * Fix 1: Ensure twocol layout regions are NOT overridden by the ancestor
 * layout--pass--content-medium grid-column rules.
 * The twocol grid uses 4 columns (75-25 = span 3 / span 1).
 * We must reset grid-column on the regions so the twocol grid controls them.
 * ----------------------------------------------------------------------- */

/* Reset grid-column on twocol children so the inner grid takes control */
.layout--twocol-section > .layout__region {
  grid-column: unset !important;
  width: unset !important;
}

/* Restore the correct 75-25 column spans */
@media (min-width: 43.75rem) {
  .layout--twocol-section--75-25 > .layout__region--first {
    grid-column: span 3 !important;
  }

  .layout--twocol-section--75-25 > .layout__region--second {
    grid-column: auto !important;
  }

  .layout--twocol-section--67-33 > .layout__region--first {
    grid-column: span 2 !important;
  }

  .layout--twocol-section--33-67 > .layout__region--second {
    grid-column: span 2 !important;
  }

  .layout--twocol-section--25-75 > .layout__region--second {
    grid-column: span 3 !important;
  }
}

/* -----------------------------------------------------------------------
 * Fix 2: Ensure the twocol section itself fills the available width
 * and is not constrained to a single grid column.
 * ----------------------------------------------------------------------- */

.node__content .layout--twocol-section,
.node__content .layout--onecol {
  width: 100%;
  grid-column: unset !important;
}

/* -----------------------------------------------------------------------
 * Fix 3: The block-system-main-block should fill its grid track fully.
 * ----------------------------------------------------------------------- */

.block-system-main-block {
  min-width: 0; /* prevent grid blowout */
}

/* -----------------------------------------------------------------------
 * Fix 4: Ensure the article node content fills its container fully.
 * ----------------------------------------------------------------------- */

.node--view-mode-full {
  width: 100%;
}

/* -----------------------------------------------------------------------
 * Fix 5: Correct timetogo float issue — convert to display:block
 * to avoid clearfix issues in grid contexts.
 * ----------------------------------------------------------------------- */

.timetogo {
  float: none !important;
  display: block;
}

/* -----------------------------------------------------------------------
 * Fix 6: The theme_adjustments.css sets the footer background-image using
 * a relative path (../../../../themes/...) that works from the site root
 * but not from node/ subdirectory pages (which need ../themes/...).
 * Override it here with the correct path for node pages.
 * ----------------------------------------------------------------------- */

.site-footer__inner {
  background-image: url('../images/footer_banner.png') !important;
}


/* ==========================================================================
   Custom Portal Improvements & Responsive Components
   ========================================================================== */
html {
  scroll-behavior: smooth;
}

.portal-hero {
  background: linear-gradient(135deg, #f0f7ff 0%, #e2eeff 100%);
  border: 1px solid #cbe0fa;
  border-radius: 16px;
  padding: 40px 36px;
  margin: 10px 0 32px 0;
  box-shadow: 0 4px 20px rgba(0, 86, 150, 0.05);
}

.portal-hero__badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #005696;
  color: #ffffff;
  font-size: 0.82rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 5px 14px;
  border-radius: 9999px;
  margin-bottom: 16px;
}

.portal-hero__title {
  font-family: inherit;
  font-size: 2.3rem;
  line-height: 1.25;
  font-weight: 700;
  color: #0b2545;
  margin: 0 0 16px 0;
}

.portal-hero__lead {
  font-size: 1.15rem;
  line-height: 1.6;
  color: #334155;
  max-width: 850px;
  margin: 0;
}

.privacy-notice {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  background-color: #ffffff;
  border-left: 4px solid #0066cc;
  border-radius: 10px;
  padding: 20px 24px;
  margin-bottom: 40px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  border-top: 1px solid #e2e8f0;
  border-right: 1px solid #e2e8f0;
  border-bottom: 1px solid #e2e8f0;
}

.privacy-notice__icon {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  color: #0066cc;
  margin-top: 2px;
}

.privacy-notice__text {
  font-size: 0.95rem;
  line-height: 1.55;
  color: #475569;
  margin: 0;
}

.privacy-notice__text strong {
  color: #1e293b;
}

.gateways-wrapper {
  margin-bottom: 48px;
}

.gateways-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 28px;
}

.gateway-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  padding: 32px 28px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  text-decoration: none;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.05);
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
  position: relative;
  overflow: hidden;
}

.gateway-card:hover,
.gateway-card:focus-visible {
  transform: translateY(-4px);
  box-shadow: 0 12px 28px rgba(0, 102, 204, 0.12);
  border-color: #93c5fd;
  outline: none;
}

.gateway-card__icon-wrap {
  width: 96px;
  height: 96px;
  background: #f1f5f9;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
  transition: background-color 0.25s ease;
}

.gateway-card:hover .gateway-card__icon-wrap {
  background: #e0f2fe;
}

.gateway-card__icon-wrap img {
  width: 54px;
  height: 54px;
  object-fit: contain;
}

.gateway-card__title {
  font-size: 1.5rem;
  font-weight: 700;
  color: #0f172a;
  margin: 0 0 12px 0;
}

.gateway-card__desc {
  font-size: 1rem;
  color: #475569;
  line-height: 1.55;
  margin: 0 0 24px 0;
  flex-grow: 1;
}

.gateway-card__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: #0066cc;
  color: #ffffff !important;
  font-weight: 600;
  font-size: 1rem;
  padding: 12px 28px;
  border-radius: 8px;
  text-decoration: none;
  transition: background-color 0.2s ease;
  width: 100%;
  max-width: 240px;
}

.gateway-card__btn:hover {
  background: #004c99;
}

.gateway-card__btn svg {
  width: 16px;
  height: 16px;
  transition: transform 0.2s ease;
}

.gateway-card:hover .gateway-card__btn svg {
  transform: translateX(4px);
}

.section-divider {
  height: 1px;
  background: #e2e8f0;
  margin: 48px 0;
  border: none;
}

.section-header {
  margin-bottom: 24px;
}

.section-header__title {
  font-size: 1.85rem;
  font-weight: 700;
  color: #0f172a;
  margin: 0 0 10px 0;
}

.section-header__desc {
  font-size: 1.05rem;
  line-height: 1.6;
  color: #334155;
  margin: 0;
}

.services-container {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  padding: 36px 30px;
  margin-bottom: 32px;
}

.services-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 24px;
}

.service-tile {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  padding: 28px 24px;
  display: flex;
  flex-direction: column;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.04);
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.service-tile:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
  border-color: #93c5fd;
}

.service-tile__header {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 16px;
}

.service-tile__icon {
  width: 56px;
  height: 56px;
  flex-shrink: 0;
  background: #f0fdf4;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px;
}

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

.service-tile__title {
  font-size: 1.3rem;
  font-weight: 700;
  color: #0f172a;
  margin: 0;
}

.service-tile__body {
  font-size: 0.95rem;
  line-height: 1.6;
  color: #475569;
  margin: 0 0 24px 0;
  flex-grow: 1;
}

.service-tile__action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-weight: 600;
  font-size: 0.95rem;
  padding: 10px 18px;
  border-radius: 8px;
  text-decoration: none;
  border: 1.5px solid #0066cc;
  color: #0066cc;
  background: transparent;
  transition: all 0.2s ease;
}

.service-tile__action:hover,
.service-tile__action:focus-visible {
  background: #0066cc;
  color: #ffffff !important;
  text-decoration: none;
}

.services-footer-note {
  margin-top: 28px;
  padding: 16px 20px;
  background: #eff6ff;
  border-radius: 10px;
  font-size: 0.92rem;
  line-height: 1.55;
  color: #1e40af;
  border: 1px solid #bfdbfe;
}

@media (max-width: 768px) {
  .portal-hero {
    padding: 28px 20px;
  }
  .portal-hero__title {
    font-size: 1.8rem;
  }
  .services-container {
    padding: 24px 16px;
  }
}

/* ==========================================================================
   Accessible High-Contrast Civic Footer & Skyline Separation
   ========================================================================== */
.site-footer {
  position: relative;
  background: #f8fafc;
  border-top: 2px solid #e2e8f0;
  padding-top: 36px;
  overflow: hidden;
}

.site-footer__inner {
  background-image: none !important; /* Moved to dedicated bottom element to prevent text collision */
  padding-block: 0 !important;
  animation: none !important;
  max-width: 1200px;
  margin: 0 auto;
  padding-inline: 20px;
}

.site-footer__card {
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 14px;
  padding: 28px 32px;
  box-shadow: 0 4px 20px rgba(0, 40, 80, 0.06);
  color: #1e293b;
}

.site-footer__top {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: 24px;
}

.site-footer__identity strong {
  display: block;
  font-size: 1.15rem;
  color: #005c91;
  font-weight: 700;
  margin-bottom: 6px;
}

.site-footer__identity p {
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.6;
  color: #334155;
}

.site-footer__identity a {
  color: #005c91;
  font-weight: 600;
  text-decoration: underline;
  transition: color 0.2s ease;
}

.site-footer__identity a:hover {
  color: #003d61;
}

.site-footer__legal-nav ul {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 20px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.site-footer__legal-nav a {
  color: #005c91;
  font-size: 0.92rem;
  font-weight: 600;
  text-decoration: underline;
  transition: color 0.2s ease;
}

.site-footer__legal-nav a:hover {
  color: #003d61;
  text-decoration: none;
}

.site-footer__bottom {
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid #e2e8f0;
  font-size: 0.88rem;
  color: #64748b;
  text-align: center;
}

.site-footer__skyline {
  width: 100%;
  height: 160px;
  background-image: url('../images/footer_banner.png');
  background-repeat: repeat-x;
  background-position: bottom center;
  background-size: auto 160px;
  margin-top: 28px;
  pointer-events: none;
}

@media (max-width: 768px) {
  .site-footer {
    padding-top: 24px;
  }
  .site-footer__card {
    padding: 20px;
  }
  .site-footer__top {
    flex-direction: column;
    gap: 18px;
  }
  .site-footer__skyline {
    height: 110px;
    background-size: auto 110px;
    margin-top: 18px;
  }
}
