.section {
    display: flex;
    align-items: center;
    gap: 80px;
    padding: 0 60px;
    max-width: 1200px;
    justify-content: center; /* ← add this */
}

/* ── Left: photo ── */
.photo-wrap {
    flex-shrink: 0;
    width: 420px;
    height: 520px;
    border-radius: 30px;
    overflow: hidden;
    background: #d8d4c0;
}

.photo-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* ── Right: list ── */
.protein-list {
    display: flex;
    flex-direction: column;
    gap: 18px; /* space between each word+line block */
    flex: 1;
    contain: content;
}

/* Each item stacks: label on top, line+arrow directly below */
.protein-item {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    cursor: pointer;
    text-decoration: none;
    width: 100%;
    padding: 5px 0; /* Creates a slightly larger hover target */
    isolation: isolate;
}

.protein-item__label {
    font-family: 'host grotesk', prompt, sans-serif;
    font-size: 44px;
    color: var(--A-green-pr);
    white-space: nowrap;
    line-height: 1;
    /* extends how far the line goes past the word */
    padding-right: 60px;
    -webkit-font-smoothing: antialiased;
    backface-visibility: hidden;
}

/* Line + arrow row — sits 8px below the label, like an underline */
.protein-item__bottom {
    display: flex;
    align-items: flex-end;
    margin-top:-25px;
    width: 100%;
}

/* ── Line ── */
.protein-item__line-wrap {
    flex: 1;
    height: 3px;
    overflow: hidden;
}

.protein-item__line {
    width: 100%;
    height: 3px;
    background: #FFBBA6;
    transform-origin: left center;
    transform: scaleX(0);
    will-change: transform; 
    transition: transform 0.22s cubic-bezier(0.4, 0, 0.2, 1) 0s;
}

.protein-item:hover .protein-item__line {
    transform: scaleX(1);
}

/* ── Arrow SVG ── */
.protein-item__arrow-wrap svg {
    shape-rendering: geometricPrecision;
}
.arrow-stem, .arrow-head {
    will-change: stroke-dashoffset;
}
.protein-item__arrow-wrap {
    flex-shrink: 0;
    overflow: visible;
    width: 28px;
    height: 28px;
    margin-bottom: 1px;
    margin-left: -1px;  /* ← nudge left to close any gap with the line */
}

/* Stem */
.arrow-stem {
    stroke-dasharray: 30;
    stroke-dashoffset: 30;
    transition: stroke-dashoffset 0.001s ease; /* changed from 0s */
}

.protein-item:hover .arrow-stem {
    stroke-dashoffset: 0;
    transition: stroke-dashoffset 0.12s ease 0.18s; /* ENTER: after line */
}

/* Head */
.arrow-head {
    stroke-dasharray: 22;
    stroke-dashoffset: 22;
    transition: stroke-dashoffset 0.001s ease; /* changed from 0s */
}

.protein-item:hover .arrow-head {
    stroke-dashoffset: 0;
    transition: stroke-dashoffset 0.18s ease 0.20s; /* ENTER: after stem */
}


@media (max-width: 900px) {
    .section {
        gap: 40px;
    }

    .photo-wrap {
        width: 280px;
        height: 360px;
    }

    .protein-item__label {
        /* font-size: clamp(22px, 3vw, 32px); */
        padding-right: 30px; /* ← line extends less */
    }
}

/* ── Mobile (≤650px): stack vertically, photo on top, list below ── */
@media (max-width: 650px) {
    .section {
        flex-direction: column;  /* ← stacks vertically */
        align-items: center;
        gap: 32px;
        padding: 30px 20px;
    }

    .photo-wrap {
        width: 100%;
        max-width: 380px;
        height: 300px;
        flex-shrink: 0;
    }

    .protein-list {
        width: 100%;
        max-width: 380px;
        gap: 12px;
        align-items: flex-start;
    }

    .protein-item__label {
        font-size: clamp(24px, 6vw, 34px);
        padding-right: 20px; /* ← shorter line on small screens */
    }

}