/*!
Theme Name: Jesuit Missions
Version: 1.0
Author: Hands Up
Author URI: https://www.handsup.co.uk
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: jesuit
*/
/* ==========================================================================
   Mixins
   ========================================================================== */
/**
 * Reusable styles for use in the project.
 *
 * Contents
 *
 * 1. Media queries
 * 2. Helpers
 * 3. Project-specific
 */
/* 1. Media queries
   ========================================================================== */
/**
 * The values here should be copied from theme.json custom variables. Because
 * they're generated inline, the variables cannot be used in a mixin, which is
 * pre-processed.
 */
/* 2. Helpers
	========================================================================== */
/**
 * Inclusively hide
 */
.sr-only:not(:focus):not(:active), .gform_required_legend:not(:focus):not(:active), .gfield_required:not(:focus):not(:active), .wp-pattern-signup form label:not(:focus):not(:active), .site-search__form-container form label:not(:focus):not(:active) {
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

/**
 * Mixin with common FontAwesome pseudo-element styles
 */
.is-fa-pseudo-element, .gform_validation_errors ol li:before {
  font-family: "Font Awesome 6 Free";
  display: inline-block;
  font-style: normal;
  font-variant: normal;
  text-rendering: auto;
}

/**
 * Responsive 16:9 vide embeds.
 */
.flexible-container {
  position: relative;
  padding-bottom: 56.25%; /* 16:9 */
  height: 0;
}
.flexible-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/* 3. Project-specific reusable mixins
	========================================================================== */
/**
 * The various background overlays used throughout the site.
 */
.has-bg-overlay, .wp-pattern-verse, .wp-pattern-campaigns-list, .wp-pattern-stories, .wp-pattern-take-action, .wp-pattern-icons-with-text, .wp-block-archive, .wp-block-banner.is-style-solid, .wp-block-cta__inner, .site-foot {
  position: relative;
}
.has-bg-overlay > *, .wp-pattern-verse > *, .wp-pattern-campaigns-list > *, .wp-pattern-stories > *, .wp-pattern-take-action > *, .wp-pattern-icons-with-text > *, .wp-block-archive > *, .wp-block-banner.is-style-solid > *, .wp-block-cta__inner > *, .site-foot > * {
  position: relative;
  z-index: 1;
}
.has-bg-overlay:before, .wp-pattern-verse:before, .wp-pattern-campaigns-list:before, .wp-pattern-stories:before, .wp-pattern-take-action:before, .wp-pattern-icons-with-text:before, .wp-block-archive:before, .wp-block-banner.is-style-solid:before, .wp-block-cta__inner:before, .site-foot:before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 35vw;
  height: 35vw;
  max-height: 100%;
  background-image: url(resources/img/bg-detail-overlay.svg);
  background-repeat: no-repeat;
  background-size: contain;
  background-position: left bottom;
}
.has-bg-overlay--top-left:before, .wp-pattern-take-action:before, .wp-pattern-icons-with-text:before {
  -webkit-transform: scaleY(-1);
          transform: scaleY(-1);
  top: 0;
  bottom: auto;
}
.has-bg-overlay--bottom-right:before, .wp-block-banner.is-style-solid:before, .site-foot:before {
  right: 0;
  left: auto;
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
}
.has-bg-overlay--large:before, .wp-pattern-stories:before {
  width: 50vw;
  height: 50vw;
}
@media (max-width: 599px) {
  .has-bg-overlay--large:before, .wp-pattern-stories:before {
    width: 70vw;
    height: 70vw;
  }
}

/**
 * Some block have a shape detail that appears after them, overlapping the next
 * block.
 */
.has-shape-overlay-after, .wp-pattern-stories, .wp-pattern-take-action {
  position: relative;
}
.has-shape-overlay-after > *, .wp-pattern-stories > *, .wp-pattern-take-action > * {
  position: relative;
  z-index: 1;
}
.has-shape-overlay-after:after, .wp-pattern-stories:after, .wp-pattern-take-action:after {
  content: "";
  position: absolute;
  right: 0;
  top: 100%;
  width: 20vw;
  height: 10vw;
  background-position: right top;
  background-repeat: no-repeat;
  background-size: contain;
  z-index: 1;
  pointer-events: none;
  margin-left: auto;
}
.has-shape-overlay-after--is-light-blue:after, .wp-pattern-stories:after {
  background-image: url(resources/img/bg-light-blue.svg);
}
.has-shape-overlay-after--is-yellow:after, .wp-pattern-take-action:after {
  background-image: url(resources/img/bg-yellow.svg);
}
.has-shape-overlay-after--is-white:after {
  background-image: url(resources/img/bg-white.svg);
}

/**
 * Mixin to make image or background expand to left or right of viewport.
 */
.media-expands, .wp-pattern-signup .wp-block-media-text.has-media-on-the-right .wp-block-media-text__media, .wp-pattern-signup .wp-block-media-text .wp-block-media-text__media, .wp-pattern-donate .wp-block-media-text.has-media-on-the-right .wp-block-media-text__media, .wp-pattern-donate .wp-block-media-text .wp-block-media-text__media, .wp-pattern-expanding-media-text.has-media-on-the-right .wp-block-media-text__media, .wp-pattern-expanding-media-text .wp-block-media-text__media {
  position: relative;
  min-height: 40vw;
  -ms-flex-item-align: stretch;
      -ms-grid-row-align: stretch;
      align-self: stretch;
}
.media-expands--to-left, .wp-pattern-signup .wp-block-media-text .wp-block-media-text__media, .wp-pattern-donate .wp-block-media-text .wp-block-media-text__media, .wp-pattern-expanding-media-text .wp-block-media-text__media {
  margin-left: calc((-100vw + 100%) / 2);
  padding-left: calc((100vw - 100%) / 2);
}
@media (max-width: 599px) {
  .media-expands--to-left, .wp-pattern-signup .wp-block-media-text .wp-block-media-text__media, .wp-pattern-donate .wp-block-media-text .wp-block-media-text__media, .wp-pattern-expanding-media-text .wp-block-media-text__media {
    margin-right: calc((-100vw + 100%) / 2);
    padding-left: 0;
  }
}
.media-expands--to-right, .wp-pattern-signup .wp-block-media-text.has-media-on-the-right .wp-block-media-text__media, .wp-pattern-donate .wp-block-media-text.has-media-on-the-right .wp-block-media-text__media, .wp-pattern-expanding-media-text.has-media-on-the-right .wp-block-media-text__media {
  margin-right: calc((-100vw + 100%) / 2);
  padding-right: calc((100vw - 100%) / 2);
  margin-left: 0;
  padding-left: 0;
}
@media (max-width: 599px) {
  .media-expands--to-right, .wp-pattern-signup .wp-block-media-text.has-media-on-the-right .wp-block-media-text__media, .wp-pattern-donate .wp-block-media-text.has-media-on-the-right .wp-block-media-text__media, .wp-pattern-expanding-media-text.has-media-on-the-right .wp-block-media-text__media {
    padding-right: 0;
    margin-left: calc((-100vw + 100%) / 2);
  }
}
.media-expands--to-right img, .wp-pattern-signup .wp-block-media-text.has-media-on-the-right .wp-block-media-text__media img, .wp-pattern-donate .wp-block-media-text.has-media-on-the-right .wp-block-media-text__media img, .wp-pattern-expanding-media-text.has-media-on-the-right .wp-block-media-text__media img {
  left: 0;
}

/**
 * Styles for pre-titles, using <mark> element.
 */
.is-pre-title, .search-banner p:first-of-type, .wp-block-banner__pre-title {
  font-size: var(--wp--preset--font-size--medium);
  font-family: var(--wp--preset--font-family--interstate-mono);
  text-transform: uppercase;
  margin: 0;
  font-weight: 700;
}
.is-pre-title mark, .search-banner p:first-of-type mark, .wp-block-banner__pre-title mark {
  background-color: var(--wp--preset--color--secondary);
  color: var(--wp--preset--color--primary);
}

/* ==========================================================================
   Reset
   ========================================================================== */
