/* -----------------------------------------------------------------------------
   place-v1.css
   Phase 3 prototype — St. Peter's Basilica editorial place-detail layout.

   All rules are scoped under .er-place-v1 so this file cannot affect any other
   destination page. Uses the Phase 1 design tokens from variables.css and the
   .er-* primitives from global.css. Composition follows the Claude Design
   02B place-v1 reference — typography, primitive shapes, and rhythm match
   the Claude Design system while keeping Eternal Roam's clay/teal palette.
   -------------------------------------------------------------------------- */

.er-place-v1 {
    background-color: var(--er-paper);
    color: var(--er-ink);
    font-family: var(--er-sans);
    font-size: 16px;
    line-height: 1.62;

    --er-place-v1-container: 1240px;
    --er-place-v1-fs-title:  clamp(3rem, 7vw, 6.25rem);
    --er-place-v1-fs-head:   clamp(2rem, 3.8vw, 3rem);
    --er-place-v1-fs-quote:  clamp(2.25rem, 4.4vw, 3.625rem);
    --er-place-v1-fs-h3:     1.0625rem;
    --er-place-v1-fs-lede:   clamp(1.125rem, 1.45vw, 1.3125rem);
    --er-place-v1-fs-body:   16px;
    --er-place-v1-fs-meta:   14px;
    --er-place-v1-fs-meta-sm:14px;
    --er-place-v1-tr-meta:   0.08em;
    --er-place-v1-tr-eye:    0.12em;

    /* Scoped accents that don't exist in variables.css yet. */
    --er-place-v1-teal:      #1F3936;
    --er-place-v1-teal-deep: #15302E;
    --er-place-v1-teal-soft: rgba(31, 57, 54, 0.16);
    --er-place-v1-gold-soft: rgba(164, 130, 63, 0.16);
    --er-place-v1-olive-soft:rgba(110, 114, 75, 0.14);
    --er-place-v1-clay-soft: rgba(179, 106, 69, 0.14);
}

.er-place-v1 a {
    color: var(--er-ink);
    text-decoration: none;
    border-bottom: 1px solid var(--er-rule);
    transition: color 160ms ease, border-color 160ms ease;
}

.er-place-v1 a:hover,
.er-place-v1 a:focus-visible {
    color: var(--er-clay-deep);
    border-bottom-color: var(--er-clay-deep);
}

@media (min-width: 1100px) {
    .er-place-v1 {
        --er-place-v1-fs-body: 17px;
    }
}

.er-place-v1 h1,
.er-place-v1 h2,
.er-place-v1 h3 {
    font-family: var(--er-serif);
    color: var(--er-ink);
    font-weight: 400;
    margin: 0;
    letter-spacing: 0;
    text-wrap: balance;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: manual;
}

.er-place-v1 p {
    margin: 0;
    text-wrap: pretty;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: manual;
}

.er-place-v1,
.er-place-v1 * {
    box-sizing: border-box;
}

/* --- Shared layout --------------------------------------------------- */

.er-place-v1__container {
    width: 100%;
    max-width: var(--er-place-v1-container);
    margin: 0 auto;
    padding: 0 var(--er-space-32);
    box-sizing: border-box;
    min-width: 0;
}

.er-place-v1__section {
    padding: clamp(var(--er-space-64), 7vw, var(--er-space-96)) 0;
    border-top: 1px solid var(--er-rule-soft);
}

.er-place-v1__section-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--er-space-24);
    padding-bottom: 16px;
    margin-bottom: clamp(var(--er-space-32), 3.5vw, var(--er-space-48));
    border-bottom: 1px solid var(--er-ink);
    flex-wrap: wrap;
}

.er-place-v1__section-head-left {
    min-width: 0;
    flex: 1 1 auto;
    max-width: 64ch;
}

.er-place-v1__section-head .er-place-v1__count {
    font-family: var(--er-mono);
    font-size: var(--er-place-v1-fs-meta);
    letter-spacing: var(--er-place-v1-tr-eye);
    text-transform: uppercase;
    color: var(--er-ink-3);
    align-self: flex-end;
    white-space: nowrap;
    max-width: 100%;
    overflow-wrap: normal;
    word-break: normal;
}

.er-place-v1__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 14px;
    font-family: var(--er-mono);
    font-size: var(--er-place-v1-fs-meta);
    letter-spacing: var(--er-place-v1-tr-eye);
    text-transform: uppercase;
    font-weight: 500;
    color: var(--er-ink-3);
}

.er-place-v1__eyebrow-dot {
    display: inline-block;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background-color: var(--er-clay);
    transform: translateY(-1px);
}

.er-place-v1__headline {
    font-family: var(--er-serif);
    font-weight: 400;
    font-size: var(--er-place-v1-fs-head);
    line-height: 1.06;
    letter-spacing: 0;
    color: var(--er-ink);
    margin: 0;
    max-width: 22ch;
    overflow-wrap: normal;
    word-break: normal;
}

.er-place-v1__body {
    font-family: var(--er-sans);
    font-size: var(--er-place-v1-fs-body);
    line-height: 1.68;
    color: var(--er-ink-2);
    max-width: 62ch;
    overflow-wrap: normal;
    word-break: normal;
    text-wrap: pretty;
    min-width: 0;
}

.er-place-v1__body--wide {
    max-width: 74ch;
}

.er-place-v1__body--small {
    font-size: 15px;
    line-height: 1.6;
}

.er-place-v1__body + .er-place-v1__body {
    margin-top: 14px;
}

.er-place-v1__center-final-row {
    justify-content: center;
}

.er-place-v1__dropcap::first-letter {
    font-family: var(--er-serif);
    font-weight: 500;
    font-size: 3.6em;
    line-height: 0.9;
    float: left;
    margin: 6px 10px 0 0;
    color: var(--er-clay-deep);
}

.er-place-v1__body-media {
    margin: 0;
    min-width: 0;
}

.er-place-v1__body-media-frame {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    border-radius: var(--er-r-md);
    box-shadow: var(--er-shadow-card);
}

.er-place-v1__body-media-frame img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.er-place-v1__body-media-caption {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: 12px;
    font-family: var(--er-sans);
    color: var(--er-ink-2);
    font-size: 14px;
    line-height: 1.55;
}

.er-place-v1__body-media-caption strong {
    font-family: var(--er-serif);
    font-weight: 500;
    font-size: 20px;
    line-height: 1.2;
    color: var(--er-ink);
}

.er-place-v1__body-media-label,
.er-place-v1__body-media-caption small {
    font-family: var(--er-mono);
    font-size: var(--er-place-v1-fs-meta-sm);
    letter-spacing: var(--er-place-v1-tr-eye);
    text-transform: uppercase;
    color: var(--er-ink-3);
}

.er-place-v1__body-media-caption small {
    text-transform: none;
    letter-spacing: 0.02em;
    line-height: 1.4;
}

.er-place-v1__body-media-caption small a {
    color: inherit;
    border-bottom-color: var(--er-rule-soft);
}

.er-place-v1__body-media--aside {
    order: -1;
}

.er-place-v1__body-media--dark {
    margin-top: clamp(var(--er-space-28), 4vw, var(--er-space-40));
}

.er-place-v1__body-media--dark .er-place-v1__body-media-frame {
    box-shadow: none;
}

.er-place-v1__body-media--dark .er-place-v1__body-media-caption,
.er-place-v1__body-media--dark .er-place-v1__body-media-caption strong {
    color: rgba(251, 247, 236, 0.9);
}

.er-place-v1__body-media--dark .er-place-v1__body-media-label,
.er-place-v1__body-media--dark .er-place-v1__body-media-caption small {
    color: rgba(251, 247, 236, 0.66);
}

.er-place-v1__body-media--dark .er-place-v1__body-media-caption small a {
    color: inherit;
    border-bottom-color: rgba(251, 247, 236, 0.28);
}

.er-place-v1__body-media--wide,
.er-place-v1__body-media--feature {
    margin: clamp(var(--er-space-28), 4vw, var(--er-space-40)) auto 0;
    max-width: 860px;
}

.er-place-v1__body-media--feature {
    margin-bottom: clamp(var(--er-space-24), 3vw, var(--er-space-32));
}

/* --- Image surface --------------------------------------------------- */

.er-place-v1__img {
    position: relative;
    overflow: hidden;
    border-radius: var(--er-r-md);
    background:
        repeating-linear-gradient(135deg,
            rgba(31, 27, 20, 0.045) 0 1px,
            transparent 1px 12px),
        linear-gradient(180deg, #d8ceb6 0%, #c4b899 100%);
    color: var(--er-ink-2);
}

.er-place-v1__img > img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.er-place-v1__safe-image {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: var(--er-safe-ratio, auto);
    overflow: hidden;
    min-width: 0;
}

.er-place-v1__img > .er-place-v1__safe-image,
.er-place-v1__hero-safe {
    position: absolute;
    inset: 0;
    height: 100%;
    aspect-ratio: auto;
}

.er-place-v1__safe-image > img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: var(--er-safe-fit, cover);
    object-position: var(--er-safe-position, 50% 50%);
    display: block;
}

.er-place-v1__safe-image-fallback {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    font-family: var(--er-serif);
    font-size: clamp(1.6rem, 6vw, 3rem);
    color: rgba(31, 27, 20, 0.58);
    background:
        repeating-linear-gradient(135deg, rgba(31, 27, 20, 0.045) 0 1px, transparent 1px 12px),
        linear-gradient(180deg, rgba(251, 247, 236, 0.76), rgba(226, 218, 199, 0.92));
}

.er-place-v1__safe-image-label {
    position: absolute;
    left: 8px;
    right: 8px;
    bottom: 8px;
    font-family: var(--er-mono);
    font-size: var(--er-fs-floor);
    letter-spacing: var(--er-place-v1-tr-meta);
    text-transform: uppercase;
    text-align: center;
    color: var(--er-ink-3);
}

