.hover-lift {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.hover-lift:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 20px rgba(0,0,0,0.1) !important;
}

.bg-gradient-to-t {
    background: linear-gradient(to top, rgba(0,0,0,0.8), transparent);
}

.letter-spacing-2 {
    letter-spacing: 2px;
}

/* Map Pointer Events Fix */
.map-wrapper {
    position: relative;
    overflow: hidden;
    touch-action: auto;
}

.map-frame {
    width: 100%;
    height: 100%;
    border: 0;
    pointer-events: none;
    transition: filter 0.3s ease;
}

.map-wrapper.active .map-frame {
    pointer-events: auto;
    filter: grayscale(0) contrast(1) !important;
}

.map-wrapper:not(.active):hover::before {
    content: 'Нажмите, чтобы управлять картой';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: rgba(0,0,0,0.7);
    color: #fff;
    padding: 12px 24px;
    border-radius: 8px;
    font-size: 14px;
    z-index: 10;
    pointer-events: none;
}

.map-wrapper.active::before {
    display: none;
}

.contacts-section .wpcf7 .form-control-lg,
.contacts-section .wpcf7 .form-select-lg {
    font-size: 1rem;
    padding: 0.7rem 0.9rem;
}

.contacts-section .wpcf7 textarea.form-control-lg {
    min-height: 110px;
}

@media (max-width: 768px) {
	.contacts-section .col-lg-7 {
		min-height: 300px !important;
	}
	.contacts-section .map-wrapper {
		min-height: 180px !important;
		height: 180px !important;
	}
	.contacts-section .position-absolute.bottom-0 {
		position: relative !important;
		background: var(--color-primary) !important;
	}
}

@media (max-width: 576px) {
	.contacts-section .col-lg-5 { padding: 1.5rem 1rem !important; }
	.contacts-section h2 { font-size: 1.25rem !important; margin-bottom: 0.75rem !important; }
	.contacts-section p { font-size: 0.85rem !important; line-height: 1.3 !important; margin-bottom: 1rem !important; }
	.contact-form .form-control-lg, .contact-form .form-select-lg { font-size: 0.9rem !important; padding: 0.625rem 0.75rem !important; }
	.contacts-section .wpcf7 .form-control-lg, .contacts-section .wpcf7 .form-select-lg { font-size: 0.9rem !important; padding: 0.625rem 0.75rem !important; }
	.contact-form label { font-size: 0.8rem !important; }
	.contact-form .btn-lg { padding: 0.625rem 1rem !important; font-size: 0.9rem !important; }
	.contact-form .form-check-label { font-size: 0.7rem !important; line-height: 1.3 !important; }

	.map-wrapper { min-height: 180px !important; height: 180px !important; }
	.map-wrapper ~ div { padding: 0.75rem !important; }
	.map-wrapper ~ div h4 { font-size: 0.7rem !important; margin-bottom: 0.4rem !important; }
	.map-wrapper ~ div h3 { font-size: 0.95rem !important; margin-bottom: 0.2rem !important; }
	.map-wrapper ~ div h5 { font-size: 0.85rem !important; }
	.map-wrapper ~ div p.lead { font-size: 0.75rem !important; line-height: 1.2 !important; }
	.map-wrapper ~ div .small { font-size: 0.6rem !important; }
}

/* Social Icons Footer */
.social-icon {
    transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.social-icon:hover {
    background-color: var(--color-primary) !important;
    transform: translateY(-3px) scale(1.05);
}

/* Social Icons (Images) */
.social-link {
    display: inline-block;
    transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.social-link:hover {
    transform: scale(1.05);
}
