/* ==========================================================================
   PRICES
   ========================================================================== */

.prices-section {
    
    
    }

.prices-shell {
    max-width: none;
    padding: 0;
}


/* ==========================================================================
   HEADING
   ========================================================================== */

.prices-heading {
    margin: 0;
    padding: 0 0 var(--section-heading-gap);
}

.prices-heading h2 {
    margin: 0;
    padding: 0;
    line-height: 1.2;
}

.prices-heading p {
    max-width: 1050px;
    margin: 12px 0 0;
    color: var(--color-secondary-text);
    font-size: var(--font-size-lead);
    line-height: 1.5;
}


/* ==========================================================================
   TABLE
   ========================================================================== */

.prices-table {
    width: 100%;
    border: 0;
}

.prices-table__head {
    display: none !important;
}

.prices-row {
    min-height: 112px;

    display: grid;
    grid-template-columns:
        minmax(420px, 1.15fr)
        minmax(180px, .42fr)
        minmax(420px, 1.2fr);

    align-items: center;
    gap: clamp(30px, 4vw, 72px);

    padding: 18px 0;

    border: 0;
    border-bottom: 1px solid rgba(0, 0, 0, .09);
}

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

.prices-row:last-child {
    border-bottom: 0;
}


/* ==========================================================================
   SERVICE
   ========================================================================== */

.prices-service {
    min-width: 0;

    display: flex;
    align-items: center;
    gap: 24px;
}

.prices-service img {
    width: var(--icon-size);
    height: var(--icon-size);
    flex: 0 0 var(--icon-size);

    display: block;

    object-fit: contain;
    object-position: center;
}

.prices-service__link {
    min-width: 0;

    color: #1d1d1d;

    font-size: 21px;
    font-weight: 600;
    line-height: 1.3;

    text-decoration: none;
}

.prices-service__link::after {
    content: " →";
    color: var(--color-primary);
    white-space: nowrap;
}

.prices-service__link:hover {
    color: var(--color-primary);
}


/* ==========================================================================
   PRICE
   ========================================================================== */

.prices-value {
    color: var(--color-heading);

    font-size: 21px;
    font-weight: 600;

    white-space: nowrap;
}


/* ==========================================================================
   DESCRIPTION
   ========================================================================== */

.prices-description {
    max-width: 620px;

    color: var(--color-secondary-text);

    font-size: 17px;
    line-height: 1.5;
}


/* ==========================================================================
   CALCULATOR CTA
   ========================================================================== */

.prices-calculator {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 32px;

    margin-top: 30px;
    padding: 26px 30px;

    border: 0;
    border-radius: 16px;

    background: color-mix(in srgb, var(--color-primary) 8.5%, transparent);
}

.prices-calculator__content {
    min-width: 0;

    display: flex;
    align-items: center;

    gap: 20px;
}

.prices-calculator__icon {
    width: var(--icon-size-large);
    height: var(--icon-size-large);
    flex: 0 0 var(--icon-size-large);

    display: grid;
    place-items: center;
}

.prices-calculator__icon img {
    width: var(--icon-size-large);
    height: var(--icon-size-large);

    display: block;
    object-fit: contain;
}

.prices-calculator__text {
    min-width: 0;

    display: flex;
    flex-direction: column;

    gap: 4px;
}

.prices-calculator__text strong {
    color: var(--color-text);

    font-size: 22px;
    font-weight: 650;
    line-height: 1.25;
}

.prices-calculator__text > span {
    color: var(--color-secondary-text);

    font-size: 16px;
    line-height: 1.45;
}

.prices-calculator > a {
    flex: 0 0 auto;

    min-height: 52px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 10px;

    padding: 0 24px;

    border-radius: 10px;

    background: var(--color-primary);
    color: var(--color-white);

    font-size: 15px;
    font-weight: 650;

    text-decoration: none;
}

.prices-calculator > a span {
    color: inherit;
}

.prices-calculator > a:hover {
    background: var(--color-primary-dark);
}


/* ==========================================================================
   MOBILE
   ========================================================================== */