.er-place-v1__img--warm {
    background:
        repeating-linear-gradient(135deg, rgba(31, 27, 20, 0.05) 0 1px, transparent 1px 12px),
        linear-gradient(180deg, #d6a779 0%, #aa6a3c 100%);
    color: #fffaf0;
}

.er-place-v1__img--stone {
    background:
        repeating-linear-gradient(135deg, rgba(31, 27, 20, 0.05) 0 1px, transparent 1px 12px),
        linear-gradient(180deg, #d8d3c5 0%, #aaa48f 100%);
}

.er-place-v1__img--cool {
    background:
        repeating-linear-gradient(135deg, rgba(31, 27, 20, 0.05) 0 1px, transparent 1px 12px),
        linear-gradient(180deg, #b9b4a6 0%, #8e8a7d 100%);
}

.er-place-v1__img--night {
    background:
        repeating-linear-gradient(135deg, rgba(255, 250, 235, 0.06) 0 1px, transparent 1px 12px),
        linear-gradient(180deg, #2c2820 0%, #161310 100%);
    color: rgba(255, 250, 235, 0.78);
}

.er-place-v1__img-label {
    position: absolute;
    bottom: 10px;
    left: 12px;
    right: 12px;
    display: flex;
    justify-content: space-between;
    gap: 16px;
    font-family: var(--er-mono);
    font-size: var(--er-place-v1-fs-meta-sm);
    letter-spacing: var(--er-place-v1-tr-eye);
    text-transform: uppercase;
    opacity: 0.85;
    pointer-events: none;
}

.er-place-v1__img-label > * {
    pointer-events: auto;
}

.er-place-v1__img-label a {
    color: inherit;
    border-bottom-color: transparent;
}

/* --- 1. Hero --------------------------------------------------------- */

.er-place-v1__hero {
    background-color: var(--er-ivory);
    padding-top: clamp(var(--er-space-32), 4vw, var(--er-space-48));
    padding-bottom: clamp(var(--er-space-48), 6vw, var(--er-space-64));
    border-top: 0;
}

.er-place-v1__hero-head {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr);
    gap: clamp(var(--er-space-32), 5vw, var(--er-space-64));
    align-items: end;
    margin-bottom: clamp(var(--er-space-32), 4vw, var(--er-space-48));
}

.er-place-v1__chips {
    grid-column: 1 / -1;
    list-style: none;
    padding: 0;
    margin: 0 0 28px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.er-place-v1__chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border-radius: 999px;
    background-color: var(--er-place-v1-clay-soft);
    border: 1px solid rgba(179, 106, 69, 0.25);
    color: var(--er-clay-deep);
    font-family: var(--er-mono);
    font-size: var(--er-place-v1-fs-meta);
    letter-spacing: var(--er-place-v1-tr-eye);
    text-transform: uppercase;
    font-weight: 500;
}

.er-place-v1__chip-icon {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background-color: currentColor;
    opacity: 0.7;
    display: inline-block;
}

.er-place-v1__title {
    grid-column: 1;
    font-family: var(--er-serif);
    font-size: var(--er-place-v1-fs-title);
    line-height: 0.96;
    letter-spacing: 0;
    font-weight: 400;
    color: var(--er-ink);
    margin: 0;
    max-width: 16ch;
    overflow-wrap: normal;
    word-break: normal;
}

.er-place-v1__lede {
    grid-column: 1;
    font-family: var(--er-serif);
    font-style: italic;
    font-weight: 300;
    font-size: clamp(1.4rem, 1.55vw, 1.4375rem);
    line-height: 1.45;
    color: var(--er-ink-2);
    margin: 28px 0 0;
    max-width: 62ch;
    overflow-wrap: normal;
    word-break: normal;
    text-wrap: pretty;
}

.er-place-v1__hero-actions {
    grid-column: 2;
    justify-self: end;
    align-self: end;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.er-place-v1__cta {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-family: var(--er-sans);
    font-size: 14px;
    font-weight: 500;
    line-height: 1;
    padding: 14px 22px;
    border-radius: 999px;
    border: 1px solid transparent;
    cursor: pointer;
    text-decoration: none;
    transition: background-color 160ms ease, color 160ms ease, border-color 160ms ease;
}

.er-place-v1__cta--solid {
    background-color: var(--er-ink);
    color: var(--er-paper);
    border-color: var(--er-ink);
}

.er-place-v1__cta--solid:hover,
.er-place-v1__cta--solid:focus-visible {
    background-color: var(--er-clay-deep);
    border-color: var(--er-clay-deep);
    color: var(--er-paper);
}

.er-place-v1__cta--ghost {
    background-color: transparent;
    color: var(--er-ink);
    border-color: var(--er-rule-hair);
}

.er-place-v1__cta--ghost:hover,
.er-place-v1__cta--ghost:focus-visible {
    background-color: rgba(31, 27, 20, 0.04);
    border-color: var(--er-ink-3);
    color: var(--er-ink);
}

.er-place-v1__cta[disabled] {
    opacity: 0.4;
    cursor: not-allowed;
}

.er-place-v1__aside > .er-confidence {
    margin-top: 16px;
    padding: 18px 20px;
    background: var(--er-paper);
    border: 1px solid var(--er-rule);
    border-radius: var(--er-r-md);
}

.er-place-v1__hero-figure {
    margin: 0;
}

.er-place-v1__hero-frame {
    position: relative;
    aspect-ratio: 21 / 9;
    width: 100%;
    box-shadow: var(--er-shadow-card);
}

/* --- 2. Hero ribbon — boxed strip of 5 fast facts under the image --- */

.er-place-v1__ribbon {
    margin: clamp(var(--er-space-32), 4vw, var(--er-space-48)) 0 0;
    padding: 0;
    display: grid;
    /* Auto-fit so the row stays balanced whether a record yields 4 or 5 facts
       (the generic "Best For" cell was removed); no empty trailing column. */
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    border: 1px solid var(--er-rule);
    border-radius: var(--er-r-md);
    background-color: var(--er-paper);
    box-shadow: var(--er-shadow-card);
    overflow: hidden;
    min-width: 0;
}

.er-place-v1__ribbon-cell {
    padding: 18px 22px;
    border-left: 1px solid var(--er-rule-soft);
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

.er-place-v1__ribbon-cell:first-child {
    border-left: 0;
}

.er-place-v1__ribbon-label {
    margin: 0;
    font-family: var(--er-mono);
    font-size: var(--er-fs-floor);
    letter-spacing: var(--er-place-v1-tr-eye);
    text-transform: uppercase;
    color: var(--er-ink-3);
    overflow-wrap: normal;
    word-break: normal;
}

.er-place-v1__ribbon-value {
    margin: 0;
    font-family: var(--er-serif);
    font-weight: 400;
    font-size: 18px;
    line-height: 1.2;
    color: var(--er-ink);
    min-width: 0;
    overflow-wrap: normal;
    word-break: normal;
}

.er-place-v1__ribbon-detail {
    margin: 0;
    color: var(--er-ink-3);
    font-family: var(--er-sans);
    font-size: var(--er-fs-floor);
    line-height: 1.45;
    letter-spacing: 0;
    text-transform: none;
    min-width: 0;
    overflow-wrap: normal;
    word-break: normal;
}

/* --- 3. Why Go — main + aside (Key Facts card + context chips) ------- */

.er-place-v1__split {
    display: grid;
    grid-template-columns: minmax(0, 1.32fr) minmax(320px, 0.92fr);
    gap: clamp(var(--er-space-48), 5vw, var(--er-space-64));
    align-items: start;
}

.er-place-v1__split-main,
.er-place-v1__opening-left,
.er-place-v1__opening-intro,
.er-place-v1__opening-editorial,
.er-place-v1__opening-flow,
.er-place-v1__opening-notes {
    min-width: 0;
}

.er-place-v1__opening-spread {
    row-gap: clamp(var(--er-space-28), 3.6vw, var(--er-space-40));
}

.er-place-v1__opening-left {
    display: flex;
    flex-direction: column;
}

.er-place-v1__opening-intro {
    max-width: 60ch;
}

.er-place-v1__why .er-place-v1__headline {
    margin-bottom: clamp(var(--er-space-20), 2.8vw, var(--er-space-28));
    max-width: 18ch;
}

.er-place-v1__opening-editorial {
    max-width: 62ch;
    margin: clamp(24px, 3vw, 36px) 0 0;
    padding-top: clamp(20px, 2.5vw, 28px);
    border-top: 1px solid var(--er-rule-soft);
    display: grid;
    gap: clamp(20px, 2.6vw, 28px);
}

.er-place-v1__opening-context-block {
    display: grid;
    gap: 12px;
}

/* px, not rem: Bricks sets a 10px root, so rem-based heading sizes here used
   to collapse below body size. */
.er-place-v1__opening-title {
    margin: 0;
    font-size: clamp(20px, 1.8vw, 23px);
    line-height: 1.15;
    max-width: 28ch;
}

.er-place-v1__opening-context-block + .er-place-v1__opening-context-block {
    padding-top: clamp(20px, 2.5vw, 28px);
    border-top: 1px solid var(--er-rule-soft);
}

/* Read the Place and the supporting observations sit outside the two-column
   split (direct children of the container), so they run the full content width
   and the sticky aside never overlaps them. */

.er-place-v1__opening-notes {
    max-width: none;
    margin: 0;
    padding: clamp(20px, 2.5vw, 28px) 0 0;
    border-top: 1px solid var(--er-rule-soft);
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px clamp(40px, 4.5vw, 64px);
}

.er-place-v1__opening-notes p {
    margin: 0;
    padding-left: 16px;
    border-left: 1px solid var(--er-rule-soft);
    color: var(--er-ink-2);
    font-size: var(--er-fs-floor);
    line-height: 1.56;
    max-width: 62ch;
}

.er-place-v1__opening-flow {
    max-width: none;
    margin: clamp(16px, 2.5vw, 32px) 0 0;
    padding: clamp(32px, 4vw, 48px) 0 clamp(24px, 3vw, 36px);
    border-top: 1px solid var(--er-ink);
}

.er-place-v1__opening-flow-head {
    display: grid;
    gap: 12px;
    max-width: 58ch;
}

.er-place-v1__opening-flow-head > span {
    font-family: var(--er-mono);
    font-size: var(--er-place-v1-fs-meta-sm);
    letter-spacing: var(--er-place-v1-tr-eye);
    text-transform: uppercase;
    color: var(--er-clay-deep);
}

/* The extra .er-place-v1 prefix keeps this display size ahead of the
   church-v3 __opening-title override, which shares its specificity. */
.er-place-v1 .er-place-v1__opening-flow .er-place-v1__opening-title {
    font-size: clamp(26px, 2.4vw, 33px);
    line-height: 1.1;
    max-width: 26ch;
}

.er-place-v1 .er-place-v1__opening-flow-head .er-place-v1__body {
    font-size: clamp(16px, 1.4vw, 18px);
    line-height: 1.6;
    color: var(--er-ink-2);
    max-width: 54ch;
}

.er-place-v1__opening-flow ol {
    list-style: none;
    padding: 0;
    margin: clamp(28px, 3.2vw, 40px) 0 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 26px clamp(36px, 4vw, 56px);
}

.er-place-v1__opening-flow li {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
    align-content: start;
    min-width: 0;
    padding-top: 16px;
    border-top: 1px solid var(--er-rule);
}

.er-place-v1__opening-flow li span {
    font-family: var(--er-mono);
    font-size: var(--er-place-v1-fs-meta);
    letter-spacing: var(--er-place-v1-tr-eye);
    color: var(--er-clay-deep);
}

.er-place-v1__opening-flow li strong {
    font-family: var(--er-serif);
    font-size: 20px;
    line-height: 1.18;
    font-weight: 500;
    color: var(--er-ink);
}

.er-place-v1__opening-flow li em {
    font-style: normal;
    color: var(--er-ink-2);
    font-size: 15px;
    line-height: 1.6;
    max-width: 46ch;
}

.er-place-v1__aside {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 18px;
    position: sticky;
    top: 24px;
}

/* Key Facts card --------------------------------------------------- */

.er-place-v1__keyfacts {
    background-color: var(--er-paper);
    border: 1px solid var(--er-rule);
    border-radius: var(--er-r-md);
    padding: 22px 24px 18px;
    box-shadow: var(--er-shadow-card);
    min-width: 0;
}

.er-place-v1__keyfacts-head {
    display: block;
    padding-bottom: 16px;
    margin-bottom: 6px;
    font-family: var(--er-mono);
    font-size: var(--er-place-v1-fs-meta);
    letter-spacing: var(--er-place-v1-tr-eye);
    text-transform: uppercase;
    color: var(--er-ink-3);
    border-bottom: 1px solid var(--er-rule-soft);
}

.er-place-v1__keyfacts-list {
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
}

.er-place-v1__keyfacts-row {
    display: grid;
    grid-template-columns: minmax(124px, 0.55fr) minmax(0, 1.45fr);
    gap: 18px;
    padding: 16px 0;
    border-bottom: 1px solid var(--er-rule-soft);
    align-items: baseline;
}

.er-place-v1__keyfacts-row:last-child {
    border-bottom: 0;
}

.er-place-v1__keyfacts-label {
    margin: 0;
    font-family: var(--er-mono);
    font-size: var(--er-fs-floor);
    letter-spacing: var(--er-place-v1-tr-eye);
    text-transform: uppercase;
    color: var(--er-ink-3);
    align-self: start;
    padding-top: 2px;
    min-width: 0;
    overflow-wrap: normal;
    word-break: normal;
}

.er-place-v1__keyfacts-value {
    margin: 0;
    font-family: var(--er-sans);
    font-size: 15.5px;
    line-height: 1.45;
    color: var(--er-ink);
    word-break: normal;
    min-width: 0;
    overflow-wrap: normal;
}

.er-place-v1__keyfacts-value a {
    border-bottom-color: var(--er-rule-soft);
}

.er-place-v1__keyfacts-value a.er-place-v1__keyfacts-official-link {
    overflow-wrap: anywhere;
}

.er-place-v1__keyfacts-detail {
    display: block;
    margin-top: 4px;
    font-size: var(--er-fs-floor);
    line-height: 1.5;
    color: var(--er-ink-3);
}

/* Context chips (stacked beneath card) ---------------------------- */

.er-place-v1__ctx-chips {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.er-place-v1__ctx-chip {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 18px;
    border-radius: 999px;
    font-family: var(--er-mono);
    font-size: var(--er-place-v1-fs-meta);
    letter-spacing: var(--er-place-v1-tr-eye);
    text-transform: uppercase;
    font-weight: 500;
    border: 1px solid transparent;
    min-width: 0;
}

.er-place-v1__ctx-chip-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    font-size: var(--er-fs-floor);
    line-height: 1;
    background-color: rgba(255, 255, 255, 0.4);
}

.er-place-v1__ctx-chip-label {
    line-height: 1.2;
    min-width: 0;
    overflow-wrap: normal;
    word-break: normal;
}

.er-place-v1__ctx-chip--clay {
    background-color: var(--er-place-v1-clay-soft);
    border-color: rgba(179, 106, 69, 0.25);
    color: var(--er-clay-deep);
}

.er-place-v1__ctx-chip--olive {
    background-color: var(--er-place-v1-olive-soft);
    border-color: rgba(110, 114, 75, 0.25);
    color: var(--er-olive);
}

.er-place-v1__ctx-chip--gold {
    background-color: var(--er-place-v1-gold-soft);
    border-color: rgba(164, 130, 63, 0.28);
    color: var(--er-gold);
}

.er-place-v1__ctx-chip--stone {
    background-color: rgba(31, 27, 20, 0.05);
    border-color: var(--er-rule-soft);
    color: var(--er-ink-2);
}

/* Best for — quieter inline strip in the main column ---------------- */

.er-place-v1__best-for {
    list-style: none;
    padding: 0;
    margin: var(--er-space-32) 0 0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    min-width: 0;
}

.er-place-v1__best-for-head {
    font-family: var(--er-mono);
    font-size: var(--er-place-v1-fs-meta);
    letter-spacing: var(--er-place-v1-tr-eye);
    text-transform: uppercase;
    color: var(--er-ink-3);
    margin-right: 6px;
    max-width: 100%;
}

.er-place-v1__best-for-tag {
    font-family: var(--er-sans);
    font-size: var(--er-fs-floor);
    line-height: 1.2;
    color: var(--er-ink-2);
    padding: 7px 12px;
    border: 1px solid var(--er-rule);
    border-radius: 999px;
    background-color: var(--er-paper);
    max-width: 100%;
    overflow-wrap: normal;
    word-break: normal;
}

/* --- 4. How to Visit ------------------------------------------------- */

.er-place-v1__visit .er-place-v1__body--wide {
    margin-bottom: clamp(var(--er-space-32), 4vw, var(--er-space-48));
}

.er-place-v1__worth {
    background: var(--er-color-surface, #f8f5ee);
}

.er-place-v1__worth-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1px;
    list-style: none;
    margin: clamp(var(--er-space-24), 4vw, var(--er-space-40)) 0 0;
    padding: 0;
    background: rgba(53, 45, 34, 0.12);
    border: 1px solid rgba(53, 45, 34, 0.12);
}

.er-place-v1__worth-item {
    min-width: 0;
    background: #fffdf8;
    padding: clamp(var(--er-space-20), 2.5vw, var(--er-space-28));
}

.er-place-v1__worth-num {
    display: block;
    margin-bottom: var(--er-space-12);
    font-family: var(--er-font-mono, monospace);
    font-size: var(--er-fs-floor);
    font-weight: 700;
    color: var(--er-place-v1-teal, #1f3936);
}

.er-place-v1__worth-item .er-place-v1__body {
    font-size: var(--er-fs-floor);
    line-height: 1.65;
}

.er-place-v1__living {
    background: var(--er-paper);
}

.er-place-v1__editorial-center {
    max-width: 900px;
    text-align: center;
}

.er-place-v1__editorial-center .er-place-v1__headline,
.er-place-v1__editorial-center .er-place-v1__body {
    margin-inline: auto;
}

.er-place-v1__body--centered {
    max-width: 68ch;
    margin-top: var(--er-space-24);
}

.er-place-v1__living-points {
    list-style: none;
    padding: var(--er-space-24) 0 0;
    margin: var(--er-space-32) auto 0;
    border-top: 1px solid var(--er-rule);
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: var(--er-space-16);
    text-align: left;
}

.er-place-v1__living-points li {
    position: relative;
    padding-left: 18px;
    color: var(--er-ink-2);
    font-size: 15px;
    line-height: 1.6;
}

.er-place-v1__living-points li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.74em;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--er-clay);
}

.er-place-v1__read {
    background: var(--er-ivory);
}

.er-place-v1__read-intro {
    max-width: 68ch;
    margin: calc(var(--er-space-16) * -1) 0 var(--er-space-32);
    color: var(--er-ink-2);
    font-size: var(--er-place-v1-fs-body);
    line-height: 1.68;
}

.er-place-v1__read-grid {
    list-style: none;
    counter-reset: read-place;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: var(--er-space-20);
}

.er-place-v1__read-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    border: 1px solid var(--er-rule);
    border-radius: var(--er-r-md);
    background: var(--er-paper);
    overflow: hidden;
}

.er-place-v1__read-image {
    aspect-ratio: 16 / 10;
    border-radius: 0;
}

.er-place-v1__read-body {
    padding: 24px;
    min-width: 0;
}

.er-place-v1__read-num {
    display: block;
    margin-bottom: 10px;
    font-family: var(--er-mono);
    font-size: var(--er-place-v1-fs-meta);
    letter-spacing: var(--er-place-v1-tr-eye);
    text-transform: uppercase;
    color: var(--er-clay-deep);
}

.er-place-v1__read-title {
    margin: 0 0 10px;
    font-size: 22px;
    line-height: 1.18;
}

.er-place-v1__visit-grid {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: clamp(var(--er-space-24), 3vw, var(--er-space-48));
    border-top: 1px solid var(--er-rule);
    padding-top: var(--er-space-32);
}

/* Flex (not grid) so an incomplete final row centers instead of stranding to
   the left. Four 25% cells per row; a trailing 3 or 2 sit centered. Reusable
   "centered final row" primitive for this template's even card sets. */
.er-place-v1__visit-grid--steps {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 0;
    border-top: 0;
    padding-top: 0;
}

.er-place-v1__visit-grid--steps .er-place-v1__visit-cell {
    padding: 22px 22px 26px;
    border-top: 1px solid var(--er-rule);
    border-left: 1px solid var(--er-rule-soft);
}

.er-place-v1__visit-cell {
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-width: 0;
}

.er-place-v1__visit-head {
    color: var(--er-clay-deep);
    font-family: var(--er-mono);
    font-size: var(--er-place-v1-fs-meta);
    letter-spacing: var(--er-place-v1-tr-eye);
    text-transform: uppercase;
}

.er-place-v1__visit-grid--steps .er-place-v1__body {
    font-size: 15px;
    line-height: 1.6;
    max-width: 48ch;
}

/* --- 4b. Current visit info ----------------------------------------- */

.er-place-v1__current {
    background: var(--er-paper);
}

.er-current-practical__head {
    margin-bottom: var(--er-space-20);
}

.er-current-practical__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 10px;
    margin: 10px 0 0;
    font-family: var(--er-mono);
    font-size: var(--er-fs-floor);
    letter-spacing: 0.08em;
    line-height: 1.5;
    text-transform: uppercase;
    color: var(--er-clay-deep);
}

.er-current-practical__intro {
    max-width: 62ch;
    margin: -4px 0 var(--er-space-24);
    color: var(--er-ink-2);
    font-size: 15.5px;
    line-height: 1.6;
}

.er-current-practical__glance {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    max-width: 980px;
    margin: 0 0 var(--er-space-28);
    padding: 13px 0;
    border-top: 1px solid var(--er-rule);
    border-bottom: 1px solid var(--er-rule);
}

.er-current-practical__glance-item {
    display: grid;
    gap: 4px;
    min-width: min(180px, 100%);
    padding: 4px clamp(14px, 2vw, 22px);
    border-left: 1px solid var(--er-rule-soft);
}

.er-current-practical__glance-item:first-child {
    padding-left: 0;
    border-left: 0;
}

.er-current-practical__glance dt {
    margin: 0;
    color: var(--er-ink-3);
    font-family: var(--er-mono);
    font-size: var(--er-fs-floor);
    letter-spacing: 0.09em;
    line-height: 1.35;
    text-transform: uppercase;
}

.er-current-practical__glance dd {
    margin: 0;
    color: var(--er-ink);
    font-family: var(--er-serif);
    font-size: 18px;
    line-height: 1.28;
}

.er-current-practical__schedule {
    max-width: 980px;
    border-top: 1px solid var(--er-ink);
}

.er-current-practical__row {
    display: grid;
    grid-template-columns: minmax(138px, 0.62fr) minmax(0, 1.72fr) minmax(132px, 0.78fr);
    gap: clamp(14px, 2vw, 26px);
    align-items: baseline;
    padding: 13px 0;
    border-top: 1px solid var(--er-rule);
}

.er-current-practical__row:first-child {
    border-top-color: transparent;
}

.er-current-practical__label {
    margin: 0;
    color: var(--er-clay-deep);
    font-family: var(--er-mono);
    font-size: var(--er-fs-floor);
    letter-spacing: 0.085em;
    line-height: 1.45;
    text-transform: uppercase;
}

.er-current-practical__summary {
    margin: 0;
    color: var(--er-ink);
    font-size: 15.5px;
    line-height: 1.45;
    overflow-wrap: break-word;
}

.er-current-practical__row-note {
    color: var(--er-ink-3);
    font-size: var(--er-fs-floor);
    line-height: 1.45;
    overflow-wrap: break-word;
}

.er-current-practical__more {
    max-width: 980px;
    margin-top: var(--er-space-18);
    color: var(--er-ink-2);
    font-size: 14px;
}

.er-current-practical__more summary {
    cursor: pointer;
    color: var(--er-clay-deep);
    font-family: var(--er-mono);
    font-size: var(--er-fs-floor);
    letter-spacing: 0.08em;
    line-height: 1.5;
    text-transform: uppercase;
}

.er-current-practical__more-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--er-space-20) var(--er-space-28);
    padding-top: var(--er-space-16);
}

