/* ROTHLER B2B-Registrierung. Eigene Klassen für Checkbox und Datei-Upload, damit NOVAs Slide-Label-CSS nicht greift. */
.rb2b { margin: 1.25rem 0 1rem; padding-top: 1.25rem; border-top: 1px solid rgba(0,0,0,.1); }
.rb2b-toggle { display: flex; align-items: flex-start; gap: .75rem; margin: 0; padding: .9rem 1rem; border: 1px solid rgba(0,0,0,.15); border-radius: .5rem; cursor: pointer; font-weight: 600; line-height: 1.35; position: static; }
.rb2b-toggle-input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; pointer-events: none; }
.rb2b-toggle-box { flex: none; width: 22px; height: 22px; margin-top: .05em; border: 2px solid #9aa3ad; border-radius: 6px; background: #fff; position: relative; transition: background .15s, border-color .15s; }
.rb2b-toggle-box::after { content: ""; position: absolute; left: 6px; top: 2px; width: 6px; height: 11px; border: solid #fff; border-width: 0 2.5px 2.5px 0; transform: rotate(45deg); opacity: 0; }
.rb2b-toggle-input:checked + .rb2b-toggle-box { background: #147bcb; border-color: #147bcb; }
.rb2b-toggle-input:checked + .rb2b-toggle-box::after { opacity: 1; }
.rb2b-toggle-input:focus-visible + .rb2b-toggle-box { box-shadow: 0 0 0 3px rgba(20,123,203,.3); }
.rb2b-toggle-text { flex: 1; }
.rb2b-fields { padding-top: 1rem; }
.rb2b-fields[hidden] { display: none !important; }
.rb2b-intro, .rb2b-hinweis, .rb2b-file-hint { color: #6c757d; font-size: .875rem; }
.rb2b-intro { margin: 0 0 1rem; }
.rb2b-hinweis { margin: .5rem 0 0; padding: .75rem 1rem; background: #f3f6f9; border-radius: .5rem; }
.rb2b .form-group { margin-bottom: 1rem; }
.rb2b .form-group[hidden] { display: none !important; }
.rb2b .form-group .optional { font-weight: 400; color: #6c757d; }
.rb2b .form-error-msg { color: #dc3545; font-size: .875rem; margin-top: .3rem; }
.rb2b .has-error .form-control, .rb2b .has-error .rb2b-file { border-color: #dc3545; }
.rb2b-file-group { margin-bottom: 1rem; }
.rb2b-file-label { font-weight: 600; margin-bottom: .35rem; }
.rb2b-file-req { color: #dc3545; }
.rb2b-file { display: flex; align-items: center; gap: .75rem; margin: 0; padding: .35rem .35rem .35rem 1rem; border: 1px solid #ced4da; border-radius: .5rem; background: #fff; cursor: pointer; min-height: 48px; }
.rb2b-file-input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.rb2b-file-name { flex: 1; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; color: #6c757d; }
.rb2b-file-btn { order: 2; flex: none; padding: .5rem .9rem; border-radius: .4rem; background: #147bcb; color: #fff; font-weight: 600; font-size: .9rem; }
.rb2b-file:hover .rb2b-file-btn { filter: brightness(.95); }
.rb2b-file-input:focus-visible ~ .rb2b-file-btn { box-shadow: 0 0 0 3px rgba(20,123,203,.3); }
.rb2b-file-hint { margin-top: .35rem; }
.rb2b-konto-hinweis .alert { font-size: .95rem; }
.rb2b-group { border: 0; padding: 0; margin: 0 0 1rem; min-width: 0; }
.rb2b-group legend { font-size: 1rem; padding: 0; margin-bottom: .5rem; float: none; width: auto; }
.rb2b-legend-sub { font-weight: 400; color: #6c757d; font-size: .875rem; }
.rb2b-check { display: flex; align-items: flex-start; gap: .65rem; margin: 0 0 .5rem; cursor: pointer; font-weight: 400; line-height: 1.35; }
.rb2b-toggle-box-sm { width: 20px; height: 20px; margin-top: .1em; border-radius: 5px; }
.rb2b-toggle-box-sm::after { left: 5px; top: 1px; width: 6px; height: 11px; }
.rb2b-group.has-error .rb2b-toggle-box { border-color: #dc3545; }
.rb2b-klein { margin: -.35rem 0 1rem; font-size: .9rem; }
.rb2b-cols { display: grid; grid-template-columns: 1fr; gap: 0 1rem; }
@media (min-width: 560px) { .rb2b-cols { grid-template-columns: 1fr 1fr; } }
.rb2b-cols .form-group[hidden] { display: none !important; }
.rb2b-legend { font-size: 1rem; font-weight: 600; padding: 0; margin-bottom: .5rem; float: none; width: auto; max-width: 100%; white-space: normal; overflow-wrap: break-word; }
.rb2b-legend-sub { font-weight: 400; color: #6c757d; font-size: .85rem; }
.rb2b-liste { display: grid; grid-template-columns: 1fr; gap: .1rem .9rem; }
@media (min-width: 480px) { .rb2b-liste-2 { grid-template-columns: 1fr 1fr; } }
.rb2b-sort-ober { font-size: .78rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #6c757d; margin: .8rem 0 .3rem; }
.rb2b-sort-ober:first-of-type { margin-top: .1rem; }

/* Portfolio und Warengruppen-Kacheln (1.11.2): Bild, Name, typische Artikel, Haken. Farben aus dem Brandguide. */
.rb2b-portfolio { --rb-blau: #116bb0; --rb-blau50: #f2f8fd; --rb-blau100: #e0effa; --rb-linie2: #cdd6e0; --rb-ink: #0a1628; --rb-leise: #5f6b7a; }
.rb2b-vorteile { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(15rem, 100%), 1fr)); gap: .6rem; list-style: none; margin: .25rem 0 1.1rem; padding: 0; }
.rb2b-vorteile li { display: flex; align-items: flex-start; gap: .75rem; margin: 0; padding: .8rem .9rem; border-radius: .75rem; background: var(--rb-blau50); color: var(--rb-leise); font-size: .85rem; line-height: 1.45; }
.rb2b-vorteile li::before { content: none; }
.rb2b-vorteile b { display: block; margin-bottom: .1rem; color: var(--rb-ink); font-size: .9rem; }
.rb2b-vorteil-bild { flex: none; display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: .6rem; background: #fff; color: var(--rb-blau); }
.rb2b-kacheln { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(14.5rem, 100%), 1fr)); gap: .5rem; margin-bottom: .4rem; }
.rb2b-kachel { position: relative; isolation: isolate; display: grid; grid-template-columns: 3.5rem minmax(0, 1fr) 1.25rem; align-items: center; gap: .75rem; margin: 0; padding: .55rem .75rem .55rem .55rem; cursor: pointer; font-weight: 400; line-height: 1.3; }
.rb2b-kachel-input { position: absolute; width: 1px; height: 1px; margin: 0; opacity: 0; pointer-events: none; }
.rb2b-kachel-rahmen { position: absolute; inset: 0; z-index: -1; border: 1px solid var(--rb-linie2); border-radius: .75rem; background: #fff; transition: border-color .12s, background-color .12s, box-shadow .12s; }
.rb2b-kachel:hover .rb2b-kachel-rahmen { border-color: var(--rb-blau); }
.rb2b-kachel-input:checked ~ .rb2b-kachel-rahmen { border-color: var(--rb-blau); background: var(--rb-blau50); box-shadow: inset 0 0 0 1px var(--rb-blau); }
.rb2b-kachel-input:focus-visible ~ .rb2b-kachel-rahmen { border-color: var(--rb-blau); box-shadow: 0 0 0 3px var(--rb-blau100); }
.rb2b-kachel-bild { display: block; width: 3.5rem; height: 3.5rem; overflow: hidden; border-radius: .55rem; background: #f5f7fa; }
.rb2b-kachel-bild img { display: block; width: 100%; height: 100%; object-fit: cover; }
.rb2b-kachel-text b { display: block; color: var(--rb-ink); font-size: .93rem; font-weight: 600; }
.rb2b-kachel-text small { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin-top: .15rem; color: var(--rb-leise); font-size: .78rem; line-height: 1.35; }
.rb2b-kachel-haken { width: 1.25rem; height: 1.25rem; border: 1.5px solid var(--rb-linie2); border-radius: .35rem; background: #fff; }
.rb2b-kachel-input:checked ~ .rb2b-kachel-haken { border-color: var(--rb-blau); background: var(--rb-blau) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 6.2l2.3 2.3 4.7-4.9' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center; }
.rb2b-group.has-error .rb2b-kachel-rahmen { border-color: #dc3545; }
.rb2b-auswahl { min-height: 1.2em; margin: .35rem 0 0; color: var(--rb-leise); font-size: .85rem; }
@media (prefers-reduced-motion: reduce) { .rb2b-kachel-rahmen { transition: none; } }
