/* Öffentliche Portalseiten (Registrierung, Verifikation, DSGVO) – angeglichen an arbeitsg/intern */

:root {
  --argegruen: #37B54A;
  --argegruen-dark: #2d9a3c;
  --argegelb: #DEE21D;
  --argehellgelb: #FEFECC;
  --argerot: #E85356;
  --argehellgrau: #f4f4f4;
  --argegrau: #d0d0d0;
  --radius-sm: 6px;
  --radius-md: 10px;
  --shadow-card: 0 4px 18px rgba(0, 0, 0, 0.08);
  --sbs-pub-font: 'Nunito Sans', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
  --arge-green: #37B54A;
  --arge-lightyellow: #FEFECC;
}

* {
  box-sizing: border-box;
}

body,
table,
.sbs-pub-page,
.regkooptabelle {
  margin: 0;
  padding: 0;
  font-family: var(--sbs-pub-font);
  font-size: 17px;
  line-height: 1.5;
  color: #111;
  background-color: #fff;
}

.sbs-pub-page {
  background-color: var(--argehellgrau);
  min-height: 100vh;
}

.dunkelgruen,
.sbs-pub-accent {
  color: var(--argegruen);
}

.hellgruen {
  color: var(--argegelb);
}

.gruenschattierung {
  color: var(--argehellgelb);
}

.rot,
.sbs-pub-error {
  color: var(--argerot);
}

.grau {
  color: #888;
}

a {
  text-decoration: none;
  color: var(--argegruen);
  font-weight: 700;
}

a:hover {
  color: var(--argegruen-dark);
}

.clear {
  clear: both;
}

/* Formulare – einheitliches Padding für Inputs und Selects */
input[type='text'],
input[type='password'],
input[type='email'],
select,
textarea {
  font-family: var(--sbs-pub-font);
  font-size: 16px;
  border: 1px solid #aaa;
  border-radius: var(--radius-sm);
  padding: 8px 10px;
  background-color: #fff;
  transition: border-color 0.15s, box-shadow 0.15s;
}

input[type='text']:focus,
input[type='password']:focus,
input[type='email']:focus,
select:focus,
textarea:focus {
  outline: none;
  border-color: var(--argegruen);
  box-shadow: 0 0 0 3px rgba(55, 181, 74, 0.15);
}

textarea {
  resize: vertical;
}

input[type='submit'],
button[type='submit'],
.sbs-pub-submit {
  background-color: var(--argegruen);
  color: #fff;
  cursor: pointer;
  padding: 10px 20px;
  border: none;
  border-radius: var(--radius-md);
  font-family: var(--sbs-pub-font);
  font-size: 16px;
  font-weight: 700;
  transition: background-color 0.15s, box-shadow 0.15s;
}

input[type='submit']:hover,
button[type='submit']:hover,
.sbs-pub-submit:hover {
  background-color: var(--argegruen-dark);
  box-shadow: 0 3px 12px rgba(55, 181, 74, 0.25);
}

input[type='radio'],
input[type='checkbox'] {
  width: auto;
  margin-right: 6px;
}

/* Meldungen */
.meldung,
.meldunga,
.meldungb {
  display: none;
}

.rotemeldung,
.sbs-pub-msg-error {
  margin-top: 12px;
  color: #a93226;
  padding: 14px 18px;
  background-color: #fff0ee;
  border: 1px solid #e5b2ae;
  border-radius: var(--radius-sm);
}

.rotemeldung .first,
.sbs-pub-msg-error .first {
  float: left;
  font-family: 'Font Awesome 5 Free';
  font-weight: 700;
  padding: 4px 0 0 0;
}

.rotemeldung .second,
.sbs-pub-msg-error .second {
  float: left;
  margin-left: 18px;
  font-weight: 700;
}

.gruenemeldung,
.sbs-pub-msg-success {
  margin-top: 12px;
  color: #1e6e1e;
  padding: 14px 18px;
  background-color: #eafaf1;
  border: 1px solid #a9d9a9;
  border-radius: var(--radius-sm);
}

.gruenemeldung .first,
.sbs-pub-msg-success .first {
  float: left;
  font-family: 'Font Awesome 5 Free';
  font-weight: 700;
  padding: 4px 0 0 0;
}

.gruenemeldung .second,
.sbs-pub-msg-success .second {
  float: left;
  margin-left: 18px;
  font-weight: 700;
}

.sbs-pub-msg-success strong,
.sbs-pub-msg-inline {
  color: var(--argegruen);
  font-weight: 700;
}

