/* Elementor Phone Mask — оформление поля и выпадающего списка стран.
 *
 * Все размеры и цвета вынесены в переменные на :root — их можно переопределить
 * в настройках плагина или своим CSS (Внешний вид → Настроить → Дополнительные стили):
 *
 *   :root {
 *     --epm-flag-w:        22px;  размер флага в поле
 *     --epm-flag-list-w:   24px;  размер флага в списке
 *     --epm-dd-width:     300px;  ширина списка
 *     --epm-dd-height:    280px;  максимальная высота списка
 *     --epm-dd-font:       14px;  размер текста в списке
 *     --epm-radius:         8px;  скругление списка
 *     --epm-bg / --epm-text / --epm-muted / --epm-hover / --epm-border / --epm-danger
 *   }
 *
 * ВАЖНО про !important. Темы сплошь и рядом красят все button и span внутри форм,
 * причём сами с !important — и кнопка с флагом превращается в цветную «пилюлю».
 * Поэтому структурные свойства своих элементов плагин задаёт принудительно
 * и с повышенной специфичностью (класс продублирован). Чтобы это не мешало
 * настройке, ЗНАЧЕНИЯ берутся из переменных: переопределяйте переменную,
 * а не свойство. Фоновая картинка флага при этом не трогается — её ставит JS.
 */

:root {
	--epm-flag-w: 22px;
	--epm-flag-list-w: 24px;
	--epm-flag-ratio: 0.75;
	--epm-flag-radius: 2px;

	/* Попапы Elementor и виджеты чатов встречаются с z-index: 2147483647 —
	   это максимум, больше не бывает. Встаём на тот же уровень, а поверх
	   выходим за счёт порядка в DOM: JS переносит список в конец <body>. */
	--epm-dd-z: 2147483647;
	--epm-toast-z: 2147483647;

	--epm-dd-width: 300px;
	--epm-dd-height: 280px;
	--epm-dd-font: 14px;
	--epm-radius: 8px;

	--epm-toggle-bg: transparent;
	--epm-toggle-pad-left: 10px;
	--epm-toggle-pad-right: 8px;
	--epm-toggle-gap: 4px;
	/* Цвет стрелки. По умолчанию JS подставляет сюда цвет текста самого поля —
	   иначе в тёмном попапе получалась белая стрелка на белом инпуте. */
	--epm-caret-color: #7a7f87;

	--epm-bg: #fff;
	--epm-text: #1f2124;
	--epm-muted: #7a7f87;
	--epm-hover: rgba(0, 0, 0, .06);
	--epm-border: rgba(0, 0, 0, .12);
	--epm-danger: #d64545;
}

/* ------------------------------------------------------------------ *
 * Поле
 * ------------------------------------------------------------------ */

.epm-wrap.epm-wrap {
	position: relative !important;
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	height: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	box-shadow: none !important;
	float: none !important;
	flex-grow: 1;
	flex-basis: 100%;
}

/* Отступ под флаг.
 *
 * Запасное значение собрано ровно из тех же переменных, из которых складывается
 * ширина кнопки, поэтому вёрстка правильная сразу — ещё до того, как отработает
 * JS. JS потом кладёт в --epm-gutter измеренную ширину, что важно для эмодзи-флагов
 * и режима «без флагов», где ширина заранее неизвестна.
 *
 * Свойство ставится принудительно: темы любят задавать полям padding с !important.
 * Чтобы задать отступ вручную, переопределите переменную --epm-gutter,
 * а не padding-left. */
.epm-wrap > .epm-input.epm-input {
	width: 100% !important;
	padding-left: var(--epm-gutter, calc(
		var(--epm-flag-w) +
		var(--epm-toggle-pad-left) +
		var(--epm-toggle-pad-right) +
		var(--epm-toggle-gap) +
		10px /* стрелка (8px) + зазор до текста */
	)) !important;
}

