/* B448: shared archive card contract for Photograph, Blog, Place and Ramble. */
.archive-grid.archive-grid, .route-rambles .ramble-archive .archive-grid.archive-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(1rem,2.2vw,1.65rem); align-items:stretch; margin-top:1.5rem; }
.archive-grid.archive-grid > li { list-style:none; margin:0; padding:0; min-width:0; border:0; content-visibility:visible; contain-intrinsic-size:none; }
.archive-grid.archive-grid .archive-card { display:flex; flex-direction:column; align-items:stretch; gap:0; padding:0; min-width:0; height:100%; background:var(--surface); border:1px solid var(--line); border-radius:.6rem; overflow:hidden; }
.archive-grid.archive-grid .archive-card__cover { display:grid; grid-template-areas:"cover"; grid-template-columns:minmax(0,1fr); grid-template-rows:minmax(0,1fr); flex:none; width:100%; aspect-ratio:3/2; min-height:0; margin:0; padding:0; overflow:hidden; background:var(--paper); text-decoration:none; border-radius:0; }
.archive-grid.archive-grid .archive-card__cover img { display:block; grid-area:cover; position:static; width:100%; height:100%; min-width:0; min-height:0; margin:0; padding:0; max-width:none; max-height:none; object-fit:cover; object-position:center; background:transparent; transition:opacity .15s ease; }
.archive-grid.archive-grid .archive-card__cover img.archive-image--portrait { object-fit:contain; }
.archive-grid.archive-grid .archive-card__cover img.archive-image--landscape { object-fit:cover; }
.archive-grid.archive-grid .archive-card__cover:hover img { opacity:.88; }
.archive-grid.archive-grid .archive-card__cover--empty { background:color-mix(in srgb,var(--paper) 84%,var(--line) 16%); }
.archive-grid.archive-grid .archive-card__content { display:flex; flex-direction:column; flex:1; gap:.65rem; min-width:0; padding:clamp(.9rem,1.4vw,1.15rem); }
.archive-grid.archive-grid .archive-card__content :is(h2,h3) { margin:0; font:500 clamp(1.2rem,1.7vw,1.5rem)/1.24 Georgia,"Times New Roman",serif; letter-spacing:-.015em; }
.archive-grid.archive-grid .archive-card__content :is(h2,h3) a { color:var(--ink); text-decoration:none; }
.archive-grid.archive-grid .archive-card__content :is(h2,h3) a:hover { text-decoration:underline; text-underline-offset:.15em; }
.archive-grid.archive-grid .archive-card__content :is(.excerpt,.ramble-card__excerpt) { margin:0; max-width:none; font:inherit; line-height:1.55; white-space:normal; overflow-wrap:anywhere; }
.archive-grid.archive-grid .archive-card__content :is(.publication,.ramble-card__meta) { margin:auto 0 0; padding-top:.6rem; color:var(--muted); font:400 .8rem/1.5 system-ui,sans-serif; }
.archive-grid.archive-grid .archive-card a:focus-visible { outline:3px solid var(--focus); outline-offset:-3px; }
@media(max-width:70rem) { .archive-grid.archive-grid, .route-rambles .ramble-archive .archive-grid.archive-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:46rem) { .archive-grid.archive-grid, .route-rambles .ramble-archive .archive-grid.archive-grid { grid-template-columns:minmax(0,1fr); } }
@media(prefers-reduced-motion:reduce) { .archive-grid.archive-grid .archive-card__cover img { transition:none; } }
@media(forced-colors:active) { .archive-grid.archive-grid .archive-card { border-color:CanvasText; } }
