fieldset div { width:100%; }
label, div#label { min-width:100px; }
textarea.form { width:20em; }

td.labelma { width:25%; }
td.eingabe input, td.eingabe select { width:35%; }
td.eingabe input.hnr, td.eingabe input.plz { width:10%; }

select, option, input { font-size:15px; width:66%; }
input#sepa_erlaubnis, input#agb { width:6%; }

input.senden {
  background:var(--gptbasis); color:#fff; font-size:15px; font-weight:600;
  height:70px; text-align:center; vertical-align:middle; width:66%;
}

/* anmeldeform-spezifisch */
.anmeldeform td:first-child { vertical-align:top; font-weight:normal; white-space:nowrap; padding-top:2px; }
.anmeldeform label, .anmeldeform input, .anmeldeform select, .anmeldeform textarea {
  width:auto !important; min-width:0 !important; font-size:15px;
}
.anmeldeform label { display:block; margin:0 !important; line-height:1.25; }
.anmeldeform label > span { margin-left:.25rem; }
.anmeldeform .indent { padding-left:2rem; }
.anmeldeform .inline-options label { display:inline-block; margin-right:1rem !important; }
.anmeldeform textarea.form { width:28em !important; }
.anmeldeform input.senden, .anmeldeform button.senden {
  width:auto !important; min-width:10rem; height:3rem;
}

@media screen and (max-width:480px) {
  td.eingabe input, td.eingabe select, textarea.form { width:100%; }
  input.senden, button.senden { width:auto; min-width:10rem; }
}

/* === Kontaktformular ================================== */
.kontakt-form {
  max-width: 760px;
  margin: 2rem auto;
  padding: 0 1rem;
}

/* Felder */
.field { margin: 0 0 1rem; }
.field label { display: block; font-weight: 600; margin-bottom: .35rem; }

.field input[type="text"],
.field input[type="email"],
.field textarea {
  width: 100%;
  padding: .7rem;
  border: 1px solid #ccc;
  border-radius: .5rem;
  box-sizing: border-box;
  font: inherit;
  line-height: 1.2;
  min-height: 44px; /* Touch-Zielgröße */
}

/* Select im gleichen Stil wie Inputs */
.field select{
  display: block;
  width: 100%;
  box-sizing: border-box;
  font: inherit;
  line-height: 1.2;
  padding: .7rem 2.2rem .7rem .7rem; /* Platz rechts für Pfeil */
  border: 1px solid #ccc;
  border-radius: .5rem;
  background-color: #fff;
  /* eigener Pfeil (SVG), ohne extra Markup */
  background-image:
    url("data:image/svg+xml;utf8,<svg fill='currentColor' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path d='M5.5 7.5l4.5 5 4.5-5z'/></svg>");
  background-repeat: no-repeat;
  background-position: right .7rem center;
  background-size: 1rem auto;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  min-height: 44px;
}

/* Fokus-Feedback analog Utility-Fokus, aber feldspezifisch */
.field input[type="text"]:focus,
.field input[type="email"]:focus,
.field textarea:focus,
.field select:focus {
  border-color: var(--gptlogofarbe, #6D5092);
  outline: 0;
  box-shadow: 0 0 0 3px rgba(109, 80, 146, .15);
}

/* IE/Edge (alt) – nativen Pfeil verstecken */
.field select::-ms-expand { display: none; }

/* 2-Spalten Grid für nebeneinanderliegende Felder */
.row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
@media (max-width: 700px) {
  .row { grid-template-columns: 1fr; }
}


/* BRIDGE: Tabellen-Formular im Kontaktstil */
.kontakt-form .tbl_form { width: 100%; border-collapse: collapse; }
.kontakt-form .tbl_form td { padding: .35rem .5rem; vertical-align: top; }

/* linke Spalte als „Label“ */
.kontakt-form .tbl_form td:first-child {
  font-weight: 600;
  white-space: nowrap;
  padding-top: .6rem;
}

/* Eingabefelder wie moderne Inputs */
.kontakt-form .tbl_form input.form,
.kontakt-form .tbl_form textarea.form,
.kontakt-form .tbl_form select {
  width: 100%;
  box-sizing: border-box;
  font: inherit;
  line-height: 1.2;
  min-height: 44px;
  padding: .7rem;
  border: 1px solid #ccc;
  border-radius: .5rem;
}

/* Select-Pfeil wie bei .field select */
.kontakt-form .tbl_form select {
  background-color: #fff;
  background-image:
    url("data:image/svg+xml;utf8,<svg fill='currentColor' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path d='M5.5 7.5l4.5 5 4.5-5z'/></svg>");
  background-repeat: no-repeat;
  background-position: right .7rem center;
  background-size: 1rem auto;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
.kontakt-form .tbl_form select:focus,
.kontakt-form .tbl_form input.form:focus,
.kontakt-form .tbl_form textarea.form:focus {
  border-color: var(--gptlogofarbe, #6D5092);
  outline: 0;
  box-shadow: 0 0 0 3px rgba(109, 80, 146, .15);
}

/* Mobile: einspaltig */
@media (max-width: 700px) {
  .kontakt-form .tbl_form td { display: block; width: 100%; }
  .kontakt-form .tbl_form tr { display: block; margin-bottom: .75rem; }
  .kontakt-form .tbl_form td:first-child { padding-top: 0; margin-bottom: .25rem; }
}
