/* geldverdienen.net Portal – öffentliche Seiten (eigenes Layout ohne Theme). Präfix gvn-. */
/* Farben aus dem Globus-Logo (Violett → Cyan), Schriften lokal über kajinga-libs (Space Grotesk, Geist). */
:root {
    --gvn-tinte: #14162e;
    --gvn-tinte-2: #5b5f78;
    --gvn-papier: #ffffff;
    --gvn-flaeche: #f6f7fb;
    --gvn-linie: #e7e8f0;
    --gvn-akzent: #4b3cc0;
    --gvn-akzent-dunkel: #3a2d9e;
    --gvn-akzent-hell: #f0eefd;
    --gvn-verlauf: linear-gradient(90deg, #4b3cc0, #1c9fd6);
    --gvn-font: "Geist", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --gvn-font-titel: "Space Grotesk", "Geist", system-ui, -apple-system, "Segoe UI", sans-serif;
    --gvn-breite: 1120px;
    --gvn-textbreite: 720px;
    --gvn-radius: 14px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body.gvn-body {
    margin: 0;
    background: var(--gvn-papier);
    color: var(--gvn-tinte);
    font-family: var(--gvn-font);
    font-size: 1.0625rem;
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
    overflow-wrap: break-word;
}
.gvn-body img { max-width: 100%; height: auto; display: block; }
.gvn-body a { color: var(--gvn-akzent); text-underline-offset: .18em; text-decoration-thickness: 1px; }
.gvn-body a:hover { text-decoration-thickness: 2px; }
.gvn-body :focus-visible { outline: 2px solid var(--gvn-akzent); outline-offset: 2px; border-radius: 4px; }
.gvn-body h1, .gvn-body h2, .gvn-body h3, .gvn-body h4, .gvn-body h5, .gvn-body h6 { font-family: var(--gvn-font-titel); line-height: 1.15; margin: 0 0 .6em; color: var(--gvn-tinte); letter-spacing: -.02em; }
.gvn-body h1 { font-size: clamp(2rem, 1.3rem + 3vw, 3.4rem); font-weight: 700; letter-spacing: -.035em; }
.gvn-body h2 { font-size: clamp(1.4rem, 1.15rem + 1vw, 1.9rem); font-weight: 700; }
.gvn-body h3 { font-size: 1.1rem; font-weight: 700; letter-spacing: -.01em; }
.gvn-body p { margin: 0 0 1em; }

.gvn-skip { position: absolute; left: -999px; top: 0; background: var(--gvn-papier); padding: .5em 1em; z-index: 10; }
.gvn-skip:focus { left: 1rem; }

.gvn-rahmen { width: 100%; max-width: var(--gvn-breite); margin: 0 auto; padding: 0 1.25rem; }
.gvn-rahmen--text { max-width: calc(var(--gvn-textbreite) + 2.5rem); }

/* Kopf */
.gvn-kopf { background: rgba(255, 255, 255, .92); border-bottom: 1px solid var(--gvn-linie); position: sticky; top: 0; z-index: 5; -webkit-backdrop-filter: saturate(1.4) blur(10px); backdrop-filter: saturate(1.4) blur(10px); }
.admin-bar .gvn-kopf { top: 32px; }
.gvn-kopf__innen { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .4rem 1.5rem; min-height: 64px; padding-top: .6rem; padding-bottom: .6rem; }
.gvn-body .gvn-logo { display: inline-flex; align-items: center; gap: .55rem; font-family: var(--gvn-font-titel); font-size: 1.25rem; font-weight: 700; letter-spacing: -.03em; color: var(--gvn-tinte); text-decoration: none; }
.gvn-logo img { width: 30px; height: 30px; }
.gvn-logo em { font-style: normal; color: var(--gvn-akzent); }
.gvn-nav { display: flex; flex-wrap: wrap; gap: .25rem; font-size: .95rem; font-weight: 500; }
.gvn-body .gvn-nav a { color: var(--gvn-tinte-2); text-decoration: none; padding: .4rem .8rem; border-radius: 999px; }
.gvn-body .gvn-nav a:hover { color: var(--gvn-tinte); background: var(--gvn-flaeche); }
.gvn-body .gvn-nav a[aria-current="page"] { color: var(--gvn-akzent); background: var(--gvn-akzent-hell); }

/* Kopfbereich der Seite */
.gvn-held { padding: clamp(2.5rem, 1.6rem + 4vw, 5rem) 0 2rem; }
.gvn-held--klein { padding-bottom: 1.25rem; }
.gvn-oberzeile { font-size: .78rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--gvn-akzent); margin-bottom: .7rem !important; }
.gvn-body .gvn-oberzeile a { color: inherit; }
.gvn-unterzeile { color: var(--gvn-tinte-2); max-width: 44rem; font-size: 1.12rem; }

/* Abschnitte */
.gvn-abschnitt { margin: 0 0 3.5rem; }
.gvn-weiter { margin: 1.25rem 0 0 !important; font-weight: 600; }
.gvn-weiter a { text-decoration: none; }
.gvn-weiter a::after { content: " \2192"; }
.gvn-prosa { font-size: 1.08rem; margin: 1.5rem 0; }
.gvn-prosa figure { margin: 0 0 1.5rem; }
.gvn-prosa img { max-width: 100%; height: auto; }
.gvn-prosa h3, .gvn-prosa h5 { margin-top: 2rem; font-size: 1.1rem; }
.gvn-klein { font-size: .88rem; color: var(--gvn-tinte-2); margin-top: 2rem !important; }
.gvn-hinweis { background: var(--gvn-akzent-hell); border-radius: var(--gvn-radius); padding: .9rem 1.1rem; margin: 0 0 1.5rem; }
.gvn-hinweis p { margin: 0 0 .3em; }
.gvn-hinweis p:last-child { margin: 0; }
.gvn-hinweisband { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1.5rem; background: var(--gvn-flaeche); border-radius: var(--gvn-radius); padding: 1.25rem 1.5rem; }
.gvn-hinweisband p { margin: 0; font-family: var(--gvn-font-titel); font-size: 1.15rem; font-weight: 700; letter-spacing: -.01em; }

/* Event-Liste: Kalenderblatt links, Angaben rechts */
.gvn-events { list-style: none; margin: 0; padding: 0; display: grid; gap: .25rem; }
.gvn-event { display: grid; grid-template-columns: 4rem minmax(0, 1fr); gap: 0 1.1rem; align-items: start; padding: .9rem; margin: 0 -.9rem; border-radius: var(--gvn-radius); position: relative; transition: background-color .15s; }
.gvn-event:hover { background: var(--gvn-flaeche); }
.gvn-blatt { grid-row: span 3; display: flex; flex-direction: column; align-items: center; justify-content: center; height: 4rem; background: var(--gvn-papier); border: 1px solid var(--gvn-linie); border-radius: 12px; overflow: hidden; position: relative; line-height: 1; }
.gvn-blatt::before { content: ""; position: absolute; inset: 0 0 auto; height: 3px; background: var(--gvn-verlauf); }
.gvn-blatt__tag { font-family: var(--gvn-font-titel); font-size: 1.55rem; font-weight: 700; letter-spacing: -.03em; color: var(--gvn-tinte); }
.gvn-blatt__monat { font-size: .7rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--gvn-akzent); margin-top: .3rem; }
.gvn-event__datum { margin: 0 0 .1rem !important; font-size: .86rem; font-weight: 500; color: var(--gvn-tinte-2); }
.gvn-event__titel { margin: 0 0 .3rem !important; }
.gvn-body .gvn-event__titel a { color: var(--gvn-tinte); text-decoration: none; }
.gvn-body .gvn-event__titel a::after { content: ""; position: absolute; inset: 0; border-radius: var(--gvn-radius); }
.gvn-body .gvn-event__titel a:hover { color: var(--gvn-akzent); }
.gvn-event__fakten { display: flex; flex-wrap: wrap; gap: .1rem .6rem; margin: 0 !important; font-size: .88rem; color: var(--gvn-tinte-2); }
.gvn-event__fakten span + span::before { content: "·"; margin-right: .6rem; color: #b9bccd; }
.gvn-events--vergangen .gvn-blatt::before { background: var(--gvn-linie); }
.gvn-events--vergangen .gvn-blatt__monat { color: var(--gvn-tinte-2); }

/* Produkte */
.gvn-produkte { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); gap: 1.25rem; }
.gvn-produkt { background: var(--gvn-papier); border: 1px solid var(--gvn-linie); border-radius: var(--gvn-radius); padding: .75rem .75rem 1.1rem; min-width: 0; transition: border-color .15s, box-shadow .15s; }
.gvn-produkt:hover { border-color: #d5d3f3; box-shadow: 0 10px 30px -18px rgba(75, 60, 192, .45); }
.gvn-produkt > :not(img) { padding: 0 .35rem; }
.gvn-produkt__bild { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 10px; margin-bottom: .85rem; background: var(--gvn-flaeche); }
.gvn-produkt__titel { margin: 0 0 .3rem !important; }
.gvn-body .gvn-produkt__titel a { color: var(--gvn-tinte); text-decoration: none; }
.gvn-body .gvn-produkt__titel a:hover { color: var(--gvn-akzent); }
.gvn-produkt__zeile { font-size: .9rem; color: var(--gvn-tinte-2); margin: 0 0 .5rem !important; }
.gvn-produkt__preis { font-weight: 600; margin: 0 !important; }
.gvn-produktbild { width: 100%; border-radius: var(--gvn-radius); margin-bottom: 1.5rem; }

/* Themen */
.gvn-themen { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.gvn-body .gvn-themen a { display: inline-flex; gap: .5rem; align-items: center; background: var(--gvn-flaeche); border-radius: 999px; padding: .5rem 1rem; color: var(--gvn-tinte); text-decoration: none; font-size: .95rem; font-weight: 500; transition: background-color .15s, color .15s; }
.gvn-body .gvn-themen a:hover { background: var(--gvn-akzent-hell); color: var(--gvn-akzent); }
.gvn-themen span { color: var(--gvn-tinte-2); font-size: .82rem; font-variant-numeric: tabular-nums; }

/* Listen */
.gvn-liste, .gvn-ratgeber { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--gvn-linie); }
.gvn-liste li, .gvn-ratgeber li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .1rem 1rem; padding: .8rem 0; border-bottom: 1px solid var(--gvn-linie); }
.gvn-liste span, .gvn-ratgeber span { font-size: .88rem; color: var(--gvn-tinte-2); }
.gvn-liste a, .gvn-ratgeber a { font-weight: 500; text-decoration: none; }
.gvn-linkliste { padding-left: 1.2rem; }
.gvn-linkliste li { margin: .3rem 0; }

