.ckew-template-staff,
.ckew-template-vacancy {
  --horizontal-padding: 1.6em;
  --image-width: 7.7em;
  --image-height: var(--image-width);
  --vertical-padding: 1.46em;
  grid-template-columns: auto calc(var(--image-width) / 3 * 2) 1fr;
  align-items: start;
  position: relative;
}

.ckew-template-staff:not([hidden]),
.ckew-template-vacancy:not([hidden]) {
  display: grid;
}

@media (max-width: 31.25em) {
  .ckew-template-staff:not([hidden]) {
    display: block;
    padding-top: calc(var(--image-height) / 2);
  }
}

.ps-text-block-editor .ckew-template-staff::after {
  display: flex;
  align-items: center;
  box-sizing: border-box;
  content: 'Double click to edit image';
  padding: 0.9em;
  text-align: center;
  color: #fff;
  background: hsla(0, 0%, 0%, 0.6);
  pointer-events: none;
}

.ckew-template-staff *,
.ckew-template-vacancy * {
  box-sizing: border-box;
}

.cke_widget_wrapper_ckew-template-staff + .cke_widget_wrapper_ckew-template-staff,
.cke_widget_wrapper_ckew-template-vacancy + .cke_widget_wrapper_ckew-template-vacancy,
.ckew-template-staff:not([hidden]) ~ .ckew-template-staff:not([hidden]),
.ckew-template-vacancy:not([hidden]) ~ .ckew-template-vacancy:not([hidden]) {
  margin-top: 1.35em;
}

.ps-text-block-editor .ckew-template-staff::after,
.ckew-template-staff-image {
  grid-column: 1/3;
  grid-row: 1;
  z-index: 1;
  width: var(--image-width);
  height: var(--image-width) !important;
  border-radius: 100%;
}

.ckew-template-staff-image,
.ckew-template-staff-box,
.ckew-template-vacancy-box {
  border: 0.4rem solid currentColor;
}

.ckew-template-staff-image {
  /* Override the default. */
  max-width: none !important;
  /* So you can't see the box element behind it before the image loads in. */
  background: currentColor;
  object-fit: cover;
}

@media (max-width: 31.25em) {
  .ps-text-block-editor .ckew-template-staff::after,
  .ckew-template-staff-image {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
  }
}

.ckew-template-staff-box,
.ckew-template-vacancy-box {
  grid-column: 2/4;
  grid-row: 1;
  position: relative;
  width: 100%;
  overflow: hidden;
  border-radius: 4rem;
}

.ckew-template-staff-box {
  margin-top: 1.15em;
}

@media (max-width: 31.25em) {
  .ckew-template-staff-box {
    padding-top: calc(var(--image-height) / 2);
    margin: 0;
  }
}

.ckew-template-staff-box-intro,
.ckew-template-vacancy-box-intro {
  --button-icon-size: 1.35em;
  position: relative;
  padding-left: var(--horizontal-padding);
  padding-right: calc(var(--horizontal-padding) + var(--button-icon-size) + 1em);
  line-height: 1.3;
}

.ckew-template-staff-box-intro {
  padding-top: 0.8em;
  padding-bottom: 0.8em;
}

@media (max-width: 31.25em) {
  .ckew-template-staff-box-intro {
    --padding-top: 0.5em;
    padding-top: var(--padding-top);
    padding-bottom: var(--vertical-padding);
  }
}

.ckew-template-staff-box-intro {
  margin-left: calc((var(--image-width) / 3 * 2) - var(--horizontal-padding) + 1em);
}

@media (max-width: 31.25em) {
  .ckew-template-staff-box-intro {
    margin-left: 0;
  }
}

.ckew-template-vacancy-box-intro {
  padding-top: var(--vertical-padding);
  padding-bottom: var(--vertical-padding);
}

.ckew-template-vacancy-box-intro-details {
  --margin: 1em;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  width: calc(100% + var(--margin) * 2);
  margin: var(--margin) 0 0 calc(var(--margin) * -1);
}

/* Add a pseudo element to force an odd number of children to always take up 50% of the space until
   they wrap. */
.ckew-template-vacancy-box-intro-details::after {
  content: '';
}

.ckew-template-vacancy-box-intro-details::after,
.ckew-template-vacancy-box-intro-details-posted,
.ckew-template-vacancy-box-intro-details-close,
.ckew-template-vacancy-box-intro-details-salary,
.ckew-template-vacancy-box-intro-details-location,
.ckew-template-vacancy-box-intro-details-hours {
  flex-grow: 1;
  width: max(13.3em, calc(50% - var(--margin) * 2));
  max-width: 100%;
  margin: 0 var(--margin);
}

.ckew-template-vacancy-box-intro-details-posted,
.ckew-template-vacancy-box-intro-details-close {
  margin-bottom: 0.5em;
}