html {
  font-size: 62.5%;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

*,
*:before,
*:after {
  -webkit-box-sizing: inherit;
          box-sizing: inherit;
}

body {
  margin: 0;
  -webkit-font-smoothing: antialiased;
}

h1,
h2,
h3,
h4,
h5,
h6,
p,
ul,
ol {
  margin: var(--wp--preset--spacing--x-small) 0 0;
}

figure {
  margin-bottom: 0;
}

img {
  max-width: 100%;
  height: auto;
}

mark {
  padding: 3px 6px;
}

button:focus {
  outline: none;
}
button:focus-visible {
  outline: 2px solid;
  outline-offset: 5px;
}

/* ==========================================================================
	Site
	========================================================================== */
/**
 * Framework styles for forms generated by Gravity Forms.
 *
 * Contents
 *
 * 1. Body
 * 2. Site logo
 * 3. Site header
 * 4. Site footer
 * 5. Site menu
 * 6. Site blocks
 * 7. Site search
 * 8. Site overlay
 */
/* 1. Body
	========================================================================== */
body {
  max-width: 100vw;
  overflow-x: hidden;
}
body.menu-is-open {
  max-height: 100vh;
}
body:after {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
  z-index: -1;
  /* Load images we need to show on hover to prevent flickering. */
  content: url(resources/img/icon-chevron-down-yellow.svg) url(resources/img/icon-close.svg);
}

a:not(.wp-element-button):focus {
  outline: none;
}
a:not(.wp-element-button):focus-visible {
  outline: 2px solid;
  outline-offset: 5px;
}

/* 2. Site logo
	========================================================================== */
.site-logo {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100px;
          flex: 0 0 100px;
}
@media (max-width: 1199px) {
  .site-logo {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
}
@media (max-width: 840px) {
  .site-logo {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 75px;
            flex: 0 0 75px;
  }
}
.site-logo a {
  display: block;
}

/* 3. Site header
	========================================================================== */
.site-head {
  background: var(--wp--preset--color--secondary);
  padding-top: var(--wp--preset--spacing--x-small);
  position: relative;
}
@media (max-width: 840px) {
  .site-head {
    padding-bottom: var(--wp--preset--spacing--x-small);
  }
}
.site-head:after {
  content: "";
  width: 268px;
  height: 148px;
  position: absolute;
  left: 0;
  top: 100%;
  background: url(resources/img/bg-site-logo.svg) no-repeat center top/contain;
  z-index: 1;
}
@media (max-width: 840px) {
  .site-head:after {
    width: 108px;
    height: 60px;
  }
}
.site-head__inner {
  max-width: 100%;
  padding-left: var(--wp--style--root--padding-left);
  padding-right: var(--wp--style--root--padding-right);
  margin: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: var(--wp--preset--spacing--x-small);
}
.site-head__buttons {
  justify-self: flex-end;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 15px;
  margin-top: -28px;
}
@media (max-width: 1199px) {
  .site-head__buttons {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }
  .site-head__buttons > .is-contact {
    display: none;
  }
}
@media (max-width: 840px) {
  .site-head__buttons {
    margin-top: 0;
  }
}
.site-head__search {
  width: 24px;
  height: 24px;
  border: none;
  cursor: pointer;
  margin-right: 15px;
  background: url(resources/img/icon-search.svg) no-repeat center center/contain;
  -webkit-transform: scale(1);
          transform: scale(1);
  -webkit-transition: 0.3s -webkit-transform;
  transition: 0.3s -webkit-transform;
  transition: 0.3s transform;
  transition: 0.3s transform, 0.3s -webkit-transform;
  color: var(--wp--preset--color--base);
}
@media (max-width: 1199px) {
  .site-head__search {
    width: 40px;
    height: 40px;
    margin-right: 0;
  }
}
.site-head__search:hover {
  -webkit-transform: scale(1.4);
          transform: scale(1.4);
  -webkit-transition: 0.3s -webkit-transform;
  transition: 0.3s -webkit-transform;
  transition: 0.3s transform;
  transition: 0.3s transform, 0.3s -webkit-transform;
}

/* 4. Site footer
	========================================================================== */
.site-foot {
  padding-top: var(--wp--preset--spacing--medium);
  padding-bottom: var(--wp--preset--spacing--small);
  background-color: var(--wp--preset--color--secondary);
  color: var(--wp--preset--color--base);
}
.site-foot:before {
  background-image: url(resources/img/bg-cta-blue.svg);
}
.site-foot__inner {
  max-width: var(--wp--style--global--wide-size);
  margin: auto;
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 3fr 1fr 1fr 1fr;
  grid-template-columns: 3fr 1fr 1fr 1fr;
  gap: var(--wp--preset--spacing--x-small);
  padding-bottom: var(--wp--preset--spacing--small);
}
@media (max-width: 840px) {
  .site-foot__inner {
    -ms-grid-columns: 1fr 1fr 1fr;
    grid-template-columns: 1fr 1fr 1fr;
  }
  .site-foot__inner > *:first-child {
    grid-column: auto/span 3;
  }
}
.site-foot__social {
  list-style: none;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  padding-left: 0;
  gap: var(--wp--preset--spacing--x-small);
  margin-bottom: var(--wp--preset--spacing--medium);
}
.site-foot__social li {
  margin: 0;
}
.site-foot__social li a {
  color: var(--wp--preset--color--base);
}
.site-foot__social li img {
  -webkit-transform: scale(1);
          transform: scale(1);
  -webkit-transition: 0.3s -webkit-transform;
  transition: 0.3s -webkit-transform;
  transition: 0.3s transform;
  transition: 0.3s transform, 0.3s -webkit-transform;
}
.site-foot__social li:hover img {
  -webkit-transform: scale(1.25);
          transform: scale(1.25);
  -webkit-transition: 0.3s -webkit-transform;
  transition: 0.3s -webkit-transform;
  transition: 0.3s transform;
  transition: 0.3s transform, 0.3s -webkit-transform;
}
.site-foot__menu h6 {
  font-family: var(--wp--preset--font-family--inter);
  font-weight: 400;
}
.site-foot__menu ul {
  list-style: none;
  padding: 0;
  font-size: var(--wp--preset--font-size--tiny);
}
.site-foot__menu ul li {
  margin: 0 0 5px;
}
.site-foot__menu ul li a {
  text-decoration: none;
  border-bottom: 1px solid transparent;
  -webkit-transition: 0.3s border-bottom-color;
  transition: 0.3s border-bottom-color;
}
.site-foot__menu ul li a:hover {
  color: var(--wp--preset--color--primary);
  border-bottom-color: var(--wp--preset--color--primary);
  -webkit-transition: 0.3s border-bottom-color, 0.3s color;
  transition: 0.3s border-bottom-color, 0.3s color;
}
.site-foot__bottom {
  max-width: var(--wp--style--global--wide-size);
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  margin: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: var(--wp--preset--spacing--x-small);
  font-size: var(--wp--preset--font-size--tiny);
}
@media (max-width: 840px) {
  .site-foot__bottom {
    display: block;
  }
}
.site-foot__legal-menu ul {
  list-style: none;
  padding: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 10px;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}
.site-foot__legal-menu ul li {
  margin: 0;
}
.site-foot__legal-menu ul li:not(:last-child):after {
  content: " | ";
}
.site-foot__legal-menu ul li a {
  text-decoration: none;
  border-bottom: 1px solid transparent;
  -webkit-transition: 0.3s border-bottom-color;
  transition: 0.3s border-bottom-color;
}
.site-foot__legal-menu ul li a:hover {
  color: var(--wp--preset--color--primary);
  border-bottom-color: var(--wp--preset--color--primary);
  -webkit-transition: 0.3s border-bottom-color, 0.3s color;
  transition: 0.3s border-bottom-color, 0.3s color;
}

/* 5. Site menu
	========================================================================== */
.site-menu {
  -ms-flex-item-align: start;
      align-self: flex-start;
  margin-top: 22px;
}
@media (max-width: 1199px) {
  .site-menu {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
    -ms-flex-item-align: center;
        -ms-grid-row-align: center;
        align-self: center;
    margin-top: -22px;
  }
}
@media (max-width: 840px) {
  .site-menu {
    margin-top: 0;
  }
}
.site-menu__toggle {
  display: none;
  width: 45px;
  height: 35px;
  position: relative;
  -webkit-transform: rotate(0deg);
          transform: rotate(0deg);
  -webkit-transition: 0.5s ease-in-out;
  transition: 0.5s ease-in-out;
  cursor: pointer;
  background: none;
  border: none;
  z-index: 101;
}
.site-menu__toggle span {
  display: block;
  position: absolute;
  height: 4px;
  width: 100%;
  background: var(--wp--preset--color--base);
  opacity: 1;
  left: 0;
  -webkit-transform: rotate(0deg);
          transform: rotate(0deg);
  -webkit-transition: 0.25s ease-in-out;
  transition: 0.25s ease-in-out;
}
.site-menu__toggle span:nth-child(1) {
  top: 0px;
}
.site-menu__toggle span:nth-child(2), .site-menu__toggle span:nth-child(3) {
  top: 16px;
}
.site-menu__toggle span:nth-child(4) {
  top: 32px;
}
.site-menu__toggle.menu-is-open span:nth-child(1) {
  top: 16px;
  width: 0%;
  left: 50%;
}
.site-menu__toggle.menu-is-open span:nth-child(2) {
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}
.site-menu__toggle.menu-is-open span:nth-child(3) {
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
}
.site-menu__toggle.menu-is-open span:nth-child(4) {
  top: 16px;
  width: 0%;
  left: 50%;
}
@media (max-width: 1199px) {
  .site-menu__toggle {
    display: inherit;
  }
}
.site-menu ul {
  list-style: none;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: var(--wp--preset--spacing--x-small);
  padding-left: 60px;
  margin-top: 0;
}
.site-menu ul:not(.sub-menu) {
  /* Only show the contact link on mobile. */
}
@media (min-width: 1200px) {
  .site-menu ul:not(.sub-menu) > li:last-of-type {
    display: none;
  }
}
.site-menu ul > li {
  position: relative;
  margin: 0;
}
@media (max-width: 1199px) {
  .site-menu ul > li {
    padding: 0 0 var(--wp--preset--spacing--x-small);
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
}
.site-menu ul > li.menu-item-has-children a:after {
  content: "";
  display: inline-block;
  width: 20px;
  height: 20px;
  background: url(resources/img/icon-chevron-down.svg) no-repeat center center/contain;
  -webkit-transform: rotate(0);
          transform: rotate(0);
  -webkit-transition: 0.3s -webkit-transform;
  transition: 0.3s -webkit-transform;
  transition: 0.3s transform;
  transition: 0.3s transform, 0.3s -webkit-transform;
  -webkit-filter: brightness(0) invert(1);
          filter: brightness(0) invert(1);
}
.site-menu ul > li > a {
  color: var(--wp--preset--color--base);
  text-decoration: none;
  white-space: nowrap;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 5px;
  -webkit-transition: 0.3s color;
  transition: 0.3s color;
}
@media (max-width: 1199px) {
  .site-menu ul > li > a {
    font-size: var(--wp--preset--font-size--x-large);
  }
}
.site-menu ul > li:hover.menu-item-has-children a:after, .site-menu ul > li.curent-menu-item.menu-item-has-children a:after, .site-menu ul > li.current_page_item.menu-item-has-children a:after, .site-menu ul > li.active.menu-item-has-children a:after {
  background-image: url(resources/img/icon-chevron-down-yellow.svg);
  -webkit-filter: unset;
          filter: unset;
}
.site-menu ul > li:hover a, .site-menu ul > li.curent-menu-item a, .site-menu ul > li.current_page_item a, .site-menu ul > li.active a {
  color: var(--wp--preset--color--primary);
  -webkit-transition: 0.3s color;
  transition: 0.3s color;
}
.site-menu ul > li.active.menu-item-has-children a:after {
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
  -webkit-transition: 0.3s -webkit-transform;
  transition: 0.3s -webkit-transform;
  transition: 0.3s transform;
  transition: 0.3s transform, 0.3s -webkit-transform;
}
.site-menu ul > li .sub-menu {
  display: none;
  position: absolute;
  padding: 15px 20px 20px;
  top: calc(100% + 20px);
  left: -20px;
  z-index: 50;
  background: var(--wp--preset--color--primary);
  border-radius: 8px;
  min-width: 220px;
}
@media (max-width: 1199px) {
  .site-menu ul > li .sub-menu {
    position: inherit;
    margin: 0;
    left: 0;
    top: 15px;
    max-width: 280px;
  }
}
.site-menu ul > li .sub-menu li {
  padding: 0;
  margin: 0;
}
.site-menu ul > li .sub-menu li a {
  font-size: var(--wp--preset--font-size--tiny);
  display: inline-block;
  line-height: 1.8;
  padding: 5px 0 0;
  color: var(--wp--preset--color--contrast);
  border-bottom: 1px solid var(--wp--preset--color--contrast);
  -webkit-transition: 0.3s border-bottom-color;
  transition: 0.3s border-bottom-color;
}
.site-menu ul > li .sub-menu li a:after {
  content: unset;
}
.site-menu ul > li .sub-menu li a:hover {
  border-bottom-color: transparent;
  -webkit-transition: 0.3s border-bottom-color;
  transition: 0.3s border-bottom-color;
}
@media (max-width: 1199px) {
  .site-menu > ul {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    top: 0;
    right: -100vw;
    z-index: 100;
    background: var(--wp--preset--color--secondary);
    margin: 0;
    padding: 25vh var(--wp--preset--spacing--medium);
    position: fixed;
    z-index: 100;
    width: 100vw;
    height: 100vh;
    -webkit-transition: right 0.4s;
    transition: right 0.4s;
    -webkit-transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1);
            transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1);
  }
  .site-menu > ul.menu-is-open {
    right: 0;
    -webkit-transition: right 0.8s;
    transition: right 0.8s;
    -webkit-transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1);
            transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1);
  }
}

