@charset "UTF-8";

/* 
   shop_v3_adapter.css 
   RE-KONSOLIDIERT: Basiert zu 100% auf 'shop_v3_adapter - _custinfo komplett OK.css'
   Sicherheits-Korrektur: Regeln sind strikt auf Shop-Tabellen begrenzt, um Header/Footer nicht auszublenden.
*/

/* 1. Das Grid-Layout für CUSTINFO und SHIPINFO (Perfekt-Status) */
.CUSTINFOPARENT, 
.SHIPINFOPARENT, 
[class*="CUSTINFO"] { 
  width: 100% !important;
  border-collapse: collapse !important;
  display: block !important;
  max-width: 1200px !important;
  margin: 0 auto !important;
}

.CUSTINFOPARENT > tbody, 
.SHIPINFOPARENT > tbody,
[class*="CUSTINFO"] > tbody {
  display: grid !important;
  grid-template-columns: 220px 1fr !important; 
  gap: 4px 1.5rem !important; 
  padding: 0 !important;
  align-items: center !important;
}

.CUSTINFOPARENT tr, 
.SHIPINFOPARENT tr,
[class*="CUSTINFO"] tr {
  display: contents !important;
}

/* 2. VERIFY- und PAYMENT-Tabellen (Sicherere Struktur) */
.VERIFYPARENT, 
.PAYMENTPARENT {
  width: 100% !important;
  border-collapse: collapse !important;
  max-width: 1200px !important;
  margin: 0 auto 1.5rem auto !important;
}

/* 2. Die grauen Label-Felder (links) - NUR für CUST/SHIP */
.CUSTINFOBODY:has(> .FORMCAPTION),
.SHIPINFOBODY:has(> .FORMCAPTION) {
  grid-column: 1 !important;
  background: #dce4e8 !important;
  padding: 0 12px !important;
  height: 34px !important; 
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  border-radius: 4px 0 0 4px !important;
  overflow: hidden !important; 
}

/* Blendet graue Boxen aus, wenn kein Label vorhanden ist */
.CUSTINFOBODY[wrap]:not(:has(> .FORMCAPTION)),
.SHIPINFOBODY[wrap]:not(:has(> .FORMCAPTION)) {
  background: transparent !important;
}

/* Text-Styling für Labels */
.FORMCAPTION {
  font-size: 1.0rem !important; 
  font-weight: 700 !important;
  color: #006499 !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 34px !important; 
  display: block !important;
  white-space: nowrap !important;
}

.FORMCAPTION br {
  display: none !important;
}

/* 4. Die Eingabe-Spalte (rechts) - NUR für CUST/SHIP */
.CUSTINFOBODY[colspan="4"],
.SHIPINFOBODY[colspan="4"] {
  grid-column: 2 !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
}

/* 5. Spezielles Styling für die VERIFY-Seite (Zusammenfassung) */

/* Grund-Ausrichtung: Alles linksbündig erzwingen */
.VERIFYPARENT td.VERIFYBODY {
  text-align: left !important;
  padding-left: 15px !important;
  color: #1e293b !important;
  line-height: 1.1 !important;
  position: relative !important;
  vertical-align: top !important;
}

/* Adress-Blöcke (Rechnung & Lieferung) */
.VERIFYPARENT td.VERIFYBODY:has(> strong) {
  padding-left: 235px !important;
  padding-top: 0 !important;
  min-height: 34px !important;
}

/* Das Label absolut positionieren */
.VERIFYPARENT td.VERIFYBODY > strong {
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  width: 220px !important;
  height: 34px !important;
  line-height: 34px !important;
  background: #dce4e8 !important;
  color: #006499 !important;
  font-weight: 700 !important;
  text-align: right !important;
  padding: 0 12px !important;
  border-radius: 4px 0 0 4px !important;
  box-sizing: border-box !important;
  display: block !important;
}

/* Den eigentlichen Adress-Inhalt (Text, font, etc.) nach links zwingen */
.VERIFYPARENT td.VERIFYBODY,
.VERIFYPARENT td.VERIFYBODY font,
.VERIFYPARENT td.VERIFYBODY span,
.VERIFYPARENT td.VERIFYBODY div,
.VERIFYPARENT td.VERIFYBODY b {
  text-align: left !important;
  display: inline-block !important;
  width: auto !important;
  max-width: 280px !important; /* Trick: Begrenzt die Breite, damit Zusatz, PLZ/Ort und Land umbrechen */
  line-height: 1.1 !important;
  margin: 0 !important;
  padding: 0 !important;
  vertical-align: top !important;
}

/* Zeilenabstände extrem minimieren */
.VERIFYPARENT td.VERIFYBODY br {
  display: block !important; /* Umbrüche wieder anzeigen */
  content: "" !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 0 !important;
  height: 4px !important; /* Kleiner Abstand für die echten Umbrüche */
}

/* Sicherstellen, dass das Label links bleibt */
.VERIFYPARENT td.VERIFYBODY > strong {
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  display: block !important;
  float: none !important;
}

/* Unnötige Umbrüche am Anfang entfernen */
.VERIFYPARENT td.VERIFYBODY > br:first-of-type,
.VERIFYPARENT td.VERIFYBODY > strong + br {
  display: none !important;
}

/* Die innere Tabelle (E-Mail, Telefon etc.) */
.VERIFYPARENT td.VERIFYBODY > table {
  display: table !important;
  width: calc(100% + 220px) !important;
  margin-left: -220px !important;
  border-collapse: collapse !important;
  margin-top: 10px !important;
  clear: both !important;
}