.er-current-practical__more-item {
    min-width: 0;
    padding-top: var(--er-space-14);
    border-top: 1px solid var(--er-rule-soft);
}

.er-current-practical__more-item h3 {
    margin: 0 0 6px;
    color: var(--er-ink);
    font-family: var(--er-serif);
    font-size: 18px;
    font-weight: 500;
    line-height: 1.25;
}

.er-current-practical__more-item p,
.er-current-practical__more-item li {
    color: var(--er-ink-2);
    font-size: 14px;
    line-height: 1.55;
}

.er-current-practical__more-item p {
    margin: 0;
}

.er-current-practical__more-item ul {
    display: grid;
    gap: 5px;
    margin: 8px 0 0;
    padding-left: 18px;
}

.er-current-practical__footer {
    display: flex;
    flex-wrap: wrap;
    gap: 10px var(--er-space-20);
    align-items: baseline;
    max-width: 980px;
    margin-top: var(--er-space-22);
    padding-top: var(--er-space-16);
    border-top: 1px solid var(--er-rule);
}

.er-current-practical__note {
    flex: 1 1 310px;
    max-width: 58ch;
    margin: 0;
    color: var(--er-ink-3);
    font-size: var(--er-fs-floor);
    line-height: 1.45;
}

.er-current-practical__sources {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
    align-items: baseline;
    color: var(--er-ink-3);
    font-family: var(--er-mono);
    font-size: var(--er-fs-floor);
    letter-spacing: 0.08em;
    line-height: 1.5;
    text-transform: uppercase;
}

.er-current-practical__sources a {
    color: var(--er-clay-deep);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    overflow-wrap: anywhere;
}

.er-place-v1__current-intro {
    max-width: 68ch;
    margin: calc(var(--er-space-16) * -1) 0 var(--er-space-32);
    color: var(--er-ink-2);
    font-size: var(--er-place-v1-fs-body);
    line-height: 1.68;
}

.er-place-v1__current-grid {
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: var(--er-space-20);
}

.er-place-v1__current-card {
    flex: 1 1 260px;
    max-width: 390px;
    min-width: 0;
    padding: 22px 24px;
    border: 1px solid var(--er-rule);
    border-radius: var(--er-r-md);
    background: var(--er-ivory);
}

.er-place-v1__current-label {
    margin: 0 0 10px;
    font-family: var(--er-mono);
    font-size: var(--er-place-v1-fs-meta);
    letter-spacing: var(--er-place-v1-tr-eye);
    text-transform: uppercase;
    color: var(--er-clay-deep);
}

.er-place-v1__current-value {
    margin: 0;
    color: var(--er-ink);
    font-size: 15.5px;
    line-height: 1.58;
}

.er-place-v1__current-source {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 12px;
    margin: 16px 0 0;
    font-family: var(--er-mono);
    font-size: var(--er-fs-floor);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--er-ink-3);
}

.er-place-v1__official-link {
    overflow-wrap: anywhere;
    word-break: normal;
}

.er-place-v1__current-note {
    margin: var(--er-space-24) 0 0;
    max-width: 70ch;
    color: var(--er-ink-3);
    font-size: 14px;
    line-height: 1.6;
}

@media (max-width: 640px) {
    .er-current-practical__glance {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px 0;
    }

    .er-current-practical__glance-item,
    .er-current-practical__glance-item:first-child {
        min-width: 0;
        padding: 0 12px;
        border-left: 1px solid var(--er-rule-soft);
    }

    .er-current-practical__glance-item:nth-child(odd) {
        padding-left: 0;
        border-left: 0;
    }

    .er-current-practical__row {
        grid-template-columns: 1fr;
        gap: 7px;
        padding: 14px 0;
    }

    .er-current-practical__row-note--empty {
        display: none;
    }

    .er-current-practical__more-grid {
        grid-template-columns: 1fr;
    }
}

/* --- 5. Do Not Miss -------------------------------------------------- */

.er-place-v1__do-not-miss {
    background-color: var(--er-limestone);
}

.er-place-v1__dnm-grid {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--er-space-24);
    justify-content: center;
}

.er-place-v1__dnm-grid--count-1,
.er-place-v1__dnm-grid--count-2 {
    grid-template-columns: repeat(2, minmax(0, 360px));
    justify-content: center;
}

.er-place-v1__dnm-grid--count-4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* 5 items: one featured record plus four secondary records. */
.er-place-v1__dnm-grid--count-5 {
    grid-template-columns: minmax(280px, 1.12fr) repeat(2, minmax(0, 1fr));
}

.er-place-v1__dnm-grid--count-5 .er-place-v1__dnm-card:first-child {
    grid-row: span 2;
}

.er-place-v1__dnm-grid--count-5 .er-place-v1__dnm-card:nth-child(n+2) {
    grid-column: auto;
}

.er-place-v1__dnm-card {
    background-color: var(--er-paper);
    border: 1px solid var(--er-rule);
    border-radius: var(--er-r-md);
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 18px;
    min-width: 0;
    box-shadow: 0 1px 0 rgba(31,27,20,0.03), 0 18px 38px -34px rgba(31,27,20,0.24);
}

.er-place-v1__dnm-swatch {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 11;
    border-radius: var(--er-r-sm);
    position: relative;
    overflow: hidden;
}

.er-place-v1__dnm-grid--count-5 .er-place-v1__dnm-card:first-child .er-place-v1__dnm-swatch {
    aspect-ratio: 3 / 2;
}

.er-place-v1__dnm-body {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 0 2px 4px;
}

.er-place-v1__dnm-num {
    color: var(--er-ink-3);
    margin: 0;
    font-family: var(--er-mono);
    font-size: var(--er-place-v1-fs-meta);
    letter-spacing: var(--er-place-v1-tr-eye);
    text-transform: uppercase;
}

.er-place-v1__dnm-title {
    font-family: var(--er-serif);
    font-weight: 500;
    font-size: 19px;
    line-height: 1.25;
    color: var(--er-ink);
    margin: 2px 0 4px;
}

.er-place-v1__dnm-title a {
    color: inherit;
    border-bottom-color: transparent;
}

.er-place-v1__dnm-title a:hover,
.er-place-v1__dnm-title a:focus-visible {
    color: var(--er-clay-deep);
    border-bottom-color: var(--er-clay-deep);
}

.er-place-v1__dnm-card .er-place-v1__body {
    font-size: 15px;
    line-height: 1.64;
}

/* Text-first Do Not Miss: when no entry carries a real sourced photo, the
   section becomes a numbered editorial list — never a gradient placeholder. */
.er-place-v1__dnm-card--text {
    gap: 9px;
    padding: 24px 22px 26px;
}

.er-place-v1__dnm-card--text .er-place-v1__dnm-num {
    display: inline-flex;
    align-items: center;
    gap: 11px;
    color: var(--er-clay-deep);
}

.er-place-v1__dnm-card--text .er-place-v1__dnm-num::after {
    content: "";
    width: 24px;
    height: 1px;
    background: var(--er-clay-deep);
    opacity: 0.45;
}

/* Church v3: drop the per-card inner number. Do Not Miss order is spatial, and
   the section already carries its own eyebrow number, so the inner ①②③ layer
   reads as dashboard chrome. Scoped to church pages; other place-v1 pages
   (abbeys, monasteries) keep their numbered editorial rows unchanged. */
.er-place-v1--church-v3 .er-place-v1__dnm-num {
    display: none;
}

.er-place-v1__dnm-card--text .er-place-v1__dnm-title {
    font-size: 20px;
    margin: 1px 0 0;
}

.er-place-v1__dnm-card--text .er-place-v1__body {
    color: var(--er-ink-2);
}

.er-place-v1__mobile-more {
    display: none;
}

.er-place-v1__mobile-more summary {
    cursor: pointer;
    font-family: var(--er-mono);
    font-size: var(--er-place-v1-fs-meta);
    letter-spacing: var(--er-place-v1-tr-eye);
    text-transform: uppercase;
    color: var(--er-clay-deep);
    padding: 14px 0;
    border-top: 1px solid var(--er-rule);
}

.er-place-v1__mobile-more-list {
    list-style: none;
    display: grid;
    gap: 12px;
    margin: 0;
    padding: 0 0 4px;
}

.er-place-v1__mobile-more-list li {
    display: grid;
    gap: 5px;
    padding: 14px 0;
    border-top: 1px solid var(--er-rule-soft);
}

.er-place-v1__mobile-more-list strong {
    font-family: var(--er-serif);
    font-weight: 500;
    font-size: 18px;
    line-height: 1.2;
}

.er-place-v1__mobile-more-list span {
    color: var(--er-ink-2);
    font-size: 15px;
    line-height: 1.58;
}

/* --- 6. Visit rhythms ------------------------------------------------ */

.er-place-v1__rhythms {
    background-color: var(--er-limestone);
}

.er-place-v1__rhythm-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin-bottom: clamp(var(--er-space-24), 3vw, var(--er-space-32));
}

/* A lone trailing plan (odd count) would otherwise sit half-width on the left;
   span it and center so the row reads as intentional. Cap its width so the
   single-column card content does not stretch across the whole section. */
.er-place-v1__rhythm-list > .er-place-v1__rhythm:last-child:nth-child(odd) {
    grid-column: 1 / -1;
}

@media (min-width: 1025px) {
    .er-place-v1__rhythm-list > .er-place-v1__rhythm:last-child:nth-child(odd) {
        width: 100%;
        max-width: 860px;
        justify-self: center;
    }
}

/* Plan card: metadata eyebrow, then title, description, and stops at full card
   width, with the save action anchored to the bottom row. The 1fr middle row
   keeps the actions aligned across side-by-side cards of unequal length.
   The church-v3 variant re-declares its own three-column layout below. */
.er-place-v1__rhythm {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto 1fr auto;
    align-items: start;
    gap: 12px;
    padding: 26px 28px 24px;
    border: 1px solid var(--er-rule);
    background-color: var(--er-paper);
    border-radius: var(--er-r-md);
    list-style: none;
}

.er-place-v1__rhythm-duration {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 4px 10px;
    font-family: var(--er-mono);
    font-weight: 500;
    font-size: var(--er-place-v1-fs-meta-sm);
    letter-spacing: var(--er-place-v1-tr-eye);
    text-transform: uppercase;
    line-height: 1.4;
    color: var(--er-clay-deep);
}