/* 6. Site blocks
	========================================================================== */
.wp-site-blocks {
  overflow-x: hidden;
}
.wp-site-blocks.remove-bottom-padding {
  padding-bottom: 0 !important;
}

/* WP removes the padding for blocks inside the main container that have default padding.
This causes issues with content inside full width blocks, so override it. */
.has-global-padding :where(.has-global-padding) {
  padding-right: var(--wp--style--root--padding-right);
  padding-left: var(--wp--style--root--padding-left);
}

/* 7. Site search
	========================================================================== */
.site-search {
  position: fixed;
  z-index: 104;
  top: 0;
  left: 0;
  width: 100%;
  background: var(--wp--preset--color--secondary);
  -webkit-transform: translateY(-100%);
          transform: translateY(-100%);
  -webkit-transition: 0.4s -webkit-transform;
  transition: 0.4s -webkit-transform;
  transition: 0.4s transform;
  transition: 0.4s transform, 0.4s -webkit-transform;
}
.site-search.is-open {
  -webkit-transform: translateY(0);
          transform: translateY(0);
  -webkit-transition: 0.4s -webkit-transform;
  transition: 0.4s -webkit-transform;
  transition: 0.4s transform;
  transition: 0.4s transform, 0.4s -webkit-transform;
}
.site-search__inner {
  width: 100%;
  max-width: var(--wp--style--global--wide-size);
  margin: auto;
  position: relative;
}
@media (max-width: 1199px) {
  .site-search__inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
  }
}
.site-search__form-container {
  width: 100%;
  max-width: var(--wp--style--global--content-size);
  margin: auto;
  padding: var(--wp--preset--spacing--small) 0 var(--wp--preset--spacing--x-small);
}
.site-search__form-container form {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 15px;
}
.site-search__form-container form [type=text] {
  -webkit-box-flex: 1;
      -ms-flex: 1 0 auto;
          flex: 1 0 auto;
  font-size: var(--wp--preset--font-size--normal);
  padding: clamp(6px, 1vw, 12px) clamp(12px, 1vw, 24px);
  border: 1px solid var(--wp--preset--color--contrast);
  background: var(--wp--preset--color--grey);
  border-radius: 4px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  line-height: 1.8;
}
.site-search__form-container form [type=text]:focus {
  outline: 1px solid var(--wp--preset--color--primary);
  outline-offset: 5px;
}
.site-search__menu ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 20px;
  padding: 0;
  margin: 0;
  list-style: none;
}
.site-search__menu ul li a {
  font-size: var(--wp--preset--font-size--tiny);
  color: var(--wp--preset--color--base);
  text-decoration: none;
  border-bottom: 1px solid var(--wp--preset--color--base);
  -webkit-transition: 0.3s border-bottom-color, 0.3s color;
  transition: 0.3s border-bottom-color, 0.3s color;
}
.site-search__menu ul li a:hover {
  color: var(--wp--preset--color--primary);
  border-bottom-color: var(--wp--preset--color--primary);
  -webkit-transition: 0.3s border-bottom-color, 0.3s color;
  transition: 0.3s border-bottom-color, 0.3s color;
}
.site-search__close {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 5px;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-size: var(--wp--preset--font-size--small);
  color: var(--wp--preset--color--base);
  position: absolute;
  right: 0;
  top: calc(50% - 27px);
  border: none;
  background: none;
  cursor: pointer;
}
@media (max-width: 1199px) {
  .site-search__close {
    position: static;
    margin: 15px 0;
    margin-left: auto;
  }
}
.site-search__close:after {
  content: "";
  width: 25px;
  height: 25px;
  background: url(resources/img/icon-close.svg) no-repeat center center/contain;
  -webkit-transform: scale(1);
          transform: scale(1);
  -webkit-transition: 0.3s -webkit-transform;
  transition: 0.3s -webkit-transform;
  transition: 0.3s transform;
  transition: 0.3s transform, 0.3s -webkit-transform;
}
.site-search__close:hover:after {
  -webkit-transform: scale(130%);
          transform: scale(130%);
  -webkit-transition: 0.3s -webkit-transform;
  transition: 0.3s -webkit-transform;
  transition: 0.3s transform;
  transition: 0.3s transform, 0.3s -webkit-transform;
}

/* 7. Site overlay
	========================================================================== */
.site-overlay {
  opacity: 0;
  visibility: hidden;
  position: fixed;
  z-index: 103;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  backdrop-filter: blur(3px);
  background: rgba(0, 0, 0, 0.4);
}
.site-overlay.search-is-visible {
  opacity: 1;
  visibility: visible;
}

/* ==========================================================================
   Blocks
   ========================================================================== */
/**
 * Block styles that cannot be achived in theme.json.
 *
 * Contents
 *
 * 1. Custom button variation
 * 2. Media text
 */
/* 1. Custom button variation
   ========================================================================== */
/* Add styles for the custom dark outline option. */
.wp-block-button.is-style-outline-dark-button .wp-element-button {
  color: var(--wp--preset--color--contrast);
  background: transparent;
  border: 1px solid var(--wp--preset--color--contrast);
  padding: 11px 22px;
}
.wp-block-button.is-style-outline-dark-button .wp-element-button:hover {
  background: rgba(255, 255, 255, 0.1);
}
.wp-block-button.is-style-outline-dark-button .wp-element-button:focus-visible {
  background: rgba(255, 255, 255, 0.4);
}

