.service-grid article::before { display: block; width: 36px; height: 36px; margin-bottom: 18px; content: ""; background: var(--brand-soft); border-radius: 50%; }
.service-grid h3 { margin: 0 0 10px; color: var(--brand-dark); font-size: 21px; line-height: 1.25; }
.service-grid p { margin: 0; }
.price-card { max-width: 710px; margin: auto; padding: 42px; text-align: center; background: var(--surface); border: 1px solid var(--line); border-radius: 22px; box-shadow: var(--shadow); }
.price-label { margin: 0; font-size: 20px; font-weight: 700; }
.price { margin: 10px 0 15px; color: var(--brand); font-size: clamp(40px, 5vw, 58px); font-weight: 800; line-height: 1; }
.price-card .cta { margin-top: 25px; }
.process ol { display: grid; max-width: 920px; margin: 0 auto; padding: 0; list-style: none; counter-reset: process; }
.process li { position: relative; min-height: 74px; margin: 0; padding: 0 0 23px 78px; color: var(--muted); counter-increment: process; }
.process li::before { position: absolute; top: -2px; left: 0; display: grid; place-items: center; width: 48px; height: 48px; color: #fff; content: counter(process); font-weight: 800; background: var(--brand); border-radius: 50%; }
.process li:not(:last-child)::after { position: absolute; top: 48px; bottom: 0; left: 23px; width: 2px; content: ""; background: var(--brand-soft); }
.process li strong { color: var(--ink); }
.works { background: #fff; }
.work-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.work-grid img { width: 100%; height: 310px; object-fit: cover; border-radius: var(--radius); box-shadow: var(--shadow); transition: transform .25s ease; }
.work-grid img:hover { transform: translateY(-5px); }
.reviews-content { display: grid; grid-template-columns: minmax(0, 1fr) minmax(310px, .9fr); align-items: start; gap: 26px; }
.reviews img { width: 100%; max-height: 610px; object-fit: cover; border-radius: var(--radius); box-shadow: var(--shadow); }
.review-videos { display: grid; gap: 16px; }
.review-videos video { width: 100%; max-height: 190px; background: #11182d; border-radius: 12px; box-shadow: var(--shadow); }
.calculation { color: #fff; text-align: center; background: linear-gradient(120deg, var(--brand-dark), var(--brand)); }
.calculation h2, .calculation p { color: #fff; }
.calculation p { max-width: 640px; margin: 0 auto; font-size: 19px; }
.calculation .cta { width: min(360px, 100%); margin-top: 28px; }
.faq details { max-width: 900px; margin: 0 auto 12px; padding: 20px 24px; background: var(--surface); border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 6px 18px rgba(25, 39, 91, .05); }
.faq summary { position: relative; padding-right: 28px; cursor: pointer; color: var(--brand-dark); font-size: 18px; font-weight: 800; list-style: none; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { position: absolute; right: 2px; content: "+"; color: var(--brand); font-size: 26px; line-height: .75; }
.faq details[open] summary::after { content: "−"; }
.faq details p { margin: 15px 0 2px; }
.geography, .vacancies { text-align: center; }
.geography p, .vacancies p { max-width: 850px; margin: auto; font-size: 18px; }

