/*
|--------------------------------------------------------------------------
| FIRELOCKER MODERN UI
| PicoCSS Override + Modern SaaS Design
| Tailscale / Linear / Vercel Inspired
|--------------------------------------------------------------------------
*/

:root {

    /*
    |--------------------------------------------------------------------------
    | COLORS
    |--------------------------------------------------------------------------
    */

    --fl-bg: #020617;
    --fl-bg-secondary: #0f172a;
    --fl-surface: rgba(15,23,42,0.76);

    --fl-border: rgba(255,255,255,0.08);

    --fl-primary: #3b82f6;
    --fl-primary-hover: #2563eb;

    --fl-success: #22c55e;
    --fl-warning: #f59e0b;
    --fl-danger: #ef4444;

    --fl-text: #f8fafc;
    --fl-text-muted: #94a3b8;

    /*
    |--------------------------------------------------------------------------
    | EFFECTS
    |--------------------------------------------------------------------------
    */

    --fl-radius: 24px;
    --fl-radius-small: 16px;

    --fl-shadow:
            0 10px 40px rgba(0,0,0,0.35);

    --fl-shadow-hover:
            0 20px 60px rgba(0,0,0,0.45);

    /*
    |--------------------------------------------------------------------------
    | PICO OVERRIDES
    |--------------------------------------------------------------------------
    */

    --pico-font-family:
            Inter,
            system-ui,
            sans-serif;

    --pico-border-radius:
            18px;

    --pico-primary:
            var(--fl-primary);

    --pico-primary-hover:
            var(--fl-primary-hover);
}

/*
|--------------------------------------------------------------------------
| GLOBAL
|--------------------------------------------------------------------------
*/

html {
    background: var(--fl-bg);
    scroll-behavior: smooth;
}

body {

    min-height: 100vh;

    color: var(--fl-text);

    background:

            radial-gradient(
                    circle at top left,
                    rgba(59,130,246,0.15),
                    transparent 24%
            ),

            radial-gradient(
                    circle at bottom right,
                    rgba(16,185,129,0.10),
                    transparent 28%
            ),

            var(--fl-bg);

    overflow-x: hidden;
}

main {
    width: min(1450px, 92%);
    margin: auto;
    padding-bottom: 5rem;
}

/*
|--------------------------------------------------------------------------
| TYPOGRAPHY
|--------------------------------------------------------------------------
*/

h1,
h2,
h3,
h4,
h5,
h6 {
    color: white;
    letter-spacing: -0.04em;
}

h1 {
    font-size: clamp(2.5rem, 5vw, 4rem);
    font-weight: 800;
}

h2 {
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 750;
}

h3 {
    font-weight: 700;
}

h4 {
    font-size: 1.1rem;
}

p {
    color: #d6dee8;
}

.subtitle {
    color: var(--fl-text-muted);
    margin-top: -0.5rem;
    margin-bottom: 1.5rem;
}

.centerText {
    text-align: center;
}

.noMargin {
    margin: 0;
}

.smallTextMargin p {
    margin-top: 0.2rem;
    margin-bottom: 0.2rem;
}

/*
|--------------------------------------------------------------------------
| ARTICLES / CARDS
|--------------------------------------------------------------------------
*/

article,
.basicArticle,
.resArticle {

    position: relative;

    overflow: hidden;

    margin: 20px auto;

    padding: 2rem;

    border: 1px solid var(--fl-border);

    border-radius: var(--fl-radius);

    background: var(--fl-surface);

    backdrop-filter: blur(18px);

    box-shadow: var(--fl-shadow);

    transition: 0.25s ease;
}

article:hover,
.basicArticle:hover,
.resArticle:hover {

    transform: translateY(-3px);

    border-color: rgba(59,130,246,0.25);

    box-shadow: var(--fl-shadow-hover);
}

article::before,
.basicArticle::before,
.resArticle::before {

    content: "";

    position: absolute;

    inset: 0;

    background:
            linear-gradient(
                    135deg,
                    rgba(59,130,246,0.06),
                    transparent 30%
            );

    pointer-events: none;
}

/*
|--------------------------------------------------------------------------
| HERO
|--------------------------------------------------------------------------
*/

.bigTop {

    margin: auto 3rem auto 2rem;

    padding: 3rem 2rem;

    text-align: center;

    border: 1px solid var(--fl-border);

    border-radius: 32px;

    background: var(--fl-surface);

    backdrop-filter: blur(20px);

    box-shadow: var(--fl-shadow);
}

