/* Formulario de presupuesto: mismo aspecto que el diseño original. */
.itp-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 1.25rem; }
@media (max-width: 600px) { .itp-form { grid-template-columns: 1fr; } }
.itp-field { display: flex; flex-direction: column; gap: 0.375rem; margin: 0; min-width: 0; }
.itp-field--wide { grid-column: 1 / -1; }
.itp-field > label, .itp-label, .itp-radios legend {
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--wp--preset--color--muted-foreground, #5e6370);
}
.itp-req { color: #dc2626; }
.itp-form input[type="text"], .itp-form input[type="tel"], .itp-form input[type="email"], .itp-form input[type="number"],
.itp-form select, .itp-form textarea {
	width: 100%;
	height: 2.5rem;
	padding: 0.5rem 0.75rem;
	border: 1px solid var(--wp--preset--color--line, #DAD6C8);
	border-radius: 6px;
	background: var(--wp--preset--color--base, #dcd8d6);
	color: var(--wp--preset--color--contrast, #191d24);
	font: inherit;
	font-size: 0.875rem;
	box-sizing: border-box;
}
.itp-form textarea { height: auto; min-height: 5rem; resize: none; }
.itp-form input:focus, .itp-form select:focus, .itp-form textarea:focus {
	outline: 2px solid var(--wp--preset--color--primary, #79a31f);
	outline-offset: 1px;
}
.itp-form [aria-invalid="true"] { border-color: #dc2626; }
.itp-error { margin: 0; font-size: 0.75rem; color: #dc2626; }

.itp-radios { border: 0; padding: 0; }
.itp-radios legend { padding: 0; margin-bottom: 0.5rem; }
.itp-radios__list { display: flex; flex-wrap: wrap; gap: 0.75rem 1.25rem; }
.itp-radio { display: inline-flex; align-items: center; gap: 0.5rem; font-size: 0.875rem; cursor: pointer; }
.itp-radio input { width: 1rem; height: 1rem; margin: 0; accent-color: var(--wp--preset--color--primary, #79a31f); }
.itp-radio.is-highlight { color: var(--wp--preset--color--primary, #79a31f); font-weight: 500; }

.itp-file { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.itp-drop {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.5rem;
	padding: 1.5rem;
	border: 2px dashed var(--wp--preset--color--line, #DAD6C8);
	border-radius: 0.5rem;
	background: rgba(201, 198, 196, 0.3);
	cursor: pointer;
	text-align: center;
	transition: border-color 0.2s;
}
.itp-drop:hover, .itp-drop.is-over, .itp-file:focus-visible + .itp-drop { border-color: rgba(121, 163, 31, 0.5); }
.itp-drop[hidden] { display: none; }
.itp-drop svg { width: 2rem; height: 2rem; color: var(--wp--preset--color--muted-foreground, #5e6370); }
.itp-drop__title { font-size: 0.875rem; color: var(--wp--preset--color--muted-foreground, #5e6370); }
.itp-drop__hint { font-size: 0.75rem; color: rgba(94, 99, 112, 0.6); }
.itp-preview { display: flex; align-items: center; gap: 0.75rem; padding: 0.75rem; border: 1px solid var(--wp--preset--color--line, #DAD6C8); border-radius: 0.5rem; background: rgba(201, 198, 196, 0.3); }
.itp-preview[hidden] { display: none; }
.itp-preview img { width: 4rem; height: 4rem; object-fit: cover; border-radius: 0.375rem; border: 1px solid var(--wp--preset--color--line, #DAD6C8); }
.itp-preview__info { flex: 1; min-width: 0; }
.itp-preview__info p { margin: 0; }
.itp-preview__name { font-size: 0.875rem; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.itp-preview__size { font-size: 0.75rem; color: var(--wp--preset--color--muted-foreground, #5e6370); }
.itp-preview__remove { width: 2rem; height: 2rem; border: 0; border-radius: 9999px; background: transparent; font-size: 1.25rem; cursor: pointer; color: var(--wp--preset--color--muted-foreground, #5e6370); }
.itp-preview__remove:hover { background: rgba(220, 38, 38, 0.1); color: #dc2626; }

.itp-consent { flex-direction: row; align-items: flex-start; gap: 0.5rem; flex-wrap: wrap; }
.itp-consent input { margin-top: 0.2rem; accent-color: var(--wp--preset--color--primary, #79a31f); }
.itp-consent label { flex: 1; font-size: 0.75rem; line-height: 1.6; text-transform: none; letter-spacing: 0; }
.itp-consent a { text-decoration: underline; text-underline-offset: 2px; }
.itp-consent .itp-error { flex-basis: 100%; }

.itp-submit { padding: 0.75rem 2rem; border: 0; cursor: pointer; box-shadow: 0 0 24px -4px rgba(137, 184, 35, 0.4); }
.itp-submit:disabled { opacity: 0.6; cursor: wait; }
@media (max-width: 600px) { .itp-submit { width: 100%; } }

.itp-notice { margin-top: 1rem; padding: 0.875rem 1rem; border-radius: 0.5rem; border: 1px solid rgba(121, 163, 31, 0.5); background: rgba(121, 163, 31, 0.12); color: var(--wp--preset--color--contrast, #191d24); font-size: 0.875rem; }
.itp-notice.is-error { border-color: rgba(220, 38, 38, 0.4); background: rgba(220, 38, 38, 0.08); }
.itp-notice[hidden] { display: none; }
.itp-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.itp { position: relative; }
.itp-field > label.itp-drop { text-transform: none; letter-spacing: 0; font-size: inherit; }
.itp-optional { text-transform: none; letter-spacing: 0; opacity: 0.75; }
.itp-hint { margin: 0; font-size: 0.75rem; color: var(--wp--preset--color--primary-dark, #5E7A0A); }
.itp-hint::before { content: "🌍 "; }

/* Teléfono con prefijo */
.itp-phone { display: flex; gap: 0.4rem; min-width: 0; }
.itp-phone select { flex: 0 0 6.25rem; width: 6.25rem; padding-inline: 0.5rem; text-overflow: ellipsis; }
.itp-phone input { flex: 1; min-width: 0; }
.itp-phone__prefix { position: relative; flex: 0 0 5.75rem; }
.itp-phone__prefix select { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.itp-phone__label {
	display: flex; align-items: center; justify-content: space-between; gap: 0.25rem; height: 2.5rem; padding: 0 0.6rem;
	border: 1px solid var(--wp--preset--color--line, #DAD6C8); border-radius: 6px; background: var(--wp--preset--color--base, #F5F3EC);
	font-size: 0.875rem; white-space: nowrap; box-sizing: border-box;
}
.itp-phone__label::after { content: "▾"; font-size: 0.7rem; opacity: 0.6; }
.itp-phone__prefix:focus-within .itp-phone__label { outline: 2px solid var(--wp--preset--color--primary, #A0C818); outline-offset: 1px; }
