body {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

.site-content {
    flex: 1 0 auto;
}

.elementor-location-footer {
    flex-shrink: 0;
}

.elementor-location-single:has(.full-height-section) {
    flex: 1 0 auto;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

main:has(.full-height-section) {
    flex: 1 0 auto;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

a {
    outline-style: none !important;
}

.red-color {
	color: var(--e-global-color-1374ffa);
}

.brand-red-800 {
	color: var(--e-global-color-1374ffa);
}

a.brand-red-800:hover {
	color: var(--e-global-color-1079eaf);
}

.body-x-small {
	font-size: var(--e-global-typography-f05f7c7-font-size);
	font-weight: var(--e-global-typography-f05f7c7-font-weight);
	line-height: var(--e-global-typography-f05f7c7-line-height);
	font-family: var(--e-global-typography-f05f7c7-font-family);
}

#breadcrumbs img {
	margin: 0 6px;
}

.elementor-widget-n-accordion .e-n-accordion summary.e-n-accordion-item-title {
	transition: all .8s ease;
}

.contact-btn .elementor-button-icon svg {
    width: 18px;
    height: 18px;
}

.contact-btn a:hover .elementor-button-icon svg,
.contact-btn a:focus .elementor-button-icon svg {
    fill: none !important;
}

.has-icon a:hover .elementor-button-icon svg {
	fill: none !important;
}

.main-menu-popup {
	z-index: 10;
}

.accent-header-menu-link:hover {
    cursor: pointer;
}

.service-btn .elementor-button-icon,
.contact-btn .elementor-button-icon {
	transition: all .8s ease;
}

.service-btn:hover .elementor-button-icon,
.service-btn.active .elementor-button-icon,
.contact-btn:hover .elementor-button-icon,
.contact-btn.active .elementor-button-icon {
    transform: rotate(-180deg);
}

.service-card .service-card-title span,
.service-card .service-card-descr,
.service-card .service-card-icon-block,
.service-card:hover .service-card-icon-block svg path {
	transition: all .8s ease !important;
}

.service-card:hover .service-card-title span,
.service-card:hover .service-card-descr {
	color: var(--e-global-color-761b596) !important;
}

.service-card:hover .service-card-icon-block {
	background-color: var(--e-global-color-primary) !important;
}

.service-card:hover .service-card-icon-block svg path {
	stroke: var(--e-global-color-761b596) !important;
}



/* ----- Стили формы ----- */

.custom-form input.elementor-field {
  color: var(--e-global-color-primary) !important;
}

label.elementor-field-label {
    position: absolute;
    top: 8px;
    left: 25px;
    transition: all .8s ease;
    visibility: hidden;
    opacity: 0;
}

.elementor-field-group.visible-label .elementor-field-label,
.elementor-field-group.focus-label .elementor-field-label {
  visibility: visible;
  opacity: 1;
}

.elementor-field-group.visible-label input,
.elementor-field-group.focus-label input,
.elementor-field-group.visible-label textarea,
.elementor-field-group.focus-label textarea {
	padding-bottom: 8px !important;
    padding-top: 28px !important;
}

.elementor-field-group.visible-label input {
	background-color: #ffffff !important;
}

.custom-form button {
	transition: all .8s ease;
	width: 100%;
}

.elementor-field-type-acceptance {
	order: 1;
}

.elementor-field-group.elementor-column.elementor-field-type-submit.e-form__buttons {
    margin-bottom: 10px !important;
}

/* ----- Начало стилей чекбокса ----- */
.elementor-field-type-acceptance label.elementor-field-label.elementor-screen-only {
    display: none;
}

.elementor-field-type-acceptance input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.elementor-field-type-acceptance label {
    display: flex !important;
    align-items: center;
    position: relative;
    padding-left: 28px;
    padding-top: 2px;
}

.elementor-field-type-acceptance label::before {
  content: "";
  position: absolute;
  left: 0;
  top: 11px;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  border-radius: 6px;
  border: 1.5px solid rgba(23, 23, 23, 0.4); /* #17171766 */
  background: #fff;
  transition: all 0.2s ease;
}

/* Hover */
.elementor-field-type-acceptance input[type="checkbox"]:hover + label::before {
  border-color: var(--e-global-color-1374ffa);
}

/* Checked */
.elementor-field-type-acceptance input[type="checkbox"]:checked + label::before {
  background: var(--e-global-color-1374ffa);
  border-color: var(--e-global-color-1374ffa);
}

/* Галочка */
.elementor-field-type-acceptance input[type="checkbox"]:checked + label::after {
  content: "";
  position: absolute;
  left: 8px;
  top: 10px;
  transform: translateY(-50%) rotate(45deg);
  width: 5px;
  height: 10px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
}
/* ----- Конец стилей чекбокса ----- */


/* ---------- MOBILE MENU CSS ---------- */
.mob-menu-open svg {
    overflow: visible !important;
}
.mob-menu-open svg path {
    transition: 
        transform 0.8s ease,
        opacity 0.8s ease,
        stroke-dashoffset 0.8s ease;
    transform-origin: center;
}
.mob-menu-open.active svg path:nth-child(1) {
    transform: translateY(1px) rotate(46deg);
}
.mob-menu-open.active svg path:nth-child(2) {
    opacity: 0;
}
.mob-menu-open.active svg path:nth-child(3) {
    transform: translateY(-7px) rotate(-46deg);
}
/* ----- END ------ */

/* ----- FOOTER ----- */
@media (max-width: 768px) {
	.footer-services-btn,
	.footer-navigation-btn {
		display: inline-flex;
        align-items: center;
		color: var(--e-global-color-1374ffa) !important;
		transition: all .8s ease;
	}
	.footer-services-btn:after,
	.footer-navigation-btn:after {
		content: url('/wp-content/uploads/2025/12/red-dowm-arrow.svg');
		display: inline-block;
		width: 19px;
		height: 27px;
		padding-top: 4px;
	}
	.footer-services-btn.active:after,
	.footer-navigation-btn.active:after {
		Transform: rotate(-180deg);
	}
	.footer-services-menu,
	.footer-navigation-menu {
		max-height: 0;
		overflow: hidden;
		opacity: 0;
		transition: max-height 0.8s ease, opacity 0.8s ease !important;
	}
}

/* ------ FOOTER END ----- */

ul li {
	line-height: 1.8;
}
.custom-ul ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.custom-ul ul li {
    position: relative;
    padding-left: 36px;
    margin-bottom: 10px;
}

.custom-ul ul li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 11px;
    width: 8px;
    height: 8px;
    background: rgba(213, 32, 36, 1);
    border-radius: 50%;
}

.advantages-list .elementor-icon-box-icon {
    padding-top: 15px;
}

@media (max-width: 768px) {
	.custom-ul ul li {
		padding-left: 24px;
	}
}