/* ===== RLV Kleinanzeigen form ===== */
.rlvka-step[hidden] { display: none !important; }

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

.rlvka-form .form-group { margin-bottom: .75rem; }
.rlvka-form .form-row { display: flex; gap: .75rem; flex-wrap: wrap; }
.rlvka-form .form-row > .form-group { flex: 1 1 12rem; }
.rlvka-form label { display: block; font-size: .9rem; margin-bottom: .15rem; }

/* ===== Erscheinungstermine als Kalender ===== */
.rlvka-cal { display: flex; align-items: center; gap: .25rem; padding-top: 10px; }
.rlvka-cal__months {
    flex: 1 1 auto;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));  /* immer 3 Spalten – ein Monat bleibt 1/3 breit, linksbündig */
    gap: 1.5rem;
}
@media (max-width: 900px) { .rlvka-cal__months { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .rlvka-cal__months { grid-template-columns: 1fr; } }
.rlvka-cal__nav {
    flex: 0 0 auto;
    background: none; border: 0;
    font-size: 1.6rem; line-height: 1; color: #333;
    cursor: pointer; padding: .5rem .35rem;
}
.rlvka-cal__nav:hover { color: #000; }
.rlvka-cal__nav--off { visibility: hidden; pointer-events: none; }
.rlvka-cal-month__title {
    text-align: center; font-weight: 700; font-size: 0.9rem;
    margin-bottom: .5rem; padding-bottom: .5rem; border-bottom: 1px solid #eee;
}
.rlvka-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: .2rem; }
.rlvka-cal-wd { text-align: center; font-weight: 700; color: #333; padding: .35rem 0; }
.rlvka-cal-day {
    text-align: center; padding: 0; border: 0; background: none;
    font: inherit; border-radius: 0;
}
.rlvka-cal-day--disabled { color: #c8c8c8; }
.rlvka-cal-day--available { background: #DBDBDB; color: #222; font-weight: 600; cursor: pointer; }
.rlvka-cal-day--available:hover { background: #C7E6CF; }
.rlvka-cal-day--available.is-selected { background: #93c8a0; color: #000; box-shadow: inset 0 0 0 2px #1e5a37; } /* Barrierefreiheit: Auswahl nicht nur über Farbe (dunkler Innenrand) */

.rlvka-checks .form-check { display: inline-block; margin-right: 1rem; }

.rlvka-preview {
    background: #f5f5f5; border: 1px solid #ddd; padding: 1rem;
    text-align: center; margin-bottom: 1rem;
}
.rlvka-preview__img { max-width: 100%; height: auto; background: #fff; }
.rlvka-preview__msg { color: #a00; margin: .5rem 0 0; }

.rlvka-price__table { width: 100%; max-width: 360px; border-collapse: collapse; }
.rlvka-price__table td { padding: .25rem .5rem; }
.rlvka-price__table td:last-child { text-align: right; font-variant-numeric: tabular-nums; }
.rlvka-price__total td { border-top: 2px solid #333; font-weight: 700; }
.rlvka-price__note { color: #6b6b6b; font-size: .8rem; } /* Barrierefreiheit: Kontrast ≥ 4,5:1 (vorher #888) */

.rlvka-nav { display: flex; justify-content: space-between; align-items: baseline; gap: .5rem; margin-top: 1rem; }
.rlvka-nav [hidden] { display: none !important; }
/* „Zurück zur Auswahl“ links neben „Weiter“ – ausgeblendet, sobald der Schritt-Zurück-Button sichtbar ist */
.rlvka-nav .rlvka-prev:not([hidden]) + .rlvka-nav__back { display: none; }
.rlvka-nav .rlvka-next, .rlvka-nav .rlvka-finish { margin-left: auto; }

.rlvka-summary dt { font-weight: 600; }
.rlvka-summary dd { margin: 0 0 .5rem; }

/* Automatisch angezeigte Zeitschrift (Plugin ist je Zeitschrift eingebunden) */
.rlvka-magazine-display { font-weight: 600; margin: .15rem 0 0; }

/* Weiter/Zurück/Bestellen im "Lesen"-Link-Stil (border-bottom wie bei RLV Abo) */
.rlvka-nav button.rlvka-prev,
.rlvka-nav button.rlvka-next,
.rlvka-nav button.rlvka-finish {
    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;
}
.rlvka-nav button.rlvka-prev:hover,
.rlvka-nav button.rlvka-prev:focus,
.rlvka-nav button.rlvka-next:hover,
.rlvka-nav button.rlvka-next:focus,
.rlvka-nav button.rlvka-finish:hover,
.rlvka-nav button.rlvka-finish:focus {
    color: #000;
    border-bottom-color: #93c8a0;
    outline: none;
}

/* Magazin-Gruppe ausblenden, wenn im Backend fest gewählt (Feld bleibt für die Übertragung erhalten) */
.rlvka-hidden { display: none !important; }

/* ===== Einstieg: Auswahl Anzeige aufgeben / Chiffre, gewerblich / privat ===== */
.rlvka-intro { margin-bottom: 1.25rem; }
.rlvka-choice { display: flex; flex-wrap: wrap; gap: 1.5rem; margin: 1rem 0 1.5rem; }
/* gleicher "Lesen"-Link-Stil wie Weiter/Zurück (border-bottom) */
.rlvka-choice__btn {
    display: inline-flex;
    align-items: center;
    color: #000;
    font-weight: 600;
    line-height: 1.2;
    padding: .15rem 0;
    text-decoration: none;
    border-bottom: 9px solid #C7E6CF;
    transition: border-color .2s ease;
}
.rlvka-choice__btn:hover,
.rlvka-choice__btn:focus { color: #000; text-decoration: none; border-bottom-color: #93c8a0; outline: none; }

/* Startseite: „Anzeige aufgeben“ / „Auf Chiffre antworten“ – Icon statt grünem Balken */
.rlvka-choice__btn--icon,
.rlvka-choice__btn--icon:hover,
.rlvka-choice__btn--icon:focus { border-bottom: 0; padding: 0; }
.rlvka-choice__btn--icon { gap: .5rem; }
.rlvka-choice__btn--icon i { font-size: .95em; transition: color .2s ease; }
.rlvka-choice__btn--icon:hover i,
.rlvka-choice__btn--icon:focus i { color: #93c8a0; }
.rlvka-choice__btn--icon:focus-visible { outline: 2px solid #93c8a0; outline-offset: 3px; }

.rlvka-back { margin-top: 1.5rem; }

/* Zurück-Links im selben Stil wie Weiter (grüne Unterstreichung) */
a.rlvka-back-link {
    display: inline-flex;
    align-items: center;
    color: #000;
    font-weight: 600;
    line-height: 1.2;
    padding: .15rem 0;
    text-decoration: none;
    border-bottom: 9px solid #C7E6CF;
    transition: border-color .2s ease;
}
a.rlvka-back-link:hover,
a.rlvka-back-link:focus { color: #000; text-decoration: none; border-bottom-color: #93c8a0; outline: none; }
/* kleinere Variante (z. B. „Zurück zum Anzeigenmarkt“) */
a.rlvka-back-link--small { font-size: .875em; border-bottom-width: 6px; }

/* ===== Gewerbliche Kunden ===== */
.rlvka-commercial-content { margin-bottom: 1.5rem; }

/* Ansprechpartner: zugeklappt, Klick auf den Button klappt den Inhalt darunter auf */
.rlvka-contacts { margin: 0 0 1.5rem; }
.rlvka-contacts__toggle { cursor: pointer; list-style: none; user-select: none; }
.rlvka-contacts__toggle::-webkit-details-marker { display: none; }
.rlvka-contacts__toggle::marker { content: ""; }
.rlvka-contacts__chevron { font-size: .75em; transition: transform .2s ease; }
.rlvka-contacts[open] .rlvka-contacts__chevron { transform: rotate(180deg); }
.rlvka-contacts__toggle:focus-visible { outline: 2px solid #93c8a0; outline-offset: 3px; }
.rlvka-contacts__content { margin-top: 1rem; }
.rlvka-download { margin: 0 0 2rem; }
/* Thumbnail links, Beschriftung rechts daneben */
.rlvka-download__link {
    display: inline-flex; flex-direction: row; align-items: center; gap: 1.25rem;
    color: #000; text-decoration: none;
}
.rlvka-download__link:hover, .rlvka-download__link:focus { color: #000; text-decoration: none; }
/* Vorschaubild der Mediadaten (z. B. Titelblatt) */
.rlvka-download__image {
    display: block; flex: 0 0 auto; width: 160px; max-width: 45%; height: auto;
    border: 1px solid #ddd; box-shadow: 0 2px 6px rgba(0, 0, 0, .12);
    transition: box-shadow .2s ease;
}
.rlvka-download__link:hover .rlvka-download__image { box-shadow: 0 4px 12px rgba(0, 0, 0, .2); }
.rlvka-download__label {
    display: inline-flex; align-items: center; gap: .4rem;
    font-weight: 600; line-height: 1.2;
    border-bottom: 9px solid #C7E6CF; padding: .15rem 0;
    transition: border-color .2s ease;
}
.rlvka-download__link:hover .rlvka-download__label,
.rlvka-download__link:focus .rlvka-download__label { border-bottom-color: #93c8a0; }

/* ===== Chiffre-/Kontaktformular ===== */
.rlvka-fieldset { border: 0; padding: 0; margin: 0 0 1.25rem; }
.rlvka-fieldset legend { font-size: 1rem; font-weight: 700; margin-bottom: .5rem; }
.rlvka-form .is-invalid { border-color: #c00; }
.rlvka-privacy .form-check { display: block; }

/* Honeypot (Spam-Schutz): für Menschen unsichtbar */
.rlvka-hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }

/* ===== Anzeigenmarkt (Startseite) ===== */
.rlvka-market { margin-top: 2.5rem; }
.rlvka-market__group[hidden] { display: none; }

/* Rubrik-Filter als „Filter-Chips“: Rahmen, ausgewählt = gefüllt + Haken.
   Eckig und schwarzer Rahmen wie die Auswahlfelder der Seite. */
.rlvka-market-filter {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin: 0 0 1.75rem;
}
.rlvka-market-filter[hidden] { display: none; }
.rlvka-market-filter__btn {
    appearance: none;
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    min-height: 2.25rem;
    padding: .35rem .8rem;
    background: #fff;
    border: 1px solid #000;
    border-radius: 0;
    color: #000;
    font: inherit;
    font-size: .8em; /* 80 % der Fließtextgröße */
    font-weight: 400;
    line-height: 1.2;
    cursor: pointer;
    transition: background-color .15s ease;
}
.rlvka-market-filter__btn:focus-visible { outline: 2px solid #93c8a0; outline-offset: 2px; }
.rlvka-market-filter__btn.is-active { background: #BFE7CD; font-weight: 600; }
@media (hover: hover) {
    .rlvka-market-filter__btn:hover { background: #f1f9f3; }
    .rlvka-market-filter__btn.is-active:hover { background: #93c8a0; }
}
.rlvka-market-filter__check { display: none; font-size: .8em; }
.rlvka-market-filter__btn.is-active .rlvka-market-filter__check { display: inline-block; }
.rlvka-market-filter__count {
    font-weight: 400;
    font-size: .8125em;
    color: #444;
}
.rlvka-market-filter__count::before { content: "("; }
.rlvka-market-filter__count::after { content: ")"; }
/* Jede Rubrik ist ein eigenes Raster → beginnt immer in einer neuen Zeile */
.rlvka-market__group {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem 1.5rem;
    margin-bottom: 1.5rem;
}
@media (max-width: 767.98px) {
    .rlvka-market__group { grid-template-columns: 1fr; }
}
.rlvka-market-ad {
    padding: .75rem 1rem;
    background: #fafafa;
    border: solid .5rem #BFE7CD;
}
.rlvka-market-ad__category {
    font-size: .8125rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #555;
    margin: 0 0 .35rem;
}
.rlvka-market-ad__headline { font-weight: 700; margin: 0 0 .25rem; }
.rlvka-market-ad__text p:last-child { margin-bottom: 0; }
.rlvka-market-ad { display: flex; flex-direction: column; }
/* Kontakt (Telefon / E-Mail) + Chiffre – unten in der Anzeige */
.rlvka-market-ad__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem 1.5rem;
    margin-top: auto;
    padding-top: .75rem;
}
.rlvka-market-ad__contact { gap: .45rem; max-width: 100%; overflow-wrap: anywhere; }
.rlvka-market-ad__contact i { font-size: .9em; }
.rlvka-market-ad .visually-hidden {
    position: absolute !important;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0, 0, 0, 0);
    white-space: nowrap; border: 0;
}
.rlvka-market-ad__text a {
    color: #000;
    text-decoration: underline;
    text-decoration-color: #BFE7CD;
    text-decoration-thickness: .2rem;
    text-decoration-skip-ink: none;
}
.rlvka-market-ad__text a:hover,
.rlvka-market-ad__text a:focus { color: #000; text-decoration-color: #93c8a0; }

/* =====================================================================
   Barrierefreiheit (WCAG 2.2 AA)
   ===================================================================== */
/* Schrittanzeige: Schritte sind Buttons – optisch wie bisher */
.rlvka-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;
}
.rlvka-steps__btn:disabled { color: inherit; opacity: 1; cursor: default; }
.rlvka-steps__item.is-clickable .rlvka-steps__btn { cursor: pointer; }
/* Programmatisch fokussierte Bereiche (Schritt, Fehlerliste) ohne Rahmen */
.rlvka-step:focus, .rlvka-errors:focus { outline: none; }
/* Rahmen von Eingabefeldern mit ausreichendem Kontrast (≥ 3:1, WCAG 1.4.11) */
.rlvka-form .form-control,
.rlvka-form .form-select { border-color: #8f8f8f; }
.rlvka-form .form-check-input { border-color: #767676; }
.rlvka-form .form-control.is-invalid,
.rlvka-form .form-select.is-invalid,
.rlvka-form .form-check-input.is-invalid { border-color: #c00; }
