  @font-face {
    font-family: 'Calendas Plus';
    font-weight: normal;
    font-style: normal;
    src: url('https://acb0a5d73b67fccd4bbe-c2d8138f0ea10a18dd4c43ec3aa4240a.ssl.cf5.rackcdn.com/10171/calendas_plus-webfont.woff2?v=1769173677000') format('woff2');
    font-display: swap;
  }

  @font-face {
    font-family: 'Calendas Plus';
    font-weight: bold;
    font-style: normal;
    src: url('https://acb0a5d73b67fccd4bbe-c2d8138f0ea10a18dd4c43ec3aa4240a.ssl.cf5.rackcdn.com/10171/calendas_plus_bold-webfont.woff2?v=1769173700000') format('woff2');
    font-display: swap;
  }

  @font-face {
    font-family: 'Calendas Plus';
    font-weight: normal;
    font-style: italic;
    src: url('https://acb0a5d73b67fccd4bbe-c2d8138f0ea10a18dd4c43ec3aa4240a.ssl.cf5.rackcdn.com/10171/calendas_plus_italic-webfont.woff2?v=1769173687000') format('woff2');
    font-display: swap;
  }

  :root {
    --color-blue-lighter: #F2F6FA;
    --color-blue-light: #295EA0;
    --color-blue-dark: #0D2F6B;
    --color-orange: #DE4828;
    --color-text: #212529;
    --color-white: #FFFFFF;

    --font-body: "Calendas Plus", serif;
    --font-heading: "Roboto Condensed", sans-serif;
    --font-decoration: "Caveat", sans-serif;

    --text-sm: 1rem;
    --text-md: 1.375rem;
    --text-lg: 1.875rem;

    --min-margin: 1.25rem;
    --content-margin: max(
      var(--min-margin),
      50% - 72.5rem / 2
    );
  }

  #en-body .en-content-container,
  #en__pagebuilder .en-content-container {
    font-family: var(--font-body);
    font-size: var(--text-md);

    h1,
    h2,
    h3 {
      font-family: var(--font-heading);
      font-weight: 700;
    }

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

    :where(p) {
      font-family: var(--font-body);
    }

    header,
    footer,
    .en__component--row {
      margin-left: var(--content-margin);
      margin-right: var(--content-margin);
      width: auto;
    }

    .en__component--advrow:not(:has(> :first-child > :first-child, > :last-child > :first-child)) {
      display: none;
    }

    .en__component--advrow {
      min-height: unset;

      > :first-child {
        > * {
          margin-top: 0;
          margin-bottom: 4rem;

          &:last-child {
            margin-bottom: 0;
          }
        }

        p {
          &:where(.typography-lead p) {
            font-size: var(--text-lg);
            line-height: 1.5;
          }

          &:first-child {
            margin-top: 0;
          }

          &:last-child {
            margin-bottom: 0;
          }
        }
      }

      > :nth-child(2) > * {
        background-color: var(--color-white);
        padding: 0 2rem;

        &.no-background {
          background-color: transparent;
          padding: 0;
          padding-top: 3rem;

          &:where(.no-background + .no-background) {
            padding-top: 0rem;
          }
        }
      }

      > :nth-child(2) > .en__component {
        padding-bottom: 1.875rem;
      }

      &:not(:has(hgroup, .en__placeholder__title)) .en__component--advcolumn > :first-child {
        padding-top: 4rem;
      }
    }

    @media (min-width: 56.25rem) {
      .en__component--advrow {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-rows: none;
        gap: 4rem;
      }
    }

    label:not(.en__field--checkbox .en__field__label--item, .en__field__input--radio + .en__field__label--item) {
      font-size: var(--text-md);
      font-family: var(--font-heading);
      line-height: 1.5;
      font-weight: 700;
    }

    .en__field--checkbox {
      flex-direction: row;
      gap: 0.625rem;

      > label {
        font-size: var(--text-md);
        line-height: 1.5;
        order: 2;

        &:has(+ .en__field__element--checkbox label:not(:empty)) {
          order: unset;
        }
      }
    }

    .en__field__input--checkbox + label {
      font-size: var(--text-md);
      line-height: 1.2;
      order: 2;
      gap: 10px;
      align-items: start;
    }

    .en__field--checkbox input {
      + label::before {
        content: '';
        display: inline-block;
        width: 1.25rem;
        height: 1.25rem;
        border-radius: 5px;
        border: 2px solid var(--color-blue-light);
      }

      &:checked + label::before {
        background-color: var(--color-blue-light);
        background-image: url("data:image/svg+xml,%3Csvg width='15' height='11' viewBox='0 0 15 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M13.8125 0.40625C14.2188 0.78125 14.2188 1.4375 13.8125 1.8125L5.8125 9.8125C5.4375 10.2188 4.78125 10.2188 4.40625 9.8125L0.40625 5.8125C0 5.4375 0 4.78125 0.40625 4.40625C0.78125 4 1.4375 4 1.8125 4.40625L5.125 7.6875L12.4062 0.40625C12.7812 0 13.4375 0 13.8125 0.40625Z' fill='white'/%3E%3C/svg%3E%0A");
        background-position: center center;
        background-repeat: no-repeat;
      }
    }

    input[type=date],
    input[type=email],
    input[type=tel],
    input[type=text]:not(.en__field--donationAmt .en__field__input--other),
    select,
    textarea {
      border: 3px solid var(--color-blue-light) !important;
      padding: 1rem;
      font-size: var(--text-md);
      line-height: 1.5;
    }

    .en__ticket__quantity {
      border: 3px solid var(--color-blue-light) !important;
    }

    select {
      background-image: url("data:image/svg+xml,%3Csvg width='13' height='8' viewBox='0 0 13 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.46875 7.14844L0.46875 2.14844C0.117188 1.79688 0 1.25 0.195312 0.78125C0.390625 0.3125 0.859375 0 1.36719 0H11.3672C11.875 0 12.3047 0.3125 12.5 0.78125C12.6953 1.25 12.5781 1.79688 12.2266 2.14844L7.22656 7.14844C6.75781 7.65625 5.9375 7.65625 5.46875 7.14844Z' fill='%23212529'/%3E%3C/svg%3E%0A");
      background-position: right -1.25rem center;
      padding-right: 2rem;
    }

    .en__mandatory > label {
      justify-content: start !important;

      &::after {
        content: '*';
        color: #CC0000;
      }
    }

    .en__component--formblock {
      gap: 1.25rem;
    }

    .en__field__input--vgs {
      width: 100%;
      border: 3px solid var(--color-blue-light);
      height: 71px;

      iframe {
        width: 100%;
        height: 62px;
      }
    }

    .en__field__element--splitselect {
      :nth-child(2) {
        padding-right: .5rem;
      }

      :nth-child(3) {
        padding-left: .5rem;
      }
    }

    .en__field--donationAmt {
      padding-top: 2rem;
      padding-bottom: 4rem;
      border-top: 4px solid var(--color-blue-light);
      border-bottom: 4px solid var(--color-blue-light);
      margin-bottom: 2.125rem;

      label {
        margin-bottom: 2rem;;
      }

      .en__field__element {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1rem;

        @media (min-width: 70rem) {
          grid-template-columns: repeat(3, minmax(0, 1fr));
        }
      }
    }

    .en__field--recurrpay .en__field__label--item,
    .en__field--donationAmt .en__field__label--item,
    .en__field--donationAmt .en__field__input--other {
      background-color: var(--color-blue-light) !important;
      padding: 2rem !important;
      border: none !important;
      box-shadow: 4px 4px 4px 0 rgba(0, 0, 0, 0.20);
      color: var(--color-white) !important;
      font-size: var(--text-lg) !important;
      font-family: var(--font-heading) !important;
      font-weight: 700 !important;
      line-height: 1.5 !important;
      justify-content: center;
      margin-bottom: 0;
    }

    .en__field--recurrpay .en__field__input--radio:checked + .en__field__label--item,
    .en__field--donationAmt .en__field__input--radio:checked + .en__field__label--item,
    .en__field--donationAmt .en__field__item:has(input:checked) + .en__field__item--other .en__field__input--other {
      background-color: var(--color-orange) !important;
      box-shadow: 6px 6px 6px 0 rgba(0, 0, 0, 0.20) inset !important;
    }

    .en__field--recurrpay {
      margin-bottom: 2.75rem;

      .en__field__item {
        width: 50%;
      }
    }

    .en__field--recurrpay > label {
      height: 1px;
      margin: -1px;
      overflow: hidden;
      padding: 0;
      position: absolute;
      width: 1px;
      clip: rect(0, 0, 0, 0);
      border-width: 0;
      white-space: nowrap;
    }

    .en__field--donationAmt .en__field__item--other {
      position: relative;

      .en__field__input--other {
        text-align: center;
        padding-left: 3rem !important;
      }

      &::before {
        content: '$';
        position: absolute;
        left: 1rem;
        top: 50%;
        transform: translateY(-50%);
        color: var(--color-white) !important;
        font-size: var(--text-lg) !important;
        font-family: var(--font-heading) !important;
        font-weight: 700 !important;
        line-height: 1.5 !important;
      }
    }

    .en__field--radio:not(.en__field--recurrpay, .en__field--donationAmt) {
      .en__field__element {
        gap: 1.875rem;
      }

      .en__field__input--radio {
        + label {
          font-size: var(--text-md);
          line-height: 1.5;
          gap: .625rem;

          &::before {
            content: '';
            display: inline-block;
            width: 1.25rem;
            height: 1.25rem;
            border-radius: 999px;
            outline: 4px solid var(--color-blue-light);
            outline-offset: -4px;
          }
        }

        &:checked + label::before {
          background-color: var(--color-blue-light);
        }
      }
    }

    .en__component:has(+ details) {
      padding-bottom: 4rem !important;
    }

    details + .en__component {
        padding-top: 2rem !important;
    }

    details {
      width: 100%;
      padding-top: 2rem !important;
      padding-bottom: 3rem !important;
      position: relative;

      &::before,
      &::after {
        content: '';
        position: absolute;
        display: block;
        height: 4px;
        width: calc(100% - 4rem);
        left: 2rem;
        background-color: var(--color-blue-light);
      }

      &::before {
        top: 0;
      }

      &::after {
        bottom: 0;
      }
    }

    summary {
      cursor: pointer;
      list-style-type: none;
      font-size: 2.25rem;
      line-height: 1.2;
      letter-spacing: -.02em;
      display: flex;
      gap: .5rem;

      &:where([open] > summary) {
        margin-bottom: 1.25rem;
      }

      .optional-indicator {
        font-size: var(--text-md);
        line-height: 1.5;
        font-weight: 700;
        letter-spacing: 0;
      }

      &::after {
        content: url("data:image/svg+xml,%3Csvg width='21' height='12' viewBox='0 0 21 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9.46875 11.0156L0.46875 2.01562C0 1.59375 0 0.890625 0.46875 0.421875C0.890625 0 1.59375 0 2.0625 0.421875L10.2656 8.67188L18.4688 0.46875C18.8906 0 19.5938 0 20.0625 0.46875C20.4844 0.890625 20.4844 1.59375 20.0625 2.01562L11.0156 11.0156C10.5938 11.4844 9.89062 11.4844 9.46875 11.0156Z' fill='%23DE4828'/%3E%3C/svg%3E%0A");
      }
    }

    .en__errorList:not(:has(> :first-child)) {
      display: none;
    }

    form {
      background-color: var(--color-blue-lighter);
      overflow-x: hidden;
      padding-bottom: 4rem;
    }

    header {
      padding: 2rem 0;
    }

    hgroup {
      padding-top: 4rem;
      padding-bottom: 4rem;
      position: relative;
      z-index: 1;
      color: var(--color-white);

      h1 {
        font-size: 3.75rem;
        line-height: 1.2;
      }

      > * {
        margin-top: 0;
        margin-bottom: 2rem;
      }

      > :last-child {
        margin-bottom: 0;
      }
    }

    h2 {
      font-size: 2.25rem;
      font-weight: 400;
      letter-spacing: -.02em;
    }

    .personal-information-title,
    .personal-information,
    .address,
    .payment-information-title,
    .payment-information {
      padding-bottom: 1.25rem !important;
    }

    .en__component--codeblock:has(> hgroup) {
      position: relative;

      &::before {
        content: '';
        position: absolute;
        top: 0;
        bottom: 0;
        left: -100vw;
        right: -100vw;
        display: block;
        background-color: var(--color-blue-light);
        z-index: 0;
      }
    }

    .enWidget__copy--above p {
      font-family: var(--font-heading);
      font-size: var(--text-lg);
      line-height: 1.2;
      font-weight: 700;
      margin-bottom: 1.25rem !important;
    }

    .enWidget__progress {
      height: 2rem !important;
      border: none !important;
      outline: 3px solid var(--color-blue-light);
      outline-offset: -3px;
      position: relative;
      margin-bottom: 1.25rem;
    }

    .enWidget__fill {
      height: 100%;
      background-color: var(--color-orange) !important;
      box-shadow: 4px 4px 4px 0 rgba(0, 0, 0, 0.20);
      position: absolute;
    }

    .enWidget__copy--below {
      display: flex;
      justify-content: space-between;
      text-align: center;

      p {
        margin: 0;
      }
    }

    .progress-bar-figure {
      color: var(--color-blue-light);
      font-size: 2.25rem;
      line-height: 1.5;
    }

    .progress-bar-supplemental-text {
      font-size: 1rem;
      font-family: var(--font-heading);
      line-height: 1.5;
    }

    .decoration-text {
      display: flex;
      gap: 1rem;
      align-items: center;
      padding-bottom: 1rem !important;

      p {
        font-size: 2.25rem;
        line-height: 1.2;
        font-family: var(--font-decoration);
        color: var(--color-orange);
        text-wrap-style: balance;
        max-width: 21.75rem;
        margin: 0;
      }

      &::after {
        content: url("data:image/svg+xml,%3Csvg width='52' height='59' viewBox='0 0 52 59' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 6C1.34315 6 0 4.65685 0 3C0 1.34314 1.34315 0 3 0V6ZM34.5 58.9955L16.6483 29.3085L51.2838 28.692L34.5 58.9955ZM3 0C14.9424 0 23.4197 1.70951 28.941 7.0942C34.4332 12.4504 36.2826 20.7622 37.013 31.8058L31.0261 32.2018C30.2996 21.2188 28.4832 15.0287 24.7519 11.3897C21.0497 7.77909 14.7456 6 3 6V0Z' fill='%23DE4828'/%3E%3C/svg%3E");
      }
    }

    .en__additional__promo {
      display: flex !important;
      padding: .625rem;
    }

    .en__component.en__component--eventtickets {
      background-color: #ffffff;
      padding: 1rem;
      border-radius: var(--engrid__body_border-radius);
    }

    @media screen and (min-width: 900px) {
      .en__component.en__component--eventtickets {
        border-radius: 0;
      }
    }

    .en__ticketSummary__checkout,
    .en__submit button {
      background-color: var(--color-orange);
      padding: 2rem;
      color: var(--color-white);
      font-family: var(--font-heading);
      font-size: var(--text-lg);
      line-height: 1.5;
      font-weight: 700;
      margin-bottom: 1.125rem;

      &:hover {
        background-color: var(--color-blue-light);
      }
    }

    .en__ticketSummary__checkout {
      margin-left: auto;
    }

    .en__registrants__registrantDetails {
      display: flex;
      column-gap: 2rem;
      row-gap: 1rem;
      --single-column-basis: calc((100% - 4rem) / 3);
      --other-column-basis: calc(((100% - 4rem) * 2 / 3) + 2rem);

      .en__field__element--checkbox > .en__field__item {
        display: block;
        margin-bottom: .3rem;

        &:last-child {
          margin-bottom: 0;
        }

        .en__field__label--item {
          justify-content: flex-start;

          &::before {
            flex-grow: 0;
          }
        }
      }
      > * {
        padding-left: 0;
        padding-right: 0;

        .en__field__element {
          display: block;
        }

        .en__field__item {
          padding-top: 0;
          padding-bottom: 0;
        }
      }

      > .en__field--withOther {
        flex-basis: var(--other-column-basis);

        .en__field__element {
          display: flex;
          column-gap: 2rem;
          row-gap: 1rem;

          > * {
            flex-basis: calc(50% - 1rem);
          }
        }
      }

      > .full-width-field {
        flex-basis: 100%;

        .en__field__item:has(input[type=date], input[type=email], input[type=text], select) {
          width: var(--single-column-basis);
        }

        &.en__field--withOther {
          .en__field__element > * {
            flex-basis: var(--single-column-basis);
          }
        }
      }

      > :not(.full-width-field):not(.en__field--withOther) {
        flex-basis: var(--single-column-basis);

        input[type=date],
        input[type=email],
        input[type=text],
        select {
          width: 100%;
        }
      }

      @media (max-width: 50rem) {
        --single-column-basis: calc((100% - 2rem) / 2);
        --other-column-basis: 100%;
      }

      @media (max-width: 37.5rem) {
        display: grid;

        > .en__field--withOther .en__field__element {
          display: grid;
        }
      }
    }

    footer {
      display: flex;
      flex-direction: column;
      gap: 4rem;
      padding: 4rem 0;
      font-size: var(--text-sm);

      @media (min-width: 56.25rem) {
        flex-direction: row;
      }

      > :first-child {
        flex-shrink: 0;
        flex-grow: 0;
        display: flex;
        flex-direction: column;
        gap: 4rem;

        @media (min-width: 56.25rem) {
          flex-basis: 25rem;
        }
      }

      > :last-child {
        flex: 1;

        p {
          margin-bottom: 2rem;

          &:first-of-type {
            margin-bottom: 2.5rem;
          }

          &:last-child {
            margin-bottom: 0;
          }
        }
      }

      img {
        margin: 0;
      }

      .secondary-logos {
        display: flex;
        flex-wrap: wrap;
        gap: 2rem;
        width: fit-content;
      }
    }

    .social-icons {
      display: flex;
      flex-wrap: wrap;
      gap: 2rem;
      justify-content: start;
      align-items: center;
      margin-bottom: 2rem;

      a {
        color: var(--color-blue-dark);

        &:hover {
          color: var(--color-orange);
        }
      }
    }

    .sr-only {
      height: 1px;
      margin: -1px;
      overflow: hidden;
      padding: 0;
      position: absolute;
      width: 1px;
      clip: rect(0, 0, 0, 0);
      border-width: 0;
      white-space: nowrap;
    }

    .en__ticketSummary {
      display: block;
    }

    .en__ticket__field {
      border-bottom: 2px solid var(--color-blue-lighter);

      .en__ticket__price::before {
        content: '$';
      }

      .en__ticket__currency {
        display: none;
      }
    }

    .en__ticketRecurring, .en__ticketSummary {
        border-top: 2px solid var(--color-blue-lighter);
    }

    .en__additional__input {
      min-width: 6rem;
    }

    .en__additional__code {
      min-width: 12rem;
    }

    .en__ticket__quantity {
      min-width: 4rem;
    }

    .en__ticket__minus {
      background: url(https://ca.engagingnetworks.app/pageassets/images/en_minus.png) center center no-repeat;
    }

    .en__ticket__plus {
      background: url(https://ca.engagingnetworks.app/pageassets/images/en_plus.png) center center no-repeat;
    }

    @media (max-width: 37.5rem) {
      .en__ticket,
      .en__additional {
        display: block;
        border-bottom: 2px solid var(--color-blue-lighter);
        padding-bottom: 1rem;
        margin-bottom: 1rem;
      }

      .en__additional__amount, .en__additional__label, .en__additional__promo, .en__ticketSummary__checkout, .en__ticket__field {
        display: block !important;
        text-align: left;
      }

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

      .en__ticket__field {
        border-bottom: 0;
      }

      .en__ticketRecurring, .en__ticketSummary {
        border-top: 0;
      }
    }

    .first-optin-visible > :nth-child(n+2 of .en__field--question) {
      display: none;
    }
  }

  .en-content-container a {
    color: var(--color-blue-light);
    text-decoration: underline;

    &:hover {
      color: var(--color-orange);
    }
  }

  #en__pagebuilder {
    .en-content-container {
      .first-optin-visible {
        &::before {
          content: 'Note: This form block has the "first-optin-visible" class, so only the first opt-in will be visible on the frontend view of the form. Grayed-out opt-ins below are displayed below for convenience but will not be visible on the front of the site. Their value will be synced to the value of the first opt-in field.';
          font-size: 1rem;
          font-style: italic;
          line-height: 1.25;
          font-family: 'Roboto Condensed';
        }

        > :nth-child(n+2 of .en__field--question) {
          display: flex;
          opacity: .5;
        }

      }
    }

    form {
      overflow: visible !important;

      > .en__component--advrow.en__component--active .en__component__actions.en__component__actions--advrow {
        grid-row: unset;
      }
    }
  }
