/*
 * Gestaltung des Kalender-Moduls: Abo-Bereich und Terminliste.
 * Farben der Marke kommen als Variablen aus sv-basis (inc/design.php); die Werte nach dem Komma sind nur Rueckfall.
 * Linien, Rundungen und Toenungen kommen aus sv-basis/assets/portal.css (--sv-linie, --sv-primaer-tint ...).
 * Klassen beginnen mit sv-. Keine fremden Schriften oder Bilder.
 */
.sv-kalender {
    margin: 1rem 0;
}
.sv-kal-abo {
    margin: 0 0 1.5rem;
    padding: 1.1rem 1.25rem;
    background: #fff;
    border: 1px solid var(--sv-linie, rgba(0, 0, 0, .08));
    border-radius: var(--sv-radius, 12px);
}
.sv-kal-abo h3 {
    margin-top: 0;
}
.sv-kal-knoepfe {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem 1rem;
}
.sv-kal-abo .sv-knopf {
    padding: .65rem 1.3rem;
}
.sv-kal-link {
    margin: .5rem 0;
    font-size: .875rem;
}
.sv-kal-adresse {
    box-sizing: border-box;
    width: 100%;
    margin-top: .25rem;
    padding: .45rem .6rem;
    font: inherit;
    font-size: .875rem;
    color: inherit;
    background: #f6f7f8;
    border: 1px solid #767676;
    border-radius: var(--sv-radius-klein, 8px);
}
.sv-kal-anleitung,
.sv-kal-teile {
    margin-top: .75rem;
}
.sv-kal-anleitung summary,
.sv-kal-teile summary {
    cursor: pointer;
    font-weight: 500;
    color: var(--sv-primaer-text, #7a1b3c);
}
.sv-kal-anleitung h4 {
    margin: 1rem 0 .25rem;
}
.sv-kal-anleitung ol {
    margin: .25rem 0 .5rem;
    padding-left: 1.4rem;
}
.sv-kal-anleitung li {
    margin-bottom: .35rem;
}
.sv-kal-teile ul {
    margin: .5rem 0 0;
    padding-left: 1.2rem;
}
.sv-kal-teile code {
    font-size: .8125rem;
    overflow-wrap: anywhere;
}
.sv-kal-liste h3 {
    margin: 0 0 .75rem;
}
.sv-termine {
    display: grid;
    gap: .75rem;
    margin: 0;
    padding: 0;
    list-style: none;
}
.sv-termin {
    display: flex;
    gap: .9rem;
    align-items: flex-start;
    padding: .8rem 1rem;
    background: #fff;
    border: 1px solid var(--sv-linie, rgba(0, 0, 0, .08));
    border-radius: var(--sv-radius, 12px);
}
/* Datums-Kaestchen: zart getoent, die Zahl in der Hauptfarbe (nicht mehr als volle Flaeche) */
.sv-termin-tag {
    flex: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 3.4rem;
    padding: .35rem 0;
    line-height: 1.1;
    text-align: center;
    color: var(--sv-primaer-text, #7a1b3c);
    background: var(--sv-primaer-tint, rgba(0, 0, 0, .05));
    border-radius: var(--sv-radius-klein, 8px);
}
.sv-termin-nr {
    font-size: 1.4rem;
    font-weight: 600;
}
.sv-termin-monat {
    font-size: .7rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.sv-termin-inhalt {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    min-width: 0;
}
.sv-termin-titel {
    font-size: 1.025rem;
    font-weight: 600;
    overflow-wrap: anywhere;
}
.sv-termin-wann,
.sv-termin-ort,
.sv-termin-veranstalter {
    font-size: .9rem;
}
.sv-termin-ort::before {
    content: "Ort: ";
    opacity: .7;
}
.sv-termin-veranstalter {
    opacity: .75;
}
.sv-termin-links {
    margin-top: .25rem;
    font-size: .875rem;
}
.sv-termin-links a {
    margin-right: .9rem;
    color: var(--sv-primaer-text, #7a1b3c);
}

/* ---- Widget "Terminkalender" (Startseite) --------------------------------- */
.sv-kalw {
    padding: 1.15rem 1.25rem 1.25rem;
    background: #fff;
    border: 1px solid var(--sv-linie, rgba(0, 0, 0, .08));
    border-radius: var(--sv-radius, 12px);
}
.sv-kalw-kopf {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .5rem 1rem;
    margin-bottom: .75rem;
}
.sv-kalw-titel {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 600;
    line-height: 1.25;
}
/* Abonnieren: leiser Knopf (Toenung, Schrift in der Hauptfarbe); der gefuellte Hauptknopf gehoert dem Markt-Kasten */
.sv-kalw .sv-kalw-abo {
    padding: .35rem .95rem;
    font-size: .875rem;
    color: var(--sv-primaer-text, #7a1b3c);
    background: var(--sv-primaer-tint, rgba(0, 0, 0, .05));
}
.sv-kalw .sv-kalw-abo:hover,
.sv-kalw .sv-kalw-abo:focus {
    color: var(--sv-primaer-text, #7a1b3c);
    filter: brightness(.95);
}
.sv-kalw-monat {
    margin: 0 0 1rem;
}
.sv-kalw-monat[hidden] {
    display: none;
}
.sv-kalw-monatskopf {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: .25rem;
}
.sv-kalw-monatsname {
    font-size: 1rem;
    font-weight: 600;
}
.sv-kalw-pfeil {
    width: 44px;
    height: 44px;
    padding: 0;
    font: inherit;
    font-size: 1.5rem;
    line-height: 1;
    color: inherit;
    background: none;
    border: 0;
    border-radius: 50%;
    cursor: pointer;
}
.sv-kalw-pfeil:hover,
.sv-kalw-pfeil:focus-visible {
    background: rgba(0, 0, 0, .06);
}
.sv-kalw-raster {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 2px;
}
.sv-kalw-wt {
    padding: .2rem 0;
    font-size: .75rem;
    font-weight: 500;
    text-align: center;
    opacity: .6;
}
.sv-kalw-tag {
    display: grid;
    place-items: center;
    height: 2.6rem;
    margin: 0;
    padding: 0;
    font: inherit;
    font-size: .9375rem;
    color: inherit;
    background: none;
    border: 1px solid transparent;
    border-radius: var(--sv-radius-klein, 8px);
}
.sv-kalw-tag.ist-heute {
    border-color: var(--sv-text, #222);
}
/* Tage mit Terminen: Vereinstermine zart getoent, gemeinsame Aktionen gefuellt (die einzige volle Flaeche im Kalender) */
button.sv-kalw-tag.hat-termin {
    font-weight: 600;
    color: var(--sv-primaer-text, #7a1b3c);
    background: var(--sv-primaer-tint, rgba(0, 0, 0, .07));
    cursor: pointer;
}
button.sv-kalw-tag.hat-termin.ist-aktion {
    color: var(--sv-primaer-flaeche-kontrast, #fff);
    background: var(--sv-primaer-flaeche, #7a1b3c);
}
button.sv-kalw-tag.hat-termin:hover,
button.sv-kalw-tag.hat-termin:focus-visible {
    filter: brightness(.94);
}
button.sv-kalw-tag.ist-gewaehlt {
    outline: 2px solid var(--sv-text, #222);
    outline-offset: 1px;
}
.sv-kalw-liste {
    margin-top: .25rem;
}
.sv-kalw-listentitel {
    margin: 0 0 .5rem;
    font-size: .9375rem;
    font-weight: 600;
}
.sv-kalw-termine {
    margin: 0;
    padding: 0;
    list-style: none;
}
.sv-kalw-termin {
    display: flex;
    gap: .8rem;
    align-items: flex-start;
    padding: .7rem 0;
    border-top: 1px solid var(--sv-linie, rgba(0, 0, 0, .08));
}
.sv-kalw-datum {
    flex: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 3rem;
    padding: .3rem 0;
    line-height: 1.1;
    text-align: center;
    color: var(--sv-primaer-text, #7a1b3c);
    background: var(--sv-primaer-tint, rgba(0, 0, 0, .05));
    border-radius: var(--sv-radius-klein, 8px);
}
.sv-kalw-nr {
    font-size: 1.3rem;
    font-weight: 600;
}
.sv-kalw-mon {
    font-size: .675rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.sv-kalw-text {
    display: flex;
    flex-direction: column;
    gap: .1rem;
    min-width: 0;
}
.sv-kalw-name {
    font-weight: 600;
    overflow-wrap: anywhere;
}
.sv-kalw-wann,
.sv-kalw-ort,
.sv-kalw-verein {
    font-size: .875rem;
}
.sv-kalw-ort::before {
    content: "Ort: ";
    opacity: .7;
}
.sv-kalw-verein {
    opacity: .75;
}
/* Marke "Gemeinsame Aktion": zart in der Akzentfarbe getoent, Schrift in der Textfarbe */
.sv-kalw-marke {
    align-self: flex-start;
    padding: .05rem .55rem;
    font-size: .7rem;
    font-weight: 600;
    letter-spacing: .02em;
    color: var(--sv-text, #222);
    background: var(--sv-akzent-tint, rgba(0, 0, 0, .05));
    border: 1px solid var(--sv-akzent-rand, rgba(0, 0, 0, .25));
    border-radius: 999px;
}
.sv-kalw-links {
    margin-top: .2rem;
    font-size: .8125rem;
}
.sv-kalw-links a {
    margin-right: .9rem;
    color: var(--sv-primaer-text, #7a1b3c);
}
.sv-kalw-zurueck {
    margin: .25rem 0 0;
}
.sv-kalw-zurueck[hidden] {
    display: none;
}
.sv-kalw-hilfe {
    margin-top: .75rem;
    padding-top: .6rem;
    border-top: 1px solid var(--sv-linie, rgba(0, 0, 0, .08));
    font-size: .9rem;
}
.sv-kalw-hilfe summary {
    cursor: pointer;
    font-weight: 500;
    color: var(--sv-primaer-text, #7a1b3c);
}
.sv-kalw-hilfe .sv-kal-link {
    font-size: .875rem;
}
.sv-kal-kopieren[hidden] {
    display: none;
}
