.rf-family { background:#f8f5f7; border-top:1px solid #eadfe5; border-bottom:1px solid #eadfe5; scroll-margin-top:90px; }
.rf-family-heading { text-align:center; max-width:760px; margin:0 auto 38px; }
.rf-family-heading p { text-align:center !important; }
.rf-family-heading .rf-eyebrow { color:#830d3b; }
.rf-family-heading h2 { color:#5b0d2b; }
.rf-family-heading > p:last-child { color:#60515a; font-size:17px; line-height:1.65; margin-bottom:0; }
.rf-family-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.16fr) minmax(0,1fr); align-items:center; gap:24px; }
.rf-family-item { margin:0; min-width:0; }
.rf-family-poster { position:relative; display:block; width:100%; overflow:hidden; border-radius:5px; background:#eadfe5; box-shadow:0 12px 32px rgba(65,12,36,.1); }
.rf-family-poster img { display:block; width:100%; height:100%; max-width:none; margin:0; object-fit:contain; transition:filter .2s; }
.rf-family-expand { position:absolute; right:12px; bottom:12px; display:grid; place-items:center; width:40px; height:40px; border-radius:4px; background:rgba(70,5,30,.9); color:#fff; pointer-events:none; transition:background .2s; }
.rf-family-poster:hover .rf-family-expand { background:#a30d49; }
.rf-family-poster:focus-visible { outline:3px solid #830d3b; outline-offset:5px; }
.rf-family-item figcaption { padding:18px 0 0; text-align:left; }
.rf-family-item h3 { color:#5b0d2b; font-size:23px; line-height:1.3; font-weight:700; text-transform:none; letter-spacing:0; margin:0 0 5px; }
.rf-family-item figcaption p { color:#685661; font-size:14px; line-height:1.5; margin:0; overflow-wrap:break-word; }
.rf-family-controls { display:none; }
.rf-family-icon { appearance:none; display:grid; place-items:center; width:42px; height:42px; padding:0; border:1px solid #d7bec9; border-radius:4px; background:#850e3c; color:#fff; flex-shrink:0; cursor:pointer; transition:background .2s; }
.rf-family-icon:hover { background:#a30d49; color:#fff; }
.rf-family-icon:disabled { opacity:.35; cursor:default; }
.rf-family-icon:focus-visible, .rf-family-languages button:focus-visible { outline:3px solid #e7a8c4; outline-offset:3px; }
.rf-family-dialog { width:calc(100% - 40px); max-width:1320px; height:calc(100dvh - 32px); max-height:calc(100dvh - 32px); padding:0; margin:auto; border:1px solid #5c3346; border-radius:6px; background:#1f1018; color:#fff; overflow:hidden; box-shadow:0 24px 100px rgba(0,0,0,.5); }
.rf-family-dialog[open] { display:grid; grid-template-rows:auto minmax(0,1fr) auto; }
.rf-family-dialog:not([open]) { display:none; }
.rf-family-dialog::backdrop { background:rgba(15,5,10,.86); }
.rf-family-dialog-bar { display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:18px; padding:15px 22px; border-bottom:1px solid #50313f; }
.rf-family-dialog-bar h3 { color:#fff; font-size:22px; font-weight:700; line-height:1.3; margin:0 0 2px; letter-spacing:0; text-transform:none; text-align:left; }
.rf-family-dialog-bar p { color:#dac4cf; font-size:13px; line-height:1.4; margin:0; text-align:left; }
.rf-family-languages { display:flex; gap:4px; }
.rf-family-languages button { appearance:none; width:36px; height:36px; padding:0; border:1px solid #745260; border-radius:4px; color:#eee0e7; background:transparent; font-family:inherit; font-size:12px; font-weight:700; line-height:1; cursor:pointer; }
.rf-family-languages button[aria-pressed="true"] { color:#fff; background:#930f44; border-color:#bc5b81; }
.rf-family-dialog-stage { position:relative; display:flex; justify-content:center; align-items:center; padding:12px 20px; min-height:0; overflow:hidden; }
.rf-family-dialog-stage img { display:block; width:100%; height:100%; max-width:100%; max-height:100%; object-fit:contain; margin:0; }
.rf-family-dialog-stage img[hidden], #rf-family-load-status[hidden] { display:none; }
#rf-family-load-status { color:#ead8e1; font-size:14px; line-height:1.5; text-align:center; margin:0; padding:20px; }
.rf-family-dialog-footer { display:grid; grid-template-columns:42px minmax(0,1fr) 42px; align-items:center; gap:16px; padding:12px 22px; border-top:1px solid #50313f; }
.rf-family-dialog-footer p { margin:0; text-align:center; color:#ead8e1; font-size:14px; line-height:1.5; overflow-wrap:break-word; }
html.rf-family-modal-open { overflow:hidden; }
@media (max-width:991px) {
  .rf-family-grid { gap:18px; }
  .rf-family-item h3 { font-size:20px; }
  .rf-family-expand { width:34px; height:34px; right:8px; bottom:8px; }
}
@media (max-width:700px) {
  .rf-family-heading { margin-bottom:26px; text-align:left; }
  .rf-family-heading p { text-align:left !important; }
  .rf-family-heading > p:last-child { font-size:16px; }
  .rf-family-grid { position:relative; display:grid; grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:86%; gap:18px; align-items:start; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scrollbar-width:thin; scrollbar-color:#bc8ca3 transparent; padding:5px 0 16px; }
  .rf-family-item { scroll-snap-align:start; }
  .rf-family-poster { aspect-ratio:3 / 4 !important; background:#eddee5; }
  .rf-family-item h3 { font-size:22px; }
  .rf-family-controls:not([hidden]) { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-top:15px; }
  .rf-family-controls p { font-size:14px; color:#5b0d2b; line-height:1.5; margin:0; text-align:center; }
  .rf-family-controls p span { margin-left:12px; font-size:11px; color:#806272; font-variant-numeric:tabular-nums; }
  .rf-family-dialog { width:calc(100% - 16px); height:calc(100dvh - 16px); max-height:calc(100dvh - 16px); }
  .rf-family-dialog-bar { padding:12px; gap:10px; }
  .rf-family-dialog-bar h3 { font-size:19px; }
  .rf-family-dialog-bar p { font-size:11px; }
  .rf-family-dialog .rf-family-icon { width:38px; height:38px; }
  .rf-family-dialog-stage { padding:10px; }
  .rf-family-dialog-footer { padding:10px 12px; gap:10px; grid-template-columns:38px minmax(0,1fr) 38px; }
  .rf-family-dialog-footer p { font-size:12px; }
}
@media (max-width:360px) { .rf-family-dialog-bar p { display:none; } .rf-family-dialog-bar { gap:6px; } }
@media (prefers-reduced-motion:reduce) { .rf-family-poster img, .rf-family-expand, .rf-family-icon { transition:none; } }
