/* Price-page styles only; the existing pages retain their shared layout. */
.prices-page .page-hero { padding: 64px 0 52px; }

.prices-page .page-hero h1 {
  font-size: clamp(2.125rem, 7.1vw, 5.375rem);
  letter-spacing: -.055em;
  line-height: 1.02;
}

.prices-page .page-hero h1 span { display: block; }
.prices-page .page-hero .label { font-size: .875rem; line-height: 1.5; }

.prices-page .price-lead {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px 12px;
  margin: 24px 0 0;
  font-size: 1rem;
}

.prices-page .price-lead strong {
  color: var(--red);
  font-size: clamp(1.5rem, 3vw, 2.25rem);
  font-weight: 800;
}

.prices-page .page-hero-copy {
  max-width: 700px;
  margin-top: 14px;
  font-size: 1rem;
}

.prices-page .page-actions { margin-top: 24px; }
.prices-page .page-actions .button { font-size: .875rem; letter-spacing: .06em; }

.prices-page .price-list-section {
  padding: 48px 0;
  scroll-margin-top: 20px;
}

.prices-page .price-list-section h2,
.prices-page .price-explainer h2 {
  font-size: clamp(1.75rem, 3.6vw, 2.5rem);
  letter-spacing: -.035em;
  line-height: 1.15;
}

.prices-page .price-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.prices-page .price-table caption {
  padding: 16px 0 24px;
  color: var(--gray);
  font-size: .875rem;
  line-height: 1.5;
  text-align: left;
}

.prices-page .price-table thead { border-top: 1px solid var(--line); }
.prices-page .price-table tr { border-bottom: 1px solid var(--line); }
.prices-page .price-table th { text-align: left; }

.prices-page .price-table thead th {
  padding: 16px 0;
  color: var(--red);
  font-size: .875rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.prices-page .price-table thead th:first-child { width: 65%; }
.prices-page .price-table thead th:last-child { text-align: right; }
.prices-page .price-table tbody th { padding: 22px 20px 22px 0; font-weight: 400; }

.prices-page .price-table td {
  padding: 22px 0 22px 20px;
  text-align: right;
  vertical-align: middle;
  overflow-wrap: anywhere;
}

.prices-page .price-service-name {
  display: block;
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.35;
  overflow-wrap: break-word;
}

.prices-page .price-service-description {
  display: block;
  margin-top: 6px;
  color: var(--gray);
  font-size: .875rem;
  line-height: 1.55;
}

.prices-page .price-table td strong {
  font-size: clamp(1rem, 2.2vw, 1.625rem);
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}

.prices-page .price-unit {
  display: block;
  margin-top: 4px;
  color: var(--gray);
  font-size: .875rem;
}

.prices-page .price-list-note {
  max-width: 780px;
  margin: 24px 0 0;
  color: var(--gray);
  font-size: 1rem;
  line-height: 1.65;
}

.prices-page .price-explainer { padding: 48px 0; border-top: 1px solid var(--line); }
.prices-page .price-explainer-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; margin-top: 28px; }
.prices-page .price-explainer h3 { margin: 0 0 12px; font-size: 1.125rem; line-height: 1.4; }
.prices-page .price-explainer p { margin: 0; color: var(--gray); font-size: 1rem; line-height: 1.7; }
.prices-page .price-explainer a { color: var(--white); text-decoration: underline; text-underline-offset: 3px; }
.prices-page .contact h2 { font-size: clamp(2.25rem, 7vw, 5.25rem); line-height: .97; }
.prices-page .button:focus-visible { outline: 2px solid var(--white); outline-offset: 4px; }

@media (max-width: 560px) {
  .prices-page .page-hero { padding: 40px 0 36px; }
  .prices-page .price-list-section,
  .prices-page .price-explainer { padding: 36px 0; }
  .prices-page .price-table thead th:first-child { width: 56%; }
  .prices-page .price-table tbody th { padding: 18px 12px 18px 0; }
  .prices-page .price-table td { padding: 18px 0 18px 8px; }
  .prices-page .price-service-name { font-size: 1rem; }
  .prices-page .price-explainer-grid { grid-template-columns: 1fr; gap: 24px; }
}
