/* ============================================================
   CMS section blocks — built on the SPF "lacquer & brass" tokens
   ============================================================ */

/* Rich text */
.richtext{max-width:70ch}
.richtext.rt-narrow{max-width:58ch}
.richtext > *+*{margin-top:1.1em}
.richtext h2,.richtext h3{font-family:var(--serif);font-weight:400;line-height:1.15;margin-top:1.4em}
.richtext h2{font-size:clamp(1.6rem,3vw,2.3rem)}
.richtext h3{font-size:clamp(1.25rem,2vw,1.6rem)}
.richtext p,.richtext li{color:var(--muted);font-size:1.08rem;line-height:1.7}
.on-dark .richtext p,.on-dark .richtext li{color:var(--muted-dk)}
.richtext a{color:var(--lacquer);border-bottom:1px solid currentColor}
.on-dark .richtext a{color:var(--brass-lt)}
.richtext ul,.richtext ol{padding-left:1.2em}
.richtext li{margin-top:.5em}
.richtext blockquote{font-family:var(--serif);font-size:1.5rem;line-height:1.4;border-left:2px solid var(--brass);padding-left:1em;color:var(--ink)}
.on-dark .richtext blockquote{color:var(--bone)}
.richtext img{margin:1.4em 0;border:1px solid var(--line)}

/* Image + text */
.img-text{display:grid;grid-template-columns:1fr;gap:clamp(28px,5vw,64px);align-items:center}
@media(min-width:860px){.img-text{grid-template-columns:1fr 1fr}.img-text.reverse .img-text-media{order:2}}
.img-text-media img{width:100%;height:auto;display:block;border:1px solid var(--line)}
.on-dark .img-text-media img{border-color:var(--line-dk)}

/* Slideshow */
.slideshow{position:relative;margin-top:8px}
.slideshow .slides{position:relative}
.slideshow .slide{display:none;margin:0}
.slideshow .slide.is-active{display:block}
.slideshow .slide img{width:100%;height:clamp(260px,52vh,620px);object-fit:cover;display:block;border:1px solid var(--line)}
.slideshow figcaption{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-top:12px}
.ss-nav{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border:1px solid rgba(245,239,228,.6);background:rgba(23,18,13,.45);color:var(--bone);font-size:1.6rem;line-height:1;cursor:pointer;transition:background .3s}
.ss-nav:hover{background:var(--lacquer);border-color:var(--lacquer)}
.ss-prev{left:14px}.ss-next{right:14px}
.ss-dots{display:flex;gap:9px;justify-content:center;margin-top:16px}
.ss-dot{width:8px;height:8px;border-radius:50%;border:0;background:var(--line);cursor:pointer;padding:0;transition:background .3s,transform .3s}
.ss-dot.is-active{background:var(--brass);transform:scale(1.25)}
