/* =========================================================================
   L'Atelier de MIA — Archive (Phase 2)

   The Archive is the house's memory wall. Pieces cycle through five
   locked patterns — the cycle gives rhythm to a long scroll without
   ever lapsing into a product grid.

     · Pattern 1 — Full-bleed       (.archive-piece--full-bleed)
     · Pattern 2 — Asymmetric 2-up  (.archive-piece--asymmetric)
     · Pattern 3 — Off-centre single (.archive-piece--off-center)
     · Pattern 4 — Quiet pair        (.archive-piece--quiet-pair)
     · Pattern 5 — Editorial caption band (.archive-piece--caption-band)

   No filled buttons, no swatches, no sizes, no inline form,
   no 3-up grids. One primary link per page.
   ========================================================================= */

.archive {
    background: var(--canvas);
    color: var(--fg);
}

/* =========== OPENING =========== */

.archive-opening {
    padding: var(--space-8) var(--space-5);
    background: var(--canvas);
    display: flex;
    justify-content: center;
}

.archive-opening__inner {
    max-width: 720px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-4);
}

.archive-opening__eyebrow {
    font-family: var(--type-label-caps-font);
    font-size: var(--type-label-caps-size);
    font-weight: var(--type-label-caps-weight);
    letter-spacing: var(--type-label-caps-tracking);
    text-transform: var(--type-label-caps-case);
    color: var(--muted);
}

.archive-opening__title {
    margin: 0;
    max-width: 20ch;
    font-family: var(--type-display-font);
    font-size: var(--type-display-size);
    font-weight: var(--type-display-weight);
    letter-spacing: var(--type-display-tracking);
    line-height: 1.04;
    color: var(--fg);
}

.archive-opening__title em { font-style: italic; }

.archive-opening__line {
    margin: 0;
    max-width: 48ch;
    font-family: var(--type-body-editorial-font);
    font-size: var(--type-body-editorial-size);
    font-weight: var(--type-body-editorial-weight);
    line-height: 1.7;
    color: var(--fg);
}

@media (max-width: 899px) {
    .archive-opening { padding: var(--space-7) var(--space-4); }
    .archive-opening__title { font-size: var(--type-display-size-mobile); }
}

/* =========== WALL / PIECE WRAPPER =========== */

.archive-wall {
    background: var(--canvas);
}

.archive-piece {
    padding: var(--space-8) 0;
    background: var(--canvas);
}

.archive-piece--deep {
    background: var(--canvas-deep);
}

.archive-piece__caption {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    max-width: 48ch;
}

.archive-piece__eyebrow {
    font-family: var(--type-label-caps-font);
    font-size: var(--type-label-caps-size);
    font-weight: var(--type-label-caps-weight);
    letter-spacing: var(--type-label-caps-tracking);
    text-transform: var(--type-label-caps-case);
    color: var(--muted);
}

.archive-piece__name {
    margin: 0;
    font-family: var(--type-headline-font);
    font-size: var(--type-headline-size);
    font-weight: var(--type-headline-weight);
    letter-spacing: var(--type-headline-tracking);
    line-height: 1.15;
    color: var(--fg);
}

.archive-piece__name em { font-style: italic; }

.archive-piece__line {
    margin: 0;
    font-family: var(--type-body-editorial-font);
    font-size: var(--type-body-editorial-size);
    font-weight: var(--type-body-editorial-weight);
    line-height: 1.7;
    color: var(--fg);
}

/* =========== PATTERN 1 — FULL-BLEED =========== */

.archive-piece--full-bleed {
    padding: 0;
}

.archive-piece--full-bleed .archive-piece__media {
    width: 100%;
    height: 100svh;
    min-height: 560px;
    overflow: hidden;
    background: var(--canvas);
}

.archive-piece--full-bleed .archive-piece__media picture,
.archive-piece--full-bleed .archive-piece__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.archive-piece--full-bleed .archive-piece__caption {
    max-width: 720px;
    margin: 0 auto;
    padding: var(--space-7) var(--space-5);
    text-align: center;
    align-items: center;
}

@media (max-width: 899px) {
    .archive-piece--full-bleed .archive-piece__media {
        height: 70svh;
        min-height: 480px;
    }
}

/* =========== PATTERN 2 — ASYMMETRIC 2-UP =========== */

.archive-piece--asymmetric .archive-piece__grid {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 var(--space-5);
    display: grid;
    grid-template-columns: 3fr 2fr;
    gap: var(--space-5);
    align-items: end;
}

.archive-piece--asymmetric .archive-piece__media--primary {
    aspect-ratio: 4 / 5;
    overflow: hidden;
}

.archive-piece--asymmetric .archive-piece__media--secondary {
    aspect-ratio: 3 / 4;
    overflow: hidden;
    margin-bottom: var(--space-7);
}

.archive-piece--asymmetric .archive-piece__media picture,
.archive-piece--asymmetric .archive-piece__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.archive-piece--asymmetric .archive-piece__caption {
    grid-column: 1 / -1;
    max-width: 720px;
    margin: 0 auto;
    padding-top: var(--space-5);
    text-align: center;
    align-items: center;
}

