
.avp-kontakt-hp {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.avp-kontakt-layout-row {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    margin-right: -0.35rem;
    margin-left: -0.35rem;
}

.avp-kontakt-layout-col {
    box-sizing: border-box;
    min-width: 0;
    padding-right: 0.35rem;
    padding-left: 0.35rem;
}
.avp-kontakt-layout-col-10 { flex: 0 0 10%; max-width: 10%; }
.avp-kontakt-layout-col-20 { flex: 0 0 20%; max-width: 20%; }
.avp-kontakt-layout-col-30 { flex: 0 0 30%; max-width: 30%; }
.avp-kontakt-layout-col-40 { flex: 0 0 40%; max-width: 40%; }
.avp-kontakt-layout-col-50 { flex: 0 0 50%; max-width: 50%; }
.avp-kontakt-layout-col-60 { flex: 0 0 60%; max-width: 60%; }
.avp-kontakt-layout-col-70 { flex: 0 0 70%; max-width: 70%; }
.avp-kontakt-layout-col-80 { flex: 0 0 80%; max-width: 80%; }
.avp-kontakt-layout-col-90 { flex: 0 0 90%; max-width: 90%; }
.avp-kontakt-layout-col-100 { flex: 0 0 100%; max-width: 100%; }
.avp-kontakt-layout-col-25 { flex: 0 0 25%; max-width: 25%; }
.avp-kontakt-layout-col-33 { flex: 0 0 33.333333%; max-width: 33.333333%; }
.avp-kontakt-layout-col-66 { flex: 0 0 66.666667%; max-width: 66.666667%; }
.avp-kontakt-layout-col-75 { flex: 0 0 75%; max-width: 75%; }

.avp-kontakt-field,
.avp-kontakt-field-recipient-choice,
.avp-kontakt-conditional-field,
.avp-kontakt-email-part {
    display: grid;
    grid-template-columns: minmax(7rem, 12.5rem) minmax(0, 1fr);
    column-gap: 10px;
    align-items: center;
    width: 100%;
    box-sizing: border-box;
    margin: 0 0 0.65rem;
}

.avp-kontakt-field-label {
    min-width: 0;
    max-width: 12.5rem;
    text-align: right;
    overflow-wrap: anywhere;
}

.avp-kontakt-field-control {
    min-width: 0;
}

.avp-kontakt-field-control > input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.avp-kontakt-field-control > select,
.avp-kontakt-field-control > textarea {
    display: block;
    width: 100%;
    box-sizing: border-box;
    max-width: 100%;
}

.avp-kontakt-input-width-compact .avp-kontakt-field-control > input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.avp-kontakt-input-width-compact .avp-kontakt-field-control > select { width: min(100%, 10rem); }
.avp-kontakt-input-width-medium .avp-kontakt-field-control > input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.avp-kontakt-input-width-medium .avp-kontakt-field-control > select { width: min(100%, 18rem); }
.avp-kontakt-input-width-wide .avp-kontakt-field-control > input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.avp-kontakt-input-width-wide .avp-kontakt-field-control > select { width: min(100%, 30rem); }
.avp-kontakt-input-width-full .avp-kontakt-field-control > input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.avp-kontakt-input-width-full .avp-kontakt-field-control > select,
.avp-kontakt-input-width-full .avp-kontakt-field-control > textarea { width: 100%; }

.avp-kontakt-input-width-auto.avp-kontakt-field-type-date .avp-kontakt-field-control > input,
.avp-kontakt-input-width-auto.avp-kontakt-field-type-birthday .avp-kontakt-field-control > input { width: min(100%, 12rem); }
.avp-kontakt-input-width-auto.avp-kontakt-field-type-tel .avp-kontakt-field-control > input { width: min(100%, 20rem); }
.avp-kontakt-input-width-auto.avp-kontakt-field-type-email .avp-kontakt-field-control > input { width: 100%; }
.avp-kontakt-input-width-auto.avp-kontakt-field-type-select .avp-kontakt-field-control > select { width: min(100%, 24rem); }
.avp-kontakt-input-width-auto.avp-kontakt-field-type-text .avp-kontakt-field-control > input { width: min(100%, 28rem); }
.avp-kontakt-input-width-auto.avp-kontakt-field-type-textarea .avp-kontakt-field-control > textarea { width: 100%; }

.avp-kontakt-field-type-textarea,
.avp-kontakt-field-type-privacy,
.avp-kontakt-field-type-checkbox,
.avp-kontakt-field-type-radio { align-items: start; }

.avp-kontakt-field-help,
.avp-kontakt-age-output { display: block; }

.avp-kontakt-options {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0.5rem 1rem;
}

.avp-kontakt-consent-label {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    column-gap: 10px;
    align-items: start;
    width: 100%;
}

.avp-kontakt-consent-label > input[type="checkbox"] {
    margin-top: 0.2em;
}

.avp-kontakt-consent-text {
    min-width: 0;
}

.avp-kontakt-field-email-pair {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem 1rem;
    align-items: start;
}

.avp-kontakt-field-email-pair > .avp-kontakt-email-part {
    margin-bottom: 0;
}

.avp-kontakt-email-help { grid-column: 1 / -1; }
.avp-kontakt-conditional-groups { grid-column: 1 / -1; width: 100%; }
.avp-kontakt-conditional-group { width: 100%; }
.avp-kontakt-conditional-group[hidden] { display: none; }

.avp-kontakt-submit {
    display: grid;
    grid-template-columns: minmax(7rem, 12.5rem) minmax(0, 1fr);
    column-gap: 10px;
}
.avp-kontakt-submit > button { grid-column: 2; justify-self: start; }

.avp-kontakt-layout-col-10 .avp-kontakt-field,
.avp-kontakt-layout-col-20 .avp-kontakt-field,
.avp-kontakt-layout-col-30 .avp-kontakt-field,
.avp-kontakt-layout-col-40 .avp-kontakt-field {
    grid-template-columns: max-content minmax(0, 1fr);
}
.avp-kontakt-layout-col-10 .avp-kontakt-field-label,
.avp-kontakt-layout-col-20 .avp-kontakt-field-label,
.avp-kontakt-layout-col-30 .avp-kontakt-field-label,
.avp-kontakt-layout-col-40 .avp-kontakt-field-label { max-width: none; }

@media (max-width: 1100px) {
    .avp-kontakt-field-email-pair { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 782px) {
    .avp-kontakt-layout-row { margin-right: 0; margin-left: 0; }
    .avp-kontakt-layout-col { flex-basis: 100%; max-width: 100%; padding-right: 0; padding-left: 0; }
    .avp-kontakt-field,
    .avp-kontakt-field-recipient-choice,
    .avp-kontakt-conditional-field,
    .avp-kontakt-email-part,
    .avp-kontakt-submit {
        grid-template-columns: minmax(0, 1fr);
        row-gap: 0.25rem;
    }
    .avp-kontakt-field-label { max-width: none; text-align: left; }
    .avp-kontakt-submit > button { grid-column: 1; }
}

.avp-kontakt-area[hidden] { display: none !important; }
.avp-kontakt-area-title { width: 100%; }

/* Stored per-field widths are shared with the visual editor. */
.avp-kontakt-layout-row {
	display: flex;
	flex-wrap: wrap;
	width: calc(100% + .7rem);
	margin: 0 -.35rem;
	row-gap: .7rem;
}
.avp-kontakt-layout-col {
	flex: 0 0 var(--avp-field-width, 100%);
	max-width: var(--avp-field-width, 100%);
	min-width: 0;
	padding: 0 .35rem;
}
@media (max-width: 782px) {
	.avp-kontakt-layout-row { width: 100%; margin: 0; }
	.avp-kontakt-layout-col { flex-basis: 100%; max-width: 100%; padding: 0; }
}

/* 1.2.36: Keep an accessible label while removing its visible layout column. */
.avp-kontakt-form .avp-kontakt-field-placeholder-only {
	position: relative;
	grid-template-columns: minmax(0, 1fr);
}
.avp-kontakt-form .avp-kontakt-label-visually-hidden {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	clip-path: inset(50%) !important;
	white-space: nowrap !important;
	border: 0 !important;
}