.VERIFYPARENT td.VERIFYBODY > table td {
  border: none !important;
  padding: 0 !important;
  height: 34px !important;
  vertical-align: middle !important;
}

/* Labels IN der inneren Tabelle */
.VERIFYPARENT td.VERIFYBODY > table td:nth-child(odd) {
  width: 220px !important;
  background: #dce4e8 !important;
  color: #006499 !important;
  font-weight: 700 !important;
  text-align: right !important;
  padding: 0 12px !important;
  border-radius: 4px 0 0 4px !important;
}

/* Werte IN der inneren Tabelle */
.VERIFYPARENT td.VERIFYBODY > table td:nth-child(even) {
  padding-left: 15px !important;
  text-align: left !important;
  width: auto !important;
}

/* Versteckt die leere erste Zeile der inneren Tabelle */
.VERIFYPARENT td.VERIFYBODY > table tr:first-child {
  display: none !important;
}

/* 6. Spezielles Styling für die PAYMENT-Seite (Zahlungsweise) */
.PAYMENTPARENT {
  width: 100% !important;
  border-collapse: collapse !important;
  margin-bottom: 20px !important;
  table-layout: fixed !important;
}

.PAYMENTPARENT th {
  background: #006499 !important;
  color: white !important;
  padding: 10px 15px !important;
  text-align: left !important;
  font-weight: 700 !important;
}

.PAYMENTPARENT td {
  padding: 12px !important;
  border-bottom: 1px solid #e2e8f0 !important;
  vertical-align: top !important;
  background: white !important;
  text-align: left !important;
}

/* Radio-Button Spalte schmaler */
.PAYMENTPARENT td:first-child {
  width: 40px !important;
  text-align: center !important;
}

/* 5. Checkboxen & Newsletter-Text umschreiben */
.CUSTINFOBODY[colspan="4"] table,
.SHIPINFOBODY[colspan="4"] table {
  width: auto !important;
  margin: 0 !important;
  border-collapse: collapse !important;
}

label[for="Subscribe2Newsletter"] {
  font-size: 0 !important; 
  display: inline-block !important;
  vertical-align: middle !important;
}

label[for="Subscribe2Newsletter"]::before {
  content: "Ja, ich m\f6 chte Informationen \fc ber Neuheiten im Programm auf meine angegebene E-Mail-Adresse." !important;
  font-size: 0.95rem !important; 
  color: #1e293b !important;
  font-weight: 500 !important;
  visibility: visible !important;
}

/* Andere Labels (AGB etc.) linksbündig */
.CUSTINFOBODY[colspan="4"] .FORMCAPTION:not([for="Subscribe2Newsletter"]),
.VERIFYBODY[colspan="4"] .FORMCAPTION {
  white-space: normal !important;
  line-height: 1.4 !important;
  text-align: left !important;
  font-weight: 500 !important;
  font-size: 0.95rem !important;
  color: #1e293b !important;
}

/* 7. Gemeinsame Header-Styles */
.CUSTINFOHEADER, .SHIPINFOHEADER, .VERIFYHEADER, .PAYMENTHEADER, .BSHEAD, .PAYMENTPARENT th:last-child {
  background: #006499 !important;
  color: white !important;
  padding: 10px 15px !important;
  text-align: left !important;
  font-size: 1.1rem !important;
  font-weight: 700 !important;
  border-radius: 0 1.5rem 0 0 !important;
}

/* 8. Eingabefelder (CUST/SHIP) */
.CUSTINFOPARENT input[type="text"], 
.CUSTINFOPARENT select,
.CUSTINFOPARENT textarea,
.SHIPINFOPARENT input[type="text"],
.SHIPINFOPARENT select {
  width: 100% !important;
  max-width: 450px !important;
  padding: 0 10px !important;
  height: 34px !important;
  border: 1px solid #ccdcf0 !important;
  border-radius: 0 1rem 0 0 !important;
  box-sizing: border-box !important;
  font-size: 1.0rem !important;
}

/* 9. Spacer & unnötige Zeilen entfernen (STRIKT GESCOPED) */
.CUSTINFOBODY[colspan="5"], 
.SHIPINFOBODY[colspan="5"],
.CUSTINFOPARENT tr:has(img[src*="spacer.gif"]),
.SHIPINFOPARENT tr:has(img[src*="spacer.gif"]),
[class*="CUSTINFO"] tr:has(img[src*="spacer.gif"]),
.CUSTINFOBODY[wrap]:empty,
.SHIPINFOBODY[wrap]:empty {
  display: none !important;
}

/* 8. Buttons (Weiter / Zurück) */
.BUTTON {
  background: #006499 !important;
  color: white !important;
  padding: 8px 20px !important;
  font-weight: 700 !important;
  border-radius: 0 12px 0 0 !important;
  cursor: pointer !important;
  margin-top: 15px !important;
  border: none !important;
}

.BUTTON:hover {
  background: #ff6600 !important;
}

/* Footer-Bereich der Tabellen */
.CUSTINFOPARENT tr:last-child td,
.SHIPINFOPARENT tr:last-child td {
  grid-column: 1 / -1 !important;
  text-align: left !important;
  padding-top: 15px !important;
}

/* Bestellschein-Tabelle (BS) */
.BS {
  width: 100% !important;
  margin-top: 1rem !important;
}

.BS td {
  padding: 8px 12px !important;
  border-bottom: 1px solid #e2e8f0 !important;
}

