/* Ektaseb product-page fields.
   Designed to blend with any WooCommerce theme: neutral tones derive from
   currentColor (so they adapt to light and dark themes alike), and the accent
   picks up the theme's primary color when the theme exposes it. */

.ektaseb-wc-fields {
	--ektaseb-accent: var(--wd-primary-color, var(--wp--preset--color--primary, #ce673b));
	--ektaseb-line: rgba(0, 0, 0, 0.12);
	--ektaseb-soft: rgba(0, 0, 0, 0.03);
	--ektaseb-muted: #6b7075;
	--ektaseb-accent-soft: rgba(206, 103, 59, 0.08);
	--ektaseb-accent-line: rgba(206, 103, 59, 0.3);

	background: var(--ektaseb-soft);
	border: 1px solid var(--ektaseb-line);
	border-radius: 16px;
	margin: 22px 0;
	padding: 20px 22px;
}

@supports (color: color-mix(in srgb, red 50%, transparent)) {
	.ektaseb-wc-fields {
		--ektaseb-line: color-mix(in srgb, currentColor 14%, transparent);
		--ektaseb-soft: color-mix(in srgb, currentColor 3.5%, transparent);
		--ektaseb-muted: color-mix(in srgb, currentColor 62%, transparent);
		--ektaseb-accent-soft: color-mix(in srgb, var(--ektaseb-accent) 8%, transparent);
		--ektaseb-accent-line: color-mix(in srgb, var(--ektaseb-accent) 30%, transparent);
	}
}

/* Hide the "TM Extra Product Options" totals box on Ektaseb-linked products.
   It renders from the product's base WooCommerce price (always 0 here since
   pricing is fully dynamic), so it can never reflect the real Ektaseb total
   shown in .ektaseb-wc-price-preview. */
form.cart:has(.ektaseb-wc-fields) .tc-totals-form {
	display: none !important;
}

/* --- Field rows ------------------------------------------------------- */

.ektaseb-wc-fields .form-row {
	float: none;
	margin: 0 0 16px;
	padding: 0;
	width: 100%;
}

.ektaseb-wc-fields .form-row:last-child {
	margin-bottom: 0;
}

.ektaseb-wc-fields label {
	display: block;
	font-size: 0.95em;
	font-weight: 600;
	margin-bottom: 6px;
}

.ektaseb-wc-fields .required {
	color: var(--ektaseb-accent);
	text-decoration: none;
}

.ektaseb-wc-fields input.input-text,
.ektaseb-wc-fields textarea.input-text {
	border: 1px solid var(--ektaseb-line);
	border-radius: 10px;
	box-sizing: border-box;
	padding: 10px 14px;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
	width: 100%;
}

.ektaseb-wc-fields input.input-text:focus,
.ektaseb-wc-fields textarea.input-text:focus {
	border-color: var(--ektaseb-accent);
	box-shadow: 0 0 0 3px var(--ektaseb-accent-soft);
	outline: none;
}

.ektaseb-wc-fields textarea.input-text {
	min-height: 120px;
	resize: vertical;
}

.ektaseb-wc-fields input[type="url"] {
	direction: ltr;
	text-align: left;
}

.ektaseb-wc-fields input[type="url"]::placeholder {
	opacity: 0.55;
	text-align: left;
}

.ektaseb-wc-fields input.ektaseb-wc-qty {
	font-variant-numeric: tabular-nums;
	max-width: 240px;
	text-align: center;
}

/* --- Service sections -------------------------------------------------- */

.ektaseb-wc-service {
	border: 0;
	border-top: 1px dashed var(--ektaseb-line);
	margin: 18px 0 0;
	min-width: 0;
	padding: 16px 0 0;
}

.ektaseb-wc-service:first-child {
	border-top: 0;
	margin-top: 0;
	padding-top: 0;
}

.ektaseb-wc-service legend {
	float: inline-start;
	font-size: 1em;
	font-weight: 700;
	margin: 0 0 12px;
	padding: 0;
	width: 100%;
}

.ektaseb-wc-service legend::before {
	background: var(--ektaseb-accent);
	border-radius: 50%;
	content: '';
	display: inline-block;
	height: 8px;
	margin-inline-end: 8px;
	vertical-align: 6%;
	width: 8px;
}

.ektaseb-wc-service .description {
	color: var(--ektaseb-muted);
	font-size: 0.85em;
	margin: 0 0 10px;
}

/* --- Hints and notices -------------------------------------------------- */

.ektaseb-wc-range-hint {
	color: var(--ektaseb-muted);
	display: block;
	font-size: 0.85em;
	margin-top: 5px;
}

.ektaseb-wc-warning {
	background: #fff8e5;
	border-inline-start: 4px solid #dba617;
	border-radius: 8px;
	padding: 10px 14px;
}

.ektaseb-wc-qty-invalid {
	border-color: #b32d2e !important;
	box-shadow: 0 0 0 1px #b32d2e !important;
}

.ektaseb-wc-qty-invalid + .ektaseb-wc-range-hint {
	color: #b32d2e;
}

.ektaseb-wc-qty-notice {
	background: #fff8e5;
	border-inline-start: 3px solid #dba617;
	border-radius: 6px;
	color: #4d3a00;
	display: none;
	font-size: 0.85em;
	margin-top: 6px;
	padding: 6px 10px;
}

.ektaseb-wc-qty-notice.is-visible {
	display: block;
}

.ektaseb-wc-qty-flash {
	animation: ektaseb-wc-qty-flash 0.9s ease;
}

@keyframes ektaseb-wc-qty-flash {
	0% {
		background-color: #fff3cd;
	}

	100% {
		background-color: transparent;
	}
}

/* --- Live total --------------------------------------------------------- */

.ektaseb-wc-price-preview {
	align-items: center;
	background: var(--ektaseb-accent-soft);
	border: 1px solid var(--ektaseb-accent-line);
	border-radius: 12px;
	display: flex;
	gap: 12px;
	justify-content: space-between;
	margin: 18px 0 0;
	padding: 13px 18px;
}

.ektaseb-wc-price-preview span {
	font-weight: 600;
}

.ektaseb-wc-price-preview strong {
	color: var(--ektaseb-accent);
	display: inline-block;
	font-size: 1.35em;
	font-variant-numeric: tabular-nums;
	font-weight: 700;
	line-height: 1.2;
}

.ektaseb-wc-price-preview strong.ektaseb-wc-price-bump {
	animation: ektaseb-wc-price-bump 0.35s ease;
}

@keyframes ektaseb-wc-price-bump {
	0% {
		opacity: 0.5;
		transform: scale(1.07);
	}

	100% {
		opacity: 1;
		transform: scale(1);
	}
}

@media (max-width: 480px) {
	.ektaseb-wc-fields {
		padding: 16px;
	}

	.ektaseb-wc-fields input.ektaseb-wc-qty {
		max-width: 100%;
	}
}
