/* ==========================================================================
   ДИФ — внутренние страницы
   ========================================================================== */

.section--subtle {
    background: var(--c-bg-subtle);
}

/* ---------- Grids ---------- */
.grid-3,
.grid-4 {
    display: grid;
    gap: clamp(1rem, 0.7rem + 1vw, 1.5rem);
}

@media (width >= 768px) {
    .grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (width >= 992px) {
    .grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    margin-bottom: clamp(1.5rem, 1rem + 1.5vw, 2.5rem);
}

.toolbar .segmented {
    max-width: 100%;
}

.toolbar__count {
    color: var(--c-text-muted);
    font-size: var(--text-sm);
}

.empty-state {
    display: grid;
    justify-items: center;
    gap: var(--space-3);
    padding: var(--space-16) var(--space-6);
    border: 1.5px dashed var(--c-border);
    border-radius: var(--radius-xl);
    text-align: center;
}

/* ==========================================================================
   Hero на внутренней странице (услуга) — тот же компонент, что на главной
   ========================================================================== */
.hero--page .breadcrumbs {
    margin-bottom: clamp(1.25rem, 1rem + 1.5vw, 2.5rem);
}

.hero--page .chip {
    display: inline-flex;
    margin-bottom: clamp(1rem, 0.6rem + 1.2vw, 2rem);
}

.hero--page .hero__title {
    margin-bottom: clamp(1rem, 0.6rem + 1.2vw, 2rem);
}

.hero__actions .btn {
    margin-bottom: 0;
}

.hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    margin-bottom: clamp(2.5rem, 2rem + 2vw, 4rem);
}

@media (width < 768px) {
    .hero--page .hero__content {
        padding-top: var(--space-6);
    }
    .hero__actions .btn {
        flex: 1 1 100%;
    }
}

/* ==========================================================================
   Service page
   ========================================================================== */

/* bento: 8 карточек, две первые — крупнее */
.bento {
    display: grid;
    gap: clamp(0.75rem, 0.5rem + 0.8vw, 1.25rem);
    list-style: none;
    padding: 0;
}

@media (width >= 576px) {
    .bento { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (width >= 992px) {
    .bento { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .bento > :nth-child(1) {
        grid-column: span 2;
    }
    .bento > :nth-child(1) {
        background: var(--c-surface-accent);
        border-color: transparent;
    }
    .bento > :nth-child(2) {
        background: var(--c-surface-dark);
        border-color: transparent;
        color: var(--c-text-on-dark);
    }
    .bento > :nth-child(2) .text-muted {
        color: var(--c-text-on-dark-muted);
    }
    .bento > :nth-child(2) .icon-tile {
        background: rgb(255 255 255 / 0.08);
        color: var(--c-accent);
    }
    .bento > :nth-child(1) .icon-tile {
        background: var(--white);
    }
    .bento > :nth-child(-n + 2) .h-card {
        font-size: var(--text-xl);
    }
    .bento > :nth-child(1) p {
        max-width: 30rem;
    }
}

.feature-card {
    transition:
        transform var(--dur-base) var(--ease-out),
        box-shadow var(--dur-base) var(--ease-out),
        border-color var(--dur-base) var(--ease-out);
}

.feature-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-md);
    border-color: transparent;
}

.feature-card .icon-tile {
    margin-bottom: var(--space-2);
}

/* текст + липкая карточка */
.split {
    display: grid;
    gap: clamp(2rem, 1rem + 3vw, 4rem);
    align-items: start;
}

.split .prose .h-section {
    margin-bottom: var(--space-6);
}

@media (width >= 992px) {
    .split {
        grid-template-columns: minmax(0, 1fr) minmax(20rem, 26rem);
    }
    .aside-card {
        position: sticky;
        top: calc(var(--header-h-compact) + var(--space-6));
    }
}

.aside-card {
    gap: var(--space-6);
    border-radius: var(--radius-2xl);
    overflow: hidden;
    isolation: isolate;
}

.aside-card::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background-image: repeating-linear-gradient(-45deg, rgb(255 255 255 / 0.045) 0 1px, transparent 1px 7px);
}

.aside-card .chip {
    align-self: flex-start;
}

.check-list {
    display: grid;
    gap: var(--space-5);
    list-style: none;
    padding: 0;
}

.check-list li {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: var(--space-4);
    align-items: start;
    color: var(--c-text-on-dark-muted);
    line-height: 1.45;
}

.check-list strong {
    color: var(--white);
    font-weight: var(--weight-semibold);
}

.check-list .icon {
    --icon-size: 1.5rem;
    color: var(--c-accent);
}

/* шаги */
.steps {
    display: grid;
    gap: var(--space-4);
    list-style: none;
    padding: 0;
    counter-reset: step;
}

