@import url('https://fonts.googleapis.com/css2?family=Knewave&display=swap');

:root {
    --color-primary: #D34949;
    --color-secondary: #008037;
    --color-accent: #24B694;
    --color-marker: #b11010;
    --color-popup-bg: #262626;
    --color-popup-link: #f9f940;
}

body main header{margin-top:3rem;}

p[role="doc-subtitle"] {text-align: center; font-family: "Raleway", sans-serif; color: var(--fg); font-style: normal; font-weight: 600; margin: 0.5rem 0 1.6rem 0; font-size: 2.025rem;}

hr {border: none; text-align: center;}


header h1 {margin: 0rem; padding-top:1rem; font-family: "Knewave", sans-serif;}

header {margin-bottom: 1rem;};

dt {color: var(--color-accent);}
a {color: var(--color-primary);}
a:focus {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
}
dd h3 {color: var(--color-secondary);}

dd li strong {color: var(--color-accent);}

/* On mobile devices, a smaller margin looks more fitting due to the smaller view. */
main { max-width: 90rem !important;}

.center {text-align: center;}

.hashtag {
    color: var(--color-accent);
    font-weight: 600;
}

div.cta a.button {
    display: inline-block;
    padding: 1rem 2rem;
    margin: 1rem;
    color: var(--color-primary);
    border: 1px solid var(--color-primary);
    border-radius: 1rem;
    text-decoration: none;
    cursor: pointer;
    transition: background-color 0.2s, color 0.2s;
}

div.cta a.button:hover {
    background-color: var(--color-primary);
    color: var(--bg);
}

div.cta a.button:focus {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
}

#map {
    height: 500px;
}

@media (max-width: 768px) {
    #map {
        height: 300px;
    }
}
.campaign-marker {
    content: "▼";
    color: var(--color-marker);
    font-size: 2rem;
    text-align: center;
    cursor: pointer;
    transition: color 0.2s, transform 0.2s;
}
.campaign-marker:hover {
    color: var(--color-primary);
    transform: scale(1.2);
}
.popupCustom .leaflet-popup-content-wrapper {
    background: var(--color-popup-bg);
    color: #fff;
    font-size: 1rem;
}
.popupCustom .leaflet-popup-tip,
.popupCustom .leaflet-popup-close-button {
    display: none;
}
.popupCustom .leaflet-popup-content a {
    color: var(--color-popup-link);
}

details {
    margin-top: 2rem;
    padding: 1rem;
}

details summary {
    cursor: pointer;
    font-weight: bold;
    font-size: 1.2rem;
    color: var(--color-secondary);
    padding: 0.5rem 0;
    list-style: none;
}

details summary:focus {
    outline: 2px solid var(--color-secondary);
    outline-offset: 2px;
}

details summary::-webkit-details-marker {
    display: none;
}

details summary::before {
    content: "▶";
    display: inline-block;
    margin-right: 0.5rem;
    font-size: 1.5rem;
    transition: transform 0.2s;
    color: var(--color-marker);
}

details[open] summary::before {
    transform: rotate(90deg);
}

details summary h2 {
    margin: 0;
    display: inline;
    color: var(--color-secondary);
}

details summary:hover h2 {
    color: var(--color-accent);
}

.campaign-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    margin-top: 1rem;
}

.campaign-grid a {
    text-decoration: none;
    padding: 0.5rem;
    display: block;
    border-left: 3px solid transparent;
    transition: all 0.2s;
}

.campaign-grid a::after {
    content: " →";
    opacity: 0;
    transition: opacity 0.2s;
}

.campaign-grid a:hover {
    background-color: rgba(177, 16, 16, 0.1);
    border-radius: 0.25rem;
    border-left-color: var(--color-primary);
    padding-left: 0.75rem;
}

.campaign-grid a:hover::after {
    opacity: 1;
}

.campaign-grid a:focus {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
    background-color: rgba(177, 16, 16, 0.1);
}

@media (max-width: 768px) {
    .campaign-grid {
        grid-template-columns: 1fr;
    }
}