/* Без выпадающего списка стрелки нет */
.epm-wrap--static > .epm-input.epm-input {
	padding-left: var(--epm-gutter, calc(
		var(--epm-flag-w) +
		var(--epm-toggle-pad-left) +
		var(--epm-toggle-pad-right) +
		2px
	)) !important;
}

/* ------------------------------------------------------------------ *
 * Кнопка с флагом — самое уязвимое место: это <button> внутри формы
 * ------------------------------------------------------------------ */

.epm-wrap > .epm-toggle.epm-toggle {
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	right: auto !important;
	bottom: 0 !important;
	z-index: 2 !important;

	display: flex !important;
	align-items: center !important;
	justify-content: flex-start !important;
	gap: var(--epm-toggle-gap) !important;
	float: none !important;

	width: auto !important;
	min-width: 0 !important;
	max-width: none !important;
	height: auto !important;
	min-height: 0 !important;
	max-height: none !important;

	margin: 0 !important;
	padding: 0 var(--epm-toggle-pad-right) 0 var(--epm-toggle-pad-left) !important;

	border: 0 !important;
	border-radius: 0 !important;
	background: var(--epm-toggle-bg) !important;
	box-shadow: none !important;
	outline: none !important;
	filter: none !important;
	transform: none !important;
	transition: none !important;
	opacity: 1 !important;
	visibility: visible !important;
	overflow: visible !important;

	color: inherit !important;
	font: inherit !important;
	line-height: 1 !important;
	letter-spacing: normal !important;
	text-transform: none !important;
	text-indent: 0 !important;
	text-decoration: none !important;
	white-space: nowrap !important;

	cursor: var(--epm-toggle-cursor, pointer) !important;
	pointer-events: var(--epm-toggle-events, auto) !important;
	-webkit-appearance: none !important;
	appearance: none !important;
}

/* Тема любит рисовать ::before/::after у кнопок — гасим */
.epm-wrap > .epm-toggle.epm-toggle::before,
.epm-wrap > .epm-toggle.epm-toggle::after {
	content: none !important;
	display: none !important;
}

.epm-wrap > .epm-toggle.epm-toggle:hover,
.epm-wrap > .epm-toggle.epm-toggle:focus,
.epm-wrap > .epm-toggle.epm-toggle:active {
	background: var(--epm-toggle-bg) !important;
	box-shadow: none !important;
	transform: none !important;
	outline: none !important;
}

.epm-wrap > .epm-toggle.epm-toggle:focus-visible {
	outline: 2px solid var(--epm-border) !important;
	outline-offset: -2px !important;
}

.epm-wrap--static {
	--epm-toggle-cursor: default;
	--epm-toggle-events: none;
}

/* ------------------------------------------------------------------ *
 * Флаг. background-image намеренно НЕ трогаем — его ставит JS
 * (и тоже с приоритетом important), иначе тема гасит картинку.
 * ------------------------------------------------------------------ */

.epm-wrap .epm-flag.epm-flag,
.epm-dropdown .epm-flag.epm-flag {
	display: inline-block !important;
	flex: 0 0 auto !important;
	position: static !important;
	float: none !important;

	width: var(--epm-flag-w) !important;
	height: calc(var(--epm-flag-w) * var(--epm-flag-ratio)) !important;
	min-width: 0 !important;
	max-width: none !important;
	min-height: 0 !important;
	max-height: none !important;

	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: var(--epm-flag-radius) !important;

	background-color: transparent !important;
	background-size: cover !important;
	background-position: center center !important;
	background-repeat: no-repeat !important;
	background-origin: padding-box !important;
	background-clip: border-box !important;

	line-height: calc(var(--epm-flag-w) * var(--epm-flag-ratio)) !important;
	font-size: calc(var(--epm-flag-w) * 0.78) !important;
	font-family: "Twemoji Country Flags", "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif !important;
	font-weight: normal !important;
	text-align: center !important;
	text-indent: 0 !important;
	vertical-align: middle !important;
	white-space: nowrap !important;

	opacity: 1 !important;
	visibility: visible !important;
	transform: none !important;
	overflow: hidden !important;
	box-shadow: none !important;
}

