/* ==========================================================================
   Theme powergamer
   Farben, Maße und Verhalten nach docs/MOCKUP-ANALYSE.md.
   Desktop-Referenz: Mocup-Landingpage.jpeg (1536 px breit), Smartphone: Mocup-Landingpage-portrait.jpeg.
   ========================================================================== */

/* ---- Schrift (lokal, SIL Open Font License, fonts/OFL-Saira.txt) ---------- */

@font-face {
    font-family: "Saira";
    src: url("../fonts/saira-latin-wght-normal.woff2") format("woff2");
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}

/* ---- Tokens --------------------------------------------------------------- */

:root {
    --c-black: #050505;
    --c-bordeaux: #240713;
    --c-magenta: #B51F57;
    --c-magenta-dark: #7D123D;
    --c-magenta-light: #E0457F;   /* kleine Schrift in Magenta (Kontrast 5,2 : 1) */
    --c-bronze: #C69A7A;
    --c-bronze-light: #E0B99B;
    --c-text: #E8D8CE;
    --c-text-muted: #A89A8C;      /* gedämpfter Fließtext (Kontrast 7 : 1) */
    --c-line: rgb(198 154 122 / 0.4);
    --c-line-soft: rgb(198 154 122 / 0.22);

    --font-base: "Saira", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    --tracking-wide: 0.2em;
    --tracking-wider: 0.3em;
    --tracking-widest: 0.4em;

    --header-height: 5rem;        /* 80 px */
    --teaser-height: 11.625rem;   /* 186 px */
    --container: 90rem;           /* 1440 px, Inhaltsseiten */
    --container-wide: 120rem;     /* 1920 px, Kopfbereich und Startseite */
    --gutter: clamp(1rem, 4.2vw, 5rem);       /* Kopfbereich: 64 px bei 1536 */
    --gutter-hero: clamp(1rem, 5.3vw, 6.5rem); /* Hero und Teaser: 81 px bei 1536 */

    --ease: cubic-bezier(0.2, 0.7, 0.2, 1);
    --duration: 0.25s;
}

/* ---- Grundlagen ---------------------------------------------------------- */

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

html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    scroll-behavior: smooth;
}

body {
    margin: 0;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background: var(--c-black);
    color: var(--c-text);
    font-family: var(--font-base);
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.6;
    overflow-x: hidden;
}

img,
svg {
    display: block;
    max-width: 100%;
    height: auto;
}

a {
    color: var(--c-bronze-light);
    text-underline-offset: 0.2em;
    transition: color var(--duration) var(--ease);
}

a:hover {
    color: var(--c-magenta-light);
}

:focus-visible {
    outline: 2px solid var(--c-magenta-light);
    outline-offset: 3px;
}

h1,
h2,
h3 {
    color: var(--c-bronze);
    font-weight: 500;
    letter-spacing: var(--tracking-wide);
    line-height: 1.2;
    text-transform: uppercase;
}

.container {
    width: 100%;
    max-width: var(--container);
    margin-inline: auto;
    padding-inline: var(--gutter);
}

.visually-hidden {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

.skip-link {
    position: absolute;
    top: 0.5rem;
    left: 0.5rem;
    z-index: 100;
    padding: 0.75rem 1.25rem;
    background: var(--c-magenta);
    color: #fff;
    text-decoration: none;
    transform: translateY(-200%);
    transition: transform var(--duration) var(--ease);
}

.skip-link:focus {
    transform: translateY(0);
}

.site-main {
    flex: 1 0 auto;
}

.site-main:focus {
    outline: none;
}

/* Kerbe in einer waagerechten Linie (Kopfbereich, Teaser): kleines Dreieck nach unten */
.notch::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -0.5rem;
    width: 0.95rem;
    height: 0.95rem;
    border-right: 1px solid var(--c-line);
    border-bottom: 1px solid var(--c-line);
    background: var(--c-black);
    transform: translateX(-50%) rotate(45deg);
    z-index: 1;
}

/* ---- Kopfbereich ---------------------------------------------------------- */

.site-header {
    position: relative;
    z-index: 20;
    border-bottom: 1px solid var(--c-line);
    background: var(--c-black);
}

.site-header__inner {
    display: flex;
    align-items: center;
    gap: 2rem;
    max-width: var(--container-wide);
    min-height: var(--header-height);
    margin-inline: auto;
    padding-inline: var(--gutter);
}

.brand {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 0.75rem;
    color: var(--c-magenta-light);
    font-size: 1.125rem;
    font-weight: 500;
    letter-spacing: var(--tracking-wider);
    text-decoration: none;
    text-transform: uppercase;
    white-space: nowrap;
}

.brand:hover {
    color: var(--c-bronze-light);
}

.brand__logo {
    width: auto;
    height: 2.75rem;
    filter: drop-shadow(0 0 0.5rem rgb(181 31 87 / 0.35));
}

/* Startseite auf großen Bildschirmen: nur Schriftzug wie im Mockup */
@media (min-width: 60em) {
    .template-home .brand__logo {
        display: none;
    }
}

.site-header__menu {
    display: flex;
    flex: 1 1 auto;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
}

.nav__list,
.social,
.site-footer__list,
.hero__terms,
.teasers__list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.nav__list,
.social,
.site-footer__list {
    display: flex;
}

.nav {
    flex: 1 1 auto;
}

.nav__list {
    justify-content: center;
    gap: clamp(1.25rem, 3.3vw, 3.25rem);
}

.nav__link {
    position: relative;
    display: inline-block;
    white-space: nowrap;
    padding-block: 0.5rem;
    color: var(--c-text);
    font-size: 0.8125rem;
    font-weight: 500;
    letter-spacing: var(--tracking-wide);
    text-decoration: none;
    text-transform: uppercase;
}

.nav__link::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -0.125rem;
    height: 1px;
    background: currentColor;
    transform: scaleX(0);
    transition: transform var(--duration) var(--ease);
}

.nav__link:hover {
    color: var(--c-bronze-light);
}

.nav__link:hover::after,
.nav__link.is-active::after {
    transform: scaleX(1);
}

.nav__link.is-active {
    color: var(--c-magenta-light);
}

.social {
    flex-shrink: 0;
    gap: 1.25rem;
}

.social__link {
    display: block;
    color: var(--c-bronze);
    transition: color var(--duration) var(--ease), transform var(--duration) var(--ease);
}

.social__link .icon {
    width: 1.75rem;
    height: 1.75rem;
}

a.social__link:hover {
    color: var(--c-magenta-light);
    transform: translateY(-1px);
}

.social__link--placeholder {
    cursor: default;
}

/* Menü-Schalter (nur schmale Bildschirme) */
.nav-toggle {
    display: none;
    margin-left: auto;
    padding: 0.75rem 0.25rem;
    border: 0;
    background: none;
    color: var(--c-bronze);
    cursor: pointer;
}

.nav-toggle__bar,
.nav-toggle__bar::before,
.nav-toggle__bar::after {
    display: block;
    width: 1.75rem;
    height: 2px;
    background: currentColor;
    transition: transform var(--duration) var(--ease), background-color var(--duration) var(--ease);
}

