/* ==========================================================
   v3-checkout.css — Shipping block (computed finals)
   Замінює: select2.css (shipping) + shipping-секцію everfox-checkout-v2.css
   ========================================================== */

/* Checkout: reset global site-container padding, apply only from 1024px */
@media (min-width: 481px) and (max-width: 1023px) {
	.woocommerce-checkout .site-container {
		padding: 0 6px;
	}
}
@media (min-width: 1024px) {
	.woocommerce-checkout .site-container {
		padding: 0 15px;
	}
}


/* Select2 base + кастомні стилі — в everfox-v2.css */


/* ==========================================================
   10. PLACE ORDER + FORM ROW
   ========================================================== */

#payment .place-order {
	padding: 12px 0;
}
.woocommerce form .form-row {
	margin: 0 0 15px;
}
#place_order {
	position: relative;
	overflow: hidden;
	width: 100%;
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0.5px;
	text-transform: uppercase;
}
#place_order::before {
	content: "";
	position: absolute;
	top: 0;
	left: -100px;
	width: 100px;
	height: 100%;
	background-image: linear-gradient(120deg, rgba(255,255,255,0) 30%, rgba(255,255,255,0.8), rgba(255,255,255,0) 70%);
	opacity: 0.6;
	pointer-events: none;
}
#place_order:hover::before {
	animation: shine-once 0.6s ease-in-out;
}
@keyframes shine-once {
	from { left: -100px; }
	to { left: 100%; }
}


/* ==========================================================
   11. COUPON + FOOTER
   ========================================================== */

.checkout-footer-wrapper {
	padding: 12px 10px;
}
/* Legacy coupon hide */
.coupon_inner_checkout,
.bt-coupon-checkout {
	display: none;
}
/* Toggle — сховати якщо купон застосовано */
.woocommerce-checkout:has(.cart-discount) .checkout-coupon-toggle {
	display: none;
}
.checkout-coupon-toggle {
	max-width: 190px;
	margin-bottom: 12px;
	border-bottom: 1px solid var(--EF-Color-Border-Medium, #DFE1E3);
	transition: border-color 0.2s, border-bottom-width 0.2s;
}
.checkout-coupon-toggle:focus-within {
	border-bottom-width: 2px;
	border-color: var(--EF-Color-Primary);
}
.cart-coupon-form .coupon-form-row {
	display: flex;
	align-items: flex-start;
	gap: 8px;
}
.cart-coupon-form .ef-field-group--float {
	flex: 1;
}
.cart-coupon-form .ef-input-wrap {
	border-bottom: none;
}
.cart-coupon-form .ef-input-wrap input {
	font-size: 14px;
	padding: 0;
	margin-top: 0;
}
.woocommerce-checkout form.checkout .cart-coupon-form .ef-float-label {
	font-size: 14px;
	left: 0;
	color: var(--EF-Color-Text-2, #535B65);
}
/* Label: "Є промокод ?" → при фокусі "Промокод !" */
/* "Є промокод ?" → при фокусі "Є промокод !" (only swap ? → !) */
/* Replace "?" → "!" on focus/filled (char 12) */
.cart-coupon-form input[name="coupon_code"]:focus ~ .ef-float-label .label-char:nth-child(12),
.cart-coupon-form input[name="coupon_code"]:not(:placeholder-shown) ~ .ef-float-label .label-char:nth-child(12) {
	font-size: 0;
}
.cart-coupon-form input[name="coupon_code"]:focus ~ .ef-float-label .label-char:nth-child(12)::after,
.cart-coupon-form input[name="coupon_code"]:not(:placeholder-shown) ~ .ef-float-label .label-char:nth-child(12)::after {
	content: "!";
	font-size: 14px;
}
/* Placeholder */
.cart-coupon-form input[name="coupon_code"]::placeholder {
	color: transparent;
	transition: color 0.2s ease 0.4s;
}
.cart-coupon-form input[name="coupon_code"]:focus::placeholder {
	color: var(--EF-Color-Text-2);
}
/* Submit button — SVG plus */
.cart-coupon-form .coupon-submit-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 16px;
	height: 16px;
	margin: 0;
	padding: 0;
	background: transparent;
	color: var(--EF-Color-Primary);
	cursor: pointer;
	transition: opacity 0.3s, background 0.2s;
	flex-shrink: 0;
	opacity: 0;
	pointer-events: none;
}
.cart-coupon-form .ef-field-group--float:has(input:not(:placeholder-shown)) ~ .coupon-submit-btn {
	opacity: 1;
	pointer-events: auto;
}
.cart-coupon-form .coupon-submit-btn:hover {
	background: var(--EF-Color-Surface-2);
}
.cart-coupon-form .coupon-submit-btn:active {
	background: var(--EF-Color-Surface-2);
	transform: scale(0.95);
}
.cart-coupon-form .coupon-submit-btn svg {
	width: 22px;
	height: 22px;
}
.cart-coupon-form .coupon-submit-btn.loading {
	opacity: 0.4;
	pointer-events: none;
}


/* ==========================================================
   12. PAYMENT METHODS — pill-контрол (рендерится PHP в лівій колонці)
   ========================================================== */

.everfox-payment-block {
	padding: 10px 8px 5px;
	border: 1px solid var(--EF-Color-Border-Light, #EBEDEF);
	background: var(--EF-Color-Surface, #fff);
	box-sizing: border-box;
}
#ef-payment-pills ul.payment_methods {
	display: flex;
	width: 100%;
	padding: 0;
	gap: 2px;
	margin: 0 0 6px;
	border: 1px solid var(--EF-Color-Border-Light);
	border-radius: 3px;
	background: var(--EF-Color-Surface-2);
	list-style: none;
}
#ef-payment-pills ul.payment_methods li {
	flex: 1 1 0;
	margin: 0;
	position: relative;
}
#ef-payment-pills ul.payment_methods li input[type="radio"] {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
}
#ef-payment-pills ul.payment_methods li > label {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 28px;
	padding: 0 8px;
	margin: 0;
	border-radius: 3px;
	background: transparent;
	box-sizing: border-box;
	font-size: 14px;
	font-weight: 400;
	color: var(--EF-Color-Text-2);
	cursor: pointer;
	white-space: nowrap;
	transition: background .15s, box-shadow .15s, border-color .15s, color .15s;
}
#ef-payment-pills ul.payment_methods li input[type="radio"]:checked + label {
	background: #55368A;
	color: #fff;
	cursor: default;
}
#ef-payment-pills ul.payment_methods li .payment_box {
	display: none !important;
}
@media (max-width: 480px) {
	#ef-payment-pills ul.payment_methods {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		-ms-overflow-style: none;
	}
	#ef-payment-pills ul.payment_methods::-webkit-scrollbar {
		display: none;
	}
	#ef-payment-pills ul.payment_methods li > label {
		font-size: 12px;
	}
	.checkout-footer-wrapper {
		padding: 12px 8px;
	}
}

/* Описання під pill-баром */
#ef-payment-desc {
	font-size: 13px;
	color: var(--EF-Color-Text);
	min-height: 18px;
	padding: 10px 0 10px;
	letter-spacing: 0.2px;
	line-height: 1.5;
}
#ef-payment-desc img:not(.everfox-pp__logo):not(.everfox-mp__logo) {
	display: inline-block;
	width: 80px;
	height: auto;
	vertical-align: middle;
	margin-left: 4px;
	margin-bottom: 1px;
	filter: brightness(0) saturate(100%) invert(11%) sepia(15%) saturate(872%) hue-rotate(176deg) brightness(96%) contrast(92%);
}
#ef-payment-desc p {
	margin: 0;
}
/* Monopay logo */
#checkout_plata_logo,
.payment_method_mono_gateway img {
	width: 120px;
	vertical-align: middle;
	max-height: 100%;
	height: auto;
}


/* Snackbar — глобальні стилі в everfox-v2.css */


/* ==========================================================
   13. CHECKOUT-ONLY OVERRIDES
   ========================================================== */

.woocommerce-checkout .site-header-upper-inner-wrap {
	display: none;
}
/* Checkbox accent */
.woocommerce-checkout input[type="checkbox"]:checked {
	accent-color: var(--EF-Color-Primary) !important;
	background-color: var(--EF-Color-Primary) !important;
}
/* Order-total td overflow */
.woocommerce-checkout .order-total td {
	overflow: visible !important;
	white-space: normal !important;
	text-align: right;
}
/* Variation inline in review table */
.woocommerce-checkout .shop_table td.product-name dl.variation dd,
.woocommerce-checkout .shop_table td.product-name .wc-item-meta li {
	display: inline-block;
	white-space: nowrap;
}
.woocommerce-checkout .shop_table tbody td.product-name dl.variation {
	margin-bottom: 0;
}