@media (max-width: 760px) {

    /*
       Такой же внешний отступ, как у services-container:
       services-container = padding: 0 20px
    */
    .prices-shell {
        padding: 0;
    }


    /* Heading */

    .prices-heading {
        padding: 0 0 var(--section-heading-gap-mobile);
    }

    .prices-heading h2 {
        padding: 0;
        line-height: 1.15;
    }

    .prices-heading p {
        margin-top: 10px;

        font-size: 16px;
        line-height: 1.45;
    }


    /* Rows */

    .prices-row {
        min-height: 0;

        grid-template-columns: 42px minmax(0, 1fr) auto;
        grid-template-rows: auto auto;

        column-gap: 12px;
        row-gap: 5px;

        padding: 15px 0;

        border: 0;
        border-bottom: 1px solid rgba(0, 0, 0, .09);
    }

    .prices-row:last-child {
        border-bottom: 0;
    }


    /*
       На mobile убираем wrapper .prices-service
       из layout, чтобы иконка и название стали
       нормальными grid-элементами строки.
    */
    .prices-service {
        display: contents;
    }


    /* Icon */

    .prices-service img {
        grid-column: 1;
        grid-row: 1 / 3;

        align-self: center;
        justify-self: center;

        width: var(--icon-size-mobile);
        height: var(--icon-size-mobile);
        flex: none;

        margin: 0;
    }


    /* Service name */

    .prices-service__link {
        grid-column: 2;
        grid-row: 1;

        align-self: end;

        font-size: 14px;
        line-height: 1.3;
    }


    /* Price */

    .prices-value {
        grid-column: 3;
        grid-row: 1;

        align-self: end;

        padding-left: 6px;

        font-size: 14px;
        line-height: 1.3;

        text-align: right;
    }


    /* Description */

    .prices-description {
        grid-column: 2 / 4;
        grid-row: 2;

        max-width: none;

        padding: 0;

        color: var(--color-text-subtle);

        font-size: 11px;
        line-height: 1.35;
    }


    /* Calculator */

    .prices-calculator {
        flex-direction: column;
        align-items: stretch;

        gap: 17px;

        margin-top: 22px;
        padding: 20px 18px;
    }

    .prices-calculator__content {
        gap: 14px;
    }

    .prices-calculator__icon {
        width: var(--icon-size-large-mobile);
        height: var(--icon-size-large-mobile);
        flex-basis: var(--icon-size-large-mobile);
    }

    .prices-calculator__icon img {
        width: var(--icon-size-large-mobile);
        height: var(--icon-size-large-mobile);
    }

    .prices-calculator__text strong {
        font-size: 18px;
    }

    .prices-calculator__text > span {
        font-size: 13px;
    }

    .prices-calculator > a {
        width: 100%;
        min-height: 48px;
    }
}


/* ==========================================================================
   SMALL MOBILE
   ========================================================================== */

@media (max-width: 390px) {

    .prices-section {
        padding-inline: 20px;
    }

    .prices-heading h2 {
        font-size: var(--font-size-section-title-small);
    }

    .prices-row {
        grid-template-columns: 38px minmax(0, 1fr) auto;
        column-gap: 9px;
    }

    .prices-service img {
        width: var(--icon-size-narrow);
        height: var(--icon-size-narrow);
    }

    .prices-service__link,
    .prices-value {
        font-size: 13px;
    }

    .prices-description {
        font-size: 10.5px;
    }
}

/* ==========================================================================
   SERVICE
   ========================================================================== */

.prices-service {
    grid-column: 1;

    min-width: 0;

    display: flex;
    align-items: center;
    gap: 24px;
}


/* ==========================================================================
   PRICE
   ========================================================================== */

.prices-value {
    grid-column: 2;

    margin: 0;
    padding: 0;

    color: var(--color-heading);

    font-size: 21px;
    font-weight: 600;
    line-height: 1.3;

    white-space: nowrap;
}


/* ==========================================================================
   DESCRIPTION
   ========================================================================== */

.prices-description {
    grid-column: 3;

    min-width: 0;
    max-width: 620px;

    margin: 0;
    padding: 0;

    color: var(--color-secondary-text);

    font-size: 17px;
    line-height: 1.5;
}

.prices-service {
    grid-column: 1;
    grid-row: 1;

    min-width: 0;

    display: flex;
    align-items: center;
    gap: 24px;
}

.prices-value {
    grid-column: 2;
    grid-row: 1;

    margin: 0;
    padding: 0;

    color: var(--color-heading);

    font-size: 21px;
    font-weight: 600;
    line-height: 1.3;

    white-space: nowrap;
}

.prices-description {
    grid-column: 3;
    grid-row: 1;

    min-width: 0;
    max-width: 620px;

    margin: 0;
    padding: 0;

    color: var(--color-secondary-text);

    font-size: 17px;
    line-height: 1.5;
}

/* ==========================================================================
   MOBILE
   ========================================================================== */