.nav-toggle__bar {
    position: relative;
}

.nav-toggle__bar::before,
.nav-toggle__bar::after {
    content: "";
    position: absolute;
    left: 0;
}

.nav-toggle__bar::before {
    top: -0.5rem;
}

.nav-toggle__bar::after {
    top: 0.5rem;
}

.nav-toggle[aria-expanded="true"] .nav-toggle__bar {
    background: transparent;
}

.nav-toggle[aria-expanded="true"] .nav-toggle__bar::before {
    transform: translateY(0.5rem) rotate(45deg);
}

.nav-toggle[aria-expanded="true"] .nav-toggle__bar::after {
    transform: translateY(-0.5rem) rotate(-45deg);
}

/* Menü-Symbol schon unter 1120 px: sieben Menüpunkte, Schriftzug und Icons brauchen Platz */
@media (max-width: 69.99em) {
    :root {
        --header-height: 4.25rem;
    }

    .brand {
        font-size: 0.9375rem;
        letter-spacing: 0.18em;
    }

    .brand__logo {
        height: 2.25rem;
    }

    .nav-toggle {
        display: block;
    }

    .site-header__menu {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        flex-direction: column;
        align-items: stretch;
        gap: 1.5rem;
        z-index: 2;
        padding: 1rem var(--gutter) 2rem;
        border-bottom: 1px solid var(--c-line);
        background: var(--c-black);
    }

    /* Ohne JavaScript bleibt das Menü sichtbar; mit JavaScript wird es eingeklappt. */
    .js .site-header__menu:not(.is-open) {
        display: none;
    }

    .nav__list {
        flex-direction: column;
        gap: 0;
    }

    .nav__item + .nav__item {
        border-top: 1px solid var(--c-line-soft);
    }

    .nav__link {
        display: block;
        padding-block: 0.9rem;
        font-size: 0.9375rem;
    }

    .nav__link::after {
        display: none;
    }
}

/* ---- Buttons -------------------------------------------------------------- */

.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 2.75rem;
    min-height: 3.5rem;
    padding: 0.9rem 2.6rem 0.9rem 3.1rem;
    border: 1px solid var(--c-magenta);
    background: linear-gradient(100deg, var(--c-magenta-dark) 0%, #9a1849 55%, var(--c-magenta) 100%);
    background-size: 160% 100%;
    background-position: 0 0;
    color: var(--c-text);
    font-size: 0.8125rem;
    font-weight: 500;
    letter-spacing: var(--tracking-wider);
    text-decoration: none;
    text-transform: uppercase;
    box-shadow: 0 0 0 rgb(181 31 87 / 0);
    transition: background-position 0.4s var(--ease), box-shadow 0.4s var(--ease), color var(--duration) var(--ease);
}

.button .icon {
    width: 1.1rem;
    flex: 0 0 auto;
    transition: transform var(--duration) var(--ease);
}

.button:hover {
    color: #fff;
    background-position: 100% 0;
    box-shadow: 0 0 1.5rem rgb(181 31 87 / 0.35);
}

.button:hover .icon {
    transform: translateX(0.3rem);
}

.button--outline {
    background: transparent;
}

.button--outline:hover {
    background: rgb(181 31 87 / 0.15);
}

/* ---- Startseite: Hero ----------------------------------------------------- */

.hero {
    position: relative;
    isolation: isolate;
    display: flex;
    flex-direction: column;
    min-height: max(34rem, calc(100svh - var(--header-height) - var(--teaser-height)));
    overflow: hidden;
    background: var(--c-black);
}

.hero__backdrop {
    position: absolute;
    inset: 0;
    z-index: -2;
    overflow: hidden;
}

/* Skyline unten bündig über die volle Breite, darüber Schwarz (Mockup) */
.hero__bg {
    position: absolute;
    left: 50%;
    bottom: 0;
    width: 100%;
    min-width: 56rem;
    max-width: none;
    height: auto;
    transform: translateX(-50%);
}

.hero__backdrop::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(to bottom, var(--c-black) 0%, rgb(5 5 5 / 0.92) 22%, rgb(5 5 5 / 0.35) 48%, rgb(5 5 5 / 0) 62%, rgb(5 5 5 / 0) 86%, rgb(5 5 5 / 0.75) 100%),
        linear-gradient(to right, rgb(5 5 5 / 0.55) 0%, rgb(5 5 5 / 0) 28%, rgb(5 5 5 / 0) 72%, rgb(5 5 5 / 0.45) 100%);
}

.hero__inner {
    position: relative;
    flex: 1 1 auto;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 31vw) minmax(0, 1fr);
    align-items: center;
    max-width: var(--container-wide);
    padding-inline: var(--gutter-hero);
    padding-block: 4rem 6rem;
}

.hero__content {
    position: relative;
    z-index: 2;
    align-self: center;
    margin-top: -3.5rem;
}

.hero__eyebrow {
    margin: 0 0 2.4rem;
    color: var(--c-bronze);
    font-size: 0.8125rem;
    font-weight: 400;
    letter-spacing: var(--tracking-widest);
    text-transform: uppercase;
}

.hero__eyebrow::after {
    content: "";
    display: block;
    width: 12.5rem;
    height: 1px;
    margin-top: 1.1rem;
    background: linear-gradient(to right, var(--c-magenta), rgb(181 31 87 / 0));
}

.hero__title {
    margin: 0 0 1.6rem;
    font-size: clamp(2rem, 3.05vw, 3.6rem);
    font-weight: 600;
    letter-spacing: var(--tracking-wider);
    line-height: 1.22;
}

.hero__title-line {
    display: block;
}

.hero__title-line:first-child {
    color: var(--c-bronze);
}

.hero__title-line--accent {
    color: var(--c-magenta);
    text-shadow: 0 0 1.5rem rgb(181 31 87 / 0.35);
}

.hero__text {
    max-width: 21.25rem;
    margin: 0 0 2.4rem;
    color: var(--c-bronze);
    font-size: 0.8125rem;
    letter-spacing: var(--tracking-wider);
    line-height: 2.15;
    text-transform: uppercase;
}

.hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.hero__button2 {
    display: none;
}

/* Mitte: Banner und Wappen */
.hero__center {
    position: static;
    align-self: stretch;
}

.hero__banner {
    position: absolute;
    top: calc(-1 * 4rem);
    left: 50%;
    z-index: -1;
    width: 23.1vw;
    max-width: 27.5rem;
    height: 91%;
    transform: translateX(-50%);
    overflow: visible;
    filter: drop-shadow(0 0 2.5rem rgb(181 31 87 / 0.25));
}

.hero__banner-line {
    fill: none;
    stroke: var(--c-bronze);
    stroke-opacity: 0.7;
    stroke-width: 1.5;
    vector-effect: non-scaling-stroke;
}

.hero__banner-line--inner {
    stroke-opacity: 0.35;
    stroke-width: 1;
}

.hero__crest {
    position: absolute;
    top: -0.25rem;
    left: 50%;
    z-index: 1;
    width: min(46.5vw, 82svh, 56rem);
    max-width: none;
    height: auto;
    transform: translateX(-50%);
    filter: drop-shadow(0 1.5rem 2.5rem rgb(0 0 0 / 0.6)) drop-shadow(0 0 2.5rem rgb(181 31 87 / 0.3));
}