/* ==========================================================
   15. LAYOUT — Desktop grid + clearfix
   ========================================================== */

/* Clearfix reset */
.woocommerce-checkout form.checkout::before,
.woocommerce-checkout form.checkout::after,
.woocommerce-checkout .col2-set::before,
.woocommerce-checkout .col2-set::after,
.woocommerce .woocommerce-billing-fields::before,
.woocommerce .woocommerce-billing-fields::after,
.woocommerce-checkout form .form-row::before,
.woocommerce-checkout form .form-row::after {
	content: none;
	display: none;
}
/* Main grid */
form.woocommerce-checkout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 10px;
	align-items: start;
	margin-top: 5px;
}
/* WC вставляет NoticeGroup при ошибках валидации — не ломать grid */
form.woocommerce-checkout > .woocommerce-NoticeGroup {
	grid-column: 1 / -1;
}
/* Auth snackbar notifications */
.ef-auth-snackbar {
	display: flex;
	align-items: center;
	padding: 0.6em 2.5em 0.6em 1em;
	border-radius: var(--everfox-radius, 3px);
	background: var(--EF-Color-Primary, #55368A);
	color: var(--EF-Color-Btn-Primary-Text, #fff);
	font-size: 14px;
	position: fixed;
	z-index: 100009;
	left: 50%;
	transform: translateX(-50%);
	top: 59px;
	max-width: 30em;
	opacity: 0;
	animation: efSnackbarIn 400ms ease-out forwards;
}
@keyframes efSnackbarIn {
	0%   { transform: translateX(-50%) translateY(20px); opacity: 0; }
	100% { transform: translateX(-50%) translateY(0);    opacity: 1; }
}
.ef-auth-snackbar .kwsb-close {
	position: absolute;
	top: 50%;
	right: 0.75em;
	transform: translateY(-50%);
	width: 1em;
	height: 1em;
	padding: 0;
	border: 0;
	background: transparent;
	color: transparent;
	cursor: pointer;
}
.ef-auth-snackbar .kwsb-close::before,
.ef-auth-snackbar .kwsb-close::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	width: 1em;
	height: 2px;
	margin-top: -1px;
	background: var(--EF-Color-Btn-Primary-Text, #fff);
	border-radius: 1px;
}
.ef-auth-snackbar .kwsb-close::before { transform: rotate(45deg); }
.ef-auth-snackbar .kwsb-close::after { transform: rotate(-45deg); }
/* Checkout: hide entry-hero-container-inner (breadcrumbs, title), keep step bar */
.woocommerce-checkout .entry-hero-container-inner {
	display: none;
}
/* Checkout: белый фон header (only checkout, not thank-you) */
.woocommerce-checkout:not(.woocommerce-order-received) .site-bottom-header-wrap .site-header-row-container-inner {
	background: var(--EF-Color-Surface);
}
/* Checkout: отключить sticky header (CSS-only, JS не трогаем) */
.woocommerce-checkout .base-sticky-header.item-is-fixed {
	position: static !important;
	top: auto !important;
}
.woocommerce-checkout .child-is-fixed {
	height: auto !important;
}
/* Sticky footer: body = flex column, #colophon прижат к низу */
body.woocommerce-checkout {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}
body.woocommerce-checkout:not(.woocommerce-order-received) #wrapper {
	flex: 1 0 auto;
	min-height: auto;
	background: #fafbfc;
	overflow: visible;
}
body.woocommerce-checkout #colophon {
	flex-shrink: 0;
}
/* Drawers/overlays не впливають на layout */
body.woocommerce-checkout > #everfox-drawer,
body.woocommerce-checkout > #ef-login-overlay,
body.woocommerce-checkout > #cart-drawer,
body.woocommerce-checkout > #added-drawer,
body.woocommerce-checkout > #everfox-overlay,
body.woocommerce-checkout > .lumise-lightbox {
	flex: none;
}
.col2-set#customer_details {
	position: unset !important;
	zoom: unset !important;
}
.woocommerce-checkout .checkout-title {
	padding: 0 0 0 34px;
	margin: 6px 0 12px;
	font-size: 18px;
	line-height: 1.5;
	font-weight: 400;
	color: var(--EF-Color-Text);
	letter-spacing: 0.5px;
	position: relative;
}
.woocommerce-checkout .checkout-title::before {
	position: absolute;
	top: 2px;
	left: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 24px;
	height: 24px;
	border-radius: 100%;
	background-color: var(--EF-Color-Primary-Soft-2);
	color: var(--EF-Color-Btn-Primary-Text);
	font-size: 14px;
	transition: background-color 0.2s;
}
/* Доступный шаг — тёмный фиолетовый */
.ef-step--valid > .checkout-title::before,
.ef-step--valid .checkout-title::before {
	background-color: var(--EF-Color-Primary-Soft);
}
.woocommerce-billing-fields > .checkout-title { margin: 6px 0 0; }
.woocommerce-billing-fields > .checkout-title::before { content: "1"; }
.everfox-shipping-block > .checkout-title::before { content: "2"; }
.everfox-payment-block > .checkout-title::before { content: "3"; }
.woocommerce-checkout-review-order-table .checkout-title::before { content: "4"; }

/* Order review summary (block 4) */
.ef-order-summary { display: none; }
.ef-order-summary .checkout-title::before { content: "4"; }
.ef-order-collapsed .ef-order-summary {
	display: block;
	padding: 10px 15px;
	margin-bottom: 0;
}
.ef-order-collapsed .ef-order-summary .ef-step-edit { display: inline; }
.ef-order-collapsed .woocommerce-checkout-review-order-table thead,
.ef-order-collapsed .woocommerce-checkout-review-order-table tbody {
	display: none;
}

/* ==========================================================
   ACCORDION — collapse/expand for checkout steps 1-3
   ========================================================== */

/* Body wrappers: smooth collapse */
.ef-billing-body,
.ef-shipping-fields-wrapper,
.ef-payment-body {
	overflow: hidden;
	transition: max-height 0.35s ease 0.05s;
}

/* Active billing: allow auth block to overflow upward */
.woocommerce-billing-fields:not(.ef-step--collapsed) .ef-billing-body {
	overflow: visible;
}

/* Collapsed: hide body */
.ef-step--collapsed .ef-billing-body,
.ef-step--collapsed .ef-shipping-fields-wrapper,
.ef-step--collapsed .ef-payment-body {
	max-height: 0 !important;
}

/* Collapsed block styling — unified for all 3 blocks */
.ef-step--collapsed {
	padding: 10px 8px !important;
	margin-bottom: 0;
	box-sizing: border-box;
	max-width: 100%;
	min-height: 73px;
}
.ef-step--collapsed .checkout-title {
	margin: 0 0 4px;
	cursor: pointer;
}

