.map-grid { align-items: stretch; }
.map-card { position: relative; padding-bottom: 76px; }
.map-card p { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.card-cta {
  position: absolute;
  right: clamp(28px, 4vw, 52px);
  bottom: 32px;
  color: var(--red);
  text-transform: uppercase;
  letter-spacing: .14em;
  font-size: 8px;
  font-weight: 700;
}
.map-card:hover .card-cta { color: #f5efe4; }

.map-hero { min-height: 330px; padding-bottom: clamp(42px, 6vw, 70px); }
.map-hero h1 { max-width: 1040px; font-size: clamp(46px, 7vw, 88px); }
.map-reading-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(250px, 310px);
  gap: clamp(42px, 7vw, 92px);
  padding: clamp(48px, 7vw, 86px) 0;
}
.map-figure { margin: 0 0 clamp(58px, 8vw, 90px); }
.map-frame {
  display: grid;
  place-items: center;
  padding: clamp(9px, 1.5vw, 18px);
  border: 1px solid rgba(24, 32, 30, .2);
  background: rgba(255, 252, 243, .72);
  box-shadow: 0 18px 48px rgba(24, 32, 30, .08);
}
.map-frame picture { display: block; width: 100%; }
.map-frame img { display: block; width: 100%; height: auto; max-height: 78svh; object-fit: contain; }
.map-figure figcaption {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 13px 1px 0;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: 8px;
}
.inline-topic-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }
.inline-topic-links a {
  padding: 9px 12px;
  border: 1px solid var(--line);
  color: var(--red);
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: .1em;
  font-size: 8px;
}
.inline-topic-links a:hover { color: #f4efe4; background: var(--green); }

.related-map-actions {
  display: grid;
  gap: 8px;
  margin-top: 28px;
  padding-top: 20px;
  border-top: 1px solid var(--line);
}
.related-map-actions > span,
.related-map-list h2 {
  margin: 0 0 3px;
  color: var(--red);
  text-transform: uppercase;
  letter-spacing: .15em;
  font-size: 8px;
  font-weight: 700;
}
.related-map-actions a {
  padding: 11px 12px;
  border: 1px solid rgba(36, 51, 47, .22);
  color: #505853;
  text-decoration: none;
  font-size: 10px;
  line-height: 1.35;
}
.related-map-actions a.map-primary,
.related-map-actions a:hover { color: #f4efe4; background: var(--green); }
.related-map-list { display: grid; gap: 7px; margin-top: 30px; padding-top: 21px; border-top: 1px solid var(--line); }
.related-map-list a { color: #555d58; text-decoration: none; font: 12px/1.4 Georgia, serif; }
.related-map-list a:hover { color: var(--red); }

@media (max-width: 760px) {
  .map-reading-layout { grid-template-columns: 1fr; gap: 48px; padding: 42px 0 58px; }
  .map-frame { padding: 7px; }
  .map-frame img { max-height: none; }
  .map-figure figcaption { align-items: flex-start; flex-direction: column; gap: 4px; }
  .map-card { padding-bottom: 65px; }
  .related-map-actions a { padding: 13px; }
}

@media print {
  .map-reading-layout { display: block; padding-top: 24px; }
  .map-frame { padding: 0; border: 0; box-shadow: none; }
  .related-map-list, .inline-topic-links { display: none; }
}