/* Fakten */
.gvn-fakten { margin: 0 0 1.5rem; background: var(--gvn-flaeche); border-radius: var(--gvn-radius); }
.gvn-fakten > div { display: grid; grid-template-columns: 9rem minmax(0, 1fr); gap: .25rem 1rem; padding: .8rem 1.2rem; border-top: 1px solid var(--gvn-linie); }
.gvn-fakten > div:first-child { border-top: 0; }
.gvn-fakten dt { font-size: .88rem; color: var(--gvn-tinte-2); }
.gvn-fakten dd { margin: 0; }

/* Detailseite: Text links, Eckdaten rechts mitlaufend (mobil Eckdaten zuerst) */
.gvn-spalten { display: grid; gap: 1.5rem 3.5rem; }
.gvn-spalten__seite .gvn-fakten { font-size: .97rem; line-height: 1.5; }
.gvn-spalten__seite .gvn-fakten > div { grid-template-columns: minmax(0, 1fr); gap: 0; padding: .6rem 1.1rem; }
.gvn-spalten__seite .gvn-fakten dt { font-size: .8rem; }
.gvn-spalten__haupt > .gvn-prosa:first-child { margin-top: 0; }
.gvn-blatt--gross { display: none; }
.gvn-spalten__haupt section.gvn-prosa { margin: 2rem 0 0; }
.gvn-spalten__haupt section.gvn-prosa h2 { font-size: 1.2rem; margin: 0 0 .5rem; }
.gvn-verwandt { margin-top: 3.5rem; }
.gvn-body a.gvn-knopf--breit { display: block; text-align: center; }
@media (min-width: 900px) {
    .gvn-held__kopf { display: flex; align-items: center; gap: 1.5rem; }
    .gvn-blatt--gross { display: flex; flex: 0 0 5.5rem; width: 5.5rem; height: 5.5rem; }
    .gvn-blatt--gross .gvn-blatt__tag { font-size: 2.2rem; }
    .gvn-blatt--gross .gvn-blatt__monat { font-size: .8rem; }
    .gvn-spalten { grid-template-columns: minmax(0, 1fr) 340px; align-items: start; }
    .gvn-spalten__seite { grid-column: 2; grid-row: 1; position: sticky; top: calc(64px + 1.5rem); }
    .admin-bar .gvn-spalten__seite { top: calc(96px + 1.5rem); }
    .gvn-spalten__haupt { grid-column: 1; grid-row: 1; max-width: var(--gvn-textbreite); }
}