/* Begriffe rechts mit senkrechter Linie und Raute */
.hero__terms {
    position: relative;
    z-index: 2;
    justify-self: end;
    align-self: center;
    margin-top: -3.5rem;
    padding-right: 2rem;
    text-align: right;
}

.hero__terms li {
    color: var(--c-bronze);
    font-size: 0.8125rem;
    letter-spacing: var(--tracking-widest);
    line-height: 1;
    text-transform: uppercase;
}

.hero__terms li + li {
    margin-top: 2.25rem;
}

.hero__terms::before {
    content: "";
    position: absolute;
    top: -5.75rem;
    bottom: -5.5rem;
    right: 0;
    width: 1px;
    background: linear-gradient(to bottom, rgb(198 154 122 / 0), var(--c-line) 15%, var(--c-line) 85%, rgb(198 154 122 / 0));
}

.hero__terms::after {
    content: "";
    position: absolute;
    top: 50%;
    right: -0.28rem;
    width: 0.5rem;
    height: 0.5rem;
    border: 1px solid var(--c-magenta);
    background: var(--c-black);
    transform: translateY(-50%) rotate(45deg);
}

/* Scroll-Hinweis */
.hero__scroll {
    position: absolute;
    left: 50%;
    bottom: 1.6rem;
    z-index: 3;
    display: block;
    padding: 0.5rem;
    color: var(--c-bronze);
    transform: translateX(-50%);
}

.hero__scroll .icon {
    width: 2.25rem;
}

.hero__scroll:hover {
    color: var(--c-magenta-light);
}

/* ---- Startseite: Spiele-Teaser -------------------------------------------- */

.teasers {
    position: relative;
    border-top: 1px solid var(--c-line);
    background: var(--c-black);
}

.teasers::after {
    content: "";
    position: absolute;
    left: 50%;
    top: -0.5rem;
    width: 0.95rem;
    height: 0.95rem;
    border-right: 1px solid var(--c-line);
    border-bottom: 1px solid var(--c-line);
    background: var(--c-black);
    transform: translateX(-50%) rotate(45deg);
}

.teasers__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: var(--container-wide);
    margin-inline: auto;
}

.teasers__item {
    position: relative;
}

.teasers__item + .teasers__item::before {
    content: "";
    position: absolute;
    left: 0;
    top: 1.9rem;
    bottom: 1.9rem;
    width: 1px;
    background: var(--c-line-soft);
}

.teaser {
    display: grid;
    grid-template-columns: 6.5rem 1px minmax(0, 1fr) auto;
    align-items: center;
    column-gap: 1.9rem;
    min-height: var(--teaser-height);
    padding: 1.5rem 4.4rem 1.5rem var(--gutter-hero);
    color: var(--c-text);
    text-decoration: none;
    transition: background-color 0.4s var(--ease);
}

.teasers__item + .teasers__item .teaser {
    padding-left: 4.4rem;
}

/* senkrechte Linie zwischen Icon und Text */
.teaser::before {
    content: "";
    grid-column: 2;
    grid-row: 1;
    align-self: stretch;
    margin-block: 0.4rem;
    background: var(--c-line);
}

.teaser__icon {
    grid-column: 1;
    grid-row: 1;
    display: flex;
    justify-content: center;
    color: var(--c-magenta);
    transition: color var(--duration) var(--ease), transform 0.4s var(--ease);
}

.teaser__icon .icon--warhammer {
    width: 6.25rem;
}

.teaser__icon .icon--battletech {
    width: 4.25rem;
}

.teaser__text {
    grid-column: 3;
    grid-row: 1;
}

.teaser__title {
    margin: 0 0 0.75rem;
    color: var(--c-bronze);
    font-size: 1.125rem;
    font-weight: 500;
    letter-spacing: 0.25em;
    transition: color var(--duration) var(--ease);
}

.teaser__subtitle {
    margin: 0;
    color: var(--c-text);
    font-size: 0.75rem;
    letter-spacing: var(--tracking-wider);
    text-transform: uppercase;
}

.teaser__arrow {
    grid-column: 4;
    grid-row: 1;
    color: var(--c-magenta-light);
    transition: transform var(--duration) var(--ease);
}

.teaser__arrow .icon {
    width: 1.5rem;
}

.teaser:hover {
    background: radial-gradient(ellipse at 30% 50%, rgb(181 31 87 / 0.12), rgb(181 31 87 / 0) 70%);
}

.teaser:hover .teaser__title {
    color: var(--c-bronze-light);
}

.teaser:hover .teaser__icon {
    color: var(--c-magenta-light);
    transform: scale(1.04);
}

.teaser:hover .teaser__arrow {
    transform: translateX(0.4rem);
}

/* ---- Startseite: Tablet und Smartphone ------------------------------------ */

