/* Compact editorial carousel above the home page headline. */
.rf-promo-wrap { padding: 22px 40px 0; }
.rf-promo-frame { position: relative; max-width: 1320px; height: 218px; margin: 0 auto; overflow: hidden; border-radius: 12px; background: #10191e; box-shadow: 0 14px 40px rgba(10,11,13,.12); }
.rf-promo-slide { position: absolute; inset: 0; animation: rf-promo-arrive .45s ease both; }
@keyframes rf-promo-arrive { from { opacity: .72; transform: scale(1.012); } to { opacity: 1; transform: scale(1); } }
.rf-promo-panel { box-sizing: border-box; position: absolute; top: 0; bottom: 0; width: 55%; display: flex; align-items: center; text-decoration: none; overflow: hidden; isolation: isolate; }
.rf-promo-panel::before { content: ''; position: absolute; inset: 0; z-index: -1; transition: transform .5s ease; }
.rf-promo-panel:hover::before, .rf-promo-panel:focus-visible::before { transform: scale(1.045); }
.rf-promo-panel:focus-visible { outline: 3px solid #c6974d; outline-offset: -3px; z-index: 3; }
.rf-promo-left { left: 0; padding: 20px 9% 22px 34px; }
.rf-promo-right { right: 0; padding: 20px 22px 22px 12%; clip-path: polygon(12% 0,100% 0,100% 100%,0 100%); }
.rf-promo-copy { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: flex-start; max-width: 360px; }
.rf-promo-kicker { font: 600 10px/1.2 'IBM Plex Mono',ui-monospace,monospace; letter-spacing: .13em; margin-bottom: 12px; opacity: .68; }
.rf-promo-title { font: 600 clamp(23px,2.45vw,36px)/1.04 'Inter Tight',-apple-system,system-ui,sans-serif; letter-spacing: -.035em; max-width: 330px; }
.rf-promo-detail { font: 400 13px/1.35 'Inter Tight',-apple-system,system-ui,sans-serif; max-width: 280px; margin-top: 9px; opacity: .75; }
.rf-promo-link { font: 600 11px/1.2 'IBM Plex Mono',ui-monospace,monospace; letter-spacing: .03em; margin-top: 15px; border-bottom: 1px solid currentColor; padding-bottom: 3px; }
.rf-promo-link span { margin-left: 4px; }
.rf-promo-ring, .rf-promo-diamonds { color: #151412; }
.rf-promo-shots, .rf-promo-mcp { color: #fffaf2; }
.rf-promo-ring::before { background: linear-gradient(90deg,#f6f3ed 0%,rgba(246,243,237,.97) 41%,rgba(246,243,237,.2) 100%),url('../assets/pages/ring-builder-components-exploded.webp') center/cover; }
.rf-promo-shots::before { background: linear-gradient(90deg,rgba(13,21,27,.95),rgba(13,21,27,.9) 42%,rgba(13,21,27,.47)),url('../assets/demo-models/demo-shot-1.png') center 58%/cover; }
.rf-promo-mcp::before { background: radial-gradient(circle at 77% 25%,rgba(115,183,191,.36),transparent 35%),repeating-linear-gradient(0deg,transparent 0 28px,rgba(255,255,255,.035) 29px 30px),linear-gradient(135deg,#182b32,#0b1117); }
.rf-promo-mcp::after { content: '{  }'; position: absolute; right: 12%; top: 18%; color: rgba(224,251,251,.11); font: 700 110px/1 'IBM Plex Mono',ui-monospace,monospace; pointer-events: none; }
.rf-promo-diamonds::before { background: linear-gradient(90deg,#f5f1e9 0%,rgba(245,241,233,.96) 42%,rgba(245,241,233,.2) 100%),url('../assets/pages/loose-diamond-inventory.webp') center/cover; }
.rf-promo-controls { position: absolute; z-index: 4; left: 50%; bottom: 10px; display: flex; gap: 7px; transform: translateX(-50%); padding: 6px 8px; border-radius: 99px; background: rgba(10,11,13,.35); backdrop-filter: blur(8px); }
.rf-promo-controls button { width: 22px; height: 5px; border: 0; border-radius: 99px; padding: 0; background: rgba(255,255,255,.43); cursor: pointer; }
.rf-promo-controls button.is-active { background: #fff; }
.rf-promo-controls button:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
@media (max-width: 760px) {
  .rf-promo-wrap { padding: 14px 16px 0; }
  .rf-promo-frame { height: 170px; border-radius: 9px; }
  .rf-promo-left { padding: 15px 17% 24px 15px; }
  .rf-promo-right { padding: 15px 10px 24px 12%; }
  .rf-promo-kicker { font-size: 8px; margin-bottom: 8px; }
  .rf-promo-title { font-size: clamp(16px,4.4vw,25px); line-height: 1.08; }
  .rf-promo-detail { display: none; }
  .rf-promo-link { font-size: 9px; margin-top: 12px; }
  .rf-promo-mcp::after { font-size: 50px; right: 5%; }
  .rf-promo-controls { bottom: 7px; }
}
@media (prefers-reduced-motion: reduce) {
  .rf-promo-slide { animation: none; }
  .rf-promo-panel::before { transition: none; }
}
