	.kg-contact-widget,
	.kg-contact-widget-mini,
	.kg-contact-widget *,
	.kg-contact-widget-mini * {
		box-sizing: border-box;
	}

	.kg-contact-widget {
		position: fixed;
		right: 24px;
		bottom: 24px;
		z-index: 9999;
		width: 365px;
		max-width: calc(100vw - 28px);
		opacity: 1;
		visibility: visible;
		transform: translateY(0) scale(1);
		transition: opacity .35s ease, transform .35s ease, visibility .35s ease;
		font-family: inherit;
	}

	.kg-contact-widget.is-hidden {
		opacity: 0;
		visibility: hidden;
		transform: translateY(20px) scale(.96);
		pointer-events: none;
	}

	.kg-contact-widget__inner {
		position: relative;
		padding: 22px 20px 18px;
		border-radius: 24px;
		background: #fff;
		border: 1px solid #e9eee7;
		box-shadow: 0 18px 45px rgba(20, 32, 22, .12);
		overflow: hidden;
	}

	.kg-contact-widget__inner::before {
		content: "";
		position: absolute;
		left: 0;
		top: 0;
		width: 100%;
		height: 4px;
		background: linear-gradient(90deg, #6aa84f 0%, #5c9c44 100%);
	}

	.kg-contact-widget__badge {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-height: 30px;
		padding: 0 12px;
		margin-bottom: 14px;
		border-radius: 999px;
		background: #f3f8f1;
		color: #6aa84f;
		font-size: 11px;
		font-weight: 700;
		letter-spacing: .06em;
		text-transform: uppercase;
	}

	.kg-contact-widget__title {
		margin: 0 42px 10px 0;
		color: #222;
		font-size: 24px;
		line-height: 1.2;
		font-weight: 700;
	}

	.kg-contact-widget__text {
		margin: 0 0 18px;
		color: #666;
		font-size: 14px;
		line-height: 1.6;
	}

	.kg-contact-widget__actions {
		display: flex;
		flex-direction: column;
		gap: 14px;
	}

	.kg-contact-widget__phone {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		gap: 10px;
		min-height: 52px;
		padding: 0 18px;
		border-radius: 14px;
		background: #6aa84f;
		color: #fff;
		font-size: 16px;
		font-weight: 700;
		text-decoration: none;
		box-shadow: 0 10px 20px rgba(106, 168, 79, .22);
		transition: background .25s ease, transform .25s ease, box-shadow .25s ease;
	}

	.kg-contact-widget__phone:hover {
		background: #5e9645;
		color: #fff;
		transform: translateY(-2px);
		box-shadow: 0 14px 28px rgba(106, 168, 79, .28);
	}

	.kg-contact-widget__phone-icon {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		flex: 0 0 auto;
	}

	.kg-contact-widget__socials {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		gap: 10px;
	}

	.kg-contact-widget__icon {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 48px;
		height: 48px;
		border-radius: 14px;
		background: #fff;
		border: 1px solid #edf1ec;
		box-shadow: 0 6px 18px rgba(20, 32, 22, .06);
		text-decoration: none;
		transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
	}

	.kg-contact-widget__icon:hover {
		transform: translateY(-2px);
		border-color: #d9e7d3;
		box-shadow: 0 10px 24px rgba(20, 32, 22, .10);
	}

	.kg-contact-widget__icon svg {
		display: block;
		width: 26px;
		height: 26px;
	}

	.kg-contact-widget__icon.telegram svg,
	.kg-contact-widget__icon.viber svg {
		width: 28px;
		height: 28px;
	}

	.kg-contact-widget__meta {
		margin-top: 16px;
		padding-top: 14px;
		border-top: 1px solid #edf1ec;
		color: #7a7a7a;
		font-size: 13px;
		line-height: 1.55;
	}

	.kg-contact-widget__close {
		position: absolute;
		top: 14px;
		right: 14px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 36px;
		height: 36px;
		padding: 0;
		border: 0;
		border-radius: 12px;
		background: #f5f7f4;
		color: #666;
		cursor: pointer;
		transition: background .25s ease, color .25s ease, transform .25s ease;
	}

	.kg-contact-widget__close:hover {
		background: #edf4ea;
		color: #6aa84f;
		transform: rotate(90deg);
	}

	.kg-contact-widget-mini {
		position: fixed;
		right: 24px;
		top: 18vh;
		z-index: 9998;
		opacity: 1;
		visibility: visible;
		transform: scale(1);
		transition: opacity .3s ease, transform .3s ease, visibility .3s ease;
	}

	.kg-contact-widget-mini.is-hidden {
		opacity: 0;
		visibility: hidden;
		transform: scale(.85);
		pointer-events: none;
	}

	.kg-contact-widget-mini__button {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 60px;
		height: 60px;
		padding: 0;
		border: 0;
		border-radius: 50%;
		background: #6aa84f;
		color: #fff;
		cursor: pointer;
		box-shadow: 0 14px 30px rgba(106, 168, 79, .28);
		transition: transform .25s ease, background .25s ease, box-shadow .25s ease;
	}

	.kg-contact-widget-mini__button:hover {
		background: #5e9645;
		transform: translateY(-2px) scale(1.03);
		box-shadow: 0 18px 34px rgba(106, 168, 79, .34);
	}

	.kg-contact-widget-mini__button svg {
		width: 28px;
		height: 28px;
	}

	@media (max-width: 767px) {

		.kg-contact-widget,
		.kg-contact-widget-mini {
			right: 14px;
			bottom: 14px;
		}

		.kg-contact-widget {
			width: calc(100vw - 28px);
			max-width: 355px;
		}

		.kg-contact-widget__inner {
			padding: 20px 16px 16px;
			border-radius: 20px;
		}

		.kg-contact-widget__title {
			font-size: 20px;
			margin-right: 38px;
		}

		.kg-contact-widget__text {
			font-size: 13px;
		}

		.kg-contact-widget__phone {
			min-height: 48px;
			font-size: 15px;
		}

		.kg-contact-widget__icon {
			width: 46px;
			height: 46px;
			border-radius: 12px;
		}

		.kg-contact-widget-mini__button {
			width: 56px;
			height: 56px;
		}
	}

	@media (prefers-reduced-motion: reduce) {

		.kg-contact-widget,
		.kg-contact-widget-mini,
		.kg-contact-widget__phone,
		.kg-contact-widget__icon,
		.kg-contact-widget__close,
		.kg-contact-widget-mini__button {
			transition: none !important;
		}
	}