/* Add styles for the custom light outline option. */
.wp-block-button.is-style-outline-light-button .wp-element-button,
.wp-block-button.is-style-outline-light-button .wp-block-button__link {
  color: var(--wp--preset--color--base);
  background: transparent;
  border: 1px solid var(--wp--preset--color--base);
  padding: 11px 22px;
}
.wp-block-button.is-style-outline-light-button .wp-element-button:hover,
.wp-block-button.is-style-outline-light-button .wp-block-button__link:hover {
  background: rgba(40, 39, 39, 0.1);
}
.wp-block-button.is-style-outline-light-button .wp-element-button:focus-visible,
.wp-block-button.is-style-outline-light-button .wp-block-button__link:focus-visible {
  background: rgba(40, 39, 39, 0.4);
}
.wp-block-button.is-style-outline-light-button .wp-element-button:after,
.wp-block-button.is-style-outline-light-button .wp-block-button__link:after {
  -webkit-filter: brightness(0) invert(1);
          filter: brightness(0) invert(1);
}

/* Add styles for the custom small option. */
.wp-block-button.is-style-small-button .wp-element-button,
.wp-block-button.is-style-small-button .wp-block-button__link {
  font-size: var(--wp--preset--font-size--tiny);
  padding: 4px 8px;
}
.wp-block-button.is-style-small-button .wp-element-button:hover:after,
.wp-block-button.is-style-small-button .wp-block-button__link:hover:after {
  left: 4px;
}

/* Add styles for the custom text button option. */
.wp-block-button.is-style-text-button .wp-element-button,
.wp-block-button.is-style-text-button .wp-block-button__link {
  font-size: var(--wp--preset--font-size--tiny);
  padding: 0;
  border: none;
  background: none;
  border-radius: 0;
  -webkit-box-shadow: none;
          box-shadow: none;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  position: relative;
  text-align: left;
  gap: 5px;
}
.wp-block-button.is-style-text-button .wp-element-button:before,
.wp-block-button.is-style-text-button .wp-block-button__link:before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: calc(100% - 20px);
  height: 1px;
  background: var(--wp--preset--color--contrast);
}
.wp-block-button.is-style-text-button .wp-element-button:hover, .wp-block-button.is-style-text-button .wp-element-button:focus-visible,
.wp-block-button.is-style-text-button .wp-block-button__link:hover,
.wp-block-button.is-style-text-button .wp-block-button__link:focus-visible {
  -webkit-box-shadow: none;
          box-shadow: none;
  background: none;
}
.wp-block-button.is-style-text-button .wp-element-button:hover:before, .wp-block-button.is-style-text-button .wp-element-button:focus-visible:before,
.wp-block-button.is-style-text-button .wp-block-button__link:hover:before,
.wp-block-button.is-style-text-button .wp-block-button__link:focus-visible:before {
  background: transparent;
}

/* Add a right arrow to all buttons - todo: option to make these optional? */
.wp-element-button,
.wp-block-button__link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 10px;
  -webkit-transition: 0.3s all;
  transition: 0.3s all;
}
.wp-element-button:after,
.wp-block-button__link:after {
  content: "";
  position: relative;
  left: 0;
  width: 16px;
  height: 16px;
  display: inline-block;
  background: url(resources/img/icon-arrow-right.svg) no-repeat center center/contain;
  -webkit-transition: 0.4s left;
  transition: 0.4s left;
}
.wp-element-button:hover:after,
.wp-block-button__link:hover:after {
  left: 7px;
  -webkit-transition: 0.4s left;
  transition: 0.4s left;
}
.wp-element-button:focus,
.wp-block-button__link:focus {
  outline: none;
}
.wp-element-button:focus-visible,
.wp-block-button__link:focus-visible {
  outline: none;
  -webkit-box-shadow: 0px 0px 30px 0px rgba(0, 0, 0, 0.1);
          box-shadow: 0px 0px 30px 0px rgba(0, 0, 0, 0.1);
  background-color: var(--wp--preset--color--primary);
  background-image: -webkit-gradient(linear, left bottom, left top, from(rgba(40, 39, 39, 0.4)), to(rgba(40, 39, 39, 0.4)));
  background-image: linear-gradient(0deg, rgba(40, 39, 39, 0.4) 0%, rgba(40, 39, 39, 0.4) 100%);
}

/* 2. Media text
   ========================================================================== */
@media (max-width: 599px) {
  .wp-block-media-text__content {
    padding: 0;
  }
}

/* ==========================================================================
	Alert bar
	========================================================================== */
/**
 * Styles for alert-bar.
 *
 * Contents
 *
 * 1. wrap alert-bar
 * 2. type-Link
 * 3. type-Editor
 */
/* 1,2,3 block alert bar  */
.alert-bar {
  background: var(--wp--preset--color--tertiary);
  color: #fff;
  padding-bottom: 10px;
  padding-top: 10px;
}
.alert-bar .wp-block-button {
  padding-left: 0;
  padding-right: 0;
}
.alert-bar.type-Link .wp-block-button {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  margin: 0 auto;
}
.alert-bar.type-Editor p:first-child {
  margin-top: 0;
}

/* ==========================================================================
	Custom blocks
	========================================================================== */
/**
 * Styles for custom blocks created with the ACF block API.
 * maintenance.
 *
 * Contents
 *
 * 1. Accordion
 * 2. Call to action
 * 3. Related content
 * 4. Banner with image mask
 * 5. Banner
 * 6. Related content
 * 7. Locations
 * 8. Archive
 */
/* 1. Accordion
	========================================================================== */
.wp-block-accordion {
  border-top: 1px solid var(--wp--preset--color--grey);
}
.wp-block-accordion h3 {
  margin: 0;
}
.wp-block-accordion h3 button {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 10px;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  border: none;
  width: 100%;
  padding: 20px 0;
  font-weight: 700;
  font-size: var(--wp--preset--font-size--small);
  color: var(--wp--preset--color--contrast);
  text-align: left;
  cursor: pointer;
  background: none;
  -webkit-transition: 0.3s background;
  transition: 0.3s background;
}
.wp-block-accordion h3 button:hover, .wp-block-accordion h3 button:focus-visible {
  background: var(--wp--preset--color--grey);
  -webkit-transition: 0.3s background;
  transition: 0.3s background;
}
.wp-block-accordion h3 button:before {
  content: "";
  width: 32px;
  height: 32px;
  background: url(resources/img/icon-chevron-up-blue.svg) no-repeat center center/contain;
  -webkit-transform: rotate(-180deg);
          transform: rotate(-180deg);
  -webkit-transition: 0.5s -webkit-transform;
  transition: 0.5s -webkit-transform;
  transition: 0.5s transform;
  transition: 0.5s transform, 0.5s -webkit-transform;
}
.wp-block-accordion h3 button.active:before {
  -webkit-transform: rotate(0);
          transform: rotate(0);
  -webkit-transition: 0.5s -webkit-transform;
  transition: 0.5s -webkit-transform;
  transition: 0.5s transform;
  transition: 0.5s transform, 0.5s -webkit-transform;
}
.wp-block-accordion__item {
  border-bottom: 1px solid var(--wp--preset--color--grey);
}
.wp-block-accordion__content {
  padding-bottom: var(--wp--preset--spacing--x-small);
}
.wp-block-accordion__content > *:first-child {
  margin-top: 0;
}

/* 2. Call to action
	========================================================================== */
.wp-block-cta__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  text-align: center;
  gap: var(--wp--preset--spacing--x-small);
  padding: var(--wp--preset--spacing--medium) var(--wp--preset--spacing--large);
}
@media (max-width: 840px) {
  .wp-block-cta__inner {
    padding: var(--wp--preset--spacing--small);
  }
}
.wp-block-cta h2,
.wp-block-cta p {
  margin: 0;
}
.wp-block-cta.is-blue {
  background-color: var(--wp--preset--color--secondary);
  color: var(--wp--preset--color--base);
}
.wp-block-cta.is-blue .wp-block-cta__inner:before {
  background-image: url(resources/img/bg-cta-blue.svg);
}
.wp-block-cta.is-blue h2 {
  color: var(--wp--preset--color--secondary);
  text-transform: uppercase;
}
.wp-block-cta.is-blue h2 mark {
  background-color: var(--wp--preset--color--primary);
}
.wp-block-cta.is-yellow {
  background-color: var(--wp--preset--color--primary);
}
.wp-block-cta.is-yellow .wp-block-cta__inner:before {
  background-image: url(resources/img/bg-cta-yellow.svg);
}
.wp-block-cta.is-yellow h2 {
  text-transform: uppercase;
}
.wp-block-cta.is-yellow h2 mark {
  background-color: var(--wp--preset--color--secondary);
  color: var(--wp--preset--color--primary);
}

/* 3. Related content
	========================================================================== */