/* Картинка: подложка и тонкая рамка, чтобы белый флаг не сливался с фоном */
.epm-wrap .epm-flag--cdn.epm-flag,
.epm-dropdown .epm-flag--cdn.epm-flag {
	background-color: var(--epm-hover) !important;
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .08) !important;
	font-size: 0 !important;
}

/* Режим «без флагов» — вместо картинки код страны текстом */
.epm-wrap .epm-flag--none.epm-flag,
.epm-dropdown .epm-flag--none.epm-flag {
	width: auto !important;
	font-size: calc(var(--epm-flag-w) * 0.5) !important;
	font-weight: 600 !important;
	font-family: inherit !important;
	letter-spacing: .04em !important;
	color: var(--epm-muted) !important;
	background-color: transparent !important;
	box-shadow: none !important;
}

/* Стрелка */
.epm-wrap .epm-caret.epm-caret {
	display: block !important;
	position: static !important;
	width: 0 !important;
	height: 0 !important;
	min-width: 0 !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	background: none !important;
	border-left: 4px solid transparent !important;
	border-right: 4px solid transparent !important;
	border-top: 5px solid var(--epm-caret-color, var(--epm-muted)) !important;
	border-bottom: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	opacity: .45 !important;
	transition: transform .15s ease, opacity .15s ease !important;
	font-size: 0 !important;
	line-height: 0 !important;
}

.epm-wrap--open .epm-caret.epm-caret {
	transform: rotate(180deg) !important;
	opacity: .8 !important;
}

/* Ошибка */
.epm-wrap--error > .epm-input {
	border-color: var(--epm-danger) !important;
}

/* Всплывающая подсказка: лежит в <body>, вёрстку не двигает */
.epm-toast.epm-toast {
	position: fixed !important;
	z-index: var(--epm-toast-z) !important;
	display: none;
	box-sizing: border-box !important;
	width: auto !important;
	max-width: min(280px, calc(100vw - 16px)) !important;
	margin: 0 !important;
	padding: 7px 11px !important;
	border: 0 !important;
	border-radius: calc(var(--epm-radius) * .75) !important;
	background: var(--epm-danger) !important;
	color: #fff !important;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
	font-size: 13px !important;
	font-weight: 400 !important;
	line-height: 1.35 !important;
	text-align: left !important;
	text-transform: none !important;
	box-shadow: 0 6px 20px rgba(0, 0, 0, .25) !important;
	pointer-events: none !important;
}

.epm-toast.epm-toast.is-open {
	display: block !important;
}

.epm-error.epm-error {
	display: block !important;
	width: 100% !important;
	margin: 5px 0 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	font-size: 13px !important;
	line-height: 1.4 !important;
	font-weight: normal !important;
	text-transform: none !important;
	color: var(--epm-danger) !important;
}

/* ------------------------------------------------------------------ *
 * Выпадающий список. Живёт в <body>, но темы задают стили и глобально,
 * поэтому структура тоже закреплена.
 * ------------------------------------------------------------------ */

.epm-dropdown.epm-dropdown {
	position: fixed !important;
	z-index: var(--epm-dd-z) !important;
	display: none;
	box-sizing: border-box !important;
	width: var(--epm-dd-width) !important;
	max-width: calc(100vw - 16px) !important;
	min-width: 0 !important;
	height: auto !important;
	max-height: none !important;
	margin: 0 !important;
	padding: 0 !important;
	background: var(--epm-bg) !important;
	color: var(--epm-text) !important;
	border: 1px solid var(--epm-border) !important;
	border-radius: var(--epm-radius) !important;
	box-shadow: 0 12px 34px rgba(0, 0, 0, .16), 0 2px 6px rgba(0, 0, 0, .08) !important;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
	font-size: var(--epm-dd-font) !important;
	line-height: 1.35 !important;
	text-align: left !important;
	text-transform: none !important;
	overflow: hidden !important;
	transform: none !important;
	opacity: 1 !important;
}

.epm-dropdown.epm-dropdown.is-open {
	display: block !important;
}

