/* bp-prices: documented public prices (landings/_shared/bp-prices). Everything is scoped to .bp-prices*.
 * Colours are inherited and nothing paints a background, so contrast is the page's own on light and dark sections (WCAG AA);
 * only the rules between rows use a mid-grey that holds 3:1 on both. Logical properties throughout (LTR and RTL).
 * Mobile first: under 560 px the table becomes stacked cards; from 560 px it is a four-column table. */
.bp-prices {
  --bp-prices-line: #8a8a8a;
  box-sizing: border-box;
  inline-size: 100%;
  max-inline-size: 100%;
  min-inline-size: 0;
  margin-block: 1.5rem;
  color: inherit;
  font: inherit;
  line-height: 1.55;
  letter-spacing: normal;
  text-align: start;
  overflow-wrap: break-word;
  font-variant-numeric: tabular-nums lining-nums;
}
@supports (color: color-mix(in srgb, red 50%, blue)) {
  .bp-prices { --bp-prices-line: color-mix(in srgb, currentColor 50%, transparent); }
}
.bp-prices[hidden] { display: none !important; }
.bp-prices *, .bp-prices *::before, .bp-prices *::after { box-sizing: border-box; }

.bp-prices .bp-prices__title { margin: 0 0 .5rem; font-size: clamp(1.25rem, 1.05rem + 1vw, 1.75rem); font-weight: 700; line-height: 1.25; color: inherit; }
.bp-prices .bp-prices__group { margin-block-start: 1.25rem; }
.bp-prices .bp-prices__group-title { margin: 0 0 .25rem; font-size: 1.125rem; font-weight: 700; line-height: 1.3; color: inherit; }
.bp-prices .bp-prices__from { margin: 0 0 .25rem; font-size: 1.125rem; font-weight: 700; line-height: 1.4; }

/* Rows: stacked cards below 560 px */
.bp-prices .bp-prices__table { display: block; inline-size: 100%; margin-block: .75rem 0; border: 0; border-collapse: separate; }
.bp-prices .bp-prices__table tbody { display: block; }
.bp-prices .bp-prices__table thead {
  position: absolute; inline-size: 1px; block-size: 1px; margin: -1px; padding: 0; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0;
}
.bp-prices .bp-prices__row {
  display: block;
  margin-block-end: .75rem;
  padding: .75rem .875rem;
  border: 1px solid var(--bp-prices-line);
  border-radius: .5rem;
}
.bp-prices .bp-prices__cell { display: block; margin: 0; padding: 0; border: 0; font-weight: 400; text-align: start; vertical-align: top; }
.bp-prices .bp-prices__cell + .bp-prices__cell { margin-block-start: .5rem; }
.bp-prices .bp-prices__cell--empty { display: none; }
.bp-prices .bp-prices__cell[data-label]::before {
  content: attr(data-label);
  display: block;
  margin-block-end: .125rem;
  font-size: .8125rem;
  font-weight: 700;
  line-height: 1.3;
}
.bp-prices .bp-prices__cell--unit { font-size: 1.0625rem; font-weight: 700; line-height: 1.35; }
.bp-prices .bp-prices__price { margin: 0; font-size: 1.125rem; font-weight: 700; line-height: 1.35; }
.bp-prices .bp-prices__sale {
  display: inline-block;
  margin: .25rem 0 0;
  padding: .0625rem .5rem;
  border: 1px solid var(--bp-prices-line);
  border-radius: 999px;
  font-size: .8125rem;
  font-weight: 600;
  line-height: 1.4;
}
.bp-prices .bp-prices__plan, .bp-prices .bp-prices__source, .bp-prices .bp-prices__terms { margin: 0; font-size: .9375rem; line-height: 1.5; }
.bp-prices .bp-prices__terms { margin-block-start: .25rem; }
.bp-prices .bp-prices__estimates { margin: .25rem 0 0; padding: 0; list-style: none; font-size: .875rem; line-height: 1.45; }
.bp-prices .bp-prices__estimates li + li { margin-block-start: .25rem; }

.bp-prices .bp-prices__updated { margin: .75rem 0 0; font-size: .875rem; line-height: 1.45; }
.bp-prices .bp-prices__date { unicode-bidi: isolate; }
.bp-prices .bp-prices__notice { margin: .25rem 0 0; font-size: .875rem; line-height: 1.5; }

/* Table from 560 px */
@media (min-width: 560px) {
  .bp-prices .bp-prices__table { display: table; table-layout: fixed; border-collapse: collapse; }
  .bp-prices .bp-prices__table thead {
    position: static; inline-size: auto; block-size: auto; margin: 0; overflow: visible;
    clip: auto; clip-path: none; white-space: normal; display: table-header-group;
  }
  .bp-prices .bp-prices__table tbody { display: table-row-group; }
  .bp-prices .bp-prices__table tr { display: table-row; }
  .bp-prices .bp-prices__row { margin: 0; padding: 0; border: 0; border-radius: 0; }
  .bp-prices .bp-prices__th {
    padding: .5rem .75rem;
    border-block-end: 2px solid var(--bp-prices-line);
    font-size: .8125rem; font-weight: 700; line-height: 1.3; text-align: start; vertical-align: bottom;
  }
  .bp-prices .bp-prices__th--unit { inline-size: 22%; }
  .bp-prices .bp-prices__th--price { inline-size: 22%; }
  .bp-prices .bp-prices__th--plan { inline-size: 28%; }
  .bp-prices .bp-prices__th--source { inline-size: 28%; }
  .bp-prices .bp-prices__cell {
    display: table-cell;
    padding: .75rem;
    border-block-end: 1px solid var(--bp-prices-line);
  }
  .bp-prices .bp-prices__cell + .bp-prices__cell { margin: 0; }
  .bp-prices .bp-prices__cell--empty { display: table-cell; }
  .bp-prices .bp-prices__cell[data-label]::before { content: none; }
}

/* Unit price inserted just before a unit CTA: a small block that inherits the card's colours and alignment */
.bp-prices__unit {
  display: block;
  grid-column: 1 / -1;
  max-inline-size: 100%;
  margin-block: .25rem .5rem;
  font-size: .9375rem;
  font-style: normal;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: normal;
  text-transform: none;
  font-variant-numeric: tabular-nums lining-nums;
  overflow-wrap: break-word;
}
.bp-prices__unit-price { display: block; font-size: 1.0625rem; font-weight: 700; }
.bp-prices__unit-source { display: block; margin-block-start: .125rem; font-size: .8125rem; font-weight: 400; }
