.gfc-frame-picker { clear: both; margin: 1.5rem 0; }
.gfc-frame-picker h3 { margin-bottom: .75rem; }
.gfc-frame-preview { position: relative; width: min(100%, 520px); aspect-ratio: 1 / 1; margin-bottom: 1rem; overflow: hidden; background: #f4f4f4; }
.gfc-frame-opening { position: absolute; z-index: 2; overflow: hidden; background: #fff; }
.gfc-preview-photo { width: 100%; height: 100%; display: block; object-position: center; }
.gfc-preview-overlay { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; object-fit: contain; pointer-events: none; }
.gfc-frame-options { display: flex; flex-wrap: wrap; gap: 12px; }
.gfc-frame-option { width: 108px; padding: 8px; border: 2px solid #ddd; border-radius: 5px; cursor: pointer; text-align: center; transition: border-color .15s, box-shadow .15s; }
.gfc-frame-option.is-selected { border-color: #2271b1; box-shadow: 0 0 0 1px #2271b1; }
.gfc-frame-option input { position: absolute; opacity: 0; pointer-events: none; }
.gfc-frame-option img { display: block; width: 90px; height: 90px; margin: 0 auto 6px; object-fit: contain; }
.gfc-frame-option span { display: block; line-height: 1.25; }
.gfc-frame-option small { white-space: nowrap; }
.gfc-selected-frame-description { width: min(100%, 520px); margin-top: 12px; padding: 12px 14px; border-left: 3px solid currentColor; background: rgba(0, 0, 0, .035); white-space: pre-line; }

/* Keep theme image decorations from creating an extra rim inside the preview. */
.gfc-frame-picker .gfc-frame-opening {
  padding: 0; border: 0; margin: 0; border-radius: 0; box-shadow: none;
}
.gfc-frame-picker .gfc-frame-preview img.gfc-preview-photo {
  width: 100%; height: 100%; max-width: none; max-height: none;
  padding: 0; border: 0; margin: 0; border-radius: 0; box-shadow: none;
  box-sizing: border-box;
}