.er-place-v1__rhythm-duration small {
    font-family: var(--er-mono);
    font-size: var(--er-fs-floor);
    letter-spacing: var(--er-place-v1-tr-eye);
    text-transform: uppercase;
    color: var(--er-ink-3);
    font-weight: 500;
    line-height: 1.4;
}

.er-place-v1__rhythm-duration small::before {
    content: "·";
    margin-right: 10px;
    color: var(--er-ink-3);
}

.er-place-v1__rhythm-content {
    min-width: 0;
}

.er-place-v1__rhythm-title {
    margin: 0;
    font-family: var(--er-serif);
    font-weight: 500;
    font-size: 20px;
    line-height: 1.2;
    color: var(--er-ink);
}

.er-place-v1__rhythm-body {
    margin: 10px 0 0;
    min-width: 0;
    max-width: 68ch;
    color: var(--er-ink-2);
    font-family: var(--er-sans);
    font-size: 15px;
    line-height: 1.62;
}

.er-place-v1__rhythm-stops {
    margin: 16px 0 0;
    padding: 14px 0 0;
    border-top: 1px solid var(--er-rule-soft);
    list-style: none;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 8px 14px;
    counter-reset: rhythm-stop;
}

.er-place-v1__rhythm-stops li {
    position: relative;
    min-width: 0;
    padding-left: 24px;
    color: var(--er-ink-3);
    font-size: var(--er-fs-floor);
    line-height: 1.45;
}

.er-place-v1__rhythm-stops li::before {
    counter-increment: rhythm-stop;
    content: counter(rhythm-stop);
    position: absolute;
    left: 0;
    top: 0.05em;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--er-place-v1-teal-soft);
    color: var(--er-place-v1-teal);
    font-family: var(--er-mono);
    font-size: var(--er-fs-floor);
    line-height: 16px;
    text-align: center;
}

.er-place-v1__rhythm-add {
    flex-shrink: 0;
    justify-self: start;
    align-self: end;
    margin-top: 8px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    border: 1px solid var(--er-rule);
    border-radius: 999px;
    font-family: var(--er-sans);
    font-size: 14px;
    font-weight: 500;
    color: var(--er-ink);
    background-color: transparent;
    border-bottom: 1px solid var(--er-rule);
}

.er-place-v1__rhythm-add:hover,
.er-place-v1__rhythm-add:focus-visible {
    color: var(--er-paper);
    background-color: var(--er-ink);
    border-color: var(--er-ink);
}

.er-place-v1__rhythm-add > i:first-child {
    font-family: var(--er-serif);
    font-style: normal;
    font-size: 18px;
    line-height: 1;
    color: inherit;
}

/* Planning note: a full-width editorial endnote under the plan cards, marked
   by a single rule across the whole planning grid rather than a boxed card.
   The inner paragraph keeps a readable measure. */
.er-place-v1__rhythm-note {
    margin: clamp(28px, 3vw, 40px) 0 0;
    padding: clamp(26px, 3vw, 36px) 0 0;
    border-top: 1px solid var(--er-ink);
}

.er-place-v1__rhythm-note p {
    font-family: var(--er-serif);
    font-style: italic;
    font-weight: 300;
    font-size: clamp(17px, 1.4vw, 19px);
    line-height: 1.62;
    color: var(--er-ink-2);
    max-width: 80ch;
    margin: 0;
}

/* --- 7. Story ------------------------------------------------------- */

.er-place-v1__story {
    background-color: var(--er-paper);
}

.er-place-v1__story-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
    gap: clamp(var(--er-space-32), 5vw, var(--er-space-64));
    align-items: start;
}

.er-place-v1__story-figure {
    margin: 0;
    position: relative;
}

.er-place-v1__story-figure .er-place-v1__img {
    aspect-ratio: 4 / 5;
    width: 100%;
}

.er-place-v1__story-figure img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.er-place-v1__story-strip {
    margin-top: 12px;
    display: flex;
    justify-content: space-between;
    gap: 16px;
    font-family: var(--er-mono);
    font-size: var(--er-place-v1-fs-meta-sm);
    letter-spacing: var(--er-place-v1-tr-eye);
    text-transform: uppercase;
    color: var(--er-ink-3);
}

.er-place-v1__story-strip-right {
    color: var(--er-clay-deep);
    text-align: right;
}

.er-place-v1__story-strip a {
    color: inherit;
    border-bottom-color: transparent;
}

.er-place-v1__story-copy {
    min-width: 0;
    max-width: 58ch;
}

.er-place-v1__story-copy .er-place-v1__headline {
    margin-bottom: 24px;
    max-width: 22ch;
}

/* --- 8. Significance — deep mineral teal band ----------------------- */

.er-place-v1__significance {
    background-color: var(--er-place-v1-teal);
    color: var(--er-paper);
    border-top: 0;
}

.er-place-v1__significance .er-place-v1__eyebrow {
    color: rgba(251, 247, 236, 0.7);
}

.er-place-v1__significance .er-place-v1__eyebrow-dot {
    background-color: var(--er-clay);
}

.er-place-v1__significance-grid {
    display: grid;
    grid-template-columns: minmax(250px, 0.85fr) minmax(0, 1.35fr);
    gap: clamp(var(--er-space-32), 5vw, var(--er-space-64));
    align-items: start;
}

.er-place-v1__significance-side {
    min-width: 0;
}

.er-place-v1__significance h2.er-place-v1__significance-quote {
    font-family: var(--er-serif);
    font-weight: 400;
    font-size: var(--er-place-v1-fs-quote);
    line-height: 1.05;
    letter-spacing: 0;
    color: var(--er-paper);
    margin: 0;
    max-width: 14ch;
}

.er-place-v1__significance h2.er-place-v1__significance-quote em {
    font-style: italic;
    color: var(--er-paper);
}

.er-place-v1__significance-body {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 22px;
    max-width: 68ch;
}

.er-place-v1__significance-prose {
    font-family: var(--er-sans);
    font-size: var(--er-place-v1-fs-body);
    line-height: 1.68;
    color: rgba(251, 247, 236, 0.88);
    margin: 0;
}

.er-place-v1__significance-notice {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.er-place-v1__significance-notice li {
    font-family: var(--er-serif);
    font-style: italic;
    font-weight: 300;
    font-size: var(--er-place-v1-fs-lede);
    line-height: 1.45;
    color: rgba(251, 247, 236, 0.94);
    padding-left: 16px;
    border-left: 2px solid var(--er-clay);
}

/* --- 9. Connected saints — 4-up card grid (Claude Design reference) --- */

.er-place-v1__saints {
    background-color: var(--er-paper);
}

.er-place-v1__section-link {
    align-self: end;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--er-mono);
    font-size: var(--er-place-v1-fs-meta);
    letter-spacing: var(--er-place-v1-tr-eye);
    text-transform: uppercase;
    color: var(--er-clay-deep);
    border-bottom: 0;
    white-space: nowrap;
}

.er-place-v1__section-link:hover,
.er-place-v1__section-link:focus-visible {
    color: var(--er-ink);
}

.er-place-v1__saints-intro {
    max-width: 72ch;
    margin: 0 0 clamp(var(--er-space-24), 3vw, var(--er-space-32));
    font-family: var(--er-sans);
    font-size: 16px;
    line-height: 1.65;
    color: var(--er-ink-2);
}

.er-place-v1__saints-roster {
    list-style: none;
    padding: 0;
    margin: 0;
    /* Flex + center so a final partial row (4 + 2, or 4 + 1) sits centered
       under the row above instead of stranding to the left. */
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 18px;
}

.er-place-v1__saint-cell {
    flex: 0 1 calc(25% - 13.5px);
    max-width: 300px;
    min-width: 0;
    list-style: none;
}

.er-place-v1__saint-card {
    display: flex;
    flex-direction: column;
    background-color: var(--er-paper);
    border: 1px solid var(--er-rule);
    border-radius: var(--er-r-md);
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    border-bottom: 1px solid var(--er-rule);
    transition: border-color 160ms ease, transform 160ms ease, box-shadow 200ms ease;
    height: 100%;
}

a.er-place-v1__saint-card:hover,
a.er-place-v1__saint-card:focus-visible {
    border-color: var(--er-ink-2);
    transform: translateY(-2px);
    box-shadow: 0 1px 0 rgba(31,27,20,0.04), 0 22px 44px -28px rgba(31,27,20,0.25);
}

/* Text-first saint card: no sourced portrait, so the card leads with a clay
   accent rule and the saint's name rather than a gradient portrait swatch. */
.er-place-v1__saint-card--text {
    border-top: 3px solid var(--er-clay-deep);
}

.er-place-v1__saint-card--text .er-place-v1__saint-body {
    padding-top: 22px;
}

.er-place-v1__saint-portrait {
    width: 100%;
    aspect-ratio: 4 / 5;
    border-radius: 0;
    box-shadow: none;
    flex-shrink: 0;
    overflow: hidden;
    background: var(--er-paper-2);
}

.er-place-v1__saint-portrait img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 20%;
    display: block;
}

.er-place-v1__saint-body {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 18px 18px 22px;
}

.er-place-v1__saint-name {
    font-family: var(--er-serif);
    font-weight: 500;
    font-size: 21px;
    line-height: 1.18;
    color: var(--er-ink);
    margin: 0;
}

.er-place-v1__saint-life {
    margin: 6px 0 0;
    font-family: var(--er-mono);
    font-size: var(--er-fs-floor);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--er-ink-3);
}

.er-place-v1__saint-role {
    margin: 10px 0 0;
    font-family: var(--er-sans);
    font-size: 15px;
    line-height: 1.55;
    color: var(--er-ink-2);
}

.er-place-v1__saint-place {
    margin: 6px 0 0;
    font-family: var(--er-sans);
    font-size: var(--er-fs-floor);
    line-height: 1.5;
    color: var(--er-ink-3);
}

.er-place-v1__figures-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: var(--er-space-16);
}

.er-place-v1__figure-row {
    flex: 1 1 280px;
    max-width: 390px;
    list-style: none;
    min-width: 0;
}

.er-place-v1__figure-card {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 18px;
    height: 100%;
    padding: 20px 22px;
    border: 1px solid var(--er-rule);
    border-radius: var(--er-r-md);
    background: var(--er-paper);
    color: inherit;
    border-bottom: 1px solid var(--er-rule);
}

a.er-place-v1__figure-card:hover,
a.er-place-v1__figure-card:focus-visible {
    border-color: var(--er-ink-2);
}

.er-place-v1__figure-marker {
    width: 8px;
    height: 8px;
    margin-top: 0.46em;
    border-radius: 50%;
    background: var(--er-clay);
}

/* Saints with an approved portrait swap the clay marker for a small, restrained
   avatar. The wider first column and centered alignment keep imageless rows
   (marker variant) and portrait rows visually consistent within the same list. */
.er-place-v1__figure-card--portrait {
    grid-template-columns: 72px minmax(0, 1fr);
    align-items: center;
}

.er-place-v1__figure-portrait {
    width: 72px;
    aspect-ratio: 4 / 5;
    border-radius: var(--er-r-sm);
    overflow: hidden;
    flex-shrink: 0;
    margin-top: 0;
}

.er-place-v1__figure-portrait img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 20%;
    display: block;
}

.er-place-v1__figure-card--monogram .er-place-v1__figure-portrait {
    border: 1px solid var(--er-rule-soft);
    background: var(--er-paper-2);
}

.er-place-v1__figure-body {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.er-place-v1__figure-body strong {
    font-family: var(--er-serif);
    font-weight: 500;
    font-size: 21px;
    line-height: 1.2;
    color: var(--er-ink);
}

.er-place-v1__figure-body span {
    font-family: var(--er-mono);
    font-size: var(--er-place-v1-fs-meta);
    letter-spacing: var(--er-place-v1-tr-eye);
    text-transform: uppercase;
    color: var(--er-clay-deep);
}

.er-place-v1__figure-body em {
    font-style: normal;
    color: var(--er-ink-2);
    font-size: 15px;
    line-height: 1.6;
}

/* --- 10. Relics ------------------------------------------------------ */

.er-place-v1__sacred {
    background-color: var(--er-ivory);
}

.er-place-v1__sacred-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: clamp(var(--er-space-32), 4vw, var(--er-space-64));
}

.er-place-v1__sacred-block {
    min-width: 0;
}

.er-place-v1__sacred-label {
    margin: 0 0 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--er-rule);
    font-family: var(--er-mono);
    font-size: var(--er-place-v1-fs-meta);
    letter-spacing: var(--er-place-v1-tr-eye);
    text-transform: uppercase;
    color: var(--er-clay-deep);
    font-weight: 500;
}

.er-place-v1__sacred-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.er-place-v1__sacred-list li {
    position: relative;
    padding-left: 22px;
    font-family: var(--er-sans);
    font-size: 15px;
    line-height: 1.6;
    color: var(--er-ink-2);
}

.er-place-v1__sacred-list li::before {
    content: "·";
    position: absolute;
    left: 0;
    top: -4px;
    color: var(--er-clay);
    font-family: var(--er-serif);
    font-size: 1.6rem;
    line-height: 1;
}

/* Catalogued table — Object, Type, Confidence, Veneration, Source. */

.er-place-v1__catalogue-cards {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
}

.er-place-v1__catalogue-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(220px, 0.42fr);
    gap: clamp(var(--er-space-20), 3vw, var(--er-space-32));
    align-items: start;
    padding: clamp(var(--er-space-20), 3vw, var(--er-space-28));
    border: 1px solid var(--er-rule);
    border-radius: var(--er-r-md);
    background: var(--er-paper);
    box-shadow: var(--er-shadow-card);
}

.er-place-v1__catalogue-card-main,
.er-place-v1__catalogue-card-meta {
    min-width: 0;
}

.er-place-v1__catalogue-type {
    display: block;
    margin-bottom: 8px;
    font-family: var(--er-mono);
    font-size: var(--er-place-v1-fs-meta);
    letter-spacing: var(--er-place-v1-tr-eye);
    text-transform: uppercase;
    color: var(--er-clay-deep);
}

.er-place-v1__catalogue-object {
    margin: 0;
    font-size: clamp(1.4rem, 2.1vw, 1.75rem);
    line-height: 1.12;
}

.er-place-v1__catalogue-veneration {
    max-width: 68ch;
    margin: 10px 0 0;
    color: var(--er-ink-2);
    font-size: 15.5px;
    line-height: 1.62;
}

.er-place-v1__catalogue-card-meta {
    display: grid;
    gap: 12px;
    padding-left: clamp(var(--er-space-18), 2.5vw, var(--er-space-24));
    border-left: 1px solid var(--er-rule-soft);
}

