.price-summary {
    border-bottom: 1px solid var(--border-default);
    background: var(--brand-mist);
}

.price-summary__layout {
    display: grid;
    grid-template-columns: minmax(0, 8fr) minmax(320px, 4fr);
    align-items: center;
    gap: var(--space-10);
    padding-block: var(--space-8);
}

.price-summary__facts {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.price-summary__facts > div {
    display: grid;
    gap: var(--space-1);
    padding-inline: var(--space-6);
    border-left: 1px solid var(--border-strong);
}

.price-summary__facts > div:first-child {
    padding-left: 0;
    border-left: 0;
}

.price-summary dt {
    color: var(--text-secondary);
    font-size: var(--type-small);
}

.price-summary dd {
    margin: 0;
    font-size: 22px;
    font-weight: var(--weight-semibold);
}

.price-summary__layout > p {
    padding-left: var(--space-6);
    border-left: 4px solid var(--brand-primary);
    color: var(--text-secondary);
    line-height: 1.55;
    text-wrap: balance;
}

.price-catalog {
    padding-block: var(--section-space);
    background: var(--surface-subtle);
}

.price-catalog__layout {
    display: grid;
    grid-template-columns: minmax(260px, 3fr) minmax(0, 9fr);
    align-items: start;
    gap: var(--space-10);
}

.price-tools {
    position: sticky;
    top: calc(var(--site-header-height) + var(--space-6));
    display: grid;
    gap: var(--space-8);
}

.price-search {
    display: grid;
    gap: var(--space-3);
    padding: var(--space-6);
    border: 1px solid var(--border-default);
    border-top: 4px solid var(--brand-primary);
    border-radius: var(--radius-card);
    background: var(--surface-page);
}

.price-search > label {
    font-size: var(--type-small);
    font-weight: var(--weight-semibold);
}

.price-search__control {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    border-bottom: 2px solid var(--brand-primary);
}

.price-search input {
    min-width: 0;
    min-height: var(--control-height);
    padding: var(--space-3) 0;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--text-primary);
    font: inherit;
}

.price-search input:focus {
    box-shadow: inset 0 -2px 0 var(--brand-strong);
}

.price-search button {
    border: 0;
    background: transparent;
    color: var(--brand-strong);
    font: inherit;
    font-size: var(--type-small);
    font-weight: var(--weight-semibold);
    cursor: pointer;
}

.price-search__status {
    color: var(--text-secondary);
    font-size: var(--type-small);
}

.price-nav {
    display: grid;
    gap: var(--space-4);
}

.price-nav ul {
    display: grid;
    border-top: 1px solid var(--border-default);
    list-style: none;
}

.price-nav a {
    display: flex;
    min-height: 52px;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    padding-block: var(--space-3);
    border-bottom: 1px solid var(--border-default);
}

.price-nav a:hover {
    color: var(--brand-strong);
}

.price-nav strong {
    color: var(--brand-primary);
    font-size: var(--type-small);
}

.price-sections {
    display: grid;
    gap: var(--space-20);
    min-width: 0;
}

.price-section {
    min-width: 0;
    scroll-margin-top: calc(var(--site-header-height) + var(--space-6));
}

.price-section__header {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: var(--space-8);
    margin-bottom: var(--space-8);
    padding-bottom: var(--space-6);
    border-bottom: 1px solid var(--border-strong);
}

.price-section__header > div {
    display: grid;
    gap: var(--space-3);
}

.price-section__header > span {
    flex: 0 0 auto;
    color: var(--brand-strong);
    font-weight: var(--weight-semibold);
}

.price-groups {
    display: grid;
    gap: var(--space-4);
}

.price-group {
    border: 1px solid var(--border-default);
    border-radius: var(--radius-card);
    background: var(--surface-page);
    overflow: clip;
}

.price-group > summary {
    display: flex;
    min-height: 72px;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-6);
    padding: var(--space-5) var(--space-6);
    cursor: pointer;
    font-size: 20px;
    font-weight: var(--weight-semibold);
    list-style: none;
}

.price-group > summary::-webkit-details-marker {
    display: none;
}

.price-group > summary::after {
    content: "+";
    display: grid;
    width: 32px;
    height: 32px;
    flex: 0 0 32px;
    place-items: center;
    border: 1px solid var(--border-strong);
    border-radius: 50%;
    color: var(--brand-strong);
}

.price-group[open] > summary::after {
    content: "−";
}

.price-group > summary strong {
    margin-left: auto;
    color: var(--brand-primary);
    font-size: var(--type-small);
}

