:root {
    --accent: #F57C00;
    --accent-dark: #111111;
    --fire: #FF7A00;
    --dark: #111111;
    --text: #111111;
    --muted: #626262;
    --line: #D9D9D9;
    --soft: #F5F5F5;
    --bg: #ffffff;
}

.page-section:has(.prices-page) {
    padding-top: 26px;
    background: #f5f5f5;
}

.page-section:has(.prices-page) > .container {
    max-width: none;
    width: 100%;
    padding: 0;
}

.page-section:has(.prices-page) .breadcrumbs {
    max-width: 1180px;
    margin: 0 auto 18px;
    padding: 0 18px;
}

.page-section:has(.prices-page) .page-content {
    width: 100%;
}

.prices-page {
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 18px 72px;
    color: #111;
}

.prices-page h1,
.prices-page h2,
.prices-page h3,
.prices-page p {
    margin-top: 0;
}

.prices-page h1 {
    max-width: 800px;
    margin-bottom: 18px;
    font-size: clamp(34px, 5vw, 58px);
    line-height: 1.04;
    letter-spacing: -0.04em;
}

.prices-page h2 {
    font-size: clamp(28px, 4vw, 42px);
    line-height: 1.12;
    letter-spacing: -0.03em;
}

.prices-page h3 {
    font-size: 22px;
    line-height: 1.2;
}

.prices-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(280px, 0.7fr);
    gap: 24px;
    align-items: stretch;
    margin-bottom: 34px;
}

.prices-hero__card,
.prices-side,
.prices-table-card,
.prices-note,
.prices-faq article {
    border: 1px solid rgba(217, 217, 217, 0.75);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 16px 42px rgba(17, 17, 17, 0.08);
}

.prices-hero__card {
    position: relative;
    overflow: hidden;
    padding: 38px;
}

.prices-hero__card::after {
    position: absolute;
    top: -90px;
    right: -90px;
    width: 230px;
    height: 230px;
    border-radius: 50%;
    background: rgba(255, 122, 0, 0.12);
    content: "";
}

.prices-hero__card > * {
    position: relative;
    z-index: 1;
}

.prices-kicker {
    display: inline-flex;
    gap: 8px;
    align-items: center;
    margin-bottom: 18px;
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(255, 122, 0, 0.12);
    color: #f57c00;
    font-size: 13px;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.prices-lead {
    max-width: 760px;
    margin-bottom: 26px;
    color: #555;
    font-size: 18px;
}

.prices-actions,
.prices-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
}

.prices-btn {
    display: inline-flex;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    padding: 13px 18px;
    border: 1px solid transparent;
    border-radius: 14px;
    font-weight: 900;
    text-decoration: none;
}

.prices-btn--primary {
    background: #f57c00;
    color: #fff;
}

.prices-btn--primary:hover {
    background: #db6d00;
}

.prices-btn--light {
    border-color: #d9d9d9;
    background: #fff;
    color: #111;
}

.prices-side {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 18px;
    padding: 26px;
}

