/**
 * InviteStudio Frontend Common Styles
 */

.invitestudio-spinner {
	display: inline-block;
	animation: invitestudio-spin 1s linear infinite;
}

@keyframes invitestudio-spin {
	0% { transform: rotate(0deg); }
	100% { transform: rotate(360deg); }
}

/* Scroll lock when cover is active */
html.invitestudio-scroll-locked,
body.invitestudio-scroll-locked {
	overflow: hidden !important;
	height: 100vh !important;
	height: 100dvh !important;
}

/* ═══════════════════════════════════════════════════════════
   Universal Icon Normalization for Font Awesome & Elementor Inline SVGs
   Prevents icons from blowing up to full viewport/container size
   ═══════════════════════════════════════════════════════════ */
.invitestudio-share-wrapper svg,
.invitestudio-share-wrapper .svg-inline--fa,
.invitestudio-share-wrapper .e-font-icon-svg,
.invitestudio-cover-overlay svg,
.invitestudio-cover-overlay .svg-inline--fa,
.invitestudio-cover-overlay .e-font-icon-svg,
.invitestudio-backsound-wrapper svg,
.invitestudio-backsound-wrapper .svg-inline--fa,
.invitestudio-backsound-wrapper .e-font-icon-svg,
.invitestudio-rsvp-wrapper svg,
.invitestudio-rsvp-wrapper .svg-inline--fa,
.invitestudio-rsvp-wrapper .e-font-icon-svg {
	display: inline-block;
	width: 1em;
	height: 1em;
	max-width: 1em;
	max-height: 1em;
	box-sizing: content-box;
	vertical-align: -0.125em;
	fill: currentColor;
	flex-shrink: 0;
}

.invitestudio-share-wrapper i,
.invitestudio-cover-overlay i,
.invitestudio-backsound-wrapper i,
.invitestudio-rsvp-wrapper i {
	display: inline-block;
	font-style: normal;
	line-height: 1;
	flex-shrink: 0;
}

