/* v23: align booking rows, numbered steps and the additional-services toggle. */
.theme-v16-bodywork .price-row > div { display: grid; gap: 2px; }
.theme-v16-bodywork .price-row a {
  justify-content: flex-end;
  align-self: center;
  min-height: 44px;
  font-size: 11.5px; /* The visible label was 10px; increased by exactly 15%. */
  line-height: 1.3;
}
.theme-v16-bodywork .price-row a > span { font-size: inherit; }
/* Three narrow columns cannot hold the full booking label reliably. */
.theme-v16-bodywork .service-grid-primary .service-card:first-child .price-list {
  display: block;
  background: transparent;
}
.theme-v16-bodywork .service-grid-primary .service-card:first-child .price-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 10px 0;
  border: 0;
  border-bottom: 1px solid var(--line);
  background: transparent;
}
.theme-v16-bodywork .price-row strong,
.theme-v16-bodywork .set-bottom strong,
.theme-v16-bodywork .package-wrap td,
.theme-v16-bodywork .step > b { font-variant-numeric: tabular-nums; }

/* Draw the icon around the geometric centre, independent of font metrics. */
.theme-v16-bodywork .additional-services > summary > i {
  position: relative;
  font-size: 0;
}
.theme-v16-bodywork .additional-services > summary > i::before,
.theme-v16-bodywork .additional-services > summary > i::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 14px;
  height: 2px;
  background: currentColor;
  transform: translate(-50%, -50%);
}
.theme-v16-bodywork .additional-services > summary > i::after {
  transform: translate(-50%, -50%) rotate(90deg);
}
.theme-v16-bodywork .additional-services[open] > summary > i::after { display: none; }

@media (max-width: 700px) {
  .theme-v16-bodywork .price-row,
  .theme-v16-bodywork .service-grid-primary .service-card:first-child .price-row {
    align-items: center;
  }
  .theme-v16-bodywork .steps-grid { grid-template-columns: minmax(0, 1fr); }
  .theme-v16-bodywork .step,
  .theme-v16-bodywork .step + .step,
  .theme-v16-bodywork .step:nth-child(n+3) {
    display: grid;
    min-height: 0;
    padding: 18px 16px;
    grid-template-columns: 36px minmax(0, 1fr);
    column-gap: 16px;
  }
  .theme-v16-bodywork .step > b {
    grid-column: 1;
    grid-row: 1 / span 2;
    align-self: start;
    line-height: 1;
  }
  .theme-v16-bodywork .step > h3 { grid-column: 2; margin: 0; font-size: 17px; }
  .theme-v16-bodywork .step > p { grid-column: 2; margin: 0; font-size: 15px; }
}

/* The supplied portrait is displayed unchanged, with its original PNG alpha. */
.theme-v16-bodywork .about .portrait-media .static-stage {
  height: auto;
  max-height: none;
  aspect-ratio: 2 / 3;
  border: 0;
  background: transparent;
  box-shadow: none;
}
.theme-v16-bodywork .about .portrait-media .static-stage::after { display: none; }
.theme-v16-bodywork .about .portrait-media .static-stage img {
  display: block;
  width: 100%;
  height: auto;
  max-height: none;
  object-fit: contain;
  filter: none;
  opacity: 1;
  transform: none;
}

/* Reduce the portrait itself and its occupied height by 18%. */
.theme-v16-bodywork .about .portrait-media {
  width: 82%;
  justify-self: center;
}

/* Preserve the supplied hands artwork and its alpha, inside the existing frame. */
.theme-v16-bodywork .approach .hands-media .static-stage {
  border: 0;
  background: transparent;
  box-shadow: none;
}
.theme-v16-bodywork .approach .hands-media .static-stage::after { display: none; }
.theme-v16-bodywork .approach .hands-media .static-stage img {
  object-fit: contain;
  object-position: center;
  filter: none;
  opacity: 1;
  transform: none;
}