/* Layout: neues Shell (Kooperation / DSGVO) */
.sbs-pub-wrap {
  width: 100%;
  max-width: 820px;
  margin: 0 auto;
  text-align: left;
}

.sbs-pub-pad {
  padding: 0 12px;
}

.sbs-pub-pad-a {
  padding: 8px 12px 0 12px;
}

.sbs-pub-block {
  background-color: #fff;
}

.sbs-pub-block.sbs-pub-band {
  background-color: var(--argehellgelb);
  border-bottom: 1px solid rgba(55, 181, 74, 0.12);
}

.sbs-pub-logo {
  text-align: right;
  padding: 16px 0 8px 0;
}

.sbs-pub-logo img {
  width: 300px;
  max-width: 100%;
  height: auto;
}

.sbs-pub-title-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 0 12px 0;
}

.sbs-pub-title-row h1 {
  font-size: 22px;
  color: var(--argegruen);
  margin: 0;
  font-weight: 700;
}

.sbs-pub-title-link a {
  display: inline-block;
  padding: 9px 16px;
  color: #fff;
  background-color: var(--argegruen);
  border-radius: var(--radius-md);
  font-weight: 700;
  transition: background-color 0.15s;
}

.sbs-pub-title-link a:hover {
  background-color: var(--argegruen-dark);
  color: #fff;
}

.sbs-pub-content {
  background-color: #fff;
  padding: 8px 12px 24px 12px;
}

.sbs-pub-content > div,
.sbs-pub-section {
  padding: 16px 0;
  max-width: 100%;
}

.sbs-pub-section h2,
.sbs-pub-content h2 {
  font-size: 20px;
  color: var(--argegruen);
  margin: 0 0 12px 0;
}

.sbs-pub-divider {
  padding-bottom: 12px;
  margin-bottom: 8px;
  border-bottom: 1px solid var(--argegrau);
}

.sbs-pub-footer {
  background-color: var(--argehellgelb);
  padding: 16px 12px 24px 12px;
  font-size: 15px;
  line-height: 1.6;
}

.sbs-pub-footer-inner {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 12px;
}

.sbs-pub-footer a {
  font-weight: 700;
}

.sbs-pub-card {
  background: #fff;
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-card);
  padding: 20px 22px;
  margin: 16px 0;
}

.sbs-pub-field {
  margin-bottom: 14px;
}

.sbs-pub-field label {
  display: block;
  font-weight: 600;
  margin-bottom: 6px;
  color: #444;
}

.borderrot {
  border: 2px solid var(--argerot) !important;
  color: var(--argerot);
  font-weight: 700;
}

/* Layout: Registrierung (bestehende Klassen) */
.regkoopbasic {
  background-color: #fff;
}

.regkoopbasichellgruen {
  background-color: var(--argehellgelb);
  border-bottom: 1px solid rgba(55, 181, 74, 0.12);
}

.regkooptabelle {
  width: 100%;
  max-width: 820px;
  text-align: center;
  margin: 20px auto 0 auto;
}

.regkooptabelle .regkooplogo {
  text-align: right;
}

.regkooptabelle .regkooplogo img {
  width: 300px;
  height: auto;
  max-width: 100%;
}

.regkooptabelle .regkooptitle {
  float: left;
  padding: 14px 0 12px 0;
  text-align: left;
}

.regkooptabelle .regkooptitlelink {
  float: right;
  padding: 12px 0;
}

.regkooptabelle .regkooptitle h1 {
  font-size: 22px;
  color: var(--argegruen);
  margin: 0;
  font-weight: 700;
}

.regkooptabelle .regkooptitlelink a {
  display: block;
  padding: 9px 16px;
  color: #fff;
  background-color: var(--argegruen);
  border-radius: var(--radius-md);
  transition: background-color 0.15s;
}

.regkooptabelle .regkooptitlelink a:hover {
  background-color: var(--argegruen-dark);
  color: #fff;
}

.regkooptabelle .regkoopcopy {
  float: right;
}

.regkooptabelle .regkoopcopy a {
  color: var(--argegruen);
  text-decoration: none;
  display: block;
  padding: 8px 0;
}

.regkooptabelle .regkoopcopya {
  float: left;
}

.regkooptabelle .regkoopcopya a {
  color: var(--argegruen);
  text-decoration: none;
  display: block;
  padding: 8px 0;
}

.regkooptabelle table {
  width: 100%;
}

.regkooptabelle table td {
  padding: 12px;
}

.regkooptabelle table td input[type='text'],
.regkooptabelle table td input[type='password'],
.regkooptabelle table td select,
.regkooptabelle table td textarea {
  width: 100%;
}