.er-place-v1__catalogue-wrap {
    border: 1px solid var(--er-rule);
    border-radius: var(--er-r-md);
    background-color: var(--er-paper);
    box-shadow: var(--er-shadow-card);
    overflow: hidden;
}

.er-place-v1__catalogue {
    width: 100%;
    border-collapse: collapse;
    font-family: var(--er-sans);
    font-size: 15px;
    line-height: 1.6;
    color: var(--er-ink-2);
}

.er-place-v1__catalogue thead {
    background-color: var(--er-ivory);
}

.er-place-v1__catalogue th {
    text-align: left;
    font-family: var(--er-mono);
    font-size: var(--er-place-v1-fs-meta);
    letter-spacing: var(--er-place-v1-tr-eye);
    text-transform: uppercase;
    color: var(--er-ink-3);
    font-weight: 500;
    padding: 14px 18px;
    border-bottom: 1px solid var(--er-rule);
    vertical-align: top;
}

.er-place-v1__catalogue tbody th {
    font-family: var(--er-serif);
    font-size: 15.5px;
    letter-spacing: 0;
    text-transform: none;
    color: var(--er-ink);
    font-weight: 500;
    width: 22%;
}

.er-place-v1__catalogue td {
    padding: 16px 18px;
    border-bottom: 1px solid var(--er-rule-soft);
    vertical-align: top;
}

.er-place-v1__catalogue tbody tr:last-child th,
.er-place-v1__catalogue tbody tr:last-child td {
    border-bottom: 0;
}

.er-place-v1__catalogue-source {
    font-family: var(--er-mono);
    font-size: var(--er-fs-floor);
    letter-spacing: 0.08em;
    color: var(--er-ink-3);
}

/* Sacred catalogue confidence: present the stored confidence as a legible worded
   chip, not a tiny bar meter. The label already carries the honest level
   (Documented / Traditional / Local tradition / Careful context); the 6px bars
   read as machine chrome at catalogue scale. Scoped to the place-v1 catalogue so
   the shared .er-confidence primitive on saint pages, city hubs, and sacred
   geography is untouched. Source clarity and the detail line are preserved. */
.er-place-v1__catalogue-card-meta .er-confidence__bars,
.er-place-v1__catalogue td .er-confidence__bars {
    display: none;
}

.er-place-v1__catalogue-card-meta .er-confidence__row,
.er-place-v1__catalogue td .er-confidence__row {
    gap: 0;
}

.er-place-v1__catalogue-card-meta .er-confidence__label,
.er-place-v1__catalogue td .er-confidence__label {
    display: inline-block;
    padding: 4px 12px;
    border: 1px solid var(--er-rule);
    border-radius: 999px;
    background: var(--er-ivory);
    font-family: var(--er-sans);
    font-size: var(--er-fs-floor);
    font-weight: 600;
    letter-spacing: 0.01em;
    color: var(--er-ink-2);
}

.er-place-v1__catalogue-card-meta .er-confidence--olive .er-confidence__label,
.er-place-v1__catalogue td .er-confidence--olive .er-confidence__label {
    border-color: rgba(110, 114, 75, 0.4);
    color: var(--er-olive);
}

.er-place-v1__catalogue-card-meta .er-confidence--clay .er-confidence__label,
.er-place-v1__catalogue td .er-confidence--clay .er-confidence__label {
    border-color: rgba(179, 106, 69, 0.4);
    color: var(--er-clay-deep);
}

.er-place-v1__catalogue-card-meta .er-confidence__detail,
.er-place-v1__catalogue td .er-confidence__detail {
    font-size: var(--er-fs-floor);
    line-height: 1.55;
    color: var(--er-ink-3);
}

.er-place-v1__catalogue-note {
    margin: 16px 0 0;
    font-family: var(--er-sans);
    font-size: var(--er-fs-floor);
    color: var(--er-ink-3);
    line-height: 1.55;
}

/* Source note is secondary to the catalogue body: keep the label quiet (muted,
   not clay) and slightly smaller so it never out-weighs the body copy above. */
.er-place-v1__catalogue-note-label {
    font-family: var(--er-mono);
    font-size: var(--er-place-v1-fs-meta-sm, 11px);
    letter-spacing: var(--er-place-v1-tr-eye);
    text-transform: uppercase;
    color: var(--er-ink-3);
    margin-right: 8px;
}

@media (max-width: 900px) {
    .er-place-v1__catalogue,
    .er-place-v1__catalogue thead,
    .er-place-v1__catalogue tbody,
    .er-place-v1__catalogue tr,
    .er-place-v1__catalogue th,
    .er-place-v1__catalogue td {
        display: block;
        width: auto;
    }
    .er-place-v1__catalogue thead {
        display: none;
    }
    .er-place-v1__catalogue tbody tr {
        padding: 18px 18px 8px;
        border-bottom: 1px solid var(--er-rule-soft);
    }
    .er-place-v1__catalogue tbody tr:last-child {
        border-bottom: 0;
    }
    .er-place-v1__catalogue tbody th {
        font-size: 17px;
        padding: 0 0 6px;
        border-bottom: 0;
        width: auto;
    }
    .er-place-v1__catalogue tbody td {
        padding: 6px 0;
        border-bottom: 0;
    }
    .er-place-v1__catalogue tbody td::before {
        content: attr(data-label);
        display: block;
        font-family: var(--er-mono);
        font-size: var(--er-place-v1-fs-meta);
        letter-spacing: var(--er-place-v1-tr-eye);
        text-transform: uppercase;
        color: var(--er-ink-3);
        margin-bottom: 2px;
    }
}

/* --- 11. Nearby — hairline-row list (Claude Design reference) ------- */

.er-place-v1__nearby-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
}

.er-place-v1__nearby-row {
    border-top: 1px solid var(--er-rule);
    list-style: none;
}

.er-place-v1__nearby-row:last-child {
    border-bottom: 1px solid var(--er-rule);
}

.er-place-v1__nearby-row-inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 24px;
    align-items: center;
    padding: 22px 4px;
    color: inherit;
    border-bottom: 0;
}

.er-place-v1__nearby-row-inner:not(a) {
    cursor: default;
}

a.er-place-v1__nearby-row-inner:hover .er-place-v1__nearby-title,
a.er-place-v1__nearby-row-inner:focus-visible .er-place-v1__nearby-title {
    color: var(--er-clay-deep);
}

.er-place-v1__nearby-main {
    min-width: 0;
}

.er-place-v1__nearby-title {
    margin: 0;
    font-family: var(--er-serif);
    font-weight: 500;
    font-size: 22px;
    line-height: 1.2;
    color: var(--er-ink);
}

.er-place-v1__nearby-type {
    margin: 4px 0 0;
    font-family: var(--er-mono);
    font-size: var(--er-place-v1-fs-meta);
    letter-spacing: var(--er-place-v1-tr-eye);
    text-transform: uppercase;
    color: var(--er-ink-3);
}

.er-place-v1__nearby-relation {
    margin: 6px 0 0;
    font-family: var(--er-sans);
    font-size: 15px;
    line-height: 1.6;
    color: var(--er-ink-2);
    max-width: 60ch;
}

.er-place-v1__nearby-meta {
    font-family: var(--er-mono);
    font-size: var(--er-place-v1-fs-meta);
    letter-spacing: var(--er-place-v1-tr-eye);
    text-transform: uppercase;
    color: var(--er-ink-3);
    text-align: right;
}

.er-place-v1__nearby-arrow {
    font-family: var(--er-serif);
    font-size: 20px;
    color: var(--er-ink-3);
    line-height: 1;
}

a.er-place-v1__nearby-row-inner:hover .er-place-v1__nearby-arrow,
a.er-place-v1__nearby-row-inner:focus-visible .er-place-v1__nearby-arrow {
    color: var(--er-clay-deep);
}

.er-place-v1__nearby-geo-grid {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: var(--er-space-16);
}

.er-place-v1__nearby-geo-cell {
    flex: 1 1 260px;
    max-width: 390px;
    min-width: 0;
    list-style: none;
}

.er-place-v1__nearby-geo-card {
    min-width: 0;
    height: 100%;
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 22px 24px;
    border: 1px solid var(--er-rule);
    border-radius: var(--er-r-md);
    background: var(--er-paper);
    color: inherit;
    border-bottom: 1px solid var(--er-rule);
}

a.er-place-v1__nearby-geo-card:hover,
a.er-place-v1__nearby-geo-card:focus-visible {
    border-color: var(--er-ink-2);
}

.er-place-v1__nearby-geo-type,
.er-place-v1__nearby-geo-meta {
    font-family: var(--er-mono);
    font-size: var(--er-place-v1-fs-meta);
    letter-spacing: var(--er-place-v1-tr-eye);
    text-transform: uppercase;
    color: var(--er-ink-3);
}

.er-place-v1__nearby-geo-title {
    margin: 0;
    font-size: 23px;
    line-height: 1.16;
}

.er-place-v1__nearby-geo-card p {
    color: var(--er-ink-2);
    font-size: 15px;
    line-height: 1.6;
}

.er-place-v1__nearby-geo-meta {
    margin-top: auto;
    padding-top: 8px;
    color: var(--er-clay-deep);
}

/* --- 11c. Map -------------------------------------------------------- */

.er-place-v1__map {
    background: var(--er-paper);
}

/* Designed locator: an editorial "Find it" rail (deep-links into the user's
   own maps app) beside a framed map, rather than a bare default embed. */
.er-place-v1__map-layout {
    display: grid;
    grid-template-columns: minmax(0, 290px) minmax(0, 1fr);
    gap: var(--er-space-24);
    align-items: stretch;
}

.er-place-v1__map-find {
    border: 1px solid var(--er-rule);
    border-radius: var(--er-r-md);
    background: var(--er-paper-2);
    padding: 26px 24px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.er-place-v1__map-find-label {
    font-family: var(--er-mono);
    font-size: var(--er-place-v1-fs-meta);
    letter-spacing: var(--er-place-v1-tr-eye);
    text-transform: uppercase;
    color: var(--er-clay-deep);
}

.er-place-v1__map-find-place {
    font-family: var(--er-serif);
    font-weight: 500;
    font-size: 21px;
    line-height: 1.18;
    color: var(--er-ink);
    margin: 6px 0 0;
}

.er-place-v1__map-find-line {
    color: var(--er-ink-2);
    font-size: 15px;
    line-height: 1.5;
    margin: 0;
}

.er-place-v1__map-find-coords {
    font-family: var(--er-mono);
    font-size: var(--er-place-v1-fs-meta);
    letter-spacing: var(--er-place-v1-tr-eye);
    color: var(--er-ink-3);
    margin: 2px 0 0;
}

.er-place-v1__map-actions {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 20px;
}

.er-place-v1__map-action {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 11px 14px;
    border: 1px solid var(--er-rule);
    border-radius: var(--er-r-sm);
    background: var(--er-paper);
    font-family: var(--er-mono);
    font-size: var(--er-place-v1-fs-meta);
    letter-spacing: var(--er-place-v1-tr-eye);
    text-transform: uppercase;
    color: var(--er-ink-2);
    text-decoration: none;
    transition: border-color 160ms ease, color 160ms ease;
}

.er-place-v1__map-action::after {
    content: "→";
    font-family: var(--er-serif);
    font-size: 18px;
    line-height: 1;
}

.er-place-v1__map-action:hover,
.er-place-v1__map-action:focus-visible {
    border-color: var(--er-ink-2);
    color: var(--er-clay-deep);
}

.er-place-v1__map-official {
    margin-top: 14px;
    font-family: var(--er-mono);
    font-size: var(--er-place-v1-fs-meta);
    letter-spacing: var(--er-place-v1-tr-eye);
    text-transform: uppercase;
    color: var(--er-ink-3);
    text-decoration: none;
}

.er-place-v1__map-official:hover,
.er-place-v1__map-official:focus-visible {
    color: var(--er-clay-deep);
}

.er-place-v1__map-panel {
    border: 1px solid var(--er-rule);
    border-radius: var(--er-r-md);
    overflow: hidden;
    background: var(--er-paper-2);
}

.er-place-v1__map-frame {
    position: relative;
    aspect-ratio: 16 / 10;
    background: var(--er-paper-2);
}

.er-place-v1__map-frame iframe,
.er-place-v1__leaflet {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
    background: var(--er-paper-2);
}

.er-place-v1__leaflet {
    min-height: 100%;
    font-family: var(--er-sans);
}

.er-place-v1__leaflet.er-detail-leaflet-map--unavailable {
    display: grid;
    place-items: center;
    min-height: 260px;
    color: var(--er-ink-3);
    font-family: var(--er-mono);
    font-size: var(--er-place-v1-fs-meta);
    letter-spacing: var(--er-place-v1-tr-eye);
    text-transform: uppercase;
}

.er-place-v1__leaflet .leaflet-control-attribution {
    font-family: var(--er-mono);
    font-size: 10px;
    letter-spacing: 0;
}

/* --- 12. Sources — dark editorial band (Claude Design reference) ----- */

.er-place-v1__sources {
    padding-bottom: clamp(var(--er-space-48), 6vw, var(--er-space-64));
}

.er-place-v1__sources--dark {
    background-color: var(--er-ink);
    color: rgba(255, 247, 236, 0.7);
    padding-top: clamp(var(--er-space-48), 6vw, var(--er-space-64));
}

.er-place-v1__sources-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(0, 0.85fr) minmax(220px, 0.9fr) minmax(0, 0.7fr);
    gap: clamp(var(--er-space-20), 2.5vw, var(--er-space-36));
    align-items: start;
}

.er-place-v1__sources-col {
    min-width: 0;
}

.er-place-v1__sources-label {
    display: block;
    font-family: var(--er-mono);
    font-size: var(--er-fs-floor);
    letter-spacing: var(--er-place-v1-tr-eye);
    text-transform: uppercase;
    color: rgba(255, 247, 236, 0.45);
    margin-bottom: 14px;
}

.er-place-v1__sources-body {
    margin: 0;
    font-family: var(--er-sans);
    font-size: 15px;
    line-height: 1.7;
    color: var(--er-paper);
}

.er-place-v1__sources-link {
    color: var(--er-paper);
    border-bottom: 1px solid rgba(255, 247, 236, 0.35);
}

.er-place-v1__sources-link:hover,
.er-place-v1__sources-link:focus-visible {
    color: var(--er-paper);
    border-bottom-color: var(--er-paper);
}

.er-place-v1__sources--dark a {
    color: var(--er-paper);
    border-bottom-color: rgba(255, 247, 236, 0.35);
}

.er-place-v1__sources-muted {
    color: rgba(255, 247, 236, 0.55);
    font-style: italic;
}

.er-place-v1__image-credits {
    color: rgba(255, 247, 236, 0.68);
    font-size: 12px;
    line-height: 1.45;
}