/* Summary text (visible only in collapsed state) */
.ef-step-summary {
	display: none;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.2;
	color: var(--EF-Color-Text-2, #535B65);
}
.ef-step-summary__muted {
	color: var(--EF-Color-Text-Muted, #848B95);
}
.ef-step--collapsed .ef-step-summary {
	display: block;
	margin: 4px 0 0;
	padding: 0;
}
.ef-step-summary .ef-summary-line {
	display: inline;
}
.ef-step-summary .ef-summary-line + .ef-summary-line::before {
	content: ', ';
}
@media (max-width: 480px) {
	.ef-step--collapsed .ef-step-summary {
		display: -webkit-box;
		-webkit-line-clamp: 2;
		-webkit-box-orient: vertical;
		overflow: hidden;
	}
	.ef-step-summary .ef-summary-line {
		display: block;
	}
	.ef-step-summary .ef-summary-line + .ef-summary-line::before {
		content: none;
	}
	.ef-step-summary .ef-summary-line + .ef-summary-line {
		margin-top: 2px;
	}
}

/* "Змінити" link */
.ef-step-edit {
	display: none;
	position: absolute;
	right: 0;
	top: 6px;
	line-height: 1.5;
	font-size: 13px;
	font-weight: 400;
	text-decoration: none;
	cursor: pointer;
}
.ef-step-edit:hover {
	text-decoration: none;
}
.ef-step--collapsed .ef-step-edit {
	display: inline;
}

/* Form-row helpers */
.woocommerce form .form-row label.checkbox {
	display: inline;
}
.woocommerce form .form-row .optional {
	visibility: hidden;
}
.woocommerce form .form-row-first { float: left; }
.woocommerce form .form-row-last { float: right; }
.woocommerce-checkout form .form-row-first,
.woocommerce-checkout form .form-row-last {
	width: 48%;
}

/* Table basics */
.woocommerce table.shop_table {
	border-collapse: collapse;
	width: 100%;
}
.woocommerce-checkout table.shop_table thead th {
	display: flex;
	flex-direction: column;
	margin: 15px 8px 12px;
}


/* ==========================================================
   16. LEFT COLUMN — Billing, Shipping block
   ========================================================== */

.woocommerce-billing-fields {
	padding: 10px 8px 0;
	border: 1px solid var(--EF-Color-Border-Light, #EBEDEF);
	margin-bottom: 15px;
	background: var(--EF-Color-Surface, #fff);
	box-sizing: border-box;
}
#billing_country_field {
	display: none;
}
/* Billing fields — CSS Grid layout
   Row 1: Phone (150px) | Auth OTP block (span 2-3)
   Row 2: Name | Surname | Email (3 equal columns) */
.woocommerce-checkout form.checkout .woocommerce-billing-fields__field-wrapper {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 0 15px;
}
/* Override float-based layout from form-row-first/last */
.woocommerce-billing-fields__field-wrapper > .form-row {
	float: none;
}
/* Row 1: Phone — fixed 150px */
#billing_phone_field {
	grid-column: 1;
	grid-row: 1;
	margin-top: 15px;
}
/* Row 1: Auth OTP block — spans columns 2+3 */
#ef-phone-auth {
	grid-column: 2 / -1;
	grid-row: 1;
}
/* Row 2: Name */
#billing_first_name_field {
	grid-column: 1;
	grid-row: 2;
}
/* Row 2: Surname */
#billing_last_name_field {
	grid-column: 2;
	grid-row: 2;
}
/* Row 2: Email */
#billing_email_field {
	grid-column: 3;
	grid-row: 2;
}
.woocommerce-checkout form.checkout .ef-float-label {
	left: 0px;
	font-size: 15px;
}
.woocommerce-checkout form.checkout .ef-field-group--float .ef-input-wrap input:focus ~ .ef-float-label .label-char,
.woocommerce-checkout form.checkout .ef-field-group--float .ef-input-wrap input:not(:placeholder-shown) ~ .ef-float-label .label-char {
	transform: translateY(-24px);
}
.ef-input-wrap {
	display: flex;
	align-items: flex-end;
	padding-bottom: 4px;
	border-bottom: 1px solid var(--EF-Color-Border-Medium, #DFE1E3);
	transition: border-color 0.2s ease, border-bottom-width 0.2s ease;
	height: auto;
}
.ef-input-wrap input {
	margin-left: 0;
	margin-top: 20px;
	letter-spacing: 1px;
	padding: 0;
}
/* Validation error */
.woocommerce-checkout form .form-row.woocommerce-invalid .ef-input-wrap {
	border-bottom-width: 2px;
	border-color: var(--EF-Color-Error, #E53935);
}
.woocommerce-checkout form .form-row.woocommerce-invalid .ef-float-label .label-char {
	color: var(--EF-Color-Error, #E53935) !important;
}
/* Capitalize name fields */
#billing_first_name,
#billing_last_name {
	text-transform: capitalize;
}
/* ==========================================================
   17. PHONE AUTH BLOCK
   ========================================================== */

/* ── Auth block ── */
.ef-phone-auth {
	display: flex;
	align-items: start;
	padding: 0;
	height: 90px;
	overflow: hidden;
	font-size: 14px;
	border-radius: var(--everfox-radius, 3px);
	max-width: 360px;
	min-width: 300px;
	margin: 0;
}
.ef-phone-auth__state {
	display: none;
	width: 100%;
}
/* Column layout — all states use 2 rows */
.ef-phone-auth__col {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	gap: 2px;
	width: 100%;
	padding-top: 10px;
}
[data-auth-state="offer_login"] .ef-phone-auth__col,
[data-auth-state="otp_form"] .ef-phone-auth__col {
	gap: 9px;
}
/* Row layout */
.ef-phone-auth__row {
	display: flex;
	align-items: center;
	gap: 15px;
}
/* Service row — bottom line: optional login + toggle */
.ef-phone-auth__service-row {
	margin-top: -3px;
}
/* Password input */
.ef-password-input {
	margin-left: 0;
	padding: 0 0 4px;
	border: none;
	border-bottom: 1px solid var(--EF-Color-Primary, #55368A);
	border-radius: 0;
	font-family: inherit;
	font-size: 15px;
	font-weight: 400;
	line-height: 1;
	color: var(--EF-Color-Text);
	background: transparent;
	outline: none;
	height: auto;
	width: 190px;
	letter-spacing: 1px;
	transition: border-color 0.2s ease, border-bottom-width 0.2s ease;
}
.ef-password-input::placeholder {
	color: var(--EF-Color-Text);
}
.ef-password-input:focus {
	border-bottom-width: 2px;
	border-color: var(--EF-Color-Primary, #55368A);
}
/* Password wrapper — input + eye toggle inline */
.ef-password-wrap {
	display: flex;
	align-items: center;
	position: relative;
	flex: 1;
	border-bottom: 1px solid var(--EF-Color-Border-Medium, #DFE1E3);
	transition: border-color 0.2s ease, border-bottom-width 0.2s ease;
}
.ef-password-wrap:focus-within {
	border-bottom-width: 2px;
	border-color: var(--EF-Color-Primary, #55368A);
}
.ef-password-wrap .ef-password-input {
	border-bottom: none;
	width: 100%;
}
.ef-password-wrap .ef-show-password {
	display: flex;
	padding: 8px;
	flex-shrink: 0;
	align-items: center;
	border: none;
	color: var(--EF-Color-Text-Muted, #848B95);
	cursor: pointer;
	background: none;
	margin: -8px -5px;
}
.ef-password-wrap .ef-show-password svg {
	width: 14px;
	height: 14px;
}
/* Secondary button (password login "Увійти") */
.ef-phone-auth__secondary-btn {
	position: relative;
	overflow: hidden;
	font-size: 13px;
	font-weight: 400;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	padding: 7px 20px;
	border: none;
	border-radius: var(--everfox-radius);
	background-color: var(--EF-Color-Primary-Soft, #9073C3);
	color: var(--EF-Color-Btn-Primary-Text);
	cursor: pointer;
	flex: 1;
	margin-top: -8px;
	max-width: 125px;
	transition: background-color 0.15s;
}
.ef-phone-auth__secondary-btn:hover {
	background-color: var(--EF-Color-Primary-Medium, #7051A5);
}
.ef-phone-auth__secondary-btn:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}
/* Text */
.ef-phone-auth__text--muted {
	color: var(--EF-Color-Text-Muted, #848B95);
	font-size: 11px;
}
.ef-phone-auth__text--text2 {
	color: var(--EF-Color-Text-Muted);
	font-size: 14px;
	font-weight: 400;
}
.ef-phone-auth__text {
}
.ef-phone-auth__otp-label {
	padding: 0;
	color: var(--EF-Color-Text-Muted);
	font-size: 14px;
	white-space: nowrap;
	min-width: max-content;
}
/* Resend link inside otp-label (top row) — same size as label */
.ef-phone-auth__otp-label .ef-phone-auth__btn--link {
	font-size: 14px;
	margin-left: 0;
}
/* Spinner */
.ef-phone-auth__spinner {
	display: inline-block;
	width: 14px;
	height: 14px;
	border: 2px solid var(--EF-Color-Border, #ddd);
	border-top-color: var(--EF-Color-Primary, #55368A);
	border-radius: 50%;
	animation: ef-spin 0.6s linear infinite;
	flex-shrink: 0;
	vertical-align: middle;
}
@keyframes ef-spin {
	to { transform: rotate(360deg); }
}
/* Buttons — all styled as links */
.ef-phone-auth__btn {
	border: none;
	cursor: pointer;
	font-family: inherit;
	font-size: 15px;
	background: none;
	padding: 0;
	color: var(--EF-Color-Text);
	text-decoration: none;
	transition: opacity 0.15s;
}
.ef-phone-auth__btn:hover {
	opacity: 0.85;
}
.ef-phone-auth__btn--primary {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: 15px;
	font-weight: 400;
	color: var(--EF-Color-Link);
	white-space: nowrap;
	padding: 6px 0 4px;
	border-bottom: 2px solid var(--EF-Color-Link);
}
.ef-phone-auth__btn--primary:disabled {
	opacity: 0.5;
	cursor: default;
}
.ef-phone-auth__btn--link {
	color: var(--EF-Color-Link);
	text-decoration: underline;
}
.ef-phone-auth__btn--link:disabled {
	opacity: 0.5;
	cursor: default;
}
.ef-phone-auth__btn--logout {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--EF-Color-Text);
	padding: 6px 0 4px;
	border-bottom: 2px solid transparent;
	font-size: 15px;
}
.ef-phone-auth__btn--logout svg {
	flex-shrink: 0;
}
.ef-phone-auth__row .ef-phone-auth__btn {
	flex-shrink: 0;
	font-size: 11px;
	padding: 5px 8px 8px 8px;
	margin: -5px -8px -8px -15px;
}
/* OTP form label + info */
.ef-phone-auth__otp-info {
	font-size: 13px;
}
/* OTP inputs — always right-aligned */
.ef-phone-auth__otp {
	display: flex;
	gap: 4px;
	flex-shrink: 0;
	margin-top: -1px;
}
.ef-phone-auth__otp .ef-otp-digit {
	width: 20px;
	height: 23px;
	border: none;
	border-bottom: 2px solid var(--EF-Color-Primary, #55368A);
	border-radius: 0;
	text-align: center;
	font-size: 15px;
	font-weight: 400;
	font-family: inherit;
	color: var(--EF-Color-Text, #1F2631);
	background: transparent;
	outline: none;
	transition: border-color 0.15s;
	-moz-appearance: textfield;
	padding: 0 0 6px;
}
.ef-phone-auth__otp .ef-otp-digit::-webkit-outer-spin-button,
.ef-phone-auth__otp .ef-otp-digit::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
.ef-phone-auth__otp .ef-otp-digit:focus {
	border-bottom-color: var(--EF-Color-Primary, #55368A);
	box-shadow: none;
}
.ef-phone-auth__otp .ef-otp-digit.is-filled {
	border-bottom-color: var(--EF-Color-Primary, #55368A);
}
.ef-phone-auth__otp .ef-otp-digit:disabled {
	opacity: 0.6;
}
/* OTP status (error/verifying — shown next to timer in Row 1) */
.ef-phone-auth__otp-status {
	font-size: 13px;
	flex-shrink: 0;
}
/* Timer */
.ef-phone-auth__timer {
	font-variant-numeric: tabular-nums;
}
/* Success icon (authenticated state) */
.ef-phone-auth__success-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	font-weight: 700;
}
/* OTP footer — error + resend, aligned right */
.ef-phone-auth__otp-footer {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: 12px;
	margin-top: 4px;
}
/* OTP error text */
.ef-phone-auth__otp-error {
	color: var(--EF-Color-Error, #dc2626);
	font-size: 13px;
}
/* Thank-you page: link account offer */
.ef-thankyou-link-offer {
	background: var(--EF-Color-Surface-Hover, #f5f7f9);
	border-radius: 12px;
	padding: 16px 20px;
	margin: 16px 0;
	font-size: 14px;
	line-height: 1.5;
}
.ef-thankyou-link-actions {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-top: 12px;
}

/* ==========================================================
   17b. SAVE-TO-ACCOUNT CHECKBOX
   ========================================================== */

.ef-save-account {
	position: relative;
	padding: 10px 15px;
	margin-bottom: 15px;
	background: var(--EF-Color-Surface-Violet, #f5f4fd);
	border-radius: var(--everfox-radius, 3px);
	border: 1px solid var(--EF-Color-Border-Light, #EBEDEF);
}
.ef-save-account__row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 12px;
}
.ef-save-account__label {
	display: flex;
	align-items: center;
	gap: 8px;
	cursor: pointer;
	font-size: 15px;
	font-weight: 400;
	user-select: none;
	color: var(--EF-Color-Text);
	padding-top: 26px;
}
/* Toggle switch (mini 12px height) */
.ef-save-account__switch {
	position: relative;
	display: inline-block;
	width: 22px;
	height: 12px;
	flex-shrink: 0;
	background: var(--EF-Color-Text-Muted, #848B95);
	border-radius: 6px;
	transition: .3s all ease-in-out;
	cursor: pointer;
}
.ef-save-account__switch > span {
	display: block;
	width: 8px;
	height: 8px;
	background: #fff;
	border-radius: 50%;
	position: absolute;
	top: 2px;
	left: 2px;
	box-shadow: 1px 0 3px rgba(0,0,0,.1);
	transition: .3s all ease-in-out;
}
.ef-save-account__switch.selected { background: var(--EF-Color-Primary, #55368A); }
.ef-save-account__switch.selected > span { left: 12px; box-shadow: -1px 0 3px rgba(0,0,0,.1); }
/* "Переглянути" link */
.ef-save-account__toggle {
	position: absolute;
	right: 15px;
	top: 10px;
	font-size: 13px;
	font-weight: 400;
	line-height: 1.5;
	color: var(--EF-Color-Link);
	text-decoration: none;
	cursor: pointer;
}
/* Details (hidden by default, shown on toggle click) */
.ef-save-account__details {
	display: none;
	font-size: 13px;
	color: var(--EF-Color-Text-Muted);
	margin: 8px 0 0;
	flex-basis: 100%;
}
.ef-save-account__details.is-open { display: block; }
.ef-save-account__hint {
	font-size: 13px;
	color: var(--EF-Color-Text-Muted);
	margin: 0;
	flex-basis: 100%;
}
/* Phone change OTP sub-block */
.ef-save-account__phone-otp {
	margin-top: 12px;
	padding-top: 12px;
	border-top: 1px solid var(--EF-Color-Border-Light, #eef0f2);
}
.ef-save-account__phone-notice {
	font-size: 13px;
	color: var(--EF-Color-Text-Muted, #848B95);
	margin: 0 0 8px;
}
.ef-save-account__phone-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}
.ef-save-account__phone-otp-inputs {
	display: flex;
	align-items: center;
	gap: 8px;
}
.ef-save-account__phone-otp-status {
	font-size: 13px;
}
.ef-save-account__phone-otp-status.is-error {
	color: var(--EF-Color-Error, #dc2626);
}
.ef-save-account__phone-confirmed {
	color: var(--EF-Color-Success, #16a34a);
	font-size: 13px;
	font-weight: 500;
	margin: 0;
}

/* Shipping block */
.everfox-shipping-block {
	position: relative;
	border: 1px solid var(--EF-Color-Border-Light, #EBEDEF);
	padding: 10px 8px 5px;
	background: var(--EF-Color-Surface, #fff);
	margin-bottom: 15px;
	box-sizing: border-box;
}
.everfox-shipping-options {
	display: flex;
	flex-direction: column;
	gap: 6px;
}
/* Shipping fields placeholder */
.shipping-fields-placeholder {
	display: block;
	margin: 12px 0 -12px 0;
}
.shipping-option-wrapper[data-method="nova-poshta"] .shipping-fields-placeholder {
	min-height: 112px;
	position: relative;
}
.shipping-option-wrapper[data-method="nova-poshta"] .shipping-fields-placeholder:not(.has-fields),
.shipping-option-wrapper[data-method="nova-poshta"] .shipping-fields-placeholder.has-fields {
	display: flex;
	align-items: center;
	justify-content: center;
}
.shipping-option-wrapper:not(.is-active) .shipping-fields-placeholder.has-fields {
	display: none;
}
.shipping-option-wrapper.is-active .shipping-fields-placeholder {
	display: flex;
}
/* Shipping option radio */
.shipping-option {
	display: flex;
	align-items: center;
	gap: 6px;
	padding-top: 10px;
}
.shipping-option input[type="radio"] {
	width: 14px;
	height: 14px;
	position: relative;
}
/* Hide Morkva */
.woocommerce-checkout .mrkv_ua_shipping_checkout_fields {
	display: none !important;
}
/* Hide WC shipping methods (managed by our custom shipping UI) */
.ef-shipping-methods-wrap {
	display: none;
}
/* Hide WC additional fields */
.woocommerce-additional-fields,
.woocommerce-additional-fields__field-wrapper {
	display: none;
}
/* Hidden until phone check */
.ef-checkout-field-hidden {
	display: none !important;
}


/* ==========================================================
   17. RIGHT COLUMN — Review table, tfoot
   ========================================================== */

.checkout-order-review {
	border: 1px solid var(--EF-Color-Border-Light);
	background: var(--EF-Color-Surface, #fff);
}
.woocommerce-checkout-review-order-table {
	display: block;
	width: 100%;
}
.woocommerce-checkout-review-order-table tbody {
	display: flex;
	flex-direction: column;
	padding: 0 8px;
}
.woocommerce-checkout-review-order-table tbody td {
	display: block;
	padding: 0;
}
.woocommerce-checkout-review-order-table .everfox-popup-cart-item {
	border-bottom: 1px solid var(--EF-Color-Border-Light);
}
.woocommerce-checkout-review-order-table .everfox-popup-price ins {
	font-size: 16px;
}
/* product-name hide prices */
.woocommerce-checkout-review-order-table .product-name .amount,
.woocommerce-checkout-review-order-table .product-name del,
.woocommerce-checkout-review-order-table .product-name ins {
	display: none !important;
}
.woocommerce-checkout-review-order-table .product-name {
	position: relative;
	display: block;
}
.woocommerce-checkout-review-order-table .product-name dl.variation {
	position: relative;
	display: block;
	clear: both;
}
/* tfoot */
.woocommerce-checkout-review-order-table tfoot {
	display: flex;
	flex-direction: column;
	background-color: var(--EF-Color-Surface-2, #f5f7f9);
	padding: 10px;
	margin: 0 8px;
}
.woocommerce-checkout-review-order-table tfoot tr {
	order: 1;
}
.woocommerce-checkout-review-order-table tfoot .cart-subtotal {
	display: none;
}
.woocommerce-checkout-review-order-table tfoot .order-total {
	order: 5;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.woocommerce-checkout-review-order-table tfoot .order-total th {
	font-size: 18px;
	font-weight: 400;
	line-height: 1.5em;
	padding: 0;
	color: var(--EF-Color-Text);
}
.woocommerce-checkout-review-order-table tfoot .order-total td {
	font-size: 20px;
	font-weight: 500;
	line-height: 1.5em;
	padding: 0;
	text-align: right;
	color: var(--EF-Color-Olive);
}
.woocommerce-checkout-review-order-table tfoot .order-total .woocommerce-Price-currencySymbol {
	font-weight: 400;
}
.woocommerce-checkout .order-total td .old-total-price {
	color: var(--EF-Color-Price-Old);
	margin-right: 4px;
	display: inline-block;
	font-weight: 300;
	font-size: 16px;
	text-decoration: line-through;
	line-height: 27px;
}
/* Cart discount row */
.woocommerce-checkout-review-order-table tfoot .cart-discount {
	display: flex;
	align-items: center;
	font-weight: 400;
	padding: 0;
	margin-bottom: 0;
}
.woocommerce-checkout-review-order-table tfoot .cart-discount th {
	padding: 0;
	white-space: nowrap;
	font-size: 14px;
	font-weight: 400;
}
.woocommerce-checkout-review-order-table tfoot .cart-discount td {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	padding: 0;
	padding-bottom: 4px;
	font-size: 16px;
	font-weight: 500;
	color: var(--EF-Color-Olive);
	line-height: 28px;
}
.woocommerce-checkout-review-order-table tfoot .cart-discount .woocommerce-remove-coupon {
	order: -1;
	margin-right: auto;
	font-size: 13px;
	font-weight: 400;
	padding: 0 15px;
}
.woocommerce-checkout-review-order-table tfoot .cart-discount .woocommerce-Price-currencySymbol {
	font-weight: 400;
}


/* ==========================================================
   17b. PROMO ROW + BONUS ROW + REMOVE BUTTONS
   ========================================================== */

/* Order: promo/promo-coupon=0, bonus=1, total=3 */
.woocommerce-checkout-review-order-table tfoot .ef-promo-row { order: 0; }
.woocommerce-checkout-review-order-table tfoot .cart-discount { order: 0; }
.woocommerce-checkout-review-order-table tfoot .cart-discount.ef-bonus-discount { order: 1; }

/* Hide promo input when non-bonus coupon applied */
/* Hide promo input when a real promo coupon is applied (not bonus) */
.woocommerce-checkout-review-order-table tfoot:has(.cart-discount:not(.ef-bonus-discount):not([class*="coupon-bonus-"])) .ef-promo-row {
	display: none !important;
}

/* Hide WC auto-generated bonus coupon row (our PHP renders .ef-bonus-discount) */
.woocommerce-checkout-review-order-table tfoot .cart-discount[class*="coupon-bonus-"]:not(.ef-bonus-discount) {
	display: none !important;
}

/* Bonus row (rendered by PHP in BonusCheckout::render_bonus_row) */
.woocommerce-checkout-review-order-table tfoot .cart-discount.ef-bonus-discount {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0;
	min-height: 28px;
}
.woocommerce-checkout-review-order-table tfoot .cart-discount.ef-bonus-discount th {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 0;
}
.woocommerce-checkout-review-order-table tfoot .cart-discount.ef-bonus-discount td {
	display: flex;
	padding: 0;
	justify-content: flex-end;
	align-items: baseline;
	font-size: 16px;
	font-weight: 500;
	color: var(--EF-Color-Olive, #5F7A00);
}
.woocommerce-checkout-review-order-table tfoot .cart-discount.ef-bonus-discount .ef-coupon-label-text {
	font-size: 14px;
	font-weight: 400;
	white-space: nowrap;
	color: var(--EF-Color-Text-2, #535B65);
}
/* Bonus value in WC row (same as ef-bonus-value) */
.woocommerce-checkout-review-order-table tfoot .cart-discount.ef-bonus-discount .ef-bonus-value {
	display: inline-flex;
	align-items: baseline;
	gap: 0;
}
.woocommerce-checkout-review-order-table tfoot .cart-discount.ef-bonus-discount .ef-bonus-minus {
	font-size: 16px;
	font-weight: 500;
	color: var(--EF-Color-Olive, #5F7A00);
	visibility: hidden;
	width: 0;
	overflow: hidden;
	transition: width 0.15s, visibility 0.15s;
}
.woocommerce-checkout-review-order-table tfoot .cart-discount.ef-bonus-discount .ef-bonus-value.is-applied .ef-bonus-minus {
	visibility: visible;
	width: auto;
	padding: 0;
	transition: width 0.15s, visibility 0s;
}
.woocommerce-checkout-review-order-table tfoot .cart-discount.ef-bonus-discount .ef-wc-bonus-input {
	width: 3ch;
	border: none;
	border-radius: 0;
	padding: 2px 0;
	font-family: inherit;
	font-size: 16px;
	font-weight: 500;
	line-height: 1;
	text-align: right;
	color: var(--EF-Color-Olive, #5F7A00);
	background: transparent;
}
.woocommerce-checkout-review-order-table tfoot .cart-discount.ef-bonus-discount .ef-wc-bonus-input:focus {
	background: transparent;
	outline: none;
}
.woocommerce-checkout-review-order-table tfoot .cart-discount.ef-bonus-discount .ef-wc-bonus-input::-webkit-inner-spin-button,
.woocommerce-checkout-review-order-table tfoot .cart-discount.ef-bonus-discount .ef-wc-bonus-input::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
.woocommerce-checkout-review-order-table tfoot .cart-discount.ef-bonus-discount .ef-bonus-currency {
	font-size: 16px;
	font-weight: 400;
	color: var(--EF-Color-Olive, #5F7A00);
}

/* No bonus: muted value color */
.woocommerce-checkout-review-order-table tfoot .cart-discount.ef-bonus-discount.no-bonus .ef-bonus-minus,
.woocommerce-checkout-review-order-table tfoot .cart-discount.ef-bonus-discount.no-bonus .ef-wc-bonus-zero,
.woocommerce-checkout-review-order-table tfoot .cart-discount.ef-bonus-discount.no-bonus .ef-bonus-currency {
	color: var(--EF-Color-Price-Old, #9CA3AF);
}
.woocommerce-checkout-review-order-table tfoot .cart-discount.ef-bonus-discount.no-bonus .ef-bonus-value {
	border-bottom: none;
}

/* Hide old coupon form in checkout-footer-wrapper (moved to tfoot) */
.checkout-coupon-toggle { display: none !important; }
.woocommerce-checkout-review-order-table tfoot .cart-discount .woocommerce-remove-coupon {
	display: none;
}

/* --- Promo Row --- */
.ef-promo-row td { padding: 0; }
.ef-promo-coupon-toggle { display: flex; align-items: center; gap: 8px; }
.ef-promo-coupon-toggle .cart-coupon-form { display: none; flex: 1; }
.ef-promo-coupon-toggle.open .cart-coupon-form { display: block; }
.ef-promo-label {
	font-size: 14px;
	font-weight: 400;
	color: var(--EF-Color-Text-2, #535B65);
	cursor: pointer;
	border-bottom: 2px solid transparent;
	padding-bottom: 3px;
	line-height: 28px;
}
.ef-promo-label:hover { text-decoration: underline; }
.ef-promo-coupon-toggle .ef-input-wrap {
	border-bottom: 2px solid transparent;
	transition: border-color 0.2s;
	height: auto;
	max-width: 90px;
	padding: 0 0 2px;
}
.ef-promo-coupon-toggle .ef-input-wrap:focus-within {
	border-color: var(--EF-Color-Primary);
}
.ef-promo-coupon-toggle .ef-field-group--float:focus-within ~ .coupon-submit-btn,
.ef-promo-coupon-toggle .ef-field-group--float:has(input:not(:placeholder-shown)) ~ .coupon-submit-btn {
	opacity: 1;
	pointer-events: auto;
}
.ef-promo-coupon-toggle .coupon-form-row { align-items: center; }
.ef-promo-coupon-toggle .coupon-submit-btn {
	color: var(--EF-Color-Primary, #55368A);
}
.ef-promo-coupon-toggle .coupon-submit-btn svg {
	width: 18px;
	height: 18px;
}

/* Bonus value wrapper */
.ef-bonus-value {
	display: inline-flex;
	align-items: baseline;
	gap: 0;
	border-bottom: 1px dashed var(--EF-Color-Olive, #5F7A00);
	transition: border-color 0.2s;
}
.ef-bonus-value.is-applied {
	border-bottom-color: transparent;
}
/* Minus — hidden, no space reserved */
.ef-bonus-minus {
	font-size: 16px;
	font-weight: 500;
	color: var(--EF-Color-Olive, #5F7A00);
	visibility: hidden;
	width: 0;
	overflow: hidden;
	transition: width 0.15s, visibility 0s 0.15s;
}
.ef-bonus-value.is-applied .ef-bonus-minus {
	visibility: visible;
	width: auto;
	padding-right: 2px;
	transition: width 0.15s, visibility 0s;
}
/* Currency — always visible */
.ef-bonus-currency {
	font-size: 16px;
	font-weight: 400;
	color: var(--EF-Color-Olive, #5F7A00);
}
/* Hide fee row (bonuses are now coupons, not fees) */
.woocommerce-checkout-review-order-table tfoot .fee {
	display: none !important;
}

/* cart-discount th — flex, label styling */
.woocommerce-checkout-review-order-table tfoot .cart-discount th {
	display: flex;
	align-items: center;
	gap: 8px;
	cursor: pointer;
	line-height: 28px;
}
/* Coupon toggle slider (same vars as bonus) */
.ef-coupon-toggle {
	display: inline-flex;
	align-items: center;
	cursor: pointer;
	--switch-width: 2em;
	--switch-height: 1.1em;
	--toggle-diameter: 0.8em;
	--toggle-offset: calc((var(--switch-height) - var(--toggle-diameter)) / 2);
	--color-off: var(--EF-Color-Text-Muted, #848B95);
	--color-on: var(--EF-Color-Olive, #5F7A00);
	padding-bottom: 4px;
}
.ef-coupon-toggle input[type="checkbox"] { display: none; }
.ef-coupon-toggle .slider {
	display: inline-block;
	position: relative;
	width: var(--switch-width);
	height: var(--switch-height);
	margin: 0;
	flex-shrink: 0;
	border-radius: calc(var(--switch-height) / 2);
	background-color: var(--color-off);
	cursor: pointer;
	transition: 0.3s ease-in-out;
}
.ef-coupon-toggle .slider::after {
	content: "";
	display: block;
	position: absolute;
	top: var(--toggle-offset);
	left: var(--toggle-offset);
	width: var(--toggle-diameter);
	height: var(--toggle-diameter);
	border-radius: 50%;
	background-color: var(--EF-Color-Surface, #fff);
	box-shadow: 1px 0 4px rgba(0,0,0,0.15);
	transition: 0.3s ease-in-out;
}
.ef-coupon-toggle input[type="checkbox"]:checked + .slider {
	background-color: var(--EF-Color-Primary, #55368A);
}
.ef-coupon-toggle input[type="checkbox"]:checked + .slider::after {
	left: calc(var(--switch-width) - var(--toggle-diameter) - var(--toggle-offset));
}
.ef-coupon-label-text {
	font-weight: 400;
	color: var(--EF-Color-Text-2, #535B65);
	padding-bottom: 4px;
}
.ef-coupon-label-code {
	font-weight: 400;
	color: var(--EF-Color-Text, #1F2631);
	padding-bottom: 4px;
}

/* Mobile: bonus row align left */
@media (max-width: 480px) {
	.woocommerce-checkout-review-order-table tfoot .cart-discount.ef-bonus-discount th {
		text-align: left;
		justify-content: flex-start;
	}
	.woocommerce-checkout-review-order-table tfoot .cart-discount.ef-bonus-discount .ef-coupon-label-text {
		font-size: 13px;
	}
}


/* ==========================================================
   18. TEXTAREA + DO-NOT-CALL
   ========================================================== */

.ef-textarea-wrap {
	position: relative;
}
.ef-textarea-wrap textarea {
	resize: none;
	width: 100%;
	padding: 6px;
	border: 1px solid var(--EF-Color-Border-Light);
	font-size: 14px;
	font-weight: 300;
	color: var(--EF-Color-Text);
	line-height: 1.3;
}
.woocommerce-checkout form.checkout .ef-textarea-wrap .ef-float-label {
	left: 6px;
	bottom: auto;
	top: 6px;
	font-size: 14px;
	color: var(--EF-Color-Text-Muted);
}
.ef-textarea-wrap textarea:focus ~ .ef-float-label .label-char,
.ef-textarea-wrap textarea:not(:placeholder-shown) ~ .ef-float-label .label-char {
	transform: translateY(-25px);
	color: var(--EF-Color-Text-Muted);
}
/* Do-not-call toggle */
.do-not-call label.switch {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	--switch-width: 2em;
	--switch-height: 1.1em;
	--toggle-diameter: 0.8em;
	--toggle-offset: calc((var(--switch-height) - var(--toggle-diameter)) / 2);
	--toggle-shadow-offset: 10px;
	--toggle-wider: 3em;
	--color-off: var(--EF-Color-Text-Muted);
	--color-on: var(--EF-Color-Primary);
	cursor: pointer;
	margin: 12px 0 0;
}
.do-not-call label.switch .switch-label {
	display: inline-block;
	line-height: var(--switch-height);
	vertical-align: middle;
}
.do-not-call label.switch .slider {
	float: none;
	flex-shrink: 0;
	width: var(--switch-width);
	height: var(--switch-height);
	margin: 0 5px 0 0;
	position: relative;
	display: inline-block;
	background-color: var(--color-off);
	border-radius: calc(var(--switch-height) / 2);
	transition: 0.3s all ease-in-out;
	cursor: pointer;
	vertical-align: middle;
}
.do-not-call label.switch .slider::after {
	content: "";
	display: inline-block;
	width: var(--toggle-diameter);
	height: var(--toggle-diameter);
	background-color: var(--EF-Color-Surface);
	border-radius: calc(var(--toggle-diameter) / 2);
	position: absolute;
	top: var(--toggle-offset);
	transform: translateX(var(--toggle-offset));
	box-shadow: var(--toggle-shadow-offset) 0 calc(var(--toggle-shadow-offset) * 4) rgba(0,0,0,0.1);
	transition: 0.3s all ease-in-out;
}
.do-not-call label.switch input[type="checkbox"] {
	display: none;
}
.do-not-call label.switch input[type="checkbox"]:checked + .slider {
	background-color: var(--color-on);
}
.do-not-call label.switch input[type="checkbox"]:checked + .slider::after {
	transform: translateX(calc(var(--switch-width) - var(--toggle-diameter) - var(--toggle-offset)));
	box-shadow: calc(var(--toggle-shadow-offset) * -1) 0 calc(var(--toggle-shadow-offset) * 4) rgba(0,0,0,0.1);
}
.do-not-call label.switch input[type="checkbox"]:active + .slider::after {
	width: var(--toggle-wider);
}
.do-not-call label.switch input[type="checkbox"]:checked:active + .slider::after {
	transform: translateX(calc(var(--switch-width) - var(--toggle-wider) - var(--toggle-offset)));
}


/* ==========================================================
   19. LUMISE CHECKOUT THUMBNAILS
   ========================================================== */

.woocommerce-checkout .lumise-checkout-thumbnails {
	display: flex;
	flex-direction: row;
	gap: 5px;
}
.woocommerce-checkout .lumise-checkout-thumbnail {
	max-width: 70px;
	height: auto;
}


/* ==========================================================
   20. STICKY STEP INDICATOR (≤1024px)
   ========================================================== */

/* Step bar removed */

@media (max-width: 1024px) {
	/* Title circles on mobile */
	.ef-step--valid > .checkout-title::before,
	.ef-step--valid .checkout-title::before {
		background-color: var(--EF-Color-Primary-Soft);
	}

	form.woocommerce-checkout {
		grid-template-columns: minmax(0, 1fr);
	}
}
@media (max-width: 719px) {
	.woocommerce-checkout .shop_table {
		margin: 0;
	}
	.woocommerce-page form .form-row label.checkbox,
	.woocommerce form .form-row label.checkbox {
		display: block;
		padding: 0 10px 15px;
	}
}

/* Phone auth: mobile */
@media (max-width: 768px) {
	.ef-phone-auth__row {
		flex-wrap: wrap;
	}
	.ef-save-account__phone-actions {
		flex-direction: column;
		align-items: flex-start;
	}
}

/* Mobile: billing grid → single column */
@media (max-width: 480px) {
	.woocommerce-checkout form.checkout .woocommerce-billing-fields__field-wrapper {
		grid-template-columns: 1fr;
	}
	#billing_phone_field,
	#billing_email_field,
	#ef-phone-auth,
	#billing_first_name_field,
	#billing_last_name_field {
		grid-column: 1 / -1;
		grid-row: auto;
	}
	#billing_phone_field {
		min-width: unset;
		max-width: unset;
	}
	.ef-phone-auth__col {
		padding-top: 0;
	}
	.ef-save-account__label {
		padding-top: 0;
		margin-left: 4px;
	}
	.ef-phone-auth {
		height: auto;
		margin: 0 0 20px;
	}
	/* Mobile spacing for checkout blocks */
	.woocommerce-billing-fields {
		padding: 5px 8px 0;
		margin-bottom: 10px;
	}
	.everfox-shipping-block {
		padding: 5px 8px 5px;
		margin-bottom: 10px;
	}
	.everfox-payment-block {
		padding: 5px 8px 5px;
	}
	form.woocommerce-checkout {
		margin-top: 0;
	}
	.woocommerce-checkout table.shop_table thead th {
		margin: 10px 8px 12px;
	}
}

/* Desktop: restore wider paddings */
@media (min-width: 480px) {
	.woocommerce-billing-fields { padding: 10px 15px 0; }
	.everfox-shipping-block { padding: 10px 15px 5px; }
	.everfox-payment-block { padding: 10px 15px 5px; }
	.ef-step--collapsed { padding: 10px 15px !important; }
	.woocommerce-checkout table.shop_table thead th { margin: 15px 15px 12px; }
	.woocommerce-checkout-review-order-table tfoot { margin: 0 10px; }
}

/* --- Термінове замовлення (checkout) --- */
.woocommerce-checkout-review-order-table .everfox-urgent-row td { padding: 0; margin: 8px 3px; }
.everfox-urgent-row .everfox-urgent-minicart { border-top: 1px solid var(--EF-Color-Border-Light); padding: 15px 8px 8px; }

/* Urgent не выбран */
.everfox-urgent-minicart:has(.everfox-urgent-switch:not(.selected)) .everfox-urgent-mc-label {
	color: var(--EF-Color-Text-Muted);
	font-size: 13px;
	font-weight: 500;
}
.everfox-urgent-minicart:has(.everfox-urgent-switch:not(.selected)) .everfox-popup-price,
.everfox-urgent-minicart:has(.everfox-urgent-switch:not(.selected)) .everfox-popup-price ins {
	color: var(--EF-Color-Price-Old);
	font-size: 14px;
	font-weight: 500;
}

/* Последний cart_item перед urgent row — без border-bottom */
.woocommerce-checkout-review-order-table tbody .cart_item:has(+ #everfox-urgent-row) .everfox-popup-cart-item,
.woocommerce-checkout-review-order-table tbody .cart_item:last-child .everfox-popup-cart-item { border-bottom: none; }

/* Скрыть WC blockUI overlay на правой колонке checkout — обновление тихое */
.everfox-checkout-right .blockUI.blockOverlay,
.everfox-checkout-right .blockUI.blockMsg,
.woocommerce-checkout-review-order-table > .blockUI.blockOverlay,
.woocommerce-checkout-payment > .blockUI.blockOverlay {
	display: none !important;
}

/* Bottom sheet: now managed by ef-modal.css */

/* ==========================================================
   PayParts — Оплата частинами ПриватБанку
   ========================================================== */
.everfox-pp__paw {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	flex-shrink: 0;
}
.everfox-pp__paw::after {
	content: attr(data-badge);
	position: absolute;
	right: 3px;
	bottom: 11px;
	z-index: 1;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 14px;
	height: 14px;
	border-radius: 10px;
	color: #fff;
	font-size: 14px;
	font-weight: 600;
	line-height: 1;
	transform: rotate(13deg);
	text-shadow: 0 1px 2px rgba(0,0,0,0.5);
}
.everfox-pp__logo {
	display: block;
	width: 36px;
	height: auto;
	flex-shrink: 0;
}
.everfox-pp__title {
	font-size: 15px;
	font-weight: 500;
	color: var(--EF-Color-Text);
}
.everfox-pp__row {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	margin-bottom: 10px;
}
.everfox-pp__wrap {
	position: relative;
	margin-top: 5px;
}
.everfox-pp__wrap-label {
	position: absolute;
	top: -7px;
	left: 6px;
	padding: 0 3px;
	z-index: 1;
	font-size: 12px;
	font-weight: 300;
	line-height: 1;
	white-space: nowrap;
	color: var(--EF-Color-Price-Old, #848B95);
	background: var(--EF-Color-Surface, #fff);
}
.everfox-pp__trigger {
	display: inline-flex;
	min-width: 210px;
	padding: 8px 5px 8px 10px;
	justify-content: space-between;
	align-items: center;
	border: 1px solid var(--EF-Color-Border-Medium, #DFE1E3);
	border-radius: var(--everfox-radius, 3px);
	font-size: 14px;
	font-weight: 400;
	white-space: nowrap;
	color: var(--EF-Color-Text);
	background: linear-gradient(180deg, var(--EF-Color-Surface, #fff) 0%, var(--EF-Color-Chip-Bg, #F5F5F5) 100%);
	cursor: pointer;
	transition: border-color 0.2s, background 0.2s;
}
.everfox-pp__wrap--open .everfox-pp__trigger {
	background: linear-gradient(180deg, var(--EF-Color-Surface, #fff) 0%, var(--EF-Color-Chip-Active-Bg, #EDE8F5) 100%);
}
/* Unified columns for trigger & dropdown */
.everfox-pp__col-name {
	flex: 1;
	text-align: left;
	max-width: 80px;
}
.everfox-pp__col-amount {
	min-width: 40px;
	text-align: center;
	font-weight: 500;
	color: var(--EF-Color-Olive, #5F7A00);
}
.everfox-pp__col-unit {
	min-width: 35px;
	text-align: right;
	font-size: 11px;
	color: var(--EF-Color-Text-Muted, #848B95);
}
.everfox-pp__trigger .everfox-pp__col-amount {
	font-size: 15px;
	font-weight: 600;
}
.everfox-pp__chevron {
	width: 13px;
	height: 13px;
	flex-shrink: 0;
	transition: transform 0.25s;
}
.everfox-pp__wrap--open .everfox-pp__chevron {
	transform: rotate(180deg);
}
.everfox-pp__dropdown {
	position: absolute;
	top: calc(100%);
	right: 0;
	left: 0;
	min-width: 210px;
	padding: 4px 0;
	z-index: 70;
	border: 1px solid var(--EF-Color-Border-Medium, #DFE1E3);
	border-top: none;
	border-radius: 0 0 var(--everfox-radius, 3px) var(--everfox-radius, 3px);
	box-shadow: 0 4px 12px rgba(0,0,0,0.12);
	background: var(--EF-Color-Surface, #fff);
	visibility: hidden;
	opacity: 0;
	transform: translateY(-6px);
	transition: transform 0.2s cubic-bezier(0.4,0,0.2,1), opacity 0.2s ease-out, visibility 0.2s;
}
.everfox-pp__wrap--open .everfox-pp__trigger {
	border-bottom-left-radius: 0;
	border-bottom-right-radius: 0;
	border-bottom-color: transparent;
}
.everfox-pp__wrap--open .everfox-pp__dropdown {
	visibility: visible;
	opacity: 1;
	transform: translateY(0);
}
.everfox-pp__option {
	display: flex;
	padding: 8px 27px 8px 10px;
	justify-content: space-between;
	align-items: center;
	font-size: 13px;
	font-weight: 400;
	white-space: nowrap;
	color: var(--EF-Color-Text);
	cursor: pointer;
	background: var(--EF-Color-Surface, #fff);
	transition: background 0.15s;
	text-align: center;
}
.everfox-pp__option:hover {
	background: var(--EF-Color-Surface-Hover, #F5F5F5);
}
.everfox-pp__option--active {
	background: var(--EF-Color-Surface-Hover, #F5F5F5);
}
.everfox-pp__note {
	margin: 0;
	font-size: 12px;
	line-height: 1.4;
	color: var(--EF-Color-Text-Muted, #848B95);
}


/* ==========================================================
   Credit Group — "В кредит" pill с переключателем банку
   ========================================================== */
.ef-credit-group > input[type="radio"] {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
}
.ef-credit-group > label {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 28px;
	padding: 0 8px;
	margin: 0;
	border-radius: 3px;
	background: transparent;
	box-sizing: border-box;
	font-size: 14px;
	font-weight: 400;
	color: var(--EF-Color-Text-2);
	cursor: pointer;
	white-space: nowrap;
	transition: background .15s, color .15s;
}
.ef-credit-group > input[type="radio"]:checked + label {
	background: #55368A;
	color: #fff;
	cursor: default;
}
/* Bank sub-selector tabs */
.ef-credit-banks {
	display: flex;
	gap: 2px;
	margin-bottom: 12px;
	padding: 0;
	border: 1px solid var(--EF-Color-Border-Light);
	border-radius: 3px;
	background: var(--EF-Color-Surface-2);
	list-style: none;
}
.ef-credit-bank {
	flex: 1 1 0;
	height: 28px;
	padding: 0 8px;
	border: none;
	border-radius: 3px;
	background: transparent;
	font-size: 14px;
	font-weight: 400;
	color: var(--EF-Color-Text-2);
	cursor: pointer;
	text-align: center;
	white-space: nowrap;
	transition: background .15s, color .15s;
}
.ef-credit-bank--active {
	background: #55368A;
	color: #fff;
	cursor: default;
}
@media (max-width: 480px) {
	.ef-credit-bank {
		font-size: 12px;
	}
}

/* ==========================================================
   MonoParts — Покупка частинами monobank
   ========================================================== */
.everfox-mp__paw {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	flex-shrink: 0;
	cursor: pointer;
}
.everfox-mp__paw::after {
	content: attr(data-badge);
	position: absolute;
	right: 13px;
	bottom: 5px;
	z-index: 1;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 14px;
	height: 14px;
	border-radius: 10px;
	color: #fff;
	font-size: 14px;
	font-weight: 600;
	line-height: 1;
	transform: rotate(13deg);
}
.everfox-mp__logo {
	display: block;
	width: 36px;
	height: auto;
}
.everfox-mp__title {
	font-size: 15px;
	font-weight: 500;
	color: var(--EF-Color-Text);
}
.everfox-mp__row {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	margin-bottom: 10px;
}
.everfox-mp__wrap {
	position: relative;
	margin-top: 5px;
}
.everfox-mp__wrap-label {
	position: absolute;
	top: -7px;
	left: 6px;
	padding: 0 3px;
	z-index: 1;
	font-size: 12px;
	font-weight: 300;
	line-height: 1;
	white-space: nowrap;
	color: var(--EF-Color-Price-Old, #848B95);
	background: var(--EF-Color-Surface, #fff);
}
.everfox-mp__trigger {
	display: inline-flex;
	min-width: 210px;
	padding: 8px 5px 8px 10px;
	justify-content: space-between;
	align-items: center;
	border: 1px solid var(--EF-Color-Border-Medium, #DFE1E3);
	border-radius: var(--everfox-radius, 3px);
	font-size: 14px;
	font-weight: 400;
	white-space: nowrap;
	color: var(--EF-Color-Text);
	background: linear-gradient(180deg, var(--EF-Color-Surface, #fff) 0%, var(--EF-Color-Chip-Bg, #F5F5F5) 100%);
	cursor: pointer;
	transition: border-color 0.2s, background 0.2s;
}
.everfox-mp__wrap--open .everfox-mp__trigger {
	background: linear-gradient(180deg, var(--EF-Color-Surface, #fff) 0%, var(--EF-Color-Chip-Active-Bg, #EDE8F5) 100%);
}
.everfox-mp__col-name {
	flex: 1;
	text-align: left;
	max-width: 80px;
}
.everfox-mp__col-amount {
	min-width: 40px;
	text-align: center;
	font-weight: 500;
	color: var(--EF-Color-Olive, #5F7A00);
}
.everfox-mp__col-unit {
	min-width: 35px;
	text-align: right;
	font-size: 11px;
	color: var(--EF-Color-Text-Muted, #848B95);
}
.everfox-mp__trigger .everfox-mp__col-amount {
	font-size: 15px;
	font-weight: 600;
}
.everfox-mp__chevron {
	width: 13px;
	height: 13px;
	flex-shrink: 0;
	transition: transform 0.25s;
}
.everfox-mp__wrap--open .everfox-mp__chevron {
	transform: rotate(180deg);
}
.everfox-mp__dropdown {
	position: absolute;
	top: calc(100%);
	right: 0;
	left: 0;
	min-width: 210px;
	padding: 4px 0;
	z-index: 70;
	border: 1px solid var(--EF-Color-Border-Medium, #DFE1E3);
	border-top: none;
	border-radius: 0 0 var(--everfox-radius, 3px) var(--everfox-radius, 3px);
	box-shadow: 0 4px 12px rgba(0,0,0,0.12);
	background: var(--EF-Color-Surface, #fff);
	visibility: hidden;
	opacity: 0;
	transform: translateY(-6px);
	transition: transform 0.2s cubic-bezier(0.4,0,0.2,1), opacity 0.2s ease-out, visibility 0.2s;
}
.everfox-mp__wrap--open .everfox-mp__trigger {
	border-bottom-left-radius: 0;
	border-bottom-right-radius: 0;
	border-bottom-color: transparent;
}
.everfox-mp__wrap--open .everfox-mp__dropdown {
	visibility: visible;
	opacity: 1;
	transform: translateY(0);
}
.everfox-mp__option {
	display: flex;
	padding: 8px 27px 8px 10px;
	justify-content: space-between;
	align-items: center;
	font-size: 13px;
	font-weight: 400;
	white-space: nowrap;
	color: var(--EF-Color-Text);
	cursor: pointer;
	background: var(--EF-Color-Surface, #fff);
	transition: background 0.15s;
	text-align: center;
}
.everfox-mp__option:hover {
	background: var(--EF-Color-Surface-Hover, #F5F5F5);
}
.everfox-mp__option--active {
	background: var(--EF-Color-Surface-Hover, #F5F5F5);
}
.everfox-mp__note {
	margin: 0;
	font-size: 12px;
	line-height: 1.4;
	color: var(--EF-Color-Text-Muted, #848B95);
}
