/* TSI Propstack Bridge — Shortcode form styles
   Neutral baseline. Themes can override .tsi-ps-* freely. */

.tsi-ps-form-wrap{
	max-width:760px;
	margin:1.5em 0;
	font-family:inherit;
	font-size:14px;
	line-height:1.45;
	color:inherit;
}
.tsi-ps-form-title{
	margin:0 0 .8em;
	font-size:1.25em;
	line-height:1.25;
}
.tsi-ps-form{
	display:flex;
	flex-direction:column;
	gap:.85em;
	font-size:14px;
}
/* Defensive Margin-Reset: viele Themes (z.B. Page Builder Framework) geben button/p/label
   globale Margins (`margin-bottom: 1.5em` o.ä.), die sich auf unsere Flex-Gap drauf addieren
   und große Lücken erzeugen. !important nötig, weil Theme-Selektoren oft höhere Spezifität haben. */
.tsi-ps-form > *,
.tsi-ps-form label,
.tsi-ps-form p,
.tsi-ps-form button{
	margin:0 !important;
}
.tsi-ps-form-title{
	margin:0 0 .8em !important;
}
.tsi-ps-form fieldset{
	border:1px solid #e3e3e6;
	border-radius:8px;
	padding:1em 1.2em 1.2em;
	margin:0;
}
.tsi-ps-form legend{
	padding:0 .4em;
	font-weight:600;
	font-size:.95em;
	color:#3c434a;
}
.tsi-ps-row{
	display:flex;
	flex-wrap:wrap;
	gap:1em;
}
.tsi-ps-row + .tsi-ps-row{
	margin-top:.8em;
}
/* Standalone (direkt im .tsi-ps-form, also column-flex):
   flex-basis darf KEINE Höhe sein — sonst werden Felder absurd hoch.
   Daher Standard `0 0 auto`. */
.tsi-ps-field{
	display:flex;
	flex-direction:column;
	flex:0 0 auto;
	min-width:0;
}
/* Innerhalb einer .tsi-ps-row (row-flex): basis 220px = Mindest-Breite, grow/shrink aktiv. */
.tsi-ps-row > .tsi-ps-field{
	flex:1 1 220px;
}
.tsi-ps-row > .tsi-ps-field.tsi-ps-field-small{
	flex:0 1 140px;
}
.tsi-ps-label{
	display:block;
	margin-bottom:.25em;
	font-size:12px;
	font-weight:500;
	color:#3c434a;
	line-height:1.3;
}
.tsi-ps-form input[type=text],
.tsi-ps-form input[type=email],
.tsi-ps-form input[type=tel],
.tsi-ps-form input[type=number],
.tsi-ps-form select,
.tsi-ps-form textarea{
	width:100%;
	box-sizing:border-box;
	padding:.45em .7em;
	border:1px solid #c3c4c7;
	border-radius:5px;
	background:#fff;
	font-family:inherit;
	font-size:14px;
	line-height:1.4;
	color:inherit;
	transition:border-color .15s ease, box-shadow .15s ease;
}
.tsi-ps-form input:focus,
.tsi-ps-form select:focus,
.tsi-ps-form textarea:focus{
	outline:0;
	border-color:#2271b1;
	box-shadow:0 0 0 2px rgba(34,113,177,.18);
}
.tsi-ps-form textarea{
	min-height:4.5em;
	resize:vertical;
}
.tsi-ps-checkbox{
	display:flex;
	gap:.6em;
	align-items:flex-start;
	font-size:13px;
	line-height:1.4;
}
.tsi-ps-checkbox input{
	flex:0 0 auto;
	margin-top:.15em;
}
.tsi-ps-submit{
	align-self:flex-start;
	padding:.55em 1.2em;
	border:0;
	border-radius:5px;
	background:#2271b1;
	color:#fff;
	font-family:inherit;
	font-size:14px;
	font-weight:600;
	cursor:pointer;
	transition:background .15s ease;
}
.tsi-ps-submit:hover,
.tsi-ps-submit:focus{
	background:#135e96;
}
.tsi-ps-submit[disabled]{
	background:#a7aaad;
	cursor:not-allowed;
}
.tsi-ps-hint{
	margin:0;
	font-size:12px;
	color:#646970;
}
.tsi-ps-form fieldset legend{
	font-size:13px;
}
.tsi-ps-notice{
	margin:0 0 1em;
	padding:.75em 1em;
	border-radius:5px;
	font-size:13px;
}
.tsi-ps-notice-ok{
	background:#e6f4ea;
	border:1px solid #b7e0c1;
	color:#0a6d2f;
}
.tsi-ps-notice-err{
	background:#fde8e8;
	border:1px solid #f3b7b7;
	color:#9a1f1f;
}
@media (max-width:600px){
	.tsi-ps-row > .tsi-ps-field,
	.tsi-ps-row > .tsi-ps-field.tsi-ps-field-small{
		flex:1 1 100%;
	}
}