.er-place-v1__image-credits summary {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    font-family: var(--er-mono);
    font-size: 12px;
    letter-spacing: var(--er-place-v1-tr-meta);
    text-transform: uppercase;
    color: rgba(255, 247, 236, 0.62);
    list-style: none;
}

.er-place-v1__image-credits summary::-webkit-details-marker {
    display: none;
}

.er-place-v1__image-credits summary::before {
    content: "+";
    font-family: var(--er-mono);
    color: rgba(255, 247, 236, 0.5);
}

.er-place-v1__image-credits[open] summary::before {
    content: "-";
}

.er-place-v1__image-credits-list {
    display: grid;
    gap: 7px;
    margin: 12px 0 0;
    padding: 0;
    list-style: none;
}

.er-place-v1__image-credits-list li {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.er-place-v1__image-credits-label {
    font-family: var(--er-mono);
    font-size: 10.5px;
    letter-spacing: var(--er-place-v1-tr-meta);
    text-transform: uppercase;
    color: rgba(255, 247, 236, 0.42);
}

.er-place-v1__image-credits .er-place-v1__sources-link {
    color: rgba(255, 247, 236, 0.74);
    border-bottom-color: rgba(255, 247, 236, 0.2);
    overflow-wrap: anywhere;
}

.er-place-v1__sources-suggest {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 8px;
    font-family: var(--er-sans);
    font-size: 14px;
    color: rgba(255, 247, 236, 0.78);
    border-bottom: 1px solid rgba(255, 247, 236, 0.35);
}

.er-place-v1__sources-suggest:hover,
.er-place-v1__sources-suggest:focus-visible {
    color: var(--er-paper);
    border-bottom-color: var(--er-paper);
}

/* --- Responsive ------------------------------------------------------ */

@media (max-width: 1024px) {
    .er-place-v1__hero-head {
        grid-template-columns: 1fr;
        gap: 24px;
    }
    .er-place-v1__title,
    .er-place-v1__lede {
        grid-column: 1;
    }
    .er-place-v1__hero-actions {
        grid-column: 1;
        justify-self: start;
    }
    .er-place-v1__split,
    .er-place-v1__story-grid,
    .er-place-v1__significance-grid {
        grid-template-columns: 1fr;
        gap: clamp(var(--er-space-32), 5vw, var(--er-space-48));
    }
    .er-place-v1__opening-spread {
        display: flex;
        flex-direction: column;
        gap: clamp(var(--er-space-28), 5vw, var(--er-space-40));
    }
    .er-place-v1__opening-left {
        display: contents;
    }
    .er-place-v1__opening-intro {
        order: 1;
    }
    .er-place-v1__aside {
        order: 2;
    }
    .er-place-v1__opening-editorial {
        order: 3;
    }
    .er-place-v1__sources-grid {
        grid-template-columns: 1fr 1fr;
        gap: clamp(var(--er-space-24), 3vw, var(--er-space-32));
    }
    .er-place-v1__saint-cell {
        flex-basis: calc(50% - 9px);
    }
    .er-place-v1__rhythm-list {
        grid-template-columns: 1fr;
    }
    .er-place-v1__aside {
        position: static;
    }
    .er-place-v1__story-figure .er-place-v1__img {
        aspect-ratio: 3 / 2;
    }
    .er-place-v1__hero-frame {
        aspect-ratio: 16 / 9;
    }
    .er-place-v1__rhythm {
        padding: 20px 22px 18px;
    }
    .er-place-v1__dnm-grid,
    .er-place-v1__dnm-grid--count-5,
    .er-place-v1__dnm-grid--count-4,
    .er-place-v1__worth-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .er-place-v1__dnm-grid--count-5 .er-place-v1__dnm-card:nth-child(-n+3),
    .er-place-v1__dnm-grid--count-5 .er-place-v1__dnm-card:nth-child(4),
    .er-place-v1__dnm-grid--count-5 .er-place-v1__dnm-card:nth-child(5) {
        grid-column: auto;
        grid-row: auto;
        margin-left: 0;
    }
    .er-place-v1__ribbon {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .er-place-v1__ribbon-cell {
        border-top: 1px solid var(--er-rule-soft);
    }
    .er-place-v1__ribbon-cell:first-child,
    .er-place-v1__ribbon-cell:nth-child(2) {
        border-top: 0;
    }
    .er-place-v1__ribbon-cell:nth-child(odd) {
        border-left: 0;
    }
    .er-place-v1__visit-grid--steps .er-place-v1__visit-cell {
        border-left: 1px solid var(--er-rule-soft);
        padding-left: 22px;
    }
    .er-place-v1__opening-flow ol {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .er-place-v1__container {
        padding: 0 var(--er-space-24);
    }
    .er-place-v1 h1,
    .er-place-v1 h2,
    .er-place-v1 h3,
    .er-place-v1 p,
    .er-place-v1__headline,
    .er-place-v1__title,
    .er-place-v1__lede,
    .er-place-v1__body {
        max-width: 100%;
        text-wrap: wrap;
        overflow-wrap: break-word;
        word-break: normal;
    }
    .er-place-v1__hero-head,
    .er-place-v1__hero-head > *,
    .er-place-v1__split,
    .er-place-v1__split > *,
    .er-place-v1__section-head,
    .er-place-v1__section-head > *,
    .er-place-v1__keyfacts,
    .er-place-v1__ribbon-cell {
        min-width: 0;
        max-width: 100%;
    }
    .er-place-v1__title {
        font-size: clamp(2.55rem, 12vw, 3.75rem);
        line-height: 1;
    }
    .er-place-v1__section {
        padding: var(--er-space-48) 0;
    }
    .er-place-v1__hero {
        padding-top: var(--er-space-32);
    }
    .er-place-v1__hero-frame {
        aspect-ratio: 4 / 3;
    }
    .er-place-v1__section-head {
        margin-bottom: var(--er-space-24);
    }
    .er-place-v1__section-head .er-place-v1__count {
        white-space: normal;
        align-self: flex-start;
    }
    .er-place-v1__keyfacts {
        padding: 20px 20px 14px;
    }
    .er-place-v1__ribbon {
        grid-template-columns: 1fr;
    }
    .er-place-v1__ribbon-cell {
        border-left: 0;
        border-top: 1px solid var(--er-rule-soft);
    }
    .er-place-v1__ribbon-cell:first-child {
        border-top: 0;
    }
    .er-place-v1__visit-grid--steps .er-place-v1__visit-cell {
        border-left: 0;
        padding-left: 0;
        padding-right: 0;
        border-top: 1px solid var(--er-rule-soft);
    }
    .er-place-v1__visit-grid--steps .er-place-v1__visit-cell:first-child {
        border-top: 1px solid var(--er-ink);
    }
    .er-place-v1__keyfacts-row {
        grid-template-columns: 1fr;
        gap: 4px;
        padding: 14px 0;
    }
    .er-place-v1__opening-notes,
    .er-place-v1__opening-flow ol {
        grid-template-columns: 1fr;
    }
    .er-place-v1__opening-editorial {
        margin-top: var(--er-space-28);
    }
    .er-place-v1__opening-flow {
        margin-top: var(--er-space-28);
        padding-top: var(--er-space-24);
        padding-bottom: var(--er-space-16);
    }
    .er-place-v1__opening-flow li {
        grid-template-columns: 36px minmax(0, 1fr);
        gap: 4px 12px;
    }
    .er-place-v1__opening-flow li span {
        grid-row: span 2;
        padding-top: 2px;
    }
    .er-place-v1__opening-notes p {
        padding-left: 12px;
    }
    .er-place-v1__dnm-grid,
    .er-place-v1__dnm-grid--count-5,
    .er-place-v1__dnm-grid--count-4,
    .er-place-v1__dnm-grid--count-1,
    .er-place-v1__dnm-grid--count-2,
    .er-place-v1__worth-list {
        grid-template-columns: 1fr;
    }
    .er-place-v1__dnm-card {
        padding: 14px;
    }
    .er-place-v1--church-v3 .er-place-v1__dnm-grid .er-place-v1__dnm-card:nth-child(n+4),
    .er-place-v1--church-v3 .er-place-v1__visit-grid--steps .er-place-v1__visit-cell:nth-child(n+4) {
        display: none;
    }
    .er-place-v1--church-v3 .er-place-v1__mobile-more {
        display: block;
        margin-top: 16px;
    }
    .er-place-v1__saint-cell {
        flex: 0 1 210px;
        max-width: 250px;
    }
    .er-place-v1__figure-card,
    .er-place-v1__figure-card--portrait {
        grid-template-columns: 62px minmax(0, 1fr);
    }
    .er-place-v1__figure-portrait {
        width: 62px;
    }
    .er-place-v1__catalogue-card {
        grid-template-columns: 1fr;
    }
    .er-place-v1__catalogue-card-meta {
        padding-left: 0;
        padding-top: 14px;
        border-left: 0;
        border-top: 1px solid var(--er-rule-soft);
    }
    .er-place-v1__sources-grid {
        grid-template-columns: 1fr;
    }
    .er-place-v1__rhythm {
        padding: 18px 18px 16px;
    }
    .er-place-v1__rhythm-add {
        justify-self: start;
    }
    .er-place-v1__nearby-row-inner {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 12px;
        padding: 18px 4px;
    }
    .er-place-v1__nearby-meta {
        display: none;
    }
    .er-place-v1__nearby-title {
        font-size: 18px;
    }
    .er-place-v1__map-layout {
        grid-template-columns: 1fr;
    }
    .er-place-v1__map-frame {
        aspect-ratio: 4 / 3;
    }
}

/* --------------------------------------------------------------------------
   Church Template v3 final visual skin

   Scoped to the church-v3 wrapper so monasteries and other Place-v1 opt-ins keep
   the established Place-v1 presentation. This block ports the approved v3
   surfaces, hierarchy, and module forms onto the staging church renderer.
   -------------------------------------------------------------------------- */

.er-place-v1--church-v3 {
    background: #FBF7EC;
    color: var(--er-ink);
    font-family: var(--er-sans);
    font-size: 16.5px;
    line-height: 1.66;

    --er-place-v1-container: 1216px;
    --er-place-v1-church-paper: #FBF7EC;
    --er-place-v1-church-ivory: #F4EEDF;
    --er-place-v1-church-limestone: #EFE8D6;
    --er-place-v1-church-band: #1F3A34;
    --er-place-v1-church-band-deep: #162D29;
    --er-place-v1-church-closing: #18140F;
    --er-place-v1-fs-title: clamp(3.05rem, 5.1vw, 4.125rem);
    --er-place-v1-fs-head: clamp(2.35rem, 3.8vw, 3.25rem);
    --er-place-v1-fs-quote: clamp(2.5rem, 4.3vw, 3.875rem);
    --er-place-v1-fs-body: 16.5px;
    --er-place-v1-fs-meta: 14px;
}

.er-place-v1--church-v3 h1,
.er-place-v1--church-v3 h2,
.er-place-v1--church-v3 h3 {
    font-family: var(--er-serif);
    font-weight: 400;
    letter-spacing: 0;
}

.er-place-v1--church-v3 .er-place-v1__body,
.er-place-v1--church-v3 .er-place-v1__significance-prose,
.er-place-v1--church-v3 .er-place-v1__saints-intro {
    font-size: var(--er-place-v1-fs-body);
    line-height: 1.7;
}

.er-place-v1--church-v3 .er-place-v1__section {
    padding: clamp(68px, 7vw, 104px) 0;
    border-top: 1px solid rgba(31, 27, 20, 0.08);
}

.er-place-v1--church-v3 .er-place-v1__hero,
.er-place-v1--church-v3 .er-place-v1__why,
.er-place-v1--church-v3 .er-place-v1__rhythms,
.er-place-v1--church-v3 .er-place-v1__sacred,
.er-place-v1--church-v3 .er-place-v1__nearby {
    background: var(--er-place-v1-church-paper);
}

.er-place-v1--church-v3 .er-place-v1__do-not-miss,
.er-place-v1--church-v3 .er-place-v1__visit,
.er-place-v1--church-v3 .er-place-v1__current,
.er-place-v1--church-v3 .er-place-v1__saints,
.er-place-v1--church-v3 .er-place-v1__map {
    background: var(--er-place-v1-church-limestone);
}

.er-place-v1--church-v3 .er-place-v1__significance {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.025), rgba(0, 0, 0, 0.08)),
        var(--er-place-v1-church-band);
}

.er-place-v1--church-v3 .er-place-v1__section-head {
    align-items: flex-end;
    padding-bottom: 18px;
    margin-bottom: clamp(34px, 4.2vw, 58px);
    border-bottom-color: rgba(31, 27, 20, 0.24);
}

.er-place-v1--church-v3 .er-place-v1__headline {
    max-width: 18ch;
    font-size: var(--er-place-v1-fs-head);
    line-height: 1.04;
}

.er-place-v1--church-v3 .er-place-v1__eyebrow,
.er-place-v1--church-v3 .er-place-v1__count {
    font-family: var(--er-mono);
    font-size: var(--er-place-v1-fs-meta);
    letter-spacing: 0.12em;
}

.er-place-v1--church-v3 .er-place-v1__hero {
    padding-top: clamp(38px, 5vw, 68px);
    padding-bottom: clamp(54px, 6vw, 80px);
    background: var(--er-place-v1-church-ivory);
}

.er-place-v1--church-v3 .er-place-v1__hero-head {
    grid-template-columns: minmax(0, 1.55fr) minmax(220px, 0.65fr);
    align-items: end;
}

.er-place-v1--church-v3 .er-place-v1__title {
    max-width: 15ch;
    font-size: var(--er-place-v1-fs-title);
    line-height: 0.98;
}

.er-place-v1--church-v3 .er-place-v1__lede {
    max-width: 58ch;
    font-size: clamp(1.4rem, 1.7vw, 1.52rem);
    line-height: 1.45;
}

.er-place-v1--church-v3 .er-place-v1__hero-frame {
    aspect-ratio: 16 / 7;
    border-radius: 6px;
    box-shadow: 0 26px 70px -48px rgba(31, 27, 20, 0.42);
}

.er-place-v1--church-profile-major-basilica .er-place-v1__hero-frame,
.er-place-v1--church-profile-architecture-cathedral .er-place-v1__hero-frame {
    aspect-ratio: 16 / 7.6;
}

.er-place-v1--church-v3 .er-place-v1__ribbon {
    background: var(--er-place-v1-church-paper);
    border-color: rgba(31, 27, 20, 0.14);
    box-shadow: none;
}

.er-place-v1--church-v3 .er-place-v1__ribbon-value {
    font-size: 18.5px;
}

.er-place-v1--church-v3 .er-place-v1__split {
    grid-template-columns: minmax(0, 1.55fr) minmax(300px, 0.72fr);
    gap: clamp(48px, 6vw, 78px);
}

.er-place-v1--church-v3 .er-place-v1__opening-intro,
.er-place-v1--church-v3 .er-place-v1__opening-editorial {
    max-width: 66ch;
}

.er-place-v1--church-v3 .er-place-v1__why .er-place-v1__headline {
    max-width: 16ch;
    margin-bottom: clamp(22px, 3vw, 34px);
}

.er-place-v1--church-v3 .er-place-v1__opening-title {
    font-size: clamp(1.45rem, 2vw, 1.9rem);
}

.er-place-v1--church-v3 .er-place-v1__opening-notes {
    max-width: 72ch;
    grid-template-columns: 1fr;
}

.er-place-v1--church-v3 .er-place-v1__opening-notes p {
    font-size: 15px;
    line-height: 1.62;
}

.er-place-v1--church-v3 .er-place-v1__aside {
    top: 84px;
    gap: 22px;
}

.er-place-v1--church-v3 .er-place-v1__keyfacts,
.er-place-v1--church-v3 .er-place-v1__aside > .er-confidence {
    background: var(--er-place-v1-church-ivory);
    border-color: rgba(31, 27, 20, 0.14);
    border-radius: 6px;
    box-shadow: none;
}

.er-place-v1--church-v3 .er-place-v1__keyfacts {
    padding: 20px 22px 16px;
}

.er-place-v1--church-v3 .er-place-v1__keyfacts-row {
    grid-template-columns: minmax(124px, 0.5fr) minmax(0, 1.5fr);
    gap: 16px;
    padding: 15px 0;
}

.er-place-v1--church-v3 .er-place-v1__keyfacts-label {
    font-size: var(--er-fs-floor);
}

.er-place-v1--church-v3 .er-place-v1__keyfacts-value {
    font-size: 15px;
    line-height: 1.5;
}

.er-place-v1--church-v3 .er-place-v1__body-media--aside {
    order: 2;
}

.er-place-v1--church-v3 .er-place-v1__body-media-frame,
.er-place-v1--church-v3 .er-place-v1__dnm-swatch,
.er-place-v1--church-v3 .er-sacred-gallery__frame {
    border-radius: 6px;
}

.er-place-v1--church-v3 .er-place-v1__body-media--wide,
.er-place-v1--church-v3 .er-place-v1__body-media--feature {
    max-width: 1040px;
    margin-top: clamp(34px, 4vw, 52px);
}

.er-place-v1--church-v3 .er-place-v1__body-media--wide .er-place-v1__body-media-frame,
.er-place-v1--church-v3 .er-place-v1__body-media--feature .er-place-v1__body-media-frame {
    aspect-ratio: 16 / 8.5;
}

.er-place-v1--church-mod-image-rich .er-place-v1__body-media--feature,
.er-place-v1--church-mod-image-rich .er-place-v1__body-media--wide {
    max-width: 1120px;
}

.er-place-v1--church-mod-image-scarce .er-place-v1__body-media--feature,
.er-place-v1--church-mod-image-scarce .er-place-v1__body-media--wide {
    max-width: 860px;
}

.er-place-v1--church-v3 .er-place-v1__dnm-grid {
    gap: 18px;
}

.er-place-v1--church-v3 .er-place-v1__dnm-grid--count-5 {
    grid-template-columns: minmax(300px, 1.1fr) repeat(2, minmax(0, 0.82fr));
}

.er-place-v1--church-v3 .er-place-v1__dnm-grid--count-3 {
    grid-template-columns: minmax(280px, 1fr) repeat(2, minmax(0, 0.72fr));
}

.er-place-v1--church-v3 .er-place-v1__dnm-grid--count-3 .er-place-v1__dnm-card:first-child {
    min-height: 100%;
}

.er-place-v1--church-v3 .er-place-v1__dnm-grid--count-6,
.er-place-v1--church-v3 .er-place-v1__dnm-grid--count-8 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.er-place-v1--church-v3 .er-place-v1__dnm-grid--count-7 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.er-place-v1--church-v3 .er-place-v1__dnm-grid--count-7 .er-place-v1__dnm-card {
    grid-column: span 2;
}

.er-place-v1--church-v3 .er-place-v1__dnm-grid--count-7 .er-place-v1__dnm-card:nth-last-child(2) {
    grid-column: 2 / span 2;
}

.er-place-v1--church-v3 .er-place-v1__dnm-card {
    border-radius: 6px;
    box-shadow: none;
}

.er-place-v1--church-v3 .er-place-v1__dnm-title {
    font-size: clamp(1.4rem, 1.45vw, 1.55rem);
}

.er-place-v1--church-v3 .er-place-v1__dnm-card .er-place-v1__body {
    font-size: 15.75px;
}

.er-place-v1--church-v3 .er-place-v1__dnm-grid--text .er-place-v1__dnm-card {
    background: transparent;
    border-width: 0;
    border-top: 1px solid rgba(31, 27, 20, 0.18);
    border-radius: 0;
    padding: 20px 4px;
}

.er-place-v1--church-v3 .er-place-v1__dnm-grid--text .er-place-v1__dnm-card:first-child {
    background: var(--er-place-v1-church-paper);
    border: 1px solid rgba(31, 27, 20, 0.14);
    border-radius: 6px;
    padding: clamp(24px, 3vw, 34px);
}

/* Do Not Miss with no real featured image: never a large empty cream "feature"
   box. The first card becomes an equal editorial row (no cream fill, no wide
   column, no row span), matching the other text rows. Every item is preserved
   and no placeholder media is added. Applies at all widths so mobile also loses
   the empty box; the balanced desktop column reset lives in the min-width rule
   below so it never fights the mobile stacking. */
.er-place-v1--church-v3 .er-place-v1__dnm-grid--no-feature.er-place-v1__dnm-grid--text .er-place-v1__dnm-card:first-child {
    background: transparent;
    border-width: 0;
    border-top: 1px solid rgba(31, 27, 20, 0.18);
    border-radius: 0;
    padding: 20px 4px;
}

.er-place-v1__dnm-grid--no-feature .er-place-v1__dnm-card:first-child {
    grid-row: auto;
    grid-column: auto;
    min-height: 0;
}

@media (min-width: 1025px) {
    .er-place-v1__dnm-grid--no-feature.er-place-v1__dnm-grid--count-3,
    .er-place-v1--church-v3 .er-place-v1__dnm-grid--no-feature.er-place-v1__dnm-grid--count-3,
    .er-place-v1__dnm-grid--no-feature.er-place-v1__dnm-grid--count-5,
    .er-place-v1--church-v3 .er-place-v1__dnm-grid--no-feature.er-place-v1__dnm-grid--count-5 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.er-place-v1--church-v3 .er-place-v1__rhythm-list {
    grid-template-columns: 1fr;
    gap: 18px;
}

/* church-v3 keeps its established three-column plan card (duration rail,
   content, action) and the large serif duration, so it restores the layout
   properties the shared base card no longer carries. */
.er-place-v1--church-v3 .er-place-v1__rhythm {
    grid-template-columns: minmax(128px, 0.22fr) minmax(0, 1fr) auto;
    grid-template-rows: auto;
    gap: 22px;
    padding: clamp(22px, 3vw, 30px);
    border-radius: 6px;
    background: var(--er-place-v1-church-ivory);
    box-shadow: none;
}

.er-place-v1--church-v3 .er-place-v1__rhythm-list > .er-place-v1__rhythm:last-child:nth-child(odd) {
    max-width: none;
    justify-self: stretch;
}

.er-place-v1--church-v3 .er-place-v1__rhythm-duration {
    display: block;
    font-family: var(--er-serif);
    font-size: clamp(1.45rem, 2.1vw, 2rem);
    letter-spacing: 0;
    text-transform: none;
    line-height: 1;
    color: var(--er-clay-deep);
    padding-top: 2px;
}

.er-place-v1--church-v3 .er-place-v1__rhythm-duration small {
    display: block;
    margin-top: 8px;
}

.er-place-v1--church-v3 .er-place-v1__rhythm-duration small::before {
    content: none;
}

.er-place-v1--church-v3 .er-place-v1__rhythm-add {
    align-self: start;
    margin-top: 0;
}

.er-place-v1--church-v3 .er-place-v1__rhythm-body {
    margin-top: 8px;
}

.er-place-v1--church-v3 .er-place-v1__rhythm-title {
    font-size: clamp(1.4rem, 2vw, 1.8rem);
}

.er-place-v1--church-v3 .er-place-v1__rhythm-body {
    font-size: 16px;
    line-height: 1.68;
}

.er-place-v1--church-v3 .er-place-v1__rhythm-stops {
    grid-template-columns: 1fr;
    gap: 10px;
}

.er-place-v1--church-v3 .er-place-v1__rhythm-stops li {
    font-size: 15px;
    color: var(--er-ink-2);
}

.er-place-v1--church-v3 .er-place-v1__visit-grid--steps {
    display: flex;
    flex-direction: column;
    gap: 0;
    border-top: 1px solid rgba(31, 27, 20, 0.22);
}

.er-place-v1--church-v3 .er-place-v1__visit-grid--steps .er-place-v1__visit-cell {
    display: grid;
    grid-template-columns: minmax(130px, 0.28fr) minmax(0, 1fr);
    gap: clamp(20px, 3vw, 34px);
    padding: 22px 0;
    border: 0;
    border-bottom: 1px solid rgba(31, 27, 20, 0.12);
    background: transparent;
    border-radius: 0;
    box-shadow: none;
}

.er-place-v1--church-v3 .er-place-v1__visit-head {
    color: var(--er-clay-deep);
}

.er-place-v1--church-v3 .er-place-v1__current-grid,
.er-place-v1--church-v3 .er-current-practical__more-grid {
    gap: 0;
    border-top: 1px solid rgba(31, 27, 20, 0.16);
}

.er-place-v1--church-v3 .er-place-v1__current-card,
.er-place-v1--church-v3 .er-current-practical__more-card {
    border: 0;
    border-bottom: 1px solid rgba(31, 27, 20, 0.1);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.er-place-v1--church-v3 .er-place-v1__catalogue-card,
.er-place-v1--church-v3 .er-place-v1__catalogue-wrap {
    border-radius: 6px;
    box-shadow: none;
}

.er-place-v1--church-v3 .er-place-v1__catalogue-card {
    grid-template-columns: minmax(0, 1fr) minmax(260px, 0.38fr);
    background: var(--er-place-v1-church-ivory);
}

.er-place-v1--church-v3 .er-place-v1__catalogue {
    font-size: 15px;
}

.er-place-v1--church-v3 .er-place-v1__catalogue th {
    background: var(--er-place-v1-church-ivory);
}

.er-place-v1--church-v3 .er-place-v1__figures-list {
    display: flex;
    flex-direction: column;
    gap: 0;
    border-top: 1px solid rgba(31, 27, 20, 0.16);
}

.er-place-v1--church-v3 .er-place-v1__figure-row {
    max-width: none;
    width: 100%;
    border-bottom: 1px solid rgba(31, 27, 20, 0.1);
}

.er-place-v1--church-v3 .er-place-v1__figure-card,
.er-place-v1--church-v3 .er-place-v1__figure-card--portrait {
    grid-template-columns: 112px minmax(0, 1fr);
    align-items: center;
    padding: 22px 4px;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.er-place-v1--church-v3 .er-place-v1__figure-portrait {
    width: 112px;
    border-radius: 6px;
}

.er-place-v1--church-v3 .er-place-v1__saints-roster .er-place-v1__saint-card {
    border-radius: 6px;
    box-shadow: none;
}

.er-place-v1--church-v3 .er-place-v1__nearby-geo-grid {
    gap: 0;
    border-top: 1px solid rgba(31, 27, 20, 0.16);
}

.er-place-v1--church-v3 .er-place-v1__nearby-geo-cell {
    max-width: none;
    flex-basis: 100%;
    border-bottom: 1px solid rgba(31, 27, 20, 0.1);
}

.er-place-v1--church-v3 .er-place-v1__nearby-geo-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(160px, auto);
    gap: 8px 24px;
    padding: 22px 4px;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.er-place-v1--church-v3 .er-place-v1__nearby-geo-card p {
    max-width: 66ch;
    font-size: 15.5px;
}

.er-place-v1--church-v3 .er-place-v1__map-find,
.er-place-v1--church-v3 .er-place-v1__map-panel {
    border-radius: 6px;
    box-shadow: none;
}

.er-place-v1--church-v3 .er-sacred-gallery {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.025), rgba(0, 0, 0, 0.14)),
        var(--er-place-v1-church-closing);
    color: rgba(251, 247, 236, 0.9);
    border-top: 0;
    padding-top: clamp(76px, 8vw, 116px);
    padding-bottom: clamp(76px, 8vw, 116px);
}

.er-place-v1--church-v3 .er-sacred-gallery__eyebrow,
.er-place-v1--church-v3 .er-sacred-gallery__role {
    color: rgba(251, 247, 236, 0.58);
}

.er-place-v1--church-v3 .er-sacred-gallery__headline,
.er-place-v1--church-v3 .er-sacred-gallery__title {
    color: var(--er-place-v1-church-paper);
}

.er-place-v1--church-v3 .er-sacred-gallery__intro,
.er-place-v1--church-v3 .er-sacred-gallery__text {
    color: rgba(251, 247, 236, 0.72);
}

.er-place-v1--church-v3 .er-sacred-gallery__frame {
    box-shadow: 0 30px 80px -54px rgba(0, 0, 0, 0.88);
}

.er-place-v1--church-v3 .er-place-v1__sources--dark {
    background: var(--er-place-v1-church-closing);
    border-top: 1px solid rgba(251, 247, 236, 0.12);
}

@media (max-width: 1024px) {
    .er-place-v1--church-v3 .er-place-v1__hero-head,
    .er-place-v1--church-v3 .er-place-v1__split,
    .er-place-v1--church-v3 .er-place-v1__significance-grid {
        grid-template-columns: 1fr;
    }

    .er-place-v1--church-v3 .er-place-v1__aside {
        position: static;
    }

    .er-place-v1--church-v3 .er-place-v1__dnm-grid,
    .er-place-v1--church-v3 .er-place-v1__dnm-grid--count-3,
    .er-place-v1--church-v3 .er-place-v1__dnm-grid--count-5,
    .er-place-v1--church-v3 .er-place-v1__dnm-grid--count-6,
    .er-place-v1--church-v3 .er-place-v1__dnm-grid--count-7,
    .er-place-v1--church-v3 .er-place-v1__dnm-grid--count-8 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .er-place-v1--church-v3 .er-place-v1__dnm-grid--count-5 .er-place-v1__dnm-card:first-child,
    .er-place-v1--church-v3 .er-place-v1__dnm-grid--count-7 .er-place-v1__dnm-card,
    .er-place-v1--church-v3 .er-place-v1__dnm-grid--count-7 .er-place-v1__dnm-card:nth-last-child(2) {
        grid-column: auto;
        grid-row: auto;
    }

    .er-place-v1--church-v3 .er-place-v1__rhythm {
        grid-template-columns: minmax(118px, 0.28fr) minmax(0, 1fr);
    }

    .er-place-v1--church-v3 .er-place-v1__rhythm-add {
        grid-column: 2;
        justify-self: start;
    }
}

@media (max-width: 720px) {
    .er-place-v1--church-v3 {
        font-size: 15.5px;
        --er-place-v1-fs-body: 15.5px;
        --er-place-v1-fs-title: clamp(2.55rem, 12vw, 3.75rem);
        --er-place-v1-fs-head: clamp(2rem, 9vw, 2.75rem);
    }

    .er-place-v1--church-v3 .er-place-v1__section {
        padding: 54px 0;
    }

    .er-place-v1--church-v3 .er-place-v1__hero {
        padding-top: 34px;
        padding-bottom: 50px;
    }

    .er-place-v1--church-v3 .er-place-v1__hero-frame,
    .er-place-v1--church-profile-major-basilica .er-place-v1__hero-frame,
    .er-place-v1--church-profile-architecture-cathedral .er-place-v1__hero-frame {
        aspect-ratio: 4 / 5;
    }

    .er-place-v1--church-v3 .er-place-v1__keyfacts {
        padding: 18px;
    }

    .er-place-v1--church-v3 .er-place-v1__keyfacts-row,
    .er-place-v1--church-v3 .er-place-v1__visit-grid--steps .er-place-v1__visit-cell,
    .er-place-v1--church-v3 .er-place-v1__nearby-geo-card {
        grid-template-columns: 1fr;
        gap: 7px;
    }

    .er-place-v1--church-v3 .er-place-v1__dnm-grid,
    .er-place-v1--church-v3 .er-place-v1__dnm-grid--count-3,
    .er-place-v1--church-v3 .er-place-v1__dnm-grid--count-5,
    .er-place-v1--church-v3 .er-place-v1__dnm-grid--count-6,
    .er-place-v1--church-v3 .er-place-v1__dnm-grid--count-7,
    .er-place-v1--church-v3 .er-place-v1__dnm-grid--count-8 {
        grid-template-columns: 1fr;
    }

    .er-place-v1--church-v3 .er-place-v1__rhythm {
        grid-template-columns: 1fr;
        padding: 20px;
    }

    .er-place-v1--church-v3 .er-place-v1__rhythm-add {
        grid-column: auto;
    }

    .er-place-v1--church-v3 .er-place-v1__catalogue-card {
        grid-template-columns: 1fr;
    }

    .er-place-v1--church-v3 .er-place-v1__figures-list {
        gap: 14px;
        border-top: 0;
    }

    .er-place-v1--church-v3 .er-place-v1__figure-row {
        border-bottom: 0;
    }

    .er-place-v1--church-v3 .er-place-v1__figure-card,
    .er-place-v1--church-v3 .er-place-v1__figure-card--portrait {
        grid-template-columns: 72px minmax(0, 1fr);
        padding: 16px;
        border: 1px solid rgba(31, 27, 20, 0.12);
        border-radius: 6px;
        background: var(--er-place-v1-church-paper);
    }

    .er-place-v1--church-v3 .er-place-v1__figure-portrait {
        width: 72px;
    }

    .er-place-v1--church-v3 .er-place-v1__body-media--wide .er-place-v1__body-media-frame,
    .er-place-v1--church-v3 .er-place-v1__body-media--feature .er-place-v1__body-media-frame,
    .er-place-v1--church-v3 .er-sacred-gallery__frame {
        aspect-ratio: 4 / 3;
    }
}

@media (max-width: 480px) {
    .er-place-v1__container {
        padding: 0 var(--er-space-16);
    }
    .er-place-v1__hero-frame {
        aspect-ratio: 3 / 4;
    }
    .er-place-v1__hero-actions {
        width: 100%;
    }
    .er-place-v1__cta {
        flex: 1 1 auto;
        justify-content: center;
    }
    .er-place-v1__ctx-chip {
        font-size: var(--er-fs-floor);
        padding: 11px 14px;
    }
}

/* -----------------------------------------------------------------------------
   Sacred image gallery — reusable editorial gallery module.
   Rendered by templates/components/sacred-image-gallery.php. Class names are
   self-contained (.er-sacred-gallery) so the component is not bound to
   .er-place-v1, but the styles ride along in this already-enqueued stylesheet.
   Local accents fall back to the place-v1 teal when nested inside it.
   -------------------------------------------------------------------------- */

.er-sacred-gallery {
    --er-gallery-accent: var(--er-place-v1-teal, #1F3936);
    --er-gallery-gap: clamp(var(--er-space-16), 2.2vw, var(--er-space-32));
    padding: clamp(var(--er-space-64), 7vw, var(--er-space-96)) 0;
    border-top: 1px solid var(--er-rule-soft);
    background-color: var(--er-paper);
    color: var(--er-ink);
    font-family: var(--er-sans);
}

.er-sacred-gallery__container {
    width: 100%;
    max-width: 1240px;
    margin: 0 auto;
    padding: 0 var(--er-space-32);
    box-sizing: border-box;
}

.er-sacred-gallery__head {
    max-width: 64ch;
    margin-bottom: clamp(var(--er-space-32), 3.5vw, var(--er-space-48));
}

.er-sacred-gallery__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 14px;
    font-family: var(--er-mono);
    font-size: var(--er-fs-floor);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    font-weight: 500;
    color: var(--er-ink-3);
}

.er-sacred-gallery__eyebrow-dot {
    display: inline-block;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--er-gallery-accent);
}

.er-sacred-gallery__headline {
    font-family: var(--er-serif);
    font-weight: 400;
    color: var(--er-ink);
    font-size: clamp(2rem, 3.8vw, 3rem);
    line-height: 1.08;
    margin: 0;
}

.er-sacred-gallery__intro {
    margin: 16px 0 0;
    max-width: 58ch;
    color: var(--er-ink-2, var(--er-ink));
    font-size: 16px;
    line-height: 1.6;
}

/* --- Grid: count-aware --------------------------------------------------- */
.er-sacred-gallery__grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: var(--er-gallery-gap);
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

.er-sacred-gallery__grid[data-count="1"] {
    grid-template-columns: 1fr;
    max-width: 920px;
    margin-inline: auto;
}

.er-sacred-gallery__grid[data-count="2"] {
    grid-template-columns: 1fr 1fr;
}

.er-sacred-gallery__grid[data-count="3"] {
    grid-template-columns: 1fr 1fr;
}

/* The lead image spans the full row only when it sits above a paired row. */
.er-sacred-gallery__grid[data-count="1"] .er-sacred-gallery__item--lead,
.er-sacred-gallery__grid[data-count="3"] .er-sacred-gallery__item--lead {
    grid-column: 1 / -1;
}

.er-sacred-gallery__item {
    margin: 0;
    min-width: 0;
}

.er-sacred-gallery__figure {
    margin: 0;
    display: flex;
    flex-direction: column;
    height: 100%;
}

.er-sacred-gallery__frame {
    position: relative;
    overflow: hidden;
    border-radius: 4px;
    background: var(--er-place-v1-teal-soft, rgba(31, 57, 54, 0.12));
    aspect-ratio: 4 / 5;
    box-shadow: 0 1px 2px rgba(20, 26, 24, 0.06);
}

.er-sacred-gallery__grid[data-count="1"] .er-sacred-gallery__item--lead .er-sacred-gallery__frame,
.er-sacred-gallery__grid[data-count="3"] .er-sacred-gallery__item--lead .er-sacred-gallery__frame {
    aspect-ratio: 16 / 9;
}

.er-sacred-gallery__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    transition: transform 600ms ease;
}

