@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 label, .en__field__input--radio + label) {
    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;
    }
  }

  .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=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__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;
  }

  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__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;
    }
  }
}

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

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

#en__pagebuilder form {
  overflow: visible !important;

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