@media (max-width: 899px) {
    .archive-piece--asymmetric .archive-piece__grid {
        grid-template-columns: 1fr;
        padding: 0 var(--space-4);
    }
    .archive-piece--asymmetric .archive-piece__media--secondary {
        margin-bottom: 0;
    }
}

/* =========== PATTERN 3 — OFF-CENTRE SINGLE =========== */

.archive-piece--off-center .archive-piece__grid {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 var(--space-5);
    display: grid;
    grid-template-columns: 3fr 2fr;
    gap: var(--space-7);
    align-items: center;
}

.archive-piece--off-center .archive-piece__media {
    aspect-ratio: 4 / 5;
    overflow: hidden;
}

.archive-piece--off-center .archive-piece__media picture,
.archive-piece--off-center .archive-piece__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.archive-piece--off-center .archive-piece__caption {
    padding-left: var(--space-3);
}

@media (max-width: 899px) {
    .archive-piece--off-center .archive-piece__grid {
        grid-template-columns: 1fr;
        padding: 0 var(--space-4);
        gap: var(--space-5);
    }
    .archive-piece--off-center .archive-piece__caption { padding-left: 0; }
}

/* =========== PATTERN 4 — QUIET PAIR =========== */

.archive-piece--quiet-pair .archive-piece__grid {
    max-width: 960px;
    margin: 0 auto;
    padding: 0 var(--space-5);
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-5);
    align-items: start;
}

.archive-piece--quiet-pair .archive-piece__media {
    aspect-ratio: 3 / 4;
    overflow: hidden;
}

.archive-piece--quiet-pair .archive-piece__media picture,
.archive-piece--quiet-pair .archive-piece__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.archive-piece--quiet-pair .archive-piece__caption {
    grid-column: 1 / -1;
    max-width: 640px;
    margin: 0 auto;
    padding-top: var(--space-5);
    text-align: center;
    align-items: center;
}

@media (max-width: 899px) {
    .archive-piece--quiet-pair .archive-piece__grid {
        grid-template-columns: 1fr;
        padding: 0 var(--space-4);
    }
}

/* =========== PATTERN 5 — EDITORIAL CAPTION BAND =========== */

.archive-piece--caption-band {
    padding: var(--space-8) var(--space-5);
    background: var(--canvas);
    display: flex;
    justify-content: center;
}

.archive-piece--caption-band .archive-piece__caption {
    max-width: 640px;
    text-align: center;
    align-items: center;
    gap: var(--space-4);
}

.archive-piece--caption-band .archive-piece__line {
    font-style: italic;
}

@media (max-width: 899px) {
    .archive-piece--caption-band { padding: var(--space-7) var(--space-4); }
}

/* =========== CHAPTER CLOSING =========== */

.archive-closing {
    padding: var(--space-8) var(--space-5);
    background: var(--canvas);
    display: flex;
    justify-content: center;
    border-top: 1px solid var(--hairline);
}

.archive-closing__inner {
    max-width: 640px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-4);
}

.archive-closing__line {
    margin: 0;
    font-family: var(--type-headline-font);
    font-size: var(--type-headline-size);
    font-weight: var(--type-headline-weight);
    letter-spacing: var(--type-headline-tracking);
    line-height: 1.3;
    font-style: italic;
    color: var(--fg);
}

@media (max-width: 899px) {
    .archive-closing { padding: var(--space-7) var(--space-4); }
}

/* =========== CHAPTER-INDEX (top-level archive/) =========== */

.archive-index {
    padding: var(--space-8) var(--space-5);
    background: var(--canvas);
    display: flex;
    justify-content: center;
}

.archive-index__inner {
    max-width: 960px;
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
}

.archive-index__chapter {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: var(--space-6);
    padding: var(--space-6) 0;
    border-top: 1px solid var(--hairline);
    align-items: baseline;
}

.archive-index__chapter:last-child {
    border-bottom: 1px solid var(--hairline);
}

.archive-index__chapter-eyebrow {
    font-family: var(--type-label-caps-font);
    font-size: var(--type-label-caps-size);
    font-weight: var(--type-label-caps-weight);
    letter-spacing: var(--type-label-caps-tracking);
    text-transform: var(--type-label-caps-case);
    color: var(--muted);
}

.archive-index__chapter-body {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.archive-index__chapter-name {
    margin: 0;
    font-family: var(--type-headline-font);
    font-size: var(--type-headline-size);
    font-weight: var(--type-headline-weight);
    letter-spacing: var(--type-headline-tracking);
    line-height: 1.2;
    color: var(--fg);
}

.archive-index__chapter-name em { font-style: italic; }

.archive-index__chapter-line {
    margin: 0;
    font-family: var(--type-body-editorial-font);
    font-size: var(--type-body-editorial-size);
    font-weight: var(--type-body-editorial-weight);
    line-height: 1.7;
    color: var(--fg);
}

@media (max-width: 899px) {
    .archive-index { padding: var(--space-7) var(--space-4); }
    .archive-index__chapter {
        grid-template-columns: 1fr;
        gap: var(--space-3);
        padding: var(--space-5) 0;
    }
}
