/* ==========================================================================
   Smart Shield Site plugin — quote form, mobile contact bar, assistant fallback
   (kept in the plugin so these features look right with any theme)
   ========================================================================== */

/* ---------- Quote form ---------- */
.ss-quote { color: #0b1f3a; }
.ss-quote-title { font-size: 1.35rem; font-weight: 800; margin: 0 0 16px; letter-spacing: -.01em; }
.ss-quote-form { margin: 0; }
.ss-field-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 14px; }
.ss-field { margin: 0 0 14px !important; }
.ss-field label { display: block; font-size: .85rem; font-weight: 700; margin-bottom: 6px; color: #0b1f3a; }
.ss-field input,
.ss-field select,
.ss-field textarea {
	width: 100%;
	box-sizing: border-box;
	min-height: 50px;
	padding: 12px 14px;
	border: 1.5px solid #dce6f3;
	border-radius: 14px;
	background: #f7faff;
	font: inherit;
	font-size: 1rem; /* 16px+ prevents zoom on iPhone */
	color: #0b1f3a;
	transition: border-color .2s, box-shadow .2s, background .2s;
}
.ss-field textarea { min-height: 110px; resize: vertical; }
.ss-field input:focus,
.ss-field select:focus,
.ss-field textarea:focus {
	outline: none;
	border-color: #1f6fe5;
	background: #fff;
	box-shadow: 0 0 0 4px rgba(31, 111, 229, .15);
}
.ss-quote-submit { margin: 6px 0 0 !important; }
.ss-quote-button {
	width: 100%;
	min-height: 54px;
	border: 0;
	border-radius: 999px;
	background: linear-gradient(120deg, #2f5bff 0%, #1f8ff0 55%, #12c2e9 100%);
	color: #fff;
	font: inherit;
	font-size: 1.05rem;
	font-weight: 800;
	cursor: pointer;
	box-shadow: 0 12px 28px rgba(47, 91, 255, .35);
	transition: transform .2s, box-shadow .2s;
}
.ss-quote-button:hover { transform: translateY(-2px); box-shadow: 0 16px 34px rgba(47, 91, 255, .45); }
.ss-quote-button:focus-visible { outline: 3px solid #12c2e9; outline-offset: 3px; }
.ss-quote-small { font-size: .8rem; color: #56677b; margin: 10px 0 0 !important; text-align: center; }
.ss-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

.ss-quote-notice { padding: 14px 16px; border-radius: 14px; margin-bottom: 16px; font-size: .95rem; line-height: 1.5; }
.ss-quote-notice strong { display: block; }
.ss-quote-notice.is-success { background: #e7f8ef; color: #0d5132; border: 1px solid #bfe8d1; }
.ss-quote-notice.is-error { background: #fff1f0; color: #8a1f17; border: 1px solid #ffd2cc; }

@media (max-width: 600px) {
	.ss-field-row { grid-template-columns: 1fr; }
}

/* ---------- Mobile contact bar ---------- */
.ss-mobile-bar { display: none; }
@media (max-width: 781px) {
	.ss-mobile-bar {
		position: fixed; z-index: 999;
		left: 10px; right: 10px; bottom: max(10px, env(safe-area-inset-bottom));
		display: grid; grid-auto-flow: column; grid-auto-columns: 1fr;
		gap: 4px;
		padding: 6px;
		border-radius: 20px;
		background: rgba(7, 22, 41, .94);
		backdrop-filter: blur(14px);
		-webkit-backdrop-filter: blur(14px);
		box-shadow: 0 16px 40px rgba(7, 22, 41, .35);
	}
	.ss-mobile-bar a {
		display: flex; flex-direction: column; align-items: center; justify-content: center;
		gap: 4px;
		min-height: 56px;
		border-radius: 14px;
		color: #fff;
		text-decoration: none;
		font-size: .74rem;
		font-weight: 700;
		line-height: 1.1;
	}
	.ss-mobile-bar a:active { background: rgba(255, 255, 255, .1); }
	.ss-mobile-bar .ss-mb-quote { background: linear-gradient(120deg, #2f5bff 0%, #12c2e9 100%); }
	.ss-mb-icon {
		width: 22px; height: 22px;
		background: currentColor;
		-webkit-mask: var(--ss-mb) center / contain no-repeat;
		mask: var(--ss-mb) center / contain no-repeat;
	}
	.ss-mb-call { --ss-mb: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.7a2 2 0 0 1-.5 2.1L8 9.8a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E"); }
	.ss-mb-whatsapp { --ss-mb: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 11.5a8.4 8.4 0 0 1-12.4 7.4L3 21l2.1-5.4A8.4 8.4 0 1 1 21 11.5z'/%3E%3C/svg%3E"); }
	.ss-mb-quote { --ss-mb: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6M8 13h8M8 17h5'/%3E%3C/svg%3E"); }
	.ss-mb-talk { --ss-mb: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='9' y='2' width='6' height='12' rx='3'/%3E%3Cpath d='M19 10v1a7 7 0 0 1-14 0v-1M12 18v4'/%3E%3C/svg%3E"); }
	/* Telnyx "Let's chat" button is ~156px wide at the bottom-right: keep the bar beside it */
	.ss-mobile-bar.has-assistant { right: 166px; left: 8px; }
}

/* ---------- "Talk to Us" fallback panel (shown until the Telnyx widget is added) ---------- */
.ss-talk-panel {
	position: fixed; z-index: 1000;
	right: 20px; bottom: 20px;
	width: min(360px, calc(100vw - 40px));
	padding: 22px;
	border-radius: 22px;
	background: #fff;
	color: #0b1f3a;
	box-shadow: 0 30px 80px rgba(7, 22, 41, .35);
	border: 1px solid #dce6f3;
	animation: ss-panel-in .3s cubic-bezier(.2, .7, .2, 1);
}
@keyframes ss-panel-in { from { opacity: 0; transform: translateY(16px); } }
.ss-talk-panel h2 { font-size: 1.15rem; margin: 0 36px 6px 0; }
.ss-talk-panel p { margin: 0 0 14px; font-size: .93rem; color: #56677b; }
.ss-talk-panel .ss-talk-links { display: grid; gap: 8px; }
.ss-talk-panel .ss-talk-links a {
	display: flex; align-items: center; justify-content: center;
	min-height: 48px; border-radius: 999px;
	font-weight: 700; text-decoration: none;
	background: #eaf3ff; color: #0b1f3a;
}
.ss-talk-panel .ss-talk-links a:first-child { background: linear-gradient(120deg, #2f5bff 0%, #12c2e9 100%); color: #fff; }
.ss-talk-close {
	position: absolute; right: 12px; top: 12px;
	width: 40px; height: 40px;
	border: 0; border-radius: 50%;
	background: #f4f8fd; color: #0b1f3a;
	font-size: 1.3rem; line-height: 1; cursor: pointer;
}
@media (max-width: 781px) {
	.ss-talk-panel { left: 12px; right: 12px; width: auto; bottom: calc(86px + env(safe-area-inset-bottom)); }
}

/* ---------- Floating WhatsApp button (every page) ---------- */
.ss-wa-float {
	position: fixed; z-index: 998;
	left: 20px; bottom: 20px;
	display: inline-flex; align-items: center; gap: 10px;
	min-height: 52px;
	padding: 0 20px 0 14px;
	border-radius: 999px;
	background: #25d366;
	color: #fff !important;
	font-weight: 800;
	font-size: .98rem;
	text-decoration: none !important;
	box-shadow: 0 12px 30px rgba(18, 140, 70, .35);
	transition: transform .2s, box-shadow .2s;
}
.ss-wa-float:hover { transform: translateY(-3px); box-shadow: 0 16px 36px rgba(18, 140, 70, .45); color: #fff; }
.ss-wa-float:focus-visible { outline: 3px solid #0b1f3a; outline-offset: 3px; }
.ss-wa-icon {
	width: 28px; height: 28px; flex: none;
	background: #fff;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2zm0 18.2a8.2 8.2 0 0 1-4.2-1.2l-.3-.2-3 .8.8-2.9-.2-.3A8.2 8.2 0 1 1 12 20.2zm4.5-6.1c-.2-.1-1.5-.7-1.7-.8s-.4-.1-.6.1-.7.8-.8 1-.3.2-.5.1a6.7 6.7 0 0 1-3.3-2.9c-.3-.4.2-.4.7-1.4.1-.2 0-.3 0-.4l-.8-1.8c-.2-.5-.4-.4-.6-.4h-.5a1 1 0 0 0-.7.3 3 3 0 0 0-.9 2.2 5.2 5.2 0 0 0 1.1 2.7 11.8 11.8 0 0 0 4.5 4c1.7.7 2.3.8 3.2.6a2.7 2.7 0 0 0 1.8-1.3 2.2 2.2 0 0 0 .2-1.3c-.1-.1-.2-.2-.4-.3z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2zm0 18.2a8.2 8.2 0 0 1-4.2-1.2l-.3-.2-3 .8.8-2.9-.2-.3A8.2 8.2 0 1 1 12 20.2zm4.5-6.1c-.2-.1-1.5-.7-1.7-.8s-.4-.1-.6.1-.7.8-.8 1-.3.2-.5.1a6.7 6.7 0 0 1-3.3-2.9c-.3-.4.2-.4.7-1.4.1-.2 0-.3 0-.4l-.8-1.8c-.2-.5-.4-.4-.6-.4h-.5a1 1 0 0 0-.7.3 3 3 0 0 0-.9 2.2 5.2 5.2 0 0 0 1.1 2.7 11.8 11.8 0 0 0 4.5 4c1.7.7 2.3.8 3.2.6a2.7 2.7 0 0 0 1.8-1.3 2.2 2.2 0 0 0 .2-1.3c-.1-.1-.2-.2-.4-.3z'/%3E%3C/svg%3E") center / contain no-repeat;
}
@media (max-width: 781px) {
	/* Phones: round icon button sitting just above the contact bar */
	.ss-wa-float { left: 12px; bottom: calc(92px + env(safe-area-inset-bottom)); width: 56px; height: 56px; min-height: 56px; padding: 0; justify-content: center; }
	.ss-wa-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
}

/* Phones: the bottom bar already has WhatsApp, so hide the floating duplicate */
@media (max-width: 781px) {
	.ss-wa-float { display: none; }
}