@media (max-width: 760px) {
    .prices-shell {
        padding: 0;
    }


    /* Heading */

    .prices-heading {
        padding: 0 0 var(--section-heading-gap-mobile);
    }

    .prices-heading h2 {
        margin: 0;
        padding: 0;

        line-height: 1.15;
    }

    .prices-heading p {
        margin: 10px 0 0;

        font-size: 16px;
        line-height: 1.45;
    }


    /* ==============================================================
       ROW
       ============================================================== */

    .prices-row {
        min-height: 0;

        display: grid;

        grid-template-columns: 42px minmax(0, 1fr) auto;
        grid-template-rows: auto auto;

        column-gap: 12px;
        row-gap: 5px;

        align-items: center;

        margin: 0;
        padding: 15px 0;

        border: 0;
        border-bottom: 1px solid rgba(0, 0, 0, .09);
    }

    .prices-row:last-child {
        border-bottom: 0;
    }


    /* ==============================================================
       SERVICE
       ============================================================== */

    .prices-service {
        grid-column: auto;
        grid-row: auto;

        display: contents;
    }


    /* Icon */

    .prices-service img {
        grid-column: 1;
        grid-row: 1 / 3;

        align-self: center;
        justify-self: center;

        width: var(--icon-size-mobile);
        height: var(--icon-size-mobile);
        min-width: 0;
        flex: none;

        margin: 0;
    }


    /* ВАЖНО: сам H3 является grid-item из-за display: contents */

    .prices-service__title {
        grid-column: 2;
        grid-row: 1;

        min-width: 0;

        align-self: end;

        margin: 0;
        padding: 0;
    }

    .prices-service__link {
        display: inline;

        min-width: 0;

        font-size: 14px;
        font-weight: 600;
        line-height: 1.3;
    }


    /* Price */

    .prices-value {
        grid-column: 3;
        grid-row: 1;

        min-width: max-content;

        align-self: end;

        margin: 0;
        padding: 0 0 0 6px;

        font-size: 14px;
        font-weight: 600;
        line-height: 1.3;

        text-align: right;
        white-space: nowrap;
    }


    /* Description */

    .prices-description {
        grid-column: 2 / 4;
        grid-row: 2;

        min-width: 0;
        max-width: none;

        align-self: start;

        margin: 0;
        padding: 0;

        color: var(--color-text-subtle);

        font-size: 11px;
        line-height: 1.35;
    }


    /* ==============================================================
       CALCULATOR
       ============================================================== */

    .prices-calculator {
        flex-direction: column;
        align-items: stretch;

        gap: 17px;

        margin-top: 22px;
        padding: 20px 18px;
    }

    .prices-calculator__content {
        min-width: 0;
        gap: 14px;
    }

    .prices-calculator__icon {
        width: var(--icon-size-large-mobile);
        height: var(--icon-size-large-mobile);
        flex-basis: var(--icon-size-large-mobile);
    }

    .prices-calculator__icon img {
        width: var(--icon-size-large-mobile);
        height: var(--icon-size-large-mobile);
    }

    .prices-calculator__text {
        min-width: 0;
    }

    .prices-calculator__text strong {
        font-size: 18px;
    }

    .prices-calculator__text > span {
        font-size: 13px;
    }

    .prices-calculator > a {
        width: 100%;
        min-height: 48px;
    }
}

/* ==========================================================================
   TABLET
   ========================================================================== */

@media (min-width: 761px) and (max-width: 1100px) {

    .prices-row {
        min-height: 96px;

        grid-template-columns:
            minmax(260px, 1.15fr)
            minmax(100px, .42fr)
            minmax(280px, 1.2fr);

        gap: 24px;

        padding: 16px 0;
    }

    .prices-service {
        gap: 16px;
    }

    .prices-service img {
        width: var(--icon-size);
        height: var(--icon-size);
        flex-basis: var(--icon-size);
    }

    .prices-service__link {
        font-size: 16px;
    }

    .prices-value {
        font-size: 16px;
    }

    .prices-description {
        max-width: none;
        font-size: 14px;
        line-height: 1.45;
    }

    .prices-heading h2 {
        }

    .prices-heading p {
        font-size: 16px;
    }
}

/* SBORKA — prices: compact cards, clear typographic hierarchy */
.prices-shell { max-width: none; padding: 0; }
.prices-heading { margin: 0; padding: 0 0 var(--section-heading-gap); }
.prices-heading h2 { margin: 0; font-size: 38px; line-height: 1.2; }
.prices-heading p { max-width: 1050px; margin: 12px 0 0; color: var(--color-secondary-text); font-size: var(--font-size-lead); line-height: 1.5; }

