/* ── Hero ── */
.estim-hero {
	padding: 80px 24px;
	background: #fff;
	text-align: center;
}
.estim-hero h1 {
	font-family: 'Lexend Exa', sans-serif;
	font-weight: 700;
	font-size: 32px;
	line-height: 1.5;
	letter-spacing: -0.09em;
	color: #3C4666;
	margin: 0 0 12px;
}
.estim-hero p {
	font-family: 'Lexend Exa', sans-serif;
	font-weight: 400;
	font-size: 18px;
	line-height: 1.5;
	letter-spacing: -0.09em;
	color: #646D90;
	margin: 0;
	max-width: 640px;
	margin-left: auto;
	margin-right: auto;
}

/* ── Form section ── */
.estim-section {
	padding: 80px 24px;
	background: #F0F4FF;
}
.estim-card {
	background: #fff;
	border: 1px solid #CFD6F9;
	border-radius: 16px;
	padding: 40px;
	max-width: 900px;
	margin: 0 auto;
	font-family: 'Lexend Exa', sans-serif;
	letter-spacing: -0.09em;
}

/* ── Stepper ── */
.estim-stepper {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	margin-bottom: 40px;
	gap: 0;
}
.estim-stepper__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	position: relative;
	flex: 1;
	max-width: 180px;
}
.estim-stepper__dot-row {
	display: flex;
	align-items: center;
	width: 100%;
	position: relative;
}
.estim-stepper__line-before,
.estim-stepper__line-after {
	flex: 1;
	height: 2px;
	background: #CFD6F9;
}
.estim-stepper__item:first-child .estim-stepper__line-before,
.estim-stepper__item:last-child .estim-stepper__line-after {
	background: transparent;
}
.estim-stepper__item.completed .estim-stepper__line-before,
.estim-stepper__item.completed .estim-stepper__line-after,
.estim-stepper__item.active .estim-stepper__line-before {
	background: #FFBA41;
}
.estim-stepper__dot {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: #CFD6F9;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 14px;
	font-weight: 700;
	color: #fff;
	flex-shrink: 0;
	transition: background 0.3s, transform 0.3s;
}
.estim-stepper__item.active .estim-stepper__dot {
	background: #996300;
	transform: scale(1.1);
}
.estim-stepper__item.completed .estim-stepper__dot {
	background: #FFBA41;
}
.estim-stepper__dot svg {
	display: none;
}
.estim-stepper__item.completed .estim-stepper__dot span {
	display: none;
}
.estim-stepper__item.completed .estim-stepper__dot svg {
	display: block;
}
.estim-stepper__label {
	margin-top: 8px;
	font-size: 13px;
	font-weight: 500;
	color: #B3BBDF;
	letter-spacing: -0.09em;
	transition: color 0.3s;
}
.estim-stepper__item.active .estim-stepper__label {
	color: #996300;
	font-weight: 700;
}
.estim-stepper__item.completed .estim-stepper__label {
	color: #FFBA41;
	font-weight: 600;
}

/* ── Form fields ── */
.estim-step {
	display: none;
}
.estim-step.active {
	display: block;
}
.estim-step__title {
	font-family: 'Lexend Exa', sans-serif;
	font-size: 22px;
	font-weight: 700;
	color: #3C4666;
	letter-spacing: -0.09em;
	margin: 0 0 24px;
}
.estim-row {
	display: flex;
	gap: 16px;
	margin-bottom: 0;
}
.estim-row > .estim-field {
	flex: 1;
}
.estim-field {
	margin-bottom: 20px;
}
/* Enfant direct uniquement : un `label` descendant matcherait aussi les cartes
   état (.estim-condition-card), les radios (.estim-radio-item) et les zones
   d'upload (.estim-upload__label) imbriquées dans un .estim-field, et écraserait
   leur display:flex (même bug que financement, SOL-358). */