@media (width >= 768px) {
    .steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (width >= 1200px) {
    .steps { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}

.step {
    position: relative;
    display: grid;
    align-content: start;
    gap: var(--space-3);
    padding: var(--space-6);
    border-radius: var(--radius-xl);
    background: var(--c-bg);
    border: 1px solid var(--c-border);
}

.step__num {
    font-family: var(--font-display);
    font-size: var(--text-3xl);
    font-weight: var(--weight-black);
    line-height: 1;
    color: transparent;
    -webkit-text-stroke: 1.5px var(--mint-500);
}

.step__title {
    font-size: var(--text-md);
    font-weight: var(--weight-bold);
}

.step__text {
    color: var(--c-text-muted);
    font-size: var(--text-sm);
    line-height: 1.5;
}

/* соединительная линия между шагами на десктопе */
@media (width >= 1200px) {
    .step:not(:last-child)::after {
        content: "";
        position: absolute;
        top: 2.6rem;
        right: calc(-1 * var(--space-4));
        width: var(--space-4);
        height: 2px;
        background: var(--mint-500);
    }
}

/* регионы */
.regions {
    display: grid;
    gap: clamp(2rem, 1rem + 3vw, 4rem);
    align-items: center;
}

.regions .h-section {
    margin-bottom: var(--space-5);
}

.regions__text {
    max-width: 36rem;
    margin-bottom: var(--space-8);
    color: var(--c-text-muted);
    font-size: var(--text-md);
}

.regions__list {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    list-style: none;
    padding: 0;
}

.tag--region {
    padding: 0.5rem 0.875rem;
    background: var(--c-bg-subtle);
    border: 1px solid var(--c-border);
    color: var(--c-text);
    font-size: var(--text-sm);
    font-weight: var(--weight-medium);
}

.tag--region:first-child {
    background: var(--c-accent);
    border-color: var(--c-accent);
}

.tag--region .icon {
    color: var(--mint-600);
}

.tag--region:first-child .icon {
    color: var(--ink-900);
}

@media (width >= 992px) {
    .regions {
        grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    }
}

.news-mini .media-card__body {
    gap: var(--space-2);
}

.news-mini .h-card {
    font-size: var(--text-md);
}

.news-mini .h-card a {
    text-decoration: none;
}

.news-mini .media-card__meta .icon,
.news-card .media-card__meta .icon {
    --icon-size: 1rem;
    margin-right: 0.375rem;
    vertical-align: -0.15em;
    display: inline-block;
}

.news-mini {
    position: relative;
}

/* ==========================================================================
   News
   ========================================================================== */
.news-grid {
    display: grid;
    gap: clamp(1rem, 0.7rem + 1vw, 1.75rem);
}

@media (width >= 640px) {
    .news-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (width >= 992px) {
    .news-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.news-card {
    view-transition-name: var(--vt, none);
}

.news-card__title {
    font-size: var(--text-lg);
    font-weight: var(--weight-bold);
    line-height: 1.3;
}

.news-card__text {
    color: var(--c-text-muted);
    font-size: var(--text-sm);
    line-height: 1.55;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.news-card .media-card__media {
    display: block;
    cursor: zoom-in;
}

.news-card .media-card__media .badge-glass {
    top: auto;
    left: auto;
    right: var(--space-4);
    bottom: var(--space-4);
    background: rgb(20 22 21 / 0.45);
}

.gallery--mini {
    --gallery-min: 3.5rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.375rem;
}

.gallery--mini .gallery__item {
    aspect-ratio: 1;
    border-radius: var(--radius-xs);
}

.gallery--mini .gallery__more {
    font-size: var(--text-md);
}

/* главная новость — широкая карточка */
@media (width >= 992px) {
    .news-card--featured {
        grid-column: 1 / -1;
        display: grid;
        grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
    }
    .news-card--featured .media-card__media {
        aspect-ratio: auto;
        min-height: 26rem;
    }
    .news-card--featured .media-card__media img {
        position: absolute;
        inset: 0;
    }
    .news-card--featured .media-card__body {
        justify-content: center;
        padding: clamp(1.75rem, 1rem + 2vw, 3rem);
    }
    .news-card--featured .news-card__title {
        font-size: var(--text-2xl);
    }
}

/* ==========================================================================
   Layout with sticky TOC (процесс, политика)
   ========================================================================== */
.with-toc {
    display: grid;
    gap: var(--space-10);
}

.with-toc > .toc {
    display: none;
}

@media (width >= 1200px) {
    .with-toc {
        grid-template-columns: 16rem minmax(0, 1fr);
        gap: clamp(2.5rem, 1rem + 3vw, 5rem);
        align-items: start;
    }
    .with-toc > .toc {
        display: block;
    }
}

/* ==========================================================================
   Process
   ========================================================================== */
.process-timeline {
    position: relative;
    display: grid;
    gap: clamp(2.5rem, 2rem + 2vw, 4rem);
}

.process-entry {
    position: relative;
    display: grid;
    gap: var(--space-5);
    scroll-margin-top: calc(var(--header-h-compact) + var(--space-6));
}

.process-entry__head {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: var(--space-4);
    align-items: start;
}

.process-entry__num {
    display: grid;
    place-items: center;
    width: 3rem;
    height: 3rem;
    border-radius: var(--radius-md);
    background: var(--ink-900);
    color: var(--c-accent);
    font-family: var(--font-display);
    font-weight: var(--weight-black);
    font-size: var(--text-md);
}

.process-entry__title {
    margin-bottom: var(--space-2);
    font-size: var(--text-xl);
    line-height: 1.25;
}

.process-entry__tags {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

/* линия-таймлайн слева от номеров */
@media (width >= 768px) {
    .process-timeline::before {
        content: "";
        position: absolute;
        top: 1.5rem;
        bottom: 1.5rem;
        left: 1.5rem;
        width: 2px;
        background: linear-gradient(var(--c-line) 60%, transparent);
        translate: -50% 0;
    }
    .process-entry__num {
        position: relative;
        z-index: 1;
        box-shadow: 0 0 0 6px var(--c-bg);
    }
    .process-gallery {
        margin-left: 4rem;
    }
}

.process-gallery {
    --gallery-min: 9rem;
}

@media (width >= 768px) {
    .process-gallery--hero {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
    .process-gallery--hero > li:first-child {
        grid-column: span 2;
        grid-row: span 2;
    }
    .process-gallery--hero > li:first-child .gallery__item {
        height: 100%;
        aspect-ratio: auto;
    }
    .process-gallery--1 {
        grid-template-columns: minmax(0, 28rem);
    }
    .process-gallery--2 {
        grid-template-columns: repeat(2, minmax(0, 20rem));
    }
}

/* ==========================================================================
   Feedbacks
   ========================================================================== */
.letters {
    display: grid;
    gap: clamp(1rem, 0.7rem + 1vw, 1.75rem);
    list-style: none;
    padding: 0;
}

@media (width >= 576px) {
    .letters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (width >= 992px) {
    .letters { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (width >= 1200px) {
    .letters { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.letter {
    display: flex;
    flex-direction: column;
    border-radius: var(--radius-xl);
    background: var(--c-surface-2);
    overflow: hidden;
}

/* лист бумаги на сером «столе» */
.letter__paper {
    position: relative;
    display: grid;
    place-items: center;
    padding: clamp(1.5rem, 1rem + 2vw, 2.5rem) clamp(1.5rem, 1rem + 2vw, 2.75rem) 0;
    aspect-ratio: 4 / 4.2;
    overflow: hidden;
    cursor: zoom-in;
}

.letter__paper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top;
    border-radius: 6px 6px 0 0;
    box-shadow: 0 -2px 0 rgb(0 0 0 / 0.02), 0 12px 32px -8px rgb(16 24 20 / 0.25);
    transform: translateY(10px);
    transition: transform var(--dur-slow) var(--ease-out);
}

.letter__paper:hover img,
.letter__paper:focus-visible img {
    transform: translateY(2px);
}

.letter__zoom {
    position: absolute;
    top: var(--space-4);
    right: var(--space-4);
    display: grid;
    place-items: center;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 50%;
    background: var(--white);
    box-shadow: var(--shadow-sm);
    opacity: 0;
    transform: scale(0.8);
    transition:
        opacity var(--dur-base) var(--ease-out),
        transform var(--dur-base) var(--ease-out);
}

.letter__paper:hover .letter__zoom,
.letter__paper:focus-visible .letter__zoom {
    opacity: 1;
    transform: none;
}

@media (hover: none) {
    .letter__zoom {
        opacity: 1;
        transform: none;
    }
}

.letter__body {
    display: grid;
    gap: var(--space-2);
    padding: var(--space-5) var(--space-6) var(--space-6);
    background: var(--c-bg);
    border: 1px solid var(--c-border);
    border-top: 0;
    border-radius: 0 0 var(--radius-xl) var(--radius-xl);
    flex: 1;
}

.letter__title {
    font-size: var(--text-md);
    line-height: 1.3;
}

.letter__meta {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    color: var(--c-text-muted);
    font-size: var(--text-sm);
}

.letter__meta .icon {
    --icon-size: 1rem;
}

/* бегущая строка заказчиков */
.marquee {
    --gap: var(--space-3);
    /* clip только по горизонтали — бордеры и тени пилюль не обрезаются */
    overflow-x: clip;
    overflow-y: visible;
    padding-block: var(--space-2);
    mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}

.marquee__track {
    display: flex;
    gap: var(--gap);
    width: max-content;
    list-style: none;
    padding: 0;
    animation: marquee 40s linear infinite;
}

.marquee:hover .marquee__track {
    animation-play-state: paused;
}

.marquee__track li {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    padding: 0.875rem 1.5rem;
    border-radius: var(--radius-pill);
    background: var(--c-bg);
    border: 1px solid var(--c-border);
    font-size: var(--text-lg);
    font-weight: var(--weight-semibold);
    white-space: nowrap;
}

.marquee__track .icon {
    color: var(--mint-600);
}

@keyframes marquee {
    to {
        transform: translateX(calc(-50% - var(--gap) / 2));
    }
}

@media (prefers-reduced-motion: reduce) {
    .marquee__track {
        animation: none;
        flex-wrap: wrap;
        width: auto;
        padding-inline: var(--gutter);
    }
    .marquee {
        mask-image: none;
    }
}

/* «Обсудим ваш объект»: мятная карточка + шаги старта */
.start {
    display: grid;
    gap: clamp(0.75rem, 0.5rem + 0.8vw, 1.25rem);
}

@media (width >= 992px) {
    .start {
        grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
    }
}

.start__main {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    isolation: isolate;
    padding: clamp(2rem, 1.2rem + 3vw, 4rem);
    border-radius: var(--radius-2xl);
    background: var(--c-surface-accent);
    overflow: hidden;
}

/* мягкое мятное свечение в углу */
.start__main::after {
    content: "";
    position: absolute;
    right: -20%;
    bottom: -45%;
    z-index: -1;
    width: 70%;
    aspect-ratio: 1;
    border-radius: 50%;
    background: radial-gradient(closest-side, rgb(0 253 188 / 0.55), transparent);
    filter: blur(20px);
}

.start .chip {
    margin-bottom: var(--space-5);
    background: rgb(255 255 255 / 0.55);
}

.start__title {
    max-width: 14ch;
}

.start__lead {
    max-width: 34rem;
    margin-top: var(--space-5);
    color: var(--ink-800);
    font-size: var(--text-lg);
    line-height: 1.5;
}

.start__actions {
    align-self: stretch;
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    margin-top: clamp(1.75rem, 1.2rem + 1.5vw, 2.5rem);
}

.start__actions .btn--outline:hover {
    --btn-bg: var(--ink-900);
}

.start__trust {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3) var(--space-8);
    margin-top: auto;
    padding-top: clamp(2rem, 1.5rem + 2vw, 3.5rem);
    color: var(--ink-800);
    font-size: var(--text-sm);
}

@media (width < 576px) {
    .start__trust {
        display: grid;
        grid-template-columns: repeat(3, auto);
        justify-content: space-between;
    }
}

.start__trust li {
    display: grid;
    gap: 0.125rem;
}

.start__trust strong {
    font-size: var(--text-2xl);
    font-weight: var(--weight-bold);
    line-height: 1;
    letter-spacing: -0.02em;
    color: var(--ink-950);
}

@media (width < 576px) {
    .start__actions .btn {
        width: 100%;
    }
}

/* шаги на тёмной карточке */
.start__steps {
    position: relative;
    display: flex;
    flex-direction: column;
    isolation: isolate;
    padding: clamp(2rem, 1.2rem + 2.5vw, 3.25rem);
    border-radius: var(--radius-2xl);
    background: var(--c-surface-dark);
    color: var(--c-text-on-dark);
    overflow: hidden;
}

.start__steps::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background-image: repeating-linear-gradient(-45deg, rgb(255 255 255 / 0.045) 0 1px, transparent 1px 7px);
}

.start__steps-title {
    margin-bottom: clamp(1.5rem, 1rem + 1.5vw, 2.25rem);
    color: var(--c-text-on-dark-muted);
    font-size: var(--text-xs);
    font-weight: var(--weight-semibold);
    letter-spacing: var(--tracking-caps);
    text-transform: uppercase;
}

.stepper {
    position: relative;
    display: grid;
    gap: clamp(1.5rem, 1rem + 1.2vw, 2rem);
}

/* шаги одной высоты — отрезки линии между точками получаются равными */
.stepper {
    grid-auto-rows: 1fr;
}

/* отрезок от точки до следующей точки */
.stepper__item:not(:last-child)::before {
    content: "";
    position: absolute;
    top: calc(2.75rem + 0.5rem);
    bottom: calc(-1 * clamp(1.5rem, 1rem + 1.2vw, 2rem) + 0.5rem);
    left: 1.375rem;
    width: 2px;
    border-radius: 1px;
    background: rgb(34 199 140 / 0.55);
    translate: -50% 0;
}

.stepper__item {
    position: relative;
    display: grid;
    grid-template-columns: 2.75rem 1fr;
    gap: var(--space-4);
    align-items: start;
}

.stepper__dot {
    position: relative;
    display: grid;
    place-items: center;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 50%;
    background: var(--ink-800);
    color: var(--c-accent);
    box-shadow: 0 0 0 1px rgb(255 255 255 / 0.12), 0 0 0 6px var(--c-surface-dark);
}

.stepper__item:first-child .stepper__dot {
    background: var(--c-accent);
    color: var(--ink-950);
}

.stepper__dot .icon {
    --icon-size: 1.125rem;
    --icon-stroke: 2;
}

.stepper__title {
    margin-top: 0.125rem;
    font-size: var(--text-md);
    font-weight: var(--weight-semibold);
    color: var(--white);
}

.stepper__text {
    margin-top: 0.25rem;
    color: var(--c-text-on-dark-muted);
    font-size: var(--text-sm);
    line-height: 1.5;
}

.start__note {
    display: flex;
    gap: var(--space-3);
    align-items: flex-start;
    margin-top: auto;
    padding-top: clamp(1.75rem, 1.2rem + 1.5vw, 2.5rem);
    color: var(--c-text-on-dark-muted);
    font-size: var(--text-sm);
    line-height: 1.45;
}

.start__note .icon {
    --icon-size: 1.25rem;
    color: var(--c-accent);
}

/* ==========================================================================
   Contacts
   ========================================================================== */
.contacts {
    display: grid;
    gap: clamp(1.5rem, 1rem + 2vw, 2.5rem);
    align-items: start;
}

/* на десктопе левая колонка тянется до низа формы */
@media (width >= 992px) {
    .contacts {
        align-items: stretch;
    }
    .contacts__info {
        grid-template-rows: auto 1fr;
    }
}

@media (width >= 992px) {
    .contacts {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
    }
}

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

.contact-list {
    display: grid;
    gap: var(--space-3);
    list-style: none;
    padding: 0;
}

.contact {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: var(--space-4);
    align-items: center;
    padding: var(--space-5);
    border-radius: var(--radius-lg);
    border: 1px solid var(--c-border);
    background: var(--c-bg);
    transition:
        border-color var(--dur-base) var(--ease-out),
        box-shadow var(--dur-base) var(--ease-out);
}

.contact:hover {
    border-color: transparent;
    box-shadow: var(--shadow-md);
}

.contact .icon-tile {
    width: 3.25rem;
}

.contact__body {
    display: grid;
    gap: 0.125rem;
    min-width: 0;
}

.contact__label {
    color: var(--c-text-muted);
    font-size: var(--text-sm);
}

.contact__value {
    font-size: var(--text-lg);
    font-weight: var(--weight-semibold);
    line-height: 1.3;
    text-decoration: none;
    overflow-wrap: anywhere;
}

a.contact__value:hover {
    color: var(--c-accent-text);
}

.contact__link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    margin-top: var(--space-1);
    color: var(--c-accent-text);
    font-size: var(--text-sm);
    font-weight: var(--weight-semibold);
    text-decoration: none;
}

.contact__link .icon {
    --icon-size: 1rem;
}

.contact__link:hover {
    text-decoration: underline;
}

.contact__copy {
    display: grid;
    place-items: center;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 50%;
    color: var(--c-text-muted);
    transition:
        background-color var(--dur-fast) var(--ease-out),
        color var(--dur-fast) var(--ease-out);
}

.contact__copy:hover {
    background: var(--c-accent-soft);
    color: var(--ink-900);
}

.contact__copy .icon {
    --icon-size: 1.125rem;
}

.contacts__note {
    position: relative;
    align-items: flex-start;
    border-radius: var(--radius-lg);
    overflow: hidden;
    isolation: isolate;
}

.contacts__note .btn {
    margin-top: auto;
}

/* знак из логотипа как водяной знак (точные контуры, белым) */
.contacts__note::after {
    content: "";
    position: absolute;
    right: clamp(1rem, 0.5rem + 1.5vw, 1.75rem);
    bottom: clamp(1rem, 0.5rem + 1.5vw, 1.75rem);
    z-index: -1;
    width: clamp(5rem, 2rem + 8vw, 9rem);
    height: clamp(5rem, 2rem + 8vw, 9rem);
    background: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%22125.2 -3.8 75.6 75.6%22%3E%3Cpath fill-rule=%22evenodd%22 clip-rule=%22evenodd%22 d=%22M163.20 33.35C163.20 33.35 169.36 41.10 169.36 44.42C169.36 47.84 166.60 50.61 163.20 50.61C159.80 50.61 157.04 47.84 157.04 44.42C157.04 41.10 163.20 33.35 163.20 33.35Z%22 fill=%22white%22/%3E%3Cpath d=%22M167.27 53.37H144.82C143.94 53.37 143.11 53.02 142.49 52.40C141.89 51.79 141.54 50.98 141.52 50.12C141.52 50.12 141.52 50.12 141.52 50.12L129.40 50.12C129.40 50.12 129.40 50.12 129.40 50.12C129.40 51.74 129.40 53.31 129.40 54.80C129.40 57.65 130.53 60.39 132.54 62.41C134.54 64.42 137.26 65.56 140.10 65.56C148.63 65.56 160.28 65.56 167.27 65.56C168.88 65.56 170.42 64.91 171.56 63.77C172.70 62.63 173.33 61.08 173.33 59.46C173.33 56.10 170.62 53.37 167.27 53.37Z%22 fill=%22white%22/%3E%3Cpath d=%22M143.98 12.78C143.97 12.78 143.96 12.80 143.95 12.80C139.76 16.19 135.76 19.43 133.02 21.64C130.73 23.49 129.40 26.28 129.40 29.23C129.40 32.49 129.40 37.12 129.40 41.98C129.40 44.69 129.40 47.46 129.40 50.12H141.52C141.52 50.10 141.52 50.07 141.52 50.05C141.52 47.89 141.52 44.94 141.52 41.98C141.52 38.48 141.52 34.96 141.52 32.74C141.52 31.26 142.19 29.87 143.33 28.94C143.53 28.78 143.74 28.61 143.96 28.43C143.97 28.43 143.97 28.42 143.98 28.42C145.90 26.86 148.74 24.57 151.64 22.23V6.59C149.17 8.58 146.54 10.71 143.98 12.78Z%22 fill=%22white%22/%3E%3Cpath d=%22M193.37 21.58C190.64 19.38 177.25 8.58 174.84 6.64V22.26C177.70 24.57 180.49 26.82 182.40 28.36C182.40 28.36 182.42 28.37 182.43 28.39C182.65 28.56 182.87 28.73 183.06 28.89C184.21 29.82 184.88 31.22 184.88 32.70C184.88 40.57 184.88 65.60 184.88 65.60H196.99V29.18C196.99 26.23 195.66 23.43 193.37 21.58Z%22 fill=%22white%22/%3E%3Cpath d=%22M169.26 2.14C165.72 -0.71 160.68 -0.71 157.14 2.14C155.51 3.46 153.64 4.97 151.67 6.56C151.66 6.57 151.6 6.62 151.58 6.63V22.27C151.60 22.26 151.67 22.20 151.69 22.18C154.78 19.69 157.94 17.13 160.17 15.33C161.94 13.90 164.47 13.90 166.24 15.33C168.48 17.14 171.67 19.71 174.78 22.21C174.80 22.23 174.86 22.28 174.88 22.30V6.67C174.86 6.66 174.80 6.61 174.78 6.59C172.79 4.98 170.90 3.46 169.26 2.14Z%22 fill=%22white%22/%3E%3C/svg%3E") center / contain no-repeat;
    opacity: 0.6;
}

.contacts__form {
    padding: clamp(1.5rem, 1rem + 2vw, 2.75rem);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    scroll-margin-top: calc(var(--header-h-compact) + var(--space-6));
}

.form {
    display: grid;
    gap: var(--space-6);
}

.form__head {
    display: grid;
    gap: var(--space-2);
}

.form__grid {
    display: grid;
    gap: var(--space-5) var(--space-4);
}

@media (width >= 576px) {
    .form__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .field--full {
        grid-column: 1 / -1;
    }
}

fieldset.field {
    border: 0;
    padding: 0;
    min-width: 0;
}

fieldset.field legend {
    margin-bottom: var(--space-2);
}

.choice-chips {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.choice-chips label {
    position: relative;
    cursor: pointer;
}

.choice-chips input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.choice-chips span {
    display: inline-flex;
    align-items: center;
    min-height: 2.5rem;
    padding: 0 1rem;
    border: 1.25px solid var(--c-border);
    border-radius: var(--radius-pill);
    font-size: var(--text-sm);
    font-weight: var(--weight-medium);
    transition:
        background-color var(--dur-fast) var(--ease-out),
        border-color var(--dur-fast) var(--ease-out);
}

.choice-chips label:hover span {
    border-color: var(--gray-400);
}

.choice-chips input:checked + span {
    background: var(--c-accent-soft);
    border-color: var(--mint-500);
}

.choice-chips input:focus-visible + span {
    outline: 2px solid var(--c-focus);
    outline-offset: 2px;
}

.form-success {
    display: grid;
    justify-items: start;
    gap: var(--space-4);
    padding-block: var(--space-8);
}

.form-success:focus {
    outline: none;
}

.form-success__icon {
    display: grid;
    place-items: center;
    width: 4rem;
    height: 4rem;
    border-radius: 50%;
    background: var(--c-accent);
    animation: pop var(--dur-slow) var(--ease-out);
}

.form-success__icon .icon {
    --icon-size: 2rem;
    --icon-stroke: 2.5;
}

@keyframes pop {
    from {
        transform: scale(0.4);
        opacity: 0;
    }
}

.office-map {
    position: relative;
    margin-top: clamp(1.5rem, 1rem + 1.5vw, 2.75rem);
    height: clamp(22rem, 18rem + 12vw, 32rem);
    border-radius: var(--radius-2xl);
    overflow: hidden;
    background: var(--c-surface-2);
}

.office-map iframe {
    width: 100%;
    height: 100%;
    border: 0;
    filter: grayscale(0.85) contrast(1.02);
    transition: filter var(--dur-slow) var(--ease-out);
}

.office-map:hover iframe {
    filter: none;
}

.office-map__card {
    position: absolute;
    left: var(--space-4);
    bottom: var(--space-4);
    display: grid;
    gap: var(--space-2);
    justify-items: start;
    max-width: min(20rem, calc(100% - 2rem));
    padding: var(--space-5);
    border-radius: var(--radius-lg);
    background: rgb(255 255 255 / 0.92);
    box-shadow: var(--shadow-lg);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
}

.office-map__addr {
    font-size: var(--text-md);
    font-weight: var(--weight-semibold);
}

/* ==========================================================================
   Objects
   ========================================================================== */
.map--rounded {
    border-radius: var(--radius-2xl);
    overflow: hidden;
}

.map-hint {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-sm);
}

.map-hint .icon {
    color: var(--mint-600);
}

.objects-toolbar {
    position: sticky;
    top: var(--space-3);
    z-index: var(--z-raised);
    display: grid;
    gap: var(--space-3);
    padding: var(--space-3);
    margin-bottom: var(--space-4);
    border-radius: var(--radius-xl);
    background: rgb(255 255 255 / 0.85);
    border: 1px solid var(--c-border);
    box-shadow: var(--shadow-sm);
    -webkit-backdrop-filter: blur(14px) saturate(160%);
    backdrop-filter: blur(14px) saturate(160%);
}

@media (width >= 1200px) {
    .objects-toolbar {
        grid-template-columns: minmax(16rem, 22rem) minmax(0, 1fr);
        align-items: center;
    }
}

.objects-toolbar .input {
    min-height: 3rem;
    background: var(--c-bg);
}

.segmented__sep {
    flex-shrink: 0;
    width: 1px;
    margin: 0.5rem 0.25rem;
    background: var(--gray-300);
}

.objects-toolbar + .toolbar__count {
    margin-bottom: var(--space-6);
}

.periods {
    display: grid;
    gap: clamp(2rem, 1.5rem + 1.5vw, 3rem);
}

.period {
    scroll-margin-top: 8rem;
}

.period__head {
    display: flex;
    align-items: baseline;
    gap: var(--space-4);
    padding-bottom: var(--space-3);
    margin-bottom: var(--space-5);
    border-bottom: 2px solid var(--ink-900);
}

.period__title {
    font-family: var(--font-display);
    font-size: var(--text-4xl);
    font-weight: var(--weight-black);
    line-height: 1;
    letter-spacing: -0.02em;
}

.period__count {
    color: var(--c-text-muted);
    font-size: var(--text-md);
}

.period__intro {
    max-width: 52rem;
    margin-bottom: var(--space-6);
    color: var(--c-text-muted);
}

.clients-grid {
    --masonry-gap: clamp(1rem, 0.7rem + 1vw, 1.5rem);
    display: grid;
    gap: var(--masonry-gap);
    align-items: start;
}

@media (width >= 768px) {
    .clients-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (width >= 1200px) {
    .clients-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* JS-фолбэк masonry: шаг строки 4px, вертикальный зазор — через margin */
.clients-grid.is-masonry {
    grid-auto-rows: 4px;
    row-gap: 0;
}

.clients-grid.is-masonry > * {
    margin-bottom: var(--masonry-gap);
}

/* нативный masonry (Safari 26+, Chrome с флагом) */
@supports (display: grid-lanes) {
    .clients-grid {
        display: grid-lanes;
    }
}

.client-card {
    padding: var(--space-5) var(--space-6) var(--space-3);
    border-radius: var(--radius-xl);
    background: var(--c-bg-subtle);
    border: 1px solid var(--c-border);
}

.client-card__head {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 0.125rem var(--space-3);
    align-items: start;
    padding-bottom: var(--space-3);
    border-bottom: 1px solid var(--c-border);
}

.client-card__eyebrow {
    grid-column: 1;
    color: var(--c-text-subtle);
    font-size: var(--text-xs);
    font-weight: var(--weight-semibold);
    letter-spacing: var(--tracking-caps);
    text-transform: uppercase;
}

.client-card__name {
    grid-column: 1;
    font-size: var(--text-md);
    line-height: 1.3;
}

.client-card__count {
    grid-column: 2;
    grid-row: 1 / span 2;
    display: grid;
    place-items: center;
    min-width: 2.25rem;
    height: 2.25rem;
    padding: 0 0.5rem;
    border-radius: var(--radius-pill);
    background: var(--ink-900);
    color: var(--white);
    font-size: var(--text-sm);
    font-weight: var(--weight-bold);
}

.works {
    list-style: none;
    padding: 0;
}

.work {
    display: grid;
    gap: var(--space-2);
    padding: var(--space-4) 0;
}

.work + .work {
    border-top: 1px dashed var(--c-border);
}

.work__type {
    justify-self: start;
}

.work__type--azs { background: var(--c-accent-soft); color: var(--c-accent-text); }
.work__type--mazs { background: #e3f1ff; color: #1c5fa8; }
.work__type--oil_depot { background: var(--ink-900); color: var(--white); }
.work__type--tzp { background: #fff1d6; color: #8a5a00; }
.work__type--warehouse { background: var(--gray-150); color: var(--ink-800); }

.work__text {
    font-size: var(--text-sm);
    line-height: 1.55;
}

.work__gallery {
    margin-top: var(--space-1);
}

/* ==========================================================================
   Privacy / documents
   ========================================================================== */
.read-progress {
    position: fixed;
    inset: 0 0 auto;
    z-index: calc(var(--z-header) + 1);
    height: 3px;
    background: var(--c-accent);
    transform-origin: 0 50%;
    transform: scaleX(0);
}

@supports (animation-timeline: scroll()) {
    .read-progress {
        animation: progress linear both;
        animation-timeline: scroll(root);
    }
}

@keyframes progress {
    to {
        transform: scaleX(1);
    }
}

.doc-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
}

.doc-meta .tag {
    padding: 0.5rem 0.875rem;
    font-size: var(--text-sm);
}

.policy__body {
    max-width: 74ch;
}

.policy__section > * + * {
    margin-top: 0.9em;
}

.policy__section {
    scroll-margin-top: calc(var(--header-h-compact) + var(--space-6));
}

.policy__section + .policy__section {
    margin-top: clamp(2.5rem, 2rem + 2vw, 3.5rem);
    padding-top: clamp(2.5rem, 2rem + 2vw, 3.5rem);
    border-top: 1px solid var(--c-border);
}

.policy .prose h2 {
    display: flex;
    align-items: baseline;
    gap: var(--space-4);
    margin-top: 0;
    margin-bottom: var(--space-6);
}

.policy__num {
    display: inline-grid;
    place-items: center;
    flex-shrink: 0;
    min-width: 2.5rem;
    height: 2.5rem;
    border-radius: var(--radius-sm);
    background: var(--c-accent-soft);
    color: var(--c-accent-text);
    font-family: var(--font-display);
    font-size: var(--text-md);
    font-weight: var(--weight-black);
    translate: 0 -0.15em;
}

.clause__num {
    font-weight: var(--weight-bold);
    color: var(--c-text);
    font-variant-numeric: tabular-nums;
}

.dash-list {
    list-style: none;
    padding-left: 0 !important;
    border-left: 2px solid var(--c-border);
}

.dash-list li {
    position: relative;
    padding-left: 1.25rem;
}

.dash-list li::before {
    content: "";
    position: absolute;
    top: 0.8em;
    left: -1px;
    width: 0.625rem;
    height: 2px;
    background: var(--mint-500);
}

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

.purpose {
    padding: clamp(1.25rem, 1rem + 1vw, 2rem);
    border-radius: var(--radius-xl);
    background: var(--c-bg-subtle);
    border: 1px solid var(--c-border);
}

.purpose__head {
    display: grid;
    gap: var(--space-3);
    justify-items: start;
    padding-bottom: var(--space-5);
    margin-bottom: var(--space-5);
    border-bottom: 1px solid var(--c-border);
}

.purpose__title {
    font-size: var(--text-xl);
    line-height: 1.3;
}

.purpose__dl {
    display: grid;
    gap: var(--space-5);
    font-size: var(--text-sm);
}

.purpose__dl > div {
    display: grid;
    gap: var(--space-2);
}

@media (width >= 768px) {
    .purpose__dl > div {
        grid-template-columns: 12rem minmax(0, 1fr);
        gap: var(--space-6);
    }
}

.purpose__dl dt {
    color: var(--c-text-muted);
    font-weight: var(--weight-semibold);
    line-height: 1.45;
}

.purpose__dl dd {
    display: grid;
    gap: var(--space-3);
    line-height: 1.55;
}

.purpose__sub {
    display: block;
    margin-bottom: var(--space-2);
    font-weight: var(--weight-bold);
}

.pill-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
    list-style: none;
    padding: 0 !important;
}

.pill-list li {
    margin: 0 !important;
    padding: 0.25rem 0.625rem;
    border-radius: var(--radius-pill);
    background: var(--c-bg);
    border: 1px solid var(--c-border);
    font-size: var(--text-xs);
    line-height: 1.5;
}

.policy__footer {
    margin-top: var(--space-12);
    padding: var(--space-6);
    border-radius: var(--radius-lg);
    background: var(--c-surface-accent);
}

/* ---------- Print ---------- */
@media print {
    .site-header,
    .site-footer,
    .to-top,
    .toc,
    .read-progress,
    .doc-meta .btn,
    .breadcrumbs {
        display: none !important;
    }
    .with-toc {
        display: block;
    }
    .page-head {
        padding: 0 0 1rem;
    }
    body {
        font-size: 11pt;
    }
    .purpose,
    .policy__footer {
        break-inside: avoid;
        background: none;
    }
}

/* внутри prose карточки целей не наследуют «длинные» отступы текста */
.prose .purpose__title {
    margin-top: 0;
}

.prose .purpose * + * {
    margin-top: 0;
}

.prose .purpose .purpose__dl > div + div {
    margin-top: 0;
}

/* Тексты из Markdown (админка) внутри .prose */
.service-text > * + * {
    margin-top: 1em;
}

.service-text > p:first-child {
    font-size: var(--text-xl);
    line-height: 1.5;
}