/* Cards — desktop */
.prices-table { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; width: 100%; max-width: none; margin: 0; }
.prices-row { display: block; min-width: 0; min-height: 0; margin: 0; padding: 0; border: 1px solid rgba(0,0,0,.09); border-radius: 11px; background: transparent; overflow: hidden; transition: border-color .2s; }
.prices-row:hover { border-color: var(--color-primary); }
.prices-card-link { box-sizing: border-box; display: grid; grid-template-columns: 44px minmax(0,1fr); grid-template-rows: auto auto; align-items: center; align-content: start; column-gap: 12px; row-gap: 5px; min-width: 0; height: 100%; padding: 12px; color: inherit; text-decoration: none; }
.prices-card-link:focus-visible { outline: 2px solid var(--color-primary); outline-offset: -2px; border-radius: 11px; }
.prices-card-icon { display: block; grid-column: 1; grid-row: 1; width: 44px; height: 44px; object-fit: contain; }
.prices-card-title { display: block; grid-column: 2; grid-row: 1; min-width: 0; margin: 0; color: var(--color-text); font-size: 17px; font-weight: 650; line-height: 1.25; overflow-wrap: normal; word-break: normal; hyphens: none; }
.prices-card-bottom { display: flex; grid-column: 1 / -1; grid-row: 2; align-items: center; justify-content: flex-end; gap: 5px; min-width: 0; width: 100%; margin: 0; padding: 0; border: 0; text-align: right; }
.prices-value { display: inline; position: static; margin: 0; padding: 0; color: var(--color-text-secondary); font-size: 13px; font-weight: 500; line-height: 1.3; white-space: nowrap; }
.prices-value strong { font-weight: inherit; }
.prices-card-arrow { color: var(--color-primary); font-size: 15px; }

/* Calculator CTA — kept as before */
.prices-calculator { display: flex; align-items: center; justify-content: space-between; gap: 32px; margin-top: 30px; padding: 26px 30px; border-radius: 16px; background: color-mix(in srgb, var(--color-primary) 8.5%, transparent); }
.prices-calculator__content { min-width: 0; display: flex; align-items: center; gap: 20px; }
.prices-calculator__icon { width: var(--icon-size-large); height: var(--icon-size-large); flex: 0 0 var(--icon-size-large); display: grid; place-items: center; }
.prices-calculator__icon img { display: block; width: 100%; height: 100%; object-fit: contain; }
.prices-calculator__text { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.prices-calculator__text strong { color: var(--color-text); font-size: 22px; font-weight: 650; line-height: 1.25; }
.prices-calculator__text > span { color: var(--color-secondary-text); font-size: 16px; line-height: 1.45; }
.prices-calculator > a { flex: 0 0 auto; min-height: 52px; display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 0 24px; border-radius: 10px; background: var(--color-primary); color: var(--color-white); font-size: 15px; font-weight: 650; text-decoration: none; }
.prices-calculator > a:hover { background: var(--color-primary-dark); }

@media (min-width: 1101px) and (max-width: 1350px) {
  .prices-table { grid-template-columns: repeat(5, minmax(0,1fr)); }
}
@media (min-width: 761px) and (max-width: 1100px) {
  .prices-table { grid-template-columns: repeat(3, minmax(0,1fr)); }
}

/* Mobile: keep existing 2-column layout, spacing and icon positions */
@media (max-width: 760px) {
  .prices-heading { padding-bottom: var(--section-heading-gap-mobile); }
  .prices-heading h2 { font-size: 32px; line-height: 1.15; }
  .prices-heading p { margin-top: 10px; font-size: 16px; }
  .prices-table { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; max-width: none; }
  .prices-card-link { height: auto; min-height: 0; grid-template-columns: 36px minmax(0,1fr); grid-template-rows: auto auto; padding: 7px 8px; column-gap: 7px; row-gap: 6px; }
  .prices-card-icon { width: 32px; height: 32px; }
  .prices-card-title { font-size: 15px; font-weight: 650; }
  .prices-value { font-size: 13px; font-weight: 500; color: var(--color-text-secondary); }
  .prices-card-arrow { font-size: 14px; }
  .prices-calculator { flex-direction: column; align-items: stretch; gap: 17px; margin-top: 22px; padding: 20px 18px; }
  .prices-calculator__content { gap: 10px; }
  .prices-calculator__icon { width: var(--icon-size-large-mobile); height: var(--icon-size-large-mobile); flex-basis: var(--icon-size-large-mobile); }
  .prices-calculator__text strong { font-size: 18px; }
  .prices-calculator__text > span { font-size: 13px; }
  .prices-calculator > a { width: 100%; min-height: 48px; }
}
@media (max-width: 360px) {
  .prices-card-link { padding: 8px; grid-template-columns: 25px minmax(0,1fr); column-gap: 6px; }
  .prices-card-icon { width: 25px; height: 25px; }
  .prices-card-title { font-size: 14px; }
}
@media (prefers-reduced-motion: reduce) { .prices-row { transition: none; } }

/* Restore complete borders for the first and last price cards */
.prices-table > .prices-row:first-child,
.prices-table > .prices-row:last-child {
    border: 1px solid rgba(0, 0, 0, .09);
}