.persian-contact-bubble {
	position: fixed;
	direction: rtl;
	bottom: var(--contact-button-offset);
	z-index: 99999;
	font-family: inherit;
}
.persian-contact-bubble--right { right: var(--contact-button-offset); }
.persian-contact-bubble--left { left: var(--contact-button-offset); }
.persian-contact-bubble__toggle {
	width: var(--contact-button-size);
	height: var(--contact-button-size);
	border: 0;
	border-radius: 999px;
	background: var(--contact-button-color);
	color: #fff;
	box-shadow: 0 8px 24px rgba(0, 0, 0, .2);
	cursor: pointer;
	display: grid;
	place-items: center;
	transition: transform .2s ease, box-shadow .2s ease;
}
.persian-contact-bubble__toggle:hover,
.persian-contact-bubble__toggle:focus-visible { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(0, 0, 0, .26); }
.persian-contact-bubble__toggle:focus-visible,
.persian-contact-bubble__item:focus-visible { outline: 3px solid var(--contact-button-accent); outline-offset: 3px; }
.persian-contact-bubble__toggle-icon svg { width: calc(var(--contact-button-size) * .4); height: calc(var(--contact-button-size) * .4); fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.persian-contact-bubble__menu {
	position: absolute;
	bottom: calc(var(--contact-button-size) + 12px);
	width: max-content;
	min-width: 170px;
	max-width: min(280px, calc(100vw - 32px));
	padding: 8px;
	border: 1px solid rgba(0, 0, 0, .08);
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 12px 35px rgba(0, 0, 0, .16);
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px) scale(.96);
	transform-origin: bottom;
	transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
}
.persian-contact-bubble--right .persian-contact-bubble__menu { right: 0; }
.persian-contact-bubble--left .persian-contact-bubble__menu { left: 0; }
.persian-contact-bubble__menu--open { opacity: 1; visibility: visible; transform: translateY(0) scale(1); }
.persian-contact-bubble__item { display: flex; align-items: center; gap: 10px; padding: 10px 12px; color: #1f2937; text-decoration: none; border-radius: 10px; white-space: nowrap; }
.persian-contact-bubble__item:hover { background: color-mix(in srgb, var(--contact-button-accent) 12%, white); color: #111827; }
.persian-contact-bubble__item-icon { display: inline-grid; place-items: center; width: 30px; height: 30px; color: var(--contact-button-accent); border-radius: 50%; background: color-mix(in srgb, var(--contact-button-accent) 14%, white); }
.persian-contact-bubble__item-icon svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
@media (prefers-reduced-motion: reduce) { .persian-contact-bubble__toggle, .persian-contact-bubble__menu { transition: none; } }

.persian-contact-bubble__toggle-icon img, .persian-contact-bubble__item-icon img { width: 70%; height: 70%; object-fit: contain; }
.persian-contact-bubble__item-icon img { width: 18px; height: 18px; }

/* Attention pulse while idle; it stops as soon as the menu opens. */
.persian-contact-bubble__toggle { position: relative; animation: persian-contact-bubble-pulse 2.6s ease-in-out infinite; }
.persian-contact-bubble__toggle::before { content: ''; position: absolute; inset: -5px; border: 2px solid color-mix(in srgb, var(--contact-button-color) 55%, transparent); border-radius: inherit; opacity: 0; pointer-events: none; animation: persian-contact-bubble-ring 2.6s ease-out infinite; }
.persian-contact-bubble--open .persian-contact-bubble__toggle, .persian-contact-bubble__toggle:hover, .persian-contact-bubble__toggle:focus-visible { animation: none; }
.persian-contact-bubble--open .persian-contact-bubble__toggle::before, .persian-contact-bubble__toggle:hover::before, .persian-contact-bubble__toggle:focus-visible::before { animation: none; opacity: 0; }
.persian-contact-bubble__close-icon { display: none; }
.persian-contact-bubble--open .persian-contact-bubble__toggle-icon { display: none; }
.persian-contact-bubble--open .persian-contact-bubble__close-icon { display: inline-grid; place-items: center; }
.persian-contact-bubble__close-icon svg { width: calc(var(--contact-button-size) * .38); height: calc(var(--contact-button-size) * .38); fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
@keyframes persian-contact-bubble-pulse { 0%, 100% { transform: scale(1); box-shadow: 0 8px 24px rgba(0, 0, 0, .2); } 50% { transform: scale(1.045); box-shadow: 0 10px 30px rgba(0, 0, 0, .28); } }
@keyframes persian-contact-bubble-ring { 0% { transform: scale(.92); opacity: 0; } 18% { opacity: .75; } 70%, 100% { transform: scale(1.25); opacity: 0; } }
.persian-contact-bubble__item-icon { background: transparent; }
.persian-contact-bubble__item-icon svg { background: transparent; }
@media (prefers-reduced-motion: reduce) { .persian-contact-bubble__toggle, .persian-contact-bubble__toggle::before { animation: none; } }

.persian-contact-bubble__item { font-size: var(--contact-item-font-size); }
.persian-contact-bubble__item-icon svg, .persian-contact-bubble__item-icon img { width: var(--contact-item-icon-size); height: var(--contact-item-icon-size); }
.persian-contact-bubble-icon--phone { transform: scaleX(-1); }
@keyframes persian-contact-bubble-pulse { 0%, 100% { transform: scale(1); box-shadow: 0 8px 24px rgba(0, 0, 0, .2); } 50% { transform: scale(1.06); box-shadow: 0 12px 34px rgba(0, 0, 0, .31); } }

/* Hover enlarges the button without moving it vertically. */
.persian-contact-bubble__toggle:hover, .persian-contact-bubble__toggle:focus-visible { transform: scale(1.035); }

/* Namespace and priority guards for themes with broad button/link rules. */
#persian-contact-bubble-root.persian-contact-bubble { position: fixed !important; z-index: 2147483000 !important; isolation: isolate !important; font-family: inherit !important; }
#persian-contact-bubble-root .persian-contact-bubble__toggle { box-sizing: border-box !important; display: grid !important; place-items: center !important; position: relative !important; width: var(--contact-button-size) !important; height: var(--contact-button-size) !important; min-width: var(--contact-button-size) !important; min-height: var(--contact-button-size) !important; padding: 0 !important; border: 0 !important; border-radius: 999px !important; background: var(--contact-button-color) !important; color: #fff !important; line-height: 1 !important; text-decoration: none !important; }
#persian-contact-bubble-root .persian-contact-bubble__menu { box-sizing: border-box !important; }
#persian-contact-bubble-root .persian-contact-bubble__item { box-sizing: border-box !important; display: flex !important; align-items: center !important; color: #1f2937 !important; line-height: 1.4 !important; text-decoration: none !important; }
#persian-contact-bubble-root .persian-contact-bubble__item:hover { color: #111827 !important; text-decoration: none !important; }
#persian-contact-bubble-root .persian-contact-bubble__toggle-icon, #persian-contact-bubble-root .persian-contact-bubble__close-icon { line-height: 0 !important; }
#persian-contact-bubble-root .persian-contact-bubble__toggle-icon svg, #persian-contact-bubble-root .persian-contact-bubble__close-icon svg { display: block !important; max-width: none !important; }
