html {
    overflow-x: clip;
}

body[data-page-type="design-lab-portfolio"] {
    overflow-x: clip;
    color: #1b1c18;
    background: #f1efe8;
}

.dlpf {
    --ink: #1b1c18;
    --muted: #686a62;
    --paper: #fffef9;
    --line: #d3d0c6;
    --yellow: #f6bf2f;
    --container: 1380px;
    font-variant-numeric: tabular-nums;
}

.dlpf *,
.dlpf *::before,
.dlpf *::after {
    box-sizing: border-box;
}

.dlpf-container {
    width: min(100% - 40px, var(--container));
    margin-inline: auto;
}

.dlpf-hero {
    background: var(--yellow);
    border-bottom: 1px solid #d2a325;
}

.dlpf-nav {
    min-height: 42px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid rgb(75 55 0 / 22%);
    color: #5b4507;
    font-size: .65rem;
    font-weight: 760;
}

.dlpf-nav a {
    display: inline-flex;
    gap: 8px;
    align-items: center;
    color: inherit;
    text-decoration: none;
}

.dlpf-hero-grid {
    min-height: 190px;
    display: grid;
    align-items: end;
    padding-block: 38px 34px;
}

.dlpf-toolbar > div:first-child > span,
.dlpf-cta span {
    display: block;
    margin-bottom: 10px;
    color: #624b08;
    font-size: .62rem;
    font-weight: 860;
    letter-spacing: .105em;
    text-transform: uppercase;
}

.dlpf h1,
.dlpf h2,
.dlpf p {
    text-wrap: balance;
}

.dlpf h1 {
    max-width: 980px;
    margin: 0;
    font-size: clamp(3.25rem, 6vw, 6.6rem);
    letter-spacing: -.068em;
    line-height: .84;
}

.dlpf h1 em {
    color: #fff;
    font-style: normal;
}

.dlpf-work {
    padding-block: 34px 48px;
}

.dlpf-toolbar {
    display: flex;
    justify-content: space-between;
    gap: 28px;
    align-items: end;
    margin-bottom: 20px;
}

.dlpf-toolbar h2,
.dlpf-cta h2 {
    margin: 0;
    font-size: clamp(1.6rem, 2.4vw, 2.7rem);
    letter-spacing: -.048em;
    line-height: 1;
}

.dlpf-toolbar > div:first-child > span {
    color: var(--muted);
}

.dlpf-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.dlpf-card {
    min-width: 0;
    overflow: hidden;
    background: var(--paper);
    border: 1px solid var(--line);
}

.dlpf-card[hidden] {
    display: none;
}

.dlpf-image {
    width: 100%;
    display: block;
    padding: 0;
    overflow: hidden;
    background: #dddcd7;
    border: 0;
    aspect-ratio: 4 / 3;
}

.dlpf-image img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
}

.dlpf-caption {
    min-height: 68px;
    display: grid;
    align-content: center;
    gap: 4px;
    padding: 10px 12px;
    border-top: 1px solid var(--line);
}

.dlpf-caption strong {
    font-size: .78rem;
    letter-spacing: -.02em;
}

.dlpf-caption span {
    color: var(--muted);
    font-size: .58rem;
    line-height: 1.35;
}

.dlpf-cta {
    color: #f7f4eb;
    background: #20211d;
}

.dlpf-cta-grid {
    min-height: 190px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 48px;
    align-items: center;
    padding-block: 34px;
}

.dlpf-cta span {
    color: #d9ae38;
}

.dlpf-cta h2 {
    max-width: 760px;
}

.dlpf-cta a {
    display: inline-flex;
    gap: 28px;
    align-items: center;
    min-height: 48px;
    padding: 0 18px;
    color: #252218;
    background: var(--yellow);
    text-decoration: none;
    font-size: .68rem;
    font-weight: 850;
}

.dlpf button:focus-visible,
.dlpf a:focus-visible {
    outline: 4px solid #765700;
    outline-offset: 3px;
}

@media (max-width: 1060px) {
    .dlpf-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .dlpf-container {
        width: min(100% - 24px, var(--container));
    }

    .dlpf-hero-grid,
    .dlpf-cta-grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .dlpf-hero-grid {
        min-height: 0;
        align-items: start;
        padding-block: 30px;
    }

    .dlpf h1 {
        font-size: clamp(2.8rem, 14vw, 4.5rem);
    }

    .dlpf-toolbar {
        display: grid;
        align-items: start;
    }

    .dlpf-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }

    .dlpf-caption {
        min-height: 62px;
        padding: 9px;
    }
}

@media (max-width: 430px) {
    .dlpf-grid {
        grid-template-columns: 1fr;
    }
}
