/* =====================================================
   Home Page — 5th Ave
   Sections: hero, stats, services, about, process,
   testimonials, faq, cta.
   All values use CSS custom properties only.
   ===================================================== */

/* =====================================================
   Hero
   ===================================================== */

.section-hero {
    /* Smaller top padding: body already offsets the fixed header (RULE 14) */
    padding-top: var(--space-16);
    padding-bottom: var(--section-py);
    background:
        radial-gradient( 60% 80% at 85% 20%, rgba(var(--color-primary-rgb), 0.06) 0%, transparent 70% ),
        var(--color-white);
}

.fave-hero__inner {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    align-items: center;
    gap: var(--space-16);
}

.fave-hero__heading {
    font-family: var(--font-heading);
    font-size: var(--text-h1);
    font-weight: var(--fw-extrabold);
    line-height: var(--leading-heading);
    letter-spacing: -0.02em;
    color: var(--color-text);
}

.fave-hero__sub {
    font-size: var(--text-body-lg);
    line-height: var(--leading-body);
    color: var(--color-muted);
    max-width: var(--measure-text);
    margin-top: var(--space-5);
}

.fave-hero__actions {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    flex-wrap: wrap;
    margin-top: var(--space-8);
}

.fave-hero__media {
    position: relative;
}

.fave-hero__image {
    width: 100%;
    height: auto;
    /* Taller 4:3 frame so the image balances the text column;
       the uploaded image is center-cropped to fit */
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-xl);
}

/* =====================================================
   Stats
   ===================================================== */

.section-stats {
    padding-block: var(--section-py);
    background-color: var(--color-primary);
}

.fave-stats__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-8);
    text-align: center;
}

.fave-stats__number {
    display: block;
    font-family: var(--font-heading);
    font-size: var(--text-h2);
    font-weight: var(--fw-extrabold);
    color: var(--color-white);
    line-height: var(--leading-heading);
}

.fave-stats__label {
    display: block;
    font-size: var(--text-sm);
    color: var(--color-on-dark);
    margin-top: var(--space-2);
}

/* =====================================================
   Services
   ===================================================== */

.section-services {
    padding-block: var(--section-py);
    background-color: var(--color-white);
}

.fave-services__head {
    text-align: center;
    margin-bottom: var(--space-12);
}

.fave-services__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-6);
}

.fave-services__card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: var(--space-8);
    background-color: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    transition: transform var(--ease-base), box-shadow var(--ease-base), border-color var(--ease-base);
}

.fave-services__card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-lg);
    border-color: rgba(var(--color-primary-rgb), 0.25);
}

.fave-services__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    font-size: var(--text-h3);
    background-color: rgba(var(--color-primary-rgb), 0.06);
    border-radius: var(--radius-md);
    margin-bottom: var(--space-5);
}

.fave-services__title {
    font-family: var(--font-heading);
    font-size: var(--text-h3);
    font-weight: var(--fw-bold);
    color: var(--color-text);
    margin-bottom: var(--space-3);
}

.fave-services__desc {
    font-size: var(--text-body);
    line-height: var(--leading-body);
    color: var(--color-muted);
    margin-bottom: var(--space-5);
}

.fave-services__link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    margin-top: auto;
    font-size: var(--text-sm);
    font-weight: var(--fw-semibold);
    color: var(--color-primary);
    text-decoration: none;
    transition: gap var(--ease-base), color var(--ease-base);
}

.fave-services__link:hover {
    color: var(--color-primary-dark);
    gap: var(--space-3);
}

/* =====================================================
   About
   ===================================================== */

.section-about {
    padding-block: var(--section-py);
    background-color: var(--color-bg);
}

.fave-home-about__inner {
    display: grid;
    grid-template-columns: 0.9fr 1.1fr;
    align-items: center;
    gap: var(--space-16);
}

.fave-home-about__image {
    width: 100%;
    height: auto;
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-lg);
}

.fave-home-about__points {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    list-style: none;
    margin: var(--space-6) 0 0;
    padding: 0;
}

.fave-home-about__point {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    font-size: var(--text-body);
    color: var(--color-text);
}

.fave-home-about__point svg {
    flex-shrink: 0;
    color: var(--color-primary);
}

.fave-home-about__actions {
    margin-top: var(--space-8);
}

/* =====================================================
   Process
   ===================================================== */

.section-process {
    padding-block: var(--section-py);
    background-color: var(--color-white);
}

.fave-process__head {
    text-align: center;
    margin-bottom: var(--space-12);
}

.fave-process__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-8);
}

.fave-process__step {
    text-align: center;
}

.fave-process__num {
    display: inline-block;
    font-family: var(--font-heading);
    font-size: var(--text-h2);
    font-weight: var(--fw-extrabold);
    line-height: 1;
    color: rgba(var(--color-primary-rgb), 0.2);
    margin-bottom: var(--space-4);
}

.fave-process__title {
    font-family: var(--font-heading);
    font-size: var(--text-body-lg);
    font-weight: var(--fw-bold);
    color: var(--color-text);
    margin-bottom: var(--space-2);
}

.fave-process__desc {
    font-size: var(--text-sm);
    line-height: var(--leading-body);
    color: var(--color-muted);
}

/* =====================================================
   Testimonials
   ===================================================== */

.section-testimonials {
    padding-block: var(--section-py);
    background-color: var(--color-bg);
}

.fave-testimonials__head {
    text-align: center;
    margin-bottom: var(--space-12);
}

.fave-testimonials__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-6);
}

