/* ===== RLV Abo order form (multi-step) ===== */

.rlvabo-order [hidden],
.rlvabo-step[hidden],
.rlvabo-gift[hidden],
.rlvabo-gifts__empty[hidden],
.rlvabo-section--recipient[hidden],
.rlvabo-nav .more-button[hidden] { display: none !important; }

.rlvabo-order__title { margin: 0 0 1.25rem; }
.rlvabo-form { padding: 5px; }

/* Step indicator */
.rlvabo-steps {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem;
    list-style: none;
    margin: 0 0 1.5rem;
    padding: 0;
    counter-reset: rlvabo-step;
}
.rlvabo-steps__item {
    flex: 1 1 0;
    min-width: 7rem;
    text-align: center;
    font-size: .85rem;
    color: #000;                 /* Schriftfarbe schwarz */
    padding: .4rem .25rem;
    border-bottom: 3px solid #e0e0e0;
    counter-increment: rlvabo-step;
}
.rlvabo-steps__item::before {
    content: counter(rlvabo-step) ". ";
    font-weight: 600;
}
.rlvabo-steps__item.is-active {
    color: #000;
    border-bottom-color: #00A139;
    font-weight: 600;
}
.rlvabo-steps__item.is-done {
    color: #000;
    border-bottom-color: #C7E6CF;
}
.rlvabo-steps__item.is-clickable { cursor: pointer; }
.rlvabo-steps__item.is-clickable:hover { border-bottom-color: #93c8a0; }

/* Sections */
.rlvabo-section { border: 0; margin: 0 0 1.5rem; padding: 0; }
.rlvabo-section > legend {
    font-size: 1.1rem;
    font-weight: 600;
    color: #000;
    margin-bottom: .75rem;
}

/* ===== Product tiles (Bootstrap-card style) ===== */
.rlvabo-products {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 1rem;
    margin-bottom: 1.25rem;
}
.rlvabo-product {
    position: relative;
    display: flex;
    flex-direction: column;
    background: #fff;
    /* gleicher Stil wie die Termine-Kacheln: 0.5rem Rahmen, kein Radius.
       Farbe je Zeitschrift ueber die Plugin-Einstellung (CSS-Variable). */
    border: solid 0.5rem var(--rlvabo-tile-border, #BFE7CD);
    border-radius: 0;
    padding: 10px;
    overflow: hidden;
    cursor: pointer;
    transition: box-shadow .2s ease;
}
.rlvabo-product:hover { box-shadow: inset 0 0 0 2px rgba(0,161,57,.35); }
.rlvabo-product:focus-within { box-shadow: inset 0 0 0 3px rgba(0,161,57,.35); }
/* Barrierefreiheit: deutlicher Tastaturfokus auf der Kachel */
.rlvabo-product:has(.rlvabo-product__input:focus-visible) { outline: 3px solid #000; outline-offset: 2px; }
/* hide the native radio (fixes the cut-off radio) */
.rlvabo-product__input {
    position: absolute;
    opacity: 0;
    width: 1px; height: 1px;
    margin: 0;
    pointer-events: none;
}
.rlvabo-product__media {
    display: block;
    aspect-ratio: 16 / 10;
    background: #f2f2f2;
}
.rlvabo-product__media img {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
}
.rlvabo-product__body { padding: .5rem 0 0; }
.rlvabo-product__label { display: block; font-weight: 700; color: #000; font-size: 1.05rem; }
.rlvabo-product__price { display: block; color: #333; font-size: .9rem; margin-top: .3rem; }
/* selection marker */
.rlvabo-product__check {
    position: absolute;
    top: .6rem; right: .6rem;
    width: 22px; height: 22px;
    border-radius: 50%;
    border: 2px solid #bbb;
    background: #fff;
}
/* Auswahl wird nur durch das Häkchen angezeigt (kein zusätzlicher Rahmen). */
.rlvabo-product.is-selected .rlvabo-product__check { border-color: #00A139; background: #00A139; }
.rlvabo-product.is-selected .rlvabo-product__check::after {
    content: "";
    position: absolute;
    left: 6px; top: 2px;
    width: 6px; height: 11px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

/* Lieferland */
.rlvabo-lieferland { margin-top: .5rem; }
.rlvabo-lieferland .rlvabo-label { font-weight: 600; margin-right: .5rem; }

/* ===== Gifts ===== */
.rlvabo-gifts { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: .75rem; }
.rlvabo-gift {
    position: relative;
    display: block;
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 10px;
    padding: .8rem;
    cursor: pointer;
    transition: border-color .2s ease, box-shadow .2s ease;
}
.rlvabo-gift:hover { border-color: #93c8a0; }
.rlvabo-gift__input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; pointer-events: none; }
/* Prämien-Auswahl wird nur durch das Häkchen angezeigt. */
.rlvabo-gift.is-selected .rlvabo-product__check { border-color: #00A139; background: #00A139; }
.rlvabo-gift.is-selected .rlvabo-product__check::after {
    content: ""; position: absolute; left: 6px; top: 2px;
    width: 6px; height: 11px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg);
}
.rlvabo-gift__img { display: block; max-width: 100%; height: auto; margin: .2rem 0 .5rem; border-radius: 6px; }
.rlvabo-gift__label { display: block; font-weight: 600; color: #000; }
.rlvabo-gift__desc { display: block; color: #555; font-size: .85rem; margin-top: .2rem; }

/* ===== Hauptproduktionszweig (toggle buttons) ===== */
.rlvabo-branch-group { margin-bottom: .9rem; }
.rlvabo-gifts__hint { font-size: .9rem; color: #333; margin: 0 0 1rem; }
.rlvabo-branches__hint { display: flex; align-items: baseline; gap: .5rem; font-size: .9rem; color: #333; margin: 0 0 1rem; }
.rlvabo-branches__hint i { color: #93c8a0; }
.rlvabo-branch-group__title { display: block; font-weight: 600; font-size: .9rem; color: #000; margin-bottom: .35rem; }
.rlvabo-branch-buttons { display: flex; flex-wrap: wrap; gap: .4rem; }
.rlvabo-branch { position: relative; margin: 0; }
.rlvabo-branch input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; pointer-events: none; }
.rlvabo-branch span {
    display: inline-block;
    padding: .3rem .15rem;
    border: 0;
    border-bottom: 3px solid transparent;   /* wie die Links: nur ein unterer Balken */
    border-radius: 0;
    background: none;
    color: #000;                            /* Schriftfarbe bleibt immer schwarz */
    font-size: .9rem;
    cursor: pointer;
    transition: border-color .2s ease;
}
.rlvabo-branch span:hover { border-bottom-color: #C7E6CF; }
.rlvabo-branch input:checked + span { border-bottom-color: #00A139; }   /* Auswahl = gruener Balken; Barrierefreiheit: Kontrast ≥ 3:1 (vorher #93c8a0) */
.rlvabo-branch input:focus-visible + span { outline: 3px solid #000; outline-offset: 2px; box-shadow: 0 0 0 5px #fff; } /* Barrierefreiheit: deutlicher Tastaturfokus */

/* ===== Price / summary box ===== */
.rlvabo-price {
    display: flex;
    flex-direction: column;
    gap: .3rem;
    padding: 1rem 1.1rem;
    border: 1px solid #C7E6CF;
    border-radius: 0;
    background: #f4fbf6;
}
.rlvabo-price__product { font-weight: 700; color: #000; }
.rlvabo-price__value { font-size: 1.4rem; font-weight: 700; color: #000; }
.rlvabo-price__label { font-size: 1rem; font-weight: 400; color: #333; margin-right: .25rem; }
.rlvabo-price__hint { display: inline-block; font-size: .8rem; font-weight: 400; color: #555; margin-left: .35rem; }

/* Form fields */
.rlvabo-form .form-group { margin-bottom: .75rem; }
.rlvabo-form .form-row { display: flex; gap: .75rem; flex-wrap: wrap; }
.rlvabo-form .form-row > .form-group { flex: 1 1 12rem; }
.rlvabo-form label { display: block; font-size: .9rem; color: #000; margin-bottom: .15rem; }
.rlvabo-section--consent label { display: flex; gap: .5rem; align-items: flex-start; margin-bottom: .6rem; }
.rlvabo-section--consent .form-check-input { margin-top: .2rem; }
.rlvabo-consent__note { font-size: .9rem; color: #333; margin: 0 0 .75rem; }

/* ===== Navigation buttons – "Lesen"-Link-Stil ===== */
.rlvabo-nav {
    display: flex;
    justify-content: space-between;
    gap: .5rem;
    margin-top: 1.5rem;
}
.rlvabo-nav .more-button { display: flex; }
.rlvabo-nav__next, .rlvabo-nav__finish { margin-left: auto; }
.rlvabo-order .more {
    display: inline-flex;
    align-items: center;
    background: none;
    border: 0;
    border-radius: 0;
    border-bottom: 9px solid #C7E6CF;
    color: #000;
    font: inherit;
    font-weight: 600;
    line-height: 1.2;
    padding: .15rem 0;
    cursor: pointer;
    transition: border-color .2s ease;
}
.rlvabo-order .more:hover,
.rlvabo-order .more:focus {
    color: #000;
    border-bottom-color: #93c8a0;
    outline: none;
}

/* ===== Optionaler Newsletter-Button (Ende Schritt 4) ===== */
.rlvabo-section--newsletter { margin-top: -.25rem; }
.rlvabo-newsletter { position: relative; display: inline-block; margin: 0; }
.rlvabo-newsletter__input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; pointer-events: none; }
/* Barrierefreiheit: Grün #00A139 -> #008730 (Kontrast ≥ 4,5:1 für Text) */
.rlvabo-newsletter__btn {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .55rem 1.1rem;
    border: 2px solid #008730;
    border-radius: 0;
    background: #fff;
    color: #008730;
    font-weight: 600;
    cursor: pointer;
    transition: background .15s ease, color .15s ease;
}
.rlvabo-newsletter__btn::before {
    content: "";
    width: 18px; height: 18px;
    border: 2px solid currentColor;
    border-radius: 0;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 12px 12px;
    flex: 0 0 auto;
}
.rlvabo-newsletter__input:checked + .rlvabo-newsletter__btn {
    background: #008730;
    color: #fff;
}
.rlvabo-newsletter__input:checked + .rlvabo-newsletter__btn::before {
    background-color: #fff;
    border-color: #fff;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23008730' stroke-width='4' stroke-linecap='round' stroke-linejoin='round' d='M4 12l6 6 12-14'/%3E%3C/svg%3E");
}
.rlvabo-newsletter__input:focus-visible + .rlvabo-newsletter__btn { outline: 3px solid #000; outline-offset: 2px; } /* Barrierefreiheit: deutlicher Tastaturfokus */

/* Hauptproduktionszweig als gerahmter Kasten */
.rlvabo-section--branches { border: solid 0.5rem #BFE7CD; padding: 15px; }

/* Betriebsgröße (30%) und Sonstiges (70%) nebeneinander */
.rlvabo-row--betrieb { flex-wrap: nowrap; }
.rlvabo-row--betrieb > .form-group { min-width: 0; }
.rlvabo-row--betrieb .form-group--betrieb { flex: 3 1 0; }
.rlvabo-row--betrieb .form-group--sonstiges { flex: 7 1 0; }

/* =====================================================================
   Barrierefreiheit (WCAG 2.2 AA)
   ===================================================================== */
/* Schrittanzeige: Schritte sind Buttons – optisch wie bisher */
.rlvabo-steps__btn {
    display: inline; margin: 0; padding: 0;
    background: none; border: 0; border-radius: 0;
    font: inherit; color: inherit; text-align: inherit; line-height: inherit;
    cursor: inherit;
}
.rlvabo-steps__btn:disabled { color: inherit; opacity: 1; cursor: default; }
.rlvabo-steps__item.is-clickable .rlvabo-steps__btn { cursor: pointer; }
/* Programmatisch fokussierte Bereiche (Schritt, Fehlerliste) ohne Rahmen */
.rlvabo-step:focus, .rlvabo-errors:focus { outline: none; }
/* Gewählte Prämie: Tastaturfokus deutlich */
.rlvabo-gift:has(.rlvabo-gift__input:focus-visible) { outline: 3px solid #000; outline-offset: 2px; }
/* Rahmen von Eingabefeldern mit ausreichendem Kontrast (≥ 3:1, WCAG 1.4.11) */
.rlvabo-form .form-control,
.rlvabo-form .form-select { border-color: #8f8f8f; }
.rlvabo-form .form-check-input { border-color: #767676; }
.rlvabo-form .form-control.is-invalid,
.rlvabo-form .form-select.is-invalid,
.rlvabo-form .form-check-input.is-invalid { border-color: #c00; }