.wp-block-post-list__list {
  display: -ms-grid;
  display: grid;
  grid-gap: var(--wp--preset--spacing--medium) var(--wp--preset--spacing--small);
  -ms-grid-columns: (minmax(0, 1fr))[3];
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-flow: row;
}
@media (max-width: 840px) {
  .wp-block-post-list__list {
    -ms-grid-columns: 1fr;
    grid-template-columns: 1fr;
    grid-auto-flow: row;
  }
}
.wp-block-post-list__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 20px;
}
.wp-block-post-list__item > * {
  margin: 0 !important;
}
.wp-block-post-list__item > a {
  text-decoration: none;
}
.wp-block-post-list__item > a:has(img) {
  border-bottom: none;
  opacity: 1;
  -webkit-transition: 0.3s opacity;
  transition: 0.3s opacity;
}
.wp-block-post-list__item > a:has(img):hover {
  opacity: 0.7;
  -webkit-transition: 0.3s opacity;
  transition: 0.3s opacity;
}
.wp-block-post-list__item img {
  max-width: 100%;
  height: auto;
  aspect-ratio: 4/3;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.wp-block-post-list__item h3,
.wp-block-post-list__item h4 {
  font-family: var(--wp--preset--font-family--inter) !important;
  font-size: var(--wp--preset--font-size--small) !important;
}
.wp-block-post-list__item p {
  font-size: var(--wp--preset--font-size--tiny) !important;
}
.wp-block-post-list__item .wp-element-button {
  margin-right: 0;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
}

/* 4. Banner with image mask
	========================================================================== */
@media (max-width: 599px) {
  .wp-block-banner-slider {
    padding-bottom: 76%;
    position: relative;
    overflow: hidden;
  }
  .wp-block-banner-slider figure {
    position: absolute;
    -o-object-fit: cover;
       object-fit: cover;
    height: 100%;
  }
}
.wp-block-banner-slider figure {
  opacity: 0;
  visibility: hidden;
  -webkit-transition: opacity 1s ease, visibility 1s ease;
  transition: opacity 1s ease, visibility 1s ease;
}
.wp-block-banner-slider figure.active {
  opacity: 1;
  visibility: visible;
}

.wp-block-banner-image-mask {
  background: var(--wp--preset--color--secondary);
  position: relative;
  z-index: 2;
}
.wp-block-banner-image-mask__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  min-height: 650px;
}
@media (max-width: 840px) {
  .wp-block-banner-image-mask__inner {
    min-height: 550px;
  }
}
@media (max-width: 599px) {
  .wp-block-banner-image-mask__inner {
    min-height: 0;
  }
}
.wp-block-banner-image-mask__inner > * {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 45%;
          flex: 0 0 45%;
}
@media (max-width: 599px) {
  .wp-block-banner-image-mask__inner > * {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
  }
}
.wp-block-banner-image-mask__content {
  padding-top: var(--wp--preset--spacing--small);
  padding-bottom: var(--wp--preset--spacing--small);
  padding-left: var(--wp--preset--spacing--small);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: var(--wp--preset--spacing--x-small);
}
@media (max-width: 840px) {
  .wp-block-banner-image-mask__content {
    padding-left: 0;
  }
}
.wp-block-banner-image-mask__content h1 {
  font-size: var(--wp--preset--font-size--medium) !important;
  color: var(--wp--preset--color--primary);
  text-transform: uppercase;
  margin: 0;
}
.wp-block-banner-image-mask__content p {
  font-size: var(--wp--preset--font-size--large);
  color: var(--wp--preset--color--base);
  font-weight: 700;
  line-height: 1.4;
  margin: 0;
}
.wp-block-banner-image-mask__image {
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
  -ms-flex-item-align: stretch;
      -ms-grid-row-align: stretch;
      align-self: stretch;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  pointer-events: none;
}
@media (max-width: 599px) {
  .wp-block-banner-image-mask__image {
    position: relative;
    margin-top: var(--wp--preset--spacing--medium);
  }
}
.wp-block-banner-image-mask__image img {
  display: block;
  -webkit-mask: url(resources/img/mask-banner-image.png);
          mask: url(resources/img/mask-banner-image.png);
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: right top;
          mask-position: right top;
  -webkit-mask-size: contain;
          mask-size: contain;
  position: relative;
  max-width: 50vw;
  height: calc(100% + 100px);
  margin-bottom: -100px;
  -o-object-fit: cover;
     object-fit: cover;
}
@media (max-width: 599px) {
  .wp-block-banner-image-mask__image img {
    -webkit-mask: none;
            mask: none;
    height: auto;
    max-width: 100%;
    margin: 0;
  }
}

/* 5. Banner
	========================================================================== */
