/* ELEMENTARNO front: базові стилі меню і форми (використовуються шорткодами плагіна) */

/* Меню [elm_menu].
   Типографіка — з глобального шрифту Elementor «Header / Menu» (elmhdr),
   який синхронізується з панелі ELEMENTARNO. Elementor друкує глобальні
   шрифти як CSS-змінні --e-global-typography-elmhdr-* (розмір — адаптивний,
   через медіазапити Kit). Фолбеки — наші токени, якщо Kit ще не згенеровано. */
.elm-menu__list {
	display: flex;
	gap: 28px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.elm-menu__list a {
	font-family: var(--e-global-typography-elmhdr-font-family, var(--elm-font-header));
	font-size: var(--e-global-typography-elmhdr-font-size, 15px);
	font-weight: var(--e-global-typography-elmhdr-font-weight, 500);
	line-height: var(--e-global-typography-elmhdr-line-height, 1.2);
	color: var(--e-global-color-text, var(--elm-text));
	text-decoration: none;
}
.elm-menu__list a:hover {
	color: var(--e-global-color-accent, var(--elm-accent));
}

/* Вертикальний варіант — для мобільного меню в попапі Elementor:
   [elm_menu direction="vertical"]. Типографіка та сама (elmhdr);
   вирівнювання/відступи донастроюються в попапі або власними класами. */
.elm-menu--vertical .elm-menu__list {
	flex-direction: column;
	align-items: flex-start;
	gap: 18px;
}
.elm-menu--vertical .elm-menu__list a {
	display: block;
}

/* Форма [elm_form] */
.elm-form { display: grid; gap: 12px; max-width: 440px; }
.elm-form input[type="text"],
.elm-form input[type="tel"],
.elm-form textarea {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid #d5d9e0;
	border-radius: var(--elm-radius-btn);
	font: inherit;
	background: #fff;
}
.elm-form input:focus,
.elm-form textarea:focus {
	outline: 2px solid var(--elm-accent);
	outline-offset: 1px;
	border-color: transparent;
}
.elm-form__consent {
	display: flex;
	gap: 8px;
	align-items: flex-start;
	font-size: 13px;
	color: var(--elm-muted);
}
.elm-form__submit {
	padding: 14px 22px;
	border: 0;
	border-radius: var(--elm-radius-btn);
	background: var(--elm-accent);
	color: #fff;
	font-weight: 600;
	font-size: 15px;
	cursor: pointer;
	transition: filter .15s ease;
}
.elm-form__submit:hover { filter: brightness(1.06); }
.elm-form__submit:disabled { opacity: .6; cursor: wait; }
.elm-form__status { min-height: 20px; font-size: 14px; }
.elm-form__status.is-success { color: #1a7f37; }
.elm-form__status.is-error { color: #d63638; }

/* Кнопки з іконкою-плашкою (клас на кнопці: elm-btn-icon; світлий варіант: + elm-btn-icon--light)
   Іконка-стрілка: assets/icons/arrow-right.svg (fill=currentColor, 11×10) */
.elm-btn-icon .elementor-button-content-wrapper {
	align-items: center;
	gap: 10px;
}
.elm-btn-icon .elementor-button-icon {
	width: 30px;
	height: 30px;
	border-radius: 4px;
	background-color: var(--elm-light, #fff);
	display: flex;
	justify-content: center;
	align-items: center;
	flex: none;
}
.elm-btn-icon .elementor-button-icon svg {
	width: 11px;
	height: 10px;
	fill: var(--elm-primary);
	color: var(--elm-primary);
}

/* Світла кнопка: текст темний (задається в Elementor), плашка — акцентний фон, іконка біла */
.elm-btn-icon--light .elementor-button-icon {
	background-color: var(--elm-accent);
}
.elm-btn-icon--light .elementor-button-icon svg {
	fill: var(--elm-light, #fff);
	color: var(--elm-light, #fff);
}

/* Плашка primary, іконка світла (світла кнопка на Hero тощо) */
.elm-btn-icon--primary .elementor-button-icon {
	background-color: var(--elm-primary);
}
.elm-btn-icon--primary .elementor-button-icon svg {
	fill: var(--elm-light, #fff);
	color: var(--elm-light, #fff);
}

/* Плашка акцентна, іконка primary — на випадок інверсії в майбутніх дизайнах */
.elm-btn-icon--accent .elementor-button-icon {
	background-color: var(--elm-accent);
}
.elm-btn-icon--accent .elementor-button-icon svg {
	fill: var(--elm-primary);
	color: var(--elm-primary);
}

/* Інлайн-іконки [elm render="svg"] — колір через currentColor */
.elm-icon {
	display: inline-flex;
	line-height: 0;
	color: inherit;
}

/* Соцмережі [elm_socials] */
.elm-socials {
	display: flex;
	gap: 12px;
	align-items: center;
}
/* Готові кольорові варіанти (селектор на лінку, щоб перебивати правило Kit для <a>).
   Простіше: [elm_socials color="accent"] — inline-стиль, працює завжди. */
.elm-socials--accent .elm-socials__link { color: var(--elm-accent); }
.elm-socials--light .elm-socials__link { color: var(--elm-light, #fff); }
.elm-socials--primary .elm-socials__link { color: var(--elm-primary); }
.elm-socials--gray .elm-socials__link { color: var(--elm-gray, #646464); }
.elm-socials__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: inherit;
	line-height: 0;
	transition: color .15s ease, background .15s ease, transform .15s ease;
}
.elm-socials__link:hover {
	color: var(--elm-accent);
	transform: translateY(-1px);
}
.elm-socials--circle .elm-socials__link {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: color-mix(in srgb, currentColor 12%, transparent);
}
.elm-socials--circle .elm-socials__link:hover {
	background: var(--elm-accent);
	color: var(--elm-light, #fff);
	transform: none;
}

/* Contact Form 7 у стилі DOBA. Обгортка з класом elm-cf7 — всередині коду
   форми CF7 (див. шаблон форми в документації). */
.elm-cf7 label {
	display: block;
	margin: 0 0 18px;
	font-size: 15px;
	font-weight: 500;
	color: var(--elm-text);
}
.elm-cf7 .wpcf7-form-control-wrap {
	display: block;
	margin-top: 8px;
	font-weight: 400;
}
.elm-cf7 input[type="text"],
.elm-cf7 input[type="tel"],
.elm-cf7 input[type="email"],
.elm-cf7 textarea {
	width: 100%;
	padding: 14px 16px;
	border: 1px solid #D5D9E0;
	border-radius: var(--elm-radius-btn, 8px);
	font: inherit;
	font-size: 15px;
	color: var(--elm-text);
	background: var(--elm-light, #fff);
	box-sizing: border-box;
}
.elm-cf7 ::placeholder { color: var(--elm-muted); opacity: 1; }
.elm-cf7 input:focus,
.elm-cf7 textarea:focus {
	outline: 2px solid var(--elm-accent);
	outline-offset: 1px;
	border-color: transparent;
}
.elm-cf7 textarea { min-height: 120px; resize: vertical; }
.elm-cf7 .wpcf7-not-valid { border-color: #d63638; }
.elm-cf7 .wpcf7-not-valid-tip { font-size: 13px; color: #d63638; margin-top: 4px; }

/* Кнопка: текст зліва, стрілка у плашці справа */
.elm-cf7__submit { position: relative; margin-top: 4px; }
.elm-cf7__submit .wpcf7-submit {
	width: 100%;
	padding: 16px 60px 16px 20px;
	border: 0;
	border-radius: var(--elm-radius-btn, 8px);
	background: var(--elm-primary);
	color: var(--elm-light, #fff);
	font-weight: 600;
	font-size: 15px;
	text-align: left;
	cursor: pointer;
	transition: filter .15s ease;
}
.elm-cf7__submit .wpcf7-submit:hover { filter: brightness(1.15); }
.elm-cf7__submit::after {
	content: "";
	position: absolute;
	right: 10px;
	top: 50%;
	transform: translateY(-50%);
	width: 32px;
	height: 32px;
	border-radius: 4px;
	background-color: rgba(255, 255, 255, .14);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='12' viewBox='0 0 18 12' fill='none'%3E%3Cpath d='M12 1l5 5-5 5M17 6H1' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 14px 10px;
	pointer-events: none;
}
.elm-cf7 .wpcf7-spinner { position: absolute; margin: 0; right: -34px; top: 14px; }
.elm-cf7 .wpcf7-response-output {
	margin: 14px 0 0;
	padding: 10px 14px;
	border-radius: var(--elm-radius-btn, 8px);
	font-size: 14px;
}

/* Плавний скрол до якорів лендінгу */
html { scroll-behavior: smooth; }
[id] { scroll-margin-top: 90px; }
