/* /price/ only: the 2026 course tables show booking time, not installments.
   Keep the shared frame and existing card design unchanged. */

/* One typography scale for every course, visitor and service table.
   These values match the homepage's rendered price-table typography.
   Local !important declarations override the shared compact service-table
   rules without changing the homepage or /special/. */
.subpage-page--price {
  --price-table-text-size: 20px;
  --price-table-head-size: 20px;
  --price-table-amount-size: 24px;
  --price-table-note-size: 14px;
  --price-table-amount-line: 1.3;
  --price-table-heading-size: 28px;
  --price-table-subheading-size: 22px;
  --price-table-card-padding: 40px;
  --price-table-heading-gap: 28px;
  --price-table-group-gap: 32px;
  --price-table-head-padding: 16px;
  --estex-price-table-cell-block: 20px;
  --estex-price-table-cell-inline: 14px;
}

.subpage-page--price .price-card .price-table > :is(thead, tbody) > tr > * {
  font-size: var(--price-table-text-size) !important;
  font-weight: 500 !important;
  line-height: 1.4 !important;
}

.subpage-page--price .price-card .price-table > thead > tr > th {
  --estex-price-table-cell-block: var(--price-table-head-padding);
  font-size: var(--price-table-head-size) !important;
  font-weight: 700 !important;
}

.subpage-page--price .price-card .price-table__menu-content {
  font-size: var(--price-table-text-size) !important;
  font-weight: 500;
  line-height: 1.4;
}

.subpage-page--price .price-card .price-table .price-table__price > strong {
  display: block;
  font-size: var(--price-table-amount-size) !important;
  font-weight: 500 !important;
  letter-spacing: .05em;
  line-height: var(--price-table-amount-line) !important;
}

.subpage-page--price .price-card .price-table :is(
  .price-table__tax,
  .price-table__tax-note,
  .price-table__menu small
) {
  font-size: var(--price-table-note-size) !important;
  font-weight: 500 !important;
  line-height: 1.2 !important;
}

.subpage-page--price .price-card .price-table .price-table__note {
  font-size: var(--price-table-text-size) !important;
  line-height: 1.4 !important;
}

.subpage-page--price .price-card {
  padding-block: var(--price-table-card-padding);
}

.subpage-page--price .price-card .price-card__header {
  margin-bottom: var(--price-table-heading-gap);
}

.subpage-page--price .price-card .price-card__header h3 {
  font-size: var(--price-table-heading-size);
  line-height: 1.6;
}

.subpage-page--price .price-card .price-service-group h4 {
  margin-bottom: 16px;
  font-size: var(--price-table-subheading-size);
  line-height: 1.6;
}

.subpage-page--price .price-card .price-card__header + .price-service-group {
  margin-top: 0;
}

@media (max-width: 1366px) {
  .subpage-page--price {
    --price-table-text-size: 16px;
    --price-table-head-size: 16px;
    --price-table-amount-size: 20px;
    --price-table-note-size: 10px;
    --price-table-amount-line: 1.25;
    --price-table-heading-size: 16px;
    --price-table-subheading-size: 15px;
    --price-table-card-padding: 32px;
    --price-table-heading-gap: 24px;
    --price-table-group-gap: 24px;
    --price-table-head-padding: 14px;
    --estex-price-table-cell-block: 16px;
  }

  .subpage-page--price .price-card .price-card__header h3 { line-height: 1.7; }
  .subpage-page--price .price-card .price-service-group h4 { margin-bottom: 12px; }
}

@media (max-width: 767px) {
  .subpage-page--price {
    --price-table-head-size: 15px;
    --price-table-card-padding: 24px;
    --price-table-heading-gap: 20px;
    --price-table-head-padding: 12px;
    --estex-price-table-cell-block: 14px;
  }
}

.subpage-page--price .price-category-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px 20px;
  margin: 0 0 40px;
}

.subpage-page--price .price-category-nav a {
  padding: 8px 2px;
  border-bottom: 1px solid #c8c8c8;
  color: var(--subpage-ink);
  font-size: 14px;
  line-height: 1.5;
}

.subpage-page--price .price-category-nav a:is(:hover, :focus-visible) {
  color: var(--subpage-accent);
  border-bottom-color: currentColor;
}

.subpage-page--price .price-card,
.subpage-page--price #price-electric-title { scroll-margin-top: 100px; }

/* The eyebrow close-up is wider than the two full-height illustrations. */
.subpage-page--price .ranking-card__illustration--eyebrow {
  top: 8px;
  right: 12px;
  left: auto;
  width: calc(100% - 108px);
  max-width: 210px;
  height: auto;
  transform: none;
}

.subpage-page--price .price-card .price-service-group {
  margin-top: var(--price-table-group-gap);
}

.subpage-page--price .price-card .price-table--course > :is(thead, tbody) > tr > *:nth-child(1) { width: 43%; }
.subpage-page--price .price-card .price-table--course > :is(thead, tbody) > tr > *:nth-child(2) { width: 25%; }
.subpage-page--price .price-card .price-table--course > :is(thead, tbody) > tr > *:nth-child(3),
.subpage-page--price .price-card .price-table--course > :is(thead, tbody) > tr > *:nth-child(4) { width: 16%; }

.subpage-page--price .price-card .price-table--booking > :is(thead, tbody) > tr > *:nth-child(1) { width: 48%; }
.subpage-page--price .price-card .price-table--booking > :is(thead, tbody) > tr > *:nth-child(2) { width: 28%; }
.subpage-page--price .price-card .price-table--booking > :is(thead, tbody) > tr > *:nth-child(3) { width: 24%; }

.subpage-page--price .price-card .price-table--course .price-table__menu-content {
  gap: clamp(10px, 1.5vw, 20px);
  white-space: normal;
}

.subpage-page--price .price-card .price-table--course .price-table__menu-content img {
  flex-basis: 60px;
  width: 60px;
  height: 76px;
}

.subpage-page--price .price-card__note {
  margin: 20px 0 0;
  color: var(--subpage-copy);
  font-size: 14px;
  line-height: 1.9;
  overflow-wrap: anywhere;
}

.subpage-page--price .price-card__list {
  margin: 0;
  padding-left: 1.4em;
  color: var(--subpage-copy);
  font-size: 14px;
  line-height: 1.9;
}

.subpage-page--price .price-card .price-table--course .price-table__menu small {
  display: block;
  margin-top: 4px;
}

@media (min-width: 768px) {
  .subpage-page--price .price-card .price-table-wrap,
  .subpage-page--price .price-card .price-table-frame {
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }

  .subpage-page--price .price-card .price-table-scroll {
    overflow: visible;
  }

  .subpage-page--price .price-card .price-table {
    width: 100%;
    min-width: 0;
    table-layout: fixed;
  }

  .subpage-page--price .price-card .price-table--course > :is(thead, tbody) > tr > *,
  .subpage-page--price .price-card .price-table--booking > :is(thead, tbody) > tr > * {
    white-space: normal;
  }
}

@media (min-width: 768px) and (max-width: 1100px) {
  .subpage-page--price .ranking-card__illustration--bikini {
    width: min(126px, calc(100% - 108px));
    height: auto;
  }

  .subpage-page--price .price-card .price-table--course .price-table__menu-content img {
    flex-basis: 52px;
    width: 52px;
    height: 68px;
  }
}

@media (max-width: 767px) {
  .subpage-page--price .price-card__note { font-size: 13px; }
}