.wp-block-banner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  text-align: center;
  position: relative;
  padding: var(--wp--preset--spacing--small) 0 var(--wp--preset--spacing--x-large);
}
@media (max-width: 1199px) {
  .wp-block-banner {
    padding-top: 0;
  }
}
.wp-block-banner__inner {
  position: static;
}
.wp-block-banner__content {
  max-width: var(--wp--style--global--content-size);
}
.wp-block-banner h1 {
  text-transform: uppercase;
}
.wp-block-banner h1 mark {
  background-color: var(--wp--preset--color--primary);
}
.wp-block-banner p {
  font-size: var(--wp--preset--font-size--medium);
  font-weight: 700;
}
.wp-block-banner__caption {
  display: block;
  text-align: left;
  font-weight: 400;
  font-size: 12px;
  margin-top: 5px;
}
.wp-block-banner.is-style-solid {
  background: var(--wp--preset--color--secondary);
  color: var(--wp--preset--color--base);
}
.wp-block-banner.is-style-solid:before {
  background-image: url(resources/img/bg-cta-blue.svg);
}
.wp-block-banner.is-style-solid h1 {
  color: var(--wp--preset--color--primary);
}
.wp-block-banner.is-style-image-bg {
  padding-bottom: var(--wp--preset--spacing--large);
}
.wp-block-banner.is-style-image-bg .wp-block-banner__image {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  max-width: 100%;
  height: 100%;
  margin: 0 !important;
}
.wp-block-banner.is-style-image-bg .wp-block-banner__image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.wp-block-banner.is-style-image-bg .wp-block-banner__content {
  position: relative;
  z-index: 1;
  min-height: 400px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.wp-block-banner.is-style-image-bg h1 {
  font-family: var(--wp--preset--font-family--inter);
  text-transform: none;
}
.wp-block-banner.is-style-image-below {
  padding: var(--wp--preset--spacing--large) 0 var(--wp--preset--spacing--x-small);
}
.wp-block-banner.is-style-image-below .wp-block-banner__image {
  margin-top: 20px;
}
.wp-block-banner.is-style-image-below .wp-block-banner__image img {
  aspect-ratio: 16/9;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.wp-block-banner.is-style-image-below h1 {
  font-family: var(--wp--preset--font-family--inter);
  text-transform: capitalize;
  margin-bottom: var(--wp--preset--spacing--small);
}
.wp-block-banner.is-style-image-below .breadcrumbs {
  margin-top: 0;
}

/* 6. Related content
	========================================================================== */
.wp-block-related-content__items {
  display: -ms-grid;
  display: grid;
  gap: var(--wp--preset--spacing--x-small);
  -ms-grid-columns: (minmax(0, 1fr))[4];
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-flow: column;
}
@media (max-width: 840px) {
  .wp-block-related-content__items {
    -ms-grid-columns: (minmax(0, 1fr))[2];
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-flow: row;
  }
}
.wp-block-related-content .post-item h3,
.wp-block-related-content .post-item h4 {
  font-size: var(--wp--preset--font-size--small);
}
.wp-block-related-content .post-item:first-child {
  grid-column: auto/span 1;
}
.wp-block-related-content .post-item:first-child h3,
.wp-block-related-content .post-item:first-child h4 {
  font-size: var(--wp--preset--font-size--small);
}
.wp-block-related-content .post-item:first-child p {
  font-size: var(--wp--preset--font-size--tiny);
}

/* 7. Locations
	========================================================================== */
.wp-block-locations {
  /* Override some of the basic gmaps styles. */
  /* Style a couple of the core gmaps elements so they use our brand colours. */
  /* The map marker. */
}
.wp-block-locations__map {
  width: 100%;
  height: 500px;
}
.wp-block-locations__map img {
  max-width: inherit !important;
}
.wp-block-locations__map > * {
  background: var(--wp--preset--color--grey) !important;
}
.wp-block-locations .gm-style-iw {
  background: var(--wp--preset--color--primary);
  padding: 15px !important;
  border-radius: 0;
  max-height: 100vh !important;
}
.wp-block-locations .gm-style-iw-d {
  overflow: hidden !important;
  max-height: 100vh !important;
}
.wp-block-locations .gm-style .gm-style-iw-tc::after {
  display: none;
}
.wp-block-locations__marker {
  max-width: 280px;
}
.wp-block-locations__marker img {
  max-width: 100% !important;
  aspect-ratio: 16/9;
  -o-object-fit: cover;
     object-fit: cover;
}
.wp-block-locations__marker h6 {
  margin-top: 10px;
  text-transform: uppercase;
}
.wp-block-locations__marker p {
  font-size: var(--wp--preset--font-size--tiny);
  margin-top: 10px;
}
.wp-block-locations__marker .wp-block-button {
  margin-top: 10px;
}

/* 8. Archive
	========================================================================== */
.wp-block-archive {
  position: relative;
}
.wp-block-archive:before {
  top: 0;
  bottom: auto;
  background-image: url(resources/img/bg-cta-blue.svg);
}

/* ==========================================================================
	Patterns
	========================================================================== */
/**
 * Styles for custom patterns.
 *
 * Contents
 *
 * 1. Icons with text
 * 2. Expanding media with text
 * 3. Take action
 * 4. Donate
 * 5. Signup
 * 6. Stories
 * 7. Campaigns list
 * 8. Verse
 * 9. Projects map
 */
/* 1. Icons with text
   ========================================================================== */
@media (max-width: 840px) {
  .wp-pattern-icons-with-text .wp-block-columns {
    padding: 0 !important;
    gap: var(--wp--preset--spacing--x-small) !important;
  }
}

/* 2. Expanding media with text
   ========================================================================== */
.wp-pattern-expanding-media-text {
  gap: var(--wp--preset--spacing--large);
}
@media (max-width: 599px) {
  .wp-pattern-expanding-media-text {
    gap: var(--wp--preset--spacing--small);
  }
}
@media (max-width: 599px) {
  .wp-pattern-expanding-media-text .wp-block-media-text__media {
    -ms-grid-row: 2 !important;
    grid-row: 2 !important;
    min-height: 0;
    -ms-grid-row-align: unset;
        align-self: unset;
  }
}
.wp-pattern-expanding-media-text .wp-block-media-text__media img {
  position: absolute;
  left: 0;
  top: 0;
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
  height: 100%;
}
@media (max-width: 599px) {
  .wp-pattern-expanding-media-text .wp-block-media-text__media img {
    position: relative;
    max-height: 500px;
  }
}
.wp-pattern-expanding-media-text .wp-block-media-text__content {
  padding: var(--wp--preset--spacing--medium) 0;
}
@media (max-width: 599px) {
  .wp-pattern-expanding-media-text .wp-block-media-text__content {
    -ms-grid-row: 1 !important;
    grid-row: 1 !important;
    padding-bottom: 0;
  }
}
.wp-pattern-expanding-media-text.has-media-on-the-right .wp-block-media-text__media {
  margin-left: 0;
  padding-left: 0;
}
.wp-pattern-expanding-media-text.has-media-on-the-right .wp-block-media-text__media img {
  left: 0;
}

/* 3. Take action
   ========================================================================== */
@media (max-width: 840px) {
  .wp-pattern-take-action > div {
    gap: var(--wp--preset--spacing--small) !important;
  }
}
.wp-pattern-take-action h2 {
  padding-top: var(--wp--preset--spacing--medium);
  position: relative;
}
@media (max-width: 840px) {
  .wp-pattern-take-action h2 {
    font-size: var(--wp--preset--font-size--x-large) !important;
  }
}
.wp-pattern-take-action h2:before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  margin-left: calc((-100vw + 100%) / 2);
  margin-right: 50px;
  padding-left: calc((100vw - 100%) / 2);
  display: block;
  height: 3px;
  background: var(--wp--preset--color--contrast);
  pointer-events: none;
}
.wp-pattern-take-action h2:after {
  content: "";
  position: absolute;
  top: -26px;
  right: 47px;
  width: 27px;
  display: block;
  height: 54px;
  pointer-events: none;
  background: url(resources/img/icon-chevron-right.svg) no-repeat center center/cover;
}

/* 4. Donate
   ========================================================================== */
.wp-pattern-donate {
  position: relative;
}
.wp-pattern-donate .wp-block-media-text {
  gap: var(--wp--preset--spacing--large);
}
@media (max-width: 599px) {
  .wp-pattern-donate .wp-block-media-text {
    gap: 0;
  }
}
.wp-pattern-donate .wp-block-media-text .wp-block-media-text__media {
  position: relative;
  min-height: 544px;
  -ms-flex-item-align: stretch;
      -ms-grid-row-align: stretch;
      align-self: stretch;
}
@media (max-width: 599px) {
  .wp-pattern-donate .wp-block-media-text .wp-block-media-text__media {
    min-height: 0;
  }
}
.wp-pattern-donate .wp-block-media-text .wp-block-media-text__media img {
  position: absolute;
  left: 0;
  top: 0;
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
  height: 100%;
}
@media (max-width: 599px) {
  .wp-pattern-donate .wp-block-media-text .wp-block-media-text__media img {
    position: relative;
    max-height: 500px;
  }
}
.wp-pattern-donate .wp-block-media-text .wp-block-media-text__content {
  padding: var(--wp--preset--spacing--medium) 0;
}
.wp-pattern-donate .wp-block-button {
  position: relative;
}
.wp-pattern-donate .wp-block-button:before {
  content: "";
  position: absolute;
  right: calc((-100vw + 100%) / 2 - 59px);
  top: calc(50% - 2px);
  width: 100%;
  padding-left: calc((100vw - 100%) / 2);
  height: 3px;
  background: var(--wp--preset--color--primary);
}
@media (max-width: 599px) {
  .wp-pattern-donate .wp-block-button:before {
    display: none;
  }
}
.wp-pattern-donate .wp-block-button:after {
  content: "";
  position: absolute;
  top: 0;
  right: -85px; /* Space between button and line + chevron width. */
  width: 27px;
  display: block;
  height: 54px;
  background: url(resources/img/icon-chevron-left-yellow.svg) no-repeat center center/cover;
}
@media (max-width: 599px) {
  .wp-pattern-donate .wp-block-button:after {
    display: none;
  }
}

/* 5. Signup
   ========================================================================== */
.wp-pattern-signup {
  position: relative;
}
@media (max-width: 599px) {
  .wp-pattern-signup {
    padding-bottom: var(--wp--preset--spacing--medium);
  }
}
.wp-pattern-signup .wp-block-media-text {
  gap: var(--wp--preset--spacing--medium);
}
@media (max-width: 599px) {
  .wp-pattern-signup .wp-block-media-text {
    gap: var(--wp--preset--spacing--x-small);
  }
}
.wp-pattern-signup .wp-block-media-text .wp-block-media-text__media img {
  position: absolute;
  left: 0;
  top: 0;
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
  height: 100%;
}
@media (max-width: 599px) {
  .wp-pattern-signup .wp-block-media-text .wp-block-media-text__media img {
    position: relative;
    max-height: 500px;
  }
}
.wp-pattern-signup .wp-block-media-text .wp-block-media-text__content {
  padding: var(--wp--preset--spacing--large);
  padding-left: 0;
}
.wp-pattern-signup form {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  position: relative;
  max-width: 450px;
}
.wp-pattern-signup form:before {
  content: "";
  position: absolute;
  bottom: 27px;
  right: 100%;
  width: 100%;
  margin-left: calc((-100vw + 100%) / 2);
  margin-right: 50px;
  padding-left: calc((100vw - 100%) / 2);
  display: block;
  height: 3px;
  background: var(--wp--preset--color--primary);
  pointer-events: none;
}
.wp-pattern-signup form:after {
  content: "";
  position: absolute;
  bottom: 0;
  left: -74px;
  width: 27px;
  display: block;
  height: 54px;
  background: url(resources/img/icon-chevron-right-yellow.svg) no-repeat center center/cover;
  pointer-events: none;
}
.wp-pattern-signup form .gform_body {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}
/* 6. Stories
   ========================================================================== */
@media (max-width: 840px) {
  .wp-pattern-stories {
    padding: var(--wp--preset--spacing--medium) 0 !important;
  }
}
@media (max-width: 599px) {
  .wp-pattern-stories .wp-block-media-text__content {
    padding-left: 0;
    padding-right: 0;
  }
}
.wp-pattern-stories h2 {
  position: relative;
  left: calc(-100px - 8%);
  z-index: 10;
  width: calc(100% + 100px);
}
@media (max-width: 840px) {
  .wp-pattern-stories h2 {
    left: 0;
    margin-top: var(--wp--preset--spacing--x-small);
    width: 100%;
  }
}
.wp-pattern-stories .has-media-on-the-right h2 {
  justify-self: flex-end;
  margin-left: auto;
  left: auto;
  right: -100px;
  text-align: right;
}
@media (max-width: 599px) {
  .wp-pattern-stories .has-media-on-the-right h2 {
    text-align: left;
    right: 0;
    margin-left: 0;
  }
}

/* 7. Campaigns list
   ========================================================================== */
.wp-pattern-campaigns-list:after {
  background-image: url(resources/img/bg-cta-blue.svg);
}
.wp-pattern-campaigns-list:before {
  content: "";
  position: absolute;
  bottom: 0;
  right: 0;
  width: 100%;
  height: 100%;
  background-image: url(resources/img/bg-cta-blue.svg);
  background-repeat: no-repeat;
  background-size: 33% auto;
  -webkit-transform: scale(-1);
          transform: scale(-1);
}
@media (max-width: 599px) {
  .wp-pattern-campaigns-list:before {
    display: none;
  }
}

/* 8. Verse
   ========================================================================== */
.wp-pattern-verse:before {
  background-image: url(resources/img/bg-cta-blue.svg);
  -webkit-transform: scaleY(-1);
          transform: scaleY(-1);
}

/* 9. Projects map
   ========================================================================== */
@media (max-width: 599px) {
  .wp-pattern-projects-map .wp-block-group {
    display: block;
  }
  .wp-pattern-projects-map .wp-block-group .wp-block-button {
    margin-bottom: var(--wp--preset--spacing--x-small);
  }
}
.wp-pattern-projects-map > p {
  max-width: var(--wp--style--global--wide-size) !important;
}

/* ==========================================================================
	Components
	========================================================================== */
/**
 * Project-specific non-block component styles.
 *
 * Contents
 *
 * 1. Post list
 * 2. Post item
 * 3. Breadcrumbs
 * 4. Search
 * 5. Search results
 * 6. Search result
 * 7. Load more
 * 8. Donation form
 */
/* 1. Post list
	========================================================================== */
.posts-list__items {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 1fr 1fr;
  grid-template-columns: 1fr 1fr;
  -ms-grid-rows: auto;
  grid-template-rows: auto;
  gap: var(--wp--preset--spacing--medium) var(--wp--preset--spacing--small);
}

/* 2. Post item
	========================================================================== */
.post-item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 15px;
}
.post-item > * {
  margin: 0;
}
.post-item a:has(figure) {
  display: block;
}
.post-item a:has(figure) img {
  width: 100%;
  opacity: 1;
  -webkit-transition: 0.3s opacity;
  transition: 0.3s opacity;
}
.post-item a:has(figure):hover {
  opacity: 0.6;
  -webkit-transition: 0.3s opacity;
  transition: 0.3s opacity;
}
.post-item time {
  font-size: var(--wp--preset--font-size--tiny);
  opacity: 0.8;
}
.post-item h3,
.post-item h4 {
  font-family: var(--wp--preset--font-family--inter) !important;
  font-size: var(--wp--preset--font-size--small) !important;
}
.post-item p {
  font-size: var(--wp--preset--font-size--tiny) !important;
}
.post-item:first-child {
  grid-column: auto/span 2;
}
.post-item:first-child h2 {
  font-size: var(--wp--preset--font-size--medium) !important;
}
.post-item:first-child p {
  font-size: var(--wp--preset--font-size--small) !important;
}

