/* Explain: Layout utilities for section padding, backgrounds, and card styling. */
.section-pad {
    padding-top: clamp(5rem, 9vw, 8.5rem);
    padding-bottom: clamp(5rem, 9vw, 8.5rem);
}

.section-head {
    max-width: 46rem;
    margin-inline: auto;
    text-align: center;
}

.section-dark {
    background: var(--surface-color);
    color: var(--text-color);
}

.hero-graphic {
    position: relative;
    isolation: isolate;
    background: linear-gradient(180deg, #FFFFFF 0%, var(--surface-color) 100%);
    color: var(--text-color);
}

.hero-grid-lines {
    background-image:
        linear-gradient(rgba(176, 141, 46, 0.06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(176, 141, 46, 0.06) 1px, transparent 1px);
    background-size: 72px 72px;
}

.contact-section {
    background: var(--surface-color);
    color: var(--text-color);
}

.why-card {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--border-color);
    border-radius: 1.4rem;
    background: #ffffff;
    padding: 2rem 1.8rem;
    transition: transform 450ms ease, border-color 450ms ease, box-shadow 450ms ease;
}

.why-card:hover {
    transform: translateY(-8px);
    border-color: var(--accent-color);
    box-shadow: var(--shadow-soft);
}

.process-step {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--border-color);
    border-radius: 1.4rem;
    background: #ffffff;
    padding: 2rem 1.8rem;
    transition: transform 450ms ease, border-color 450ms ease, box-shadow 450ms ease;
}

.process-step:hover {
    transform: translateY(-8px);
    border-color: var(--accent-color);
    box-shadow: var(--shadow-soft);
}

.process-num {
    font-family: var(--font-display);
    font-size: 3rem;
    font-weight: 700;
    line-height: 1;
    color: var(--accent-color);
}

.project-card {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--border-color);
    border-radius: 1.4rem;
    transition: box-shadow 450ms ease, border-color 450ms ease;
}

.project-card img {
    aspect-ratio: 4 / 3;
    width: 100%;
    object-fit: cover;
    transition: transform 800ms cubic-bezier(0.22, 0.61, 0.36, 1);
}

.project-card:hover {
    border-color: var(--accent-color);
    box-shadow: var(--shadow-card);
}

.project-card:hover img {
    transform: scale(1.07);
}

.project-overlay {
    position: absolute;
    inset-inline: 0;
    bottom: 0;
    padding: 2.2rem 1.4rem 1.4rem;
    background: linear-gradient(180deg, transparent 0%, rgba(23, 23, 23, 0.85) 100%);
}