/**
 * Farbfelder an Variantenoptionen (Umsetzungsplan 3.1.2)
 *
 * Wirkt nur auf Optionen, die catalog-colour-swatches.js mit
 * `.cs-colour-option` und `--cs-colour` versehen hat - also nur dort, wo der
 * Betreiber den Farbnamen gepflegt hat. Ohne Farbkarte laedt dieses Stylesheet
 * gar nicht.
 *
 * Der Punkt steht VOR dem Namen und ERSETZT ihn nicht. Ein Farbfeld allein ist
 * fuer jeden nutzlos, der Farben nicht unterscheiden kann - der Text bleibt die
 * verbindliche Angabe, der Punkt ist die Abkuerzung fuer alle anderen.
 *
 * @author 4Unit Systems Integration GmbH
 */

/* Der Punkt haengt am Kopf der Option, nicht am Eingabefeld: dort sitzt schon
   ::after fuer den Auswahlhaken (modal-variant-styles.css:821). */
.variant-option.cs-colour-option .variant-header::before {
    content: '';
    display: inline-block;
    flex: 0 0 auto;
    width: 1.15rem;
    height: 1.15rem;
    margin-right: 0.5rem;
    border-radius: 9999px;
    background-color: var(--cs-colour, transparent);

    /* Zwei Raender uebereinander, damit sowohl Weiss als auch Schwarz sichtbar
       bleibt: innen hell abgesetzt, aussen dunkel. Ein einzelner grauer Rand
       laesst ein weisses Feld auf weissem Grund verschwinden. */
    border: 1px solid rgba(0, 0, 0, 0.25);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.65);

    vertical-align: middle;
}

/* Der Kopf muss den Punkt neben den Text stellen. Ist er kein Flex-Container,
   greift `flex: 0 0 auto` oben nicht - dann traegt `display:inline-block`. */
.variant-option.cs-colour-option .variant-header {
    display: flex;
    align-items: center;
}

/* Ausgewaehlt: der Punkt bekommt einen Ring, damit die Wahl auch bei zwei
   aehnlichen Farbtoenen erkennbar ist. */
.variant-option.cs-colour-option input:checked ~ .variant-header::before,
.variant-option.cs-colour-option:has(input:checked) .variant-header::before {
    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.65),
        0 0 0 2px rgba(37, 99, 235, 0.9);
}

/* Bei feiner Auflösung etwas kleiner - im Modal auf dem Telefon zaehlt jeder
   Millimeter Breite fuer den Namen. */
@media (max-width: 480px) {
    .variant-option.cs-colour-option .variant-header::before {
        width: 1rem;
        height: 1rem;
        margin-right: 0.4rem;
    }
}

/* Wer Bewegung reduziert haben will, bekommt hier ohnehin keine - der Hinweis
   steht nur, damit niemand spaeter eine Animation ergaenzt. */
