.pf-table {
  width: 100%;
  border: 1px solid $table-border-colour;
  border-bottom-width: 0;
  text-align: left;
  border-collapse: collapse;
  font-size: 0.9em;
  line-height: 1.7em;

  th {
    text-align: left;
    text-transform: uppercase;
    font-weight: 600;
  }

  td,
  th {
    padding: 0.8em;
    border-width: 1px;
    border-style: solid;
    border-color: transparent;
    border-bottom-color: $table-border-colour;
  }

  &__box-row td,
  &__box-row th {
    border-width: 0 1px 1px 0;
    border-style: solid;
    border-color: $table-border-colour;

    &:last-child {
      border-width: 0 0 1px;
    }
  }

  &__cell-align-right {
    text-align: right;
  }

  &--stripe {
    tbody tr:nth-child(odd) {
      background-color: $colour-grey-xlight;
    }
  }

  &--invisible {
    width: auto;

    td,
    th {
      border-bottom-width: 0;
      padding: 0.5em 1.25em;
      text-transform: initial;
      vertical-align: top;
    }

    tbody tr > *:first-child {
      padding-left: 0;
    }

    tr:first-child td,
    tr:first-child th {
      padding-top: 0;
    }

    tr:last-child td,
    tr:last-child th {
      padding-bottom: 0;
    }
  }

  &--budget-summary {
    background-color: #8ed8f8;

    th,
    td {
      border-bottom-color: transparent;
      padding: 0.8em;
      text-align: right;
      font-weight: 600;
      text-transform: none;
    }

    tr:last-child td,
    tr:last-child th,
    tr:first-child td,
    tr:first-child th {
      padding-bottom: 0.8em;
      padding-top: 0.8em;
    }

    thead tr:last-child td,
    thead tr:last-child th {
      border-bottom-color: #333;
    }

    tbody tr:last-child td,
    tbody tr:last-child th {
      border-bottom-color: #333;
    }

    td.pf-table--budget-summary__left,
    th.pf-table--budget-summary__left {
      text-align: left;
    }

    tbody td.pf-table--budget-summary__left,
    tbody th.pf-table--budget-summary__left {
      font-weight: 300;
    }
  }
}
