/* Explain: Styling for reusable UI components, including a sticky card stacking effect. */
/* Soft elevated card used across sections */
.eco-card {
    background: var(--surface-color);
    border: 1px solid var(--border-color);
    box-shadow: 0 1px 2px rgba(16, 38, 26, 0.04), 0 8px 24px rgba(16, 38, 26, 0.05);
}

.eco-card:hover {
    box-shadow: 0 2px 4px rgba(16, 38, 26, 0.05), 0 18px 40px rgba(22, 163, 74, 0.12);
}

.eco-input {
    width: 100%;
    border-radius: 0.75rem;
    border: 1px solid var(--border-color);
    background: var(--surface-color);
    padding: 0.8rem 1rem;
    color: var(--text-color);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.eco-input::placeholder {
    color: #94A3B8;
}

.eco-input:focus {
    outline: none;
    border-color: var(--primary-color);
    box-shadow: 0 0 0 4px rgba(22, 163, 74, 0.15);
}

/* Scroll-stacking deck: cards pile up behind one another as you scroll */
.stack-deck {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.stack-card {
    position: sticky;
    top: calc(6.5rem + var(--stack-index, 0) * 1.1rem);
}

.stack-card .eco-card {
    background: #ffffff;
    border: 1px solid var(--border-color);
    box-shadow: 0 2px 6px rgba(16, 38, 26, 0.06), 0 22px 48px rgba(16, 38, 26, 0.14);
}

@media (max-width: 640px) {
    .stack-card {
        top: calc(5.5rem + var(--stack-index, 0) * 0.75rem);
    }
}