@media (max-width: 59.99em) {
    :root {
        --m-media: clamp(17rem, 76vw, 30rem);   /* Höhe von Skyline und Wappen oben */
    }

    .hero {
        min-height: 0;
        text-align: center;
    }

    .hero__backdrop {
        bottom: auto;
        height: calc(var(--m-media) + 4rem);
    }

    .hero__bg {
        width: auto;
        min-width: 100%;
        height: 100%;
    }

    .hero__backdrop::after {
        background: linear-gradient(to bottom, rgb(5 5 5 / 0.6) 0%, rgb(5 5 5 / 0) 25%, rgb(5 5 5 / 0) 60%, var(--c-black) 100%);
    }

    .hero__inner {
        display: flex;
        flex-direction: column;
        align-items: center;
        padding-block: 0 2.5rem;
    }

    .hero__center {
        position: relative;
        order: -1;
        width: 100%;
        height: var(--m-media);
    }

    .hero__banner {
        display: none;
    }

    .hero__crest {
        top: 0.25rem;
        width: min(72vw, 26rem);
    }

    .hero__content {
        width: 100%;
        max-width: 34rem;
        margin-top: 1.5rem;
    }

    .hero__eyebrow {
        margin-bottom: 1.6rem;
        font-size: 0.75rem;
        letter-spacing: 0.32em;
    }

    .hero__eyebrow::after {
        width: 4.5rem;
        margin: 0.9rem auto 0;
        background: var(--c-magenta);
    }

    .hero__title {
        margin-bottom: 1rem;
        font-size: clamp(1.75rem, 7.6vw, 2.75rem);
        letter-spacing: 0.12em;
    }

    .hero__title-line:first-child {
        color: var(--c-text);
    }

    .hero__text {
        max-width: none;
        margin-bottom: 1.6rem;
        color: var(--c-text);
        font-size: 0.9375rem;
        letter-spacing: 0.06em;
        line-height: 1.75;
        text-transform: none;
    }

    .hero__actions {
        flex-direction: column;
        align-items: stretch;
        gap: 0.75rem;
    }

    .hero__actions .button {
        width: 100%;
        gap: 1.5rem;
        padding-inline: 1.5rem;
    }

    .hero__button2 {
        display: inline-flex;
    }

    .hero__terms {
        display: none;
    }

    /* Scroll-Hinweis als Trenner mit Linien links und rechts (Smartphone-Mockup) */
    .hero__scroll {
        position: relative;
        left: auto;
        bottom: auto;
        display: flex;
        align-items: center;
        gap: 1rem;
        width: 100%;
        padding: 0 var(--gutter-hero) 0.75rem;
        transform: none;
    }

    .hero__scroll::before,
    .hero__scroll::after {
        content: "";
        flex: 1 1 auto;
        height: 1px;
        background: var(--c-line);
    }

    .hero__scroll .icon {
        width: 2rem;
    }

    .teasers {
        border-top: 0;
        padding: 0.5rem var(--gutter-hero) 2.5rem;
    }

    .teasers::after {
        display: none;
    }

    .teasers__list {
        gap: 0.75rem;
    }

    .teasers__item + .teasers__item::before {
        display: none;
    }

    /* Karten mit abgeschrägten Ecken: Rahmen (::before) und Fläche (::after) als Polygone */
    .teaser,
    .teasers__item + .teasers__item .teaser {
        --cut: 0.9rem;
        position: relative;
        isolation: isolate;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 0.9rem;
        height: 100%;
        min-height: 0;
        padding: 1.25rem 1.1rem 1.1rem;
        text-align: left;
    }

    .teaser::before,
    .teaser::after {
        content: "";
        position: absolute;
        inset: 0;
        z-index: -1;
        margin: 0;
        clip-path: polygon(var(--cut) 0, calc(100% - var(--cut)) 0, 100% var(--cut), 100% calc(100% - var(--cut)), calc(100% - var(--cut)) 100%, var(--cut) 100%, 0 calc(100% - var(--cut)), 0 var(--cut));
    }

    .teaser::before {
        background: var(--c-line);
    }

    .teaser::after {
        inset: 1px;
        background: linear-gradient(160deg, #120509, var(--c-black) 60%);
    }

    .teaser__icon {
        justify-content: flex-start;
        height: 3.25rem;
    }

    .teaser__icon .icon--warhammer {
        width: 5rem;
    }

    .teaser__icon .icon--battletech {
        width: 3.25rem;
    }

    .teaser__title {
        margin-bottom: 0.4rem;
        color: var(--c-text);
        font-size: 0.875rem;
        letter-spacing: 0.06em;
    }

    .teaser__subtitle {
        color: var(--c-text-muted);
        font-size: 0.8125rem;
        letter-spacing: 0.05em;
        line-height: 1.45;
        text-transform: none;
    }

    .teaser__arrow {
        margin-top: auto;
    }

    .teaser__arrow .icon {
        width: 2.5rem;
    }
}

/* Tablet quer und kleine Laptops (960–1279 px): Menü und Teaser kompakter */
@media (min-width: 60em) and (max-width: 79.99em) {
    .site-header__inner,
    .site-header__menu {
        gap: 1.25rem;
    }

    .brand {
        font-size: 1rem;
        letter-spacing: 0.2em;
    }

    .nav__list {
        gap: 1.4rem;
    }

    .nav__link {
        letter-spacing: 0.14em;
    }

    .social {
        gap: 0.9rem;
    }

    .teaser {
        grid-template-columns: 4.5rem 1px minmax(0, 1fr) auto;
        column-gap: 1.25rem;
        padding-right: 2rem;
    }

    .teasers__item + .teasers__item .teaser {
        padding-left: 2.5rem;
    }

    .teaser__icon .icon--warhammer {
        width: 4.5rem;
    }

    .teaser__icon .icon--battletech {
        width: 3.25rem;
    }

    .teaser__title {
        font-size: 1rem;
        letter-spacing: 0.16em;
    }

    .teaser__subtitle {
        letter-spacing: 0.16em;
    }
}

/* sehr schmale Smartphones: Karten untereinander */
@media (max-width: 23.74em) {
    .teasers__list {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* ---- Unterseiten: gemeinsame Bausteine ----------------------------------- */
/* Vorlagen: docs/mocup/mocup-Seite-Über uns.jpeg (Mitglieder) und Mocup-Seite Spiele-warhammer.jpeg */

.eyebrow {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    margin: 0 0 1.4rem;
    color: var(--c-bronze);
    font-size: 0.8125rem;
    letter-spacing: 0.35em;
    text-transform: uppercase;
}

.eyebrow::after {
    content: "";
    flex: 0 0 3.25rem;
    height: 1px;
    background: var(--c-magenta);
}

.titel-zeile {
    display: block;
}

.titel-zeile--akzent {
    color: var(--c-magenta);
}

/* Seitenkopf */
.seitenkopf {
    position: relative;
    isolation: isolate;
    display: flex;
    align-items: center;
    min-height: clamp(22rem, 34vw, 38rem);
    overflow: hidden;
    border-bottom: 1px solid var(--c-line-soft);
}

/* ohne Bild und ohne Wasserzeichen: niedriger Seitenkopf */
.seitenkopf:not(.seitenkopf--bild):not(:has(.seitenkopf__wasserzeichen)) {
    min-height: clamp(16rem, 22vw, 24rem);
}

.seitenkopf--kompakt {
    min-height: clamp(15rem, 17vw, 20rem);
}

.seitenkopf--kompakt .seitenkopf__inner {
    padding-block: clamp(2rem, 3.5vw, 3rem);
}

.seitenkopf--kompakt .seitenkopf__titel {
    margin-bottom: 1rem;
}

.seitenkopf--kompakt .seitenkopf__text {
    margin-bottom: 0;
}

.seitenkopf__backdrop {
    position: absolute;
    inset: 0 0 0 auto;
    z-index: -1;
    width: min(100%, 72%);
}

.seitenkopf__bild {
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: 60% 40%;
}

.seitenkopf__backdrop::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(to right, var(--c-black) 0%, rgb(5 5 5 / 0.75) 18%, rgb(5 5 5 / 0.15) 48%, rgb(5 5 5 / 0) 70%),
        linear-gradient(to top, rgb(5 5 5 / 0.85) 0%, rgb(5 5 5 / 0) 30%);
}

.seitenkopf__wasserzeichen {
    position: absolute;
    top: 50%;
    right: 8%;
    z-index: -1;
    width: min(32rem, 38vw);
    color: var(--c-magenta);
    opacity: 0.13;
    transform: translateY(-50%);
}

.seitenkopf__wasserzeichen .icon {
    width: 100%;
}

.seitenkopf__inner {
    width: 100%;
    max-width: var(--container-wide);
    margin-inline: auto;
    padding: clamp(3rem, 6vw, 5rem) var(--gutter-hero);
}

.seitenkopf__titel {
    max-width: 40rem;
    margin: 0 0 1.5rem;
    color: var(--c-text);
    font-size: clamp(2.25rem, 3.7vw, 4rem);
    font-weight: 600;
    letter-spacing: 0.16em;
    line-height: 1.12;
}

.seitenkopf__text {
    max-width: 30rem;
    margin: 0 0 2rem;
    font-size: clamp(1rem, 1.15vw, 1.1875rem);
    letter-spacing: 0.04em;
    line-height: 1.6;
}

.seitenkopf__text--versalien {
    color: var(--c-text-muted);
    font-size: 0.8125rem;
    letter-spacing: 0.4em;
    line-height: 2.2;
    text-transform: uppercase;
}

.seitenkopf .button {
    margin-top: 0.5rem;
}

/* Vorteile */
.vorteile {
    padding: clamp(2rem, 4vw, 3.5rem) var(--gutter-hero);
}

.vorteile__liste {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
    max-width: var(--container-wide);
    margin: 0 auto;
    padding: 0;
    list-style: none;
}

.vorteile__eintrag {
    border-left: 1px solid rgb(181 31 87 / 0.45);
}

.vorteile__link {
    display: flex;
    flex-direction: column;
    align-items: center;
    height: 100%;
    padding: 0.75rem 1.25rem;
    color: var(--c-text);
    text-align: center;
    text-decoration: none;
}

.vorteile__icon {
    color: var(--c-magenta-light);
    transition: transform var(--duration) var(--ease);
}

.vorteile__icon .icon {
    width: 2.75rem;
    height: 2.75rem;
}

.vorteile__text {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    margin-top: 1.1rem;
}

.vorteile__titel {
    font-size: 0.8125rem;
    font-weight: 500;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

.vorteile__beschreibung {
    color: var(--c-text-muted);
    font-size: 0.875rem;
    line-height: 1.5;
}

.vorteile__winkel {
    display: none;
}

a.vorteile__link:hover .vorteile__titel {
    color: var(--c-bronze-light);
}

a.vorteile__link:hover .vorteile__icon {
    transform: translateY(-2px);
}

/* Trenner: Linie mit Doppel-Chevron in der Mitte */
.trenner {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    max-width: var(--container-wide);
    margin: 0 auto;
    padding-inline: var(--gutter-hero);
    color: var(--c-bronze);
}

.trenner::before,
.trenner::after {
    content: "";
    flex: 1 1 auto;
    height: 1px;
    background: var(--c-line);
}

.trenner .icon {
    width: 2.25rem;
}

/* Inhalt aus dem Editor (Markdown) */
.inhalt {
    max-width: var(--container-wide);
    margin: 0 auto;
    padding: clamp(2rem, 4vw, 3.5rem) var(--gutter-hero);
}

.inhalt__text {
    max-width: 48rem;
    overflow-wrap: break-word;
    hyphens: auto;
}

.inhalt__text h2,
.inhalt__zwischentitel {
    margin: 2.5rem 0 1rem;
    color: var(--c-bronze);
    font-size: 1.25rem;
    letter-spacing: 0.2em;
}

.inhalt__text h2:first-child {
    margin-top: 0;
}

.inhalt__text p,
.inhalt__text li {
    line-height: 1.75;
}

.inhalt__text blockquote,
.page__content blockquote {
    margin: 1rem 0;
    padding: 0.9rem 1.25rem;
    border-left: 2px solid var(--c-magenta);
    background: rgb(181 31 87 / 0.07);
    color: var(--c-text-muted);
}

.inhalt__text blockquote p,
.page__content blockquote p {
    margin: 0;
}

/* Abschnitt mit Bild links und Text rechts */
.abschnitt {
    position: relative;
    isolation: isolate;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: center;
    gap: clamp(2rem, 4vw, 4.5rem);
    max-width: var(--container-wide);
    margin: 0 auto;
    padding: clamp(2.5rem, 5vw, 4.5rem) var(--gutter-hero) clamp(3rem, 6vw, 5.5rem);
    overflow: hidden;
}

.abschnitt--bild {
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1fr);
    padding-left: 0;
}

.abschnitt__wasserzeichen {
    position: absolute;
    top: 50%;
    right: 2%;
    z-index: -1;
    width: min(28rem, 34vw);
    color: var(--c-text);
    opacity: 0.045;
    transform: translateY(-50%);
}

.abschnitt__wasserzeichen .icon {
    width: 100%;
}

/* Bild mit abgeschrägten Ecken rechts und Bronzerahmen */
.abschnitt__bild {
    --cut: 2.25rem;
    position: relative;
    margin: 0;
    padding: 1px 1px 1px 0;
    background: var(--c-line);
    clip-path: polygon(0 0, calc(100% - var(--cut)) 0, 100% var(--cut), 100% calc(100% - var(--cut)), calc(100% - var(--cut)) 100%, 0 100%);
}

.abschnitt__bild img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    object-position: 72% 40%;
    background: radial-gradient(circle at 50% 45%, #3a0a1f, var(--c-black) 70%);
    clip-path: polygon(0 0, calc(100% - var(--cut)) 0, 100% var(--cut), 100% calc(100% - var(--cut)), calc(100% - var(--cut)) 100%, 0 100%);
}

/* freigestellte Bilder (PNG mit Transparenz, z. B. das Wappen) ganz zeigen */
.abschnitt__bild--freigestellt img {
    object-fit: contain;
    padding: 2rem;
}

.abschnitt__text {
    max-width: 36rem;
}

.abschnitt__titel {
    margin: 0 0 1.4rem;
    color: var(--c-text);
    font-size: clamp(1.75rem, 2.6vw, 2.75rem);
    font-weight: 600;
    letter-spacing: 0.16em;
    line-height: 1.2;
}

.abschnitt__beschreibung {
    margin: 0 0 2rem;
    font-size: 1.0625rem;
    letter-spacing: 0.03em;
    line-height: 1.7;
}

/* Spiele: Karten (Vorlage docs/mocup/mocup-Spiele.jpeg) */
.spielkarten {
    max-width: var(--container-wide);
    margin: 0 auto;
    padding: clamp(1.5rem, 2.5vw, 2.25rem) clamp(1rem, 2vw, 2rem) clamp(2rem, 3vw, 2.5rem);
}

.spielkarten__liste {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(0.75rem, 1.2vw, 1.25rem);
    margin: 0;
    padding: 0;
    list-style: none;
}

.spielkarte {
    --cut: 0.85rem;
    position: relative;
    isolation: isolate;
    scroll-margin-top: 1rem;
}

/* Rahmen (::before) und Fläche (::after) mit abgeschrägten Ecken */
.spielkarte::before,
.spielkarte::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    clip-path: polygon(var(--cut) 0, calc(100% - var(--cut)) 0, 100% var(--cut), 100% calc(100% - var(--cut)), calc(100% - var(--cut)) 100%, var(--cut) 100%, 0 calc(100% - var(--cut)), 0 var(--cut));
}

.spielkarte::before {
    background: var(--c-line);
}

.spielkarte::after {
    inset: 1px;
    background: linear-gradient(180deg, #0d0407 0%, var(--c-black) 55%, #0b0306 100%);
}

.spielkarte:target::before {
    background: var(--c-magenta);
}

.spielkarte__inner {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 0.4rem 0.4rem 1.9rem;
}

.spielkarte__bild {
    margin: 0;
    clip-path: polygon(calc(var(--cut) - 0.3rem) 0, calc(100% - var(--cut) + 0.3rem) 0, 100% calc(var(--cut) - 0.3rem), 100% 100%, 0 100%, 0 calc(var(--cut) - 0.3rem));
}

.spielkarte__bild img {
    width: 100%;
    aspect-ratio: 5 / 3;
    object-fit: cover;
    -webkit-mask-image: linear-gradient(to bottom, #000 70%, transparent 100%);
    mask-image: linear-gradient(to bottom, #000 70%, transparent 100%);
}

.spielkarte__text {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    padding: 0.75rem clamp(1rem, 1.8vw, 1.75rem) 0;
}

.spielkarte__titel {
    margin: 0 0 1.4rem;
    color: var(--c-text);
    font-size: clamp(1.05rem, 1.3vw, 1.35rem);
    font-weight: 500;
    letter-spacing: 0.12em;
    white-space: nowrap;
}

.spielkarte__titel::after {
    content: "";
    display: block;
    width: 2.5rem;
    height: 2px;
    margin-top: 1rem;
    background: var(--c-magenta);
}

.spielkarte__beschreibung {
    margin: 0 0 1.4rem;
    color: var(--c-text);
    font-size: 0.9375rem;
    letter-spacing: 0.03em;
    line-height: 1.6;
}

.spielkarte__merkmale {
    display: grid;
    gap: 0.55rem;
    margin: 0 0 1.75rem;
    padding: 0;
    list-style: none;
}

.spielkarte__merkmale li {
    display: flex;
    align-items: center;
    gap: 1.1rem;
    font-size: 0.875rem;
    letter-spacing: 0.04em;
}

.spielkarte__merkmale .icon {
    flex: 0 0 auto;
    width: 1.5rem;
    height: 1.5rem;
    color: var(--c-magenta-light);
}

.spielkarte__button {
    width: 100%;
    margin-top: auto;
    padding-inline: 1rem;
    gap: 1.5rem;
}

/* Infoleiste unter den Karten */
.infoleiste {
    border-top: 1px solid var(--c-line);
}

.infoleiste__liste {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    max-width: var(--container-wide);
    margin: 0 auto;
    padding: 0 var(--gutter-hero);
    list-style: none;
}

.infoleiste__eintrag {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    padding: 1.75rem 0.75rem;
}

.infoleiste__eintrag + .infoleiste__eintrag {
    border-left: 1px solid var(--c-line-soft);
    padding-left: clamp(1rem, 2.5vw, 3rem);
}

.infoleiste__icon {
    color: var(--c-magenta-light);
}

.infoleiste__icon .icon {
    width: 2.75rem;
    height: 2.75rem;
}

.infoleiste__text {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.infoleiste__titel {
    font-size: 0.75rem;
    font-weight: 500;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.infoleiste__beschreibung {
    color: var(--c-text-muted);
    font-size: 0.6875rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

@media (max-width: 69.99em) {
    .spielkarten__liste,
    .infoleiste__liste {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .infoleiste__eintrag:nth-child(odd) {
        border-left: 0;
        padding-left: 1.5rem;
    }

    .infoleiste__eintrag:nth-child(n+3) {
        border-top: 1px solid var(--c-line-soft);
    }
}

@media (max-width: 39.99em) {
    .spielkarten__liste,
    .infoleiste__liste {
        grid-template-columns: minmax(0, 1fr);
    }

    .infoleiste__eintrag,
    .infoleiste__eintrag + .infoleiste__eintrag {
        border-left: 0;
        padding: 1.1rem 0;
    }

    .infoleiste__eintrag + .infoleiste__eintrag {
        border-top: 1px solid var(--c-line-soft);
    }
}

/* Termine (Vorlage docs/mocup/mocup-Kalender.jpeg) */
.termine {
    max-width: var(--container-wide);
    margin: 0 auto;
    padding: clamp(1.5rem, 2.5vw, 2.25rem) var(--gutter-hero) clamp(2.5rem, 5vw, 4rem);
}

.termine__filter {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.9rem;
    max-width: 62.5rem;
    margin-bottom: 1.25rem;
}

.termine__filter[hidden] {
    display: none;
}

.termine__filterknopf {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    min-height: 3.6rem;
    padding: 0.75rem 1rem;
    border: 1px solid var(--c-line-soft);
    background: rgb(5 5 5 / 0.7);
    color: var(--c-text);
    font: inherit;
    font-size: 0.8125rem;
    font-weight: 500;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    cursor: pointer;
    transition: border-color var(--duration) var(--ease), background-color var(--duration) var(--ease);
}

.termine__filterknopf .icon {
    flex: 0 0 auto;
    width: 1.6rem;
    height: 1.6rem;
    color: var(--c-magenta-light);
}

.termine__filterknopf:hover {
    border-color: var(--c-magenta);
}

.termine__filterknopf[aria-pressed="true"] {
    border-color: var(--c-magenta);
    background: linear-gradient(100deg, var(--c-magenta-dark), #9a1849);
}

.termine__filterknopf .kurz {
    display: none;
}

.termine__filterknopf[aria-pressed="true"] .icon {
    color: var(--c-text);
}

.termine__liste {
    display: grid;
    gap: 0.6rem;
    max-width: 62.5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.termin[hidden] {
    display: none;
}

.termin__link {
    display: grid;
    grid-template-columns: 6.75rem 12.5rem minmax(0, 1fr) auto;
    align-items: stretch;
    min-height: 7.4rem;
    border: 1px solid var(--c-line-soft);
    background: linear-gradient(90deg, #0b0407, var(--c-black) 40%);
    color: var(--c-text);
    text-decoration: none;
    transition: border-color var(--duration) var(--ease), background-color var(--duration) var(--ease);
}

.termin__link:hover {
    border-color: var(--c-magenta);
    background: linear-gradient(90deg, #170610, #0a0407 50%);
}

.termin__datum,
.termin__kategorie {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    margin-block: 0.9rem;
    border-right: 1px solid var(--c-line-soft);
}

.termin__tag {
    font-size: 2.25rem;
    font-weight: 500;
    line-height: 1;
}

.termin__monat {
    color: var(--c-magenta-light);
    font-size: 1rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.termin__kategorie {
    gap: 0.75rem;
    font-size: 0.8125rem;
    font-weight: 500;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.termin__kategorie .icon {
    width: 2.6rem;
    height: 2.6rem;
    color: var(--c-magenta-light);
}

.termin__text {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.45rem;
    padding: 1.1rem 1.5rem 1.1rem 2.25rem;
}

.termin__titel {
    font-size: 1.125rem;
    font-weight: 500;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.termin__beschreibung {
    color: var(--c-text);
    font-size: 0.9375rem;
    letter-spacing: 0.04em;
}

.termin__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem 3.5rem;
    color: var(--c-text-muted);
    font-size: 0.875rem;
}

.termin__meta > span {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
}

.termin__meta .icon {
    width: 1.15rem;
    height: 1.15rem;
    color: var(--c-magenta-light);
}

.termin__winkel {
    display: flex;
    align-items: center;
    padding: 0 1.75rem;
    color: var(--c-magenta-light);
    transition: transform var(--duration) var(--ease);
}

.termin__winkel .icon {
    width: 1.5rem;
}

.termin__link:hover .termin__winkel {
    transform: translateX(0.3rem);
}

.termine__leer {
    margin: 1rem 0;
    color: var(--c-text-muted);
}

.termine__hinweis {
    margin-top: 2rem;
}

/* Termin-Detailseite */
.termin-detail {
    max-width: var(--container-wide);
    margin: 0 auto;
    padding: clamp(2.5rem, 5vw, 4.5rem) var(--gutter-hero);
}

.termin-detail__kopf,
.termin-detail__bild,
.termin-detail__inhalt {
    max-width: 48rem;
}

.termin-detail__titel {
    margin: 0 0 1.75rem;
    color: var(--c-text);
    font-size: clamp(1.9rem, 3.2vw, 3rem);
    font-weight: 600;
    letter-spacing: 0.14em;
}

.termin-detail__daten {
    display: grid;
    gap: 0.75rem;
    margin: 0 0 1.75rem;
}

.termin-detail__daten > div {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.termin-detail__daten dt .icon {
    width: 1.4rem;
    height: 1.4rem;
    color: var(--c-magenta-light);
}

.termin-detail__daten dd {
    margin: 0;
    font-size: 1.0625rem;
    letter-spacing: 0.04em;
}

.termin-detail__beschreibung {
    margin: 0 0 2rem;
    font-size: 1.125rem;
}

.termin-detail__bild {
    margin: 0 0 2rem;
}

.termin-detail__zurueck {
    margin-top: 2.5rem;
}

@media (max-width: 59.99em) {
    .termine__filter {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 0;
        border: 1px solid var(--c-line-soft);
    }

    .termine__filterknopf {
        flex-direction: column;
        gap: 0.4rem;
        min-height: 4.4rem;
        padding: 0.6rem 0.25rem;
        border-width: 0 0 0 1px;
        font-size: 0.625rem;
        letter-spacing: 0.08em;
    }

    .termine__filterknopf:first-child {
        border-left: 0;
    }

    /* kurze Beschriftungen wie im Smartphone-Mockup; „Alle Termine“ bleibt für Screenreader vollständig */
    .termine__filterknopf .lang {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
    }

    .termine__filterknopf .kurz {
        display: block;
    }

    .termine__filterknopf span {
        max-width: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .termin__link {
        grid-template-columns: 4rem 3.25rem minmax(0, 1fr) auto;
        min-height: 0;
    }

    .termin__datum {
        margin-block: 0.75rem;
    }

    .termin__tag {
        font-size: 1.75rem;
    }

    .termin__monat {
        font-size: 0.875rem;
    }

    .termin__kategorie {
        justify-content: flex-start;
        padding-top: 1rem;
        margin: 0;
        border-right: 0;
    }

    .termin__kategorie .icon {
        width: 2.1rem;
        height: 2.1rem;
    }

    .termin__kategorie-name {
        display: none;
    }

    .termin__text {
        gap: 0.35rem;
        padding: 0.9rem 0.25rem 0.9rem 0.5rem;
    }

    .termin__titel {
        font-size: 0.875rem;
        letter-spacing: 0.1em;
    }

    .termin__beschreibung {
        font-size: 0.8125rem;
        color: var(--c-text-muted);
    }

    .termin__meta {
        flex-direction: column;
        gap: 0.3rem;
        font-size: 0.8125rem;
    }

    .termin__winkel {
        padding: 0 0.75rem;
    }
}

/* Fehlerseite 404 (Vorlage docs/mocup/mocup-404.jpeg) */
.fehler {
    position: relative;
    isolation: isolate;
    display: flex;
    align-items: center;
    min-height: clamp(30rem, 45vw, 44rem);
    overflow: hidden;
    border-bottom: 1px solid var(--c-line);
}

.fehler__backdrop {
    position: absolute;
    inset: 0;
    z-index: -1;
}

.fehler__bild {
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: 70% 60%;
}

.fehler__backdrop::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(to right, rgb(5 5 5 / 0.9) 0%, rgb(5 5 5 / 0.65) 30%, rgb(5 5 5 / 0.1) 60%, rgb(5 5 5 / 0) 80%),
        linear-gradient(to top, rgb(5 5 5 / 0.8) 0%, rgb(5 5 5 / 0) 25%);
}

.fehler__inner {
    width: 100%;
    max-width: var(--container-wide);
    margin-inline: auto;
    padding: clamp(3rem, 6vw, 5rem) var(--gutter-hero);
}

.fehler__code {
    margin: 0.25rem 0 1.25rem;
    color: #f7d3df;
    font-size: clamp(5.5rem, 10.5vw, 10.5rem);
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 0.95;
    background: linear-gradient(160deg, #fff4f7 0%, #f6b8cc 35%, #e2457f 60%, #fbd9e4 85%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    filter: drop-shadow(0 0 1.25rem rgb(224 69 127 / 0.55)) drop-shadow(0 0 0.35rem rgb(255 255 255 / 0.25));
}

.fehler__titel {
    margin: 0 0 1.4rem;
    color: var(--c-text);
    font-size: clamp(1.4rem, 1.9vw, 2rem);
    font-weight: 500;
    letter-spacing: 0.22em;
    line-height: 1.4;
}

.fehler__text {
    max-width: 34rem;
    margin-bottom: 2.25rem;
    font-size: 1rem;
    letter-spacing: 0.05em;
    line-height: 1.65;
}

.fehler__text p {
    margin: 0;
}

.fehler__aktionen {
    display: flex;
    flex-wrap: wrap;
    gap: 1.6rem;
}

.fehler__aktionen .button {
    min-width: 14rem;
}

/* Pfeil von „Zurück“ zeigt nach links und steht vor dem Text wie im Mockup rechts daneben gespiegelt */
.fehler__zurueck .icon {
    transform: scaleX(-1);
}

.fehler__zurueck:hover .icon {
    transform: scaleX(-1) translateX(0.3rem);
}

.fehler__links {
    padding: clamp(1.5rem, 3vw, 2.5rem) var(--gutter-hero) clamp(1rem, 2vw, 1.5rem);
}

.fehler__links .vorteile__liste {
    max-width: 75rem;
}

.fehler__links .vorteile__eintrag:first-child {
    border-left: 0;
}

.fehler__links .vorteile__titel {
    font-size: 0.875rem;
}

.fehler__links .vorteile__beschreibung {
    font-size: 0.75rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

/* Ornament: Adler in der Linie über dem Footer */
.fehler__ornament {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    padding: 0 var(--gutter-hero) 1.5rem;
    color: var(--c-magenta);
}

.fehler__ornament::before,
.fehler__ornament::after {
    content: "";
    flex: 1 1 auto;
    height: 1px;
    background: var(--c-line);
}

.fehler__ornament .icon {
    width: 4.5rem;
}

@media (max-width: 59.99em) {
    .fehler {
        flex-direction: column;
        align-items: stretch;
        min-height: 0;
    }

    .fehler__backdrop {
        position: relative;
        height: clamp(12rem, 55vw, 20rem);
        order: -1;
    }

    .fehler__backdrop::after {
        background: linear-gradient(to top, var(--c-black) 0%, rgb(5 5 5 / 0) 50%);
    }

    .fehler__inner {
        margin-top: -3rem;
        padding-top: 0;
    }

    .fehler__titel {
        letter-spacing: 0.12em;
    }

    /* feste Zeilenumbrüche des Textes nur auf großen Bildschirmen */
    .fehler__text br {
        display: none;
    }

    .fehler__aktionen {
        flex-direction: column;
        gap: 0.75rem;
    }

    .fehler__aktionen .button {
        width: 100%;
    }

    .fehler__links .vorteile__eintrag:first-child {
        border-left: 0;
    }
}

/* Unterseiten: Tablet und Smartphone */
@media (max-width: 59.99em) {
    .seitenkopf {
        flex-direction: column;
        align-items: stretch;
        min-height: 0;
    }

    .seitenkopf--bild .seitenkopf__backdrop {
        position: relative;
        inset: auto;
        width: 100%;
        height: clamp(12rem, 55vw, 22rem);
        order: -1;
    }

    .seitenkopf__backdrop::after {
        background: linear-gradient(to top, var(--c-black) 0%, rgb(5 5 5 / 0) 45%);
    }

    .seitenkopf--bild .seitenkopf__inner {
        margin-top: -2.5rem;
        padding-top: 0;
    }

    .seitenkopf__wasserzeichen {
        right: -10%;
        width: 70vw;
        opacity: 0.1;
    }

    .seitenkopf__titel {
        font-size: clamp(1.9rem, 8.5vw, 2.75rem);
        letter-spacing: 0.1em;
    }

    .seitenkopf__text--versalien {
        letter-spacing: 0.3em;
    }

    .seitenkopf .button {
        width: 100%;
    }

    .vorteile {
        padding-block: 1rem 2rem;
    }

    .vorteile__liste {
        grid-template-columns: minmax(0, 1fr);
    }

    .vorteile__eintrag {
        border-left: 0;
        border-bottom: 1px solid var(--c-line-soft);
    }

    .vorteile__link {
        display: grid;
        grid-template-columns: 2.75rem minmax(0, 1fr) auto;
        align-items: center;
        gap: 1.1rem;
        padding: 1rem 0.25rem;
        text-align: left;
    }

    .vorteile__icon .icon {
        width: 2.25rem;
        height: 2.25rem;
    }

    .vorteile__text {
        gap: 0.25rem;
        margin: 0;
    }

    .vorteile__winkel {
        display: block;
        color: var(--c-magenta-light);
    }

    .vorteile__winkel .icon {
        width: 1.25rem;
    }

    .abschnitt,
    .abschnitt--bild {
        grid-template-columns: minmax(0, 1fr);
        padding-inline: var(--gutter-hero);
    }

    .abschnitt__bild {
        --cut: 1.25rem;
        padding: 1px;
        clip-path: polygon(var(--cut) 0, calc(100% - var(--cut)) 0, 100% var(--cut), 100% calc(100% - var(--cut)), calc(100% - var(--cut)) 100%, var(--cut) 100%, 0 calc(100% - var(--cut)), 0 var(--cut));
    }

    .abschnitt__bild img {
        clip-path: inherit;
    }

    .abschnitt__wasserzeichen {
        width: 60vw;
    }

    .abschnitt .button {
        width: 100%;
    }

    .button {
        gap: 1.25rem;
        padding-inline: 1.25rem;
        letter-spacing: 0.2em;
    }
}

/* ---- Inhaltsseiten -------------------------------------------------------- */

.page {
    padding-block: clamp(3rem, 8vw, 6rem);
}

.page__title {
    overflow-wrap: break-word;
    hyphens: auto;
    margin-top: 0;
    font-size: clamp(1.75rem, 4vw, 2.75rem);
    letter-spacing: var(--tracking-wider);
}

.page__content {
    max-width: 48rem;
    overflow-wrap: break-word;
    hyphens: auto;
}

@media (max-width: 39.99em) {
    .page__title {
        letter-spacing: 0.12em;
    }
}

/* Tabellen in redaktionellen Inhalten (z. B. Datenschutzerklärung) */
.page__content table,
.inhalt__text table {
    display: block;
    max-width: 100%;
    margin: 1.25rem 0 1.75rem;
    overflow-x: auto;
    border-collapse: collapse;
    font-size: 0.9375rem;
}

.page__content th,
.page__content td,
.inhalt__text th,
.inhalt__text td {
    padding: 0.6rem 0.9rem;
    border: 1px solid var(--c-line-soft);
    text-align: left;
    vertical-align: top;
}

.page__content th,
.inhalt__text th {
    color: var(--c-bronze);
    font-weight: 500;
    letter-spacing: 0.06em;
    background: rgb(181 31 87 / 0.07);
}

.page__content code,
.inhalt__text code {
    font-size: 0.875em;
    color: var(--c-bronze-light);
    overflow-wrap: anywhere;
}

/* ---- Footer --------------------------------------------------------------- */

.site-footer {
    border-top: 1px solid var(--c-line);
    color: var(--c-text-muted);
    font-size: 0.8125rem;
    letter-spacing: 0.1em;
}

.site-footer__inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem 2rem;
    max-width: var(--container-wide);
    margin-inline: auto;
    padding: 1.5rem var(--gutter);
}

.site-footer__copy {
    margin: 0;
}

.site-footer__list {
    flex-wrap: wrap;
    gap: 1.5rem;
}

.site-footer__list a {
    color: var(--c-text-muted);
    text-decoration: none;
    text-transform: uppercase;
}

.site-footer__list a:hover {
    color: var(--c-bronze-light);
}

/* ---- Bewegung (nur wenn nicht reduziert gewünscht) ------------------------ */

@media (prefers-reduced-motion: no-preference) {
    .hero__content > *,
    .hero__terms li {
        animation: pg-fade-up 0.9s var(--ease) both;
    }

    .hero__content > :nth-child(2) { animation-delay: 0.12s; }
    .hero__content > :nth-child(3) { animation-delay: 0.24s; }
    .hero__content > :nth-child(4) { animation-delay: 0.36s; }
    .hero__terms li:nth-child(1) { animation-delay: 0.3s; }
    .hero__terms li:nth-child(2) { animation-delay: 0.4s; }
    .hero__terms li:nth-child(3) { animation-delay: 0.5s; }
    .hero__terms li:nth-child(4) { animation-delay: 0.6s; }

    .hero__crest {
        animation: pg-crest 1.4s var(--ease) both;
    }

    .hero__banner {
        animation: pg-fade 1.2s var(--ease) both;
    }

    .hero__scroll .icon {
        animation: pg-bob 2.6s ease-in-out 1.5s infinite;
    }
}

@keyframes pg-fade-up {
    from { opacity: 0; transform: translateY(0.9rem); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes pg-fade {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes pg-crest {
    from { opacity: 0; transform: translateX(-50%) scale(0.96); }
    to { opacity: 1; transform: translateX(-50%) scale(1); }
}

@keyframes pg-bob {
    0%, 100% { transform: translateY(0); opacity: 0.85; }
    50% { transform: translateY(0.35rem); opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}
