/* Sticky WhatsApp Button */
.sticky-whatsapp {
	position: fixed;
	bottom: 30px;
	right: 30px;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background-color: #25D366; /* WhatsApp green */
	border: 4px solid #ffffff;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #ffffff;
	font-size: 32px;
	text-decoration: none;
	box-shadow: 0 8px 24px rgba(0,0,0,0.25);
	z-index: 9999;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
	animation: sp-whatsapp-pulse 2.2s infinite;
}

/* Hover effect */
.sticky-whatsapp:hover {
	transform: scale(1.05);
	box-shadow: 0 12px 30px rgba(0,0,0,0.3);
	color: #ffffff;
}

/* Pulse (soft ring) */
@keyframes sp-whatsapp-pulse {
	0%   { box-shadow: 0 8px 24px rgba(0,0,0,0.25), 0 0 0 0 rgba(37, 211, 102, 0.55); }
	70%  { box-shadow: 0 8px 24px rgba(0,0,0,0.25), 0 0 0 18px rgba(37, 211, 102, 0); }
	100% { box-shadow: 0 8px 24px rgba(0,0,0,0.25), 0 0 0 0 rgba(37, 211, 102, 0); }
}

/* Speech bubble */
.sticky-whatsapp__bubble {
	position: absolute;
	right: calc(100% + 14px);
	bottom: 50%;
	transform: translateY(50%) translateX(10px);
	background: #ffffff;
	color: #111;
	font-size: 14px;
	line-height: 1.2;
	font-weight: 600;
	padding: 10px 12px;
	border-radius: 999px;
	white-space: nowrap;
	box-shadow: 0 10px 26px rgba(0,0,0,0.18);
	opacity: 0;
	pointer-events: none;
	transition: opacity 220ms ease, transform 220ms ease;
}

/* Bubble arrow */
.sticky-whatsapp__bubble::after {
	content: "";
	position: absolute;
	top: 50%;
	right: -8px;
	transform: translateY(-50%);
	width: 0;
	height: 0;
	border-top: 8px solid transparent;
	border-bottom: 8px solid transparent;
	border-left: 10px solid #ffffff;
}

/* Show bubble on hover */
.sticky-whatsapp:hover .sticky-whatsapp__bubble {
	opacity: 1;
	transform: translateY(50%) translateX(0);
}

/* Also show bubble briefly on load */
@media (min-width: 769px) {
	.sticky-whatsapp__bubble {
		animation: sp-whatsapp-bubble-in 7s ease-in-out infinite;
	}
}

/* Bubble appears for a moment then hides */
@keyframes sp-whatsapp-bubble-in {
	0%, 12% {
		opacity: 1;
		transform: translateY(50%) translateX(0);
	}
	20%, 100% {
		opacity: 0;
		transform: translateY(50%) translateX(10px);
	}
}

/* Hide on tablets & mobile */
@media (max-width: 768px) {
	.sticky-whatsapp {
		display: none;
	}
}

/* ===== Universal Pop-up ===== */
.sp-modal { display:none; }
.sp-modal.is-open { display:block; }

.sp-modal__overlay{
	position:fixed;
	inset:0;
	background:rgba(0,0,0,.70);
	z-index:9998;
}

.sp-modal__panel{
	position:fixed;
	left:50%;
	top:50%;
	transform:translate(-50%, -50%);
	width:min(760px, calc(100vw - 32px));
	background:#fff;
	border-radius:18px;
	box-shadow:0 24px 80px rgba(0,0,0,.25);
	z-index: 9999999;
	overflow:hidden;
}

.sp-modal__header{
	background: var(--main-clr); /* soft aqua like ref */
	padding:22px 24px 18px;
}

.sp-modal__title{
	margin:0;
	font-size:44px;
	line-height:1.05;
	letter-spacing:-0.02em;
	color: #fff; /* deep purple */
	font-weight: 300;
	padding: 0 0 10px 0;
}

.sp-modal__intro{
	margin:10px 0 0;
	color: #fff;
	font-size:15px;
	max-width:60ch;
	padding: 0;
}

.sp-modal__close{
	position:absolute;
	right:14px;
	top:10px;
	width:40px;
	height:40px;
	border:0;
	background:transparent;
	font-size:34px;
	line-height:40px;
	cursor:pointer;
	color: #ffff;
}

.sp-modal__options{
	padding:22px 24px 26px;
	display:grid;
	gap:18px;
}

.sp-option{
	display:flex;
	align-items:center;
	gap:16px;
	width:100%;
	text-align:left;
	background:#f7f7fb;
	border:2px solid #4b1b56;
	border-radius:18px;
	padding:18px 18px;
	cursor:pointer;
	transition:transform .15s ease, box-shadow .15s ease;
}

.sp-option:hover{
	transform:translateY(-1px);
	box-shadow:0 12px 28px rgba(0,0,0,.10);
}

.sp-option__icon{
	width:46px;
	height:46px;
	border-radius:50%;
	border:2px solid #4b1b56;
	display:flex;
	align-items:center;
	justify-content:center;
	color:#4b1b56;
	background:#fff;
	flex:0 0 auto;
}

.sp-option__title{
	display:block;
	font-weight: 400;
	font-size: 24px;
	color:#4b1b56;
}

.sp-option__sub{
	display:block;
	margin-top:6px;
	font-size:14px;
	color:#4b1b56;
	opacity:.85;
}

.sp-modal__back{
	border:0;
	background:transparent;
	color: #fff;
	font-weight: 300;
	cursor:pointer;
	margin:0 0 10px;
	padding:0;
}

.sp-modal__form{
	padding:18px 24px 26px;
}

/* Desktop only trigger behaviour is in JS + button visibility.
   But modal itself can still open on mobile if you want; if you want to fully disable:
*/
@media (max-width: 768px){
	/* comment out if you DO want it on mobile */
	/* .sp-modal.is-open{ display:none !important; } */
}