/* Knopf */
.gvn-body .gvn-knopf { display: inline-block; background: var(--gvn-akzent); color: #fff; text-decoration: none; font-weight: 600; padding: .75rem 1.4rem; border-radius: 999px; transition: background-color .15s; }
.gvn-body .gvn-knopf:hover { background: var(--gvn-akzent-dunkel); }

/* Seiten */
.gvn-seiten { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .5rem 1rem; margin: 2rem 0 0; font-size: .95rem; }
.gvn-body .gvn-seiten a { background: var(--gvn-flaeche); border-radius: 999px; padding: .5rem 1.1rem; text-decoration: none; font-weight: 500; }
.gvn-body .gvn-seiten a:hover { background: var(--gvn-akzent-hell); }
.gvn-seiten span { color: var(--gvn-tinte-2); }

/* Formulare (Event melden, Angaben korrigieren) */
.gvn-formular { margin-top: 1rem; }
.gvn-formular fieldset { border: 1px solid var(--gvn-linie); border-radius: var(--gvn-radius); padding: 1rem 1.25rem .25rem; margin: 0 0 1.25rem; }
.gvn-formular fieldset:disabled { opacity: .5; }
.gvn-formular legend { font-family: var(--gvn-font-titel); font-weight: 700; padding: 0 .4rem; }
.gvn-wahl { padding-bottom: .75rem !important; }
.gvn-wahl label { display: block; margin: .3rem 0; }
.gvn-feld { margin: 0 0 1rem; }
.gvn-feld label { display: block; font-weight: 600; font-size: .95rem; margin-bottom: .3rem; }
.gvn-feld__optional { font-weight: 400; color: var(--gvn-tinte-2); }
.gvn-feld input, .gvn-feld select, .gvn-feld textarea { width: 100%; font: inherit; color: inherit; background: var(--gvn-papier); border: 1px solid #d9dbe6; border-radius: 10px; padding: .65rem .85rem; transition: border-color .15s, box-shadow .15s; }
.gvn-feld input:focus, .gvn-feld select:focus, .gvn-feld textarea:focus { border-color: var(--gvn-akzent); outline: 0; box-shadow: 0 0 0 3px var(--gvn-akzent-hell); }
.gvn-body button.gvn-knopf { border: 0; font: inherit; font-weight: 600; cursor: pointer; }
.gvn-body button.gvn-knopf:disabled { opacity: .6; cursor: wait; }
.gvn-formular__meldung { min-height: 1.5em; }
.gvn-formular__meldung--fehler { color: #b42318; font-weight: 600; }
.gvn-formular__erfolg { background: var(--gvn-akzent-hell); border-radius: var(--gvn-radius); padding: 1rem 1.25rem; font-weight: 600; }

/* Fuß */
.gvn-fuss { margin-top: 4rem; background: var(--gvn-flaeche); font-size: .92rem; color: var(--gvn-tinte-2); }
.gvn-fuss__innen { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem 2rem; padding-top: 3rem; padding-bottom: 3rem; }
.gvn-fuss__titel { font-family: var(--gvn-font-titel); font-weight: 700; color: var(--gvn-tinte); margin-bottom: .6rem !important; }
.gvn-fuss ul { list-style: none; margin: 0; padding: 0; }
.gvn-fuss li { margin: .35rem 0; }
.gvn-body .gvn-fuss a { color: var(--gvn-tinte-2); text-decoration: none; }
.gvn-body .gvn-fuss a:hover { color: var(--gvn-akzent); }

@media (max-width: 760px) {
    .gvn-fuss__innen { grid-template-columns: 1fr; }
    .gvn-fakten > div { grid-template-columns: 1fr; }
    .gvn-event { grid-template-columns: 3.4rem minmax(0, 1fr); gap: 0 .9rem; }
    .gvn-blatt { height: 3.4rem; }
    .gvn-blatt__tag { font-size: 1.3rem; }
}
@media (max-width: 782px) { .admin-bar .gvn-kopf { top: 0; position: relative; } }
@media (prefers-reduced-motion: reduce) { .gvn-body * { transition: none !important; } }

/* Ratgeber-Block unter Beiträgen (Theme-Layout, daher eigene Werte) */
.gvn-ratgeber { margin: 2.5rem 0 1rem; padding: 1.25rem 1.5rem; background: var(--gvn-akzent-hell); border-radius: var(--gvn-radius); }
.gvn-ratgeber h2 { margin: 0 0 .6rem; font-size: 1.25rem; }
.gvn-ratgeber ul { margin: 0 0 .8rem; padding-left: 1.2rem; }
.gvn-ratgeber li span { color: var(--gvn-tinte-2); font-size: .9em; }
.gvn-ratgeber a { color: var(--gvn-akzent); }