.prices-checklist {
    display: grid;
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.prices-checklist li {
    display: grid;
    grid-template-columns: 24px 1fr;
    gap: 10px;
    color: #555;
}

.prices-checklist li::before {
    display: grid;
    width: 24px;
    height: 24px;
    place-items: center;
    border-radius: 50%;
    background: rgba(245, 124, 0, 0.12);
    color: #f57c00;
    content: "\2713";
    font-weight: 900;
}

.prices-section-head {
    display: flex;
    gap: 18px;
    align-items: end;
    justify-content: space-between;
    margin: 44px 0 18px;
}

.prices-section-head p {
    max-width: 560px;
    color: #555;
}

.prices-tabs {
    margin-bottom: 18px;
}

.prices-tab {
    padding: 10px 14px;
    border: 1px solid #d9d9d9;
    border-radius: 999px;
    background: #fff;
    color: #555;
    font-weight: 900;
}

.prices-tab:first-child {
    border-color: #111;
    background: #111;
    color: #fff;
}

.prices-grid {
    display: grid;
    gap: 18px;
}

.prices-table-card {
    overflow: hidden;
}

.prices-table-card__head {
    display: flex;
    gap: 16px;
    align-items: center;
    justify-content: space-between;
    padding: 22px 24px;
    border-bottom: 1px solid #d9d9d9;
    background: #fff8f1;
}

.prices-table-card__head span {
    color: #666;
    font-size: 14px;
    text-align: right;
}

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

.prices-table tr:not(:last-child) {
    border-bottom: 1px solid #e5e5e5;
}

.prices-table td {
    padding: 18px 24px;
    vertical-align: top;
}

.prices-table strong {
    display: block;
    margin-bottom: 4px;
    color: #111;
}

.prices-table span {
    color: #666;
    font-size: 14px;
}

.prices-table b {
    display: block;
    color: #f57c00;
    font-size: 17px;
    text-align: right;
    white-space: nowrap;
}

.prices-notes,
.prices-faq {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    margin-top: 28px;
}

.prices-note,
.prices-faq article {
    padding: 22px;
}

.prices-note p,
.prices-faq p {
    color: #555;
}

.prices-cta {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 20px;
    align-items: center;
    margin-top: 38px;
    padding: 32px;
    border-radius: 24px;
    background: #111;
    color: #fff;
}

.prices-cta h2 {
    color: #fff;
}

.prices-cta p {
    color: rgba(255, 255, 255, 0.76);
}

.prices-cta .prices-btn {
    background: #fff;
    color: #111;
}

.prices-faq {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-bottom: 0;
}

@media (max-width: 860px) {
    .prices-hero,
    .prices-notes,
    .prices-faq,
    .prices-cta {
        grid-template-columns: 1fr;
    }

    .prices-section-head {
        align-items: start;
        flex-direction: column;
    }

    .prices-hero__card {
        padding: 28px;
    }

    .prices-table-card__head {
        align-items: flex-start;
        flex-direction: column;
    }

    .prices-table td {
        display: block;
        padding: 16px 18px 6px;
    }

    .prices-table td:last-child {
        padding-top: 0;
        padding-bottom: 18px;
    }

    .prices-table b {
        text-align: left;
    }
}

/* Reviews page */
.reviews-page {
    --rv-black: #111111;
    --rv-orange: #F57C00;
    --rv-orange-light: #FF7A00;
    --rv-white: #FFFFFF;
    --rv-gray-bg: #F5F5F5;
    --rv-gray-line: #D9D9D9;
    --rv-gray-soft: #EDEDED;
    --rv-text-gray: #666666;
    --rv-radius: 22px;
    --rv-shadow: 0 14px 40px rgba(17, 17, 17, 0.08);
    width: min(1200px, calc(100% - 32px));
    margin: 0 auto;
    color: var(--rv-black);
    font-family: Inter, Arial, sans-serif;
}

.page-section:has(.reviews-page) {
    padding-top: 0;
    background: #F5F5F5;
}

.page-section:has(.reviews-page) > .container {
    width: 100%;
    max-width: none;
    padding: 0;
}

.page-section:has(.reviews-page) .page-content {
    margin-top: 0;
}

.reviews-page-body .page-section {
    padding-top: 0;
    background: #F5F5F5;
}

.reviews-page-body .page-section > .container {
    width: 100%;
    max-width: none;
    padding: 0;
}

.reviews-page-body .breadcrumbs {
    width: min(1200px, calc(100% - 32px));
    margin: 0 auto;
    padding-top: 18px;
    padding-bottom: 12px;
}

.reviews-page-body .page-content {
    margin-top: 0;
}

.reviews-page h1,
.reviews-page h2,
.reviews-page h3,
.reviews-page p {
    margin-top: 0;
}

.reviews-page h1 {
    max-width: 820px;
    margin-bottom: 22px;
    color: var(--rv-black);
    font-size: clamp(36px, 5.4vw, 62px);
    line-height: 1.04;
    letter-spacing: -0.04em;
}

.reviews-page h2 {
    margin-bottom: 14px;
    color: var(--rv-black);
    font-size: clamp(28px, 4vw, 44px);
    line-height: 1.12;
    letter-spacing: -0.03em;
}

.reviews-page h3 {
    color: var(--rv-black);
    font-size: 21px;
    line-height: 1.2;
}

.rv-breadcrumbs {
    display: flex;
    gap: 8px;
    align-items: center;
    padding: 24px 0 18px;
    color: var(--rv-text-gray);
    font-size: 14px;
}

.rv-breadcrumbs a {
    color: var(--rv-orange);
    text-decoration: none;
}

.rv-hero,
.rv-section,
.rv-platform,
.rv-review,
.rv-work,
.rv-videos article,
.rv-service-grid button,
.rv-benefits article,
.rv-form,
.rv-modal__content {
    border: 1px solid rgba(217, 217, 217, 0.72);
    background: var(--rv-white);
    box-shadow: var(--rv-shadow);
}

.rv-hero {
    display: grid;
    grid-template-columns: 1.15fr 0.85fr;
    gap: 24px;
    align-items: stretch;
    margin-bottom: 28px;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.rv-hero__content,
.rv-rating-card {
    border: 1px solid rgba(217, 217, 217, 0.72);
    border-radius: 28px;
    background: var(--rv-white);
    box-shadow: var(--rv-shadow);
}

.rv-hero__content {
    padding: clamp(28px, 4vw, 46px);
}

.rv-hero__content p {
    max-width: 780px;
    color: #444;
    font-size: 18px;
}

.rv-kicker {
    margin-bottom: 10px;
    color: var(--rv-orange);
    font-size: 13px;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.rv-actions,
.rv-trust,
.rv-card-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
}

.rv-actions {
    margin-top: 26px;
}

.rv-btn,
.rv-card-actions a,
.rv-card-actions button,
.rv-platform a,
.rv-work button {
    display: inline-flex;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 999px;
    padding: 0 22px;
    font: inherit;
    font-weight: 900;
    text-decoration: none;
    cursor: pointer;
}

.rv-btn--primary,
.rv-card-actions a,
.rv-platform a,
.rv-work button {
    background: var(--rv-orange);
    color: #fff;
}

.rv-btn--light,
.rv-card-actions button {
    border: 1px solid var(--rv-gray-line);
    background: #fff;
    color: var(--rv-black);
}

.rv-trust {
    margin-top: 24px;
}

.rv-trust span {
    border-radius: 999px;
    background: rgba(245, 124, 0, 0.1);
    padding: 8px 12px;
    color: #9a4d00;
    font-size: 14px;
    font-weight: 800;
}

.rv-rating-card {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 34px;
}

.rv-stars {
    color: var(--rv-orange);
    letter-spacing: 0.08em;
}

.rv-rating-card strong {
    margin: 10px 0 4px;
    color: var(--rv-black);
    font-size: 46px;
    line-height: 1;
}

.rv-rating-card p,
.rv-head p,
.rv-review p,
.rv-platform p,
.rv-work p,
.rv-videos p,
.rv-benefits p,
.rv-section--dark p {
    color: var(--rv-text-gray);
}

.rv-rating-card dl {
    display: grid;
    gap: 12px;
    margin: 26px 0 0;
}

.rv-rating-card dl div {
    border-radius: 18px;
    background: var(--rv-gray-bg);
    padding: 14px;
}

.rv-rating-card dt {
    color: var(--rv-orange);
    font-weight: 900;
}

.rv-rating-card dd {
    margin: 2px 0 0;
    color: var(--rv-text-gray);
}

.rv-section {
    margin: 28px 0;
    border-radius: 28px;
    padding: clamp(28px, 5vw, 52px);
}

.rv-section--compact {
    padding-top: 38px;
    padding-bottom: 38px;
}

.rv-section--soft {
    background: #fff;
}

.rv-head {
    max-width: 820px;
    margin-bottom: 28px;
}

.rv-platforms,
.rv-gallery,
.rv-benefits {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.rv-platform,
.rv-work,
.rv-benefits article,
.rv-videos article {
    border-radius: var(--rv-radius);
    padding: 22px;
}

.rv-platform span,
.rv-benefits span {
    display: grid;
    width: 48px;
    height: 48px;
    place-items: center;
    border-radius: 16px;
    background: rgba(245, 124, 0, 0.12);
    color: var(--rv-orange);
    font-weight: 900;
}

.rv-platform b {
    display: block;
    margin-bottom: 8px;
    color: var(--rv-orange);
}

.rv-filter {
    display: flex;
    gap: 10px;
    margin-bottom: 22px;
    overflow-x: auto;
    padding-bottom: 8px;
}

.rv-filter button {
    flex: 0 0 auto;
    min-height: 42px;
    border: 1px solid var(--rv-gray-line);
    border-radius: 999px;
    background: #fff;
    padding: 0 16px;
    font: inherit;
    font-weight: 800;
    cursor: pointer;
}

.rv-filter button.is-active {
    border-color: var(--rv-orange);
    background: var(--rv-orange);
    color: #fff;
}

.rv-reviews {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.rv-review {
    border-radius: var(--rv-radius);
    padding: 24px;
}

.rv-review[hidden] {
    display: none;
}

.rv-review__top {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
    color: var(--rv-text-gray);
    font-size: 14px;
}

.rv-source {
    margin-bottom: 14px;
    color: var(--rv-text-gray);
    font-size: 14px;
}

.rv-facts {
    display: grid;
    gap: 8px;
    margin-bottom: 16px;
    border-radius: 18px;
    background: var(--rv-gray-bg);
    padding: 16px;
}

.rv-facts span {
    color: #333;
}

.rv-before-after {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 18px 0;
}

.rv-before-after div,
.rv-work__image,
.rv-video-placeholder,
.rv-videos button {
    display: grid;
    min-height: 150px;
    place-items: center;
    border-radius: 18px;
    background:
        linear-gradient(135deg, rgba(17, 17, 17, 0.82), rgba(245, 124, 0, 0.62)),
        repeating-linear-gradient(45deg, #dedede 0 12px, #f4f4f4 12px 24px);
    color: #fff;
    font-weight: 900;
    text-align: center;
}

.rv-before-after--large div {
    min-height: 220px;
}

.rv-answer {
    margin: 18px 0;
    border-left: 4px solid var(--rv-orange);
    border-radius: 14px;
    background: #fff7ef;
    padding: 14px;
    color: #4a321f;
}

.rv-gallery {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.rv-work__image {
    margin: -2px -2px 18px;
}

.rv-videos {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.rv-videos button {
    width: 100%;
    margin-bottom: 18px;
    border: 0;
    font-size: 42px;
    cursor: pointer;
}

.rv-service-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.rv-service-grid button {
    display: grid;
    gap: 8px;
    border-radius: 20px;
    padding: 20px;
    text-align: left;
    font: inherit;
    cursor: pointer;
}

.rv-service-grid b {
    font-size: 18px;
}

.rv-service-grid span {
    color: var(--rv-text-gray);
}

.rv-benefits {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.rv-benefits span {
    margin-bottom: 16px;
}

.rv-section--dark {
    display: grid;
    grid-template-columns: 0.95fr 1.05fr;
    gap: 28px;
    align-items: center;
    border-color: #111;
    background: var(--rv-black);
}

.rv-section--dark h2,
.rv-section--dark .rv-kicker {
    color: #fff;
}

.rv-section--dark p,
.rv-section--dark li {
    color: rgba(255, 255, 255, 0.82);
}

.rv-section--dark ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.rv-section--dark li {
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.08);
    padding: 14px;
}

.rv-section--dark li::before {
    content: "\2713";
    margin-right: 8px;
    color: var(--rv-orange);
    font-weight: 900;
}

.rv-form-layout {
    display: grid;
    grid-template-columns: 0.9fr 1.1fr;
    gap: 28px;
    align-items: start;
}

.rv-form {
    display: grid;
    gap: 12px;
    border-radius: 24px;
    padding: 24px;
}

.rv-form input,
.rv-form select,
.rv-form textarea {
    width: 100%;
    min-height: 52px;
    border: 1px solid var(--rv-gray-line);
    border-radius: 16px;
    padding: 0 15px;
    font: inherit;
}

.rv-form textarea {
    min-height: 118px;
    padding-top: 14px;
    resize: vertical;
}

.rv-checkbox {
    display: flex;
    gap: 10px;
    color: var(--rv-text-gray);
    font-size: 14px;
}

.rv-success {
    border-radius: 14px;
    background: #eef9ef;
    padding: 12px;
    color: #246b2c;
    font-weight: 800;
}

.rv-cta {
    border-color: var(--rv-black);
    background:
        radial-gradient(circle at 88% 16%, rgba(245, 124, 0, 0.28), transparent 30%),
        var(--rv-black);
    color: #fff;
}

.rv-cta h2,
.rv-cta p {
    color: #fff;
}

.rv-form--inline {
    grid-template-columns: 1fr 1fr;
    border-color: rgba(255, 255, 255, 0.16);
    background: rgba(255, 255, 255, 0.08);
}

.rv-form--inline textarea,
.rv-form--inline button,
.rv-form--inline .rv-success {
    grid-column: 1 / -1;
}

.rv-faq {
    display: grid;
    gap: 12px;
}

.rv-faq article {
    border: 1px solid var(--rv-gray-line);
    border-radius: 18px;
    background: #fff;
}

.rv-faq button {
    display: flex;
    width: 100%;
    justify-content: space-between;
    gap: 16px;
    border: 0;
    background: transparent;
    padding: 20px;
    color: var(--rv-black);
    font: inherit;
    font-weight: 900;
    text-align: left;
    cursor: pointer;
}

.rv-faq p {
    display: none;
    margin: 0;
    padding: 0 20px 20px;
    color: var(--rv-text-gray);
}

.rv-faq article.is-open p {
    display: block;
}

.rv-modal {
    position: fixed;
    inset: 0;
    z-index: 120;
    display: grid;
    place-items: center;
    background: rgba(17, 17, 17, 0.62);
    padding: 18px;
}

.rv-modal[hidden] {
    display: none !important;
}

.rv-modal__content {
    position: relative;
    width: min(680px, 100%);
    max-height: calc(100vh - 36px);
    overflow: auto;
    border-radius: 26px;
    padding: 28px;
}

.rv-modal__content > button[data-reviews-close] {
    position: absolute;
    top: 14px;
    right: 14px;
    width: 38px;
    height: 38px;
    border: 0;
    border-radius: 50%;
    background: var(--rv-black);
    color: #fff;
    font-size: 22px;
    cursor: pointer;
}

@media (max-width: 1080px) {
    .rv-hero,
    .rv-section--dark,
    .rv-form-layout {
        grid-template-columns: 1fr;
    }

    .rv-platforms,
    .rv-benefits {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .rv-service-grid,
    .rv-gallery {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .reviews-page {
        width: min(100% - 24px, 1200px);
    }

    .rv-breadcrumbs {
        padding-top: 16px;
        font-size: 13px;
    }

    .rv-hero__content,
    .rv-rating-card,
    .rv-section {
        border-radius: 22px;
    }

    .rv-section {
        margin: 18px 0;
        padding: 24px 16px;
    }

    .rv-platforms,
    .rv-reviews,
    .rv-gallery,
    .rv-videos,
    .rv-service-grid,
    .rv-benefits,
    .rv-section--dark ul,
    .rv-form--inline {
        grid-template-columns: 1fr;
    }

    .rv-form--inline textarea,
    .rv-form--inline button,
    .rv-form--inline .rv-success {
        grid-column: auto;
    }

    .rv-review__top,
    .rv-actions,
    .rv-card-actions {
        align-items: flex-start;
        flex-direction: column;
    }

    .rv-btn,
    .rv-card-actions a,
    .rv-card-actions button,
    .rv-platform a,
    .rv-work button {
        width: 100%;
    }
}

/* Contacts conversion page. */
.contacts-page {
    --contacts-black: #111111;
    --contacts-orange: #f57c00;
    --contacts-orange-bright: #ff7a00;
    --contacts-white: #ffffff;
    --contacts-light: #f5f5f5;
    --contacts-line: #d9d9d9;
    --contacts-muted: #666666;
    color: var(--contacts-black);
}

.contacts-page h1,
.contacts-page h2,
.contacts-page h3 {
    color: var(--contacts-black);
    line-height: 1.14;
    letter-spacing: 0;
}

.contacts-page h1 {
    margin: 0 0 18px;
    font-size: clamp(38px, 5vw, 62px);
}

.contacts-page h2 {
    margin: 0 0 14px;
    font-size: clamp(28px, 4vw, 44px);
}

.contacts-page h3 {
    margin: 0 0 10px;
    font-size: 20px;
}

.contacts-page p {
    margin: 0;
}

.contacts-hero {
    display: grid;
    grid-template-columns: 1.08fr 0.92fr;
    gap: 34px;
    align-items: stretch;
    padding: 42px 0 70px;
}

.contacts-kicker {
    display: inline-flex;
    margin-bottom: 12px;
    color: var(--contacts-orange);
    font-size: 13px;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.contacts-lead {
    max-width: 780px;
    color: var(--contacts-muted);
    font-size: 19px;
}

.contacts-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 24px;
}

.contacts-btn {
    display: inline-flex;
    min-height: 50px;
    align-items: center;
    justify-content: center;
    border: 2px solid transparent;
    border-radius: 999px;
    padding: 12px 22px;
    font: inherit;
    font-weight: 900;
    text-decoration: none;
    cursor: pointer;
    transition: 0.22s ease;
}

.contacts-btn:hover {
    transform: translateY(-2px);
}

.contacts-btn--primary {
    color: #fff;
    background: var(--contacts-orange);
    box-shadow: 0 12px 28px rgba(245, 124, 0, 0.28);
}

.contacts-btn--primary:hover {
    background: var(--contacts-orange-bright);
}

.contacts-btn--dark {
    color: #fff;
    background: var(--contacts-black);
}

.contacts-btn--light {
    color: var(--contacts-black);
    border-color: var(--contacts-line);
    background: #fff;
}

.contacts-badges {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 28px;
}

.contacts-badges span {
    display: flex;
    gap: 9px;
    border: 1px solid var(--contacts-line);
    border-radius: 16px;
    padding: 12px 14px;
    background: #fff;
    font-weight: 800;
}

.contacts-badges span::before {
    content: "\2713";
    flex: 0 0 22px;
    display: grid;
    width: 22px;
    height: 22px;
    place-items: center;
    border-radius: 50%;
    background: var(--contacts-orange);
    color: #fff;
    font-size: 12px;
}

.contacts-now,
.contacts-card,
.contacts-hint,
.contacts-review,
.contacts-details,
.contacts-faq details,
.contacts-modal__box {
    border: 1px solid rgba(217, 217, 217, 0.78);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 14px 36px rgba(17, 17, 17, 0.08);
}

.contacts-now {
    display: grid;
    gap: 12px;
    align-content: start;
    padding: 30px;
    background:
        radial-gradient(circle at 88% 18%, rgba(245, 124, 0, 0.13), transparent 34%),
        #fff;
}

.contacts-now a,
.contacts-now p {
    border-bottom: 1px solid var(--contacts-line);
    padding-bottom: 10px;
    color: var(--contacts-black);
    text-decoration: none;
}

.contacts-now a:last-of-type,
.contacts-now p:last-child {
    border-bottom: 0;
}

.contacts-section {
    padding: 72px 0;
}

.contacts-section--soft {
    margin-right: calc(50% - 50vw);
    margin-left: calc(50% - 50vw);
    padding-right: calc(50vw - 50%);
    padding-left: calc(50vw - 50%);
    background: var(--contacts-light);
}

.contacts-head {
    max-width: 820px;
    margin-bottom: 32px;
}

.contacts-head > p:not(.contacts-kicker),
.contacts-card p,
.contacts-review p,
.contacts-form-layout p,
.contacts-zone p,
.contacts-final p,
.contacts-faq p {
    color: var(--contacts-muted);
    font-size: 16px;
}

.contacts-grid {
    display: grid;
    gap: 20px;
}

.contacts-grid--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

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

.contacts-card,
.contacts-review {
    display: flex;
    flex-direction: column;
    padding: 24px;
}

.contacts-card > span {
    width: 52px;
    height: 52px;
    display: grid;
    place-items: center;
    margin-bottom: 16px;
    border-radius: 16px;
    color: var(--contacts-orange);
    background: rgba(245, 124, 0, 0.12);
    font-weight: 900;
}

.contacts-card strong {
    margin-top: 12px;
    color: var(--contacts-orange);
    font-size: 18px;
}

.contacts-card .contacts-btn {
    margin-top: auto;
}

.contacts-link {
    width: fit-content;
    margin-top: auto;
    border: 0;
    padding: 16px 0 0;
    color: var(--contacts-orange);
    background: transparent;
    font: inherit;
    font-weight: 900;
    cursor: pointer;
}

.contacts-form-layout,
.contacts-zone {
    display: grid;
    grid-template-columns: 1.05fr 0.95fr;
    gap: 28px;
    align-items: start;
}

.contacts-form {
    display: grid;
    gap: 13px;
    margin-top: 24px;
}

.contacts-form__row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 13px;
}

.contacts-form input,
.contacts-form select,
.contacts-form textarea {
    width: 100%;
    min-height: 50px;
    border: 1px solid var(--contacts-line);
    border-radius: 14px;
    padding: 12px 14px;
    background: #fff;
    color: var(--contacts-black);
    font: inherit;
}

.contacts-form textarea {
    min-height: 110px;
    resize: vertical;
}

.contacts-file {
    display: grid;
    gap: 7px;
    color: var(--contacts-black);
    font-weight: 800;
}

.contacts-file small {
    color: var(--contacts-muted);
    font-weight: 400;
}

.contacts-check {
    display: flex;
    gap: 9px;
    align-items: flex-start;
    color: var(--contacts-muted);
    font-size: 13px;
}

.contacts-check input {
    width: auto;
    min-height: auto;
    margin-top: 4px;
}

.contacts-success {
    border-radius: 14px;
    padding: 12px 14px;
    color: #12642b;
    background: #dcf7e3;
    font-weight: 800;
}

.contacts-hint {
    padding: 28px;
    color: #fff;
    background: var(--contacts-black);
}

.contacts-hint h3 {
    color: #fff;
}

.contacts-hint ul {
    display: grid;
    gap: 10px;
    margin: 16px 0 22px;
    padding: 0;
    list-style: none;
}

.contacts-hint li {
    color: rgba(255, 255, 255, 0.86);
}

.contacts-hint li,
.contacts-hint li p,
.contacts-hint li span {
    color: rgba(255, 255, 255, 0.88);
}

.contacts-hint li::before {
    content: "\2713";
    margin-right: 8px;
    color: var(--contacts-orange);
    font-weight: 900;
}

.contacts-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 22px 0;
}

.contacts-tags span {
    border: 1px solid var(--contacts-line);
    border-radius: 999px;
    padding: 9px 13px;
    background: #fff;
    font-weight: 800;
}

.contacts-map {
    min-height: 360px;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 12px;
    border-radius: 28px;
    padding: 30px;
    color: #fff;
    text-align: center;
    background:
        linear-gradient(135deg, rgba(17, 17, 17, 0.9), rgba(245, 124, 0, 0.68)),
        repeating-linear-gradient(45deg, #d9d9d9 0 12px, #ededed 12px 24px);
}

.contacts-map strong {
    font-size: 26px;
}

.contacts-steps {
    counter-reset: contactsStep;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.contacts-steps article {
    counter-increment: contactsStep;
    border: 1px solid var(--contacts-line);
    border-radius: 22px;
    padding: 24px;
    background: #fff;
    box-shadow: 0 14px 36px rgba(17, 17, 17, 0.07);
}

.contacts-steps article::before {
    content: "0" counter(contactsStep);
    display: grid;
    width: 46px;
    height: 46px;
    place-items: center;
    margin-bottom: 16px;
    border-radius: 14px;
    color: #fff;
    background: var(--contacts-orange);
    font-weight: 900;
}

.contacts-review span {
    color: var(--contacts-orange);
    font-weight: 900;
    letter-spacing: 0.06em;
}

.contacts-review b {
    margin-bottom: 12px;
    color: var(--contacts-muted);
}

.contacts-gallery {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.contacts-gallery button {
    min-height: 150px;
    border: 0;
    border-radius: 22px;
    padding: 20px;
    color: #fff;
    background:
        linear-gradient(135deg, rgba(17, 17, 17, 0.82), rgba(245, 124, 0, 0.68)),
        repeating-linear-gradient(45deg, #d9d9d9 0 12px, #ededed 12px 24px);
    font: inherit;
    font-size: 20px;
    font-weight: 900;
    cursor: pointer;
}

.contacts-gallery button:nth-child(1),
.contacts-gallery button:nth-child(2) {
    grid-column: span 2;
}

.contacts-details {
    padding: 22px;
}

.contacts-details summary {
    cursor: pointer;
    font-size: 22px;
    font-weight: 900;
}

.contacts-details table {
    width: 100%;
    margin-top: 18px;
    border-collapse: collapse;
}

.contacts-details td {
    border-top: 1px solid var(--contacts-line);
    padding: 12px 8px;
}

.contacts-details td:first-child {
    color: var(--contacts-muted);
    font-weight: 800;
}

.contacts-faq {
    display: grid;
    gap: 12px;
    max-width: 940px;
}

.contacts-faq details {
    padding: 18px 20px;
}

.contacts-faq summary {
    cursor: pointer;
    font-size: 18px;
    font-weight: 900;
}

.contacts-faq p {
    margin-top: 12px;
}

.contacts-final {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 24px;
    align-items: center;
    border-radius: 30px;
    padding: 38px;
    color: #fff;
    background:
        radial-gradient(circle at 82% 18%, rgba(245, 124, 0, 0.32), transparent 30%),
        var(--contacts-black);
}

.contacts-final h2 {
    color: #fff;
}

.contacts-final p {
    max-width: 720px;
    color: rgba(255, 255, 255, 0.74);
}

.contacts-mobile-bar {
    display: none;
}

.contacts-modal {
    position: fixed;
    inset: 0;
    z-index: 100;
    display: grid;
    place-items: center;
    padding: 20px;
    background: rgba(17, 17, 17, 0.62);
}

.contacts-modal[hidden] {
    display: none;
}

.contacts-modal__box {
    position: relative;
    width: min(540px, 100%);
    padding: 30px;
}

.contacts-modal__box > button {
    position: absolute;
    top: 12px;
    right: 14px;
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 50%;
    background: var(--contacts-light);
    font-size: 24px;
    cursor: pointer;
}

.contacts-form--modal {
    margin-top: 18px;
}

@media (max-width: 1080px) {
    .contacts-hero,
    .contacts-form-layout,
    .contacts-zone,
    .contacts-final {
        grid-template-columns: 1fr;
    }

    .contacts-grid--4,
    .contacts-steps,
    .contacts-gallery {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .contacts-hero {
        padding-top: 24px;
        padding-bottom: 52px;
    }

    .contacts-page h1 {
        font-size: 38px;
    }

    .contacts-section {
        padding: 54px 0;
    }

    .contacts-section--soft {
        margin-right: 0;
        margin-left: 0;
        padding-right: 0;
        padding-left: 0;
    }

    .contacts-actions,
    .contacts-badges,
    .contacts-grid--3,
    .contacts-grid--4,
    .contacts-steps,
    .contacts-gallery,
    .contacts-form__row {
        grid-template-columns: 1fr;
    }

    .contacts-actions {
        display: grid;
    }

    .contacts-gallery button,
    .contacts-gallery button:nth-child(1),
    .contacts-gallery button:nth-child(2) {
        grid-column: auto;
    }

    .contacts-final {
        padding: 28px 20px;
        border-radius: 24px;
    }

    .contacts-mobile-bar {
        position: fixed;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 90;
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 6px;
        padding: 8px;
        background: var(--contacts-black);
        box-shadow: 0 -14px 38px rgba(0, 0, 0, 0.24);
    }

    .contacts-mobile-bar a,
    .contacts-mobile-bar button {
        min-height: 42px;
        display: grid;
        place-items: center;
        border: 0;
        border-radius: 12px;
        color: #fff;
        background: rgba(255, 255, 255, 0.1);
        font: inherit;
        font-size: 13px;
        font-weight: 900;
        text-decoration: none;
    }

    .contacts-mobile-bar a:nth-child(2) {
        background: var(--contacts-orange);
    }

    .contacts-page {
        padding-bottom: 62px;
    }
}

/* About company landing page. */
.about-page {
    --about-black: #111111;
    --about-orange: #f57c00;
    --about-orange-bright: #ff7a00;
    --about-white: #ffffff;
    --about-light: #f5f5f5;
    --about-card: #ededed;
    --about-line: #d9d9d9;
    --about-muted: #666666;
    color: #222;
}

.about-page h1,
.about-page h2,
.about-page h3 {
    color: var(--about-black);
    line-height: 1.12;
    letter-spacing: 0;
}

.about-page h1 {
    font-size: clamp(38px, 5vw, 64px);
    margin: 0 0 18px;
}

.about-page h2 {
    font-size: clamp(30px, 4vw, 48px);
    margin: 0 0 16px;
}

.about-page h3 {
    font-size: 20px;
    margin: 0 0 10px;
}

.about-page p {
    margin: 0;
}

.about-hero {
    display: grid;
    grid-template-columns: 1.06fr 0.94fr;
    gap: 42px;
    align-items: center;
    padding: 46px 0 72px;
}

.about-kicker {
    display: inline-flex;
    margin-bottom: 12px;
    color: var(--about-orange);
    font-size: 13px;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.about-lead {
    max-width: 720px;
    margin-bottom: 18px;
    color: #333;
    font-size: 21px;
    font-weight: 700;
}

.about-hero__content > p:not(.about-kicker):not(.about-lead) {
    max-width: 740px;
    color: var(--about-muted);
    font-size: 18px;
}

.about-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 28px;
}

.about-actions--stack {
    display: grid;
    align-items: start;
}

.about-btn {
    display: inline-flex;
    min-height: 50px;
    align-items: center;
    justify-content: center;
    border: 2px solid transparent;
    border-radius: 999px;
    padding: 12px 22px;
    font-weight: 900;
    text-decoration: none;
    cursor: pointer;
    transition: 0.22s ease;
}

.about-btn:hover {
    transform: translateY(-2px);
}

.about-btn--primary {
    color: #fff;
    background: var(--about-orange);
    box-shadow: 0 12px 28px rgba(245, 124, 0, 0.28);
}

.about-btn--dark {
    color: #fff;
    background: var(--about-black);
}

.about-btn--light {
    color: var(--about-black);
    border-color: var(--about-line);
    background: #fff;
}

.about-badges {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 28px;
}

.about-badges span {
    display: flex;
    gap: 9px;
    align-items: flex-start;
    border: 1px solid var(--about-line);
    border-radius: 16px;
    padding: 12px 14px;
    background: #fff;
    font-weight: 800;
}

.about-badges span::before {
    content: "\2713";
    flex: 0 0 22px;
    display: grid;
    width: 22px;
    height: 22px;
    place-items: center;
    border-radius: 50%;
    background: var(--about-orange);
    color: #fff;
    font-size: 12px;
}

.about-hero__visual {
    position: relative;
    min-height: 510px;
    border-radius: 34px;
    overflow: hidden;
    background:
        radial-gradient(circle at 76% 16%, rgba(245, 124, 0, 0.36), transparent 32%),
        linear-gradient(135deg, #111 0%, #242424 55%, #090909 100%);
    box-shadow: 0 18px 48px rgba(17, 17, 17, 0.16);
}

.about-hero__visual::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255, 255, 255, 0.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.04) 1px, transparent 1px);
    background-size: 42px 42px;
}

.about-visual-card {
    position: absolute;
    inset: 34px 34px auto;
    z-index: 1;
    color: #fff;
}

.about-visual-card span {
    color: #ffd0a2;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 13px;
}

.about-visual-card strong {
    display: block;
    max-width: 360px;
    margin: 12px 0;
    color: #fff;
    font-size: 36px;
    line-height: 1.12;
}

.about-visual-card p {
    max-width: 360px;
    color: rgba(255, 255, 255, 0.74);
}

.about-photo-note {
    position: absolute;
    right: 28px;
    bottom: 28px;
    left: 28px;
    z-index: 2;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 22px;
    padding: 18px;
    color: #fff;
    background: rgba(17, 17, 17, 0.82);
}

.about-photo-note strong,
.about-photo-note span {
    display: block;
}

.about-photo-note strong {
    margin-bottom: 4px;
    font-size: 20px;
}

.about-photo-note span {
    color: rgba(255, 255, 255, 0.72);
}

.about-section {
    padding: 76px 0;
}

.about-section--soft {
    margin-right: calc(50% - 50vw);
    margin-left: calc(50% - 50vw);
    padding-right: calc(50vw - 50%);
    padding-left: calc(50vw - 50%);
    background: var(--about-light);
}

.about-section--dark {
    margin-right: calc(50% - 50vw);
    margin-left: calc(50% - 50vw);
    padding-right: calc(50vw - 50%);
    padding-left: calc(50vw - 50%);
    background: var(--about-black);
    color: #fff;
}

.about-section--dark h2,
.about-section--dark h3 {
    color: #fff;
}

.about-section--dark p {
    color: rgba(255, 255, 255, 0.72);
}

.about-head {
    max-width: 820px;
    margin-bottom: 34px;
}

.about-head > p:not(.about-kicker) {
    color: var(--about-muted);
    font-size: 17px;
}

.about-facts,
.about-grid {
    display: grid;
    gap: 20px;
}

.about-facts {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.about-grid--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.about-grid--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

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

.about-facts article,
.about-card,
.about-service,
.about-stack article,
.about-steps article,
.about-work,
.about-review,
.about-faq details,
.about-form,
.about-safety article {
    border: 1px solid rgba(217, 217, 217, 0.78);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 14px 36px rgba(17, 17, 17, 0.07);
}

.about-facts article,
.about-card,
.about-service,
.about-stack article,
.about-steps article,
.about-review,
.about-safety article {
    padding: 24px;
}

.about-facts b {
    display: block;
    margin-bottom: 8px;
    color: var(--about-black);
    font-size: 18px;
}

.about-facts p,
.about-card p,
.about-service p,
.about-stack p,
.about-steps p,
.about-work p,
.about-review p,
.about-safety p,
.about-faq p,
.about-form-wrap p {
    color: var(--about-muted);
}

.about-two-col,
.about-form-wrap,
.about-safety {
    display: grid;
    grid-template-columns: 0.95fr 1.05fr;
    gap: 36px;
    align-items: start;
}

.about-two-col > div > p + p {
    margin-top: 14px;
}

.about-stack {
    display: grid;
    gap: 14px;
}

.about-card,
.about-service,
.about-work {
    transition: 0.22s ease;
}

.about-card:hover,
.about-service:hover,
.about-work:hover {
    transform: translateY(-4px);
    border-color: rgba(245, 124, 0, 0.35);
}

.about-center {
    margin-top: 28px;
    text-align: center;
}

.about-service {
    display: flex;
    flex-direction: column;
    padding: 24px;
}

.about-service span,
.about-work span {
    width: fit-content;
    margin-bottom: 14px;
    border-radius: 999px;
    padding: 7px 10px;
    color: var(--about-orange);
    background: rgba(245, 124, 0, 0.12);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.about-service a {
    margin-top: auto;
    padding-top: 18px;
    color: var(--about-orange);
    font-weight: 900;
}

.about-cta {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 24px;
    align-items: center;
    border-radius: 30px;
    padding: 38px;
    color: #fff;
    background:
        radial-gradient(circle at 82% 18%, rgba(245, 124, 0, 0.32), transparent 30%),
        var(--about-black);
}

.about-cta h2 {
    color: #fff;
}

.about-cta p {
    max-width: 760px;
    color: rgba(255, 255, 255, 0.74);
}

.about-no-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.about-no-list li {
    border-radius: 16px;
    padding: 14px;
    color: rgba(255, 255, 255, 0.9);
    background: rgba(255, 255, 255, 0.08);
}

.about-section--dark .about-no-list li,
.about-section--dark .about-no-list li p,
.about-section--dark .about-no-list li span {
    color: rgba(255, 255, 255, 0.9);
}

.about-section--dark .about-card,
.about-section--dark .about-service,
.about-section--dark .about-promo,
.about-section--dark .about-review {
    color: #fff;
}

.about-no-list li::before {
    content: "\2713";
    margin-right: 8px;
    color: var(--about-orange);
    font-weight: 900;
}

.about-steps {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    counter-reset: aboutSteps;
}

.about-steps article {
    counter-increment: aboutSteps;
}

.about-steps article::before {
    content: counter(aboutSteps);
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    margin-bottom: 16px;
    border-radius: 14px;
    background: var(--about-orange);
    color: #fff;
    font-weight: 900;
}

.about-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 24px;
}

.about-filters button {
    border: 1px solid var(--about-line);
    border-radius: 999px;
    padding: 10px 15px;
    background: #fff;
    color: var(--about-black);
    font-weight: 800;
    cursor: pointer;
}

.about-filters button.is-active {
    border-color: var(--about-orange);
    background: var(--about-orange);
    color: #fff;
}

.about-work {
    overflow: hidden;
    padding-bottom: 22px;
}

.about-work > div {
    min-height: 200px;
    display: grid;
    place-items: center;
    margin-bottom: 20px;
    color: #fff;
    background:
        linear-gradient(135deg, rgba(17, 17, 17, 0.84), rgba(245, 124, 0, 0.68)),
        repeating-linear-gradient(45deg, #d9d9d9 0 12px, #ededed 12px 24px);
    font-size: 22px;
    font-weight: 900;
}

.about-work span,
.about-work h3,
.about-work p {
    margin-right: 22px;
    margin-left: 22px;
}

.about-safety {
    border-radius: 30px;
    padding: 34px;
    background: var(--about-black);
    color: #fff;
}

.about-safety h2,
.about-safety h3 {
    color: #fff;
}

.about-safety > div > p {
    color: rgba(255, 255, 255, 0.72);
}

.about-safety article {
    border-color: rgba(255, 255, 255, 0.12);
    background: rgba(255, 255, 255, 0.08);
    box-shadow: none;
}

.about-review span {
    display: block;
    margin-bottom: 12px;
    color: var(--about-orange);
    letter-spacing: 0.06em;
    font-weight: 900;
}

.about-faq {
    display: grid;
    gap: 12px;
    max-width: 940px;
}

.about-faq details {
    padding: 18px 20px;
}

.about-faq summary {
    cursor: pointer;
    color: var(--about-black);
    font-size: 18px;
    font-weight: 900;
}

.about-faq p {
    margin-top: 12px;
}

.about-form {
    display: grid;
    gap: 13px;
    padding: 28px;
}

.about-form__row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 13px;
}

.about-form input,
.about-form select,
.about-form textarea {
    width: 100%;
    min-height: 50px;
    border: 1px solid var(--about-line);
    border-radius: 14px;
    padding: 12px 14px;
    background: #fff;
    color: var(--about-black);
    font: inherit;
}

.about-form textarea {
    min-height: 112px;
    resize: vertical;
}

.about-check {
    display: flex;
    gap: 9px;
    align-items: flex-start;
    color: var(--about-muted);
    font-size: 13px;
}

.about-check input {
    width: auto;
    min-height: auto;
    margin-top: 4px;
}

.about-success {
    border-radius: 14px;
    padding: 12px 14px;
    color: #12642b;
    background: #dcf7e3;
    font-weight: 800;
}

.about-mobile-bar {
    display: none;
}

.about-popup {
    position: fixed;
    inset: 0;
    z-index: 100;
    display: grid;
    place-items: center;
    padding: 20px;
    background: rgba(17, 17, 17, 0.62);
}

.about-popup[hidden] {
    display: none;
}

.about-popup__card {
    position: relative;
    width: min(460px, 100%);
    border-radius: 26px;
    padding: 30px;
    background: #fff;
    box-shadow: 0 26px 90px rgba(0, 0, 0, 0.3);
}

.about-popup__card button {
    position: absolute;
    top: 12px;
    right: 14px;
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 50%;
    background: var(--about-light);
    font-size: 24px;
    cursor: pointer;
}

.about-popup__card p:not(.about-kicker) {
    color: var(--about-muted);
    margin-bottom: 18px;
}

@media (max-width: 1080px) {
    .about-hero,
    .about-two-col,
    .about-form-wrap,
    .about-safety,
    .about-cta {
        grid-template-columns: 1fr;
    }

    .about-facts,
    .about-grid--4,
    .about-steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .about-hero {
        padding-top: 26px;
        padding-bottom: 54px;
    }

    .about-page h1 {
        font-size: 38px;
    }

    .about-section {
        padding: 54px 0;
    }

    .about-section--soft,
    .about-section--dark {
        margin-right: 0;
        margin-left: 0;
        padding-right: 0;
        padding-left: 0;
    }

    .about-badges,
    .about-facts,
    .about-grid--2,
    .about-grid--3,
    .about-grid--4,
    .about-steps,
    .about-no-list,
    .about-form__row {
        grid-template-columns: 1fr;
    }

    .about-hero__visual {
        min-height: 390px;
        border-radius: 24px;
    }

    .about-visual-card {
        inset: 24px 24px auto;
    }

    .about-visual-card strong {
        font-size: 28px;
    }

    .about-photo-note {
        right: 18px;
        bottom: 18px;
        left: 18px;
    }

    .about-cta,
    .about-safety {
        padding: 26px 20px;
        border-radius: 24px;
    }

    .about-mobile-bar {
        position: fixed;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 90;
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 6px;
        padding: 8px;
        background: var(--about-black);
        box-shadow: 0 -14px 38px rgba(0, 0, 0, 0.24);
    }

    .about-mobile-bar a {
        min-height: 42px;
        display: grid;
        place-items: center;
        border-radius: 12px;
        background: rgba(255, 255, 255, 0.1);
        color: #fff;
        font-size: 13px;
        font-weight: 900;
        text-decoration: none;
    }

    .about-mobile-bar a:nth-child(2) {
        background: var(--about-orange);
    }

    .about-page {
        padding-bottom: 62px;
    }
}

/* Main homepage landing from TZ. Uses a separate prefix so service pages keep old home-* styles. */
.home .site-header {
    position: sticky;
    top: 0;
    z-index: 60;
    background: rgba(255, 255, 255, 0.96);
    backdrop-filter: blur(14px);
}

.front-page .breadcrumbs,
.main-home + .breadcrumbs {
    display: none;
}

.main-home {
    --mh-black: #111111;
    --mh-orange: #f57c00;
    --mh-orange-bright: #ff7a00;
    --mh-white: #ffffff;
    --mh-light: #f5f5f5;
    --mh-card: #ededed;
    --mh-line: #d9d9d9;
    --mh-text: #222222;
    --mh-muted: #666666;
    color: var(--mh-text);
    background: var(--mh-white);
    overflow: hidden;
}

.main-home h1,
.main-home h2,
.main-home h3 {
    color: var(--mh-black);
    line-height: 1.12;
    letter-spacing: 0;
}

.main-home h1 {
    color: var(--mh-white);
    font-size: clamp(34px, 5vw, 62px);
    margin: 0 0 22px;
}

.main-home h2 {
    font-size: clamp(28px, 4vw, 46px);
    margin: 0 0 16px;
}

.main-home h3 {
    font-size: 20px;
    margin: 0 0 10px;
}

.main-home p {
    margin: 0;
}

.mh-hero {
    position: relative;
    padding: 78px 0 70px;
    color: var(--mh-white);
    background:
        radial-gradient(circle at 78% 18%, rgba(245, 124, 0, 0.34), transparent 30%),
        linear-gradient(135deg, #111111 0%, #1e1e1e 52%, #090909 100%);
}

.mh-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255, 255, 255, 0.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px);
    background-size: 44px 44px;
    opacity: 0.5;
}

.mh-hero__grid {
    position: relative;
    display: grid;
    grid-template-columns: 1.08fr 0.92fr;
    gap: 44px;
    align-items: center;
}

.mh-eyebrow,
.mh-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--mh-orange);
    font-weight: 800;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.mh-eyebrow {
    padding: 9px 14px;
    margin-bottom: 18px;
    color: #ffd0a2;
    background: rgba(245, 124, 0, 0.15);
    border: 1px solid rgba(245, 124, 0, 0.35);
    border-radius: 999px;
}

.mh-lead {
    max-width: 720px;
    margin-bottom: 28px;
    color: rgba(255, 255, 255, 0.84);
    font-size: 19px;
}

.mh-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    align-items: center;
}

.mh-btn {
    display: inline-flex;
    min-height: 50px;
    align-items: center;
    justify-content: center;
    padding: 13px 22px;
    border: 2px solid transparent;
    border-radius: 999px;
    font-weight: 800;
    font-size: 15px;
    text-decoration: none;
    transition: 0.22s ease;
    cursor: pointer;
}

.mh-btn:hover {
    transform: translateY(-2px);
}

.mh-btn--primary {
    color: var(--mh-white);
    background: var(--mh-orange);
    box-shadow: 0 12px 28px rgba(245, 124, 0, 0.32);
}

.mh-btn--primary:hover {
    background: var(--mh-orange-bright);
}

.mh-btn--outline {
    color: var(--mh-white);
    border-color: rgba(255, 255, 255, 0.36);
    background: rgba(255, 255, 255, 0.08);
}

.mh-btn--ghost {
    color: var(--mh-white);
    border-color: rgba(255, 255, 255, 0.18);
    background: transparent;
}

.mh-hero__features {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 28px;
    max-width: 700px;
}

.mh-hero__features span {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    color: rgba(255, 255, 255, 0.88);
}

.mh-hero__features span::before {
    content: "\2713";
    flex: 0 0 24px;
    width: 24px;
    height: 24px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: var(--mh-white);
    background: var(--mh-orange);
    font-weight: 900;
    font-size: 13px;
}

.mh-hero__visual {
    position: relative;
    min-height: 430px;
    padding: 18px;
    border-radius: 34px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.16);
    box-shadow: 0 28px 80px rgba(0, 0, 0, 0.32);
}

.mh-hero__visual img {
    width: 100%;
    height: 430px;
    object-fit: cover;
    object-position: center;
    border-radius: 26px;
    background: #222;
}

.mh-hero__note {
    position: absolute;
    left: 36px;
    right: 36px;
    bottom: 36px;
    padding: 18px;
    color: var(--mh-white);
    background: rgba(17, 17, 17, 0.82);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 20px;
}

.mh-hero__note strong,
.mh-hero__note span {
    display: block;
}

.mh-hero__note strong {
    margin-bottom: 4px;
    font-size: 22px;
}

.mh-hero__note span {
    color: rgba(255, 255, 255, 0.72);
    font-size: 14px;
}

.mh-section {
    padding: 82px 0;
}

.mh-section--light {
    background: var(--mh-light);
}

.mh-section--dark {
    color: var(--mh-white);
    background: var(--mh-black);
}

.mh-section--dark h2,
.mh-section--dark h3 {
    color: var(--mh-white);
}

.mh-section__head {
    max-width: 820px;
    margin-bottom: 34px;
}

.mh-section__head p:not(.mh-kicker),
.mh-note,
.mh-seo p,
.mh-final p,
.mh-equipment p,
.mh-geo p {
    color: var(--mh-muted);
    font-size: 17px;
}

.mh-section--dark .mh-section__head p:not(.mh-kicker) {
    color: rgba(255, 255, 255, 0.72);
}

.mh-grid {
    display: grid;
    gap: 20px;
}

.mh-grid--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

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

.mh-grid--5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.mh-problem,
.mh-service,
.mh-benefit,
.mh-review,
.mh-work,
.mh-promo,
.mh-danger,
.mh-steps article,
.mh-calc,
.mh-faq details {
    border-radius: 22px;
    border: 1px solid rgba(217, 217, 217, 0.72);
    background: var(--mh-white);
    box-shadow: 0 14px 36px rgba(17, 17, 17, 0.08);
}

.mh-problem,
.mh-service,
.mh-benefit,
.mh-review,
.mh-promo,
.mh-danger,
.mh-steps article {
    padding: 24px;
}

.mh-problem,
.mh-service {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    transition: 0.22s ease;
}

.mh-problem:hover,
.mh-service:hover,
.mh-benefit:hover {
    transform: translateY(-4px);
    border-color: rgba(245, 124, 0, 0.38);
    box-shadow: 0 18px 44px rgba(17, 17, 17, 0.12);
}

.mh-problem span,
.mh-service b {
    width: fit-content;
    margin-bottom: 16px;
    padding: 7px 10px;
    color: var(--mh-orange);
    background: rgba(245, 124, 0, 0.12);
    border-radius: 999px;
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.mh-problem p,
.mh-service p,
.mh-benefit p,
.mh-review p,
.mh-work p,
.mh-steps p {
    color: var(--mh-muted);
}

.mh-problem a,
.mh-service a {
    margin-top: auto;
    padding-top: 18px;
    color: var(--mh-orange);
    font-weight: 900;
}

.mh-service strong {
    margin-top: 4px;
    color: var(--mh-black);
    font-size: 18px;
}

.mh-price-layout {
    display: grid;
    grid-template-columns: 1.08fr 0.92fr;
    gap: 28px;
    align-items: start;
}

.mh-price-table {
    margin-top: 22px;
    overflow: hidden;
    border-radius: 26px;
    border: 1px solid rgba(217, 217, 217, 0.72);
    background: var(--mh-white);
    box-shadow: 0 16px 40px rgba(17, 17, 17, 0.1);
}

.mh-price-table div {
    display: grid;
    grid-template-columns: 1fr 170px;
    gap: 18px;
    align-items: center;
    padding: 18px 22px;
    border-bottom: 1px solid rgba(217, 217, 217, 0.68);
}

.mh-price-table div:last-child {
    border-bottom: 0;
}

.mh-price-table span {
    font-weight: 800;
}

.mh-price-table strong {
    color: var(--mh-orange);
    text-align: right;
    font-size: 18px;
}

.mh-note {
    margin-top: 16px;
}

.mh-calc {
    display: grid;
    gap: 13px;
    padding: 28px;
    color: var(--mh-white);
    background: var(--mh-black);
    position: sticky;
    top: 112px;
}

.mh-calc h2 {
    color: var(--mh-white);
    margin-bottom: 4px;
}

.mh-calc label {
    display: grid;
    gap: 7px;
    color: rgba(255, 255, 255, 0.9);
    font-size: 13px;
    font-weight: 800;
}

.mh-calc input,
.mh-calc select,
.mh-calc textarea {
    width: 100%;
    min-height: 50px;
    padding: 12px 14px;
    border: 1px solid rgba(217, 217, 217, 0.75);
    border-radius: 14px;
    background: var(--mh-white);
    color: var(--mh-black);
    font: inherit;
}

.mh-calc textarea {
    min-height: 96px;
    resize: vertical;
}

.mh-policy {
    color: rgba(255, 255, 255, 0.58);
    font-size: 12px;
}

.mh-success {
    padding: 12px 14px;
    border-radius: 14px;
    color: #12642b;
    background: #dcf7e3;
    font-weight: 800;
}

.mh-danger,
.mh-promo {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.13);
    box-shadow: none;
}

.mh-danger h3,
.mh-promo h3 {
    color: var(--mh-white);
}

.mh-danger p,
.mh-promo p {
    color: rgba(255, 255, 255, 0.72);
}

.mh-danger::before,
.mh-promo::before {
    content: "";
    display: block;
    width: 36px;
    height: 4px;
    margin-bottom: 18px;
    border-radius: 999px;
    background: var(--mh-orange);
}

.mh-work {
    overflow: hidden;
}

.mh-work > div {
    min-height: 210px;
    display: grid;
    place-items: center;
    color: var(--mh-white);
    background:
        linear-gradient(135deg, rgba(17, 17, 17, 0.86), rgba(245, 124, 0, 0.72)),
        repeating-linear-gradient(45deg, #d9d9d9 0 12px, #ededed 12px 24px);
    font-weight: 900;
    font-size: 22px;
}

.mh-work section {
    padding: 22px;
}

.mh-steps {
    counter-reset: mh-step;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.mh-steps article::before {
    counter-increment: mh-step;
    content: counter(mh-step);
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    margin-bottom: 16px;
    color: var(--mh-white);
    background: var(--mh-orange);
    border-radius: 14px;
    font-weight: 900;
}

.mh-benefit h3::before {
    content: "\2713";
    display: inline-grid;
    place-items: center;
    width: 26px;
    height: 26px;
    margin-right: 8px;
    color: var(--mh-white);
    background: var(--mh-orange);
    border-radius: 50%;
    font-size: 14px;
}

.mh-equipment,
.mh-geo,
.mh-final {
    display: grid;
    grid-template-columns: 0.92fr 1.08fr;
    gap: 34px;
    align-items: center;
}

.mh-equipment__photo,
.mh-map {
    min-height: 330px;
    display: grid;
    place-items: center;
    border-radius: 28px;
    color: var(--mh-white);
    background:
        linear-gradient(135deg, rgba(17, 17, 17, 0.9), rgba(245, 124, 0, 0.65)),
        repeating-linear-gradient(45deg, #cfcfcf 0 14px, #ededed 14px 28px);
    font-weight: 900;
    font-size: 22px;
}

.mh-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 22px;
}

.mh-tags span {
    padding: 9px 13px;
    color: var(--mh-black);
    background: var(--mh-white);
    border: 1px solid rgba(217, 217, 217, 0.8);
    border-radius: 999px;
    font-weight: 800;
    font-size: 14px;
}

.mh-review span {
    display: block;
    margin-bottom: 12px;
    color: var(--mh-orange);
    font-size: 18px;
    letter-spacing: 0.06em;
}

.mh-faq {
    display: grid;
    gap: 12px;
    max-width: 940px;
}

.mh-faq details {
    padding: 18px 20px;
}

.mh-faq summary {
    color: var(--mh-black);
    cursor: pointer;
    font-weight: 900;
    font-size: 18px;
}

.mh-faq p {
    margin-top: 12px;
    color: var(--mh-muted);
}

.mh-seo {
    max-width: 980px;
}

.mh-seo p + p {
    margin-top: 14px;
}

.mh-final {
    padding: 40px;
    color: var(--mh-white);
    background:
        radial-gradient(circle at 82% 18%, rgba(245, 124, 0, 0.34), transparent 30%),
        var(--mh-black);
    border-radius: 34px;
}

.mh-final h2 {
    color: var(--mh-white);
}

.mh-final p {
    color: rgba(255, 255, 255, 0.74);
    margin-bottom: 24px;
}

.mh-final .mh-calc {
    position: static;
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.14);
    box-shadow: none;
}

.mh-floating {
    display: none;
    position: fixed;
    right: 18px;
    bottom: 18px;
    z-index: 80;
    gap: 10px;
}

.mh-floating a {
    width: 54px;
    height: 54px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: var(--mh-white);
    background: var(--mh-orange);
    box-shadow: 0 14px 32px rgba(17, 17, 17, 0.24);
    font-weight: 900;
    text-decoration: none;
}

.mh-floating a:last-child {
    background: var(--mh-black);
}

.mh-mobile-bar {
    display: none;
}

.mh-popup {
    position: fixed;
    inset: 0;
    z-index: 100;
    display: grid;
    place-items: center;
    padding: 20px;
    background: rgba(17, 17, 17, 0.62);
}

.mh-popup[hidden] {
    display: none;
}

.mh-popup__card {
    position: relative;
    width: min(460px, 100%);
    padding: 30px;
    border-radius: 26px;
    background: var(--mh-white);
    box-shadow: 0 26px 90px rgba(0, 0, 0, 0.3);
}

.mh-popup__card button {
    position: absolute;
    top: 12px;
    right: 14px;
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 50%;
    background: var(--mh-light);
    font-size: 24px;
    cursor: pointer;
}

.mh-popup__card p {
    color: var(--mh-muted);
    margin-bottom: 18px;
}

@media (max-width: 1100px) {
    .mh-hero__grid,
    .mh-price-layout,
    .mh-equipment,
    .mh-geo,
    .mh-final {
        grid-template-columns: 1fr;
    }

    .mh-grid--4,
    .mh-grid--5,
    .mh-steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .mh-calc {
        position: static;
    }
}

@media (max-width: 760px) {
    .home .site-header {
        position: static;
    }

    .mh-hero {
        padding: 52px 0 46px;
    }

    .main-home h1 {
        font-size: 36px;
    }

    .mh-section {
        padding: 56px 0;
    }

    .mh-hero__features,
    .mh-grid--3,
    .mh-grid--4,
    .mh-grid--5,
    .mh-steps {
        grid-template-columns: 1fr;
    }

    .mh-hero__visual {
        min-height: 320px;
        padding: 12px;
        border-radius: 26px;
    }

    .mh-hero__visual img {
        height: 320px;
        border-radius: 20px;
    }

    .mh-hero__note {
        left: 24px;
        right: 24px;
        bottom: 24px;
    }

    .mh-price-table div {
        grid-template-columns: 1fr;
        gap: 6px;
    }

    .mh-price-table strong {
        text-align: left;
    }

    .mh-final {
        padding: 28px 20px;
        border-radius: 26px;
    }

    .mh-floating {
        display: none;
    }

    .mh-mobile-bar {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 90;
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: 6px;
        padding: 8px;
        background: var(--mh-black);
        box-shadow: 0 -14px 38px rgba(0, 0, 0, 0.24);
    }

    .mh-mobile-bar a {
        min-height: 42px;
        display: grid;
        place-items: center;
        color: var(--mh-white);
        background: rgba(255, 255, 255, 0.1);
        border-radius: 12px;
        font-size: 13px;
        font-weight: 900;
        text-decoration: none;
    }

    .mh-mobile-bar a:nth-child(2) {
        background: var(--mh-orange);
    }

    body.home {
        padding-bottom: 66px;
    }
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    color: var(--text);
    background: var(--bg);
    font-family: Inter, Arial, sans-serif;
    font-size: 16px;
    line-height: 1.55;
}

a {
    color: inherit;
    text-decoration: none;
}

.container {
    width: min(1210px, calc(100% - 32px));
    margin: 0 auto;
}

.topline {
    border-bottom: 1px solid #EDEDED;
    background: #fff;
}

.topline__inner,
.topline__nav,
.topline__messengers,
.header-main,
.search-strip form,
.catalog-bar__inner,
.hero-actions {
    display: flex;
    align-items: center;
}

.topline__inner {
    min-height: 48px;
    justify-content: space-between;
    gap: 18px;
}

.topline__nav {
    flex-wrap: wrap;
    gap: 28px;
    color: #111111;
    font-size: 15px;
}

.topline__nav a:hover,
.catalog-bar a:hover,
.footer-grid a:hover {
    color: var(--accent);
}

.topline__messengers {
    gap: 8px;
}

.messenger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    color: #fff;
    font-size: 11px;
    font-weight: 800;
}

.messenger--telegram {
    background: #2aa7df;
}

.messenger--whatsapp {
    background: #24c15f;
}

.messenger--max {
    width: auto;
    min-width: 48px;
    padding: 0 10px;
    border-radius: 18px;
    background: #f2b300;
    color: #111111;
}

.header-main {
    min-height: 136px;
    justify-content: space-between;
    gap: 28px;
}

.brand {
    display: flex;
    align-items: center;
    width: min(560px, 46vw);
    min-width: 300px;
}

.brand img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 122px;
    object-fit: contain;
}

.header-info {
    display: grid;
    grid-template-columns: repeat(2, minmax(190px, 1fr));
    gap: 22px;
    flex: 1;
}

.info-item {
    display: flex;
    gap: 12px;
    color: #111111;
    font-size: 15px;
}

.info-icon {
    color: var(--muted);
    font-size: 23px;
    line-height: 1;
}

.header-contact {
    display: grid;
    justify-items: end;
    gap: 6px;
    min-width: 210px;
}

.phone {
    color: #F57C00;
    font-size: 22px;
    font-weight: 800;
}

.email {
    color: #111111;
}

.callback,
.button,
.cookie-panel button {
    border: 0;
    background: #F57C00;
    color: #fff;
    cursor: pointer;
    font-weight: 700;
}

.callback {
    padding: 11px 18px;
}

.search-strip {
    margin-bottom: 18px;
}

.search-strip form {
    height: 38px;
    border: 1px solid #D9D9D9;
    box-shadow: 0 1px 5px rgba(17, 17, 17, 0.18);
}

.search-strip input {
    width: 100%;
    height: 100%;
    border: 0;
    padding: 0 12px;
    font: inherit;
}

.search-strip button {
    width: 48px;
    height: 100%;
    border: 0;
    background: #fff;
    color: #111111;
    cursor: pointer;
    font-size: 27px;
}

.catalog-bar {
    background: var(--dark);
    color: #fff;
}

.catalog-bar__inner {
    min-height: 40px;
    gap: 30px;
    overflow-x: auto;
}

.catalog-bar a {
    white-space: nowrap;
    font-size: 15px;
    font-weight: 700;
}

.catalog-btn {
    align-self: stretch;
    display: inline-flex;
    align-items: center;
    min-width: 280px;
    padding: 0 18px;
    background: var(--accent);
    font-size: 18px !important;
}

.site-main {
    min-height: 55vh;
}

.hero,
.page-section,
.section {
    padding: 26px 0 34px;
}

.hero__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 280px;
    gap: 36px;
    align-items: start;
}

.breadcrumbs {
    margin-bottom: 28px;
    padding-bottom: 2px;
    border-bottom: 1px solid #D9D9D9;
    color: #626262;
    font-size: 14px;
}

.breadcrumbs a {
    color: #F57C00;
    text-decoration: underline;
}

h1,
h2,
h3,
p {
    margin-top: 0;
}

h1 {
    margin-bottom: 16px;
    font-size: clamp(28px, 4vw, 42px);
    line-height: 1.12;
}

h2 {
    margin-bottom: 20px;
    font-size: 24px;
}

.notice {
    margin: 16px 0 20px;
    padding: 30px 20px;
    border-left: 5px solid #D9D9D9;
    background: var(--soft);
    font-size: 21px;
    font-weight: 800;
    line-height: 1.25;
}

.hero-banner {
    margin: 0 0 20px;
}

.hero-banner img {
    display: block;
    width: 100%;
    height: auto;
    border: 1px solid #D9D9D9;
}

.button {
    display: inline-flex;
    min-height: 46px;
    align-items: center;
    justify-content: center;
    padding: 0 24px;
}

.button--primary {
    background: var(--accent);
}

.button--ghost {
    border: 2px solid var(--accent);
    background: #fff;
    color: var(--text);
}

.hero-actions {
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 24px;
}

.promo-card {
    border: 2px solid #F57C00;
    padding: 18px;
    text-align: center;
    background: #fff;
}

.promo-card span {
    display: block;
    font-weight: 800;
}

.promo-card strong {
    display: block;
    color: #FF7A00;
    font-size: 32px;
    line-height: 1;
    text-transform: uppercase;
}

.service-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.service-grid article {
    min-height: 170px;
    border: 1px solid var(--line);
    border-radius: 6px;
    padding: 22px;
    background: #fff;
}

.section--soft {
    background: #F5F5F5;
}

.content-columns {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 36px;
}

.check-list {
    padding-left: 20px;
}

.check-list li {
    margin-bottom: 8px;
}

.contact-box {
    border-left: 5px solid var(--accent);
    padding: 22px;
    background: #fff;
}

.contact-box a,
.footer-grid a {
    display: block;
}

.page-content {
    max-width: 920px;
}

.page-content p,
.page-content li {
    color: #111111;
}

.post-card {
    border-bottom: 1px solid var(--line);
    padding: 20px 0;
}

.site-footer {
    padding: 34px 0;
    background: #111111;
    color: #fff;
}

.footer-grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: 28px;
}

.footer-grid p,
.footer-grid a {
    color: #EDEDED;
}

.float-messengers {
    position: fixed;
    right: 18px;
    bottom: 92px;
    z-index: 20;
    display: grid;
    gap: 8px;
}

.cookie-panel {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 30;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 266px;
    gap: 26px;
    align-items: center;
    padding: 26px 52px;
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 -4px 18px rgba(17, 17, 17, 0.12);
}

.cookie-panel[hidden] {
    display: none;
}

.cookie-panel button {
    height: 52px;
    background: var(--accent);
    font-size: 16px;
}

@media (max-width: 940px) {
    .header-main,
    .topline__inner {
        align-items: flex-start;
        flex-direction: column;
        padding: 16px 0;
    }

    .header-info,
    .hero__grid,
    .content-columns,
    .footer-grid,
    .cookie-panel {
        grid-template-columns: 1fr;
    }

    .header-contact {
        justify-items: start;
    }

    .service-grid {
        grid-template-columns: 1fr;
    }

    .catalog-btn {
        min-width: 220px;
    }

    .cookie-panel {
        padding: 18px 16px;
        gap: 14px;
    }
}

@media (max-width: 560px) {
    .container {
        width: min(100% - 22px, 1210px);
    }

    .brand {
        width: min(100%, 360px);
        min-width: 0;
    }

    .header-info {
        grid-template-columns: 1fr;
    }

    .notice {
        padding: 20px 16px;
        font-size: 18px;
    }

    .float-messengers {
        right: 12px;
        bottom: 126px;
    }
}

/* Header and footer layout based on the approved mockup. */
.site-header {
    padding: 18px 0 32px;
    background: #F5F5F5;
}

.header-card {
    overflow: hidden;
    border: 1px solid #D9D9D9;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 18px 42px rgba(17, 17, 17, 0.08);
}

.header-top {
    display: flex;
    min-height: 38px;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 0 20px;
    background: #111111;
    color: #fff;
    font-size: 14px;
}

.header-top__left,
.header-top__right,
.header-actions,
.footer-socials {
    display: flex;
    align-items: center;
}

.header-top__left {
    gap: 22px;
    flex-wrap: wrap;
    min-width: 0;
}

.header-top__right {
    gap: 12px;
    flex: 0 0 auto;
    margin-left: auto;
}

.header-top__right span,
.header-top__right a {
    white-space: nowrap;
}

.header-main {
    min-height: 152px;
    padding: 28px 20px 22px;
    border-bottom: 1px solid #EDEDED;
}

.brand {
    width: min(470px, 42vw);
    min-width: 270px;
}

.brand img {
    max-height: 104px;
}

.header-service {
    display: grid;
    gap: 4px;
    max-width: 430px;
    color: #111111;
    font-size: 16px;
}

.header-service strong {
    font-weight: 800;
}

.header-contact {
    gap: 8px;
    min-width: 250px;
}

.header-contact span {
    color: #626262;
    font-size: 13px;
}

.phone {
    color: #111111;
    font-size: 23px;
}

.phone--small {
    color: #F57C00;
    font-size: 15px;
}

.header-actions {
    justify-content: flex-end;
    gap: 8px;
    margin-top: 4px;
}

.callback,
.write-btn {
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    padding: 0 16px;
    font-size: 13px;
    font-weight: 800;
}

.callback {
    background: #F57C00;
}

.write-btn {
    border: 1px solid #D9D9D9;
    background: #fff;
    color: #111111;
}

.catalog-bar {
    background: #fff;
    color: #111111;
}

.catalog-bar__inner {
    min-height: 72px;
    gap: 24px;
    padding: 0 20px;
}

.catalog-bar a {
    color: #111111;
    font-size: 15px;
    font-weight: 800;
}

.catalog-btn {
    align-self: auto;
    min-width: auto;
    min-height: 44px;
    border-radius: 10px;
    padding: 0 18px;
    background: #F57C00;
    color: #fff !important;
    font-size: 15px !important;
}

.messenger {
    width: 28px;
    height: 28px;
    border-radius: 0;
    background: transparent;
    padding: 0;
}

.messenger--max {
    min-width: 28px;
    border-radius: 0;
    background: transparent;
}

.messenger img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.messenger--max img {
    width: 164%;
    height: 164%;
    max-width: none;
}

.float-messengers .messenger {
    width: 42px;
    height: 42px;
    filter: drop-shadow(0 8px 16px rgba(17, 17, 17, 0.18));
}

.site-footer {
    padding: 36px 0 0;
    background: #F5F5F5;
}

.footer-card {
    overflow: hidden;
    border-radius: 20px;
    background: #111111;
    color: #fff;
    box-shadow: 0 18px 42px rgba(17, 17, 17, 0.12);
}

.footer-main {
    display: grid;
    grid-template-columns: 1.55fr 0.85fr 1fr 0.9fr;
    gap: 48px;
    padding: 34px 26px 28px;
}

.footer-brand__head {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 18px;
}

.footer-mark {
    display: inline-flex;
    width: 44px;
    height: 44px;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: #F57C00;
    color: #fff;
    font-weight: 900;
}

.footer-logo {
    display: block;
    width: min(100%, 280px);
    border-radius: 10px;
    background: #fff;
    padding: 8px 10px;
}

.footer-logo img {
    display: block;
    width: 100%;
    height: auto;
}

.footer-brand strong,
.footer-column strong,
.footer-buttons strong {
    display: block;
    margin-bottom: 14px;
    color: #fff;
    font-size: 18px;
    font-weight: 900;
}

.footer-brand p {
    max-width: 360px;
    color: #fff;
    font-size: 14px;
}

.footer-socials {
    gap: 10px;
    margin-top: 18px;
}

.footer-socials .messenger {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: #fff;
    padding: 8px;
}

.footer-column {
    display: grid;
    align-content: start;
    gap: 8px;
    color: #fff;
    font-size: 14px;
}

.footer-column a,
.footer-column span {
    color: #fff;
}

.footer-buttons {
    display: grid;
    align-content: start;
    gap: 10px;
}

.footer-button {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    border: 1px solid #D9D9D9;
    border-radius: 10px;
    background: #111111;
    color: #fff;
    font-weight: 800;
}

.footer-button--primary {
    border-color: #F57C00;
    background: #F57C00;
}

.footer-bottom {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 18px;
    align-items: center;
    border-top: 1px solid #D9D9D9;
    padding: 16px 26px;
    color: #EDEDED;
    font-size: 13px;
}

.footer-bottom a {
    color: #EDEDED;
    text-align: center;
}

.footer-bottom span:last-child {
    text-align: right;
}

@media (max-width: 1040px) {
    .header-main {
        align-items: flex-start;
        flex-direction: column;
    }

    .brand {
        width: min(100%, 520px);
    }

    .header-contact {
        justify-items: start;
    }

    .header-actions {
        justify-content: flex-start;
    }

    .footer-main {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 720px) {
    .site-header {
        padding-top: 10px;
    }

    .header-top,
    .header-top__left,
    .header-top__right {
        align-items: flex-start;
        flex-direction: column;
    }

    .header-top {
        padding: 12px 16px;
    }

    .header-top__right {
        margin-left: 0;
    }

    .header-top__right {
        flex-direction: row;
        align-items: center;
        flex-wrap: wrap;
    }

    .header-main {
        padding: 22px 16px;
    }

    .catalog-bar__inner {
        min-height: auto;
        gap: 16px;
        padding: 14px 16px;
        max-width: 100%;
        min-width: 0;
        overflow-x: auto;
    }

    .catalog-bar {
        overflow: hidden;
    }

    .catalog-btn {
        min-width: 160px;
    }

    .footer-main,
    .footer-bottom {
        grid-template-columns: 1fr;
    }

    .footer-bottom,
    .footer-bottom a,
    .footer-bottom span:last-child {
        text-align: left;
    }
}

/* Make header, content and footer read as one continuous site surface. */
body {
    background: #FFFFFF;
}

.site-header {
    padding: 0;
    background: #FFFFFF;
    border-bottom: 0;
}

.header-card {
    width: min(1210px, calc(100% - 32px));
    border-top: 0;
    border-right: 0;
    border-bottom: 0;
    border-left: 0;
    border-radius: 0;
    box-shadow: none;
}

.header-top {
    border-radius: 0;
}

.header-main {
    border-bottom: 0;
}

.catalog-bar {
    border-top: 0;
    border-bottom: 0;
}

.catalog-bar__inner {
    min-height: 64px;
}

.site-main {
    background: #FFFFFF;
}

.hero {
    padding-top: 24px;
}

.breadcrumbs {
    margin-bottom: 26px;
}

.home .breadcrumbs,
.front-page .breadcrumbs {
    display: none;
}

.site-footer {
    margin-top: 0;
    padding: 0;
    background: #111111;
}

.footer-card {
    width: min(1210px, calc(100% - 32px));
    border-radius: 0;
    box-shadow: none;
}

@media (max-width: 720px) {
    .site-header {
        padding-top: 0;
    }

    .header-card,
    .footer-card {
        width: 100%;
        border-right: 0;
        border-left: 0;
    }

    .hero {
        padding-top: 18px;
    }
}

/* Home cleaning services landing page. */
.home-hero {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 82% 12%, rgba(245, 124, 0, 0.34), transparent 28%),
        linear-gradient(135deg, #111111 0%, #1d1d1d 52%, #090909 100%);
    color: #fff;
    padding: 84px 0 72px;
}

.home-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255, 255, 255, 0.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px);
    background-size: 44px 44px;
    opacity: 0.45;
}

.home-hero__inner {
    position: relative;
    display: grid;
    grid-template-columns: 1.08fr 0.92fr;
    gap: 44px;
    align-items: center;
}

.home-badge {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 20px;
    border: 1px solid rgba(245, 124, 0, 0.35);
    border-radius: 999px;
    padding: 8px 14px;
    background: rgba(245, 124, 0, 0.14);
    color: #ffd3a7;
    font-size: 14px;
    font-weight: 800;
}

.home-badge::before {
    content: "";
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #F57C00;
}

.home-hero h1 {
    max-width: 760px;
    margin-bottom: 22px;
    color: #fff;
    font-size: clamp(34px, 5vw, 62px);
    line-height: 1.15;
}

.home-lead {
    max-width: 720px;
    margin-bottom: 28px;
    color: rgba(255, 255, 255, 0.84);
    font-size: 19px;
}

.home-actions,
.home-cta__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
}

.home-actions {
    margin-bottom: 28px;
}

.home-btn {
    display: inline-flex;
    min-height: 50px;
    align-items: center;
    justify-content: center;
    border: 2px solid transparent;
    border-radius: 999px;
    padding: 12px 24px;
    font-size: 15px;
    font-weight: 800;
    white-space: nowrap;
}

.home-btn--primary {
    background: #F57C00;
    color: #fff;
    box-shadow: 0 12px 28px rgba(245, 124, 0, 0.35);
}

.home-btn--outline {
    border-color: rgba(255, 255, 255, 0.35);
    background: rgba(255, 255, 255, 0.07);
    color: #fff;
}

.home-features {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    max-width: 700px;
}

.home-features div {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    color: rgba(255, 255, 255, 0.86);
    font-size: 15px;
}

.home-features span,
.home-pain-list article > span {
    display: grid;
    flex: 0 0 24px;
    width: 24px;
    height: 24px;
    place-items: center;
    border-radius: 50%;
    background: #F57C00;
    color: #fff;
    font-size: 13px;
    font-weight: 900;
}

.home-hero__card {
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 34px;
    padding: 28px;
    background: rgba(255, 255, 255, 0.08);
    box-shadow: 0 28px 80px rgba(0, 0, 0, 0.32);
}

.home-visual {
    position: relative;
    overflow: hidden;
    min-height: 390px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 28px;
    background: linear-gradient(145deg, #292929, #0e0e0e);
}

.home-visual img {
    display: block;
    width: 100%;
    height: 390px;
    object-fit: cover;
}

.home-visual__caption {
    position: absolute;
    right: 20px;
    bottom: 20px;
    left: 20px;
    z-index: 3;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 20px;
    padding: 18px;
    background: rgba(17, 17, 17, 0.78);
}

.home-visual__caption strong,
.home-visual__caption span {
    display: block;
}

.home-visual__caption strong {
    margin-bottom: 4px;
    color: #fff;
    font-size: 20px;
}

.home-visual__caption span {
    color: rgba(255, 255, 255, 0.72);
    font-size: 14px;
}

.home-section {
    padding: 86px 0;
}

.home-section--light {
    background: #F5F5F5;
}

.home-section__head {
    max-width: 760px;
    margin-bottom: 38px;
}

.home-kicker {
    margin-bottom: 10px;
    color: #F57C00;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.home-section h2,
.home-cta h2,
.home-form h2 {
    margin-bottom: 16px;
    color: #111111;
    font-size: clamp(28px, 4vw, 44px);
    line-height: 1.15;
}

.home-section__head p,
.home-card p,
.home-pain-list p,
.home-steps p,
.home-work p,
.home-form p,
.home-faq p {
    color: #666666;
}

.home-pain-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.home-pain-list article {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    border: 1px solid rgba(217, 217, 217, 0.75);
    border-radius: 18px;
    padding: 18px;
    background: #fff;
}

.home-pain-list b {
    display: block;
    margin-bottom: 3px;
}

.home-grid {
    display: grid;
    gap: 22px;
}

.home-grid--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.home-grid--4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.home-card,
.home-work,
.home-steps article,
.home-form__card,
.home-faq details {
    border: 1px solid rgba(217, 217, 217, 0.58);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 16px 40px rgba(17, 17, 17, 0.10);
}

.home-card {
    height: 100%;
    padding: 26px;
}

.home-card > span,
.home-service > span {
    display: grid;
    width: 52px;
    height: 52px;
    place-items: center;
    margin-bottom: 18px;
    border-radius: 16px;
    background: rgba(245, 124, 0, 0.12);
    color: #F57C00;
    font-size: 25px;
    font-weight: 900;
}

.home-card h3,
.home-service h3,
.home-steps h3,
.home-work h3 {
    margin-bottom: 10px;
    color: #111111;
    font-size: 21px;
    line-height: 1.2;
}

.home-service {
    display: flex;
    flex-direction: column;
}

.home-service p {
    margin-bottom: 18px;
}

.home-service a {
    margin-top: auto;
    color: #F57C00;
    font-weight: 800;
}

.home-cta {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 26px;
    align-items: center;
    overflow: hidden;
    border-radius: 34px;
    padding: 38px;
    background: linear-gradient(135deg, #111111, #252525);
    color: #fff;
}

.home-cta h2 {
    color: #fff;
}

.home-cta p {
    max-width: 700px;
    color: rgba(255, 255, 255, 0.74);
}

.home-price-table {
    overflow: hidden;
    border: 1px solid rgba(217, 217, 217, 0.70);
    border-radius: 28px;
    background: #fff;
    box-shadow: 0 16px 40px rgba(17, 17, 17, 0.10);
}

.home-price-table > div {
    display: grid;
    grid-template-columns: 1fr 180px;
    gap: 18px;
    align-items: center;
    border-bottom: 1px solid rgba(217, 217, 217, 0.65);
    padding: 20px 24px;
}

.home-price-table > div:last-child {
    border-bottom: 0;
}

.home-price-table span {
    display: block;
    margin-top: 3px;
    color: #666666;
    font-size: 14px;
}

.home-price-table strong {
    color: #F57C00;
    font-size: 20px;
    text-align: right;
}

.home-steps {
    counter-reset: homeStep;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.home-steps article {
    counter-increment: homeStep;
    padding: 26px;
}

.home-steps article::before {
    content: counter(homeStep);
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    margin-bottom: 18px;
    border-radius: 14px;
    background: #F57C00;
    color: #fff;
    font-weight: 900;
}

.home-work {
    overflow: hidden;
}

.home-work > div {
    display: grid;
    min-height: 210px;
    place-items: center;
    background: linear-gradient(145deg, #2a2a2a, #0e0e0e);
    color: #F57C00;
    font-size: 70px;
}

.home-work section {
    padding: 24px;
}

.home-work span,
.home-review > span {
    display: inline-flex;
    margin-bottom: 12px;
    border-radius: 999px;
    padding: 6px 10px;
    background: rgba(245, 124, 0, 0.12);
    color: #F57C00;
    font-size: 12px;
    font-weight: 800;
}

.home-review > span {
    background: transparent;
    padding: 0;
    font-size: 18px;
}

.home-review p {
    margin-bottom: 18px;
}

.home-faq {
    display: grid;
    gap: 12px;
}

.home-faq details {
    padding: 20px 22px;
}

.home-faq summary {
    cursor: pointer;
    color: #111111;
    font-size: 17px;
    font-weight: 900;
}

.home-faq p {
    margin-top: 12px;
}

.home-form {
    display: grid;
    grid-template-columns: 0.95fr 1.05fr;
    gap: 34px;
    align-items: start;
}

.home-contacts {
    display: grid;
    gap: 6px;
    margin-top: 22px;
}

.home-form__card {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    padding: 30px;
}

.home-form__card label {
    display: grid;
    gap: 7px;
    color: #111111;
    font-size: 13px;
    font-weight: 800;
}

.home-field-full,
.home-form__card button,
.home-policy {
    grid-column: 1 / -1;
}

.home-form__card input,
.home-form__card select,
.home-form__card textarea {
    width: 100%;
    min-height: 50px;
    border: 1px solid #D9D9D9;
    border-radius: 14px;
    padding: 12px 14px;
    background: #fff;
    font: inherit;
}

.home-form__card textarea {
    min-height: 110px;
    resize: vertical;
}

.home-policy {
    color: #666666;
    font-size: 12px;
}

.home-mobile-sticky {
    display: none;
    position: fixed;
    right: 10px;
    bottom: 10px;
    left: 10px;
    z-index: 80;
    gap: 8px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 18px;
    padding: 8px;
    background: #111111;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.28);
}

.home-mobile-sticky a {
    display: grid;
    flex: 1;
    min-height: 44px;
    place-items: center;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
    font-size: 13px;
    font-weight: 800;
}

.home-mobile-sticky a:nth-child(2) {
    background: #F57C00;
}

@media (max-width: 1060px) {
    .home-hero__inner,
    .home-form,
    .home-cta {
        grid-template-columns: 1fr;
    }

    .home-grid--4,
    .home-steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .home-hero {
        padding: 56px 0 48px;
    }

    .home-features,
    .home-grid--3,
    .home-grid--4,
    .home-pain-list,
    .home-steps,
    .home-form__card {
        grid-template-columns: 1fr;
    }

    .home-section {
        padding: 58px 0;
    }

    .home-cta {
        padding: 28px;
    }

    .home-price-table > div {
        grid-template-columns: 1fr;
    }

    .home-price-table strong {
        text-align: left;
    }

    .home-mobile-sticky {
        display: flex;
    }

    body {
        padding-bottom: 74px;
    }
}
/* Bath stove service page. */
.bath-page {
    --bath-black: #111111;
    --bath-orange: #F57C00;
    --bath-light: #F5F5F5;
    --bath-line: #D9D9D9;
    --bath-muted: #666666;
    --bath-shadow: 0 16px 40px rgba(17, 17, 17, 0.10);
    display: grid;
    gap: 0;
    margin-top: 24px;
}

.bath-page h2 {
    margin: 0 0 18px;
    font-size: clamp(30px, 4vw, 48px);
    line-height: 1.12;
}

.bath-page h3 {
    margin: 0 0 10px;
    font-size: 21px;
    line-height: 1.2;
}

.bath-page p {
    color: var(--bath-muted);
}

.bath-hero {
    display: grid;
    grid-template-columns: 1.08fr 0.92fr;
    gap: 48px;
    align-items: center;
    overflow: hidden;
    border-radius: 0;
    padding: 54px 0 46px;
    background:
        radial-gradient(circle at 78% 20%, rgba(245, 124, 0, 0.18), transparent 34%),
        linear-gradient(135deg, #ffffff 0%, #f6f6f6 52%, #ffffff 100%);
}

.bath-hero__content,
.bath-section,
.bath-cta {
    min-width: 0;
}

.bath-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 18px;
    border-radius: 999px;
    padding: 9px 14px;
    background: rgba(245, 124, 0, 0.10);
    color: var(--bath-orange);
    font-size: 14px;
    font-weight: 800;
}

.bath-eyebrow::before {
    content: "";
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--bath-orange);
}

.bath-hero h2 {
    font-size: clamp(38px, 5.4vw, 66px);
    line-height: 1.02;
}

.bath-hero h2 span {
    color: var(--bath-orange);
}

.bath-hero p {
    max-width: 680px;
    margin-bottom: 28px;
    color: #3e3e3e;
    font-size: 20px;
}

.bath-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-bottom: 28px;
}

.bath-btn {
    display: inline-flex;
    min-height: 52px;
    align-items: center;
    justify-content: center;
    border: 2px solid transparent;
    border-radius: 999px;
    padding: 0 24px;
    font-weight: 800;
}

.bath-btn--primary {
    background: var(--bath-orange);
    color: #fff;
    box-shadow: 0 10px 24px rgba(245, 124, 0, 0.32);
}

.bath-btn--light {
    border-color: var(--bath-line);
    background: #fff;
    color: var(--bath-black);
}

.bath-badges {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.bath-badges span {
    border: 1px solid var(--bath-line);
    border-radius: 18px;
    padding: 14px 16px;
    background: #fff;
    box-shadow: 0 10px 26px rgba(17, 17, 17, 0.05);
    font-weight: 800;
}

.bath-badges span::before,
.bath-dark-card li::before,
.bath-section--dark li::before {
    content: "\2713";
    margin-right: 9px;
    color: var(--bath-orange);
    font-weight: 900;
}

.bath-visual {
    position: relative;
    min-height: 520px;
    overflow: hidden;
    border-radius: 34px;
    padding: 28px;
    background: var(--bath-black);
    color: #fff;
    box-shadow: var(--bath-shadow);
}

.bath-visual::before {
    content: "";
    position: absolute;
    right: -90px;
    bottom: -110px;
    width: 310px;
    height: 310px;
    border-radius: 50%;
    background: var(--bath-orange);
}

.bath-visual__title {
    position: relative;
    z-index: 2;
    font-size: 34px;
    font-weight: 900;
    line-height: 1.12;
}

.bath-visual p {
    position: relative;
    z-index: 2;
    max-width: 360px;
    margin-top: 12px;
    color: rgba(255, 255, 255, 0.72);
}

.bath-stove-art {
    position: absolute;
    right: 34px;
    bottom: 50px;
    left: 34px;
    height: 270px;
}

.bath-wall {
    position: absolute;
    right: 7%;
    bottom: 20px;
    width: 150px;
    height: 160px;
    border-left: 8px solid var(--bath-orange);
    border-radius: 18px;
    background: repeating-linear-gradient(0deg, #402818 0 17px, #51331d 17px 19px);
    opacity: 0.82;
}

.bath-pipe {
    position: absolute;
    left: 55%;
    top: 0;
    width: 54px;
    height: 170px;
    border-radius: 16px 16px 4px 4px;
    background: linear-gradient(90deg, #ededed, #ffffff, #cfcfcf);
}

.bath-pipe::before {
    content: "";
    position: absolute;
    top: -30px;
    left: -14px;
    width: 82px;
    height: 34px;
    border-radius: 12px;
    background: #fff;
}

.bath-stove {
    position: absolute;
    left: 20%;
    bottom: 0;
    width: 210px;
    height: 150px;
    border: 8px solid #3a3a3a;
    border-radius: 24px 24px 12px 12px;
    background: linear-gradient(135deg, #2c2c2c, #111111);
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.35);
}

.bath-stove::before {
    content: "";
    position: absolute;
    left: 36px;
    top: -40px;
    width: 140px;
    height: 60px;
    background:
        radial-gradient(circle at 20% 55%, #d9d9d9 0 12px, transparent 13px),
        radial-gradient(circle at 45% 35%, #f5f5f5 0 15px, transparent 16px),
        radial-gradient(circle at 70% 55%, #cfcfcf 0 13px, transparent 14px),
        radial-gradient(circle at 88% 40%, #ededed 0 10px, transparent 11px);
}

.bath-stove i {
    position: absolute;
    left: 35px;
    bottom: 28px;
    width: 76px;
    height: 70px;
    border: 4px solid rgba(255, 255, 255, 0.18);
    border-radius: 14px;
    background: radial-gradient(circle at 50% 85%, var(--bath-orange), #7a2600 58%, #1b1b1b 78%);
}

.bath-price-note {
    position: absolute;
    z-index: 4;
    left: 18px;
    bottom: 34px;
    max-width: 240px;
    border-radius: 22px;
    padding: 16px 18px;
    background: #fff;
    color: var(--bath-black);
    box-shadow: var(--bath-shadow);
}

.bath-price-note strong,
.bath-price-note span {
    display: block;
}

.bath-price-note strong {
    font-size: 20px;
}

.bath-price-note span {
    color: var(--bath-muted);
    font-size: 14px;
}

.bath-nav {
    display: flex;
    gap: 12px;
    overflow-x: auto;
    border-bottom: 1px solid var(--bath-line);
    padding: 12px 0;
}

.bath-nav a {
    border-radius: 999px;
    padding: 10px 16px;
    background: var(--bath-light);
    font-size: 14px;
    font-weight: 800;
    white-space: nowrap;
}

.bath-section {
    padding: 74px 0;
}

.bath-section--soft {
    margin-right: calc(50% - 50vw);
    margin-left: calc(50% - 50vw);
    padding-right: calc(50vw - 50%);
    padding-left: calc(50vw - 50%);
    background: var(--bath-light);
}

.bath-lead {
    max-width: 840px;
    margin-bottom: 34px;
    font-size: 18px;
}

.bath-grid {
    display: grid;
    gap: 18px;
}

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

.bath-grid--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.bath-grid article,
.bath-steps article,
.bath-works article,
.bath-faq details,
.service-link-card {
    border: 1px solid var(--bath-line);
    border-radius: 18px;
    padding: 22px;
    background: #fff;
    box-shadow: 0 10px 26px rgba(17, 17, 17, 0.05);
}

.bath-grid article > span {
    display: grid;
    width: 52px;
    height: 52px;
    place-items: center;
    margin-bottom: 16px;
    border-radius: 16px;
    background: rgba(245, 124, 0, 0.12);
    color: var(--bath-orange);
    font-size: 24px;
}

.bath-price-layout,
.bath-section--dark {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 26px;
    align-items: start;
}

.bath-price-table {
    overflow: hidden;
    border: 1px solid var(--bath-line);
    border-radius: 18px;
    background: #fff;
    box-shadow: var(--bath-shadow);
}

.bath-price-table div {
    display: grid;
    grid-template-columns: 1fr 170px;
    gap: 20px;
    align-items: center;
    border-bottom: 1px solid var(--bath-line);
    padding: 18px 22px;
}

.bath-price-table div:last-child {
    border-bottom: 0;
}

.bath-price-table b {
    color: var(--bath-orange);
    text-align: right;
}

.bath-dark-card,
.bath-section--dark {
    border-radius: 26px;
    padding: 30px;
    background: var(--bath-black);
    color: #fff;
}

.bath-dark-card p,
.bath-section--dark p {
    color: rgba(255, 255, 255, 0.72);
}

.bath-dark-card li,
.bath-section--dark li {
    color: rgba(255, 255, 255, 0.86);
}

.bath-dark-card ul,
.bath-section--dark ul {
    display: grid;
    gap: 11px;
    margin: 0 0 24px;
    padding: 0;
    list-style: none;
}

.bath-feature-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.bath-feature-list li {
    border-radius: 16px;
    padding: 14px;
    background: rgba(255, 255, 255, 0.08);
    color: rgba(255, 255, 255, 0.88);
}

.bath-form-card {
    border-radius: 24px;
    padding: 28px;
    background: #fff;
    color: var(--bath-black);
}

.bath-form-card p {
    margin-bottom: 18px;
}

.bath-form-card .bath-btn {
    width: 100%;
    margin-top: 10px;
}

.bath-steps {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    counter-reset: bathSteps;
}

.bath-steps article {
    counter-increment: bathSteps;
}

.bath-steps article::before {
    content: counter(bathSteps);
    display: grid;
    width: 44px;
    height: 44px;
    place-items: center;
    margin-bottom: 16px;
    border-radius: 14px;
    background: var(--bath-orange);
    color: #fff;
    font-weight: 900;
}

.bath-works {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

.bath-works article {
    overflow: hidden;
    padding: 0;
}

.bath-works article > div {
    min-height: 210px;
    display: flex;
    align-items: flex-end;
    padding: 20px;
    background:
        linear-gradient(135deg, rgba(17, 17, 17, 0.84), rgba(245, 124, 0, 0.7)),
        repeating-linear-gradient(45deg, #d9d9d9 0 12px, #ededed 12px 24px);
    color: #fff;
    font-size: 22px;
    font-weight: 900;
}

.bath-works h3,
.bath-works p {
    margin-right: 22px;
    margin-left: 22px;
}

.bath-works h3 {
    margin-top: 22px;
}

.bath-works p {
    margin-bottom: 22px;
}

.bath-faq {
    display: grid;
    gap: 12px;
    max-width: 920px;
}

.bath-faq summary {
    cursor: pointer;
    font-size: 18px;
    font-weight: 900;
}

.bath-faq p {
    margin-top: 12px;
}

.bath-cta {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 24px;
    align-items: center;
    margin: 28px 0 74px;
    border-radius: 30px;
    padding: 38px;
    background:
        radial-gradient(circle at 82% 16%, rgba(245, 124, 0, 0.30), transparent 30%),
        var(--bath-black);
    color: #fff;
}

.bath-cta h2 {
    margin-bottom: 12px;
}

.bath-cta p {
    max-width: 720px;
    color: rgba(255, 255, 255, 0.72);
    font-size: 18px;
}

.service-link-card {
    margin-top: 28px;
}

.service-link-card h2 {
    margin-bottom: 10px;
}

.service-link-card p {
    max-width: 760px;
}

@media (max-width: 1080px) {
    .bath-hero,
    .bath-price-layout,
    .bath-section--dark,
    .bath-cta {
        grid-template-columns: 1fr;
    }

    .bath-grid--4,
    .bath-steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .bath-hero {
        padding-top: 34px;
    }

    .bath-badges,
    .bath-grid--4,
    .bath-grid--3,
    .bath-steps,
    .bath-works,
    .bath-feature-list {
        grid-template-columns: 1fr;
    }

    .bath-visual {
        min-height: 430px;
        border-radius: 24px;
    }

    .bath-price-table div {
        grid-template-columns: 1fr;
        gap: 6px;
    }

    .bath-price-table b {
        text-align: left;
    }

    .bath-section {
        padding: 54px 0;
    }

    .bath-section--soft {
        padding-right: 16px;
        padding-left: 16px;
    }

    .bath-cta {
        margin-bottom: 54px;
        padding: 28px 20px;
    }
}

.contacts-page .contacts-hint li,
.contacts-page .contacts-hint li p,
.contacts-page .contacts-hint li span {
    color: rgba(255, 255, 255, 0.88);
}

@media (max-width: 760px) {
    body {
        scroll-padding-top: 76px;
    }

    .site-header {
        padding-top: 74px;
    }

    .site-header .catalog-bar {
        position: fixed;
        top: 0;
        right: 0;
        left: 0;
        z-index: 95;
        overflow: hidden;
        border-bottom: 1px solid #d9d9d9;
        background: #fff;
        box-shadow: 0 10px 28px rgba(17, 17, 17, 0.14);
    }

    .site-header .catalog-bar__inner {
        width: 100%;
        min-height: 64px;
        gap: 16px;
        padding: 10px 14px;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .site-header .catalog-bar__inner::-webkit-scrollbar {
        display: none;
    }

    .site-header .catalog-bar a {
        flex: 0 0 auto;
    }

    .site-header .catalog-btn {
        min-width: max-content;
    }
}

/* Compact global header and keep mobile navigation usable. */
.header-main {
    min-height: 92px;
    padding-top: 12px;
    padding-bottom: 12px;
    gap: 22px;
}

.brand {
    width: min(380px, 31vw);
    min-width: 230px;
}

.brand img {
    max-height: 72px;
}

.header-service {
    max-width: 420px;
}

.header-contact {
    gap: 2px;
}

.header-contact .phone {
    line-height: 1.12;
}

.header-contact .phone--small {
    display: none;
}

.header-contact span {
    font-size: 12px;
}

.header-top__phone {
    display: none;
}

.header-actions {
    margin-top: 2px;
}

.callback,
.write-btn {
    min-height: 34px;
    padding-right: 14px;
    padding-left: 14px;
}

.catalog-bar__inner {
    min-height: 52px;
}

.catalog-btn {
    min-width: 160px;
    min-height: 42px;
}

@media (max-width: 760px) {
    body {
        scroll-padding-top: 18px;
    }

    .site-header {
        padding-top: 0;
        transition: transform 0.28s ease, box-shadow 0.28s ease;
        will-change: transform;
    }

    .header-main {
        min-height: 0;
        padding: 14px 16px;
        gap: 14px;
    }

    .brand {
        width: 100%;
        min-width: 0;
    }

    .brand img {
        max-height: 74px;
    }

    .header-service {
        max-width: none;
    }

    .site-header .catalog-bar {
        position: static;
        top: auto;
        right: auto;
        left: auto;
        z-index: auto;
        overflow: hidden;
        box-shadow: none;
    }

    .site-header .catalog-bar__inner {
        min-height: 52px;
        flex-wrap: nowrap;
        gap: 14px;
        padding: 8px 14px 10px;
        overflow-x: scroll;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior-x: contain;
        scrollbar-width: thin;
        scrollbar-color: rgba(245, 124, 0, 0.75) transparent;
        touch-action: pan-x;
        scroll-snap-type: x proximity;
    }

    .site-header .catalog-bar__inner::-webkit-scrollbar {
        display: block;
        height: 4px;
    }

    .site-header .catalog-bar__inner::-webkit-scrollbar-track {
        background: transparent;
    }

    .site-header .catalog-bar__inner::-webkit-scrollbar-thumb {
        border-radius: 999px;
        background: rgba(245, 124, 0, 0.75);
    }

    .site-header .catalog-bar a {
        flex: 0 0 auto;
        scroll-snap-align: start;
    }

    .site-header .catalog-btn {
        min-width: max-content;
        min-height: 38px;
    }

    .mh-mobile-bar,
    .about-mobile-bar,
    .contacts-mobile-bar {
        display: none !important;
    }

    .main-home,
    .about-page,
    .contacts-page {
        padding-bottom: 0;
    }

    .site-header.is-mobile-floating {
        position: fixed;
        top: 0;
        right: 0;
        left: 0;
        z-index: 95;
        background: #fff;
        box-shadow: 0 14px 34px rgba(17, 17, 17, 0.16);
    }

    .site-header.is-mobile-floating + .site-main {
        padding-top: var(--mobile-header-space, 0px);
    }

    .site-header.is-mobile-floating .header-card {
        width: 100%;
        max-width: none;
    }

    .site-header.is-mobile-floating .header-main {
        display: none;
    }

    .site-header.is-mobile-floating .header-top {
        min-height: 42px;
        flex-direction: row;
        align-items: center;
        padding: 7px 12px;
    }

    .site-header.is-mobile-floating .header-top__left {
        display: none;
    }

    .site-header.is-mobile-floating .header-top__right {
        width: 100%;
        flex-direction: row;
        align-items: center;
        gap: 10px;
        margin-left: 0;
    }

    .site-header.is-mobile-floating .header-top__right > a:not(.messenger):not(.header-top__phone) {
        display: none;
    }

    .site-header.is-mobile-floating .header-top__phone {
        display: inline-flex;
        margin-right: auto;
        color: #fff;
        font-size: 15px;
        font-weight: 900;
        white-space: nowrap;
    }

    .site-header.is-mobile-floating .messenger {
        width: 28px;
        height: 28px;
    }

    .site-header.is-mobile-floating .catalog-bar__inner {
        min-height: 46px;
        padding-top: 6px;
        padding-bottom: 8px;
    }

    .site-header.is-mobile-floating .catalog-btn {
        min-height: 34px;
    }

    .site-header.is-mobile-hidden {
        transform: translateY(-105%);
    }

    .site-header.is-mobile-visible {
        transform: translateY(0);
    }
}

/* Final width override for custom reviews layout. */
.reviews-page-body .page-content {
    max-width: none;
}

.reviews-page-body .reviews-page {
    width: min(1200px, calc(100% - 32px));
    max-width: none;
}

/* Final contrast guard for dark content sections across custom pages. */
.about-page .about-section--dark,
.contacts-page .contacts-hint,
.reviews-page .rv-section--dark,
.reviews-page .rv-cta {
    color: rgba(255, 255, 255, 0.9);
}

.about-page .about-section--dark h2,
.about-page .about-section--dark h3,
.contacts-page .contacts-hint h3,
.reviews-page .rv-section--dark h2,
.reviews-page .rv-section--dark h3,
.reviews-page .rv-cta h2 {
    color: #ffffff !important;
}

.about-page .about-section--dark .about-kicker,
.reviews-page .rv-section--dark .rv-kicker {
    color: #F57C00 !important;
}

.about-page .about-section--dark p,
.about-page .about-section--dark li,
.about-page .about-section--dark span,
.contacts-page .contacts-hint p,
.contacts-page .contacts-hint li,
.contacts-page .contacts-hint span,
.reviews-page .rv-section--dark p,
.reviews-page .rv-section--dark li,
.reviews-page .rv-section--dark span,
.reviews-page .rv-cta p {
    color: rgba(255, 255, 255, 0.88) !important;
}

.about-page .about-section--dark a:not(.about-btn),
.contacts-page .contacts-hint a:not(.contacts-btn),
.reviews-page .rv-section--dark a:not(.rv-btn),
.reviews-page .rv-cta a:not(.rv-btn) {
    color: #ffffff !important;
}

.about-page .about-cta,
.about-page .about-safety,
.contacts-page .contacts-final {
    color: rgba(255, 255, 255, 0.9);
}

.about-page .about-cta h2,
.about-page .about-cta h3,
.about-page .about-safety h2,
.about-page .about-safety h3,
.contacts-page .contacts-final h2,
.contacts-page .contacts-final h3 {
    color: #ffffff !important;
}

.about-page .about-cta .about-kicker,
.about-page .about-safety .about-kicker,
.contacts-page .contacts-final .contacts-kicker {
    color: #F57C00 !important;
}

.about-page .about-cta p,
.about-page .about-cta span,
.about-page .about-cta li,
.about-page .about-safety p,
.about-page .about-safety span,
.about-page .about-safety li,
.contacts-page .contacts-final p,
.contacts-page .contacts-final span,
.contacts-page .contacts-final li {
    color: rgba(255, 255, 255, 0.88) !important;
}

/* Services catalog page */
.services-page {
    --sp-black: #111111;
    --sp-orange: #F57C00;
    --sp-orange-light: #FF7A00;
    --sp-white: #FFFFFF;
    --sp-light: #F5F5F5;
    --sp-line: #D9D9D9;
    --sp-text: #1A1A1A;
    --sp-muted: #6B6B6B;
    --sp-radius: 22px;
    --sp-shadow: 0 16px 42px rgba(17, 17, 17, 0.09);
    width: min(1200px, calc(100% - 32px));
    margin: 0 auto;
    color: var(--sp-text);
}

.page-section:has(.services-page) {
    padding-top: 0;
    background: var(--sp-light, #F5F5F5);
}

.page-section:has(.services-page) > .container {
    width: 100%;
    max-width: none;
    padding: 0;
}

.page-section:has(.services-page) .breadcrumbs {
    width: min(1200px, calc(100% - 32px));
    margin: 0 auto;
    padding-top: 18px;
    padding-bottom: 12px;
}

.page-section:has(.services-page) .page-content {
    max-width: none;
    margin-top: 0;
}

.services-page h1,
.services-page h2,
.services-page h3,
.services-page p {
    margin-top: 0;
}

.services-page h1,
.services-page h2,
.services-page h3 {
    color: var(--sp-black);
    line-height: 1.12;
}

.services-page h1 {
    max-width: 850px;
    margin-bottom: 22px;
    font-size: clamp(36px, 5.6vw, 64px);
    letter-spacing: -0.045em;
}

.services-page h2 {
    margin-bottom: 14px;
    font-size: clamp(28px, 4vw, 46px);
    letter-spacing: -0.035em;
}

.services-page h3 {
    margin-bottom: 10px;
    font-size: 22px;
}

.services-page p {
    color: var(--sp-muted);
    font-size: 17px;
    line-height: 1.6;
}

.services-page a {
    text-decoration: none;
}

.services-page__hero,
.services-page__section,
.services-page__final {
    margin-bottom: 24px;
    border-radius: 30px;
}

.services-page__hero {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(340px, 0.85fr);
    gap: 28px;
    align-items: stretch;
    padding: 48px;
    background:
        radial-gradient(circle at 88% 15%, rgba(245, 124, 0, 0.24), transparent 30%),
        linear-gradient(135deg, #ffffff 0%, #f4f4f4 100%);
    border: 1px solid rgba(217, 217, 217, 0.78);
    box-shadow: var(--sp-shadow);
}

.services-page__hero-copy {
    align-self: center;
}

.services-page__kicker {
    display: inline-flex;
    margin-bottom: 12px;
    color: var(--sp-orange);
    font-size: 13px;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.services-page__hero-copy > p {
    max-width: 780px;
    margin-bottom: 28px;
    color: #333333;
    font-size: 20px;
}

.services-page__actions,
.services-page__wide-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
}

.services-page__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    padding: 13px 22px;
    border: 2px solid transparent;
    border-radius: 999px;
    font-weight: 900;
    transition: transform 0.2s ease, background 0.2s ease, border-color 0.2s ease;
    white-space: nowrap;
}

.services-page__btn:hover {
    transform: translateY(-2px);
}

.services-page__btn--primary {
    background: var(--sp-orange);
    color: var(--sp-white) !important;
    box-shadow: 0 12px 26px rgba(245, 124, 0, 0.32);
}

.services-page__btn--primary:hover {
    background: var(--sp-orange-light);
}

.services-page__btn--light {
    background: var(--sp-white);
    border-color: var(--sp-line);
    color: var(--sp-black) !important;
}

.services-page__btn--light:hover {
    border-color: var(--sp-orange);
    color: var(--sp-orange) !important;
}

.services-page__btn--dark-outline {
    border-color: rgba(255, 255, 255, 0.28);
    color: var(--sp-white) !important;
    background: rgba(255, 255, 255, 0.07);
}

.services-page__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 26px;
}

.services-page__badges span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    border: 1px solid rgba(245, 124, 0, 0.18);
    border-radius: 999px;
    background: rgba(245, 124, 0, 0.08);
    color: var(--sp-black);
    font-size: 14px;
    font-weight: 800;
}

.services-page__badges span::before {
    content: "\2713";
    color: var(--sp-orange);
}

.services-page__hero-card,
.services-page__section--dark,
.services-page__final {
    background: var(--sp-black);
    color: rgba(255, 255, 255, 0.9);
}

.services-page__hero-card {
    padding: 32px;
    border-radius: 28px;
    box-shadow: 0 22px 55px rgba(17, 17, 17, 0.22);
}

.services-page__hero-card h2,
.services-page__section--dark h2,
.services-page__section--dark h3,
.services-page__final h2,
.services-page__final h3 {
    color: var(--sp-white) !important;
}

.services-page__hero-card p,
.services-page__hero-card li,
.services-page__section--dark p,
.services-page__section--dark li,
.services-page__final p,
.services-page__final li {
    color: rgba(255, 255, 255, 0.86) !important;
}

.services-page__hero-card ul,
.services-page__check-list {
    display: grid;
    gap: 12px;
    margin: 22px 0 0;
    padding: 0;
    list-style: none;
}

.services-page__hero-card li,
.services-page__check-list li {
    display: flex;
    gap: 10px;
    align-items: flex-start;
}

.services-page__hero-card li::before,
.services-page__check-list li::before {
    content: "\2713";
    color: var(--sp-orange);
    font-weight: 900;
}

.services-page__section {
    padding: 58px 48px;
    background: var(--sp-white);
    border: 1px solid rgba(217, 217, 217, 0.75);
    box-shadow: var(--sp-shadow);
}

.services-page__section--soft {
    background: var(--sp-light);
}

.services-page__section--dark {
    border-color: rgba(255, 255, 255, 0.08);
}

.services-page__head {
    max-width: 820px;
    margin-bottom: 34px;
}

.services-page__problem-grid,
.services-page__benefits {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

.services-page__problem,
.services-page__benefits article,
.services-page__choice-grid article,
.services-page__steps article,
.services-page__faq details {
    border: 1px solid rgba(217, 217, 217, 0.78);
    border-radius: var(--sp-radius);
    background: var(--sp-white);
    box-shadow: 0 12px 32px rgba(17, 17, 17, 0.06);
}

.services-page__problem {
    padding: 24px;
}

.services-page__problem > span {
    display: grid;
    width: 34px;
    height: 34px;
    margin-bottom: 18px;
    place-items: center;
    border-radius: 50%;
    background: rgba(245, 124, 0, 0.11);
    color: var(--sp-orange);
    font-size: 12px;
    font-weight: 900;
}

.services-page__problem p {
    margin-bottom: 18px;
}

.services-page__problem a,
.services-page__service-list a strong {
    color: var(--sp-orange);
    font-weight: 900;
}

.services-page__catalog {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
    gap: 22px;
}

.services-page__category {
    display: grid;
    grid-template-rows: auto 1fr;
    gap: 18px;
    align-items: start;
    padding: 28px;
    aspect-ratio: 1 / 1;
    border: 1px solid rgba(217, 217, 217, 0.75);
    border-radius: 28px;
    background: var(--sp-white);
    box-shadow: 0 14px 34px rgba(17, 17, 17, 0.06);
    overflow: hidden;
}

.services-page__category--accent {
    border-color: rgba(245, 124, 0, 0.3);
    box-shadow: 0 18px 44px rgba(245, 124, 0, 0.12);
}

.services-page__category--wide {
    display: grid;
    grid-template-columns: 1fr;
    align-items: start;
}

.services-page__category-top {
    display: flex;
    gap: 16px;
    align-items: flex-start;
}

.services-page__category-icon {
    display: grid;
    flex: 0 0 54px;
    width: 54px;
    height: 54px;
    place-items: center;
    border-radius: 16px;
    background: var(--sp-black);
    color: #fff;
    font-size: 25px;
    font-weight: 900;
}

.services-page__service-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: 1fr;
    gap: 10px;
    align-self: stretch;
}

.services-page__service-list a {
    display: grid;
    align-content: start;
    gap: 4px;
    min-height: 86px;
    padding: 16px 18px;
    border: 1px solid rgba(217, 217, 217, 0.75);
    border-radius: 18px;
    background: #fbfbfb;
    transition: border-color 0.2s ease, transform 0.2s ease, background 0.2s ease;
}

.services-page__service-list a:hover {
    transform: translateY(-2px);
    border-color: rgba(245, 124, 0, 0.42);
    background: #ffffff;
}

.services-page__service-list a span {
    color: var(--sp-muted);
    font-size: 14px;
    line-height: 1.45;
}

.services-page__wide-actions {
    align-self: end;
}

.services-page__chooser,
.services-page__form-layout {
    display: grid;
    grid-template-columns: minmax(0, 0.85fr) minmax(360px, 0.9fr);
    gap: 34px;
    align-items: center;
}

.services-page__choice-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.services-page__choice-grid article,
.services-page__benefits article,
.services-page__steps article {
    padding: 22px;
}

.services-page__choice-grid strong {
    display: block;
    margin-bottom: 8px;
    color: var(--sp-black);
    font-size: 18px;
}

.services-page__choice-grid span {
    color: var(--sp-muted);
}

.services-page__form {
    padding: 28px;
    border-radius: 28px;
    background: var(--sp-white);
    color: var(--sp-black);
    box-shadow: 0 18px 44px rgba(0, 0, 0, 0.22);
}

.services-page__form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 18px;
}

.services-page__form input,
.services-page__form select,
.services-page__form textarea {
    width: 100%;
    min-height: 52px;
    padding: 12px 14px;
    border: 1px solid var(--sp-line);
    border-radius: 15px;
    background: #fff;
    color: var(--sp-black);
    font: inherit;
    outline: none;
}

.services-page__form textarea {
    grid-column: 1 / -1;
    min-height: 118px;
    resize: vertical;
}

.services-page__form input:focus,
.services-page__form select:focus,
.services-page__form textarea:focus {
    border-color: var(--sp-orange);
    box-shadow: 0 0 0 4px rgba(245, 124, 0, 0.12);
}

.services-page__policy,
.services-page__success {
    margin-top: 12px;
    font-size: 13px !important;
}

.services-page__success {
    color: #168a3a !important;
    font-weight: 800;
}

.services-page__steps {
    counter-reset: services-step;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.services-page__steps article::before {
    counter-increment: services-step;
    content: counter(services-step);
    display: grid;
    width: 42px;
    height: 42px;
    margin-bottom: 16px;
    place-items: center;
    border-radius: 14px;
    background: var(--sp-orange);
    color: #fff;
    font-weight: 900;
}

.services-page__benefits article h3::before {
    content: "\2713";
    display: inline-grid;
    width: 28px;
    height: 28px;
    margin-right: 8px;
    place-items: center;
    border-radius: 50%;
    background: rgba(245, 124, 0, 0.12);
    color: var(--sp-orange);
    font-size: 14px;
}

.services-page__geo,
.services-page__final {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 24px;
    align-items: center;
}

.services-page__geo {
    background: linear-gradient(135deg, var(--sp-black), #242424);
    color: #fff;
    border: 0;
}

.services-page__geo h2,
.services-page__geo h3 {
    color: #fff !important;
}

.services-page__geo p {
    color: rgba(255, 255, 255, 0.84) !important;
}

.services-page__faq {
    display: grid;
    gap: 12px;
}

.services-page__faq details {
    padding: 20px 22px;
}

.services-page__faq summary {
    color: var(--sp-black);
    cursor: pointer;
    font-size: 18px;
    font-weight: 900;
}

.services-page__faq p {
    margin-top: 12px;
}

.services-page__final {
    padding: 42px;
    background:
        radial-gradient(circle at 88% 15%, rgba(245, 124, 0, 0.25), transparent 32%),
        var(--sp-black);
}

.services-page__final p {
    max-width: 780px;
}

.services-page__section--dark .services-page__kicker,
.services-page__final .services-page__kicker {
    color: var(--sp-orange) !important;
}

.services-page__section.services-page__section--dark {
    background:
        radial-gradient(circle at 88% 16%, rgba(245, 124, 0, 0.23), transparent 28%),
        var(--sp-black) !important;
    border-color: rgba(255, 255, 255, 0.1) !important;
}

.services-page__section--dark .services-page__form input,
.services-page__section--dark .services-page__form select,
.services-page__section--dark .services-page__form textarea {
    display: block;
}

.services-page__section--dark .services-page__form .services-page__policy {
    color: var(--sp-muted) !important;
}

.services-page__section--dark .services-page__form .services-page__success {
    color: #168a3a !important;
}

@media (max-width: 1080px) {
    .services-page__hero,
    .services-page__chooser,
    .services-page__form-layout,
    .services-page__geo,
    .services-page__final {
        grid-template-columns: 1fr;
    }

    .services-page__problem-grid,
    .services-page__benefits,
    .services-page__steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .services-page__category,
    .services-page__category--wide {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    .services-page {
        width: min(100% - 24px, 1200px);
    }

    .services-page__hero,
    .services-page__section,
    .services-page__final {
        margin-bottom: 16px;
        padding: 28px 20px;
        border-radius: 24px;
    }

    .services-page h1 {
        font-size: clamp(34px, 12vw, 48px);
    }

    .services-page__hero-copy > p {
        font-size: 17px;
    }

    .services-page__problem-grid,
    .services-page__benefits,
    .services-page__steps,
    .services-page__catalog,
    .services-page__service-list,
    .services-page__choice-grid,
    .services-page__form-grid {
        grid-template-columns: 1fr;
    }

    .services-page__category {
        aspect-ratio: auto;
        overflow: visible;
    }

    .services-page__category-top {
        flex-direction: column;
    }

    .services-page__actions,
    .services-page__wide-actions {
        align-items: stretch;
    }

    .services-page__btn {
        width: 100%;
        white-space: normal;
        text-align: center;
    }
}

/* Generic child service pages */
.service-detail-page {
    display: grid;
    gap: 24px;
    color: var(--text);
}

.service-detail-page__hero,
.service-detail-page__section,
.service-detail-page__cta {
    border-radius: 26px;
    border: 1px solid rgba(217, 217, 217, 0.78);
    background: #fff;
    box-shadow: 0 14px 38px rgba(17, 17, 17, 0.07);
}

.service-detail-page__hero {
    padding: 38px;
    background:
        radial-gradient(circle at 90% 14%, rgba(245, 124, 0, 0.18), transparent 30%),
        linear-gradient(135deg, #ffffff, #f6f6f6);
}

.service-detail-page__hero p {
    max-width: 820px;
    color: var(--muted);
    font-size: 18px;
}

.service-detail-page__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 22px;
}

.service-detail-page__meta span {
    padding: 9px 13px;
    border-radius: 999px;
    background: rgba(245, 124, 0, 0.1);
    color: #111;
    font-weight: 800;
    font-size: 14px;
}

.service-detail-page__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.service-detail-page__section {
    padding: 26px;
}

.service-detail-page__section h2,
.service-detail-page__section h3 {
    color: #111;
}

.service-detail-page__section p,
.service-detail-page__section li {
    color: var(--muted);
}

.service-detail-page__section ul {
    display: grid;
    gap: 10px;
    margin: 16px 0 0;
    padding: 0;
    list-style: none;
}

.service-detail-page__section li {
    display: flex;
    gap: 9px;
}

.service-detail-page__section li::before {
    content: "\2713";
    color: var(--accent);
    font-weight: 900;
}

.service-detail-page__cta {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 18px;
    align-items: center;
    padding: 30px;
    background: #111;
    color: #fff;
}

.service-detail-page__cta h2,
.service-detail-page__cta p {
    color: #fff !important;
}

.service-detail-page__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    padding: 13px 22px;
    border-radius: 999px;
    background: var(--accent);
    color: #fff !important;
    font-weight: 900;
    text-decoration: none;
    white-space: nowrap;
}

@media (max-width: 900px) {
    .service-detail-page__grid,
    .service-detail-page__cta {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    .service-detail-page__hero,
    .service-detail-page__section,
    .service-detail-page__cta {
        padding: 22px;
        border-radius: 22px;
    }

    .service-detail-page__button {
        width: 100%;
        white-space: normal;
        text-align: center;
    }
}

/* Chimney installation service page */
.chimney-page {
    --ch-black: #111111;
    --ch-orange: #F57C00;
    --ch-orange-bright: #FF7A00;
    --ch-white: #FFFFFF;
    --ch-light: #F5F5F5;
    --ch-line: #D9D9D9;
    --ch-text: #222222;
    --ch-muted: #666666;
    --ch-shadow: 0 16px 42px rgba(17, 17, 17, 0.09);
    width: min(1200px, calc(100% - 32px));
    margin: 0 auto;
    color: var(--ch-text);
}

.page-section:has(.chimney-page) {
    padding-top: 0;
    background: var(--ch-light, #F5F5F5);
}

.page-section:has(.chimney-page) > .container {
    width: 100%;
    max-width: none;
    padding: 0;
}

.page-section:has(.chimney-page) .breadcrumbs {
    width: min(1200px, calc(100% - 32px));
    margin: 0 auto;
    padding-top: 18px;
    padding-bottom: 12px;
}

.page-section:has(.chimney-page) .page-content {
    max-width: none;
    margin-top: 0;
}

.chimney-page h1,
.chimney-page h2,
.chimney-page h3,
.chimney-page p {
    margin-top: 0;
}

.chimney-page h1,
.chimney-page h2,
.chimney-page h3 {
    color: var(--ch-black);
    line-height: 1.12;
}

.chimney-page h1 {
    max-width: 820px;
    margin-bottom: 22px;
    font-size: clamp(36px, 5.5vw, 64px);
    letter-spacing: -0.045em;
}

.chimney-page h2 {
    margin-bottom: 14px;
    font-size: clamp(28px, 4vw, 46px);
    letter-spacing: -0.035em;
}

.chimney-page h3 {
    margin-bottom: 10px;
    font-size: 21px;
}

.chimney-page p,
.chimney-page li {
    color: var(--ch-muted);
    font-size: 16px;
    line-height: 1.6;
}

.chimney-kicker {
    display: inline-flex;
    margin-bottom: 12px;
    color: var(--ch-orange);
    font-size: 13px;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.chimney-hero,
.chimney-section,
.chimney-benefits,
.chimney-anchor {
    margin-bottom: 24px;
    border-radius: 30px;
}

.chimney-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(360px, 0.95fr);
    gap: 34px;
    align-items: center;
    padding: 48px;
    border: 1px solid rgba(217, 217, 217, 0.78);
    background:
        radial-gradient(circle at 86% 14%, rgba(245, 124, 0, 0.24), transparent 30%),
        linear-gradient(135deg, #ffffff 0%, #f6f6f6 100%);
    box-shadow: var(--ch-shadow);
}

.chimney-hero__copy > p {
    max-width: 790px;
    margin-bottom: 28px;
    color: #333333;
    font-size: 20px;
}

.chimney-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.chimney-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    padding: 13px 22px;
    border: 2px solid transparent;
    border-radius: 999px;
    font-weight: 900;
    text-decoration: none;
    transition: 0.2s ease;
    white-space: nowrap;
}

.chimney-btn:hover {
    transform: translateY(-2px);
}

.chimney-btn--primary {
    background: var(--ch-orange);
    color: #fff !important;
    box-shadow: 0 12px 26px rgba(245, 124, 0, 0.32);
}

.chimney-btn--primary:hover {
    background: var(--ch-orange-bright);
}

.chimney-btn--light {
    background: #fff;
    border-color: var(--ch-line);
    color: var(--ch-black) !important;
}

.chimney-btn--ghost {
    background: rgba(17, 17, 17, 0.06);
    color: var(--ch-black) !important;
}

.chimney-hero__price {
    display: grid;
    gap: 4px;
    max-width: 420px;
    margin-top: 26px;
    padding: 18px 20px;
    border: 1px solid rgba(245, 124, 0, 0.22);
    border-radius: 20px;
    background: rgba(245, 124, 0, 0.08);
}

.chimney-hero__price strong {
    color: var(--ch-orange);
    font-size: 28px;
}

.chimney-hero__price span {
    color: var(--ch-muted);
    font-size: 14px;
}

.chimney-visual {
    position: relative;
    min-height: 430px;
    border-radius: 30px;
    background: var(--ch-black);
    overflow: hidden;
    box-shadow: 0 22px 60px rgba(17, 17, 17, 0.22);
}

.chimney-visual::before {
    content: "";
    position: absolute;
    right: -80px;
    top: -80px;
    width: 240px;
    height: 240px;
    border-radius: 50%;
    background: rgba(245, 124, 0, 0.4);
}

.chimney-house {
    position: absolute;
    left: 72px;
    right: 72px;
    bottom: 58px;
    height: 220px;
}

.chimney-house__body {
    position: absolute;
    left: 36px;
    right: 36px;
    bottom: 0;
    height: 145px;
    border-radius: 18px 18px 8px 8px;
    background: repeating-linear-gradient(90deg, #3a2a1b 0 18px, #4a3421 18px 21px);
}

.chimney-house__roof {
    position: absolute;
    left: 10px;
    right: 10px;
    top: 18px;
    height: 120px;
    clip-path: polygon(50% 0, 100% 100%, 0 100%);
    background: #f0f0f0;
}

.chimney-house__pipe {
    position: absolute;
    right: 56px;
    top: -24px;
    width: 38px;
    height: 220px;
    border-radius: 12px;
    background: linear-gradient(90deg, #cfcfcf, #ffffff, #bdbdbd);
}

.chimney-house__cap {
    position: absolute;
    right: 42px;
    top: -40px;
    width: 66px;
    height: 22px;
    border-radius: 10px;
    background: #ffffff;
}

.chimney-note {
    position: absolute;
    max-width: 210px;
    padding: 12px 14px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
    font-size: 14px;
    font-weight: 800;
    backdrop-filter: blur(8px);
}

.chimney-note--one { left: 24px; top: 28px; }
.chimney-note--two { right: 24px; top: 128px; }
.chimney-note--three { left: 34px; bottom: 30px; }

.chimney-benefits {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 14px;
}

.chimney-benefits article,
.chimney-card,
.chimney-tile,
.chimney-scheme,
.chimney-work,
.chimney-review,
.chimney-faq details,
.chimney-error-list {
    border: 1px solid rgba(217, 217, 217, 0.78);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 12px 32px rgba(17, 17, 17, 0.06);
}

.chimney-benefits article {
    display: grid;
    gap: 8px;
    padding: 20px;
}

.chimney-benefits strong {
    color: var(--ch-black);
    font-size: 17px;
}

.chimney-benefits span {
    color: var(--ch-muted);
    font-size: 14px;
    line-height: 1.45;
}

.chimney-anchor {
    position: sticky;
    top: 0;
    z-index: 5;
    display: flex;
    gap: 10px;
    overflow-x: auto;
    padding: 12px;
    border: 1px solid rgba(217, 217, 217, 0.78);
    background: rgba(255, 255, 255, 0.94);
    backdrop-filter: blur(12px);
}

.chimney-anchor a {
    flex: 0 0 auto;
    padding: 10px 14px;
    border-radius: 999px;
    background: var(--ch-light);
    color: var(--ch-black);
    font-weight: 900;
    text-decoration: none;
    font-size: 14px;
}

.chimney-anchor a:hover {
    background: var(--ch-orange);
    color: #fff;
}

.chimney-section {
    padding: 54px 48px;
    border: 1px solid rgba(217, 217, 217, 0.78);
    background: #fff;
    box-shadow: var(--ch-shadow);
}

.chimney-section--soft {
    background: var(--ch-light);
}

.chimney-head {
    max-width: 840px;
    margin-bottom: 32px;
}

.chimney-grid {
    display: grid;
    gap: 18px;
}

.chimney-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.chimney-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.chimney-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.chimney-card,
.chimney-tile,
.chimney-scheme,
.chimney-work,
.chimney-review {
    padding: 24px;
}

.chimney-card > span {
    display: grid;
    width: 34px;
    height: 34px;
    margin-bottom: 16px;
    place-items: center;
    border-radius: 50%;
    background: rgba(245, 124, 0, 0.12);
    color: var(--ch-orange);
    font-size: 12px;
    font-weight: 900;
}

.chimney-card a {
    display: inline-flex;
    margin-top: 12px;
    color: var(--ch-orange);
    font-weight: 900;
    text-decoration: none;
}

.chimney-price-table {
    overflow: hidden;
    border: 1px solid rgba(217, 217, 217, 0.78);
    border-radius: 24px;
    background: #fff;
}

.chimney-price-table div {
    display: grid;
    grid-template-columns: 1fr 1.1fr 170px;
    gap: 18px;
    align-items: center;
    padding: 18px 22px;
    border-bottom: 1px solid rgba(217, 217, 217, 0.72);
}

.chimney-price-table div:last-child {
    border-bottom: 0;
}

.chimney-price-table strong {
    color: var(--ch-black);
}

.chimney-price-table span {
    color: var(--ch-muted);
    font-size: 14px;
}

.chimney-price-table b {
    color: var(--ch-orange);
    text-align: right;
    font-size: 18px;
}

.chimney-note-line {
    margin-top: 18px !important;
}

.chimney-section--dark,
.chimney-final,
.chimney-geo {
    background:
        radial-gradient(circle at 86% 14%, rgba(245, 124, 0, 0.24), transparent 28%),
        var(--ch-black) !important;
    color: rgba(255, 255, 255, 0.9);
}

.chimney-section--dark h2,
.chimney-section--dark h3,
.chimney-section--dark p,
.chimney-section--dark li,
.chimney-final h2,
.chimney-final p,
.chimney-geo h2,
.chimney-geo p {
    color: rgba(255, 255, 255, 0.9) !important;
}

.chimney-section--dark .chimney-kicker,
.chimney-final .chimney-kicker,
.chimney-geo .chimney-kicker {
    color: var(--ch-orange) !important;
}

.chimney-form-layout,
.chimney-safety,
.chimney-final,
.chimney-geo {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(380px, 1fr);
    gap: 34px;
    align-items: center;
}

.chimney-form {
    padding: 28px;
    border-radius: 28px;
    background: #fff;
    box-shadow: 0 18px 44px rgba(0, 0, 0, 0.22);
}

.chimney-form__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 18px;
}

.chimney-form input,
.chimney-form select,
.chimney-form textarea {
    width: 100%;
    min-height: 52px;
    padding: 12px 14px;
    border: 1px solid var(--ch-line);
    border-radius: 15px;
    background: #fff;
    color: var(--ch-black);
    font: inherit;
    outline: none;
}

.chimney-form textarea {
    grid-column: 1 / -1;
    min-height: 110px;
    resize: vertical;
}

.chimney-form input:focus,
.chimney-form select:focus,
.chimney-form textarea:focus {
    border-color: var(--ch-orange);
    box-shadow: 0 0 0 4px rgba(245, 124, 0, 0.12);
}

.chimney-policy {
    margin-top: 12px !important;
    color: var(--ch-muted) !important;
    font-size: 13px !important;
}

.chimney-success {
    margin-top: 12px !important;
    color: #168a3a !important;
    font-weight: 900;
}

.chimney-checks {
    display: grid;
    gap: 10px;
    margin: 18px 0 0;
    padding: 0;
    list-style: none;
}

.chimney-checks li {
    display: flex;
    gap: 9px;
}

.chimney-checks li::before {
    content: "\2713";
    color: var(--ch-orange);
    font-weight: 900;
}

.chimney-checks--columns {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.chimney-list-panel {
    padding: 26px;
    border-radius: 24px;
    background: var(--ch-light);
}

.chimney-warning {
    margin-top: 22px;
    padding: 18px 20px;
    border-left: 5px solid var(--ch-orange);
    border-radius: 18px;
    background: #fff;
    color: var(--ch-black);
    font-weight: 900;
}

.chimney-steps {
    counter-reset: chimney-step;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.chimney-steps article {
    padding: 22px;
    border: 1px solid rgba(217, 217, 217, 0.78);
    border-radius: 22px;
    background: #fff;
}

.chimney-steps article::before {
    counter-increment: chimney-step;
    content: counter(chimney-step);
    display: grid;
    width: 42px;
    height: 42px;
    margin-bottom: 16px;
    place-items: center;
    border-radius: 14px;
    background: var(--ch-orange);
    color: #fff;
    font-weight: 900;
}

.chimney-mini {
    height: 150px;
    margin-bottom: 18px;
    border-radius: 18px;
    background:
        linear-gradient(90deg, transparent 48%, #f3f3f3 48% 55%, transparent 55%),
        linear-gradient(135deg, #2b2b2b, #111111);
    position: relative;
}

.chimney-mini::after {
    content: "";
    position: absolute;
    width: 70px;
    height: 70px;
    left: 28px;
    bottom: 22px;
    border-radius: 14px 14px 4px 4px;
    background: var(--ch-orange);
    opacity: 0.9;
}

.chimney-error-list {
    display: grid;
    gap: 12px;
    margin: 0;
    padding: 24px 24px 24px 44px;
}

.chimney-error-list li::marker {
    color: var(--ch-orange);
}

.chimney-work div {
    display: grid;
    height: 120px;
    margin: -4px -4px 18px;
    place-items: center;
    border-radius: 18px;
    background: var(--ch-black);
    font-size: 54px;
}

.chimney-review strong {
    display: block;
    margin-bottom: 12px;
    color: var(--ch-orange);
}

.chimney-faq {
    display: grid;
    gap: 12px;
}

.chimney-faq details {
    padding: 20px 22px;
}

.chimney-faq summary {
    cursor: pointer;
    color: var(--ch-black);
    font-size: 18px;
    font-weight: 900;
}

.chimney-faq p {
    margin-top: 12px;
}

.chimney-final .chimney-form {
    box-shadow: none;
}

@media (max-width: 1080px) {
    .chimney-hero,
    .chimney-form-layout,
    .chimney-safety,
    .chimney-final,
    .chimney-geo {
        grid-template-columns: 1fr;
    }

    .chimney-benefits,
    .chimney-grid--4,
    .chimney-steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .chimney-grid--3 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .chimney-page {
        width: min(100% - 24px, 1200px);
    }

    .chimney-hero,
    .chimney-section {
        padding: 28px 20px;
        border-radius: 24px;
    }

    .chimney-page h1 {
        font-size: clamp(34px, 12vw, 48px);
    }

    .chimney-hero__copy > p {
        font-size: 17px;
    }

    .chimney-visual {
        min-height: 360px;
    }

    .chimney-benefits,
    .chimney-grid--2,
    .chimney-grid--3,
    .chimney-grid--4,
    .chimney-steps,
    .chimney-checks--columns,
    .chimney-form__grid {
        grid-template-columns: 1fr;
    }

    .chimney-price-table div {
        grid-template-columns: 1fr;
        gap: 6px;
    }

    .chimney-price-table b {
        text-align: left;
    }

    .chimney-btn {
        width: 100%;
        white-space: normal;
        text-align: center;
    }
}

/* Fireplace installation service page */
.fireplace-page {
    --fp-black: #111111;
    --fp-orange: #F57C00;
    --fp-orange2: #FF7A00;
    --fp-white: #FFFFFF;
    --fp-light: #F5F5F5;
    --fp-line: #D9D9D9;
    --fp-text: #222222;
    --fp-muted: #666666;
    --fp-shadow: 0 16px 42px rgba(17, 17, 17, 0.09);
    width: min(1200px, calc(100% - 32px));
    margin: 0 auto;
    color: var(--fp-text);
}

.page-section:has(.fireplace-page) {
    padding-top: 0;
    background: var(--fp-light, #F5F5F5);
}

.page-section:has(.fireplace-page) > .container {
    width: 100%;
    max-width: none;
    padding: 0;
}

.page-section:has(.fireplace-page) .breadcrumbs {
    width: min(1200px, calc(100% - 32px));
    margin: 0 auto;
    padding-top: 18px;
    padding-bottom: 12px;
}

.page-section:has(.fireplace-page) .page-content {
    max-width: none;
    margin-top: 0;
}

.fireplace-page h1,
.fireplace-page h2,
.fireplace-page h3,
.fireplace-page p {
    margin-top: 0;
}

.fireplace-page h1,
.fireplace-page h2,
.fireplace-page h3 {
    color: var(--fp-black);
    line-height: 1.12;
}

.fireplace-page h1 {
    max-width: 760px;
    margin-bottom: 22px;
    font-size: clamp(38px, 5.5vw, 64px);
    letter-spacing: -0.045em;
}

.fireplace-page h2 {
    margin-bottom: 14px;
    font-size: clamp(28px, 4vw, 46px);
    letter-spacing: -0.035em;
}

.fireplace-page h3 {
    margin-bottom: 10px;
    font-size: 21px;
}

.fireplace-page p,
.fireplace-page li {
    color: var(--fp-muted);
    font-size: 16px;
    line-height: 1.6;
}

.fireplace-kicker {
    display: inline-flex;
    margin-bottom: 12px;
    color: var(--fp-orange);
    font-size: 13px;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.fireplace-hero,
.fireplace-section,
.fireplace-quick-form,
.fireplace-trust,
.fireplace-final {
    margin-bottom: 24px;
    border-radius: 30px;
}

.fireplace-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(360px, 0.95fr);
    gap: 34px;
    align-items: center;
    padding: 48px;
    border: 1px solid rgba(217, 217, 217, 0.78);
    background:
        radial-gradient(circle at 86% 14%, rgba(245, 124, 0, 0.24), transparent 30%),
        linear-gradient(135deg, #ffffff 0%, #f6f6f6 100%);
    box-shadow: var(--fp-shadow);
}

.fireplace-hero__content > p {
    max-width: 780px;
    margin-bottom: 24px;
    color: #333;
    font-size: 20px;
}

.fireplace-list,
.fireplace-checks {
    display: grid;
    gap: 10px;
    margin: 18px 0 0;
    padding: 0;
    list-style: none;
}

.fireplace-list li,
.fireplace-checks li {
    display: flex;
    gap: 9px;
}

.fireplace-list li::before,
.fireplace-checks li::before {
    content: "\2713";
    color: var(--fp-orange);
    font-weight: 900;
}

.fireplace-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 26px;
}

.fireplace-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    padding: 13px 22px;
    border: 2px solid transparent;
    border-radius: 999px;
    font-weight: 900;
    text-decoration: none;
    transition: 0.2s ease;
    white-space: nowrap;
}

.fireplace-btn:hover {
    transform: translateY(-2px);
}

.fireplace-btn--primary {
    background: var(--fp-orange);
    color: #fff !important;
    box-shadow: 0 12px 26px rgba(245, 124, 0, 0.32);
}

.fireplace-btn--primary:hover {
    background: var(--fp-orange2);
}

.fireplace-btn--light {
    background: #fff;
    border-color: var(--fp-line);
    color: var(--fp-black) !important;
}

.fireplace-visual {
    position: relative;
    min-height: 420px;
    border-radius: 30px;
    background:
        radial-gradient(circle at 70% 20%, rgba(245, 124, 0, 0.42), transparent 30%),
        var(--fp-black);
    overflow: hidden;
    box-shadow: 0 22px 60px rgba(17, 17, 17, 0.22);
}

.fireplace-visual__fire {
    position: absolute;
    left: 50%;
    bottom: 62px;
    width: 190px;
    height: 150px;
    transform: translateX(-50%);
    border-radius: 24px 24px 10px 10px;
    background: linear-gradient(135deg, #2f2f2f, #111);
    border: 8px solid #3c3c3c;
}

.fireplace-visual__fire::before {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 28px;
    width: 72px;
    height: 88px;
    transform: translateX(-50%) rotate(8deg);
    border-radius: 60% 40% 55% 45%;
    background: radial-gradient(circle at 50% 80%, #ffcf6b, var(--fp-orange) 54%, #702200 78%);
}

.fireplace-visual__fire::after {
    content: "";
    position: absolute;
    left: 72px;
    top: -150px;
    width: 44px;
    height: 150px;
    border-radius: 14px 14px 4px 4px;
    background: linear-gradient(90deg, #d8d8d8, #fff, #bdbdbd);
}

.fireplace-visual span {
    position: absolute;
    max-width: 190px;
    padding: 12px 14px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
    font-size: 14px;
    font-weight: 800;
    backdrop-filter: blur(8px);
}

.fireplace-visual span:nth-of-type(1) { left: 24px; top: 26px; }
.fireplace-visual span:nth-of-type(2) { right: 24px; top: 96px; }
.fireplace-visual span:nth-of-type(3) { left: 34px; bottom: 28px; }
.fireplace-visual span:nth-of-type(4) { right: 24px; bottom: 76px; }

.fireplace-quick-form {
    display: grid;
    grid-template-columns: 0.8fr 1.2fr;
    gap: 24px;
    align-items: center;
    padding: 30px;
    border: 1px solid rgba(217, 217, 217, 0.78);
    background: #fff;
    box-shadow: var(--fp-shadow);
}

.fireplace-quick-form form,
.fireplace-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.fireplace-quick-form input,
.fireplace-quick-form select,
.fireplace-form input,
.fireplace-form select,
.fireplace-form textarea {
    width: 100%;
    min-height: 52px;
    padding: 12px 14px;
    border: 1px solid var(--fp-line);
    border-radius: 15px;
    background: #fff;
    color: var(--fp-black);
    font: inherit;
    outline: none;
}

.fireplace-form textarea {
    grid-column: 1 / -1;
    min-height: 110px;
    resize: vertical;
}

.fireplace-success,
.fireplace-policy {
    grid-column: 1 / -1;
    margin: 0 !important;
    font-size: 13px !important;
}

.fireplace-success {
    color: #168a3a !important;
    font-weight: 900;
}

.fireplace-trust {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.fireplace-trust article,
.fireplace-card,
.fireplace-tile,
.fireplace-dark-card,
.fireplace-work,
.fireplace-faq details {
    border: 1px solid rgba(217, 217, 217, 0.78);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 12px 32px rgba(17, 17, 17, 0.06);
}

.fireplace-trust article {
    display: grid;
    gap: 8px;
    padding: 20px;
}

.fireplace-trust strong {
    color: var(--fp-black);
    font-size: 17px;
}

.fireplace-trust span {
    color: var(--fp-muted);
    font-size: 14px;
}

.fireplace-section {
    padding: 54px 48px;
    border: 1px solid rgba(217, 217, 217, 0.78);
    background: #fff;
    box-shadow: var(--fp-shadow);
}

.fireplace-section--soft {
    background: var(--fp-light);
}

.fireplace-head {
    max-width: 840px;
    margin-bottom: 32px;
}

.fireplace-grid {
    display: grid;
    gap: 18px;
}

.fireplace-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.fireplace-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.fireplace-card,
.fireplace-dark-card,
.fireplace-work {
    padding: 24px;
}

.fireplace-tile {
    display: flex;
    align-items: center;
    min-height: 76px;
    padding: 18px 20px;
    color: var(--fp-black);
    font-weight: 900;
}

.fireplace-two {
    display: grid;
    grid-template-columns: 1fr 0.9fr;
    gap: 30px;
    align-items: center;
}

.fireplace-checks {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.fireplace-cutaway {
    position: relative;
    min-height: 340px;
    border-radius: 28px;
    background: var(--fp-black);
    overflow: hidden;
}

.fireplace-cutaway__pipe {
    position: absolute;
    left: 50%;
    top: 24px;
    width: 44px;
    height: 180px;
    transform: translateX(-50%);
    border-radius: 14px;
    background: linear-gradient(90deg, #d8d8d8, #fff, #bdbdbd);
}

.fireplace-cutaway__box {
    position: absolute;
    left: 50%;
    bottom: 58px;
    width: 180px;
    height: 112px;
    transform: translateX(-50%);
    border: 8px solid #3d3d3d;
    border-radius: 22px;
    background: #181818;
}

.fireplace-cutaway__flame {
    position: absolute;
    left: 50%;
    bottom: 86px;
    width: 62px;
    height: 76px;
    transform: translateX(-50%) rotate(8deg);
    border-radius: 60% 40% 55% 45%;
    background: var(--fp-orange);
}

.fireplace-cutaway span {
    position: absolute;
    left: 22px;
    bottom: 22px;
    color: #fff;
    font-weight: 900;
}

.fireplace-price-table {
    overflow: hidden;
    border: 1px solid rgba(217, 217, 217, 0.78);
    border-radius: 24px;
    background: #fff;
}

.fireplace-price-table div {
    display: grid;
    grid-template-columns: 1fr 150px;
    gap: 18px;
    align-items: center;
    padding: 18px 22px;
    border-bottom: 1px solid rgba(217, 217, 217, 0.72);
}

.fireplace-price-table div:last-child {
    border-bottom: 0;
}

.fireplace-price-table strong {
    color: var(--fp-black);
}

.fireplace-price-table b {
    color: var(--fp-orange);
    text-align: right;
}

.fireplace-section--dark,
.fireplace-final {
    background:
        radial-gradient(circle at 86% 14%, rgba(245, 124, 0, 0.24), transparent 28%),
        var(--fp-black) !important;
    color: rgba(255, 255, 255, 0.9);
}

.fireplace-section--dark h2,
.fireplace-section--dark h3,
.fireplace-section--dark p,
.fireplace-section--dark li,
.fireplace-final h2,
.fireplace-final p {
    color: rgba(255, 255, 255, 0.9) !important;
}

.fireplace-section--dark .fireplace-kicker,
.fireplace-final .fireplace-kicker {
    color: var(--fp-orange) !important;
}

.fireplace-warning {
    margin-top: 22px;
    padding: 18px 20px;
    border-left: 5px solid var(--fp-orange);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
    font-weight: 900;
}

.fireplace-checks--dark li {
    padding: 12px 14px;
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.08);
}

.fireplace-dark-card {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.12);
}

.fireplace-steps {
    counter-reset: fireplace-step;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.fireplace-steps article {
    padding: 22px;
    border: 1px solid rgba(217, 217, 217, 0.78);
    border-radius: 22px;
    background: #fff;
}

.fireplace-steps article::before {
    counter-increment: fireplace-step;
    content: counter(fireplace-step);
    display: grid;
    width: 42px;
    height: 42px;
    margin-bottom: 16px;
    place-items: center;
    border-radius: 14px;
    background: var(--fp-orange);
    color: #fff;
    font-weight: 900;
}

.fireplace-work div {
    display: grid;
    height: 140px;
    margin-bottom: 18px;
    place-items: center;
    border-radius: 18px;
    background: var(--fp-black);
    font-size: 56px;
}

.fireplace-work a {
    display: inline-flex;
    margin-top: 12px;
    color: var(--fp-orange);
    font-weight: 900;
    text-decoration: none;
}

.fireplace-faq {
    display: grid;
    gap: 12px;
}

.fireplace-faq details {
    padding: 20px 22px;
}

.fireplace-faq summary {
    cursor: pointer;
    color: var(--fp-black);
    font-size: 18px;
    font-weight: 900;
}

.fireplace-faq p {
    margin-top: 12px;
}

.fireplace-final {
    display: grid;
    grid-template-columns: 0.9fr 1.1fr;
    gap: 34px;
    align-items: center;
    padding: 42px;
}

.fireplace-final .fireplace-form {
    padding: 28px;
    border-radius: 28px;
    background: #fff;
}

.fireplace-final .fireplace-policy {
    color: var(--fp-muted) !important;
}

@media (max-width: 1080px) {
    .fireplace-hero,
    .fireplace-quick-form,
    .fireplace-two,
    .fireplace-final {
        grid-template-columns: 1fr;
    }

    .fireplace-grid--4,
    .fireplace-trust,
    .fireplace-steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .fireplace-grid--3 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .fireplace-page {
        width: min(100% - 24px, 1200px);
    }

    .fireplace-hero,
    .fireplace-section,
    .fireplace-final,
    .fireplace-quick-form {
        padding: 28px 20px;
        border-radius: 24px;
    }

    .fireplace-page h1 {
        font-size: clamp(34px, 12vw, 48px);
    }

    .fireplace-hero__content > p {
        font-size: 17px;
    }

    .fireplace-visual {
        min-height: 360px;
    }

    .fireplace-grid--3,
    .fireplace-grid--4,
    .fireplace-trust,
    .fireplace-steps,
    .fireplace-checks,
    .fireplace-quick-form form,
    .fireplace-form {
        grid-template-columns: 1fr;
    }

    .fireplace-price-table div {
        grid-template-columns: 1fr;
        gap: 6px;
    }

    .fireplace-price-table b {
        text-align: left;
    }

    .fireplace-btn {
        width: 100%;
        white-space: normal;
        text-align: center;
    }
}

/* Chimney cleaning service page */
.cleaning-page {
    --cl-black: #111111;
    --cl-orange: #F57C00;
    --cl-orange2: #FF7A00;
    --cl-white: #FFFFFF;
    --cl-light: #F5F5F5;
    --cl-line: #D9D9D9;
    --cl-text: #222222;
    --cl-muted: #666666;
    --cl-shadow: 0 16px 42px rgba(17, 17, 17, 0.09);
    width: min(1200px, calc(100% - 32px));
    margin: 0 auto;
    color: var(--cl-text);
}

.page-section:has(.cleaning-page) {
    padding-top: 0;
    background: var(--cl-light, #F5F5F5);
}

.page-section:has(.cleaning-page) > .container {
    width: 100%;
    max-width: none;
    padding: 0;
}

.page-section:has(.cleaning-page) .breadcrumbs {
    width: min(1200px, calc(100% - 32px));
    margin: 0 auto;
    padding-top: 18px;
    padding-bottom: 12px;
}

.page-section:has(.cleaning-page) .page-content {
    max-width: none;
    margin-top: 0;
}

.cleaning-page h1,
.cleaning-page h2,
.cleaning-page h3,
.cleaning-page p {
    margin-top: 0;
}

.cleaning-page h1,
.cleaning-page h2,
.cleaning-page h3 {
    color: var(--cl-black);
    line-height: 1.12;
}

.cleaning-page h1 {
    max-width: 820px;
    margin-bottom: 22px;
    font-size: clamp(36px, 5.5vw, 64px);
    letter-spacing: -0.045em;
}

.cleaning-page h2 {
    margin-bottom: 14px;
    font-size: clamp(28px, 4vw, 46px);
    letter-spacing: -0.035em;
}

.cleaning-page h3 {
    margin-bottom: 10px;
    font-size: 21px;
}

.cleaning-page p,
.cleaning-page li {
    color: var(--cl-muted);
    font-size: 16px;
    line-height: 1.6;
}

.cleaning-kicker {
    display: inline-flex;
    margin-bottom: 12px;
    color: var(--cl-orange);
    font-size: 13px;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.cleaning-hero,
.cleaning-section,
.cleaning-stats,
.cleaning-anchor,
.cleaning-final {
    margin-bottom: 24px;
    border-radius: 30px;
}

.cleaning-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(360px, 0.95fr);
    gap: 34px;
    align-items: center;
    padding: 48px;
    border: 1px solid rgba(217, 217, 217, 0.78);
    background:
        radial-gradient(circle at 86% 14%, rgba(245, 124, 0, 0.24), transparent 30%),
        linear-gradient(135deg, #ffffff 0%, #f6f6f6 100%);
    box-shadow: var(--cl-shadow);
}

.cleaning-hero__content > p {
    max-width: 790px;
    margin-bottom: 24px;
    color: #333;
    font-size: 20px;
}

.cleaning-list,
.cleaning-checks {
    display: grid;
    gap: 10px;
    margin: 18px 0 0;
    padding: 0;
    list-style: none;
}

.cleaning-list li,
.cleaning-checks li {
    display: flex;
    gap: 9px;
}

.cleaning-list li::before,
.cleaning-checks li::before {
    content: "\2713";
    color: var(--cl-orange);
    font-weight: 900;
}

.cleaning-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 26px;
}

.cleaning-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    padding: 13px 22px;
    border: 2px solid transparent;
    border-radius: 999px;
    font-weight: 900;
    text-decoration: none;
    transition: 0.2s ease;
    white-space: nowrap;
}

.cleaning-btn:hover {
    transform: translateY(-2px);
}

.cleaning-btn--primary {
    background: var(--cl-orange);
    color: #fff !important;
    box-shadow: 0 12px 26px rgba(245, 124, 0, 0.32);
}

.cleaning-btn--primary:hover {
    background: var(--cl-orange2);
}

.cleaning-btn--light {
    background: #fff;
    border-color: var(--cl-line);
    color: var(--cl-black) !important;
}

.cleaning-visual {
    position: relative;
    min-height: 420px;
    border-radius: 30px;
    background:
        radial-gradient(circle at 70% 20%, rgba(245, 124, 0, 0.36), transparent 30%),
        var(--cl-black);
    overflow: hidden;
    box-shadow: 0 22px 60px rgba(17, 17, 17, 0.22);
}

.cleaning-visual__pipe {
    position: absolute;
    left: 50%;
    top: 42px;
    width: 72px;
    height: 290px;
    transform: translateX(-50%);
    border-radius: 20px;
    background: linear-gradient(90deg, #cfcfcf, #fff, #bdbdbd);
}

.cleaning-visual__pipe::before {
    content: "";
    position: absolute;
    left: -26px;
    top: 80px;
    width: 124px;
    height: 124px;
    border-radius: 50%;
    background: repeating-radial-gradient(circle, rgba(17,17,17,0.9) 0 12px, rgba(245,124,0,0.9) 12px 17px);
    opacity: 0.8;
}

.cleaning-visual__brush {
    position: absolute;
    right: 68px;
    top: 82px;
    width: 18px;
    height: 250px;
    border-radius: 999px;
    background: var(--cl-orange);
    transform: rotate(28deg);
}

.cleaning-visual__brush::before {
    content: "";
    position: absolute;
    left: -32px;
    top: -28px;
    width: 82px;
    height: 82px;
    border-radius: 50%;
    background: repeating-radial-gradient(circle, #fff 0 5px, transparent 5px 10px);
}

.cleaning-before-after {
    position: absolute;
    left: 24px;
    right: 24px;
    bottom: 24px;
    display: grid;
    gap: 4px;
    padding: 18px;
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
}

.cleaning-before-after strong,
.cleaning-before-after span {
    color: #fff;
}

.cleaning-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.cleaning-stats article,
.cleaning-card,
.cleaning-tile,
.cleaning-photo,
.cleaning-review,
.cleaning-faq details,
.cleaning-dark-card {
    border: 1px solid rgba(217, 217, 217, 0.78);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 12px 32px rgba(17, 17, 17, 0.06);
}

.cleaning-stats article {
    display: grid;
    gap: 6px;
    padding: 20px;
}

.cleaning-stats strong {
    color: var(--cl-orange);
    font-size: 24px;
}

.cleaning-stats span {
    color: var(--cl-muted);
    font-size: 14px;
}

.cleaning-anchor {
    position: sticky;
    top: 0;
    z-index: 5;
    display: flex;
    gap: 10px;
    overflow-x: auto;
    padding: 12px;
    border: 1px solid rgba(217, 217, 217, 0.78);
    background: rgba(255, 255, 255, 0.94);
    backdrop-filter: blur(12px);
}

.cleaning-anchor a {
    flex: 0 0 auto;
    padding: 10px 14px;
    border-radius: 999px;
    background: var(--cl-light);
    color: var(--cl-black);
    font-weight: 900;
    text-decoration: none;
    font-size: 14px;
}

.cleaning-section {
    padding: 54px 48px;
    border: 1px solid rgba(217, 217, 217, 0.78);
    background: #fff;
    box-shadow: var(--cl-shadow);
}

.cleaning-section--soft {
    background: var(--cl-light);
}

.cleaning-head {
    max-width: 840px;
    margin-bottom: 32px;
}

.cleaning-grid {
    display: grid;
    gap: 18px;
}

.cleaning-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cleaning-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cleaning-grid--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }

.cleaning-card,
.cleaning-photo,
.cleaning-review,
.cleaning-dark-card {
    padding: 24px;
}

.cleaning-tile {
    display: flex;
    align-items: center;
    min-height: 78px;
    padding: 18px 20px;
    color: var(--cl-black);
    font-weight: 900;
}

.cleaning-cta-line {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
    margin-top: 26px;
    padding: 20px;
    border-radius: 20px;
    background: var(--cl-light);
}

.cleaning-cta-line strong {
    color: var(--cl-black);
}

.cleaning-cta-line span {
    color: var(--cl-muted);
}

.cleaning-price-table,
.cleaning-compare {
    overflow: hidden;
    border: 1px solid rgba(217, 217, 217, 0.78);
    border-radius: 24px;
    background: #fff;
}

.cleaning-price-table div,
.cleaning-compare div {
    display: grid;
    grid-template-columns: 1fr 170px;
    gap: 18px;
    align-items: center;
    padding: 18px 22px;
    border-bottom: 1px solid rgba(217, 217, 217, 0.72);
}

.cleaning-compare div {
    grid-template-columns: 0.6fr 1.4fr;
}

.cleaning-price-table div:last-child,
.cleaning-compare div:last-child {
    border-bottom: 0;
}

.cleaning-price-table strong,
.cleaning-compare strong {
    color: var(--cl-black);
}

.cleaning-price-table b {
    color: var(--cl-orange);
    text-align: right;
}

.cleaning-note {
    margin-top: 18px !important;
}

.cleaning-section--dark,
.cleaning-final,
.cleaning-geo {
    background:
        radial-gradient(circle at 86% 14%, rgba(245, 124, 0, 0.24), transparent 28%),
        var(--cl-black) !important;
    color: rgba(255, 255, 255, 0.9);
}

.cleaning-section--dark h2,
.cleaning-section--dark h3,
.cleaning-section--dark p,
.cleaning-section--dark li,
.cleaning-final h2,
.cleaning-final p,
.cleaning-geo h2,
.cleaning-geo p {
    color: rgba(255, 255, 255, 0.9) !important;
}

.cleaning-section--dark .cleaning-kicker,
.cleaning-final .cleaning-kicker,
.cleaning-geo .cleaning-kicker {
    color: var(--cl-orange) !important;
}

.cleaning-dark-card {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.12);
}

.cleaning-dark-cta {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    align-items: center;
    margin-top: 26px;
}

.cleaning-dark-cta strong {
    color: #fff;
    font-size: 20px;
}

.cleaning-steps {
    counter-reset: cleaning-step;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.cleaning-steps article {
    padding: 22px;
    border: 1px solid rgba(217, 217, 217, 0.78);
    border-radius: 22px;
    background: #fff;
}

.cleaning-steps article::before {
    counter-increment: cleaning-step;
    content: counter(cleaning-step);
    display: grid;
    width: 42px;
    height: 42px;
    margin-bottom: 16px;
    place-items: center;
    border-radius: 14px;
    background: var(--cl-orange);
    color: #fff;
    font-weight: 900;
}

.cleaning-photo div {
    display: grid;
    height: 140px;
    margin-bottom: 18px;
    place-items: center;
    border-radius: 18px;
    background: linear-gradient(135deg, var(--cl-black), #343434);
    color: var(--cl-orange);
    font-size: 24px;
    font-weight: 900;
}

.cleaning-geo {
    display: grid;
    grid-template-columns: 0.85fr 1.15fr;
    gap: 28px;
    align-items: center;
}

.cleaning-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.cleaning-tags span {
    padding: 10px 13px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.09);
    color: #fff;
    font-weight: 800;
}

.cleaning-review strong {
    display: block;
    margin-bottom: 12px;
    color: var(--cl-orange);
}

.cleaning-form-layout,
.cleaning-final {
    display: grid;
    grid-template-columns: 0.9fr 1.1fr;
    gap: 34px;
    align-items: center;
}

.cleaning-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    padding: 28px;
    border-radius: 28px;
    background: #fff;
    box-shadow: 0 18px 44px rgba(0, 0, 0, 0.22);
}

.cleaning-form input,
.cleaning-form select,
.cleaning-form textarea {
    width: 100%;
    min-height: 52px;
    padding: 12px 14px;
    border: 1px solid var(--cl-line);
    border-radius: 15px;
    background: #fff;
    color: var(--cl-black);
    font: inherit;
    outline: none;
}

.cleaning-form textarea {
    grid-column: 1 / -1;
    min-height: 110px;
    resize: vertical;
}

.cleaning-form button,
.cleaning-policy,
.cleaning-success {
    grid-column: 1 / -1;
}

.cleaning-policy {
    margin: 0 !important;
    color: var(--cl-muted) !important;
    font-size: 13px !important;
}

.cleaning-success {
    margin: 0 !important;
    color: #168a3a !important;
    font-weight: 900;
}

.cleaning-faq {
    display: grid;
    gap: 12px;
}

.cleaning-faq details {
    padding: 20px 22px;
    border: 1px solid rgba(217, 217, 217, 0.78);
    border-radius: 22px;
    background: #fff;
}

.cleaning-faq summary {
    cursor: pointer;
    color: var(--cl-black);
    font-size: 18px;
    font-weight: 900;
}

.cleaning-faq p {
    margin-top: 12px;
}

.cleaning-final {
    padding: 42px;
}

@media (max-width: 1080px) {
    .cleaning-hero,
    .cleaning-geo,
    .cleaning-form-layout,
    .cleaning-final {
        grid-template-columns: 1fr;
    }

    .cleaning-grid--4,
    .cleaning-grid--5,
    .cleaning-stats,
    .cleaning-steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .cleaning-page {
        width: min(100% - 24px, 1200px);
    }

    .cleaning-hero,
    .cleaning-section,
    .cleaning-final {
        padding: 28px 20px;
        border-radius: 24px;
    }

    .cleaning-page h1 {
        font-size: clamp(34px, 12vw, 48px);
    }

    .cleaning-hero__content > p {
        font-size: 17px;
    }

    .cleaning-visual {
        min-height: 340px;
    }

    .cleaning-grid--3,
    .cleaning-grid--4,
    .cleaning-grid--5,
    .cleaning-stats,
    .cleaning-steps,
    .cleaning-form {
        grid-template-columns: 1fr;
    }

    .cleaning-price-table div,
    .cleaning-compare div {
        grid-template-columns: 1fr;
        gap: 6px;
    }

    .cleaning-price-table b {
        text-align: left;
    }

    .cleaning-btn {
        width: 100%;
        white-space: normal;
        text-align: center;
    }
}

/* Universal service page template */
.service-page {
    --service-bg: #f5f5f5;
    --service-soft: #fff7ed;
    --service-dark: #111;
    --service-text: #111;
    --service-muted: #5f6368;
    --service-accent: #f57c00;
    --service-accent-dark: #d86c00;
    --service-border: rgba(17, 17, 17, 0.12);
    width: min(100%, 1200px);
    margin: 0 auto;
    color: var(--service-text);
}

.page-section:has(.service-page) {
    padding-top: 0;
    background: #f3f3f3;
}

.page-section:has(.service-page) > .container {
    width: 100%;
    max-width: none;
}

.page-section:has(.service-page) .breadcrumbs {
    width: min(1200px, calc(100% - 32px));
    margin: 0 auto 24px;
}

.page-section:has(.service-page) .page-content {
    width: 100%;
    max-width: none;
    margin-top: 0;
}

.service-page h1,
.service-page h2,
.service-page h3,
.service-page p {
    margin-top: 0;
}

.service-page h1,
.service-page h2,
.service-page h3 {
    color: var(--service-text);
    line-height: 1.08;
    letter-spacing: -0.03em;
}

.service-page h1 {
    font-size: clamp(36px, 4.4vw, 58px);
    margin-bottom: 18px;
}

.service-page h2 {
    font-size: clamp(28px, 4vw, 46px);
    margin-bottom: 14px;
}

.service-page h3 {
    font-size: 21px;
    margin-bottom: 8px;
}

.service-page p,
.service-page li {
    color: var(--service-muted);
    font-size: 17px;
    line-height: 1.58;
}

.service-section,
.service-hero,
.service-final,
.service-quick-form {
    margin: 28px 0;
    border: 1px solid rgba(217, 217, 217, 0.82);
    border-radius: 28px;
    padding: clamp(24px, 4vw, 54px);
    background: #fff;
    box-shadow: 0 16px 50px rgba(17, 17, 17, 0.08);
}

.service-section--soft,
.service-quick-form {
    background: var(--service-soft);
}

.service-section--dark,
.service-final {
    background: radial-gradient(circle at 88% 12%, rgba(245, 124, 0, 0.25), transparent 32%), var(--service-dark);
    color: #fff;
}

.service-section--dark h2,
.service-section--dark h3,
.service-section--dark p,
.service-section--dark li,
.service-final h2,
.service-final h3,
.service-final p,
.service-final li {
    color: rgba(255, 255, 255, 0.9);
}

.service-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(245, 124, 0, 0.12);
    color: var(--service-accent-dark);
    font-size: 13px;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.service-section--dark .service-kicker,
.service-final .service-kicker {
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
}

.service-head {
    max-width: 860px;
    margin-bottom: 28px;
}

.service-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(300px, 0.65fr);
    gap: 28px;
    align-items: stretch;
    background: radial-gradient(circle at top right, rgba(245, 124, 0, 0.16), transparent 34%), #fff;
}

.service-hero__lead {
    max-width: 780px;
    font-size: 19px !important;
}

.service-hero__content,
.service-hero__card {
    min-width: 0;
}

.service-hero__bullets {
    display: grid;
    gap: 10px;
    padding: 0;
    margin: 24px 0;
    list-style: none;
}

.service-hero__bullets li {
    position: relative;
    padding-left: 28px;
}

.service-hero__bullets li::before {
    content: "\2713";
    position: absolute;
    left: 0;
    color: var(--service-accent);
    font-weight: 900;
}

.service-hero__actions,
.service-final__actions,
.service-inline-cta {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
    margin-top: 24px;
}

.service-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    padding: 13px 22px;
    border: 1px solid transparent;
    border-radius: 999px;
    font-weight: 900;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    transition: 0.22s ease;
}

.service-btn--primary {
    background: var(--service-accent);
    color: #fff;
    box-shadow: 0 14px 30px rgba(245, 124, 0, 0.27);
}

.service-btn--primary:hover {
    background: var(--service-accent-dark);
    transform: translateY(-2px);
}

.service-btn--secondary {
    background: #fff;
    color: var(--service-text);
    border-color: var(--service-border);
}

.service-btn--phone {
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
    border-color: rgba(255, 255, 255, 0.22);
}

.service-hero__meta,
.service-stats,
.service-grid,
.service-steps,
.service-reviews,
.service-gallery {
    display: grid;
    gap: 16px;
}

.service-hero__meta {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 24px;
}

.service-hero__meta div,
.service-stats article,
.service-card,
.service-tile,
.service-step,
.service-review,
.service-photo,
.service-mistake,
.service-danger {
    min-width: 0;
    padding: 20px;
    border: 1px solid var(--service-border);
    border-radius: 22px;
    background: #fff;
}

.service-hero__meta strong,
.service-stats strong,
.service-price-row strong,
.service-inline-cta strong {
    display: block;
    color: var(--service-text);
    font-size: 18px;
    font-weight: 900;
}

.service-hero__meta span,
.service-stats span {
    color: var(--service-muted);
}

.service-hero__card {
    display: grid;
    gap: 18px;
    align-content: stretch;
}

.service-hero__visual {
    display: grid;
    min-height: 260px;
    place-items: center;
    overflow: hidden;
    border-radius: 26px;
    background: linear-gradient(135deg, #151515, #3a2a1e);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.1);
}

.service-hero__visual span {
    font-size: 96px;
    filter: drop-shadow(0 18px 35px rgba(245, 124, 0, 0.35));
}

.service-mini-form {
    padding: 22px;
    border: 1px solid var(--service-border);
    border-radius: 24px;
    background: #fff;
}

.service-grid--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.service-grid--3,
.service-steps,
.service-reviews {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.service-grid--4,
.service-gallery,
.service-stats {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.service-card,
.service-tile,
.service-mistake,
.service-danger {
    display: flex;
    gap: 12px;
    align-items: flex-start;
}

.service-card:has(h3) {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start;
}

.service-card:has(h3) > h3 {
    grid-column: 2;
    margin: 0 0 8px;
}

.service-card:has(h3) > p {
    grid-column: 2;
}

.service-card span,
.service-tile span,
.service-mistake span,
.service-danger span,
.service-check span {
    flex: 0 0 auto;
    color: var(--service-accent);
    font-weight: 900;
}

.service-card p,
.service-tile p,
.service-mistake p,
.service-danger p,
.service-check p {
    margin: 0;
}

.service-section--dark .service-card,
.service-section--dark .service-danger {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.14);
}

.service-section--dark .service-card p,
.service-section--dark .service-danger p {
    color: rgba(255, 255, 255, 0.9);
}

.service-checklist {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.service-check {
    display: flex;
    gap: 12px;
    padding: 18px;
    border-radius: 18px;
    background: var(--service-soft);
}

.service-price-table {
    display: grid;
    gap: 10px;
}

.service-price-row {
    display: grid;
    grid-template-columns: 1.1fr 1.7fr auto;
    gap: 18px;
    align-items: center;
    padding: 18px 20px;
    border: 1px solid var(--service-border);
    border-radius: 18px;
    background: #fff;
}

.service-price-row b {
    color: var(--service-accent);
    font-size: 19px;
    white-space: nowrap;
}

.service-step {
    counter-increment: service-step;
}

.service-steps {
    counter-reset: service-step;
}

.service-step::before {
    content: counter(service-step);
    display: grid;
    width: 42px;
    height: 42px;
    margin-bottom: 14px;
    place-items: center;
    border-radius: 14px;
    background: var(--service-accent);
    color: #fff;
    font-weight: 900;
}

.service-photo {
    display: grid;
    min-height: 170px;
    place-items: center;
    text-align: center;
    background: linear-gradient(135deg, #1b1b1b, #343434);
}

.service-photo span {
    font-size: 42px;
}

.service-photo strong {
    color: #fff;
}

.service-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.service-tags span {
    padding: 10px 14px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
    font-weight: 800;
}

.service-review strong {
    color: var(--service-accent);
}

.service-faq {
    display: grid;
    gap: 12px;
}

.service-faq details {
    padding: 18px 20px;
    border: 1px solid var(--service-border);
    border-radius: 18px;
    background: #fff;
}

.service-faq summary {
    cursor: pointer;
    color: var(--service-text);
    font-size: 17px;
    font-weight: 900;
}

.service-faq p {
    margin-top: 12px;
}

.service-quick-form,
.service-final {
    display: grid;
    grid-template-columns: 0.88fr 1.12fr;
    gap: 28px;
    align-items: center;
}

.service-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    padding: 24px;
    border: 1px solid var(--service-border);
    border-radius: 24px;
    background: #fff;
}

.service-form input,
.service-form textarea {
    width: 100%;
    min-height: 50px;
    padding: 12px 14px;
    border: 1px solid rgba(17, 17, 17, 0.16);
    border-radius: 14px;
    background: #fff;
    color: var(--service-text);
    font: inherit;
    outline: none;
}

.service-form textarea,
.service-form button,
.service-policy,
.service-success {
    grid-column: 1 / -1;
}

.service-form textarea {
    min-height: 108px;
    resize: vertical;
}

.service-policy,
.service-success {
    margin: 0 !important;
    font-size: 13px !important;
}

.service-success {
    color: #168a3a !important;
    font-weight: 900;
}

.service-modal {
    position: fixed;
    inset: 0;
    z-index: 150;
    display: none;
    padding: 24px;
    place-items: center;
    background: rgba(0, 0, 0, 0.62);
}

.service-modal[aria-hidden="false"] {
    display: grid;
}

.service-modal__dialog {
    position: relative;
    width: min(560px, 100%);
    max-height: calc(100vh - 48px);
    overflow: auto;
    padding: 30px;
    border-radius: 28px;
    background: #fff;
    box-shadow: 0 24px 80px rgba(0, 0, 0, 0.28);
}

.service-modal__close {
    position: absolute;
    top: 14px;
    right: 14px;
    width: 42px;
    height: 42px;
    border: 0;
    border-radius: 50%;
    background: var(--service-text);
    color: #fff;
    font-size: 26px;
    line-height: 1;
    cursor: pointer;
}

body.service-modal-open {
    overflow: hidden;
}

.service-floating-lead {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 80;
    display: grid;
    width: min(300px, calc(100% - 48px));
    gap: 8px;
    padding: 18px;
    border: 1px solid var(--service-border);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 18px 45px rgba(17, 17, 17, 0.18);
    opacity: 0;
    pointer-events: none;
    transform: translateY(18px);
    transition: 0.22s ease;
}

.service-floating-lead.is-visible {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}

.service-floating-lead a {
    color: var(--service-accent);
    font-weight: 900;
}

.service-floating-lead__close {
    position: absolute;
    top: 8px;
    right: 8px;
    border: 0;
    background: transparent;
    font-size: 22px;
    cursor: pointer;
}

.service-mobile-bar {
    display: none;
}

@media (max-width: 1080px) {
    .service-hero,
    .service-quick-form,
    .service-final {
        grid-template-columns: 1fr;
    }

    .service-grid--4,
    .service-gallery,
    .service-stats,
    .service-checklist {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .service-page {
        width: min(100% - 24px, 1200px);
        padding-bottom: 78px;
    }

    .service-section,
    .service-hero,
    .service-final,
    .service-quick-form {
        margin: 18px 0;
        padding: 24px 20px;
        border-radius: 22px;
    }

    .service-page h1 {
        font-size: clamp(34px, 11vw, 48px);
    }

    .service-grid--2,
    .service-grid--3,
    .service-grid--4,
    .service-steps,
    .service-reviews,
    .service-gallery,
    .service-stats,
    .service-checklist,
    .service-hero__meta,
    .service-form {
        grid-template-columns: 1fr;
    }

    .service-price-row {
        grid-template-columns: 1fr;
        gap: 6px;
    }

    .service-price-row b {
        white-space: normal;
    }

    .service-btn {
        width: 100%;
        white-space: normal;
    }

    .service-floating-lead {
        display: none;
    }

    .service-mobile-bar {
        position: fixed;
        left: 10px;
        right: 10px;
        bottom: 10px;
        z-index: 90;
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 8px;
        padding: 8px;
        border: 1px solid rgba(17, 17, 17, 0.1);
        border-radius: 18px;
        background: #fff;
        box-shadow: 0 14px 38px rgba(17, 17, 17, 0.2);
    }

    .service-mobile-bar a {
        display: grid;
        min-height: 42px;
        place-items: center;
        border-radius: 13px;
        background: #111;
        color: #fff;
        font-size: 13px;
        font-weight: 900;
        text-decoration: none;
    }

    .service-mobile-bar a:nth-child(2) {
        background: var(--service-accent);
    }
}

/* Prices page layout guard: keep the page in the theme container, not the narrow article column. */
.page-section:has(.prices-page) {
    padding-top: 26px;
    background: #f5f5f5;
}

.page-section:has(.prices-page) > .container {
    width: min(1210px, calc(100% - 32px));
    max-width: 1210px;
    padding: 0;
}

.page-section:has(.prices-page) .breadcrumbs {
    max-width: none;
    margin: 0 0 18px;
    padding: 0;
}

.page-section:has(.prices-page) .page-content {
    width: 100%;
    max-width: none;
}

.prices-page {
    width: 100%;
    max-width: none;
    padding: 0 0 72px;
}

.prices-hero {
    grid-template-columns: minmax(0, 1fr) minmax(280px, 300px);
    align-items: stretch;
}

.prices-hero__card {
    min-width: 0;
    padding: 30px;
}

.prices-page h1 {
    max-width: 720px;
    font-size: clamp(32px, 4.2vw, 54px);
    overflow-wrap: anywhere;
}

.prices-lead {
    max-width: 680px;
    font-size: 17px;
}

.prices-side h2 {
    font-size: clamp(26px, 3vw, 36px);
}

@media (max-width: 960px) {
    .prices-hero {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    .page-section:has(.prices-page) > .container {
        width: min(100% - 24px, 1210px);
    }

    .prices-hero__card,
    .prices-side {
        padding: 24px 20px;
        border-radius: 22px;
    }

    .prices-page h1 {
        font-size: clamp(34px, 10vw, 46px);
    }
}

.service-note {
    margin-top: 18px;
    padding: 18px 20px;
    border: 1px solid rgba(245, 124, 0, 0.24);
    border-radius: 18px;
    background: rgba(245, 124, 0, 0.08);
    color: #222;
    font-size: 16px;
    line-height: 1.55;
}

.service-section--dark .service-note {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.16);
    color: rgba(255, 255, 255, 0.88);
}

.service-info-table {
    overflow: hidden;
    border: 1px solid rgba(17, 17, 17, 0.12);
    border-radius: 22px;
    background: #fff;
}

.service-info-table__head,
.service-info-table__row {
    display: grid;
    grid-template-columns: minmax(210px, 0.6fr) minmax(0, 1fr);
    gap: 18px;
    padding: 16px 20px;
    border-bottom: 1px solid rgba(17, 17, 17, 0.1);
}

.service-info-table__head {
    background: #111;
    color: #fff;
}

.service-info-table__row:last-child {
    border-bottom: 0;
}

.service-info-table__row strong {
    color: #f57c00;
}

.service-info-table__row span {
    color: #555;
}

.service-info-table__row--3,
.service-info-table__head:has(+ .service-info-table__row--3) {
    grid-template-columns: minmax(180px, 0.55fr) minmax(0, 0.8fr) minmax(0, 0.75fr);
}

.service-term-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-top: 18px;
}

.service-term-grid article {
    padding: 18px;
    border: 1px solid rgba(17, 17, 17, 0.1);
    border-radius: 18px;
    background: #fff;
}

.service-term-grid strong {
    display: block;
    margin-bottom: 8px;
    color: #f57c00;
}

.service-term-grid p {
    margin: 0;
    color: #555;
}

.term-tooltip {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    border-bottom: 1px dashed #d97706;
    color: inherit;
    cursor: help;
    font-weight: 700;
}

.service-tooltip {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    border-bottom: 1px dashed currentColor;
    color: inherit;
    cursor: help;
    font-weight: 800;
}

.service-tooltip::after {
    content: "?";
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    border-radius: 50%;
    background: rgba(245, 124, 0, 0.15);
    color: #d97706;
    font-size: 12px;
    line-height: 1;
    font-weight: 900;
}

.service-tooltip::before {
    content: attr(data-tip);
    position: absolute;
    left: 0;
    bottom: calc(100% + 12px);
    z-index: 90;
    width: min(320px, 80vw);
    padding: 12px 14px;
    border-radius: 14px;
    background: #102033;
    color: #fff;
    font-size: 13px;
    line-height: 1.45;
    font-weight: 400;
    box-shadow: 0 16px 40px rgba(16, 32, 51, 0.18);
    opacity: 0;
    visibility: hidden;
    transform: translateY(6px);
    transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s ease;
    pointer-events: none;
}

.service-tooltip:hover::before,
.service-tooltip:focus::before,
.service-tooltip.is-open::before {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.info-term {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.info-tip {
    position: relative;
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
    border: 0;
    border-radius: 50%;
    background: #ffe1a6;
    color: #a76100;
    font-size: 12px;
    font-weight: 900;
    line-height: 20px;
    cursor: help;
}

.info-tip::after {
    content: attr(data-tip);
    position: absolute;
    left: 50%;
    bottom: calc(100% + 10px);
    z-index: 90;
    width: min(300px, 80vw);
    padding: 12px 14px;
    border-radius: 14px;
    background: #102033;
    color: #fff;
    font-size: 13px;
    line-height: 1.45;
    font-weight: 400;
    text-align: left;
    box-shadow: 0 18px 45px rgba(16, 32, 51, 0.18);
    opacity: 0;
    visibility: hidden;
    transform: translate(-50%, 6px);
    transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s ease;
    pointer-events: none;
}

.info-tip:hover::after,
.info-tip:focus::after,
.info-tip.is-open::after {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, 0);
}

.term-tooltip__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    border-radius: 50%;
    background: #fff3e0;
    color: #d97706;
    font-size: 11px;
    line-height: 1;
    font-weight: 900;
}

.term-tooltip__content {
    position: absolute;
    left: 0;
    bottom: calc(100% + 10px);
    z-index: 80;
    width: max-content;
    max-width: 280px;
    padding: 10px 12px;
    border-radius: 12px;
    background: #111827;
    color: #fff;
    font-size: 14px;
    line-height: 1.45;
    box-shadow: 0 12px 32px rgba(15, 23, 42, 0.22);
    opacity: 0;
    visibility: hidden;
    transform: translateY(6px);
    transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s ease;
    pointer-events: none;
}

.term-tooltip__content::after {
    content: "";
    position: absolute;
    left: 16px;
    top: 100%;
    border-width: 7px;
    border-style: solid;
    border-color: #111827 transparent transparent transparent;
}

.term-tooltip:hover .term-tooltip__content,
.term-tooltip:focus .term-tooltip__content,
.term-tooltip:focus-within .term-tooltip__content,
.term-tooltip.is-open .term-tooltip__content {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.service-section--dark .term-tooltip__icon {
    background: rgba(255, 255, 255, 0.16);
    color: #ff8a00;
}

@media (max-width: 900px) {
    .service-term-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .term-tooltip {
        position: static;
    }

    .term-tooltip__content {
        position: fixed;
        left: 16px;
        right: 16px;
        bottom: 84px;
        width: auto;
        max-width: none;
        z-index: 1000;
    }

    .term-tooltip__content::after {
        display: none;
    }

    .service-info-table__head {
        display: none;
    }

    .service-info-table__row {
        grid-template-columns: 1fr;
        gap: 6px;
    }

    .service-info-table__row--3 {
        grid-template-columns: 1fr;
    }

    .service-tooltip {
        position: static;
    }

    .service-tooltip::before {
        position: fixed;
        left: 16px;
        right: 16px;
        bottom: 84px;
        width: auto;
        z-index: 1000;
    }

    .info-tip {
        position: static;
    }

    .info-tip::after {
        position: fixed;
        left: 16px;
        right: 16px;
        bottom: 84px;
        width: auto;
        z-index: 1000;
        transform: translateY(6px);
    }

    .info-tip:hover::after,
    .info-tip:focus::after,
    .info-tip.is-open::after {
        transform: translateY(0);
    }

    .service-term-grid {
        grid-template-columns: 1fr;
    }
}