/* 3. Breadcrumbs
	========================================================================== */
.breadcrumbs {
  text-align: left;
  -ms-flex-item-align: start;
      align-self: flex-start;
  font-size: var(--wp--preset--font-size--tiny);
  margin-bottom: 15px;
}
.breadcrumbs a {
  border-bottom: 1px solid var(--wp--preset--color--contrast);
  text-decoration: none;
}
.breadcrumbs a:hover {
  border-bottom-color: transparent;
}

/* 4. Search
	========================================================================== */
.search-banner {
  padding: var(--wp--preset--spacing--medium) 0 var(--wp--preset--spacing--small);
  text-align: center;
}
.search-banner h1 {
  font-family: var(--wp--preset--font-family--inter);
  font-size: var(--wp--preset--font-size--gigantic);
  font-weight: 400;
}
.search-banner h1 strong {
  font-weight: 700;
}
/* 5. Search results
	========================================================================== */
.search-results__items {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: var(--wp--preset--spacing--small);
}

/* 6. Search result
	========================================================================== */
.search-result a {
  text-decoration: none;
  display: block;
}
.search-result a time {
  font-size: var(--wp--preset--font-size--tiny);
  color: #666666;
}
.search-result a h2 {
  font-family: var(--wp--preset--font-family--inter);
  font-size: var(--wp--preset--font-size--large);
  margin-top: 15px;
  border-bottom: 2px solid transparent;
  -webkit-transition: 0.3s border-bottom-color;
  transition: 0.3s border-bottom-color;
  display: inline-block;
}
.search-result a p {
  margin-top: 15px;
}
.search-result a:hover h2 {
  color: var(--wp--preset--color--secondary);
  border-bottom-color: var(--wp--preset--color--secondary);
  -webkit-transition: 0.3s border-bottom-color;
  transition: 0.3s border-bottom-color;
}

/* 7. Load more
	========================================================================== */
.facetwp-facet-load_more {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin: var(--wp--preset--spacing--medium) 0 !important;
}
.facetwp-facet-load_more .wp-element-button:after {
  background-image: url(resources/img/icon-refresh.svg);
}

/* 8. Donation form
	========================================================================== */
[data-bbox-part-id="7799c175-0b8b-47d8-af7d-1b165185d738"].BBFormContainer {
  background: var(--wp--preset--color--grey) !important;
  border-radius: 0 !important;
  padding: var(--wp--preset--spacing--x-small) !important;
}

.BBFormContainer[data-bbox-part-id="7799c175-0b8b-47d8-af7d-1b165185d738"] .BBFormRadioLabelGivingLevel,
.BBFormRadioAmount {
  font-size: var(--wp--preset--font-size--small) !important;
}

.BBFormContainer[data-bbox-part-id="7799c175-0b8b-47d8-af7d-1b165185d738"] .BBFormRadioLabelGivingLevelSelected {
  color: var(--wp--preset--color--primary) !important;
  background: var(--wp--preset--color--secondary) !important;
  border-color: var(--wp--preset--color--secondary) !important;
}

.BBFormFieldUKGiftAidTermsLabel {
  margin-top: var(--wp--preset--spacing--x-small) !important;
  line-height: 1.4 !important;
  display: block !important;
}

.BBFormCheckboxLabel {
  font-family: inherit !important;
  font-size: var(--wp--preset--font-size--tiny) !important;
}

.BBFormFieldLabelEdit {
  background: transparent !important;
}

.BBFormSectionHeading {
  color: var(--wp--preset--color--base) !important;
}

.BBFormSection label,
[data-bbox-part-id="7799c175-0b8b-47d8-af7d-1b165185d738"].BBFormContainer {
  font-family: inherit !important;
  font-size: var(--wp--preset--font-size--tiny) !important;
}

.BBDFormSectionComments .BBFormFieldLabel {
  width: calc(100% - 161px) !important;
}

.BBFormSubmitbutton {
  background-color: var(--wp--preset--color--primary) !important;
  border-radius: 4px !important;
  border-width: 0px !important;
  color: var(--wp--preset--color--contrast) !important;
  font-family: inherit !important;
  font-size: var(--wp--preset--font-size--small) !important;
  font-weight: 500 !important;
  line-height: 1.6 !important;
  padding-top: 12px !important;
  padding-right: 24px !important;
  padding-bottom: 12px !important;
  padding-left: 24px !important;
  text-decoration: none !important;
  -webkit-box-shadow: var(--wp--preset--shadow--button) !important;
          box-shadow: var(--wp--preset--shadow--button) !important;
}

/* ==========================================================================
	Forms
	========================================================================== */
/**
 * Styles for inputs and other form elements.
 *
 * Contents
 *
 * 1. Input fields
 * 2. Selects
 * 3. Custom checkboxes
 * 4. Custom radio buttons
 * 5. Labels and legends
 */
/**
 * To ensure these styles are loaded only for blocks and no for other WP UI
 * components in the editor, give them some specificity.
 */
