/* Scoped additions for the real QR inside the original Framer contact card. */
footer .contact-qr { align-items: center !important; gap: 12px !important; }
footer .contact-qr-preview { padding: 0; border: 1px solid #111; border-radius: 14px; background: #fff; width: min(100%, 260px); aspect-ratio: 1; flex: none; overflow: hidden; cursor: zoom-in; }
footer .contact-qr-preview img { display: block; width: 100%; height: 100%; object-fit: contain; }
footer .contact-qr-caption { margin: 0; font: inherit; font-size: 13px; line-height: 1.5; text-align: center; color: #555; }
footer .contact-qr-save { display: flex; align-items: center; justify-content: center; min-height: 44px; width: 100%; border: 1px solid #111; border-radius: 14px; background: #ffcb2e; color: #111; text-decoration: none; font-size: 16px; font-weight: 600; transition: background .2s, transform .2s; }
footer .contact-qr-save:hover { background: #ff54dd; transform: translateY(-2px); }
footer .contact-qr-preview:focus-visible, footer .contact-qr-save:focus-visible { outline: 3px solid #ff54dd; outline-offset: 4px; }
.contact-qr-dialog { border: 1px solid #111; border-radius: 22px; padding: 12px; background: #fff; max-width: min(90vw, 488px); max-height: 88dvh; overflow: auto; box-shadow: 8px 8px 0 #ff54dd; }
.contact-qr-dialog::backdrop { background: rgb(0 0 0 / .55); }
.contact-qr-dialog img { display: block; width: 100%; height: auto; }
.contact-qr-dialog p { text-align: center; margin: 0 4px 8px; font: 14px/1.5 sans-serif; color: #555; }
@media (prefers-reduced-motion: reduce) { footer .contact-qr-save { transition: none; } }