.regkooptabelle table td textarea {
  height: 200px;
  resize: none;
}

.regkooptabelle table td h2 {
  font-size: 20px;
  margin: 0;
  color: var(--argegruen);
}

.regkooptabelle table td h3 {
  font-size: 17px;
  margin: 0;
}

.regkooptabelle table td.tdor,
.regkooptabelle table span.tdor {
  color: var(--argegruen);
}

.regkooptabelle .regkooppadding {
  padding: 0 12px;
}

.regkooptabelle .regkooppaddinga {
  padding: 8px 12px 0 12px;
}

@media (max-width: 600px) {
  .regkooptabelle {
    padding: 0 8px;
  }

  .regkooptabelle .regkooptitle,
  .regkooptabelle .regkooptitlelink {
    float: none;
  }

  .regkooptabelle .regkooptitlelink {
    padding: 0 0 10px 0;
  }

  .regkooptabelle .regkooplogo img,
  .sbs-pub-logo img,
  .sbs-pub-title-row {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* ── Registrierung: Layout 820px, linksbündig, Hellgelb Lead + Footer full-bleed ── */
body.regkoop-page {
  background-color: #fff;
  --regkoop-gutter: 12px;
  --content-max: 1200px;
}

body.regkoop-page .regkoop-inner {
  max-width: 820px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--regkoop-gutter);
  padding-right: var(--regkoop-gutter);
  box-sizing: border-box;
  text-align: left;
}

/* Formular: seitlicher Abstand nur in Tabellenzellen (nicht doppelt) */
body.regkoop-page .regkoop-inner.regkoop-form {
  padding-left: 0;
  padding-right: 0;
}

body.regkoop-page .regkoopbasic {
  width: 100%;
  background-color: #fff;
}

body.regkoop-page .regkooptabelle {
  max-width: 820px;
  width: 100%;
  margin: 20px auto 16px auto;
  padding-left: 0;
  padding-right: 0;
  box-sizing: border-box;
  text-align: left;
}

/* Direkt nach dem Lead-Band: etwas weniger Abstand nach oben */
body.regkoop-page .regkoop-lead-band + .regkoopbasic .regkooptabelle {
  margin-top: 14px;
}

/* Inhaltstabellen nach Meldungsboxen: weniger Abstand nach oben */
body.regkoop-page .regkooptabelleb {
  margin-top: 6px;
}

body.regkoop-page .regkooplogo {
  text-align: right;
}

/* Tabellen im Formular (.regkoop-form) und in .regkooptabelle */
body.regkoop-page .regkooptabelle table,
body.regkoop-page .regkoop-form table,
body.regkoop-page .regkoop-inner.regkoop-form table {
  width: 100%;
  border-collapse: collapse;
  text-align: left;
}

body.regkoop-page .regkooptabelle table td,
body.regkoop-page .regkoop-form table td,
body.regkoop-page .regkoop-inner.regkoop-form table td {
  padding: 12px var(--regkoop-gutter);
  text-align: left;
  vertical-align: top;
}

body.regkoop-page .regkooptabelle table td input[type='text'],
body.regkoop-page .regkooptabelle table td input[type='password'],
body.regkoop-page .regkooptabelle table td input[type='email'],
body.regkoop-page .regkoop-form table td input[type='text'],
body.regkoop-page .regkoop-form table td input[type='password'],
body.regkoop-page .regkoop-form table td input[type='email'],
body.regkoop-page .regkoop-form table td select,
body.regkoop-page .regkoop-form table td textarea,
body.regkoop-page .regkoop-inner.regkoop-form table td input[type='text'],
body.regkoop-page .regkoop-inner.regkoop-form table td input[type='password'],
body.regkoop-page .regkoop-inner.regkoop-form table td input[type='email'],
body.regkoop-page .regkoop-inner.regkoop-form table td select,
body.regkoop-page .regkoop-inner.regkoop-form table td textarea {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

body.regkoop-page .regkooptabelle table td textarea,
body.regkoop-page .regkoop-form table td textarea,
body.regkoop-page .regkoop-inner.regkoop-form table td textarea {
  height: 200px;
  resize: none;
}

body.regkoop-page .regkooptabelle table td h2,
body.regkoop-page .regkoop-form table td h2 {
  font-size: 20px;
  margin: 0;
  color: var(--argegruen);
}

body.regkoop-page .regkooptabelle table td h3,
body.regkoop-page .regkoop-form table td h3 {
  font-size: 17px;
  margin: 0;
}

body.regkoop-page .regkooptabelle .regkooppadding,
body.regkoop-page .regkooptabelle .regkooppaddinga {
  padding: 0 var(--regkoop-gutter);
}

body.regkoop-page .regkooptabelle .regkooppaddinga {
  padding-top: 8px;
}


/* Lead-Band: Typo wie wordpress/style.css .nav-bar / .primary-nav > ul > li > a */
body.regkoop-page .regkoop-lead-band {
  width: 100%;
  background-color: var(--arge-lightyellow, var(--argehellgelb));
  border-bottom: 1px solid rgba(55, 181, 74, 0.1);
  padding: 0;
  margin: 0;
}

body.regkoop-page .regkoop-lead-band .regkoop-inner {
  padding: 12px var(--regkoop-gutter);
}

body.regkoop-page .regkoop-lead-band .regkoop-lead-title,
body.regkoop-page .regkoop-lead-band h2,
body.regkoop-page .regkoop-lead-band .regkoop-lead-title strong {
  margin: 0;
  padding: 0;
  font-family: var(--sbs-pub-font);
  font-size: 1.06rem;
  font-weight: 800;
  color: var(--arge-green, var(--argegruen));
  text-align: left;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: normal;
}

@media (max-width: 959px) {
  body.regkoop-page .regkoop-lead-band .regkoop-lead-title,
  body.regkoop-page .regkoop-lead-band h2,
  body.regkoop-page .regkoop-lead-band .regkoop-lead-title strong {
    font-size: 1.12rem;
  }
}

/* Kopfzeile: Link links, Logo oben rechts */
body.regkoop-page .regkoop-site-header {
  position: relative;
  width: 100%;
  background-color: #fff;
  margin: 0;
  min-height: 138px;
  padding-bottom: 0;
}

body.regkoop-page .regkoop-site-home-col {
  margin-top: 0;
  margin-bottom: 0;
  padding-top: 0;
  padding-bottom: 0;
  padding-right: min(360px, 44vw);
  box-sizing: border-box;
  position: relative;
  z-index: 1;
}

body.regkoop-page .regkoop-site-logo-slot {
  position: absolute;
  top: 14px;
  right: max(16px, calc((100vw - var(--content-max, 1200px)) / 2 + 16px));
  padding-bottom: 14px;
  line-height: 0;
}

body.regkoop-page .regkoop-site-logo-slot a {
  display: block;
  line-height: 0;
  font-weight: 400;
}

body.regkoop-page .regkoop-site-logo-slot .logo,
body.regkoop-page .regkoop-site-logo-slot img.logo {
  height: 110px;
  width: auto;
  max-width: none;
  display: block;
  margin: 0;
  border: 0;
}

@media (max-width: 959px) {
  body.regkoop-page .regkoop-site-home,
  body.regkoop-page .regkoop-site-home-col {
    display: none;
  }

  body.regkoop-page .regkoop-site-logo-slot .logo,
  body.regkoop-page .regkoop-site-logo-slot img.logo {
    height: auto;
    width: min(300px, 78vw);
    max-width: none;
  }

  body.regkoop-page .regkoop-site-header {
    min-height: 120px;
  }

  body.regkoop-page .regkoop-site-logo-slot {
    top: 14px;
    padding-bottom: 14px;
  }

  body.regkoop-page .regkoop-site-home-col {
    padding-right: 0;
  }
}

body.regkoop-page a.regkoop-site-home {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin: 0;
  padding: 7px 12px;
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  background: var(--argegruen);
  border-radius: 0;
  text-decoration: none;
  letter-spacing: 0.01em;
  white-space: nowrap;
}

body.regkoop-page a.regkoop-site-home i {
  font-size: 12px;
}

body.regkoop-page a.regkoop-site-home:hover {
  color: #fff;
  text-decoration: none;
  opacity: 0.88;
  background: var(--argegruen);
}

body.regkoop-page .regkoop-form {
  padding-top: 0;
  padding-bottom: 0;
}

body.regkoop-page .regkoop-inner.regkoop-form-actions {
  padding-left: 0;
  padding-right: 0;
}

body.regkoop-page .regkoop-submit-row {
  padding: 28px var(--regkoop-gutter) 20px var(--regkoop-gutter);
  text-align: left;
}

body.regkoop-page .regkoop-form-footnote {
  margin: 0;
  padding: 0 var(--regkoop-gutter) 24px var(--regkoop-gutter);
  text-align: left;
  line-height: 1.5;
}

body.regkoop-page .regkoop-form-footnote p {
  margin: 0 0 8px 0;
  padding: 0;
}

body.regkoop-page .regkoop-form-footnote p:last-child {
  margin-bottom: 0;
}

/* Mehr Abstand zwischen Lead-Überschrift und „An die ARGE SBS,“ */
body.regkoop-page .regkoop-lead-band + .regkoopbasic .regkoop-form table tr:first-child > td {
  padding-top: 22px;
}

/* Footer Impressum – gleiches Padding wie .regkoop-lead-band */
body.regkoop-page .regkoop-footer-band {
  width: 100%;
  background-color: var(--argehellgelb);
  border-top: 1px solid rgba(55, 181, 74, 0.1);
  padding: 0;
  margin: 0;
}

body.regkoop-page .regkoop-footer-band .regkoop-inner {
  background-color: transparent;
  padding: 14px var(--regkoop-gutter);
}

body.regkoop-page .regkoop-footer-row {
  text-align: left;
}

body.regkoop-page .regkoop-footer-band .regkoopcopya {
  float: left;
}

body.regkoop-page .regkoop-footer-band .regkoopcopy {
  float: right;
}

body.regkoop-page .regkoop-footer-band .regkoopcopya a,
body.regkoop-page .regkoop-footer-band .regkoopcopy a {
  display: inline-block;
  padding: 6px 0;
  margin-right: 20px;
}

body.regkoop-page .regkoop-footer-band .regkoopcopy a {
  margin-right: 0;
}

/* Kooperation / DSGVO: Inhalt in 820px-Spalte wie Registrierung */
body.regkoop-page .regkoop-inner.sbs-pub-content-area {
  padding-left: 0;
  padding-right: 0;
  padding-bottom: 16px;
}

body.regkoop-page .regkoop-lead-band + .regkoopbasic .sbs-pub-content-area > :first-child {
  padding-top: 22px;
}

body.regkoop-page .sbs-pub-content-area .sbs-pub-section,
body.regkoop-page .sbs-pub-content-area .sbs-pub-divider,
body.regkoop-page .sbs-pub-content-area form > div,
body.regkoop-page .sbs-pub-content-area .sbs-pub-card {
  padding: 12px var(--regkoop-gutter);
  box-sizing: border-box;
  max-width: 100%;
}

body.regkoop-page .sbs-pub-content-area .sbs-pub-msg-success,
body.regkoop-page .sbs-pub-content-area .sbs-pub-msg-error {
  box-sizing: border-box;
  margin: 20px var(--regkoop-gutter) 0;
  padding: 20px 16px;
}

body.regkoop-page .sbs-pub-content-area .sbs-pub-section {
  padding-top: 12px;
  padding-bottom: 12px;
}

body.regkoop-page .sbs-pub-content-area .sbs-pub-card {
  margin: 0;
  box-shadow: none;
  border-radius: 0;
}

body.regkoop-page .sbs-pub-content-area .sbs-pub-field {
  margin: 0;
  padding: 12px var(--regkoop-gutter);
}

body.regkoop-page .sbs-pub-content-area form > div:last-child {
  padding-top: 20px;
  padding-bottom: 20px;
}

/* Alignment-Korrektur: Die allgemeine Combo-Regel oben gibt .sbs-pub-card
   und seinen Kindern je 12px padding-left/-right. Das ergibt doppelten
   Einzug gegenüber Lead-Überschrift und Fußzeile.
   Lösung: form.sbs-pub-card im content-area bekommt 0 left/right,
   die Kinder-Elemente behalten ihr eigenes 12px-Padding → text auf 12px. */
body.regkoop-page .sbs-pub-content-area > .sbs-pub-card {
  padding-left: 0;
  padding-right: 0;
}

/* ── Footer: responsiver Rand (intern ≤960 px + immer auf regkoop-Seiten) ── */
@media (max-width: 959px) {
  .sbs-intern-footer-inner {
    padding-left: 12px;
    padding-right: 12px;
  }
}

/* ── Gemeinsamer Footer-Stil (intern + registrierung) ── */
.sbs-intern-footer {
  width: 100%;
  background-color: var(--argehellgelb);
  border-top: 1px solid rgba(55, 181, 74, 0.1);
  margin-top: 0;
}
.sbs-intern-footer-inner {
  max-width: 820px;
  margin: 0 auto;
  padding: 14px 12px;
  box-sizing: border-box;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: #555;
}
.sbs-intern-footer a {
  color: var(--argegruen);
  text-decoration: none;
  font-weight: 600;
}
.sbs-intern-footer a:hover {
  color: var(--argegruen-dark);
  text-decoration: underline;
}