.er-sacred-gallery__figure:hover .er-sacred-gallery__img {
    transform: scale(1.02);
}

.er-sacred-gallery__caption {
    padding: 16px 2px 0;
}

.er-sacred-gallery__role {
    display: inline-block;
    font-family: var(--er-mono);
    font-size: var(--er-fs-floor);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--er-gallery-accent);
    margin-bottom: 8px;
}

.er-sacred-gallery__title {
    font-family: var(--er-serif);
    font-weight: 400;
    color: var(--er-ink);
    font-size: var(--er-fs-floor);
    line-height: 1.2;
    margin: 0 0 8px;
}

.er-sacred-gallery__text {
    margin: 0;
    color: var(--er-ink-2, var(--er-ink));
    font-size: 15px;
    line-height: 1.58;
    max-width: 52ch;
}

/* Lead caption sits under a full-width (16/9) image only at counts 1 and 3.
   Center it and widen the copy so it reads as an intentional editorial block
   instead of being stranded in a narrow left column under a wide photo. */
.er-sacred-gallery__grid[data-count="1"] .er-sacred-gallery__item--lead .er-sacred-gallery__caption,
.er-sacred-gallery__grid[data-count="3"] .er-sacred-gallery__item--lead .er-sacred-gallery__caption {
    max-width: 70ch;
    margin-inline: auto;
    text-align: center;
    padding-top: 20px;
}