.gform_wrapper {
  /* 1. Input fields
  	========================================================================== */
  /* 2. Selects
  	========================================================================== */
  /* 3. Checkboxes
     ========================================================================== */
  /* 4. Radio buttons
     ========================================================================== */
  /* 5. Fieldsets, labels and legends
  	========================================================================== */
}
.gform_wrapper input[type=text],
.gform_wrapper input[type=password],
.gform_wrapper input[type=email],
.gform_wrapper input[type=url],
.gform_wrapper input[type=date],
.gform_wrapper input[type=month],
.gform_wrapper input[type=time],
.gform_wrapper input[type=datetime],
.gform_wrapper input[type=datetime-local],
.gform_wrapper input[type=week],
.gform_wrapper input[type=number],
.gform_wrapper input[type=search],
.gform_wrapper input[type=tel],
.gform_wrapper textarea,
.gform_wrapper select {
  width: 100%;
  font-size: var(--wp--preset--font-size--normal);
  padding: clamp(6px, 1vw, 12px) clamp(12px, 1vw, 24px);
  border: 1px solid var(--wp--preset--color--contrast);
  background: var(--wp--preset--color--grey);
  border-radius: 4px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  line-height: 1.8;
  /* Give the name field on the sign up form a pen icon. */
}
.gform_wrapper input[type=text]:focus,
.gform_wrapper input[type=password]:focus,
.gform_wrapper input[type=email]:focus,
.gform_wrapper input[type=url]:focus,
.gform_wrapper input[type=date]:focus,
.gform_wrapper input[type=month]:focus,
.gform_wrapper input[type=time]:focus,
.gform_wrapper input[type=datetime]:focus,
.gform_wrapper input[type=datetime-local]:focus,
.gform_wrapper input[type=week]:focus,
.gform_wrapper input[type=number]:focus,
.gform_wrapper input[type=search]:focus,
.gform_wrapper input[type=tel]:focus,
.gform_wrapper textarea:focus,
.gform_wrapper select:focus {
  outline: 1px solid var(--wp--preset--color--primary);
  outline-offset: 5px;
}
.gform_wrapper input[type=text][type=email],
.gform_wrapper input[type=password][type=email],
.gform_wrapper input[type=email][type=email],
.gform_wrapper input[type=url][type=email],
.gform_wrapper input[type=date][type=email],
.gform_wrapper input[type=month][type=email],
.gform_wrapper input[type=time][type=email],
.gform_wrapper input[type=datetime][type=email],
.gform_wrapper input[type=datetime-local][type=email],
.gform_wrapper input[type=week][type=email],
.gform_wrapper input[type=number][type=email],
.gform_wrapper input[type=search][type=email],
.gform_wrapper input[type=tel][type=email],
.gform_wrapper textarea[type=email],
.gform_wrapper select[type=email] {
  padding-left: 50px;
  background: url(resources/img/icon-mail.svg) no-repeat left 15px center/20px 20px var(--wp--preset--color--grey);
}
.gform_wrapper input[type=text][type=text]#input_1_2,
.gform_wrapper input[type=password][type=text]#input_1_2,
.gform_wrapper input[type=email][type=text]#input_1_2,
.gform_wrapper input[type=url][type=text]#input_1_2,
.gform_wrapper input[type=date][type=text]#input_1_2,
.gform_wrapper input[type=month][type=text]#input_1_2,
.gform_wrapper input[type=time][type=text]#input_1_2,
.gform_wrapper input[type=datetime][type=text]#input_1_2,
.gform_wrapper input[type=datetime-local][type=text]#input_1_2,
.gform_wrapper input[type=week][type=text]#input_1_2,
.gform_wrapper input[type=number][type=text]#input_1_2,
.gform_wrapper input[type=search][type=text]#input_1_2,
.gform_wrapper input[type=tel][type=text]#input_1_2,
.gform_wrapper textarea[type=text]#input_1_2,
.gform_wrapper select[type=text]#input_1_2 {
  padding-left: 50px;
  background: url(resources/img/icon-pen.svg) no-repeat left 15px center/20px 20px var(--wp--preset--color--grey);
}
.gform_wrapper select {
  max-width: 100%;
  -webkit-appearance: none;
}
.gform_wrapper select:not([multiple]) {
  background: url(resources/img/icon-chevron-down-dark.svg) no-repeat right 15px center/20px 20px;
}
.gform_wrapper select:is([multiple]) {
  padding: 10px 0;
}
.gform_wrapper select:is([multiple]) option {
  padding: 5px 15px;
}
.gform_wrapper select:is([multiple]) option:checked {
  background-image: -webkit-gradient(linear, left bottom, left top, from(var(--wp--preset--color--secondary)), to(var(--wp--preset--color--secondary)));
  background-image: linear-gradient(0deg, var(--wp--preset--color--secondary) 0%, var(--wp--preset--color--secondary) 100%);
}
.gform_wrapper [type=checkbox] {
  /* Remove the default checkbox */
  position: absolute;
  opacity: 0;
  /* The checkbox itself. */
  /* Checkbox hover state. */
  /* Checkbox focus state. */
  /* Checked background. */
  /* The checkmark. */
  /* Show the checkmark. */
}
.gform_wrapper [type=checkbox] ~ label {
  font-weight: 400;
  position: relative;
  cursor: pointer;
  padding: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.gform_wrapper [type=checkbox] ~ label:before {
  content: "";
  margin-right: 10px;
  display: inline-block;
  vertical-align: text-top;
  width: 24px;
  height: 24px;
  border: 1px solid var(--wp--preset--color--contrast);
}
.gform_wrapper [type=checkbox]:hover ~ label:before {
  border-color: var(--wp--preset--color--contrast);
}
.gform_wrapper [type=checkbox]:focus ~ label:before {
  outline: 1px solid var(--wp--preset--color--contrast);
  outline-offset: 5px;
}
.gform_wrapper [type=checkbox]:checked ~ label:before {
  background: var(--wp--preset--color--contrast);
  border-color: var(--wp--preset--color--contrast);
}
.gform_wrapper [type=checkbox] ~ label:after {
  content: "";
  width: 14px;
  height: 14px;
  position: absolute;
  top: 8px;
  left: 5px;
  -webkit-transform: scale(0);
          transform: scale(0);
  -webkit-box-shadow: inset 1em 1em var(--wp--preset--color--base);
          box-shadow: inset 1em 1em var(--wp--preset--color--base);
  -webkit-transform-origin: bottom left;
          transform-origin: bottom left;
  clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
}
.gform_wrapper [type=checkbox]:checked ~ label:after {
  -webkit-transform: scale(1);
          transform: scale(1);
}
.gform_wrapper [type=radio] {
  /* Remove the default radio button. */
  position: absolute;
  opacity: 0;
  /* The radio button itself. */
  /* Radio button hover state. */
  /* Radio button focus state. */
  /* Checked radio button style. */
  /* Show the checked state. */
}
.gform_wrapper [type=radio] ~ label {
  font-weight: 400;
  position: relative;
  cursor: pointer;
  padding: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.gform_wrapper [type=radio] ~ label:before {
  content: "";
  margin-right: 10px;
  display: inline-block;
  vertical-align: text-top;
  width: 24px;
  height: 24px;
  border: 1px solid var(--wp--preset--color--contrast);
  border-radius: 50%;
}
.gform_wrapper [type=radio]:hover ~ label:before {
  border: 1px solid var(--wp--preset--color--contrast);
}
.gform_wrapper [type=radio]:focus ~ label:before {
  outline: 1px solid var(--wp--preset--color--contrast);
}
.gform_wrapper [type=radio]:checked ~ label:before {
  border-color: var(--wp--preset--color--contrast);
}
.gform_wrapper [type=radio] ~ label:after {
  content: "";
  width: 12px;
  height: 12px;
  position: absolute;
  top: 10px;
  left: 6px;
  -webkit-transform: scale(0);
          transform: scale(0);
  background: var(--wp--preset--color--contrast);
  border-radius: 50%;
}
.gform_wrapper [type=radio]:checked ~ label:after {
  -webkit-transform: scale(1);
          transform: scale(1);
}
.gform_wrapper fieldset {
  padding: 0;
  border: none;
}

/* ==========================================================================
	Gravity Forms base styles
	========================================================================== */
/**
 * 1. Layout
 * 2. Name field
 * 3. Radio buttons and checkboxes
 * 4. Complex fields
 * 5. Messages, errors, notifications
 */
/* 1. Layout
	========================================================================== */
.gform_fields {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}
.gform_fields > * {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  margin-bottom: 20px;
}

/* 2. Fields
	========================================================================== */
/* For fields with a class .is-optional, append some optional text. */
.gfield.is-optional label:after {
  font-size: 18px;
  color: var(--wp--preset--color--contrast);
  font-style: italic;
  content: "- optional";
}

/* Only show the required text on labels for screen readers. */
/* Give inputs sensible max-widths. */
.gfield input.small {
  max-width: 200px;
}

.gfield input.medium {
  max-width: 400px;
}

/* 3. Radio buttons and checkboxes
	========================================================================== */
.gfield_radio,
.gfield_checkbox {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: var(--wp--preset--spacing--small);
  margin: 0;
}
.gfield_radio li,
.gfield_checkbox li {
  display: inline-block;
}
.gfield_radio li label,
.gfield_checkbox li label {
  display: inline-block;
  font-weight: 300;
}

/* 4. Complex fields
	========================================================================== */
.ginput_complex {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: var(--wp--preset--spacing--x-small);
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  position: relative;
  /* Messes with flex layout. */
  /* For date and time fields. */
  /* Allow the month field to fill the remaining space. */
  /* For address fields - might need modifying for non-UK addresses. */
  /* For an email group with confirmation field. */
}
@media (max-width: 599px) {
  .ginput_complex {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
}
.ginput_complex .gf_clear_complex {
  position: absolute;
}
.ginput_complex .ginput_container_time {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 80px;
          flex: 0 0 80px;
}
.ginput_complex .ginput_container_date {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 120px;
          flex: 0 0 120px;
}
@media (max-width: 599px) {
  .ginput_complex .ginput_container_date {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
  }
}
.ginput_complex .gfield_date_dropdown_month {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}
.ginput_complex.ginput_container_address {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}
.ginput_complex.ginput_container_address > * {
  -webkit-box-flex: 100%;
      -ms-flex: 100%;
          flex: 100%;
  max-width: 100%;
}
.ginput_complex.ginput_container_address > *.ginput_address_city {
  max-width: 70%;
}
.ginput_complex.ginput_container_address > *.ginput_address_zip {
  max-width: calc(30% - var(--wp--preset--spacing--x-small));
}
.ginput_complex.ginput_container_email > * {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}

/* 5. Label modifiers
	========================================================================== */
label.gform-field-label--type-sub,
legend.gform-field-label--type-sub {
  font-weight: 300;
}
label .gfield_required,
legend .gfield_required {
  font-weight: 400;
  display: inline-block;
  margin-left: 3px;
  color: var(--wp--preset--color--contrast);
}

/* 6. Messages, errors, notifications
	========================================================================== */
.gfield_description {
  font-size: var(--wp--preset--font-size--small);
  opacity: 0.5;
  font-weight: 400;
  margin-top: 5px;
}

.gform_validation_errors {
  margin-bottom: var(--wp--preset--spacing--tiny);
  outline: none;
  /* If there are multiple errors, they are added to a list with anchors. */
}
.gform_validation_errors .gform_submission_error {
  font-size: var(--wp--preset--font-size--tiny);
  color: #ad3f26;
  font-weight: 600;
}
.gform_validation_errors h4 {
  margin-bottom: var(--wp--preset--spacing--tiny);
}
.gform_validation_errors ol {
  color: #ad3f26;
  font-weight: 700;
  margin: 0;
  padding-left: 0;
  list-style: none;
  font-size: var(--wp--preset--font-size--tiny);
}
.gform_validation_errors ol li {
  margin-bottom: 5px;
  padding-left: 0;
}
.gform_validation_errors ol li:before {
  content: "\f06a";
  padding-right: 5px;
}
.gform_validation_errors ol li a {
  color: #ad3f26;
  text-decoration: none;
}

.gfield_validation_message {
  font-size: var(--wp--preset--font-size--tiny);
  font-weight: 700;
  color: #ad3f26;
  opacity: 1;
}

.gform_confirmation_message {
  font-size: var(--wp--preset--font-size--medium);
}

/**
 * Hide the anti-spam field.
 */
.gfield--type-honeypot {
  display: none;
}

/* Remove if not using GForms. */