.epm-dropdown__search {
	padding: 8px !important;
	margin: 0 !important;
	border: 0 !important;
	border-bottom: 1px solid var(--epm-border) !important;
	background: none !important;
}

.epm-dropdown .epm-dropdown__search input {
	box-sizing: border-box !important;
	display: block !important;
	width: 100% !important;
	max-width: none !important;
	height: calc(var(--epm-dd-font) + 20px) !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 10px !important;
	border: 1px solid var(--epm-border) !important;
	border-radius: calc(var(--epm-radius) * .6) !important;
	background: var(--epm-bg) !important;
	color: inherit !important;
	font: inherit !important;
	line-height: normal !important;
	text-transform: none !important;
	box-shadow: none !important;
	outline: none !important;
	-webkit-appearance: none !important;
	appearance: none !important;
}

.epm-dropdown .epm-dropdown__search input:focus {
	border-color: var(--epm-muted) !important;
	box-shadow: none !important;
}

.epm-dropdown__list {
	max-height: var(--epm-dd-height) !important;
	overflow-y: auto !important;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
	margin: 0 !important;
	padding: 0 !important;
}

.epm-dropdown .epm-option {
	display: flex !important;
	align-items: center !important;
	gap: 10px !important;
	width: auto !important;
	margin: 0 !important;
	padding: 7px 12px !important;
	border: 0 !important;
	background: none !important;
	color: inherit !important;
	font: inherit !important;
	text-transform: none !important;
	cursor: pointer !important;
	user-select: none !important;
	list-style: none !important;
}

.epm-dropdown .epm-option .epm-flag.epm-flag {
	width: var(--epm-flag-list-w) !important;
	height: calc(var(--epm-flag-list-w) * var(--epm-flag-ratio)) !important;
	line-height: calc(var(--epm-flag-list-w) * var(--epm-flag-ratio)) !important;
	font-size: calc(var(--epm-flag-list-w) * 0.78) !important;
}

.epm-dropdown .epm-option .epm-flag--cdn.epm-flag {
	font-size: 0 !important;
}

.epm-dropdown .epm-option .epm-flag--none.epm-flag {
	width: calc(var(--epm-flag-list-w) * 1.4) !important;
	font-size: calc(var(--epm-flag-list-w) * 0.5) !important;
}

.epm-dropdown .epm-option--divided {
	border-top: 1px solid var(--epm-border) !important;
	margin-top: 4px !important;
	padding-top: 11px !important;
}

.epm-dropdown .epm-option:hover,
.epm-dropdown .epm-option.is-active {
	background: var(--epm-hover) !important;
}

.epm-dropdown .epm-option.is-selected {
	font-weight: 600 !important;
}

.epm-dropdown .epm-option__name {
	flex: 1 1 auto !important;
	min-width: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	background: none !important;
	color: inherit !important;
	font: inherit !important;
	overflow: hidden !important;
	text-overflow: ellipsis !important;
	white-space: nowrap !important;
}

.epm-dropdown .epm-option__dial {
	flex: 0 0 auto !important;
	margin: 0 !important;
	padding: 0 !important;
	background: none !important;
	font: inherit !important;
	color: var(--epm-muted) !important;
	font-variant-numeric: tabular-nums;
}

.epm-dropdown__empty {
	padding: 14px 12px !important;
	color: var(--epm-muted) !important;
	text-align: center !important;
	background: none !important;
}

/* Тёмная тема. Цвета из настроек плагина приходят селектором :root:root
 * и перебивают этот блок — но только те переменные, которые реально заданы. */
@media (prefers-color-scheme: dark) {
	:root {
		--epm-bg: #22252a;
		--epm-text: #e8eaed;
		--epm-muted: #9aa0a8;
		--epm-hover: rgba(255, 255, 255, .08);
		--epm-border: rgba(255, 255, 255, .14);
	}

	.epm-dropdown.epm-dropdown {
		box-shadow: 0 12px 34px rgba(0, 0, 0, .5) !important;
	}
}