.estim-field > label {
	display: block;
	font-family: 'Lexend Exa', sans-serif;
	font-weight: 600;
	font-size: 14px;
	letter-spacing: -0.09em;
	color: #4C5575;
	margin-bottom: 6px;
}
.estim-field > label .estim-req {
	color: #CC3333;
	margin-left: 2px;
}
.estim-field input,
.estim-field select,
.estim-field textarea {
	width: 100%;
	box-sizing: border-box;
	border: 1px solid #B3BBDF;
	border-radius: 8px;
	padding: 12px 16px;
	font-family: 'Lexend Exa', sans-serif;
	font-size: 16px;
	letter-spacing: -0.09em;
	color: #3C4666;
	background: #fff;
	transition: border-color 0.2s;
	outline: none;
	-webkit-appearance: none;
	appearance: none;
}
.estim-field select {
	background-image: url("data:image/svg+xml,%3Csvg width='12' height='8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5l5 5 5-5' stroke='%23646D90' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 16px center;
	padding-right: 40px;
}
.estim-field input[type="date"] {
	color-scheme: light;
}
.estim-field input[type="date"]::-webkit-calendar-picker-indicator {
	cursor: pointer;
	opacity: 0.6;
}
.estim-field input:focus,
.estim-field select:focus,
.estim-field textarea:focus {
	border-color: #996300;
}
.estim-field textarea {
	min-height: 100px;
	resize: vertical;
}
.estim-field input.estim-error,
.estim-field select.estim-error,
.estim-field textarea.estim-error {
	border-color: #CC3333;
}
.estim-field .estim-error-msg {
	font-size: 13px;
	color: #CC3333;
	margin-top: 4px;
	display: none;
}
.estim-field input.estim-error ~ .estim-error-msg,
.estim-field select.estim-error ~ .estim-error-msg,
.estim-field textarea.estim-error ~ .estim-error-msg {
	display: block;
}

/* Message informatif pays hors-Belgique (SOL-384, même mécanique que SOL-296) */
.estim-country-notice {
	margin: 0 0 20px;
	padding: 14px 16px;
	background: #FFF4E0;
	border: 1px solid #FFBA41;
	border-left: 4px solid #FFBA41;
	border-radius: 8px;
	font-size: 13px;
	line-height: 1.5;
	color: #6B4B00;
}

/* [hidden] l'emporte sur les display des composants du formulaire
   (avertissement pays, confirmation sans photo, message « photos à demander ») */
.estim-section [hidden] { display: none; }

/* ── Étape photos : aide (RDV) et confirmation d'envoi sans photo ── */
.estim-photos-alt {
	margin: 4px 0 0;
	font-size: 13px;
	line-height: 1.5;
	color: #646D90;
}
.estim-photos-alt a { color: var(--wp--preset--color--blue-400); text-decoration: underline; }
.estim-nophoto {
	margin-top: 16px;
	padding: 16px;
	border-radius: 12px;
	background: #FFF8E6;
	border: 1px solid #FFBA41;
	font-family: 'Lexend Exa', sans-serif;
	font-size: 14px;
	letter-spacing: -0.09em;
	color: #3C4666;
}
.estim-nophoto__text { margin: 0 0 12px; font-weight: 600; }
.estim-nophoto__actions { display: flex; flex-wrap: wrap; gap: 8px; }
.estim-nophoto__add,
.estim-nophoto__continue {
	padding: 10px 18px;
	border-radius: 80px;
	font-family: inherit;
	font-weight: 700;
	font-size: 14px;
	letter-spacing: -0.09em;
	cursor: pointer;
}
.estim-nophoto__add { background: #FFBA41; color: #22293E; border: 0; }
.estim-nophoto__continue { background: transparent; color: #3C4666; border: 2px solid #D59512; }
.estim-consent__error { margin-top: 6px; font-size: 12px; color: #c62828; }

/* ── Condition cards (Step 3) ── */
.estim-condition-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
	margin-bottom: 20px;
}
.estim-condition-card {
	border: 2px solid #CFD6F9;
	border-radius: 12px;
	padding: 16px;
	cursor: pointer;
	transition: border-color 0.2s, background 0.2s;
	display: flex;
	align-items: flex-start;
	gap: 12px;
}
.estim-condition-card:hover {
	border-color: #B3BBDF;
}
.estim-condition-card.selected {
	border-color: #996300;
	background: #FFFBF0;
}
.estim-condition-card input[type="radio"] {
	display: none;
}
.estim-condition-icon {
	width: 40px;
	height: 40px;
	border-radius: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.estim-condition-icon.icon-excellent { background: #E8F5E9; color: #2E7D32; }
.estim-condition-icon.icon-bon { background: #E3F2FD; color: #1565C0; }
.estim-condition-icon.icon-defauts { background: #FFF3E0; color: #E65100; }
.estim-condition-icon.icon-endommage { background: #FFEBEE; color: #C62828; }
.estim-condition-text h4 {
	font-family: 'Lexend Exa', sans-serif;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: -0.09em;
	color: #3C4666;
	margin: 0 0 2px;
}
.estim-condition-text p {
	font-family: 'Lexend Exa', sans-serif;
	font-size: 13px;
	font-weight: 400;
	letter-spacing: -0.09em;
	color: #646D90;
	margin: 0;
}
.estim-condition-grid.estim-error-border .estim-condition-card {
	border-color: #CC3333;
}
.estim-condition-grid.estim-error-border .estim-condition-card.selected {
	border-color: #996300;
}

/* ── Radio inline (CT) ── */
.estim-radio-group {
	display: flex;
	gap: 16px;
}
.estim-radio-item {
	display: flex;
	align-items: center;
	gap: 8px;
	cursor: pointer;
}
.estim-radio-item input[type="radio"] {
	width: 18px;
	height: 18px;
	accent-color: #996300;
	margin: 0;
	cursor: pointer;
	-webkit-appearance: auto;
	appearance: auto;
	padding: 0;
	border: none;
	border-radius: 0;
}
.estim-radio-item span {
	font-family: 'Lexend Exa', sans-serif;
	font-size: 15px;
	letter-spacing: -0.09em;
	color: #3C4666;
}

/* ── Navigation ── */
.estim-nav {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: 32px;
}
.estim-nav__prev {
	background: none;
	border: none;
	font-family: 'Lexend Exa', sans-serif;
	font-size: 15px;
	font-weight: 500;
	letter-spacing: -0.09em;
	color: #646D90;
	cursor: pointer;
	padding: 8px 0;
	transition: color 0.2s;
}
.estim-nav__prev:hover {
	color: #3C4666;
}
.estim-nav__prev.hidden {
	visibility: hidden;
}
.estim-nav__next,
.estim-nav__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 14px 24px;
	border-radius: 80px;
	background: #FFBA41;
	color: #22293E;
	font-family: 'Lexend Exa', sans-serif;
	font-weight: 700;
	font-size: 16px;
	letter-spacing: -0.09em;
	border: none;
	cursor: pointer;
	transition: opacity 0.2s;
}
.estim-nav__next:hover,
.estim-nav__submit:hover {
	opacity: 0.85;
}
.estim-nav__submit {
	display: none;
}
.estim-nav__submit.visible {
	display: inline-flex;
}
.estim-nav__next.hidden {
	display: none;
}

/* ── Consent ── */
.estim-consent {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	font-family: var(--wp--preset--font-family--lexend-exa);
	font-size: 13px;
	letter-spacing: -0.07em;
	color: var(--wp--preset--color--grey-400);
	line-height: 1.5;
	cursor: pointer;
	margin-top: 8px;
}
.estim-consent input { margin-top: 3px; flex-shrink: 0; }
.estim-consent a { color: var(--wp--preset--color--blue-400); text-decoration: underline; }

/* ── Spinner ── */
.estim-spinner {
	display: none;
	width: 20px;
	height: 20px;
	border: 3px solid rgba(34,41,62,0.2);
	border-top-color: #22293E;
	border-radius: 50%;
	animation: estim-spin 0.6s linear infinite;
}
@keyframes estim-spin {
	to { transform: rotate(360deg); }
}
.estim-nav__submit.loading .estim-spinner {
	display: block;
}
.estim-nav__submit.loading .estim-btn-text {
	opacity: 0.6;
}

/* ── Success ── */
.estim-success {
	display: none;
	text-align: center;
	padding: 40px 0;
}
.estim-success.visible {
	display: block;
}
.estim-success__icon {
	width: 72px;
	height: 72px;
	border-radius: 50%;
	background: #E8F5E9;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 24px;
	position: relative;
}
.estim-success__icon svg {
	width: 36px;
	height: 36px;
}
.estim-success__icon .icon-check { display: none; }
.estim-success__icon .icon-warning { display: none; }
.estim-success__icon .icon-spinner {
	width: 36px;
	height: 36px;
	border: 3px solid #C8E6C9;
	border-top-color: #2E7D32;
	border-radius: 50%;
	animation: estim-spin 0.8s linear infinite;
}
@keyframes estim-spin {
	to { transform: rotate(360deg); }
}
.estim-success.state-ok .icon-spinner { display: none; }
.estim-success.state-ok .icon-check { display: block; }
.estim-success.state-ok .icon-warning { display: none; }
.estim-success.state-error .icon-spinner { display: none; }
.estim-success.state-error .icon-check { display: none; }
.estim-success.state-error .icon-warning { display: block; }
.estim-success.state-error .estim-success__icon { background: #FFF3E0; }
.estim-success__failed { display: none; }
/* SOL-452 : échec d'envoi = plus de « Merci », de « bien reçu » ni de smileys ;
   titre d'échec + bouton de relance + téléphone / WhatsApp. */
.estim-success.state-error .estim-success__failed { display: block; }
.estim-success.state-error > h2,
.estim-success.state-error > p,
.estim-success.state-error .estim-feedback,
.estim-success.state-error .estim-success__actions { display: none; }
.estim-success__failed-title {
	font-family: 'Lexend Exa', sans-serif;
	font-weight: 700;
	font-size: 24px;
	letter-spacing: -0.09em;
	color: #3C4666;
	margin: 0 0 12px;
}
.estim-success p.estim-success__failed-text { margin: 0 auto 24px; }
.estim-success__retry { border: 0; cursor: pointer; }
.estim-success p.estim-success__failed-contact { margin: 24px auto 0; font-size: 14px; }
.estim-success__failed-contact a { color: #3C4666; font-weight: 700; margin-left: 8px; white-space: nowrap; }
.estim-success h2 {
	font-family: 'Lexend Exa', sans-serif;
	font-weight: 700;
	font-size: 26px;
	letter-spacing: -0.09em;
	color: #3C4666;
	margin: 0 0 12px;
}
.estim-success p {
	font-family: 'Lexend Exa', sans-serif;
	font-weight: 400;
	font-size: 16px;
	letter-spacing: -0.09em;
	color: #646D90;
	margin: 0 0 32px;
	max-width: 480px;
	margin-left: auto;
	margin-right: auto;
	line-height: 1.5;
}
.estim-success__actions {
	display: flex;
	gap: 12px;
	justify-content: center;
	flex-wrap: wrap;
	margin-top: 8px;
}
.estim-success__btn-primary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 10px 20px;
	border-radius: 80px;
	background: #FFBA41;
	color: #22293E;
	font-family: 'Lexend Exa', sans-serif;
	font-weight: 700;
	font-size: 14px;
	letter-spacing: -0.09em;
	text-decoration: none;
	transition: opacity 0.2s;
}
.estim-success__btn-primary:hover {
	opacity: 0.85;
}
.estim-success__btn-outline {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 10px 20px;
	border-radius: 80px;
	background: transparent;
	color: #22293E;
	border: 2px solid #D59512;
	font-family: 'Lexend Exa', sans-serif;
	font-weight: 700;
	font-size: 14px;
	letter-spacing: -0.09em;
	text-decoration: none;
	transition: opacity 0.2s;
}
.estim-success__btn-outline:hover {
	opacity: 0.85;
}

/* ── Feedback post-submit ── */
.estim-feedback {
	margin: 24px 0 0;
	padding: 0;
	border-top: 1px solid #ECF3FF;
	text-align: center;
}
p.estim-feedback__title {
	font-family: 'Lexend Exa', sans-serif;
	font-weight: 700;
	font-size: 16px;
	letter-spacing: -0.09em;
	color: #3C4666;
	margin: 0;
	padding-top: 24px;
	max-width: none;
}
.estim-feedback__field {
	margin-bottom: 16px;
}
.estim-feedback__field label {
	display: block;
	font-family: 'Lexend Exa', sans-serif;
	font-weight: 400;
	font-size: 14px;
	letter-spacing: -0.09em;
	color: #4C5575;
	margin-bottom: 6px;
}
.estim-feedback__field select,
.estim-feedback__field textarea {
	width: 100%;
	padding: 10px 14px;
	border: 1px solid #CFD6F9;
	border-radius: 12px;
	font-family: 'Lexend Exa', sans-serif;
	font-size: 14px;
	letter-spacing: -0.09em;
	color: #22293E;
	background: #fff;
	resize: vertical;
}
.estim-feedback__field select:focus,
.estim-feedback__field textarea:focus {
	outline: none;
	border-color: #FFBA41;
}
p.estim-feedback__question {
	font-family: 'Lexend Exa', sans-serif;
	font-weight: 400;
	font-size: 14px;
	letter-spacing: -0.09em;
	color: #646D90;
	margin: 12px 0 0;
	max-width: none;
}
/* ── Emoji rating ── */
.estim-feedback__emojis {
	display: flex;
	gap: 28px;
	justify-content: center;
	align-items: center;
	padding: 24px 0;
}
.estim-feedback__emoji {
	font-size: 36px;
	border: none;
	background: none;
	cursor: pointer;
	transition: transform 0.2s ease, opacity 0.2s ease;
	padding: 0;
	line-height: 1;
	opacity: 0.55;
}
.estim-feedback__emoji:hover {
	transform: scale(1.25);
	opacity: 1;
}
.estim-feedback__emoji.selected {
	transform: scale(1.25);
	opacity: 1;
}
/* ── Feedback details (slide open/close) ── */
.estim-feedback__details {
	max-height: 0;
	overflow: hidden;
	opacity: 0;
	transition: max-height 0.4s ease, opacity 0.3s ease, margin 0.4s ease;
	margin-top: 0;
	text-align: left;
	max-width: 420px;
	margin-left: auto;
	margin-right: auto;
}
.estim-feedback__details.visible {
	max-height: 400px;
	opacity: 1;
	margin-top: 20px;
	padding-bottom: 8px;
}
.estim-feedback__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 10px 20px;
	border-radius: 80px;
	background: #CFD6F9;
	color: #3C4666;
	font-family: 'Lexend Exa', sans-serif;
	font-weight: 700;
	font-size: 14px;
	letter-spacing: -0.09em;
	border: none;
	cursor: pointer;
	transition: opacity 0.2s;
	width: 100%;
}
.estim-feedback__submit:hover { opacity: 0.85; }
.estim-feedback__submit:disabled { opacity: 0.5; cursor: not-allowed; }
.estim-feedback__done {
	display: none;
	text-align: center;
	font-family: 'Lexend Exa', sans-serif;
	font-size: 14px;
	letter-spacing: -0.09em;
	color: #10704B;
	padding: 12px 0;
}

/* ── Responsive ── */
@media (max-width: 1024px) {
	.estim-hero {
		padding: 60px 16px;
	}
	.estim-hero h1 {
		font-size: 26px;
	}
	.estim-section {
		padding: 40px 16px;
	}
	.estim-card {
		padding: 24px;
	}
	.estim-stepper__label {
		display: none;
	}
	.estim-condition-grid {
		grid-template-columns: 1fr;
	}
	.estim-row {
		flex-direction: column;
		gap: 0;
	}
	.estim-nav__next,
	.estim-nav__submit {
		width: 100%;
		text-align: center;
	}
	.estim-nav__prev {
		width: auto;
	}
	.estim-nav {
		flex-wrap: wrap;
		gap: 12px;
	}
	.estim-success__actions {
		flex-direction: column;
		align-items: stretch;
	}
	.estim-success__btn-primary,
	.estim-success__btn-outline {
		text-align: center;
	}
}

/* Cookie consent gate */
.estim-cookie-gate {
	max-width: 900px;
	margin: 0 auto 24px;
}
.estim-cookie-gate__inner {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 16px 20px;
	background: #FFF8E1;
	border: 1px solid #FFBA41;
	border-radius: 12px;
	font-family: var(--wp--preset--font-family--lexend-exa);
	font-size: 14px;
	letter-spacing: -0.07em;
	color: #5D4E37;
}
.estim-cookie-gate__inner svg {
	flex-shrink: 0;
	stroke: #996300;
}
.estim-cookie-gate__inner p {
	margin: 0;
	flex: 1;
}
.estim-cookie-gate__btn {
	flex-shrink: 0;
	padding: 8px 20px;
	background: #FFBA41;
	color: #3C4666;
	border: none;
	border-radius: 8px;
	font-family: var(--wp--preset--font-family--lexend-exa);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: -0.07em;
	cursor: pointer;
	transition: background 0.2s;
}
.estim-cookie-gate__btn:hover {
	background: #E5A73A;
}

/* Upload zones */
.estim-upload__hint {
	font-size: 13px;
	color: var(--wp--preset--color--grey-400);
	margin: -4px 0 8px;
	font-style: italic;
}
.estim-optional {
	font-weight: 400;
	font-size: 12px;
	color: var(--wp--preset--color--grey-400);
}
.estim-upload__input {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
	overflow: hidden;
}
.estim-upload__label {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 20px;
	border: 2px dashed var(--wp--preset--color--grey-200);
	border-radius: 12px;
	cursor: pointer;
	color: var(--wp--preset--color--grey-400);
	font-family: var(--wp--preset--font-family--lexend-exa);
	font-size: 14px;
	letter-spacing: -0.07em;
	transition: border-color 0.2s, color 0.2s;
}
.estim-upload__label:hover,
.estim-upload--dragover .estim-upload__label {
	border-color: var(--wp--preset--color--blue-400);
	color: var(--wp--preset--color--blue-500);
}
.estim-upload--dragover .estim-upload__label {
	background: var(--wp--preset--color--blue-50, #F0F7FF);
	border-style: solid;
}
.estim-upload--processing {
	position: relative;
	pointer-events: none;
}
.estim-upload--processing::after {
	content: '';
	position: absolute;
	inset: 0;
	background: rgba(255,255,255,0.6);
	border-radius: 12px;
	z-index: 2;
}
.estim-upload--processing::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 32px;
	height: 32px;
	margin: -16px 0 0 -16px;
	border: 3px solid var(--wp--preset--color--grey-200);
	border-top-color: var(--wp--preset--color--blue-400);
	border-radius: 50%;
	animation: estim-spin 0.6s linear infinite;
	z-index: 3;
}
.estim-upload__preview {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 8px;
}
.estim-upload__preview img {
	width: 64px;
	height: 64px;
	object-fit: cover;
	border-radius: 8px;
	border: 1px solid var(--wp--preset--color--grey-100);
	cursor: pointer;
}
.estim-upload__preview .estim-upload__file {
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 6px 12px;
	background: var(--wp--preset--color--grey-50);
	border-radius: 8px;
	font-family: var(--wp--preset--font-family--lexend-exa);
	font-size: 12px;
	color: var(--wp--preset--color--grey-600);
}
.estim-upload__thumb {
	position: relative;
	display: inline-block;
}
.estim-upload__remove {
	position: absolute;
	top: -6px;
	right: -6px;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: #CC3333;
	color: #fff;
	border: 2px solid #fff;
	font-size: 12px;
	line-height: 16px;
	text-align: center;
	cursor: pointer;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}
.estim-upload__remove:hover {
	background: #aa1111;
}
.estim-upload__count {
	font-family: var(--wp--preset--font-family--lexend-exa);
	font-size: 12px;
	color: var(--wp--preset--color--grey-400);
	letter-spacing: -0.07em;
	margin-top: 4px;
}
.estim-upload__thumb--loading {
	position: relative;
}
.estim-upload__thumb--loading::after {
	content: '';
	position: absolute;
	inset: 0;
	background: rgba(255,255,255,0.7);
	border-radius: 8px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.estim-upload__thumb--loading::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 20px;
	height: 20px;
	margin: -10px 0 0 -10px;
	border: 2px solid var(--wp--preset--color--grey-200);
	border-top-color: var(--wp--preset--color--blue-400);
	border-radius: 50%;
	animation: estim-spin 0.6s linear infinite;
	z-index: 1;
}
@keyframes estim-spin {
	to { transform: rotate(360deg); }
}
.estim-lightbox {
	position: fixed;
	inset: 0;
	z-index: 10000;
	background: rgba(0,0,0,0.85);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: zoom-out;
}
.estim-lightbox img {
	max-width: 90vw;
	max-height: 90vh;
	border-radius: 12px;
	object-fit: contain;
}