.er-sacred-gallery__grid[data-count="1"] .er-sacred-gallery__item--lead .er-sacred-gallery__text,
.er-sacred-gallery__grid[data-count="3"] .er-sacred-gallery__item--lead .er-sacred-gallery__text {
    max-width: 64ch;
    margin-inline: auto;
    font-size: 16px;
}

.er-sacred-gallery__credit {
    display: block;
    margin-top: 10px;
    font-family: var(--er-mono);
    font-size: 11px;
    letter-spacing: 0.04em;
    color: var(--er-ink-3);
}

.er-sacred-gallery__credit a {
    color: var(--er-ink-3);
    text-decoration: none;
    border-bottom: 1px solid var(--er-rule);
}

.er-sacred-gallery__credit a:hover,
.er-sacred-gallery__credit a:focus-visible {
    color: var(--er-clay-deep);
    border-bottom-color: var(--er-clay-deep);
}

@media (max-width: 720px) {
    .er-sacred-gallery__grid[data-count="2"],
    .er-sacred-gallery__grid[data-count="3"] {
        grid-template-columns: 1fr;
    }
    .er-sacred-gallery__frame {
        aspect-ratio: 4 / 3;
    }
    /* Single column on mobile: read the lead caption left-to-right, not centered. */
    .er-sacred-gallery__grid[data-count="1"] .er-sacred-gallery__item--lead .er-sacred-gallery__caption,
    .er-sacred-gallery__grid[data-count="3"] .er-sacred-gallery__item--lead .er-sacred-gallery__caption {
        text-align: left;
        margin-inline: 0;
    }
    .er-sacred-gallery__grid[data-count="1"] .er-sacred-gallery__item--lead .er-sacred-gallery__text,
    .er-sacred-gallery__grid[data-count="3"] .er-sacred-gallery__item--lead .er-sacred-gallery__text {
        margin-inline: 0;
    }
    .er-sacred-gallery__grid[data-count="1"] .er-sacred-gallery__item--lead .er-sacred-gallery__frame,
    .er-sacred-gallery__grid[data-count="3"] .er-sacred-gallery__item--lead .er-sacred-gallery__frame {
        aspect-ratio: 3 / 2;
    }
}

/* =========================================================================
   Priority B — church v3.1 visual & long-page orientation hardening
   (2026-07-02). Additive, church-scoped where it changes behavior.
   ========================================================================= */

/* B1. Sticky chapter nav is now a sitewide default on the shared component
   (assets/css/components/er-section-nav.css), so church pages inherit it with
   no scoped override needed here. */

/* B2. Chapter image beat — one large visual pause between "why it matters" and
   "what to notice". Portrait-friendly centered plate (the available sourced image
   is portrait), never a brutal wide crop. Renders only when data opts in. */
.er-place-v1__chapter-beat {
    margin: 0;
    padding: clamp(30px, 5vw, 68px) 0;
    background: var(--er-paper, #fbf7ec);
    border-top: 1px solid var(--er-rule-hair, rgba(31, 27, 20, 0.10));
    border-bottom: 1px solid var(--er-rule-hair, rgba(31, 27, 20, 0.10));
}
.er-place-v1__chapter-beat .er-place-v1__body-media {
    width: min(var(--er-container, 1120px), calc(100% - 32px));
    max-width: 560px;
    margin: 0 auto;
    display: block;
}
.er-place-v1__chapter-beat .er-place-v1__body-media-frame {
    width: 100%;
    border-radius: var(--er-r-lg, 8px);
    overflow: hidden;
}
.er-place-v1__chapter-beat .er-place-v1__body-media-caption {
    margin-top: 14px;
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

/* B3. Sacred Geography intro previously collapsed to ~13px: its rem-based clamp
   resolves against this theme's 10px root, so it read smaller than body copy.
   Restore parity with the other section intros. Scoped to place pages. */
.er-place-v1 .er-sacred-geo__intro {
    font-size: clamp(16px, 1.5vw, 18.5px);
    line-height: 1.6;
}

/* B5. "How to read this place" mini-columns: count-aware grid so an even set of
   four no longer wraps into a ragged 3 + 1. Base stays 3-up; overrides balance
   2 and 4, and mobile stacks. */
.er-place-v1__opening-flow ol.er-place-v1__opening-flow-list--count-4,
.er-place-v1__opening-flow ol.er-place-v1__opening-flow-list--count-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.er-place-v1__opening-flow ol.er-place-v1__opening-flow-list--count-1 {
    grid-template-columns: minmax(0, 1fr);
}
@media (max-width: 560px) {
    .er-place-v1__opening-flow ol,
    .er-place-v1__opening-flow ol.er-place-v1__opening-flow-list--count-2,
    .er-place-v1__opening-flow ol.er-place-v1__opening-flow-list--count-4 {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* "Part of a pilgrimage guide" backlink (shared guide-backlink partial). */
.er-guide-backlink {
  margin: 34px auto;
  padding: 18px 22px;
  border: 1px solid rgba(31, 27, 20, 0.12);
  border-left: 3px solid var(--er-clay-deep, #8E4E2E);
  border-radius: 0 10px 10px 0;
  background: var(--er-ivory, #F6F1E4);
}

.er-guide-backlink p {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px 16px;
  margin: 0;
}

.er-guide-backlink p + p {
  margin-top: 8px;
}

.er-guide-backlink-label {
  font: 600 13px/1.3 var(--er-sans, sans-serif);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--er-ink-3, #6E6555);
}

.er-guide-backlink a {
  font-family: var(--er-serif, Georgia, serif);
  font-size: 17px;
  font-weight: 600;
  color: var(--er-ink, #1F1B14);
  text-decoration: none;
  border-bottom: 1px solid rgba(31, 27, 20, 0.25);
}

.er-guide-backlink a:hover {
  color: var(--er-clay-deep, #8E4E2E);
  border-bottom-color: currentColor;
}