.price-table {
    --price-columns: minmax(120px, 1.8fr) minmax(64px, 0.8fr) minmax(300px, 7.4fr) minmax(120px, 1.3fr);
    border-top: 1px solid var(--border-default);
}

.price-table--visits {
    --price-columns: minmax(120px, 1.6fr) minmax(64px, 0.7fr) minmax(280px, 6.4fr) minmax(90px, 1fr) minmax(120px, 1.3fr);
}

.price-row {
    display: grid;
    grid-template-columns: var(--price-columns);
    align-items: center;
    gap: var(--space-4);
    min-height: 66px;
    padding: var(--space-3) var(--space-6);
    border-top: 1px solid var(--border-default);
}

.price-row:first-child {
    border-top: 0;
}

.price-row--head {
    min-height: 44px;
    background: var(--surface-muted);
    color: var(--text-secondary);
    font-size: var(--type-caption);
    font-weight: var(--weight-semibold);
    text-transform: uppercase;
}

.price-row--head > span:last-child,
.price-row__price {
    justify-self: end;
    text-align: right;
}

.price-row__code,
.price-row__number,
.price-row__visits {
    color: var(--text-secondary);
    font-size: var(--type-small);
}

.price-row__name {
    line-height: 1.45;
}

.price-row__price {
    color: var(--text-primary);
    white-space: nowrap;
}

.price-row--discount {
    background: var(--brand-mist);
}

.price-row--discount .price-row__name {
    color: var(--brand-strong);
    font-weight: var(--weight-medium);
}

.price-notes {
    margin-top: var(--space-5);
    padding: var(--space-5) var(--space-6);
    border-left: 4px solid var(--brand-primary);
    background: var(--surface-page);
}

.price-notes summary {
    cursor: pointer;
    font-weight: var(--weight-semibold);
}

.price-notes ul {
    display: grid;
    gap: var(--space-3);
    margin-top: var(--space-4);
    padding-left: 1.2em;
    color: var(--text-secondary);
}

.price-empty {
    display: grid;
    gap: var(--space-4);
    padding: var(--space-10);
    border-left: 4px solid var(--brand-primary);
    background: var(--surface-page);
}

.price-empty p {
    color: var(--text-secondary);
}

.price-empty[hidden],
[data-price-row][hidden],
[data-price-group][hidden],
[data-price-section][hidden],
[data-price-nav-item][hidden] {
    display: none !important;
}

@media (max-width: 1199px) {
    .price-summary__layout,
    .price-catalog__layout {
        grid-template-columns: 1fr;
    }

    .price-tools {
        position: static;
    }

    .price-nav ul {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0 var(--space-6);
    }
}

@media (max-width: 840px) {
    .price-summary__facts {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .price-summary__facts > div:nth-child(3) {
        padding-top: var(--space-4);
        padding-left: 0;
        border-left: 0;
    }

    .price-summary__facts > div:nth-child(4) {
        padding-top: var(--space-4);
    }

    .price-summary__layout > p {
        padding-top: var(--space-2);
    }

    .price-row--head {
        display: none;
    }

    .price-row,
    .price-table--visits .price-row {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: var(--space-2) var(--space-4);
        padding-block: var(--space-4);
    }

    .price-row__name {
        grid-column: 1;
        grid-row: 1;
        font-weight: var(--weight-medium);
    }

    .price-row__price {
        grid-column: 2;
        grid-row: 1;
        align-self: start;
    }

    .price-row__code,
    .price-row__number,
    .price-row__visits {
        display: inline-flex;
        grid-column: 1 / -1;
        gap: var(--space-2);
    }

    .price-row__code::before,
    .price-row__number::before,
    .price-row__visits::before {
        content: attr(data-label) ":";
        font-weight: var(--weight-semibold);
    }
}

@media (max-width: 639px) {
    .price-summary__layout {
        padding-block: var(--space-6);
    }

    .price-summary__facts > div {
        padding-inline: var(--space-4);
    }

    .price-summary dd {
        font-size: 19px;
    }

    .price-catalog {
        padding-block: var(--space-12);
    }

    .price-nav ul {
        grid-template-columns: 1fr;
    }

    .price-sections {
        gap: var(--space-16);
    }

    .price-section__header {
        align-items: start;
        flex-direction: column;
        gap: var(--space-3);
    }

    .price-group > summary {
        min-height: 64px;
        padding: var(--space-4);
        font-size: 18px;
    }

    .price-row {
        padding-inline: var(--space-4);
    }

    .price-row__price {
        font-size: 15px;
    }
}
