/* =========================================================
   WRAPPER
   ========================================================= */

.eat-wrapper {
    position: relative;
    width: 100%;
    margin-top: 64px;
}


/* =========================================================
   CENTER TIMELINE LINE
   ========================================================= */

.eat-line {
    position: absolute;

    left: 50%;
    top: 0;
    bottom: 0;

    width: 1px;

    background: #E9E4E6;

    transform: translateX(-0.5px);

    z-index: 1;
}


/* =========================================================
   ITEMS WRAPPER
   ========================================================= */

.eat-items {
    position: relative;

    display: flex;
    flex-direction: column;

    row-gap: 56px;

    z-index: 2;
}


/* =========================================================
   EACH TIMELINE ITEM
   ========================================================= */

.eat-item {
    position: relative;

    display: grid;

    grid-template-columns: repeat(2, minmax(0, 1fr));

    column-gap: 48px;

    opacity: 0;

    transform: translateY(24px);

    transition:
        opacity 800ms cubic-bezier(0.22, 1, 0.36, 1),
        transform 800ms cubic-bezier(0.22, 1, 0.36, 1);

    transition-delay: var(--eat-delay);
}


/* Item visible after scroll */
.eat-item.is-visible {
    opacity: 1;
    transform: translateY(0);
}


/* =========================================================
   TIMELINE DOT
   ========================================================= */

.eat-dot {
    --eat-dot-inner-ring: #FAF8F8;
    --eat-dot-ring: #E9E4E6;

    position: absolute;

    left: 50%;
    top: 8px;

    width: 14px;
    height: 14px;

    border-radius: 50%;

    background: #75172E;

    transform: translateX(-50%);

    box-shadow:
        0 0 0 4px var(--eat-dot-inner-ring),
        0 0 0 5px var(--eat-dot-ring);

    z-index: 5;
}


/* =========================================================
   CARD WRAPPER
   Narrower width to match Lovable reference
   ========================================================= */

.eat-card-wrap {
    min-width: 0;

    width: min(100%, 380px);
}


/* Left side card */
.eat-item-left .eat-card-wrap {
    grid-column: 1;

    justify-self: end;

    text-align: right;
}


/* Right side card */
.eat-item-right .eat-card-wrap {
    grid-column: 2;

    justify-self: start;

    text-align: left;
}


/* =========================================================
   CARD
   ========================================================= */

.eat-card {
    width: 100%;

    padding: 24px 28px;

    box-sizing: border-box;

    background: #FFFFFF;

    border: 1px solid #E9E4E6;
    border-radius: 20px;

    box-shadow:
        0 12px 30px -20px rgba(37, 37, 37, 0.12);
}


/* =========================================================
   EYEBROW
   ========================================================= */

.eat-eyebrow {
    display: inline-block;

    color: #75172E;
}


/* =========================================================
   TITLE
   ========================================================= */

.eat-title {
    margin: 12px 0 0;

    font-family: serif;
    font-size: 24px;

    line-height: 1.2;
    letter-spacing: -0.01em;

    color: #252525;
}


/* =========================================================
   DESCRIPTION
   ========================================================= */

.eat-description {
    margin: 8px 0 0;

    line-height: 1.65;

    color: #666666;
}


/* =========================================================
   SMALL DESKTOP / LAPTOP
   Keep cards proportionate
   ========================================================= */

@media (max-width: 1280px) and (min-width: 1025px) {

    .eat-card-wrap {
        width: min(100%, 340px);
    }

    .eat-item {
        column-gap: 40px;
    }

    .eat-card {
        padding: 22px 24px;
    }
}


/* =========================================================
   TABLET
   Keep alternating layout but reduce card width slightly
   ========================================================= */

@media (max-width: 1024px) and (min-width: 768px) {

    .eat-wrapper {
        margin-top: 52px;
    }

    .eat-items {
        row-gap: 48px;
    }

    .eat-item {
        grid-template-columns: repeat(2, minmax(0, 1fr));

        column-gap: 32px;
    }

    .eat-card-wrap {
        width: min(100%, 300px);
    }

    .eat-card {
        padding: 22px;
    }

    .eat-title {
        font-size: 22px;
    }
}


/* =========================================================
   MOBILE
   Lovable behavior:
   timeline shifts to the left
   cards stack on one side
   ========================================================= */

@media (max-width: 767px) {

    .eat-wrapper {
        margin-top: 40px;
    }


    /* Move line to left */
    .eat-line {
        left: 16px;

        transform: translateX(-0.5px);
    }


    .eat-items {
        row-gap: 40px;
    }


    /* Stack each item */
    .eat-item {
        display: block;

        width: 100%;
    }


    /* Dot follows left timeline */
    .eat-dot {
        left: 16px;
        top: 8px;
    }


    /* Both left/right cards use same mobile layout */
    .eat-item-left .eat-card-wrap,
    .eat-item-right .eat-card-wrap {
        width: 100%;

        padding-left: 48px;
        padding-right: 0;

        text-align: left;

        justify-self: auto;
    }


    .eat-card {
        width: 100%;

        padding: 24px;
    }


    .eat-title {
        font-size: 20px;
    }


    .eat-description {
        line-height: 1.6;
    }
}