.ckew-template-vacancy-box-intro-details-posted-date,
.ckew-template-vacancy-box-intro-details-close-date {
  display: inline-block;
}

.ckew-template-vacancy-box-intro-details-salary,
.ckew-template-vacancy-box-intro-details-location,
.ckew-template-vacancy-box-intro-details-hours {
  margin-top: 0.68em;
  font-weight: bold;
}

.ckew-template-staff-box-intro-name,
.ckew-template-staff-box-intro-job-title,
.ckew-template-vacancy-box-intro-job-role,
.ckew-template-vacancy-box-intro-job-category,
.ckew-template-staff-box-intro-description,
.ckew-template-vacancy-box-intro-description {
  display: block;
}

.ckew-template-staff-box-intro-name,
.ckew-template-vacancy-box-intro-job-role {
  font-size: 1.26em;
  font-weight: bold;
}

.ckew-template-staff-box-intro-job-title,
.ckew-template-vacancy-box-intro-job-category {
  font-size: 1.13em;
  margin-top: 0.3em;
}

.ckew-template-vacancy-box-intro-details-salary,
.ckew-template-vacancy-box-intro-details-location,
.ckew-template-vacancy-box-intro-details-hours {
  --icon-height: 1.4em;
  position: relative;
  min-height: var(--icon-height);
  padding-left: 2em;
  background: left top / var(--icon-height) no-repeat;
}

.ckew-template-vacancy-box-intro-details-salary {
  background-image: url(text-block-template-icons.svg#coins);
}

.ckew-template-vacancy-box-intro-details-location {
  background-image: url(text-block-template-icons.svg#location);
}

.ckew-template-vacancy-box-intro-details-hours {
  background-image: url(text-block-template-icons.svg#clock);
}

.ckew-template-staff-box-intro-button,
.ckew-template-vacancy-box-intro-button {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  padding: 0;
  border: none;
  font: inherit;
  text-align: right;
  color: inherit;
  background: none;
  cursor: pointer;
}

.ckew-template-staff-box-intro-button:focus,
.ckew-template-vacancy-box-intro-button:focus {
  outline: none;
}

.ckew-template-staff-box-intro-button::before,
.ckew-template-vacancy-box-intro-button::before,
.ckew-template-staff-box-intro-button::after,
.ckew-template-vacancy-box-intro-button::after {
  position: absolute;
  top: 50%;
  right: var(--horizontal-padding);
  width: var(--button-icon-size);
  height: var(--button-icon-size);
  content: '';
  transform: translateY(-50%);
}

@media (max-width: 31.25em) {
  .ckew-template-staff-box-intro-button::before,
  .ckew-template-staff-box-intro-button::after {
    top: calc(var(--padding-top) + 0.1em);
    transform: none;
  }
}

.ckew-template-staff-box-intro-button::after,
.ckew-template-vacancy-box-intro-button::after {
  background: center / contain no-repeat;
}

.ckew-template-staff-box-intro-button[aria-expanded="false"]::after,
.ckew-template-vacancy-box-intro-button[aria-expanded="false"]::after {
  background-image: url(text-block-template-icons.svg#plus);
}

.ckew-template-staff-box-intro-button[aria-expanded="true"]::after,
.ckew-template-vacancy-box-intro-button[aria-expanded="true"]::after,
.ps-text-block-editor .ckew-template-staff-box-intro-button::after,
.ps-text-block-editor .ckew-template-vacancy-box-intro-button::after {
  background-image: url(text-block-template-icons.svg#minus);
}

.ckew-template-staff-box-intro-button:focus-visible::before,
.ckew-template-vacancy-box-intro-button:focus-visible::before {
  outline: 0.2rem solid currentColor;
}

.ckew-template-staff-box-intro-button-text,
.ckew-template-vacancy-box-intro-button-text {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: polygon(0 0, 0 0, 0 0, 0 0);
}

.ps-text-block-editor .ckew-template-staff-box-intro-button,
.ps-text-block-editor .ckew-template-vacancy-box-intro-button {
  pointer-events: none;
}

.ckew-template-staff-box-description,
.ckew-template-vacancy-box-description {
  height: 0;
  overflow: hidden;
  transition: height 0.2s ease;
}

.ps-text-block-editor .ckew-template-staff-box-description,
.ps-text-block-editor .ckew-template-vacancy-box-description {
  height: auto;
}

.ckew-template-staff-box-description-text,
.ckew-template-vacancy-box-description-text {
  padding: 0.7em var(--horizontal-padding) var(--vertical-padding);
}

.ckew-template-staff-box-description-text {
  margin-top: 1.5em;
}

@media (max-width: 31.25em) {
  .ckew-template-staff-box-description-text {
    margin-top: 0;
  }
}
