/* Общий прайс и одинаковые блоки цен на страницах услуг. */
.site-nav { gap: clamp(20px, 2.4vw, 38px); }
.price-hero { padding-bottom: clamp(40px, 5vw, 80px); }
.price-hero-heading { display: grid; grid-template-columns: 1.7fr 1fr; gap: 60px; align-items: end; padding-block: clamp(36px, 5.6vw, 88px) 42px; }
.price-hero h1 { font-size: clamp(64px, 8vw, 128px); }
.price-hero-aside { max-width: 410px; justify-self: end; padding-bottom: 8px; }
.price-hero-aside p { margin-bottom: 24px; color: var(--muted-light); font-size: clamp(18px, 1.5vw, 23px); }
.price-hero-meta { display: flex; gap: 28px; justify-content: space-between; border-top: 1px solid var(--line-dark); padding-top: 18px; color: var(--muted-light); font-size: 13px; }
.price-hero-meta span:first-child { color: var(--brand-light); }
.price-catalog { padding-block: 48px 80px; }
.price-layout { display: grid; grid-template-columns: 220px minmax(0, 1fr); align-items: start; gap: clamp(30px, 4vw, 64px); }
.price-sidebar { position: sticky; top: 28px; }
.price-directory a { display: flex; gap: 12px; align-items: baseline; padding: 16px 0; border-bottom: 1px solid var(--line); font-size: 16px; line-height: 1.3; text-decoration: none; }
.price-directory a span { font-size: 11px; color: var(--muted); min-width: 21px; font-variant-numeric: tabular-nums; }
.price-directory a:hover, .price-directory a[aria-current="location"] { color: var(--brand-link); }
.price-sidebar-note { margin-top: 24px; max-width: 200px; font-size: 13px; color: var(--muted); }
.price-main { min-width: 0; }
.price-tools { margin-bottom: 48px; }
.price-tools-heading { font-size: 20px; font-weight: 600; letter-spacing: -.02em; }
.price-class-picker { border: 0; margin: 18px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); }
.price-class-choice { display: flex; position: relative; }
.price-class-choice input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.price-class-choice span { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 48px; border: 1px solid var(--line); border-right: 0; padding: 10px 12px; font-size: 14px; cursor: pointer; }
.price-class-choice:last-child span { border-right: 1px solid var(--line); }
.price-class-choice input:checked + span { color: #fff; background: var(--dark); border-color: var(--dark); }
.price-class-choice input:focus-visible + span { outline: 2px solid var(--brand-link); outline-offset: 3px; z-index: 1; }
.price-class-choice:hover span { border-bottom-color: var(--brand-link); }
.price-display-note { margin-top: 12px; color: var(--muted); font-size: 13px; line-height: 1.5; }
.price-vehicle-guide { margin-top: 12px; }
.price-vehicle-guide > summary { display: inline-flex; gap: 10px; align-items: center; min-height: 36px; font-size: 14px; cursor: pointer; list-style: none; text-decoration: underline; text-underline-offset: 4px; }
.price-vehicle-guide > summary::-webkit-details-marker { display: none; }
.price-vehicle-guide > summary::after { content: "+"; text-decoration: none; }
.price-vehicle-guide[open] > summary::after { content: "−"; }
.price-vehicle-classes { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; margin: 16px 0 0; padding: 20px; background: var(--stone); }
.price-vehicle-classes dt { font-size: 16px; font-weight: 600; margin-bottom: 6px; }
.price-vehicle-classes dd { margin: 0; color: var(--muted); font-size: 14px; }
.price-category { scroll-margin-top: 24px; }
.price-category + .price-category { margin-top: 64px; padding-top: 48px; border-top: 1px solid var(--ink); }
.price-category-heading { display: flex; gap: 20px; align-items: baseline; justify-content: space-between; margin-bottom: 18px; }
.price-category h2 { font-size: clamp(34px, 3.5vw, 54px); }
.price-category-heading > .text-link { flex-shrink: 0; font-size: 13px; }
.price-category-meta { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 18px; color: var(--muted); font-size: 12px; }
.price-category-meta span:first-child { color: var(--brand-link); font-size: 13px; }
.price-intro { max-width: 840px; margin-bottom: 26px; }
.price-intro p { color: var(--muted); font-size: 15px; line-height: 1.55; }
.price-intro p + p { margin-top: 8px; }
.price-group { border-top: 1px solid var(--line); }
.price-group:last-of-type { border-bottom: 1px solid var(--line); }
.price-group > summary { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-block: 19px; cursor: pointer; list-style: none; }
.price-group > summary::-webkit-details-marker { display: none; }
.price-group > summary h3 { font-size: 23px; line-height: 1.25; letter-spacing: -.025em; }
.price-group > summary::after { content: "+"; font-size: 24px; line-height: 1; font-weight: 400; flex-shrink: 0; }
.price-group[open] > summary::after { content: "−"; }
.price-table { width: 100%; table-layout: fixed; border-collapse: collapse; font-variant-numeric: tabular-nums; margin-bottom: 24px; }
.price-table thead th { background: var(--stone); padding: 13px 10px; font-size: 12px; font-weight: 400; color: var(--muted); text-align: right; }
.price-table thead th:first-child { width: 49%; padding-left: 16px; text-align: left; }
.price-table tbody th { width: 49%; padding: 22px 16px 22px 0; font-weight: 400; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); }
.price-table tbody td { padding: 23px 10px; text-align: right; vertical-align: top; border-bottom: 1px solid var(--line); }
.price-table tbody tr:last-child > * { border-bottom: 0; }
.price-service-name { display: block; font-size: 19px; line-height: 1.3; font-weight: 600; letter-spacing: -.025em; }
.price-unit { display: block; margin-top: 5px; font-size: 13px; color: var(--muted); }
.price-value { white-space: nowrap; }
.price-from { font-size: 12px; color: var(--muted); }
.price-amount { font-size: clamp(16px, 1.5vw, 23px); letter-spacing: -.04em; font-weight: 600; }
.price-quote { display: block; color: var(--muted); font-size: 14px; line-height: 1.3; }
.price-mobile-class { display: none; }
.price-row-details { margin-top: 10px; font-size: 14px; font-weight: 400; }
.price-row-details summary { display: inline-flex; gap: 8px; align-items: center; min-height: 32px; color: var(--muted); cursor: pointer; list-style: none; }
.price-row-details summary::-webkit-details-marker { display: none; }
.price-row-details summary::after { content: "+"; }
.price-row-details[open] summary::after { content: "−"; }
.price-row-details[open] summary { color: var(--ink); }
.price-row-details p { margin-top: 8px; color: var(--muted); line-height: 1.55; }
.price-row-details .price-clarification { color: var(--ink); padding-left: 12px; border-left: 2px solid var(--brand-accent); }
.price-row-details .text-link { margin-top: 10px; font-size: 13px; color: var(--brand-link); }
.price-conditions { margin-top: 24px; }
.price-conditions > summary { display: flex; gap: 24px; justify-content: space-between; align-items: center; cursor: pointer; list-style: none; font-size: 15px; padding-block: 14px; border-bottom: 1px solid var(--line); }
.price-conditions > summary::-webkit-details-marker { display: none; }
.price-conditions > summary::after { content: "+"; font-size: 20px; }
.price-conditions[open] > summary::after { content: "−"; }
.price-conditions-body { padding: 20px; background: var(--stone); }
.price-conditions-body h3 { margin-bottom: 10px; font-size: 19px; letter-spacing: -.02em; }
.price-conditions-body h3:not(:first-child) { margin-top: 24px; }
.price-conditions-body p { margin-top: 12px; color: var(--muted); font-size: 14px; line-height: 1.6; }
.price-category-bottom { display: flex; gap: 24px; justify-content: space-between; align-items: center; margin-top: 24px; }
.price-category-bottom p { max-width: 570px; font-size: 13px; color: var(--muted); }
.price-category-bottom .text-link { flex-shrink: 0; font-size: 14px; color: var(--brand-link); }
.service-prices { border-top: 1px solid var(--line); padding-block: clamp(40px,5vw,80px); }
.service-prices > .container { max-width: 1250px; }
.service-prices-heading { display: flex; justify-content: space-between; align-items: end; gap: 36px; margin-bottom: 30px; }
.service-prices-heading > .text-link { flex-shrink: 0; margin-bottom: 6px; }
.service-prices .price-tools { margin-bottom: 32px; }
.service-prices .price-class-picker { max-width: 760px; }
.service-prices .price-intro { max-width: 940px; }
.service-prices .price-table thead th:first-child, .service-prices .price-table tbody th { width: 48%; }
.service-prices .price-amount { font-size: 24px; }
[data-pricing][data-selected-class]:not([data-selected-class="all"]) .price-table thead th:first-child,
[data-pricing][data-selected-class]:not([data-selected-class="all"]) .price-table tbody th { width: 72%; }
.hero-price { display: block; border-top: 1px solid var(--line-dark); padding-top: 16px; margin-top: 22px; text-decoration: none; }
.hero-price-amount { display: block; color: var(--paper); font-size: 28px; letter-spacing: -.04em; line-height: 1.15; }
.hero-price-label { display: block; max-width: 350px; margin-top: 7px; color: var(--muted-light); font-size: 12px; line-height: 1.5; }
.hero-price-link { display: inline-block; margin-top: 9px; font-size: 13px; color: var(--brand-light); }
.hero-price:hover .hero-price-link { text-decoration: underline; }
.home-prices-link { margin-top: 16px; padding-block: 18px; border-top: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.home-prices-link p { color: var(--muted); font-size: 14px; }
.home-prices-link .text-link { color: var(--brand-link); }
.price-contact-address { margin-top: 20px; color: var(--muted-light); font-size: 14px; font-style: normal; line-height: 1.6; }
@media (max-width: 1200px) {
  .site-nav { gap: 20px; }
  .header-actions .location { display: none; }
  .price-layout { grid-template-columns: 180px minmax(0,1fr); gap: 32px; }
  .price-table thead th, .price-table tbody td { padding-inline: 8px; }
  .price-category-heading { align-items: start; flex-direction: column; gap: 8px; }
}
@media (max-width: 980px) {
  .price-hero-heading { gap: 32px; grid-template-columns: 1.4fr 1fr; }
  .price-layout { grid-template-columns: 1fr; gap: 32px; }
  .price-sidebar { position: static; }
  .price-directory { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0 24px; }
  .price-sidebar-note { display: none; }
  .price-tools { margin-bottom: 36px; }
  .price-category-heading { flex-direction: row; align-items: baseline; }
  .hero-aside { flex-wrap: wrap; }
  .hero-price { width: 100%; margin-top: 0; }
}
@media (max-width: 700px) {
  .price-hero { padding-bottom: 28px; }
  .price-hero-heading { grid-template-columns: 1fr; gap: 24px; padding-block: 32px 28px; }
  .price-hero h1 { font-size: clamp(58px,12vw,84px); }
  .price-hero-aside { justify-self: start; max-width: 100%; padding: 0; }
  .price-hero-aside p { font-size: 17px; max-width: 440px; margin-bottom: 20px; }
  .price-hero-meta { flex-direction: column; gap: 6px; font-size: 12px; }
  .price-catalog { padding-block: 24px 40px; }
  .price-directory { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 18px; }
  .price-directory a { font-size: 14px; padding-block: 13px; gap: 8px; min-height: 46px; }
  .price-directory a span { min-width: 16px; font-size: 10px; }
  .price-class-picker { grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: 14px; }
  .price-class-choice span { font-size: 13px; min-height: 46px; }
  .price-class-choice:nth-child(2) span { border-right: 1px solid var(--line); }
  .price-class-choice:nth-child(n+3) span { border-top: 0; }
  .price-vehicle-classes { grid-template-columns: 1fr; gap: 16px; padding: 18px; }
  .price-category + .price-category { margin-top: 40px; padding-top: 32px; }
  .price-category-heading { flex-direction: column; gap: 8px; margin-bottom: 14px; }
  .price-category h2 { font-size: 34px; }
  .price-intro p { font-size: 14px; }
  .price-category-meta { gap: 10px; flex-wrap: wrap; }
  .price-group > summary { padding-block: 18px; gap: 18px; }
  .price-group > summary h3 { font-size: 21px; }
  .price-table, .price-table tbody { display: block; width: 100%; }
  .price-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .price-table tbody tr { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); padding: 18px 0 20px; border-top: 1px solid var(--line); gap: 16px 4px; }
  .price-table tbody th, .service-prices .price-table tbody th { display: block; width: 100%; grid-column: 1/-1; padding: 0; border: 0; }
  .price-table tbody td { display: block; border: 0; padding: 0 4px 0 0; text-align: left; min-width: 0; }
  .price-service-name { font-size: 18px; }
  .price-mobile-class { display: block; color: var(--muted); font-size: 12px; margin-bottom: 5px; }
  .price-value { display: flex; flex-direction: column; gap: 1px; }
  .price-from { font-size: 10px; }
  .price-amount, .service-prices .price-amount { font-size: clamp(15px,4.4vw,22px); }
  .price-quote { font-size: 13px; }
  .price-row-details { font-size: 14px; }
  .price-row-details summary { min-height: 36px; }
  .price-category-bottom { flex-direction: column; align-items: start; gap: 16px; }
  .price-category-bottom .text-link { min-height: 44px; }
  .price-conditions-body { padding: 16px; }
  .service-prices-heading { display: block; margin-bottom: 24px; }
  .service-prices-heading > .text-link { margin-top: 14px; }
  [data-pricing][data-selected-class]:not([data-selected-class="all"]) .price-table tbody tr { grid-template-columns: minmax(0,1fr) 104px; gap: 16px; }
  [data-pricing][data-selected-class]:not([data-selected-class="all"]) .price-table tbody th { grid-column: auto; width: 100%; }
  [data-pricing][data-selected-class]:not([data-selected-class="all"]) .price-table tbody td { text-align: right; padding: 0; }
  [data-pricing][data-selected-class]:not([data-selected-class="all"]) .price-amount { font-size: 20px; }
  .hero-price { margin-top: 4px; }
  .hero-price-amount { font-size: 27px; }
  .home-prices-link { flex-direction: column; align-items: start; gap: 10px; }
}
@media print {
  .price-sidebar, .price-class-picker, .price-row-details .text-link, .price-category-bottom .text-link { display: none !important; }
  .price-layout { display: block; }
  .price-category { break-inside: avoid; }
}
