/*
 * =========================================================
 * Athorium - Responsive Kachel-Design
 * =========================================================
 */


/*
 * Grundlayout
 */

* {
    box-sizing: border-box;
}


html,
body {
    margin: 0;
    padding: 0;
    min-height: 100%;
}


body {
    font-family:
        Arial,
        Helvetica,
        sans-serif;

    color: #ffffff;

    background-color: #f4f4f4;

    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    background-attachment: fixed;
}


/*
 * ---------------------------------------------------------
 * Seitenbasierte Hintergrundbilder
 * ---------------------------------------------------------
 *
 * Die jeweilige PHP-Seite bestimmt über die body-Klasse,
 * welches Hintergrundbild benutzt wird.
 *
 * Beispiel:
 *
 * <body class="page-pacrat">
 *
 */


body.page-pacrat {
    background-image:
        url("../bilder/pacrat-background.png");
}


/*
 * Weitere Seiten können später einfach ergänzt werden:
 *
 * body.page-events {
 *     background-image: url("../bilder/events-background.jpg");
 * }
 *
 * body.page-shifts {
 *     background-image: url("../bilder/shifts-background.jpg");
 * }
 *
 */



/*
 * =========================================================
 * Header
 * =========================================================
 */

.top-header {
    position: sticky;
    top: 0;

    z-index: 1000;

    background:
    linear-gradient(
        to right,
        black 10%,
        black 30%,
        red 55%,
        gold 100%
    );

    color: white;

    box-shadow:
        0 2px 10px rgba(0, 0, 0, 0.35);
}


.header-inner {
    width: 94%;
    max-width: 1920px;

    min-height: 74px;

    margin: 0 auto;

    display: flex;
    align-items: center;
    justify-content: space-between;
}


.brand {
    display: flex;
    align-items: center;

    gap: 12px;

    color: white;
    text-decoration: none;
}


.brand img {
    width: 48px;
    height: 48px;

    object-fit: contain;
}


.brand-name {
    font-size: 26px;
    font-weight: bold;

    line-height: 1;
}


.brand-sub {
    margin-top: 5px;

    font-size: 12px;

    opacity: 0.80;

    letter-spacing: 1px;
}


.menu-button {
    width: 48px;
    height: 48px;

    border: 0;

    border-radius: 10px;

    background:
        rgba(0, 0, 0, 0.35);

    color: white;

    font-size: 26px;

    cursor: pointer;
}


.menu-button:hover {
    background:
        rgba(255, 255, 255, 0.20);
}



/*
 * =========================================================
 * Offcanvas-Menü
 * =========================================================
 */

.offcanvas-menu {
    position: fixed;

    z-index: 2000;

    top: 0;
    right: -340px;

    width: 320px;
    max-width: 86vw;

    height: 100vh;

    background:
        rgba(0, 0, 0, 0.90);

    color: white;

    box-shadow:
        -8px 0 30px rgba(0, 0, 0, 0.40);

    transition:
        right 0.25s ease;

    overflow-y: auto;
}


.offcanvas-menu.visible {
    right: 0;
}


.offcanvas-head {
    min-height: 74px;

    padding: 0 20px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    background:
        linear-gradient(
            to right,
            black,
            red,
            gold
        );

    border-bottom:
        1px solid rgba(255, 255, 255, 0.20);
}


.close-menu {
    border: 0;

    background: none;

    color: white;

    font-size: 23px;

    cursor: pointer;
}


.game-menu {
    list-style: none;

    margin: 0;
    padding: 15px;
}


.game-menu li {
    margin: 3px 0;
}


.game-menu a,
.game-menu a:visited {
    display: block;

    padding: 13px 14px;

    border-radius: 8px;

    color: white;

    text-decoration: none;

    font-weight: bold;
}


.game-menu a:hover {
    color: black;

    background: gold;
}


.game-menu a:active {
    color: white;

    background: red;
}


.menu-overlay {
    display: none;

    position: fixed;

    z-index: 1900;

    inset: 0;

    background:
        rgba(0, 0, 0, 0.48);
}


.menu-overlay.visible {
    display: block;
}



/*
 * =========================================================
 * Hauptseite
 * =========================================================
 */

.page {
    width: 95%;
    max-width: 1920px;

    margin: 0 auto;

    padding:
        24px 0 80px 0;
}



/*
 * =========================================================
 * Hero
 * =========================================================
 */

.hero {
    margin-bottom: 20px;

    padding: 28px;

    border-radius: 12px;

    color: white;

    background:
        linear-gradient(
            to right,
            rgba(0, 0, 0, 0.88),
            rgba(180, 0, 0, 0.82),
            rgba(247, 197, 0, 0.82)
        );

    box-shadow:
        0 4px 16px rgba(0, 0, 0, 0.28);
}


.hero-label {
    margin-bottom: 7px;

    color: #ffffff;

    font-size: 13px;
    font-weight: bold;

    text-transform: uppercase;

    letter-spacing: 1.4px;
}


.hero h1 {
    margin:
        0 0 8px 0;

    font-size:
        clamp(
            28px,
            4vw,
            46px
        );
}