.skewedTop {

    width: min(1200px, 92%);

    margin: 2rem auto;

    padding: 2rem;

    text-align: center;

    border-radius: var(--fl-radius);

    background: rgba(255,255,255,0.03);

    border: 1px solid var(--fl-border);

    transform: none;
}

.headline {
    text-align: center;
    margin-bottom: 5vh;
}

.headline p {

    text-align: center;

    position: relative;

    padding: 20px;

    background: rgba(255,255,255,0.03);

    margin: auto;

    width: 80%;

    border-radius: 1rem;

    border: 1px solid var(--fl-border);
}

/*
|--------------------------------------------------------------------------
| BUTTONS
|--------------------------------------------------------------------------
*/

button,
[role="button"] {

    position: relative;

    overflow: hidden;

    border-radius: 18px !important;

    font-weight: 650;

    transition: 0.2s ease;

    border-width: 1px !important;
}

button:hover,
[role="button"]:hover {

    transform: translateY(-2px);

    box-shadow: 0 10px 24px rgba(0,0,0,0.25);
}

button::after {

    content: '';

    position: absolute;

    inset: 0;

    background:
            linear-gradient(
                    120deg,
                    transparent 20%,
                    rgba(255,255,255,0.35) 50%,
                    transparent 80%
            );

    transform: translateX(-120%);

    transition: transform 0.6s ease;
}

button:hover::after {
    transform: translateX(120%);
}

.marginAwithBtn {
    margin: 20px;
    max-width: 280px;
    width: 90%;
}

/*
|--------------------------------------------------------------------------
| FORMS
|--------------------------------------------------------------------------
*/

form {
    margin: auto;
    width: 95%;
}

/* Angepasste Regel, die Checkboxes, Radios und Buttons verschont */
input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),
textarea,
select {
    background-color: rgba(255,255,255,0.03) !important;
    border: 1px solid rgba(255,255,255,0.08) !important;
    border-radius: 16px !important;
    transition: 0.2s ease;
}

/* Optional: Checkboxen und Radios auf dunklem Hintergrund besser sichtbar machen */
input[type="checkbox"],
input[type="radio"] {
    border: 2px solid rgba(255,255,255,0.3) !important;
    cursor: pointer;
}

/* --- Deutliche Hervorhebung für ausgewählte Radio-Buttons & Checkboxen --- */
input[type="radio"]:checked,
input[type="checkbox"]:checked {
    /* Füllt den Hintergrund mit deiner Primärfarbe (Blau) */
    background-color: var(--pico-primary) !important;

    /* Passt den Rand an die Primärfarbe an */
    border-color: var(--pico-primary) !important;

    /* Modern UI Effekt: Ein sanftes Leuchten in der Primärfarbe,
       damit man sofort sieht, was aktiv ist */
    box-shadow: 0 0 12px rgba(59, 130, 246, 0.45) !important;
}

/* Optional: Ein etwas auffälligerer Punkt für das Radio-Button-Innere,
   falls PicoCSS das SVG durch vorherige Regeln verschluckt hat */
input[type="radio"]:checked {
    background-image: radial-gradient(circle, white 40%, var(--pico-primary) 45%) !important;
}

input:focus,
textarea:focus,
select:focus {

    transform: scale(1.02);

    border-color: rgba(59,130,246,0.5) !important;

    box-shadow:
            0 0 0 4px rgba(59,130,246,0.12) !important;
}

/*
|--------------------------------------------------------------------------
| MEDIA
|--------------------------------------------------------------------------
*/

.articleImg {
    max-width: 100%;
    max-height: 100%;
    height: auto;
    width: auto;
    border-radius: 1rem;
    margin: 0;
}

.bigView {
    display: flex;
    justify-content: center;
    margin: 10px;
}

.bigView img {
    padding: 15px 30px;
    width: 700px;
    max-width: 95%;
    border-radius: 1rem;
}

/*
|--------------------------------------------------------------------------
| LABELS
|--------------------------------------------------------------------------
*/

.single-label-container {
    max-width: 25%;
    margin: auto;
    display: flex;
    justify-content: center;
}