.fave-testimonials__card {
    display: flex;
    flex-direction: column;
    margin: 0;
    padding: var(--space-8);
    background-color: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
}

.fave-testimonials__mark {
    color: var(--color-secondary);
    margin-bottom: var(--space-4);
}

.fave-testimonials__quote {
    margin: 0 0 var(--space-6);
    font-size: var(--text-body);
    line-height: var(--leading-body);
    color: var(--color-text);
}

.fave-testimonials__author {
    display: flex;
    flex-direction: column;
    margin-top: auto;
    padding-top: var(--space-4);
    border-top: 1px solid var(--color-border);
}

.fave-testimonials__name {
    font-weight: var(--fw-semibold);
    font-size: var(--text-sm);
    color: var(--color-text);
}

.fave-testimonials__role {
    font-size: var(--text-xs);
    color: var(--color-muted);
    margin-top: var(--space-1);
}

/* =====================================================
   FAQ
   ===================================================== */

.section-faq {
    padding-block: var(--section-py);
    background-color: var(--color-white);
}

.fave-faq__head {
    text-align: center;
    margin-bottom: var(--space-10);
}

.fave-faq__list {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    max-width: var(--measure-text);
    margin-inline: auto;
}

.fave-faq__item {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    overflow: hidden;
    transition: border-color var(--ease-base);
}

.fave-faq__item.is-open {
    border-color: rgba(var(--color-primary-rgb), 0.35);
}

.fave-faq__q {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    width: 100%;
    padding: var(--space-5) var(--space-6);
    background: none;
    border: none;
    cursor: pointer;
    text-align: left;
    font-family: var(--font-heading);
    font-size: var(--text-body);
    font-weight: var(--fw-semibold);
    color: var(--color-text);
}

.fave-faq__chevron {
    flex-shrink: 0;
    color: var(--color-muted);
    transition: transform var(--ease-base);
}

.fave-faq__item.is-open .fave-faq__chevron {
    transform: rotate(180deg);
}

.fave-faq__a {
    padding: 0 var(--space-6) var(--space-5);
}

.fave-faq__a p {
    font-size: var(--text-body);
    line-height: var(--leading-body);
    color: var(--color-muted);
}

/* =====================================================
   CTA banner
   ===================================================== */

.section-cta {
    padding-block: var(--section-py);
}

.fave-cta--dark {
    background:
        radial-gradient( 70% 100% at 50% 0%, rgba(var(--color-primary-light-rgb), 0.35) 0%, transparent 70% ),
        var(--color-primary);
    color: var(--color-on-dark);
}

.fave-cta__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.fave-cta__heading {
    font-family: var(--font-heading);
    font-size: var(--text-h2);
    font-weight: var(--fw-extrabold);
    line-height: var(--leading-heading);
    letter-spacing: -0.02em;
    color: var(--color-white);
    max-width: var(--measure-heading);
}

.fave-cta__sub {
    font-size: var(--text-body-lg);
    line-height: var(--leading-body);
    color: var(--color-on-dark);
    max-width: var(--measure-text);
    margin-top: var(--space-4);
}

.fave-cta__actions {
    margin-top: var(--space-8);
}

/* =====================================================
   Scroll reveal
   ===================================================== */

.reveal {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.5s ease, transform 0.5s ease;
}

.reveal.is-visible {
    opacity: 1;
    transform: none;
}

@media ( prefers-reduced-motion: reduce ) {
    .reveal,
    .reveal.is-visible {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

/* =====================================================
   Responsive — lg (1024px)
   ===================================================== */

@media ( max-width: 1024px ) {
    .fave-hero__inner,
    .fave-home-about__inner {
        grid-template-columns: 1fr;
        gap: var(--space-10);
    }

    /* Text first on mobile, image after (image is first in the markup) */
    .fave-home-about__content {
        order: -1;
    }

    .fave-services__grid,
    .fave-testimonials__grid {
        grid-template-columns: 1fr 1fr;
    }

    .fave-process__grid {
        grid-template-columns: 1fr 1fr;
        gap: var(--space-10);
    }
}

/* =====================================================
   Responsive — md (768px)
   ===================================================== */

@media ( max-width: 768px ) {
    .fave-stats__grid {
        grid-template-columns: 1fr 1fr;
        gap: var(--space-6);
    }

    .fave-services__grid,
    .fave-testimonials__grid {
        grid-template-columns: 1fr;
    }
}

/* =====================================================
   Responsive — sm (640px)
   ===================================================== */

@media ( max-width: 640px ) {
    /* Back to a wider crop on phones so the stacked hero image
       does not push the heading below the fold */
    .fave-hero__image {
        aspect-ratio: 16 / 9;
    }

    .fave-hero__actions .btn,
    .fave-cta__actions .btn {
        width: 100%;
        justify-content: center;
    }

    /* Number and title on row one, description on row two (RULE 13) */
    .fave-process__grid {
        grid-template-columns: 1fr;
        gap: var(--space-6);
    }

    .fave-process__step {
        display: grid;
        grid-template-columns: 56px 1fr;
        grid-template-rows: auto auto;
        align-items: center;
        column-gap: var(--space-4);
        row-gap: var(--space-2);
        text-align: left;
    }

    .fave-process__num   { grid-column: 1; grid-row: 1; margin-bottom: 0; }
    .fave-process__title { grid-column: 2; grid-row: 1; margin-bottom: 0; }
    .fave-process__desc  { grid-column: 2; grid-row: 2; }
}
