:root {
    /* Text */
    --color-text-primary: #FFDB57;
    --color-link: #22ff00;

    /* Background */
    --color-bg-primary: #22575D;

    /* Colors */
    --color-black: #171717;
    --color-white: #f1f1f1;
    --color-mark: rgba(236, 171, 51, 0.85);

    /* Status: ticket (grün) */
    --status-ticket-bg: #0F6E56;
    --status-ticket-border: #61ffd2;
    --status-ticket-text: #d4fff3;

    /* Status: would love (lila) */
    --status-star-bg: #6e0f5b;
    --status-star-border: #eda5ff;
    --status-star-text: #f7d6ff;

    /* Status: maybe (grau) */
    --status-pin-bg: #606060;
    --status-pin-border: #eaeaea;
    --status-pin-text: #f1f1f1;
}

*, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

.visually-hidden:not(:focus):not(:active) {
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px;
}

html {
    font-size: 1.25rem;
    background-color: var(--color-bg-primary);
    color: var(--color-text-primary);
    font-family: sans-serif;
}

hr {
    margin: 1rem 0;
    size: 2px;
}

h1 {
    margin: 3.5rem 0 2rem;
}

p {
    margin: 1rem 0;
}

a {
    color: var(--color-text-primary);
    font-weight: bold;
}


main {
    padding-top: 2rem;
    padding-bottom: 4rem;
}

section {
    max-width: 64rem;
    margin: 0 auto;
    padding-left: 2rem;
    padding-right: 2rem;
}

mark {
    color: var(--color-black);
    background: var(--color-mark);
}

p {
    color: var(--color-text-primary);
}

svg {
    fill: currentColor;
}

.status-tag {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    border-radius: 100px;
    padding: .25rem .75rem;
    font-size: .625rem;
    font-weight: bold;
    border: 2px solid;
    margin-bottom: .75rem;

    &.status-tag--ticket {
        background: var(--status-ticket-bg);
        border-color: var(--status-ticket-border);
        color: var(--status-ticket-text);
    }

    &.status-tag--star {
        background: var(--status-star-bg);
        border-color: var(--status-star-border);
        color: var(--status-star-text);
    }

    &.status-tag--pin {
        background: var(--status-pin-bg);
        border-color: var(--status-pin-border);
        color: var(--status-pin-text);
    }
}

.status-tag__icon {
    display: inline-block;
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}

.status-tag__icon svg {
    width: 16px;
    height: 16px;
    display: block;
}

/* ── Event-Liste & Kacheln ───────────────────────── */

.event-list {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}

.event-card {
    list-style-type: none;
    border-radius: 25px;
    padding: 1rem;
    border: 2px solid;
    box-shadow: -3px 3px 10px var(--color-black);


    &.event-card--ticket {
        background: color-mix(in srgb, var(--status-ticket-bg) 30%, transparent);
        border-color: var(--status-ticket-border);
    }

    &.event-card--star {
        background: color-mix(in srgb, var(--status-star-bg) 30%, transparent);
        border-color: var(--status-star-border);
    }

    &.event-card--pin {
        background: color-mix(in srgb, var(--status-pin-bg) 30%, transparent);
        border-color: var(--status-pin-border);
    }

    &.event-card--past {
        background: color-mix(in srgb, var(--color-mark) 20%, transparent);
        border-color: var(--color-mark);
    }
}

.event-icon {
    display: inline-block;
    width: 20px;
    height: 20px;
}

.event-date {
    font-size: 2rem;
    font-weight: bolder;
}

.event-location__city {
    text-transform: uppercase;
    font-weight: bold;
}

.event-price {
    font-size: 1.5rem;
    font-weight: bolder;
    text-align: right;
    color: var(--color-mark);
}

.event-link:after {
content: "→";
}