.label-warning {

    border-radius: 999px;

    padding: 15px 20px;

    text-align: center;

    margin: 5px;

    color: black;

    font-weight: bold;

    background: rgb(255, 255, 0);
}

/*
|--------------------------------------------------------------------------
| SLIDESHOW
|--------------------------------------------------------------------------
*/

.slideshow-container {

    max-width: 85%;

    position: relative;

    border: solid 1px var(--fl-border);

    border-radius: 1rem;

    overflow: hidden;

    background: var(--fl-surface);

    margin: auto;
}

.mySlides {
    display: none;
}

.mySlides img {
    border-radius: 1rem;
}

.prev,
.next {

    background-color: rgba(0,0,0,0.3);

    cursor: pointer;

    position: absolute;

    top: 50%;

    width: auto;

    margin-top: -22px;

    padding: 20px;

    color: white;

    font-weight: bold;

    font-size: 18px;

    transition: 0.3s ease;

    border-radius: 0 12px 12px 0;

    user-select: none;
}

.next {
    right: 0;
    border-radius: 12px 0 0 12px;
}

.prev:hover,
.next:hover {
    background-color: rgba(0,0,0,0.7);
}

.text {
    color: white;
    font-size: 15px;
    padding: 8px 12px;
    position: absolute;
    bottom: 0;
    width: 100%;
    text-align: center;
    z-index: 3;
}

.numbertext {
    color: darkslategray;
    font-size: 12px;
    padding: 8px 12px;
    position: absolute;
    top: 0;
}

.dot {
    cursor: pointer;
    height: 15px;
    width: 15px;
    margin: 0 2px;
    /*background-color: #bbb;*/
    border-radius: 50%;
    display: inline-block;
    transition: background-color 0.6s ease;
}

.active,
.dot:hover {
    /*background-color: #717171;*/
}

.fade {
    animation: fadeInUp 0.5s ease;
}

/*
|--------------------------------------------------------------------------
| LINKS
|--------------------------------------------------------------------------
*/

a {
    text-decoration: none;
    transition: 0.2s ease;
}

footer a img {

    background: white;

    transition: 250ms all ease;

    border-radius: 1rem;

    padding: 5px;
}

footer a img:hover {
    background: rgba(255, 255, 255, 0.4);
}

.footer-links {

    display: flex;

    flex-wrap: wrap;

    justify-content: center;

    gap: 1rem;

    font-size: 0.9rem;

    margin-top: 2rem;
}

/*
|--------------------------------------------------------------------------
| UTILITIES
|--------------------------------------------------------------------------
*/

.wipFeatureLine {
    width: 100%;
    padding: 10px;
    background: rgba(255,255,255,0.04);
    text-align: center;
    border-radius: 1rem;
}

.picdesc {
    font-size: 0.8rem;
}

.complexResArtBg {
    background: rgba(59,130,246,0.12);
    border-radius: 1rem;
}

ul li {
    list-style-type: disc;
}

.article-content ul li img {
    max-width: 50%;
    width: 400px;
    border-radius: 0.8rem;
}

/*
|--------------------------------------------------------------------------
| ANIMATIONS
|--------------------------------------------------------------------------
*/

@keyframes fadeInUp {

    from {
        opacity: 0;
        transform: translateY(24px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes floatCard {

    0%,100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-3px);
    }
}

/*
|--------------------------------------------------------------------------
| MOBILE
|--------------------------------------------------------------------------
*/

@media (max-width: 900px) {

    .bigTop {
        width: 95%;
    }

    .skewedTop {
        margin: 10px 0 15px;
    }

    .resArticle {
        max-width: 95%;
    }

    .headline p {
        width: 95%;
    }

    .basicArticle {
        max-width: 97%;
    }

    .formula-btn {
        margin: 10px 5px 0 5px;
    }

    .single-label-container {
        max-width: 60%;
    }

    article button {
        width: 100%;
    }

    .footer-links {
        flex-direction: column;
        align-items: center;
    }
}

/*
|--------------------------------------------------------------------------
| SCROLLBAR
|--------------------------------------------------------------------------
*/

::-webkit-scrollbar {
    width: 10px;
}

::-webkit-scrollbar-track {
    background: #020617;
}

::-webkit-scrollbar-thumb {

    background: rgba(255,255,255,0.12);

    border-radius: 999px;
}

::-webkit-scrollbar-thumb:hover {
    background: rgba(255,255,255,0.22);
}