/* Snaply Magazin — öffentliches Frontend, pixelnah zum Hawthorn/snaply-fr Theme.
   Gemessene WP-Werte: body weiß, Barlow 16px #222; H1 31px Barlow Semi Condensed w400;
   Container 1220px; Content 830 + Sidebar 340; Akzent gold var(--mag-gold), Rot var(--mag-red).
   Farben aus mag_settings via :root-Variablen (Template head()); Default gold var(--mag-gold) / rot var(--mag-red). */
*,*::before,*::after{box-sizing:border-box}
html{overflow-x:hidden}
body{margin:0;background:#fff;color:#222;font-family:'Barlow',system-ui,-apple-system,sans-serif;font-size:16px;line-height:1.7}
a{color:var(--mag-gold);text-decoration:none}
a:hover{color:var(--mag-gold);text-decoration:underline}
img{max-width:100%;height:auto}
.sp-container{max-width:1220px;margin:0 auto;padding:0 20px}

/* ---------- Header ---------- */
.mag-header{background:#fff;border-bottom:1px solid #eee}
.mag-header-top{max-width:1220px;margin:0 auto;padding:22px 20px 14px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center}
.mag-social{display:flex;gap:14px}
.mag-social a{color:var(--mag-red)}
.mag-logo{grid-column:2;justify-self:center;display:block}
.mag-logo img{height:110px;width:auto;display:block}
.mag-logo:hover{text-decoration:none}
.mag-search-btn{grid-column:3;justify-self:end;background:none;border:none;color:var(--mag-red);cursor:pointer;padding:6px}
.mag-nav{display:flex;align-items:center;justify-content:center;gap:26px;padding:14px 20px;border-top:2px solid #040404;max-width:1220px;margin:0 auto;flex-wrap:wrap}
.mag-nav a{font-family:'Barlow Semi Condensed',sans-serif;font-size:14px;font-weight:700;letter-spacing:1.3px;text-transform:uppercase;color:#000}
.mag-nav a:hover{color:var(--mag-gold);text-decoration:none}
.nav-line{width:38px;height:2px;background:#040404;flex:0 0 auto}

/* ---------- Breadcrumb ---------- */
.mag-breadcrumb{padding:16px 0 0}
.mag-breadcrumb .sp-container{font-size:13px;color:#999}
.mag-breadcrumb a{color:var(--mag-gold)}
.mag-breadcrumb .sep{margin:0 6px;color:#ccc}
.mag-breadcrumb .current{color:#999}

/* ---------- Layout: Content + Sidebar ---------- */
.mag-layout{display:flex;gap:40px;align-items:flex-start;padding-top:24px;padding-bottom:40px}
.mag-content{flex:1;min-width:0}
.mag-sidebar{width:340px;flex:0 0 340px}
@media(max-width:960px){.mag-layout{flex-direction:column}.mag-sidebar{width:100%;flex:none}}

/* ---------- Artikel ---------- */
.mag-article .post-img{margin:0}
.mag-article .post-img img{width:100%;display:block;border-radius:2px}
.post-header{background:#fff;width:82%;margin:-62px auto 0;position:relative;z-index:2;padding:32px 26px 22px;text-align:center;box-shadow:0 -2px 14px rgba(0,0,0,.05)}
.post-header--nofeat{width:100%;margin:0;padding:8px 0 22px;box-shadow:none}
.post-cat a{color:#0096d6;font-size:12px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase}
.post-cat a:hover{text-decoration:none;color:var(--mag-gold)}
.entry-title{font-family:'Barlow Semi Condensed',sans-serif;font-size:31px;font-weight:400;line-height:1.2;letter-spacing:.5px;color:#000;margin:.5rem 0 0}
.post-difficulty{margin-top:16px;display:flex;align-items:center;justify-content:center;gap:14px}
.diff-label{color:#0096d6;font-size:12px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase}
.diff-icons{display:inline-flex;gap:4px}
.sci{color:#ccc;line-height:0}
.sci.on{color:#0096d6}

.post-content{padding:26px 0 0;font-size:16px;line-height:1.75;color:#222}
.post-content p{margin:0 0 1.15rem}
.post-content h2{font-family:'Barlow Semi Condensed',sans-serif;font-size:27px;font-weight:700;color:#000;margin:1.9rem 0 .8rem}
.post-content h3{font-family:'Barlow Semi Condensed',sans-serif;font-size:23px;font-weight:700;color:#000;margin:1.4rem 0 .6rem}
.post-content h4{font-size:20px;font-weight:700;margin:1.2rem 0 .5rem}
.post-content a{color:var(--mag-gold)}
.post-content ul,.post-content ol{padding-left:26px;margin:0 0 1.15rem}
.post-content li{margin-bottom:.4rem}
.post-content blockquote{border-left:5px solid #ddd;margin:1.3rem 0;padding:.3rem 0 .3rem 18px;font-size:20px;font-style:italic;color:#888}
.post-content img{border-radius:4px}
.post-content figure{margin:1.5rem 0;text-align:center}
.post-content figure figcaption{font-size:13px;color:#999;font-style:italic;margin-top:6px}
/* ⚠️ Diese vier Regeln galten bis 23.09.2026 NUR fuer .post-content (franzoesisches
   Layout). Im deutschen Layout (.mag-de-entry-content) fehlten damit Zentrierung,
   Links-/Rechtsbuendigkeit und volle Breite komplett: align-center landete ohne
   margin:auto am linken Rand, align-left/right hatten keinen float und standen
   untereinander statt nebeneinander.
   Aufgefallen ist es erst, als ein Bild schmaler als die Textspalte war (size-s,
   460px in 750px) - bei voller Breite sieht man zwischen "links" und "zentriert"
   keinen Unterschied. */
.post-content figure.align-left,.mag-de-entry-content figure.align-left{float:left;max-width:48%;margin:.3rem 1.4rem 1rem 0}
.post-content figure.align-right,.mag-de-entry-content figure.align-right{float:right;max-width:48%;margin:.3rem 0 1rem 1.4rem}
.post-content figure.align-center,.mag-de-entry-content figure.align-center{margin-left:auto;margin-right:auto}
.post-content figure.align-full img,.mag-de-entry-content figure.align-full img{width:100%}
/* Bildgroesse + Ausschnitt fuer Bausteine aus dem Editor (Fund Isah 22.09.2026).
   Bestandsbilder bringen aus WordPress ihr eigenes width-Attribut mit (haeufigste
   Masse 660x440 und 715x237) und bleiben deshalb klein. Frisch hochgeladene Bilder
   hatten gar keine Breitenangabe und zogen sich seit dem Wegfall der Seitenleiste
   ueber die vollen 1080px der Spalte - ein 1500er Foto stand damit doppelt so gross
   im Artikel wie alles daneben.
   Die Regeln greifen ausschliesslich auf figure.align-* = unser Baustein-Format.
   Der Bestand nutzt wp-block-image bzw. img-Klassen und wird NICHT angefasst. */
/* Standardbild fuellt die Textspalte - wie im Original, wo 715px Bild auf 750px
   Text kommen. */
.post-content figure.align-center,.mag-de-entry-content figure.align-center{max-width:100%}
.post-content figure.align-center.size-s,.mag-de-entry-content figure.align-center.size-s{max-width:460px}
/* "gross" ragt beidseitig aus der Textspalte heraus - sonst waere es dasselbe wie
   "normal".
   ⚠️ NICHT ueber margin-left:50% loesen: das verkleinert bei einem Block-Element die
   verfuegbare Breite (gemessen 375px statt 1080px). Mit position:relative + left
   bleibt das Layout unberuehrt, verschoben wird nur die Darstellung. */
.post-content figure.align-center.size-l,.mag-de-entry-content figure.align-center.size-l{
  position:relative;left:50%;transform:translateX(-50%);
  width:min(1080px,92vw);max-width:none}
/* Nebeneinander: der Bestand stellt Schritt-Bilder zu 81 Paaren links/rechts umflossen dar. */
.post-content figure.align-left.size-s,.post-content figure.align-right.size-s,
.mag-de-entry-content figure.align-left.size-s,.mag-de-entry-content figure.align-right.size-s{max-width:32%}
.post-content figure.align-left.size-l,.post-content figure.align-right.size-l,
.mag-de-entry-content figure.align-left.size-l,.mag-de-entry-content figure.align-right.size-l{max-width:60%}
/* Ausschnitt: das Bild behaelt seine Datei, nur der sichtbare Teil wird beschnitten.
   --mag-focus kommt als style-Attribut vom Baustein (zwei Prozentwerte). */
.post-content figure[class*=ratio-] img,.mag-de-entry-content figure[class*=ratio-] img{
  width:100%;object-fit:cover;object-position:var(--mag-focus,50% 50%)}
/* Rahmen um das Bild. Noetig fuer den Zoom: ein per transform vergroessertes Bild
   ragt aus seinem Layout-Kasten und wuerde die Bildunterschrift ueberdecken
   (gemessen 100px bei zweifacher Groesse). overflow:hidden an der figure selbst
   hilft nicht - die Unterschrift liegt in derselben Box. */
.mag-bildrahmen{display:block;overflow:hidden;line-height:0}
/* Zoom: der Fokuspunkt ist der Ursprung, damit die angeklickte Stelle beim
   Heranruecken im Bild bleibt. Ohne Zoom kostet die Regel nichts (scale(1)). */
/* Zoom um den Fokuspunkt (Stand 23.09.2026, zweite Korrektur).
   object-position und transform-origin rechnen in VERSCHIEDENEN Systemen:
   object-position meint Prozent des UEBERHANGS zwischen Bild und Rahmen,
   transform-origin Prozent der RAHMENBOX. Genau deshalb darf man den
   Klickprozentsatz nicht einfach in beide schreiben - fokusAusKlick() im Editor
   rechnet den Wert aus, der beide Effekte zusammen richtig stellt.
   ⚠️ origin MUSS der Fokus sein, nicht center: bei einem quadratischen Bild in
   einem quadratischen Rahmen ist der Ueberhang NULL, object-position kann dann
   gar nichts verschieben - die Verschiebung kommt allein aus transform-origin.
   Mit origin:center liess sich der Ausschnitt dort nicht mehr waehlen (Isah:
   "bei quadratisch klappt der Zoom nicht mehr"). */
.post-content figure img,.mag-de-entry-content figure img,.mag-gallery img{
  transform:scale(var(--mag-zoom,1));transform-origin:var(--mag-focus,50% 50%)}
.post-content figure.ratio-3-2 img,.mag-de-entry-content figure.ratio-3-2 img{aspect-ratio:3/2}
.post-content figure.ratio-1-1 img,.mag-de-entry-content figure.ratio-1-1 img{aspect-ratio:1/1}
.post-content figure.ratio-16-9 img,.mag-de-entry-content figure.ratio-16-9 img{aspect-ratio:16/9}

/* WordPress-Bildraster erhalten (migrierte Artikel: content_html trägt die
   Original-Struktur, hat aber ohne dieses CSS kein Grid -> Bilder untereinander).
   Gilt für BEIDE Content-Container: FR = .post-content, DE = .mag-de-entry-content.
   wp-block-columns = Spalten nebeneinander; wp-block-gallery = verschachteltes Raster. */
.post-content .wp-block-columns,.mag-de-entry-content .wp-block-columns{display:flex;flex-wrap:wrap;gap:14px;margin:1.5rem 0;align-items:flex-start}
.post-content .wp-block-column,.mag-de-entry-content .wp-block-column{flex:1 1 0;min-width:0}
.post-content .wp-block-column>figure,.mag-de-entry-content .wp-block-column>figure{margin:0}
/* Gallery: default = 2-spaltig (die meisten migrierten Galerien haben 2 Bilder;
   auto-fit-minmax kollabierte bei nur 2 Bildern zu einer Spalte). */
.post-content .wp-block-gallery,.mag-de-entry-content .wp-block-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:1.5rem 0}
.post-content .wp-block-gallery.columns-1,.mag-de-entry-content .wp-block-gallery.columns-1{grid-template-columns:1fr}
.post-content .wp-block-gallery.columns-2,.mag-de-entry-content .wp-block-gallery.columns-2{grid-template-columns:repeat(2,1fr)}
.post-content .wp-block-gallery.columns-3,.mag-de-entry-content .wp-block-gallery.columns-3{grid-template-columns:repeat(3,1fr)}
.post-content .wp-block-gallery.columns-4,.mag-de-entry-content .wp-block-gallery.columns-4{grid-template-columns:repeat(4,1fr)}
.post-content .wp-block-gallery>figure,.mag-de-entry-content .wp-block-gallery>figure{margin:0}
/* Grid-Zellen: das innere figure ist das Item; Bild füllt die Zellenbreite (Höhe auto,
   damit unterschiedliche Seitenverhältnisse nicht abgeschnitten/verzerrt werden). */
.post-content .wp-block-gallery .wp-block-image,.mag-de-entry-content .wp-block-gallery .wp-block-image{margin:0}
.post-content .wp-block-gallery img,.mag-de-entry-content .wp-block-gallery img{width:100%;height:auto;display:block;border-radius:5px}
@media(max-width:600px){
  .post-content .wp-block-columns,.mag-de-entry-content .wp-block-columns{gap:10px}
  .post-content .wp-block-column,.mag-de-entry-content .wp-block-column{flex-basis:calc(50% - 5px)}
}

/* Content-Blöcke */
.mag-gruss{margin:1.4rem 0 1.8rem;line-height:1.6}
.mag-material{background:#f8f8f8;border-left:4px solid var(--mag-gold);padding:1rem 1.3rem;border-radius:4px;margin:1.5rem 0}
.mag-material h3{margin:.2rem 0 .6rem;font-size:19px}
/* Benoetigte Menge fuers Projekt - steht vor dem Material, leicht hervorgehoben,
   damit die Leserin sie nicht mit der Packungsgroesse im Shop verwechselt. */
.mag-material-menge{font-weight:600;white-space:nowrap}
.mag-cta{text-align:center;margin:1.7rem 0}
.article-btn{display:inline-block;background:var(--mag-red);color:#fff;padding:12px 28px;border-radius:5px;font-weight:600;letter-spacing:.5px}
.article-btn:hover{background:#a00c26;text-decoration:none;color:#fff}
.article-btn--secondary{background:var(--mag-gold)}.article-btn--secondary:hover{background:#a98a56}
.article-btn--outline{background:transparent;color:var(--mag-red);border:2px solid var(--mag-red)}
.mag-infobox{background:#eef6ff;border:1px solid #b9d6f2;border-radius:8px;padding:1rem 1.2rem;margin:1.5rem 0}
.mag-gallery{display:grid;gap:8px;margin:1.5rem 0}
/* Eine Spalte = Einzelbild. Auf Textbreite begrenzen, sonst laeuft es wie frueher
   ueber die vollen 1080px der Spalte. */
.mag-gallery.gcols-1{grid-template-columns:1fr}
.mag-gallery.gcols-2{grid-template-columns:repeat(2,1fr)}
.mag-gallery.gcols-3{grid-template-columns:repeat(3,1fr)}
.mag-gallery.gcols-4{grid-template-columns:repeat(4,1fr)}
.mag-gallery figure{margin:0}
.mag-gallery img{width:100%;height:100%;object-fit:cover;border-radius:5px;display:block;
  /* ⚠️ object-position MUSS hier stehen (Regression 22.09., gefunden 23.09.).
     Vor dem Zoom-Umbau setzte der Renderer den Fokus direkt als style="object-position:…"
     ans Bild. Beim Umbau wanderte er in die Variable --mag-focus - gelesen wurde die
     aber nur von transform-origin. Folge: in der Bilderstrecke wirkte der Fokus NUR
     beim Zoom, der Ausschnitt blieb stur mittig. Isahs Fall: Fokus 18%, sichtbar war
     trotzdem Bildbereich 340..840 statt 180..680 - das Gesicht fiel raus. */
  object-position:var(--mag-focus,50% 50%)}
/* Einheitliches Format je Kachel (Fund Isah 22.09.2026).
   Ohne Hoehe an der Kachel lief das height:100% oben ins Leere: die Rasterzeile
   wurde so hoch wie das hoechste Bild und riss alle anderen mit (gemessen 1601px
   bei einem Hochkant-Bild in der Reihe). Das Originalmagazin beschneidet ebenfalls
   praktisch immer - 97% der dortigen Galerien tragen is-cropped.
   3:2 ist Standard, weil 660x440 das haeufigste Mass im Bestand ist. */
.mag-gallery.gal-3-2 figure{aspect-ratio:3/2}
.mag-gallery.gal-1-1 figure{aspect-ratio:1/1}
.mag-gallery.gal-4-3 figure{aspect-ratio:4/3}
/* gal-orig: bewusst ohne Format - dann behaelt jedes Bild seine eigene Hoehe.
   Damit dabei nicht wieder alle auf die hoechste Kachel gestreckt werden, richtet
   sich die Zeile hier nach dem Inhalt statt zu dehnen. */
.mag-gallery.gal-orig{align-items:start}
.mag-gallery.gal-orig img{height:auto;object-fit:contain}
/* Bildunterschrift darf die Kachelhoehe nicht sprengen. */
.mag-gallery figure{display:flex;flex-direction:column}
/* Der Rahmen traegt jetzt die Hoehe, nicht mehr das Bild selbst. */
.mag-gallery figure>.mag-bildrahmen{flex:1;min-height:0}
.mag-gallery figure img{height:100%;min-height:0}
.mag-gallery figcaption{font-size:12px;color:#999;font-style:italic;margin-top:4px;text-align:center}
.mag-video{position:relative;padding-bottom:56.25%;height:0;margin:1.5rem 0;border-radius:6px;overflow:hidden}
.mag-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
/* Standbild statt Player (Fund Isah 25.09.2026): YouTube waehlt sein Vorschaubild
   selbst und nimmt bei kleineren Einbettungen hqdefault - 4:3, im 16:9-Rahmen
   beschnitten. Wir zeigen maxresdefault und laden den Player erst beim Klick. */
.mag-video-link{position:absolute;inset:0;display:block;background:#000;cursor:pointer}
.mag-video-bild{width:100%;height:100%;object-fit:contain;display:block}
.mag-video-knopf{position:absolute;left:50%;top:50%;width:68px;height:48px;margin:-24px 0 0 -34px;
  border-radius:12px;background:rgba(0,0,0,.72);transition:background .15s ease}
.mag-video-knopf::after{content:'';position:absolute;left:26px;top:13px;border-style:solid;
  border-width:11px 0 11px 19px;border-color:transparent transparent transparent #fff}
.mag-video-link:hover .mag-video-knopf,.mag-video-link:focus-visible .mag-video-knopf{background:#c80f31}
.mag-video-link:focus-visible{outline:3px solid #0096d6;outline-offset:2px}
/* Instagram-Reel (Klick laedt den Instagram-Player). Eigene Klasse statt .mag-video:
   dessen 16:9-Rahmen (padding-bottom) wuerde ein Hochformat-Reel beschneiden. */
.mag-insta{position:relative;width:min(100%,400px);aspect-ratio:9/14;margin:1.5rem auto;border-radius:10px;overflow:hidden;
  background:linear-gradient(45deg,#f9ce34 0%,#ee2a7b 45%,#6228d7 100%)}
.mag-insta:not(.mag-video--vorschau){aspect-ratio:400/880;background:#fff;border:1px solid #dbdbdb}
.mag-insta iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.mag-insta .mag-video-link{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:14px;background:transparent;color:#fff;text-decoration:none}
.mag-de-entry-content .mag-insta a,.post-content .mag-insta a{color:#fff;text-decoration:none}
.mag-insta-logo{position:relative;width:64px;height:64px;border:5px solid #fff;border-radius:18px;box-sizing:border-box}
.mag-insta-logo::before{content:'';position:absolute;left:50%;top:50%;width:24px;height:24px;margin:-12px 0 0 -12px;border:5px solid #fff;border-radius:50%;box-sizing:border-box}
.mag-insta-logo::after{content:'';position:absolute;right:6px;top:6px;width:6px;height:6px;background:#fff;border-radius:50%}
.mag-insta-name{font-weight:600;font-size:18px;letter-spacing:.3px}
.mag-insta-play{width:56px;height:56px;line-height:56px;text-align:center;border-radius:50%;background:rgba(0,0,0,.35);font-size:22px;transition:background .15s}
.mag-insta-link:hover .mag-insta-play,.mag-insta-link:focus-visible .mag-insta-play{background:rgba(0,0,0,.6)}
/* Mit Startbild: Hochformat 9:16 wie das Reel, Bild fuellt die Karte, kleines Logo oben links */
.mag-insta--bild{aspect-ratio:9/16;background:#000}
.mag-insta-bild{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
/* Knopf unten statt mittig: Reels tragen ihren Titeltext meist in der Bildmitte */
.mag-insta--bild .mag-video-link{justify-content:flex-end;padding-bottom:28px}
.mag-insta--bild .mag-insta-play{position:relative;background:rgba(0,0,0,.45)}
.mag-insta-marke{position:absolute;left:12px;top:12px;width:40px;height:40px;border-radius:11px;
  background:linear-gradient(45deg,#f9ce34 0%,#ee2a7b 45%,#6228d7 100%);display:flex;align-items:center;justify-content:center}
.mag-insta-marke .mag-insta-logo{width:26px;height:26px;border-width:3px;border-radius:8px}
.mag-insta-marke .mag-insta-logo::before{width:10px;height:10px;margin:-5px 0 0 -5px;border-width:2.5px}
.mag-insta-marke .mag-insta-logo::after{right:2px;top:2px;width:3px;height:3px}
@media (prefers-reduced-motion: reduce){.mag-video-knopf{transition:none}}
#schwierigkeitsgrad{color:#0096d6;font-weight:700;text-transform:uppercase;letter-spacing:1px;text-align:center}

/* ---------- Autoren-Übersicht + Detailseite ---------- */
.mag-authors-page,.mag-author-detail,.mag-termindex{max-width:1140px;margin:0 auto;padding:30px 20px 50px}
.mag-termindex-tiles{grid-template-columns:repeat(3,1fr)!important;gap:12px}
@media(max-width:700px){.mag-termindex-tiles{grid-template-columns:repeat(2,1fr)!important}}
.mag-authors-title{font-family:'Barlow Semi Condensed',sans-serif;font-size:30px;font-weight:600;color:#0096d6;text-transform:uppercase;letter-spacing:.5px;margin:0 0 28px}
.mag-authors-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:26px 18px}
.mag-author-card{display:flex;flex-direction:column;align-items:center;text-align:center;color:#444}
.mag-author-card:hover{text-decoration:none}
.mag-author-avatar{width:130px;height:130px;border-radius:50%;background:#f2f2f2 center/cover no-repeat;display:block;margin-bottom:10px;border:1px solid #eee;transition:transform .15s}
.mag-author-card:hover .mag-author-avatar{transform:scale(1.04)}
.mag-author-avatar--empty{background:#f2f2f2 center/40% no-repeat}
.mag-author-name{font-weight:700;font-size:16px;color:#333}
.mag-author-brand{font-size:13px;color:#c3a26e;margin-top:2px}
/* Detailseite: Bio+Foto+Website links, Artikel-Grid rechts */
.mag-author-detail-head{display:grid;grid-template-columns:280px 1fr;gap:34px;align-items:start}
.mag-author-detail-info{display:flex;flex-direction:column;gap:16px}
.mag-author-detail-avatar{width:160px;height:160px;border-radius:50%;background:#f2f2f2 center/cover no-repeat}
.mag-author-detail-bio{font-size:15px;line-height:1.6;color:#444}
.mag-author-detail-web{align-self:flex-start}
/* Bug #293: .mag-de-grid (display:flex, Zeile weiter unten) gewann sonst gegen dieses
   Grid -> Kacheln unterschiedlich hoch/versetzt. Hoehere Spezifitaet erzwingt das Raster. */
.mag-author-detail-posts.mag-de-grid,.mag-author-detail-posts{display:grid;
  grid-template-columns:repeat(4,1fr);gap:22px 2%;margin-top:0}
.mag-author-detail-posts .mag-de-card{width:auto;margin:0}
@media(max-width:900px){
  .mag-authors-grid{grid-template-columns:repeat(3,1fr)}
  .mag-author-detail-head{grid-template-columns:1fr}
  .mag-author-detail-posts.mag-de-grid,.mag-author-detail-posts{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:520px){ .mag-authors-grid{grid-template-columns:repeat(2,1fr)} .mag-author-avatar{width:100px;height:100px} }

/* ---------- Such-Overlay (statische Client-Suche) ---------- */
.mag-search-ov{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:9999;display:flex;align-items:flex-start;justify-content:center;padding:8vh 16px}
.mag-search-ov[hidden]{display:none}
.mag-search-box{background:#fff;border-radius:10px;width:min(640px,100%);max-height:80vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.3);position:relative}
#mag-search-in{border:none;border-bottom:2px solid #eee;font-size:20px;padding:20px 50px 20px 24px;outline:none;font-family:inherit}
#mag-search-in:focus{border-bottom-color:#0096d6}
.mag-search-close{position:absolute;top:14px;right:16px;background:none;border:none;font-size:28px;color:#999;cursor:pointer;line-height:1}
.mag-search-res{overflow-y:auto;padding:6px 0}
.mag-search-hit{display:flex;gap:12px;align-items:center;padding:10px 24px;color:#333;border-bottom:1px solid #f4f4f4}
.mag-search-hit:hover{background:#f7fbfe;text-decoration:none}
.mag-search-thumb{width:52px;height:52px;flex:0 0 52px;border-radius:5px;background:#eee center/cover no-repeat}
.mag-search-hit b{display:block;font-size:15px;color:#0096d6}
.mag-search-hit small{color:#888;font-size:13px}
.mag-search-none{padding:24px;color:#999;text-align:center}

/* ---------- Sidebar-Widgets ---------- */
.mag-widget{margin-bottom:34px}
.widget-title{background:#040404;color:#fff;font-family:'Barlow Semi Condensed',sans-serif;font-size:13px;font-weight:600;letter-spacing:2.5px;text-transform:uppercase;text-align:center;padding:11px;margin:0 0 16px}
.sw-recent-item{display:flex;align-items:center;gap:12px;margin-bottom:14px;color:#222}
.sw-recent-item:hover{text-decoration:none}
.sw-num{width:26px;height:26px;flex:0 0 26px;border-radius:50%;background:#040404;color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center}
.sw-thumb{width:60px;height:60px;flex:0 0 60px;background:#eee center/cover no-repeat;border-radius:3px}
.sw-info{display:flex;flex-direction:column}
.sw-title{font-family:'Barlow Semi Condensed',sans-serif;font-size:15px;font-weight:600;color:#000;line-height:1.25}
.sw-date{font-size:12px;color:#999;font-style:italic;margin-top:2px}
.sw-cats{list-style:none;margin:0;padding:0}
.sw-cats li{border-bottom:1px solid #eee}
.sw-cats a{display:block;padding:8px 0;color:#444;font-size:14px}
.sw-cats a:hover{color:var(--mag-gold);text-decoration:none}
.mag-widget--nl{background:#f8f8f8;padding:18px;border-radius:6px}
.mag-widget--nl .widget-title{margin-top:0}
.mag-widget--nl p{font-size:14px;color:#666;margin:0 0 12px}
.sw-nl{display:flex;flex-direction:column;gap:8px}
.sw-nl input{padding:9px 11px;border:1px solid #ccc;border-radius:5px;font-size:14px}
.sw-nl button{padding:10px;background:var(--mag-red);color:#fff;border:none;border-radius:5px;font-weight:600;cursor:pointer}

/* ---------- Card-Grid (Archiv + Startseite) ---------- */
.mag-archive-head{background:#f8f8f8;padding:34px 0;text-align:center;margin-top:8px}
.mag-archive-head .kicker{font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--mag-gold)}
.mag-archive-head h1{font-family:'Barlow Semi Condensed',sans-serif;font-size:34px;color:#000;margin:.3rem 0 0}
.mag-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:26px}
.mag-card{background:#fff;border:1px solid #f0f0f0;border-radius:6px;overflow:hidden;color:#222;display:flex;flex-direction:column;box-shadow:0 1px 4px rgba(0,0,0,.05)}
.mag-card:hover{box-shadow:0 6px 18px rgba(0,0,0,.12);text-decoration:none}
.mag-card-img{height:180px;background:#eee center/cover no-repeat;position:relative}
.mag-card-cat{position:absolute;bottom:0;left:0;background:#0096d6;color:#fff;font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;padding:4px 10px}
.mag-card-body{padding:16px 18px;flex:1;display:flex;flex-direction:column}
.mag-card-body h3{font-family:'Barlow Semi Condensed',sans-serif;font-size:20px;font-weight:600;color:#000;margin:0 0 8px;line-height:1.25}
.mag-card-body p{font-size:14px;color:#666;margin:0;flex:1}
.mag-card-more{font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--mag-gold)}
.mag-empty{color:#999;text-align:center;padding:40px}

/* Startseite Hero */
.mag-hero{display:block;position:relative;border-radius:8px;overflow:hidden;margin-bottom:26px;color:#fff}
.mag-hero:hover{text-decoration:none}
.mag-hero-img{height:380px;background:#ddd center/cover no-repeat}
.mag-hero-body{position:absolute;left:0;right:0;bottom:0;padding:26px;background:linear-gradient(transparent,rgba(0,0,0,.75))}
.mag-hero-body h2{font-family:'Barlow Semi Condensed',sans-serif;font-size:30px;font-weight:600;color:#fff;margin:0 0 6px}

/* ---------- Footer ---------- */
.mag-footer{background:#040404;color:#bbb;margin-top:40px;padding:46px 0 30px}
.mag-footer .sp-container{text-align:center}
.mag-footer-logo{font-family:'Barlow Semi Condensed',sans-serif;font-size:26px;font-weight:700;color:#fff;display:inline-block;margin-bottom:16px}
.mag-footer-logo:hover{text-decoration:none}
.mag-footer-nav{display:flex;gap:20px;justify-content:center;flex-wrap:wrap;margin-bottom:14px}
.mag-footer-nav a{color:#ccc;font-size:13px;text-transform:uppercase;letter-spacing:1px}
.mag-footer-social{display:flex;gap:16px;justify-content:center;margin-bottom:16px}
.mag-footer-social a{color:#999}
.mag-copy{color:#777;font-size:12px}

@media(max-width:767px){
  .mag-logo{font-size:24px}
  .post-header{width:94%;margin-top:-40px;padding:24px 18px 18px}
  .entry-title{font-size:26px}
  .post-content figure.align-left,.post-content figure.align-right,
  .mag-de-entry-content figure.align-left,.mag-de-entry-content figure.align-right{float:none;max-width:100%;margin:1.3rem 0}
  /* Auf dem Handy immer volle Breite - auch gegen die size-Klassen des Editors.
     Gleiche Spezifitaet wie .post-content figure.align-x.size-y, steht aber spaeter
     in der Datei und gewinnt damit. */
  .post-content figure[class*=align-][class*=size-],
  .mag-de-entry-content figure[class*=align-][class*=size-]{float:none;max-width:100%}
  .mag-hero-img{height:240px}
  /* Bilderstrecke: auf dem Handy hoechstens zwei Spalten - bei drei blieben je
     Bild nur 105x70 px uebrig, da erkennt niemand einen Naeharbeitsschritt. */
  .mag-gallery.gcols-3,.mag-gallery.gcols-4{grid-template-columns:repeat(2,1fr)}
}

/* ============================================================================
   DE-MAGAZIN (Theme "foodica") — pixelnah zum echten magazin.snaply.de.
   Alles unter body.mag-de-page gescoped, damit das FR-Design (hawthorn) unberührt bleibt.
   Gemessene Live-Werte: Font Lato; Body-Text #685f5b 16px/1.6; Primär türkis #0096d6;
   Shop-Rot #c80f31; Section-Titles #0096d6 30px w300 uppercase; Nav-Band #0096d6 weiß;
   Container 1140px (max 1300 mit 80px Rand); Content 750 + Sidebar 342 (Gap 48).
   ============================================================================ */
body.mag-de-page{font-family:'Lato',system-ui,-apple-system,sans-serif;color:#685f5b;font-size:16px;line-height:1.6}
body.mag-de-page a{color:#0096d6;text-decoration:none}
body.mag-de-page a:hover{color:#685f5b;text-decoration:none}
/* Bug #283/#292: Buttons behalten ihre eigene Textfarbe.
   body.mag-de-page a (Spezifitaet 0,1,2) schlug .mag-de-shop und .article-btn
   (je 0,1,0) -> roter Button mit blauem Text, im Hover braun. Quellreihenfolge
   half nicht, nur hoehere Spezifitaet.
   REGEL (Daniela/Simon): JEDE farbige Box bekommt weissen Text - rote wie blaue.
   NEUE Button-Klasse auf DE-Seiten? Hier eintragen, sonst faerbt die Link-Regel sie um;
   das ist beim Knopf "Alle Naehideen anzeigen" (#286) prompt passiert. Betrifft nur
   Klassen, die auf einem <a> sitzen - <button> und <span> erreicht die Link-Regel nicht. */
body.mag-de-page .wp-block-button a,
body.mag-de-page .wp-block-button a:hover,
body.mag-de-page a.mag-de-shop,
body.mag-de-page a.mag-de-shop:hover,
body.mag-de-page a.mag-de-slide-btn,
body.mag-de-page a.mag-de-slide-btn:hover,
body.mag-de-page a.article-btn:not(.article-btn--outline),
body.mag-de-page a.article-btn:not(.article-btn--outline):hover{color:#fff}
/* Outline-Variante ist transparent mit rotem Text - die bleibt rot. */
body.mag-de-page a.article-btn--outline,
body.mag-de-page a.article-btn--outline:hover{color:var(--mag-red)}
.mag-de-container{max-width:1300px;margin:0 auto;padding:0 80px}

/* ---------- DE Header ---------- */
.mag-de-header{background:#fff}
.mag-de-top{max-width:1300px;margin:0 auto;padding:0 80px;height:70px;display:flex;align-items:center;position:relative}
/* Original-Logo-PNG (runder Ballon inkl.) */
.mag-de-logo{display:block;flex:0 0 auto;text-decoration:none}
.mag-de-logo img{height:130px;width:auto;display:block}
.mag-de-logo:hover{text-decoration:none}
.mag-de-tagline{flex:1;color:#685f5b;text-transform:uppercase;font-size:13px;font-weight:400;letter-spacing:.2px;
  margin:0 0 0 10px;padding-right:10px;line-height:20px}
.mag-de-shop{position:relative;float:right;text-transform:uppercase;margin:10px 0;background:#c80f31;color:#fff;
  border:1px dashed #fff;border-radius:5px;box-shadow:0 0 0 4px #c80f31;font-size:16px;font-weight:400;
  padding:8px 15px 9px;text-decoration:none;white-space:nowrap}
.mag-de-shop:hover{background:#d4092f;box-shadow:0 0 0 4px #d4092f;color:#fff;text-decoration:none}
.mag-de-shop-chev{font-weight:700}

/* ---------- DE Nav (türkise Leiste) ---------- */
.mag-de-nav{background:#0096d6}
.mag-de-nav-inner{max-width:1300px;margin:0 auto;padding:0 80px;display:flex;align-items:center;justify-content:space-between;min-height:46px}
.mag-de-menu{list-style:none;margin:0;padding:0 0 0 175px;display:flex;align-items:center;flex-wrap:wrap}
.mag-de-mi{margin-right:25px;border-bottom:4px solid transparent;margin-bottom:-4px}
.mag-de-mi:last-child{margin-right:0}
.mag-de-nav .mag-de-menu a{display:block;color:#fff;font-family:'Lato',sans-serif;font-size:15px;font-weight:400;letter-spacing:0;
  padding:12px 0;line-height:22px}
.mag-de-nav .mag-de-menu a:hover{color:#fff;font-weight:700;text-decoration:none}
.mag-de-mi:hover{border-bottom-color:#fff}
.mag-de-arrow{display:inline-block;margin-left:6px;border:5px solid transparent;border-top-color:#fff;
  border-bottom:0;vertical-align:middle;position:relative;top:-1px}
/* Dropdown-Untermenüs (backend-pflegbar via parent_id) */
.mag-de-mi.has-sub{position:relative}
.mag-de-sub{list-style:none;margin:0;padding:6px 0;position:absolute;top:100%;left:0;min-width:220px;
  background:#0096d6;box-shadow:0 8px 20px rgba(0,0,0,.18);border-radius:0 0 4px 4px;
  opacity:0;visibility:hidden;transform:translateY(6px);transition:.15s;z-index:50}
.mag-de-mi.has-sub:hover .mag-de-sub,.mag-de-mi.has-sub:focus-within .mag-de-sub{opacity:1;visibility:visible;transform:none}
.mag-de-nav .mag-de-sub a{display:block;padding:9px 18px;color:#fff;font-size:14px;white-space:nowrap;line-height:1.4}
.mag-de-nav .mag-de-sub a:hover{background:rgba(255,255,255,.15);font-weight:700}
.mag-de-search{width:36px;height:36px;flex:0 0 36px;border-radius:50%;background:#fff;color:#685f5b;border:none;
  cursor:pointer;display:flex;align-items:center;justify-content:center;margin-left:20px}
/* Burger (nur mobil sichtbar) */
.mag-de-burger{display:none;flex-direction:column;justify-content:center;gap:5px;width:40px;height:40px;background:none;border:none;cursor:pointer;padding:8px}
.mag-de-burger span{display:block;height:3px;background:#fff;border-radius:2px;transition:.2s}
.mag-de-nav.is-open .mag-de-burger span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.mag-de-nav.is-open .mag-de-burger span:nth-child(2){opacity:0}
.mag-de-nav.is-open .mag-de-burger span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

/* ---------- DE Nav MOBIL (Burger-Menü) ---------- */
@media(max-width:900px){
  .mag-de-nav-inner{padding:0 16px;justify-content:space-between;flex-wrap:nowrap}
  .mag-de-burger{display:flex;order:1}
  .mag-de-search{order:2;margin-left:0}
  /* Menü eingeklappt, per .is-open ausklappen (volle Breite, unter der Leiste) */
  .mag-de-menu{order:3;flex-basis:100%;flex-direction:column;align-items:stretch;padding:0;
    max-height:0;overflow:hidden;transition:max-height .25s ease}
  .mag-de-nav.is-open .mag-de-menu{max-height:80vh;overflow-y:auto;padding:6px 0 12px}
  .mag-de-mi{margin:0;border-bottom:1px solid rgba(255,255,255,.15)}
  .mag-de-mi:hover{border-bottom-color:rgba(255,255,255,.15)}
  .mag-de-nav .mag-de-menu a{padding:12px 16px}
  /* Untermenüs mobil: statisch, per .sub-open eingeblendet (Tap auf Elternteil) */
  .mag-de-sub{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;
    background:rgba(0,0,0,.12);border-radius:0;min-width:0;padding:0;
    max-height:0;overflow:hidden;transition:max-height .2s ease}
  .mag-de-mi.sub-open .mag-de-sub{max-height:600px}
  .mag-de-mi.has-sub:hover .mag-de-sub{opacity:1;visibility:visible} /* Hover-Regel neutralisieren */
  .mag-de-nav .mag-de-sub a{padding:10px 28px;white-space:normal}
}

/* ---------- DE Section-Titles ---------- */
.mag-de-section-title{font-family:'Lato',sans-serif;color:#0096d6;font-size:30px;font-weight:300;letter-spacing:0;
  text-transform:uppercase;line-height:1.1;margin:0 0 20px}

/* ---------- DE Startseite ---------- */
.mag-de-home{padding-top:34px;padding-bottom:30px}
/* Slider */
/* Bug #288: statische Seiten (Impressum, Datenschutz ...). Ohne Seitenleiste, dafuer
   lesbare Textbreite - Rechtstexte sind lange Fliesstexte, die volle 1300px waeren
   muehsam zu lesen. */
.mag-de-page-wrap{max-width:820px;margin:0 auto;padding:10px 20px 50px}
.mag-de-page-wrap .mag-de-entry-title{margin-bottom:22px}
.mag-de-page-wrap .mag-de-entry-content h2{margin-top:32px}

/* Bug #284: drei Shop-Highlight-Banner unter dem Slider, Knopf darunter.
   Vorlage: altes Magazin - Foto mit kleinem hellen Textkaestchen mittig darauf. */
.mag-de-banners{display:grid;grid-template-columns:repeat(3,1fr);gap:24px 2%;margin:0 0 26px}
.mag-de-banner{position:relative;display:block;color:inherit}
.mag-de-banner:hover{text-decoration:none}
.mag-de-banner-img{display:block;width:100%;aspect-ratio:4/5;background:#eee center/cover no-repeat;
  border-radius:2px;transition:transform .15s}
.mag-de-banner:hover .mag-de-banner-img{transform:scale(1.01)}
.mag-de-banner-label{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  background:rgba(255,255,255,.92);color:#444;font-size:17px;padding:8px 16px;white-space:nowrap;max-width:88%;
  overflow:hidden;text-overflow:ellipsis}
.mag-de-banners-cta{text-align:center;margin:0 0 40px}
/* Der Knopf steht hier mittig und nicht rechts wie in der Kopfzeile. */
.mag-de-shop--cta{float:none;display:inline-block;margin:0}
@media(max-width:900px){ .mag-de-banners{grid-template-columns:1fr;gap:18px}
  .mag-de-banner-img{aspect-ratio:16/9} }

/* Bug #285: vierspaltiges Raster fuer "Neueste Beitraege" auf der Startseite.
   .mag-de-grid arbeitet mit festen Breiten + nth-of-type(3n) fuer drei Spalten;
   fuer vier waere das eine zweite Sonderregel. Hier stattdessen ein echtes Grid,
   die Kachel gibt ihre eigene Breite/Abstaende ab - dasselbe Muster wie bei
   .mag-author-detail-posts (Bug #293). */
.mag-de-grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:30px 2%;margin:0 0 40px}
.mag-de-grid4 .mag-de-card{width:auto;margin:0}
@media(max-width:900px){ .mag-de-grid4{grid-template-columns:repeat(2,1fr)} }
@media(max-width:520px){ .mag-de-grid4{grid-template-columns:repeat(2,1fr);gap:20px 3%} }

/* Bug #289: Material-/Thema-Uebersicht als runde Bildausschnitte mit zentriertem
   Namen darunter (Vorbild: altes WP-Magazin, 3 Spalten). Loest die alten
   Text-Kacheln ab. Kreis per aspect-ratio 1:1 + border-radius:50%, Foto per
   background center/cover - so bleibt jedes Seitenverhaeltnis mittig beschnitten. */
.mag-termtiles{display:grid;grid-template-columns:repeat(3,1fr);gap:34px 30px;margin:26px 0 10px}
/* Bug #286: dieselbe Kachel, auf der Startseite aber vier nebeneinander. */
.mag-termtiles--4{grid-template-columns:repeat(4,1fr);gap:26px 2%;margin:26px 0 22px}
.mag-termtiles--4 .mag-termtile-img{max-width:none}
.mag-termtile{display:flex;flex-direction:column;align-items:center;text-align:center;color:#444}
.mag-termtile:hover{text-decoration:none}
.mag-termtile-img{width:100%;max-width:300px;aspect-ratio:1/1;border-radius:50%;
  background:#f2f2f2 center/cover no-repeat;display:block;transition:transform .15s}
.mag-termtile:hover .mag-termtile-img{transform:scale(1.03)}
.mag-termtile-img--empty{background:#f2f2f2}
.mag-termtile-name{display:block;margin-top:14px;font-size:17px;color:#444}
.mag-termtile-cnt{color:#aaa;font-size:13px;margin-left:6px}
@media(max-width:900px){ .mag-termtiles{grid-template-columns:repeat(2,1fr);gap:26px 20px} }
@media(max-width:520px){ .mag-termtiles{grid-template-columns:repeat(2,1fr);gap:20px 14px}
  .mag-termtile-name{font-size:15px} }

.mag-de-slider{position:relative;height:500px;margin:0 0 40px;background:#eff4f7;overflow:hidden}
.mag-de-slides{position:relative;height:100%}
.mag-de-slide{position:absolute;inset:0;display:flex;opacity:0;visibility:hidden;transition:opacity .5s ease;color:inherit}
.mag-de-slide.is-active{opacity:1;visibility:visible}
.mag-de-slide:hover{text-decoration:none}
/* Bug #245: Bild verläuft nach rechts sanft in die Textfläche (wie WP-Foodica-Slider),
   statt harter Kante. Gradient-Overlay (::after) blendet das Bild in die Panelfarbe. */
.mag-de-slide-img{position:relative;width:60%;background:#ddd center/cover no-repeat;flex:0 0 60%}
/* Bug #282: Der Verlauf muss FERTIG sein, BEVOR .mag-de-slide-body das Bild ueberdeckt.
   Die Textflaeche zieht sich per margin-left:-8% ueber das Bild und hat einen deckenden
   Hintergrund - sichtbar ist das Foto also nur bis 86,7%% seiner eigenen Breite
   (60%% Bild minus 8%% Ueberlappung = 52%% des Sliders). Der alte Endpunkt 92%% lag HINTER
   dieser Kante: am sichtbaren Rand war der Verlauf erst zu ~86%% durch, es blieb eine
   Stufe von rund 25 RGB-Stufen = die sichtbare senkrechte Kante.
   Im Browser gemessen: vorher #D6DEDD direkt neben #EFF4F7. */
.mag-de-slide-img::after{content:'';position:absolute;inset:0;
  background:linear-gradient(to right, rgba(239,244,247,0) 50%, #eff4f7 85%)}
.mag-de-slide-body{flex:1;margin-left:-8%;position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:40px 50px 40px 20px;background:#eff4f7}
.mag-de-slide-title{font-family:'Lato',sans-serif;color:#0096d6;font-size:34px;font-weight:400;line-height:1.25;
  letter-spacing:0;margin:0 0 26px;text-transform:none}
.mag-de-slide-btn{display:inline-block;background:#0096d6;color:#fff;border-radius:8px;padding:10px 28px;font-size:18px;font-weight:400}
.mag-de-arrow-btn{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;
  background:rgba(255,255,255,.85);color:#685f5b;border:none;font-size:26px;line-height:1;cursor:pointer;z-index:3;
  display:flex;align-items:center;justify-content:center}
.mag-de-arrow-prev{left:14px}.mag-de-arrow-next{right:14px}
.mag-de-arrow-btn:hover{background:#fff}
.mag-de-dots{position:absolute;left:0;right:0;bottom:18px;display:flex;justify-content:center;gap:10px;z-index:3}
.mag-de-dot{width:12px;height:12px;border-radius:50%;background:transparent;border:2px solid #fff;cursor:pointer}
.mag-de-dot.is-active{background:#fff}

/* Highlights-Grid (3 Spalten, 31.5% / 2.75% wie foodica .content-area.triple) */
.mag-de-grid{display:flex;flex-wrap:wrap;margin-top:6px}
.mag-de-card{width:31.5%;margin:0 2.75% 30px 0;display:block;color:inherit;position:relative}
.mag-de-card:nth-of-type(3n+3){margin-right:0}
.mag-de-card:hover{text-decoration:none}
/* Bug #293: Beitragstitel steht UNTER dem Bild (wie WP-Original .post-thumb +
   h3.entry-title), nicht mehr als Overlay darin - lange Titel verdeckten das Foto. */
.mag-de-card-img{position:relative;padding-top:100%;background:#eee center/cover no-repeat;overflow:hidden;
  margin:0 0 10px}
.mag-de-card-title{display:block;color:#0096d6;font-weight:600;font-size:16px;line-height:1.35;text-align:left}
.mag-de-card:hover .mag-de-card-title{text-decoration:underline}
/* Alt-Markup (Overlay) aus zuvor gerenderten Seiten nicht mehr ueber das Bild legen */
.mag-de-card-overlay{position:static;display:block;padding:0}

/* ---------- DE Artikel-Einzelseite ---------- */
/* Bug #245: Artikel-Einzelseite mittiger, wie WP-Original (Content saß bündig links am
   1140er-Container). Schmalerer, zentrierter Artikelblock (700 + 40 + 340 = 1080). */
.mag-de-single{display:block;padding-top:0;padding-bottom:0;margin:20px auto 50px;max-width:1080px}
/* Textspalte auf das Mass des Originalmagazins (Entscheidung Isah 23.09.2026).
   Danielas Wunsch vom 17.09. war, die SEITENLEISTE loszuwerden - dass der Text
   daraufhin die vollen 1080px einnimmt, war unsere Umsetzung davon. Gemessen:
   das WordPress-Magazin fuehrt 750px Textbreite bei 715px breiten Bildern (95%),
   wir kamen auf 920px Text bei denselben 715px (78%) - dieselben Bilder wirkten
   dadurch zu klein, und die Zeilen wurden mit ~115 Zeichen zu lang zum Lesen.
   Die Leiste bleibt weg, die Spalte rueckt nur in die Mitte. */
.mag-de-main{width:100%;max-width:750px;margin:0 auto;min-width:0}
.mag-de-post-thumb{margin:0 0 20px;overflow:hidden;border-radius:2px}
/* Hinweiskaesten. Zwei Quellen, EINE Form:
   - p.mag-copyright  = der von uns erzeugte Copyright-Hinweis am Artikelende
   - p.has-background = die Kaesten, die die Redaktion in WordPress setzt
                        (<p class="has-background" style="background-color:#d6effc">)
   Farbe und Innenabstand sind 1:1 aus dem Original abgelesen (WP-Core:
   padding 1.25em 2.375em). Die Farbe kommt bewusst von HIER und nicht aus dem
   importierten style-Attribut - alle 31 im Bestand gemessenen Kaesten tragen
   ohnehin dieselbe. Beide Container, weil DE und FR verschiedene nutzen. */
.mag-de-entry-content p.mag-copyright,.post-content p.mag-copyright,
.mag-de-entry-content p.has-background,.post-content p.has-background{
  margin:32px 0;padding:1.25em 2.375em;background:#d6effc;
  overflow:hidden;line-height:1.7}
.mag-de-entry-content p.mag-copyright,.post-content p.mag-copyright{margin-bottom:0}
.mag-de-entry-content p.mag-copyright a,.post-content p.mag-copyright a,
.mag-de-entry-content p.has-background a,.post-content p.has-background a{
  color:inherit;text-decoration:underline}
@media(max-width:600px){
  .mag-de-entry-content p.mag-copyright,.post-content p.mag-copyright,
  .mag-de-entry-content p.has-background,.post-content p.has-background{padding:1.25em}
}
.mag-de-post-thumb img{width:100%;aspect-ratio:3/2;object-fit:cover;object-position:center;display:block}
.mag-de-entry-title{font-family:'Lato',sans-serif;color:#0096d6;font-size:32px;font-weight:300;line-height:1.4;
  letter-spacing:0;text-transform:uppercase;margin:0 0 15px}
.mag-de-post-meta{font-size:16px;color:#685f5b;margin:0 0 24px}
.mag-de-post-meta a{color:#0096d6;text-decoration:underline}
.mag-de-meta-sep{margin:0 8px;color:#0096d6}
.mag-de-difficulty{margin:0 0 30px;text-align:center;display:flex;align-items:center;justify-content:center;gap:10px}
.mag-de-diff-label{color:#0096d6;text-transform:uppercase;font-size:20px;font-weight:400;letter-spacing:.5px}
.mag-de-diff-icons{display:inline-flex;gap:6px}
.mag-de-sci{color:#ccc;line-height:0}
.mag-de-sci.on{color:#0096d6}
.mag-de-entry-content{font-size:16px;line-height:1.7;color:#685f5b;padding-bottom:15px}
.mag-de-entry-content p{margin:0 0 28px}
.mag-de-entry-content a{color:#0096d6;text-decoration:underline}
/* Zwischenueberschriften klar von der Beitragsueberschrift trennen (Isah 23.09.2026).
   Vorher war h2 im Inhalt BLAU wie die Hauptueberschrift und damit kaum davon zu
   unterscheiden. Das Originalmagazin macht es anders - dort gemessen:
     H1  32px  w300  blau  #0096d6  Versalien
     H2  30px  w300  grau  #685f5b  Versalien
     H3  24px  w600  grau  #685f5b  normal
   Uebernommen sind Farbe und Staffelung; das Gewicht liegt auf Wunsch etwas hoeher
   als im Original (dort w300), damit sich die Zwischenueberschrift kraeftiger vom
   Fliesstext abhebt.
   h3 von w700 auf w600: eine Unterueberschrift darf nicht FETTER sein als die
   Ebene darueber. */
.mag-de-entry-content h2{font-family:'Lato',sans-serif;color:#685f5b;font-size:26px;font-weight:600;text-transform:uppercase;letter-spacing:0;margin:1.8rem 0 .8rem}
.mag-de-entry-content h3{font-family:'Lato',sans-serif;color:#685f5b;font-size:22px;font-weight:600;margin:1.4rem 0 .6rem}
.mag-de-entry-content h4,.mag-de-entry-content h5{font-size:18px;font-weight:700;color:#685f5b;margin:1.2rem 0 .5rem}
.mag-de-entry-content ul,.mag-de-entry-content ol{padding-left:26px;margin:0 0 1.5rem}
.mag-de-entry-content li{margin-bottom:.4rem}
.mag-de-entry-content blockquote{border-left:4px solid #0096d6;margin:1.5rem 0;padding:.3rem 0 .3rem 18px;font-style:italic;color:#888}
.mag-de-entry-content img{height:auto}
.mag-de-entry-content figure{margin:1.5rem 0;text-align:center}
.mag-de-entry-content figure figcaption{font-size:15px;color:#000;margin-top:6px;text-align:left}
/* ---------- Knoepfe aus dem WordPress-Inhalt ----------
   Die migrierten Artikel bringen Gutenberg-Knoepfe mit (Materialliste,
   Schnittmuster-Download):
     <div class="wp-block-buttons"><div class="wp-block-button"><a href=...>
   Ohne CSS sahen die aus wie normale Textlinks - im WordPress-Original sind es
   rote Knoepfe (Danielas Vergleich 17.09.2026). 280 von 623 deutschen Artikeln
   betroffen.

   Werte 1:1 aus dem WordPress-Kindthema (themes/snaply/style.css):
     .wp-block-button a.wp-block-button__link{background:#c80f31;color:#fff}
     ....has-schnittmuster-background-color{margin:5px;padding:10px 20px;
        border:1px dashed #fff;box-shadow:0 0 0 6px #c80f31}
     hover: background:#685F5B
   border-radius:4px kommt aus dem WordPress-Kern; durch den 6px-Ring wirken die
   Ecken runder, als die 4px vermuten lassen.

   Warum die schnittmuster-Fassung der Normalfall ist und nicht die Ausnahme:
   Die Farbklasse ueberlebt unseren Import nicht (magSanitizeHtml erlaubt auf <a>
   bewusst kein class-Attribut), wir koennen also nicht zwischen den Fassungen
   unterscheiden. Stichprobe ueber 6 Artikel: die schnittmuster-Fassung kommt
   2-14 mal je Artikel vor, die Fassungen rot/blau/grau/schwarz kein einziges Mal
   - sie sind im Theme nur definiert. Eine Fassung fuer alle trifft also praktisch
   jeden Knopf richtig.

   color:#fff steht direkt an der Regel und nicht nur in der Weisse-Schrift-Liste
   weiter oben: die ist auf body.mag-de-page gemuenzt und erreicht das alte
   franzoesische Layout (body.mag-fr-page) nicht - dort faerbt .post-content a die
   Schrift sonst goldfarben auf rotem Grund. */
.post-content .wp-block-buttons,.mag-de-entry-content .wp-block-buttons{display:flex;flex-wrap:wrap;
  align-items:flex-start;gap:8px;margin:1.6rem 0 1.9rem}
.post-content .wp-block-button,.mag-de-entry-content .wp-block-button{margin:0}
/* margin 6px laesst dem 6px-Ring Platz, sonst ueberlappt er die Nachbarn. */
.post-content .wp-block-button a,.mag-de-entry-content .wp-block-button a,.post-content .mag-cta a.article-btn--primary,.mag-de-entry-content .mag-cta a.article-btn--primary{display:inline-block;
  margin:6px;padding:10px 20px;background:#c80f31;color:#fff;border:1px dashed #fff;border-radius:4px;
  box-shadow:0 0 0 6px #c80f31;font-size:16px;line-height:1.35;text-align:center;
  text-decoration:none;word-break:break-word}
.post-content .wp-block-button a:hover,.mag-de-entry-content .wp-block-button a:hover{
  background:#685f5b;color:#fff;box-shadow:0 0 0 6px #685f5b;text-decoration:none}

/* Content-Block-Bausteine (aus dem FabFab-Editor) in DE-Farben */
.mag-de-entry-content .article-btn{display:inline-block;background:#0096d6;color:#fff;padding:10px 20px;border-radius:8px;font-weight:400;text-decoration:none}
.mag-de-entry-content .article-btn:hover{background:#685f5b;color:#fff}
.mag-de-entry-content .mag-material{background:#f4fbff;border-left:4px solid #0096d6;padding:1rem 1.3rem;margin:1.5rem 0}
.mag-de-entry-content .mag-cta{text-align:center;margin:1.7rem 0}
.mag-de-single .mag-de-entry-content .mag-video{position:relative;padding-bottom:56.25%;height:0;margin:1.5rem 0;overflow:hidden}
.mag-de-single .mag-de-entry-content .mag-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* ---------- DE Sidebar ----------
   Seit 17.09.2026 nirgends eingebunden: die Beitragsansicht laeuft ueber die volle
   Breite (Wunsch Daniela). Bewusst stehen gelassen - MagazineTemplate::sidebarDe()
   gibt es weiterhin, falls die Leiste auf einem anderen Seitentyp gebraucht wird. */
.mag-de-sidebar{width:340px;flex:0 0 340px}
.mag-de-widget{margin-bottom:40px;text-align:left}
.mag-de-widget-title{font-family:'Lato',sans-serif;color:#685f5b;font-size:20px;font-weight:700;line-height:1.1;
  letter-spacing:0;text-transform:none;margin:0 0 20px}
.mag-de-tptn-list{display:block}
.mag-de-tptn{display:flex;align-items:flex-start;gap:12px;margin:0 0 15px;color:#685f5b}
.mag-de-tptn:hover{text-decoration:none}
.mag-de-tptn-thumb{width:85px;height:85px;flex:0 0 85px;background:#eee center/cover no-repeat}
.mag-de-tptn-title{font-size:15px;line-height:1.4;color:#685f5b;font-weight:400}
.mag-de-tptn:hover .mag-de-tptn-title{color:#0096d6}
.mag-de-cats{list-style:none;margin:0;padding:0}
.mag-de-cats li{border-bottom:1px solid #eee}
.mag-de-cats a{display:block;padding:8px 0;color:#685f5b;font-size:15px}
.mag-de-cats a:hover{color:#0096d6;text-decoration:none}
.mag-de-widget-nl{background:#f4fbff;border:1px solid #d6effc;border-radius:6px;padding:18px}
.mag-de-widget-nl .mag-de-widget-title{margin-top:0}
.mag-de-widget-nl p{font-size:15px;color:#685f5b;margin:0 0 12px}
.mag-de-nl{display:flex;flex-direction:column;gap:8px}
.mag-de-nl input{padding:9px 11px;border:1px solid #ccc;border-radius:5px;font-size:15px}
.mag-de-nl button{padding:10px;background:#0096d6;color:#fff;border:none;border-radius:8px;font-size:16px;cursor:pointer}
.mag-de-nl button:hover{background:#685f5b}

/* ---------- DE Archiv ---------- */
.mag-de-archive{padding-top:24px;padding-bottom:30px}
.mag-de-breadcrumb{color:#0096d6;font-size:16px;padding-bottom:20px}
.mag-de-breadcrumb a{color:#0096d6;text-decoration:none}
.mag-de-archive-title{margin-bottom:24px}
.mag-de-cat-desc{color:#685f5b;margin:0 0 26px;max-width:750px}
.mag-de-empty{color:#999;padding:40px 0}

/* ---------- DE Footer (hell) ---------- */
/* 4-Spalten-Footer (wie Original-WP) */
.mag-de-footer{background:#fff;margin-top:25px;border-top:1px solid #eee;padding:44px 0 0}
.mag-de-footer-cols{display:grid;grid-template-columns:1fr 1.1fr 1.1fr 1.5fr;gap:36px;padding-bottom:40px}
.mag-de-fcol-title{font-family:'Barlow Semi Condensed',sans-serif;font-size:20px;font-weight:600;color:#444;margin:0 0 16px}
.mag-de-flist{list-style:none;margin:0;padding:0}
.mag-de-flist li{margin-bottom:9px}
.mag-de-flist a{color:#685f5b;font-size:15px}
.mag-de-flist a:hover{color:#0096d6}
.mag-de-fcol--meta{padding-top:4px}
/* Kategorie-Kacheln mit Artikelzahl */
.mag-de-cat-tiles{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.mag-de-cat-tile{display:flex;justify-content:space-between;align-items:center;background:#f7f7f7;border:1px solid #eee;border-radius:4px;padding:8px 12px;color:#685f5b;font-size:14px}
.mag-de-cat-tile:hover{border-color:#0096d6;color:#0096d6;text-decoration:none}
.mag-de-cat-cnt{background:#ececec;color:#999;font-size:12px;border-radius:3px;padding:1px 7px;margin-left:8px}
/* Copyright-Leiste */
.mag-de-footer-bar{border-top:1px solid #eee;padding:18px 0;text-align:center}
.mag-de-copy{color:#999;font-size:13px;margin:0}
.mag-de-copy a{color:#0096d6}
@media(max-width:900px){.mag-de-footer-cols{grid-template-columns:1fr 1fr;gap:28px}}
@media(max-width:520px){.mag-de-footer-cols{grid-template-columns:1fr}.mag-de-cat-tiles{grid-template-columns:1fr}}

/* ---------- DE Responsive ---------- */
@media(max-width:1100px){
  .mag-de-top,.mag-de-nav-inner,.mag-de-container{padding-left:30px;padding-right:30px}
}
@media(max-width:979px){
  .mag-de-tagline{display:none}
}
@media(max-width:768px){
  .mag-de-slide-img{width:100%;flex-basis:100%;height:55%}
  /* mobil gestapelt: kein horizontaler Überlapp, Verlauf nach UNTEN ins Textpanel */
  .mag-de-slide-img::after{background:linear-gradient(to bottom, rgba(239,244,247,0) 60%, #eff4f7 100%)}
  .mag-de-slide{flex-direction:column}
  .mag-de-slide-body{padding:20px;margin-left:0}
  .mag-de-slide-title{font-size:22px;margin-bottom:16px}
  .mag-de-card{width:46%;margin:0 2% 30px 2%}
  .mag-de-card:nth-of-type(3n+3){margin-right:2%}
  .mag-de-entry-title{font-size:26px}
}
@media(max-width:640px){
  .mag-de-top{height:auto;flex-wrap:wrap;padding:10px 20px;justify-content:center}
  .mag-de-menu{justify-content:center}
  .mag-de-card{width:100%;margin:0 0 30px 0}
  /* Bug #288: statische Seiten (Impressum, Datenschutz ...). Ohne Seitenleiste, dafuer
   lesbare Textbreite - Rechtstexte sind lange Fliesstexte, die volle 1300px waeren
   muehsam zu lesen. */
.mag-de-page-wrap{max-width:820px;margin:0 auto;padding:10px 20px 50px}
.mag-de-page-wrap .mag-de-entry-title{margin-bottom:22px}
.mag-de-page-wrap .mag-de-entry-content h2{margin-top:32px}

/* Bug #284: drei Shop-Highlight-Banner unter dem Slider, Knopf darunter.
   Vorlage: altes Magazin - Foto mit kleinem hellen Textkaestchen mittig darauf. */
.mag-de-banners{display:grid;grid-template-columns:repeat(3,1fr);gap:24px 2%;margin:0 0 26px}
.mag-de-banner{position:relative;display:block;color:inherit}
.mag-de-banner:hover{text-decoration:none}
.mag-de-banner-img{display:block;width:100%;aspect-ratio:4/5;background:#eee center/cover no-repeat;
  border-radius:2px;transition:transform .15s}
.mag-de-banner:hover .mag-de-banner-img{transform:scale(1.01)}
.mag-de-banner-label{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  background:rgba(255,255,255,.92);color:#444;font-size:17px;padding:8px 16px;white-space:nowrap;max-width:88%;
  overflow:hidden;text-overflow:ellipsis}
.mag-de-banners-cta{text-align:center;margin:0 0 40px}
/* Der Knopf steht hier mittig und nicht rechts wie in der Kopfzeile. */
.mag-de-shop--cta{float:none;display:inline-block;margin:0}
@media(max-width:900px){ .mag-de-banners{grid-template-columns:1fr;gap:18px}
  .mag-de-banner-img{aspect-ratio:16/9} }

/* Bug #285: vierspaltiges Raster fuer "Neueste Beitraege" auf der Startseite.
   .mag-de-grid arbeitet mit festen Breiten + nth-of-type(3n) fuer drei Spalten;
   fuer vier waere das eine zweite Sonderregel. Hier stattdessen ein echtes Grid,
   die Kachel gibt ihre eigene Breite/Abstaende ab - dasselbe Muster wie bei
   .mag-author-detail-posts (Bug #293). */
.mag-de-grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:30px 2%;margin:0 0 40px}
.mag-de-grid4 .mag-de-card{width:auto;margin:0}
@media(max-width:900px){ .mag-de-grid4{grid-template-columns:repeat(2,1fr)} }
@media(max-width:520px){ .mag-de-grid4{grid-template-columns:repeat(2,1fr);gap:20px 3%} }

/* Bug #289: Material-/Thema-Uebersicht als runde Bildausschnitte mit zentriertem
   Namen darunter (Vorbild: altes WP-Magazin, 3 Spalten). Loest die alten
   Text-Kacheln ab. Kreis per aspect-ratio 1:1 + border-radius:50%, Foto per
   background center/cover - so bleibt jedes Seitenverhaeltnis mittig beschnitten. */
.mag-termtiles{display:grid;grid-template-columns:repeat(3,1fr);gap:34px 30px;margin:26px 0 10px}
/* Bug #286: dieselbe Kachel, auf der Startseite aber vier nebeneinander. */
.mag-termtiles--4{grid-template-columns:repeat(4,1fr);gap:26px 2%;margin:26px 0 22px}
.mag-termtiles--4 .mag-termtile-img{max-width:none}
.mag-termtile{display:flex;flex-direction:column;align-items:center;text-align:center;color:#444}
.mag-termtile:hover{text-decoration:none}
.mag-termtile-img{width:100%;max-width:300px;aspect-ratio:1/1;border-radius:50%;
  background:#f2f2f2 center/cover no-repeat;display:block;transition:transform .15s}
.mag-termtile:hover .mag-termtile-img{transform:scale(1.03)}
.mag-termtile-img--empty{background:#f2f2f2}
.mag-termtile-name{display:block;margin-top:14px;font-size:17px;color:#444}
.mag-termtile-cnt{color:#aaa;font-size:13px;margin-left:6px}
@media(max-width:900px){ .mag-termtiles{grid-template-columns:repeat(2,1fr);gap:26px 20px} }
@media(max-width:520px){ .mag-termtiles{grid-template-columns:repeat(2,1fr);gap:20px 14px}
  .mag-termtile-name{font-size:15px} }

.mag-de-slider{height:400px}
}

/* --- Newsletter- und Shop-Knopf (automatisch gesetzt, Isah 29.09.2026) ------
   Ersetzt die frueheren JPG-Grafiken aus dem WordPress-Upload. Rot und
   Seitenverhaeltnis sind aus den Originalen gemessen (#cf2733, 3,79:1), der
   gestrichelte Innenrahmen und der weisse Kreis mit Symbol ebenso.
   Vorteil gegenueber dem Bild: scharf auf jedem Bildschirm, uebersetzbar, und er
   haengt an keiner Datei, die beim Go-Live mit umziehen muesste. */
.mag-knopf{display:flex;align-items:center;gap:18px;max-width:560px;margin:34px auto;
  background:#c80f31;color:#fff;border-radius:10px;padding:18px 26px;text-decoration:none;
  box-shadow:inset 0 0 0 2px #c80f31, inset 0 0 0 3px #fff;
  position:relative;transition:background .15s ease}
.mag-knopf::after{content:'';position:absolute;inset:7px;border:2px dashed rgba(255,255,255,.85);
  border-radius:5px;pointer-events:none}
/* Farbe wie der Materialliste-Knopf (Original-Magazin #c80f31, Hover grau) - Isah 30.09.2026 */
.mag-knopf:hover{background:#685f5b;box-shadow:inset 0 0 0 2px #685f5b, inset 0 0 0 3px #fff}
/* Die Link-Farbe des jeweiligen Layouts (.mag-de-entry-content a bzw. .post-content a)
   hat hoehere Spezifitaet als .mag-knopf und faerbt sonst das <a> selbst ein (blau im
   neuen, gold im klassischen Layout). Sichtbar wird das erst, wenn jemand Text direkt
   in den Knopf schreibt - der Guertel kostet eine Zeile. */
.mag-de-entry-content .mag-knopf,.post-content .mag-knopf{color:#fff;text-decoration:none}
.mag-knopf:focus-visible{outline:3px solid #0096d6;outline-offset:3px}
.mag-knopf-icon{flex:0 0 auto;width:54px;height:54px;border-radius:50%;background:#fff;color:#c80f31;
  display:flex;align-items:center;justify-content:center}
.mag-knopf-icon svg{width:30px;height:30px}
.mag-knopf-text{display:flex;flex-direction:column;gap:3px;min-width:0}
.mag-knopf-titel{font-weight:700;font-size:19px;line-height:1.2;letter-spacing:.01em;color:#fff}
.mag-knopf-sub{font-size:14px;line-height:1.35;color:#fff;opacity:.95}
/* Der Shop-Knopf traegt nur eine Zeile - dann mittig statt linksbuendig */
.mag-knopf--shop .mag-knopf-text{justify-content:center}
/* Shop-Knopf nur so breit wie sein Inhalt und etwas flacher - ueber die volle Breite
   war er neben der Materialliste zu dominant (Isah 30.09.2026). Newsletter bleibt breit,
   er traegt zwei Zeilen Text. */
.mag-knopf--shop{width:fit-content;max-width:100%;gap:14px;padding:11px 26px 11px 12px;margin:26px auto}
.mag-knopf--shop .mag-knopf-icon{width:42px;height:42px}
.mag-knopf--shop .mag-knopf-icon svg{width:23px;height:23px}
.mag-knopf--shop .mag-knopf-titel{font-size:16px}
.mag-knopf--shop::after{inset:6px}
@media(max-width:560px){
  .mag-knopf{gap:13px;padding:14px 16px}
  .mag-knopf-icon{width:42px;height:42px}
  .mag-knopf-icon svg{width:23px;height:23px}
  .mag-knopf-titel{font-size:16px}
  .mag-knopf-sub{font-size:13px}
}

/* Passwortgeschuetzter Beitrag (Isah 30.09.2026) - Farben wie die Magazin-Knoepfe */
.mag-geschuetzt{max-width:520px;margin:30px auto;padding:26px 28px;background:#d6effc;border-radius:6px;text-align:center;color:#685f5b}
.mag-geschuetzt-text{margin:0 0 16px;font-size:16px;line-height:1.5}
.mag-geschuetzt-label{display:block;font-weight:600;margin:0 0 12px}
.mag-geschuetzt-input{display:block;width:100%;max-width:320px;margin:8px auto 0;padding:10px 12px;font-size:16px;border:1px solid #9cc9e0;border-radius:4px;box-sizing:border-box;background:#fff;color:#333}
.mag-geschuetzt-knopf{background:#c80f31;color:#fff;border:0;border-radius:4px;padding:10px 26px;font-size:15px;font-weight:600;letter-spacing:.03em;cursor:pointer}
.mag-geschuetzt-knopf:hover{background:#685f5b}
.mag-geschuetzt-fehler{color:#c80f31;font-weight:600;margin:12px 0 0}
.mag-geschuetzt-nl{margin:16px 0 0;font-size:14px}
.mag-de-entry-content .mag-geschuetzt-nl a,.post-content .mag-geschuetzt-nl a{color:#0096d6}
@media (max-width:600px){.mag-geschuetzt{padding:20px 16px}}

/* "Das koennte dich auch interessieren" als Karussell (Isah 01.10.2026), Optik nach WP-Original */
.mag-de-verwandt{margin:48px 0 0;padding-top:28px;border-top:1px solid #e5e5e5}
.mag-de-verwandt-kopf{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 24px}
.mag-de-verwandt-titel{color:#0096d6;font-size:26px;font-weight:300;text-transform:uppercase;letter-spacing:.02em;margin:0;line-height:1.2}
.mag-de-verwandt-pfeile{display:flex;gap:8px;flex:0 0 auto}
.mag-de-verwandt-pfeil{width:40px;height:40px;border:1px solid #ccc;border-radius:50%;background:#fff;color:#685f5b;font-size:24px;line-height:1;cursor:pointer;padding:0 0 3px}
.mag-de-verwandt-pfeil:hover:not(:disabled){border-color:#0096d6;color:#0096d6}
.mag-de-verwandt-pfeil:disabled{opacity:.3;cursor:default}
.mag-de-verwandt-spur{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 48px) / 3);gap:24px;
  overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.mag-de-verwandt-spur::-webkit-scrollbar{display:none}
.mag-de-verwandt-spur .mag-de-card{width:auto;margin:0;border:1px solid #e5e5e5;padding:10px;background:#fff;scroll-snap-align:start}
.mag-de-verwandt-spur .mag-de-card-title{color:#685f5b;font-weight:400;text-transform:uppercase;text-align:center;font-size:15px;margin-top:12px}
@media (max-width:700px){
  .mag-de-verwandt-titel{font-size:21px}
  .mag-de-verwandt-spur{grid-auto-columns:calc((100% - 14px) / 2);gap:14px}
}

/* Seitenzahlen + Kategorie-Text unter der Liste, wie im WP-Original (Isah 01.10.2026) */
.mag-de-seiten{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:10px 0 40px}
.mag-de-seite{min-width:40px;height:40px;padding:0 8px;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;
  border:1px solid #ddd;border-radius:4px;color:#685f5b;text-decoration:none;font-size:15px;background:#fff}
a.mag-de-seite:hover{border-color:#0096d6;color:#0096d6}
.mag-de-seite--aktiv{background:#0096d6;border-color:#0096d6;color:#fff;font-weight:600}
.mag-de-seite--luecke{border:0;min-width:20px;background:none}
.mag-de-seite--pfeil{font-size:22px;padding-bottom:3px}
.mag-de-cat-text{max-width:900px;margin:10px auto 50px;padding-top:30px;border-top:1px solid #e5e5e5;color:#685f5b;font-size:16px;line-height:1.7}
.mag-de-cat-text h2{color:#685f5b;font-size:24px;font-weight:600;text-transform:uppercase;margin:0 0 14px}
.mag-de-cat-text h3{color:#685f5b;font-size:19px;font-weight:600;margin:26px 0 10px}
.mag-de-cat-text p{margin:0 0 14px}
.mag-de-cat-text a{color:#0096d6}
/* Materiallisten-Knoepfe (06.10.2026): je Variante ein Knopf nebeneinander; vor der
   Freigabe ein Platzhalter (nur Vorschau), der Link entsteht bei der Freigabe. */
.mag-materiallisten{display:flex;flex-wrap:wrap;gap:4px 14px}
.mag-materiallisten .mag-cta{margin:.4em 0}
.mag-ml-wartet{opacity:.55;cursor:help}

/* ---------- DE Header: Logo wie im WordPress-Original (Isah 14.10.2026) ----------
   WP (Theme snaply/style.css): .header-logo{position:absolute;top:-75px} + img 160px,
   .top-navbar 70px hoch, blaue Leiste 70px, Menue beginnt links UNTER dem Logo.
   Vorher stand bei uns der ganze Kreis (130px) im Fluss, ragte tief in eine 46px-Leiste
   und schob das Menue 175px nach rechts. Nur Desktop - mobil (Burger) bleibt wie bisher.
   Steht bewusst AM ENDE: muss die Grundregeln oben (min-height:46px, padding-left:175px)
   gleicher Spezifitaet ueberstimmen. */
@media(min-width:901px){
  .mag-de-logo{position:absolute;top:-75px;left:80px;z-index:5}
  .mag-de-logo img{width:160px;height:auto}
  .mag-de-tagline{margin-left:170px}
  .mag-de-shop{margin-left:auto}
  .mag-de-nav-inner{min-height:70px}
  .mag-de-menu{padding-left:0}
}
/* Unter 1100px ist der Seitenrand 30px statt 80px (Regel weiter oben) */
@media(min-width:901px) and (max-width:1100px){
  .mag-de-logo{left:30px}
}

/* ---------- DE Header MOBIL wie WordPress-Original (Isah 14.10.2026) ----------
   WP mobil: Logo wie am Desktop (oben angeschnitten, links), Shop-Knopf rechts, blaue
   Leiste 70px mit mittigem "MENU" und Suche rechts. Vorher lag bei uns um 768px der
   Logo-Kreis UEBER Burger und Suche (kaum bedienbar). "MENUE" als ::after am Burger,
   damit es auch auf schon gebauten Seiten ohne Neubau erscheint (FR: html[lang=fr]).
   Geprueft 360/390/480/640/768/900px + aufgeklappt. ACHTUNG beim Nachpruefen: Chrome
   headless rendert MINDESTENS 500px breit - schmalere Breiten nur im iframe messen. */
@media(max-width:900px){
  .mag-de-top{height:70px;flex-wrap:nowrap;justify-content:flex-end;padding:0 30px;position:relative}
  .mag-de-logo{position:absolute;top:-75px;left:30px;z-index:5}
  .mag-de-logo img{width:160px;height:auto}
  .mag-de-shop{margin:0 0 0 auto}
  .mag-de-nav-inner{position:relative;min-height:70px;justify-content:center;flex-wrap:wrap}
  .mag-de-burger{order:1;flex-direction:column;width:auto;height:70px;padding:0 0 0 0;position:relative;
    align-items:flex-start;justify-content:center}
  .mag-de-burger span{width:22px}
  .mag-de-burger::after{content:"Menü";position:absolute;left:32px;top:50%;transform:translateY(-50%);
    color:#fff;font-family:'Lato',sans-serif;font-size:16px;text-transform:uppercase;letter-spacing:.5px;line-height:1}
  html[lang="fr"] .mag-de-burger::after{content:"Menu"}
  .mag-de-burger{margin-right:62px}
  .mag-de-search{position:absolute;right:16px;top:17px;margin:0}
}
@media(max-width:640px){
  .mag-de-top{padding:0 16px}
  .mag-de-logo{left:16px;top:-62px}
  .mag-de-logo img{width:132px}
  .mag-de-shop{font-size:13px;padding:6px 10px 7px;box-shadow:0 0 0 3px #c80f31}
}

/* ---------- Video-Vorschau: Hinweis vor dem Abspielen (14.10.2026) ----------
   Vor dem Klick geht keine Anfrage an YouTube/Vimeo (Standbild = eigene Kopie auf
   blog.snaply.de, Vimeo ohne Bild). Der Hinweis steht im Stylesheet statt im HTML,
   weil die YouTube-Vorschau beim Speichern sprachneutral in content_html landet. */
.mag-video--vorschau[data-yt] .mag-video-link::after,
.mag-video--vimeo .mag-video-link::after{content:"Beim Abspielen werden Daten an YouTube übertragen.";position:absolute;left:0;right:0;bottom:0;
  padding:6px 10px;font:12px/1.35 'Lato',sans-serif;color:#fff;background:rgba(0,0,0,.6);text-align:center}
.mag-video--vimeo .mag-video-link::after{content:"Beim Abspielen werden Daten an Vimeo übertragen."}
html[lang="fr"] .mag-video--vorschau[data-yt] .mag-video-link::after{content:"En lançant la vidéo, des données sont transmises à YouTube."}
html[lang="fr"] .mag-video--vimeo .mag-video-link::after{content:"En lançant la vidéo, des données sont transmises à Vimeo."}

/* ---------- DE Menue mobil: eigener Aufklapp-Pfeil (Isah 14.10.2026) ----------
   Ein Elternpunkt mit eigener Seite ("Schnittmuster Freebies") liess sich auf dem
   Handy nicht aufklappen - der Tipp oeffnete die Seite. Jetzt: Name = Seite,
   Pfeil rechts = aufklappen. Am Desktop unsichtbar (dort oeffnet Hover). */
.mag-de-subtoggle{display:none}
@media(max-width:900px){
  .mag-de-mi.has-sub{position:relative}
  .mag-de-mi.has-sub > a .mag-de-arrow{display:none}
  .mag-de-nav .mag-de-menu .mag-de-mi.has-sub > a{padding-right:64px}
  .mag-de-subtoggle{display:block;position:absolute;right:0;top:0;width:56px;height:46px;margin:0;padding:0;
    background:none;border:0;border-left:1px solid rgba(255,255,255,.18);cursor:pointer}
  .mag-de-subtoggle::before{content:'';position:absolute;left:50%;top:50%;margin:-3px 0 0 -6px;
    border:6px solid transparent;border-top-color:#fff;border-bottom:0;transition:transform .2s}
  .mag-de-mi.sub-open > .mag-de-subtoggle::before{transform:rotate(180deg)}
  .mag-de-subtoggle:focus-visible{outline:2px solid #fff;outline-offset:-4px}
}
