@keyframes rotateSquare {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

.intro-pattern-overlay {
    background-image: repeating-linear-gradient(45deg, transparent, transparent 20px, currentColor 20px, currentColor 40px);
    opacity: 0.03;
    top: -20%;
    left: -30%;
    width: 100%;
    height: 100%;
    animation: rotateSquare 20s linear infinite;
}

.intro-pattern-content {
    max-width: 56rem;
}

.services-columns__serif,
[data-serif] {
    font-family: Georgia, "Times New Roman", Times, serif;
}

.services-columns__list {
    columns: 1;
    margin: 0;
}
@media (min-width: 768px) {
    .services-columns__list {
        columns: 2;
        column-gap: 2.5rem;
    }
}

.services-columns__group {
    break-inside: avoid;
    margin-bottom: 2rem;
}

.services-columns__accent {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: 2px;
    background-color: currentColor;
}

/* process stack — sticky scroll layering, marker, oversized step numbers */
.process-stack__marker {
    width: 0.625rem;
    height: 0.625rem;
}

.process-stack__num {
    font-size: clamp(3.5rem, 11vw, 7.5rem);
    line-height: 0.85;
    letter-spacing: -0.04em;
}

@media (min-width: 768px) {
    .process-stack__slot {
        min-height: min(52vh, 26rem);
    }

    .process-stack__slot:last-child {
        min-height: 0;
    }

    .process-stack__panel {
        position: sticky;
        top: 5rem;
        z-index: calc(var(--stack-index, 0) + 1);
    }
}

/* FAQ v3 — JS visibility hook */
.answers-solver-solution-tucked {
    display: none;
}

.answers-solver__icon-circle {
    width: 2rem;
    height: 2rem;
}

.answers-solver__piece--shift:hover { transform: scale(1.05); transition: transform .2s ease; }