.hero p {
    margin: 0;

    max-width: 800px;

    color: #ffffff;

    font-size: 17px;

    line-height: 1.5;
}



/*
 * =========================================================
 * Kachelgrid
 * =========================================================
 */

.grid {
    display: grid;

    grid-template-columns:
        repeat(
            auto-fit,
            minmax(280px, 1fr)
        );

    gap: 18px;
}



/*
 * =========================================================
 * Kacheln
 * =========================================================
 */

.tile {
    min-height: 180px;

    padding: 22px;

    border-radius: 10px;

    color: white;

    box-shadow:
        0 4px 10px rgba(0, 0, 0, 0.28);

    overflow: hidden;

    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
}


.tile h2,
.tile h3 {
    margin-top: 0;
}


.tile p {
    line-height: 1.5;
}


.tile a,
.tile a:visited,
.tile a:active {
    color: white;

    text-decoration: none;

    font-weight: bold;
}


.tile a:hover {
    color: black;

    background: gold;

    text-decoration: none;
}



/*
 * ---------------------------------------------------------
 * Originale Athorium-Kachelfarben
 * jetzt leicht transparent
 * ---------------------------------------------------------
 */

.black {
    background:
        rgba(0, 0, 0, 0.82);
}


.red {
    background:
        rgba(212, 25, 25, 0.82);
}


.yellow {
    background:
        rgba(247, 197, 0, 0.82);

    color: black;
}


.green {
    background:
        rgba(11, 142, 11, 0.82);
}



/*
 * Hervorgehobene Kachel
 */

.tile-feature {
    background:
        linear-gradient(
            135deg,
            rgba(0, 0, 0, 0.88),
            rgba(212, 25, 25, 0.82),
            rgba(247, 197, 0, 0.82)
        );

    color: white;
}


/*
 * Breite Kachel
 */

.tile-wide {
    grid-column:
        span 2;
}

.about-container {
    margin-top: 30px; /* Oder wie viel Abstand du auch immer willst */
    display: block;
    clear: both;     /* Verhindert, dass es in das Grid oben reinrutscht */
}

/*
 * =========================================================
 * Modulbutton
 * =========================================================
 */

.module-button {
    display: inline-flex;

    align-items: center;

    gap: 8px;

    margin-top: 10px;

    padding:
        11px 15px;

    border-radius: 8px;

    background:
        rgba(0, 0, 0, 0.75);

    color:
        white !important;

    text-decoration:
        none !important;

    font-weight:
        bold;
}


.module-button:hover {
    color:
        black !important;

    background:
        gold;
}



/*
 * =========================================================
 * Tabellen
 * =========================================================
 */

table {
    width: 100%;

    border-collapse:
        collapse;

    background:
        rgba(255, 255, 255, 0.92);

    color:
        black;
}


table th,
table td {
    padding: 10px;

    border-bottom:
        1px solid #cccccc;

    text-align: left;
}



/*
 * =========================================================
 * Formulare
 * =========================================================
 */

input,
select,
textarea,
button {
    font: inherit;
}


input,
select,
textarea {
    width: 100%;

    padding:
        11px 12px;

    border:
        1px solid #cccccc;

    border-radius:
        8px;

    background:
        rgba(255, 255, 255, 0.94);

    color:
        black;
}


input:focus,
select:focus,
textarea:focus {
    outline:
        2px solid gold;

    border-color:
        transparent;
}


/*
 * =========================================================
 * Footer
 * =========================================================
 */

.footer {
    min-height: 48px;

    padding:
        12px 3%;

    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 10px;

    background:
        linear-gradient(
            to right,
            black,
            red,
            gold
        );

    color:
        white;

    font-size:
        12px;
}



/*
 * =========================================================
 * Smartphone
 * =========================================================
 */

@media (max-width: 700px) {

    body {
        /*
         * Bei einem Querformat-Hintergrund können wir hier
         * später pro Seite den gewünschten Ausschnitt setzen.
         */
        background-position:
            60% center;

        /*
         * "fixed" macht auf manchen Smartphones Probleme.
         */
        background-attachment:
            scroll;
    }


    .header-inner {
        width:
            92%;
    }


    .brand-name {
        font-size:
            22px;
    }


    .brand-sub {
        display:
            none;
    }


    .page {
        width:
            94%;

        padding-top:
            14px;
    }


    .hero {
        padding:
            20px;
    }


    .grid {
        grid-template-columns:
            1fr;

        gap:
            12px;
    }


    .tile {
        min-height:
            auto;

        padding:
            18px;
    }


    .tile-wide {
        grid-column:
            auto;
    }


    .footer {
        flex-direction:
            column;

        text-align:
            center;
    }
}



/*
 * =========================================================
 * Sehr kleine Displays
 * =========================================================
 */

@media (max-width: 420px) {

    .brand img {
        width:
            40px;

        height:
            40px;
    }


    .header-inner {
        min-height:
            64px;
    }


    .menu-button {
        width:
            42px;

        height:
            42px;
    }


    .hero h1 {
        font-size:
            27px;
    }
}
