/* ============================================================
   SVHArchiv — Award-Design-Layer  (Handbuch Kap. 8 erweitert)
   Additive Schicht über die bestehenden Elementor-Templates.
   Lädt nach Elementor → Overrides gewinnen im Cascade.
   Entfernen = functions.php-Enqueue auskommentieren (reversibel).
   ============================================================ */

:root{
  /* SVH-Style: kanonische Markenfarben (Kap. 8.3) */
  --svh-blau:#106EB5;
  --svh-orange:#FF7F50;
  --svh-gruen:#66CC99;
  /* Erweiterung (genehmigt): Tiefe + Archivpapier */
  --svh-tinte:#0A3A5C;
  --svh-tinte-tief:#072A43;
  --svh-papier:#EDEEF0;
  --svh-papier-warm:#E4E6EA;
  --svh-ink:#1C2326;
  --svh-ink-weich:#465058;
  --svh-linie:#C9D2DA;
  --svh-weiss:#FBFCFD;

  --svh-serif:"Fraunces",Georgia,serif;
  --svh-ui:"Montserrat",system-ui,sans-serif;
  --svh-lese:"Open Sans",system-ui,sans-serif;

  --svh-container:1200px;
  --svh-schatten:0 5px 15px rgba(10,58,92,.10);
  --svh-schatten-tief:0 18px 50px rgba(10,58,92,.18);
}

/* ---- Site-weite Grundtöne ---------------------------------- */
body{
  background:var(--svh-papier);
  color:var(--svh-ink);
}
body, .elementor-widget-text-editor, .elementor-widget-theme-post-content,
.elementor p{ font-family:var(--svh-lese); }

/* Editoriale Display-Typografie: Fraunces für die großen Überschriften */
h1.elementor-heading-title,
h2.elementor-heading-title,
.elementor-widget-theme-post-title h1,
.svh-home h1, .svh-home h2{
  font-family:var(--svh-serif);
  font-weight:380;
  letter-spacing:-.015em;
  color:var(--svh-tinte);
}
h3.elementor-heading-title{ font-family:var(--svh-serif); font-weight:500; color:var(--svh-tinte); }

/* UI/Navigation/Buttons bleiben Montserrat (Markenstimme) */
.elementor-nav-menu, .elementor-button, .elementor-widget-button,
.svh-eyebrow, .svh-ui{ font-family:var(--svh-ui); }

/* sanftes Scroll-Verhalten + Fokus sichtbar (Quality-Floor) */
html{ scroll-behavior:smooth; }
a:focus-visible, button:focus-visible, .elementor-button:focus-visible{
  outline:3px solid var(--svh-orange); outline-offset:2px;
}

/* ---- Karten site-weit veredeln (Archiv-/Loop-/Portfolio) --- */
.e-loop-item, .elementor-post, .elementor-portfolio-item{
  border-radius:12px; overflow:hidden;
  background:var(--svh-weiss);
  border:1px solid var(--svh-linie);
  box-shadow:var(--svh-schatten);
  transition:transform .3s ease, box-shadow .3s ease;
}
.e-loop-item:hover, .elementor-post:hover, .elementor-portfolio-item:hover{
  transform:translateY(-5px); box-shadow:var(--svh-schatten-tief);
}
.e-loop-item .elementor-heading-title,
.elementor-post__title{ font-family:var(--svh-serif); }

/* ============================================================
   DECADE SPINE — globale Signatur (fixiert im linken Gutter)
   Nur ab sehr breiten Viewports, damit nie Inhalt überlappt.
   Markup wird per svh-design.js injiziert.
   ============================================================ */
.svh-spine{ display:none; }
@media (min-width:1400px){
  .svh-spine{
    display:flex; flex-direction:column; align-items:center;
    position:fixed; left:0; top:0; bottom:0; width:84px; z-index:30;
    padding:150px 0 60px; pointer-events:none;
  }
  .svh-spine .rail{ position:absolute; left:50%; top:150px; bottom:60px; width:2px; transform:translateX(-50%); background:var(--svh-linie); }
  .svh-spine .rail::after{ content:""; position:absolute; inset:0;
    background:linear-gradient(var(--svh-tinte-tief),var(--svh-blau));
    transform:scaleY(var(--draw,0)); transform-origin:top; transition:transform 1.4s cubic-bezier(.16,1,.3,1); }
  .svh-spine ul{ list-style:none; margin:0; padding:0; position:relative; display:flex; flex-direction:column; justify-content:space-between; height:100%; }
  .svh-spine li{ pointer-events:auto; cursor:pointer; display:flex; align-items:center; gap:9px;
    font-family:var(--svh-ui); font-weight:600; font-size:11.5px; letter-spacing:.04em; color:var(--svh-ink-weich);
    transition:color .25s, transform .25s; background:var(--svh-papier); padding:3px 0; }
  .svh-spine li .dot{ width:9px; height:9px; border-radius:50%; background:var(--svh-weiss); border:2px solid var(--svh-linie); transition:all .25s; }
  .svh-spine li.active{ color:var(--svh-blau); transform:translateX(3px); }
  .svh-spine li.active .dot{ background:var(--svh-orange); border-color:var(--svh-orange); box-shadow:0 0 0 5px rgba(255,127,80,.18); }
}

/* ============================================================
   STARTSEITE — volles Prototyp-Design (.svh-home)
   ============================================================ */
.svh-home{ background:var(--svh-papier); }
/* Bild-Wrapper (picture vom Image-Optimizer) + jegliche Rahmen/Outlines neutralisieren */
.svh-paper picture, .svh-card .thumb picture{ display:contents; }
.svh-paper img, .svh-card img{ border:0 !important; outline:0 !important; box-shadow:none !important; }
.svh-home .wrap{ max-width:var(--svh-container); margin:0 auto; padding:0 32px; }
.svh-home .eyebrow{ font-family:var(--svh-ui); font-size:13px; font-weight:600; text-transform:uppercase; letter-spacing:.16em; color:var(--svh-blau); }
.svh-home .num{ font-variant-numeric:tabular-nums; letter-spacing:.04em; }
.svh-home a{ text-decoration:none; color:inherit; }

/* HERO */
.svh-hero{ position:relative; overflow:hidden;
  background:radial-gradient(900px 500px at 78% -10%,rgba(16,110,181,.10),transparent 60%),var(--svh-papier);
  padding:74px 0 96px; }
.svh-hero::before{ content:""; position:absolute; inset:0;
  background-image:linear-gradient(var(--svh-linie) 1px,transparent 1px),linear-gradient(90deg,var(--svh-linie) 1px,transparent 1px);
  background-size:48px 48px; opacity:.20; pointer-events:none;
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 30%,#000 70%,transparent);
          mask-image:linear-gradient(180deg,transparent,#000 30%,#000 70%,transparent); }
.svh-hero .wrap{ position:relative; display:grid; grid-template-columns:1.05fr .95fr; gap:64px; align-items:center; }
.svh-hero h1{ font-family:var(--svh-serif); font-weight:340; font-size:clamp(40px,5.2vw,66px); line-height:1.02; letter-spacing:-.015em; color:var(--svh-tinte); margin:18px 0 22px; }
.svh-hero h1 em{ font-style:italic; color:var(--svh-blau); }
.svh-hero .lede{ font-size:19px; line-height:1.6; max-width:34ch; color:var(--svh-ink-weich); margin-bottom:30px; }

.svh-stats{ display:flex; align-items:flex-start; gap:0; margin:0 0 32px; }
.svh-stats .stat{ display:flex; flex-direction:column; }
.svh-stats b{ font-family:var(--svh-serif); font-weight:600; font-size:34px; line-height:1; color:var(--svh-tinte); }
.svh-stats span{ font-family:var(--svh-ui); font-weight:500; font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--svh-ink-weich); margin-top:6px; }
.svh-stats .sep{ width:1px; align-self:stretch; background:var(--svh-linie); margin:0 26px; }

.svh-cta{ display:flex; gap:16px; flex-wrap:wrap; align-items:center; }
.svh-btn{ font-family:var(--svh-ui); font-weight:600; font-size:15px; letter-spacing:.02em; padding:15px 28px; border-radius:10px; cursor:pointer; border:none; display:inline-flex; align-items:center; gap:10px; transition:transform .3s ease, box-shadow .3s ease, background .2s, color .2s, border-color .2s; }
.svh-btn-primary{ background:var(--svh-orange); color:#fff; box-shadow:0 8px 22px rgba(255,127,80,.32); }
.svh-btn-primary:hover{ transform:translateY(-4px); box-shadow:0 16px 34px rgba(255,127,80,.42); color:#fff; }
.svh-btn-ghost{ background:transparent; color:var(--svh-tinte); border:1.5px solid var(--svh-linie); }
.svh-btn-ghost:hover{ border-color:var(--svh-blau); color:var(--svh-blau); transform:translateY(-4px); }

/* Fundstück der Woche (Signatur) */
.svh-fund{ position:relative; }
.svh-fund .tag{ position:absolute; top:-14px; left:24px; z-index:3; background:var(--svh-tinte); color:#fff; font-family:var(--svh-ui); font-weight:600; font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; padding:8px 16px; border-radius:6px; box-shadow:var(--svh-schatten); }
.svh-fund .year-stamp{ position:absolute; right:-14px; bottom:-30px; z-index:2; font-family:var(--svh-serif); font-weight:600; font-size:clamp(86px,9vw,128px); line-height:.8; color:var(--svh-tinte); opacity:.10; letter-spacing:-.03em; pointer-events:none; }
.svh-paper{ position:relative; background:var(--svh-weiss); border:1px solid var(--svh-linie); border-radius:14px; box-shadow:var(--svh-schatten-tief); padding:18px 18px 22px; transform:rotate(-1.1deg); transition:transform .4s cubic-bezier(.16,1,.3,1); }
.svh-fund:hover .svh-paper{ transform:rotate(0) translateY(-4px); }
.svh-paper .scan{ position:relative; border-radius:8px; overflow:hidden; aspect-ratio:4/3; background:linear-gradient(135deg,#cfd6dd,#8c99a6); }
.svh-paper .scan img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:sepia(.12) contrast(1.03); border:0 !important; box-shadow:none !important; max-width:none; border-radius:0; }
.svh-paper .scan .halftone{ position:absolute; inset:0; z-index:2; background-image:radial-gradient(rgba(10,58,92,.5) 1.1px,transparent 1.3px); background-size:6px 6px; mix-blend-mode:multiply; opacity:.30; pointer-events:none; }
.svh-paper .scan .crease{ position:absolute; left:38%; top:0; bottom:0; width:1px; z-index:3; background:rgba(255,255,255,.5); box-shadow:1px 0 3px rgba(10,58,92,.18); }
.svh-paper .meta{ display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-top:16px; }
.svh-paper .acc{ font-family:var(--svh-ui); font-weight:600; font-size:12.5px; color:var(--svh-blau); background:rgba(16,110,181,.08); padding:4px 9px; border-radius:5px; font-variant-numeric:tabular-nums; }
.svh-paper .src{ font-family:var(--svh-ui); font-size:11px; color:var(--svh-ink-weich); text-align:right; letter-spacing:.04em; text-transform:uppercase; }
.svh-paper h3{ font-family:var(--svh-serif); font-weight:500; font-size:23px; line-height:1.15; color:var(--svh-tinte); margin:6px 0 0; }
.svh-paper .tomb{ margin-top:8px; font-family:var(--svh-ui); font-size:12.5px; font-weight:500; color:var(--svh-ink-weich); letter-spacing:.04em; }
.svh-paper .tomb b{ color:var(--svh-blau); }

/* SEKTIONEN */
.svh-section{ padding:90px 0; }
.svh-section.band{ background:var(--svh-papier-warm); border-top:1px solid var(--svh-linie); border-bottom:1px solid var(--svh-linie); }
.svh-sechead{ display:flex; justify-content:space-between; align-items:flex-end; gap:20px; flex-wrap:wrap; margin-bottom:38px; }
.svh-sechead h2{ font-family:var(--svh-serif); font-weight:380; font-size:clamp(30px,3.4vw,40px); color:var(--svh-tinte); line-height:1.05; letter-spacing:-.01em; margin:0; }
.svh-sechead .link{ font-family:var(--svh-ui); font-weight:600; font-size:14px; color:var(--svh-blau); display:inline-flex; gap:6px; align-items:center; transition:gap .2s; }
.svh-sechead .link:hover{ gap:11px; }

/* Sparten-Kacheln */
.svh-sparten{ display:grid; grid-template-columns:repeat(5,1fr); gap:18px; }
.svh-sparte{ position:relative; border-radius:14px; overflow:hidden; aspect-ratio:3/4; padding:22px; color:#fff; display:flex; flex-direction:column; justify-content:flex-end; box-shadow:var(--svh-schatten); transition:transform .35s cubic-bezier(.16,1,.3,1), box-shadow .35s;
  background:linear-gradient(180deg,rgba(10,58,92,.05),rgba(10,58,92,.80)),var(--svh-blau); }
.svh-sparte:nth-child(2){ background:linear-gradient(180deg,rgba(10,58,92,.05),rgba(10,58,92,.82)),#1577c0; }
.svh-sparte:nth-child(3){ background:linear-gradient(180deg,rgba(10,58,92,.05),rgba(10,58,92,.83)),#0f6aad; }
.svh-sparte:nth-child(4){ background:linear-gradient(180deg,rgba(10,58,92,.06),rgba(10,58,92,.85)),#0c5e9b; }
.svh-sparte:nth-child(5){ background:linear-gradient(180deg,rgba(10,58,92,.06),rgba(10,58,92,.87)),#0a3a5c; }
.svh-sparte .ic{ margin-bottom:auto; line-height:0; }
.svh-sparte .ic svg{ width:34px; height:34px; color:#fff; opacity:.92; transition:transform .35s cubic-bezier(.16,1,.3,1); }
.svh-sparte:hover .ic svg{ transform:translateY(-2px) scale(1.06); opacity:1; }
.svh-sparte h4{ font-family:var(--svh-ui); font-weight:700; font-size:17px; margin:0; color:#fff; }
.svh-sparte .cnt{ font-family:var(--svh-ui); font-size:12px; letter-spacing:.06em; color:#fff; opacity:.85; margin-top:3px; }
.svh-sparte::after{ content:"→"; position:absolute; top:20px; right:20px; font-size:18px; opacity:0; transform:translateX(-6px); transition:all .3s; }
.svh-sparte:hover{ transform:translateY(-8px); box-shadow:var(--svh-schatten-tief); }
.svh-sparte:hover::after{ opacity:.9; transform:translateX(0); }

/* Portfolio-Grid (Karten) */
.svh-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.svh-card{ background:var(--svh-weiss); border:1px solid var(--svh-linie); border-radius:12px; overflow:hidden; box-shadow:var(--svh-schatten); transition:transform .3s ease, box-shadow .3s ease; display:flex; flex-direction:column; }
.svh-card:hover{ transform:translateY(-5px); box-shadow:var(--svh-schatten-tief); }
.svh-card .thumb{ aspect-ratio:4/3; position:relative; overflow:hidden; background:linear-gradient(135deg,#dfe4ea,#c2ccd6); display:grid; place-items:center; color:var(--svh-tinte); font-size:40px; }
.svh-card .thumb img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .5s ease; border:0 !important; box-shadow:none !important; max-width:none; border-radius:0; }
.svh-card:hover .thumb img{ transform:scale(1.05); }
.svh-card .body{ padding:16px 18px 20px; display:flex; flex-direction:column; flex:1; }
.svh-card .acc{ font-family:var(--svh-ui); font-weight:600; font-size:12px; color:var(--svh-ink-weich); letter-spacing:.04em; font-variant-numeric:tabular-nums; transition:color .25s; }
.svh-card:hover .acc{ color:var(--svh-orange); }
.svh-card h3{ font-family:var(--svh-serif); font-weight:500; font-size:20px; line-height:1.15; color:var(--svh-tinte); margin:6px 0 12px; }
.svh-card .tomb{ margin-top:auto; padding-top:10px; border-top:1px solid var(--svh-linie); font-family:var(--svh-ui); font-size:12px; font-weight:500; color:var(--svh-ink-weich); letter-spacing:.03em; display:flex; gap:8px; flex-wrap:wrap; }
.svh-card .tomb span{ position:relative; padding-right:8px; }
.svh-card .tomb span:not(:last-child)::after{ content:"·"; position:absolute; right:0; color:var(--svh-linie); }
.svh-card .tomb b{ color:var(--svh-blau); font-weight:600; }

/* ============================================================
   ARCHIV-LISTE — Elementor Posts (classic skin) auf Award-Niveau
   Hebt die Loop-Karten der Archiv-/Sparten-Ansichten auf das
   Design der Startseiten-Karte (.svh-card). Rein additiv/CSS —
   kein Umbau des Elementor-Templates.
   ============================================================ */
.elementor-widget-posts .elementor-post{
  display:flex; flex-direction:column; padding:0;
  background:var(--svh-weiss); border:1px solid var(--svh-linie);
  border-radius:12px; overflow:hidden; box-shadow:var(--svh-schatten);
}
/* Thumbnail: einheitliches 4:3, Cover-Crop statt verzerrter Skalierung */
.elementor-widget-posts .elementor-post__thumbnail__link{ display:block; margin:0; }
.elementor-widget-posts .elementor-post__thumbnail{
  aspect-ratio:4/3; height:auto; overflow:hidden;
  background:linear-gradient(135deg,#dfe4ea,#c2ccd6);
}
.elementor-widget-posts .elementor-post__thumbnail picture{ display:block; width:100%; height:100%; }
.elementor-widget-posts .elementor-post__thumbnail img{
  width:100%; height:100%; object-fit:cover; display:block; max-width:none; border-radius:0;
  border:0 !important; box-shadow:none !important; transition:transform .5s ease;
}
.elementor-widget-posts .elementor-post:hover .elementor-post__thumbnail img{ transform:scale(1.05); }
/* Textblock: gleichmäßiges Padding, Read-more unten bündig */
.elementor-widget-posts .elementor-post__text{
  padding:16px 18px 20px; display:flex; flex-direction:column; flex:1;
}
.elementor-widget-posts .elementor-post__title{ margin:0 0 8px; }
.elementor-widget-posts .elementor-post__title a{
  font-family:var(--svh-serif); font-weight:500; font-size:20px; line-height:1.15;
  color:var(--svh-tinte); text-decoration:none; transition:color .2s;
}
.elementor-widget-posts .elementor-post__title a:hover{ color:var(--svh-blau); }
/* Meta ausblenden: Kommentar-Zähler + Publish-Datum (= Seed-Datum, irreführend;
   das inhaltliche Archiv-Datum lebt im ACF-Feld svh_datum, nicht hier). */
.elementor-widget-posts .elementor-post__meta-data{ display:none; }
.elementor-widget-posts .elementor-post__excerpt p{
  font-family:var(--svh-lese); font-size:14px; line-height:1.55; color:var(--svh-ink-weich); margin:0;
}
.elementor-widget-posts .elementor-post__read-more{
  margin-top:auto; padding-top:14px; align-self:flex-start;
  font-family:var(--svh-ui); font-weight:600; font-size:14px; color:var(--svh-blau);
  text-decoration:none; display:inline-flex; align-items:center; gap:6px;
  transition:gap .2s, color .2s;
}
.elementor-widget-posts .elementor-post__read-more:hover{ gap:11px; color:var(--svh-orange); }

/* ============================================================
   SINGLE-EINTRAG (alle SVH-CPTs) — Detailseite auf Award-Niveau
   Scope: body[class*="single-svh_"]  (archiv/zeitung/ausstellung/…)
   Rein CSS über das Elementor-Single-Template.
   ============================================================ */
/* Titelbild als gerahmte Archiv-Platte.
   Das Feature-Image-Widget wurde von `theme-post-featured-image` auf ein
   `image`-Widget mit dynamischem `post-featured-image`-Tag umgestellt
   (behebt den Platzhalter-Bug). Hero = einziges reines Image-Widget im
   Single-Body → Logo (theme-site-logo) & Galerie ausgeschlossen; das runde
   Teamfoto (single-svh_team) bewusst ausgenommen. */
body[class*="single-svh_"]:not(.single-svh_team) .elementor-widget-image:not(.elementor-widget-theme-site-logo) img{
  border-radius:14px; box-shadow:var(--svh-schatten-tief); display:block;
}
/* Titel */
body[class*="single-svh_"] h1.elementor-heading-title{
  font-size:clamp(30px,4vw,48px); line-height:1.05; margin-top:26px;
  color:var(--svh-tinte);
}
/* Taxonomie-Chips statt oranger FA-Tag-Links */
body[class*="single-svh_"] .elementor-widget-post-info .elementor-icon-list-icon{ display:none; }
body[class*="single-svh_"] .elementor-widget-post-info .elementor-icon-list-items{ gap:8px; flex-wrap:wrap; }
body[class*="single-svh_"] .elementor-post-info__terms-list-item{
  display:inline-block; font-family:var(--svh-ui); font-weight:600; font-size:12.5px;
  letter-spacing:.02em; color:var(--svh-blau); background:rgba(16,110,181,.08);
  padding:5px 11px; border-radius:6px; text-decoration:none; transition:background .2s, color .2s;
}
body[class*="single-svh_"] .elementor-post-info__terms-list-item:hover{ background:var(--svh-blau); color:#fff; }
/* Meta-Zeilen: Label (col-25) + Wert (col-75) als „Tombstone"-Definition */
body[class*="single-svh_"] .elementor-col-25 p.elementor-heading-title{
  font-family:var(--svh-ui); font-weight:600; font-size:12px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--svh-ink-weich); margin-top:8px;
}
body[class*="single-svh_"] .elementor-col-75 h2.elementor-heading-title{
  font-family:var(--svh-serif); font-weight:500; font-size:22px; line-height:1.25;
  color:var(--svh-tinte); letter-spacing:-.005em;
}
/* Fließtext: angenehme Lesebreite */
body[class*="single-svh_"] .elementor-widget-theme-post-content{
  font-family:var(--svh-lese); font-size:17px; line-height:1.7; color:var(--svh-ink); max-width:68ch;
}
/* „Galerie"-Sektionsüberschrift (col-100 h2) */
body[class*="single-svh_"] .elementor-col-100 h2.elementor-heading-title{
  font-family:var(--svh-serif); font-weight:400; color:var(--svh-tinte);
  padding-top:14px; border-top:1px solid var(--svh-linie); margin-top:8px;
}
/* Galerie-Bilder: gerahmt, Hover-Zoom */
body[class*="single-svh_"] .elementor-image-gallery .gallery-item{ margin:0 !important; padding:6px !important; }
body[class*="single-svh_"] .elementor-image-gallery .gallery-item img{
  border:0 !important; border-radius:8px; box-shadow:var(--svh-schatten);
  transition:transform .35s ease, box-shadow .35s ease;
}
body[class*="single-svh_"] .elementor-image-gallery .gallery-item img:hover{
  transform:translateY(-3px) scale(1.02); box-shadow:var(--svh-schatten-tief);
}

/* ============================================================
   DECADE-SPINE nie über Inhalt: Archiv-Liste (full-width) ab
   1400px links einrücken, damit die fixe Spine frei bleibt.
   (Single-/Boxed-Sektionen zentrieren bereits mit genug Rand.)
   ============================================================ */
@media (min-width:1400px){
  .elementor-location-archive{ padding-left:76px; }
}

/* reveal-Animation */
.svh-reveal{ opacity:0; transform:translateY(12px); transition:opacity .7s ease, transform .7s cubic-bezier(.16,1,.3,1); }
.svh-reveal.in{ opacity:1; transform:none; }

/* ============================================================
   STEP 1 — ARCHIV-FILTERLEISTE (Plugin-Shortcode) auf Award-Niveau
   Überschreibt die alte Basispaletten-CSS aus class-shortcodes.php
   (lädt bei Prio 10 inline; dieses Stylesheet bei 100 → gewinnt).
   ============================================================ */
.svh-archive-filter{
  background:var(--svh-weiss); border:1px solid var(--svh-linie);
  border-radius:12px; box-shadow:var(--svh-schatten); padding:18px 20px; gap:16px;
}
.svh-archive-filter label{
  font-family:var(--svh-ui); font-weight:600; font-size:11px; letter-spacing:.1em;
  text-transform:uppercase; color:var(--svh-ink-weich); margin-bottom:6px;
}
.svh-archive-filter select{
  border:1px solid var(--svh-linie); border-radius:8px; padding:9px 12px;
  font-family:var(--svh-ui); font-size:14px; color:var(--svh-ink); background:var(--svh-weiss);
  transition:border-color .2s, box-shadow .2s;
}
.svh-archive-filter select:focus{ border-color:var(--svh-blau); box-shadow:0 0 0 3px rgba(16,110,181,.15); outline:none; }
.svh-archive-filter .actions{ gap:10px; }
.svh-archive-filter button, .svh-archive-filter a.reset{
  font-family:var(--svh-ui); font-weight:600; font-size:13px; letter-spacing:.02em;
  border-radius:9px; padding:10px 20px;
  transition:transform .25s ease, box-shadow .25s ease, background .2s, color .2s;
}
.svh-archive-filter button{ background:var(--svh-orange); color:#fff; box-shadow:0 6px 16px rgba(255,127,80,.28); }
.svh-archive-filter button:hover{ transform:translateY(-2px); box-shadow:0 10px 22px rgba(255,127,80,.36); }
.svh-archive-filter a.reset{ background:var(--svh-papier-warm); color:var(--svh-tinte); border:1px solid var(--svh-linie); }
.svh-archive-filter a.reset:hover{ background:var(--svh-linie); color:var(--svh-tinte-tief); }

/* Elementor-Archivtitel („Archiv", „Zeitungsperlen" …): Elementor-Widget-CSS
   färbt/setzt sie blau-serifenlos (Specificity 0,2,0). Location-Scope 0,2,1
   schlägt das → Fraunces + Tinte, ohne !important. */
.elementor-location-archive h1.elementor-heading-title,
.elementor-location-archive h2.elementor-heading-title{
  font-family:var(--svh-serif) !important; font-weight:380; color:var(--svh-tinte) !important; letter-spacing:-.01em;
}

/* ============================================================
   STEP 2–4 — PARENT-THEME-FLÄCHEN (Football Club) auf Award-Niveau
   Gilt für alles ohne Elementor-Template: Suche, Konto-/Statik-/
   Rechtstexte, 404 und die Archive svh_team / svh_chronik /
   svh_changes. Scope: .content-area (existiert NUR dort — nie auf
   Home / Elementor-Single / -Archive; verifiziert).
   ============================================================ */
/* Volle Breite: Football Club reserviert 62% für eine (leere)
   rechte Sidebar (framework.css). Zurückholen + zentrieren. */
.content-area.content-area-right-sidebar{
  width:100%; left:auto; float:none;
  max-width:var(--svh-container); margin-left:auto; margin-right:auto;
  padding:8px 32px 64px;
}
@media (min-width:1400px){ .content-area.content-area-right-sidebar{ padding-left:96px; } }

/* Überschriften im klassischen Seiteninhalt (z. B. „Über uns", Rechtstexte)
   ebenfalls auf Fraunces/Tinte — der Heading-Sweep greift sonst nur bei
   Elementor-/Theme-Titeln, nicht bei <h2>/<h3> im .entry-content. */
.content-area .entry-content h2,
.content-area .entry-content h3{
  font-family:var(--svh-serif); font-weight:500; color:var(--svh-tinte);
  letter-spacing:-.005em; margin:1.4em 0 .5em;
}

/* Google-Maps-Einbettung (Über uns / Kontakt): gerahmte, responsive Karte */
.svh-map{
  position:relative; width:100%; max-width:900px; aspect-ratio:16/9;
  margin:10px 0 6px; border-radius:12px; overflow:hidden;
  border:1px solid var(--svh-linie); box-shadow:var(--svh-schatten);
}
.svh-map iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }

/* DSGVO-Consent-Platzhalter über der geblockten Google-Maps-Einbettung.
   Sichtbar bis Zustimmung; svh-design.js entfernt ihn via .consented, sobald
   die Marketing-Kategorie freigegeben ist (dann injiziert Complianz den src). */
.svh-map-consent{
  position:absolute; inset:0; z-index:3; display:flex; flex-direction:column;
  align-items:center; justify-content:center; text-align:center; gap:10px; padding:24px;
  background:linear-gradient(180deg,var(--svh-papier),var(--svh-papier-warm)); color:var(--svh-tinte);
}
.svh-map.consented .svh-map-consent{ display:none; }
.svh-map-consent .ic{ color:var(--svh-blau); line-height:0; }
.svh-map-consent .ic svg{ width:40px; height:40px; }
.svh-map-consent .t{ font-family:var(--svh-serif); font-weight:500; font-size:20px; color:var(--svh-tinte); margin:0; }
.svh-map-consent .d{ font-family:var(--svh-lese); font-size:14px; line-height:1.55; color:var(--svh-ink-weich); max-width:48ch; margin:0; }
.svh-map-consent .svh-map-load{ margin-top:6px; }
.svh-map-consent .svh-map-alt{ font-family:var(--svh-ui); font-weight:600; font-size:13px; color:var(--svh-blau); text-decoration:none; }
.svh-map-consent .svh-map-alt:hover{ color:var(--svh-orange); }

/* Seiten-/Beitragstitel als Fraunces-Kopf.
   Football Club nutzt .entry-title (archive.php/page.php) UND .article-title
   (search.php) → beide abdecken. */
.content-area .page-title,
.content-area .entry-title,
.content-area .article-title{
  font-family:var(--svh-serif); font-weight:380; letter-spacing:-.01em;
  color:var(--svh-tinte); line-height:1.1;
}
.content-area .page-header{ margin:6px 0 30px; padding-bottom:18px; border-bottom:1px solid var(--svh-linie); }
.content-area .page-title{ font-size:clamp(30px,4vw,46px); }

/* Football Club färbt Links/Titel knallrot — auf Markenfarben zurückholen.
   Elementor-Buttons ausgenommen (behalten ihr eigenes Styling). */
.content-area a:not(.elementor-button):not(.svh-btn){ color:var(--svh-blau); text-decoration:none; transition:color .2s; }
.content-area a:not(.elementor-button):not(.svh-btn):hover{ color:var(--svh-orange); }
.content-area .entry-title a{ color:var(--svh-tinte); }
.content-area .entry-title a:hover{ color:var(--svh-blau); }

/* Beiträge als Katalog-Karten (Suchergebnisse + Parent-Archive) */
.search-results .site-main > article.hentry,
.post-type-archive-svh_team .site-main > article.hentry,
.post-type-archive-svh_chronik .site-main > article.hentry{
  background:var(--svh-weiss); border:1px solid var(--svh-linie);
  border-radius:12px; box-shadow:var(--svh-schatten); padding:22px 26px; margin:0 0 20px;
  transition:transform .3s ease, box-shadow .3s ease;
}
.search-results .site-main > article.hentry:hover,
.post-type-archive-svh_team .site-main > article.hentry:hover,
.post-type-archive-svh_chronik .site-main > article.hentry:hover{
  transform:translateY(-4px); box-shadow:var(--svh-schatten-tief);
}
.content-area article.hentry .entry-title,
.content-area article.hentry .article-title{ font-size:clamp(21px,2.3vw,27px); font-weight:500; margin:0 0 8px; }
/* Beitrags-Titel (verlinkt) fest auf Fraunces + Tinte — schlägt die generische
   .content-area-Link-Regel (0,3,1) und das serifenlose Theme-Link-Font. */
.content-area article.hentry .entry-title,
.content-area article.hentry .entry-title a,
.content-area article.hentry .article-title,
.content-area article.hentry .article-title a{ font-family:var(--svh-serif); color:var(--svh-tinte); }
.content-area article.hentry .entry-title a:hover,
.content-area article.hentry .article-title a:hover{ color:var(--svh-blau); }
.content-area article.hentry .entry-summary,
.content-area article.hentry .entry-content{
  font-family:var(--svh-lese); font-size:15px; line-height:1.6; color:var(--svh-ink-weich); max-width:72ch;
}
.content-area article.hentry .entry-summary strong,
.content-area article.hentry .entry-summary b{ color:var(--svh-tinte); }
.content-area article.hentry .post-thumbnail{ display:block; margin:0 0 14px; }
.content-area article.hentry .post-thumbnail img{ border-radius:10px; box-shadow:var(--svh-schatten); border:0; }

/* Theme-Suchformular (404 + Suchergebnisse): Eingabefeld + Button auf Award-Look */
.content-area .search-form{ display:flex; gap:10px; max-width:520px; }
.content-area .search-field{
  flex:1; border:1px solid var(--svh-linie); border-radius:9px; padding:12px 14px;
  font-family:var(--svh-lese); font-size:15px; background:var(--svh-weiss); color:var(--svh-ink);
}
.content-area .search-field:focus{ border-color:var(--svh-blau); box-shadow:0 0 0 3px rgba(16,110,181,.15); outline:none; }
/* <input type=submit> → kann kein ::after; leeres/kaputtes Icon-Glyph per
   color:transparent verstecken und eine weiße Lupe als Hintergrund-SVG setzen. */
.content-area .search-submit{
  color:transparent; background-color:var(--svh-orange); border:0; border-radius:9px;
  width:52px; min-width:52px; height:48px; cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.3-4.3'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:center;
  transition:transform .25s ease, box-shadow .25s ease;
}
.content-area .search-submit:hover{ transform:translateY(-2px); box-shadow:0 8px 18px rgba(255,127,80,.32); }

/* ============================================================
   STEP 3 — KONTO-/UPLOAD-FORMULARE auf Award-Niveau
   Überschreibt die Basispaletten-CSS der Shortcodes.
   ============================================================ */
.svh-form{
  max-width:520px; margin:8px auto 0; padding:30px 32px;
  background:var(--svh-weiss); border:1px solid var(--svh-linie);
  border-radius:14px; box-shadow:var(--svh-schatten); font-family:var(--svh-lese);
}
.svh-form.svh-upload{ max-width:640px; }
.svh-form h3{ font-family:var(--svh-serif); font-weight:500; font-size:24px; color:var(--svh-tinte); margin:0 0 18px; }
.svh-form label{ font-family:var(--svh-ui); font-weight:600; font-size:12.5px; color:var(--svh-ink-weich); letter-spacing:.02em; margin-bottom:6px; }
.svh-form input[type=text], .svh-form input[type=email], .svh-form input[type=password],
.svh-form textarea, .svh-upload textarea, .svh-upload select{
  border:1px solid var(--svh-linie); border-radius:9px; padding:12px 14px; font-size:15px;
  font-family:var(--svh-lese); color:var(--svh-ink); background:var(--svh-weiss);
  transition:border-color .2s, box-shadow .2s;
}
.svh-form input[type=text]:focus, .svh-form input[type=email]:focus, .svh-form input[type=password]:focus,
.svh-form textarea:focus, .svh-upload textarea:focus, .svh-upload select:focus{
  border-color:var(--svh-blau); box-shadow:0 0 0 3px rgba(16,110,181,.15); outline:none;
}
.svh-form .button, .svh-form button[type=submit]{
  font-family:var(--svh-ui); font-weight:600; font-size:15px; letter-spacing:.02em;
  background:var(--svh-orange); color:#fff; border:0; border-radius:10px; padding:13px 26px;
  box-shadow:0 8px 22px rgba(255,127,80,.30); cursor:pointer;
  transition:transform .3s ease, box-shadow .3s ease, background .2s;
}
.svh-form .button:hover, .svh-form button[type=submit]:hover{ background:var(--svh-orange); transform:translateY(-3px); box-shadow:0 14px 30px rgba(255,127,80,.40); }
.svh-form a{ color:var(--svh-blau); font-weight:600; }
.svh-form a:hover{ color:var(--svh-orange); }
.svh-upload input[type=file]{ border:1px dashed var(--svh-blau); border-radius:9px; background:rgba(16,110,181,.05); padding:14px; color:var(--svh-ink-weich); }
.svh-upload .hint{ color:var(--svh-ink-weich); }
.svh-notice{ font-family:var(--svh-lese); border-radius:10px; }
.svh-notice.ok{ background:rgba(102,204,153,.14); border-left:4px solid var(--svh-gruen); color:#0a5c34; }
.svh-notice.err{ background:#fdeeee; border-left:4px solid #cc6666; color:#a12; }

/* ============================================================
   FA-006 — Kommentare auf SVH-Einzelseiten (per the_content-Filter)
   ============================================================ */
.svh-comments{ margin-top:44px; padding-top:28px; border-top:1px solid var(--svh-linie); max-width:68ch; }
.svh-comments h2, .svh-comments .comment-reply-title{ font-family:var(--svh-serif); font-weight:500; color:var(--svh-tinte); font-size:clamp(22px,2.4vw,28px); margin:0 0 16px; }
.svh-comments-empty, .svh-comments-note{ font-family:var(--svh-lese); color:var(--svh-ink-weich); font-size:14px; }
.svh-comment-list{ list-style:none; margin:0 0 26px; padding:0; }
.svh-comment-list .children{ list-style:none; margin:12px 0 0 24px; padding:0; }
.svh-comment-list .comment-body{ background:var(--svh-weiss); border:1px solid var(--svh-linie); border-radius:10px; padding:14px 16px; box-shadow:var(--svh-schatten); margin-bottom:14px; }
.svh-comment-list .comment-author{ font-family:var(--svh-ui); font-weight:600; color:var(--svh-tinte); }
.svh-comment-list .comment-author .says{ display:none; }
.svh-comment-list .comment-author img{ border-radius:50%; vertical-align:middle; margin-right:8px; }
.svh-comment-list .comment-metadata{ font-family:var(--svh-ui); font-size:12px; color:var(--svh-ink-weich); }
.svh-comment-list .comment-metadata a{ color:var(--svh-ink-weich); text-decoration:none; }
.svh-comment-list .comment-content{ font-family:var(--svh-lese); font-size:15px; line-height:1.6; color:var(--svh-ink); margin-top:8px; }
.svh-comment-list .reply a{ font-family:var(--svh-ui); font-weight:600; font-size:13px; color:var(--svh-blau); text-decoration:none; }
.svh-comments #commentform p{ margin:0 0 12px; }
.svh-comments #commentform label{ font-family:var(--svh-ui); font-weight:600; font-size:12.5px; color:var(--svh-ink-weich); display:block; margin-bottom:5px; }
.svh-comments #commentform input[type=text], .svh-comments #commentform input[type=email], .svh-comments #commentform input[type=url], .svh-comments #commentform textarea{
  width:100%; border:1px solid var(--svh-linie); border-radius:9px; padding:11px 13px; font-family:var(--svh-lese); font-size:15px; background:var(--svh-weiss); color:var(--svh-ink);
}
.svh-comments #commentform input:focus, .svh-comments #commentform textarea:focus{ border-color:var(--svh-blau); box-shadow:0 0 0 3px rgba(16,110,181,.15); outline:none; }
.svh-comments .comment-form-cookies-consent{ display:flex; gap:8px; align-items:flex-start; font-family:var(--svh-lese); font-size:13px; color:var(--svh-ink-weich); }
.svh-comments .form-submit input[type=submit]{
  font-family:var(--svh-ui); font-weight:600; font-size:15px; background:var(--svh-orange); color:#fff; border:0; border-radius:10px; padding:12px 26px; cursor:pointer;
  box-shadow:0 8px 22px rgba(255,127,80,.30); transition:transform .3s ease, box-shadow .3s ease;
}
.svh-comments .form-submit input[type=submit]:hover{ transform:translateY(-3px); box-shadow:0 14px 30px rgba(255,127,80,.40); }

/* ============================================================
   STEP 5 — ÄNDERUNGSPROTOKOLL: Tabelle + eigene Archiv-Vorlage
   (archive-svh_changes.php rendert [svh_changelog] statt der rohen
   svh_changes-Loop mit technischen Titeln).
   ============================================================ */
.svh-changelog{ border:1px solid var(--svh-linie); border-radius:12px; box-shadow:var(--svh-schatten); font-family:var(--svh-ui); overflow:hidden; }
.svh-changelog th{ background:var(--svh-tinte); font-family:var(--svh-ui); font-weight:600; font-size:12px; letter-spacing:.06em; text-transform:uppercase; padding:14px; }
.svh-changelog td{ padding:13px 14px; border-bottom:1px solid var(--svh-linie); color:var(--svh-ink); }
.svh-changelog tr:hover td{ background:rgba(16,110,181,.035); }
.svh-changelog .action{ border-radius:6px; font-family:var(--svh-ui); font-size:11.5px; font-weight:600; letter-spacing:.03em; padding:3px 10px; }
.svh-changelog td .action.created{ background:var(--svh-gruen); color:#fff; }
/* „Geändert"-Chip: die generische Klasse `updated` (WP-Admin-Notice-Name) wird
   irgendwo im Stack per JS auf display:none gesetzt → hier explizit
   zurücksetzen. display MUSS mit überschrieben werden, sonst bleibt der Chip
   unsichtbar (Hintergrund/Outline allein greifen bei display:none nicht). */
.svh-changelog td .action.updated{ display:inline-block !important; background:var(--svh-orange) !important; color:#fff !important; }
.svh-changelog td .action.deleted{ background:#cc6666; color:#fff; }
/* „Eintrag"-Links in der Tabelle: das Änderungsprotokoll-Template liegt in
   .svh-changes-archive (außerhalb .content-area) → eigener Link-Fix. */
.svh-changelog a{ color:var(--svh-blau); text-decoration:none; transition:color .2s; }
.svh-changelog a:hover{ color:var(--svh-orange); }

.svh-changes-archive{ background:var(--svh-papier); padding:56px 0 84px; }
.svh-changes-archive .wrap{ max-width:var(--svh-container); margin:0 auto; padding:0 32px; }
@media (min-width:1400px){ .svh-changes-archive .wrap{ padding-left:96px; } }
.svh-changes-head{ margin-bottom:34px; }
.svh-changes-head .eyebrow{ font-family:var(--svh-ui); font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:.16em; color:var(--svh-blau); }
.svh-changes-head h1{ font-family:var(--svh-serif); font-weight:380; font-size:clamp(32px,4.4vw,52px); color:var(--svh-tinte); margin:10px 0 12px; letter-spacing:-.01em; }
.svh-changes-head .lede{ font-family:var(--svh-lese); font-size:18px; color:var(--svh-ink-weich); max-width:58ch; margin:0; }

/* ============================================================
   STEP 6 — TTS-Vorlesen-Button (FA-007) auf Award-Niveau
   ============================================================ */
.svh-tts{
  font-family:var(--svh-ui); font-weight:600; font-size:13px; letter-spacing:.02em;
  border-radius:9px; background:var(--svh-papier-warm); border:1px solid var(--svh-linie);
  color:var(--svh-tinte); padding:9px 16px; transition:background .2s, color .2s, border-color .2s;
}
.svh-tts:hover{ background:var(--svh-blau); color:#fff; border-color:var(--svh-blau); }
.svh-tts[aria-pressed=true]{ background:var(--svh-tinte); color:#fff; border-color:var(--svh-tinte); }

/* ============================================================
   MOTION-LAYER — 5 cineastische Startseiten-Animationen (v0.4.9)
   Additiv. Alle versteckten Anfangs-/Bewegungszustände liegen NUR
   unter (prefers-reduced-motion: no-preference); ohne Motion sind
   alle Inhalte sofort im Endzustand sichtbar. Nur transform/opacity/
   clip-path/stroke-dashoffset (GPU). Kein !important auf animierten
   Eigenschaften (sonst schlägt es die Keyframes).
   ============================================================ */

/* Perspektive-Container + Overlay-Basis (immer im DOM, unsichtbar) */
.svh-sparten{ perspective:1400px; }
.svh-grid{ perspective:1600px; }
.svh-card{ position:relative; }
.svh-sparte .shine, .svh-card .glare{ position:absolute; inset:0; pointer-events:none; opacity:0; z-index:4; }
.svh-sparte .shine{ z-index:5; background:linear-gradient(115deg,transparent 42%,rgba(255,255,255,.38) 50%,transparent 58%); transform:translateX(-120%); }
.svh-card .glare{ z-index:6; border-radius:12px; background:radial-gradient(340px circle at var(--gx,50%) var(--gy,0%),rgba(255,255,255,.30),transparent 60%); }

/* H1-Zeilen: immer als Block (saubere Umbrüche auch ohne Motion) */
.svh-h1-lines .line{ display:block; }

/* Keyframes (harmlos ohne Referenz; nur via .is-in / Media genutzt) */
@keyframes svhUp{ from{opacity:0; transform:translateY(22px);} to{opacity:1; transform:none;} }
@keyframes svhLine{ from{transform:translateY(115%);} to{transform:translateY(0);} }
@keyframes svhGrid{ from{opacity:0;} to{opacity:.20;} }
@keyframes svhPaperIn{ 0%{opacity:0; transform:translateX(70px) rotate(4deg) scale(.94);} 68%{opacity:1; transform:translateX(-6px) rotate(-2deg) scale(1.012);} 100%{opacity:1; transform:none;} }
@keyframes svhStamp{ from{opacity:0; transform:translateY(22px) scale(.9);} to{opacity:.10; transform:none;} }
@keyframes svhUnderline{ from{transform:scaleX(0);} to{transform:scaleX(1);} }
@keyframes svhDevelop{ from{filter:grayscale(.85) contrast(.95) blur(2px);} to{filter:sepia(.12) contrast(1.03) blur(0);} }
@keyframes svhHalftone{ from{opacity:.55;} to{opacity:.30;} }
@keyframes svhScan{ 0%{opacity:0; top:-16%;} 9%{opacity:1;} 91%{opacity:1;} 100%{opacity:0; top:100%;} }
@keyframes svhPulse{ 0%{box-shadow:0 0 0 0 rgba(255,127,80,.55);} 70%{box-shadow:0 0 0 13px rgba(255,127,80,0);} 100%{box-shadow:0 0 0 0 rgba(255,127,80,0);} }
@keyframes svhShine{ 0%{opacity:0; transform:translateX(-120%);} 22%{opacity:1;} 100%{opacity:0; transform:translateX(120%);} }
@keyframes svhFlash{ 0%{box-shadow:inset 0 0 0 9999px rgba(16,110,181,0);} 16%{box-shadow:inset 0 0 0 9999px rgba(16,110,181,.10);} 100%{box-shadow:inset 0 0 0 9999px rgba(16,110,181,0);} }

@media (prefers-reduced-motion: no-preference){

  /* ---------- 1. Cineastischer Hero-Einstieg ---------- */
  .svh-hero::before{ opacity:0; }
  .svh-hero .eyebrow,
  .svh-hero .lede,
  .svh-hero .svh-stats,
  .svh-hero .svh-cta,
  .svh-hero .svh-fund{ opacity:0; }
  .svh-h1-lines .line{ overflow:hidden; }
  .svh-h1-lines .inner{ display:block; transform:translateY(115%); }
  .svh-hero .year-stamp{ opacity:0; transform:translateY(22px) scale(.9); }
  .svh-hero h1 em{ position:relative; }
  .svh-hero h1 em::after{ content:""; position:absolute; left:0; right:0; bottom:.02em; height:3px;
    background:var(--svh-blau); border-radius:2px; transform:scaleX(0); transform-origin:left; }

  .svh-hero.is-in::before{ animation:svhGrid 1.4s ease .10s forwards; }
  .svh-hero.is-in .eyebrow{ animation:svhUp .7s cubic-bezier(.16,1,.3,1) .15s forwards; }
  .svh-hero.is-in .svh-h1-lines .inner{ animation:svhLine .9s cubic-bezier(.16,1,.3,1) forwards; }
  .svh-hero.is-in .svh-h1-lines .line:nth-child(1) .inner{ animation-delay:.30s; }
  .svh-hero.is-in .svh-h1-lines .line:nth-child(2) .inner{ animation-delay:.42s; }
  .svh-hero.is-in .svh-h1-lines .line:nth-child(3) .inner{ animation-delay:.54s; }
  .svh-hero.is-in h1 em::after{ animation:svhUnderline .7s cubic-bezier(.16,1,.3,1) 1.05s forwards; }
  .svh-hero.is-in .lede{ animation:svhUp .7s cubic-bezier(.16,1,.3,1) .72s forwards; }
  .svh-hero.is-in .svh-stats{ animation:svhUp .7s cubic-bezier(.16,1,.3,1) .86s forwards; }
  .svh-hero.is-in .svh-cta{ animation:svhUp .7s cubic-bezier(.16,1,.3,1) 1.00s forwards; }
  .svh-hero.is-in .svh-fund{ animation:svhPaperIn 1.1s cubic-bezier(.16,1,.3,1) .55s forwards; }
  .svh-hero.is-in .year-stamp{ animation:svhStamp .8s cubic-bezier(.16,1,.3,1) 1.15s forwards; }

  /* ---------- 2. Scanner-Reveal (Fundstück) ---------- */
  .svh-fund .scan img{ filter:grayscale(.85) contrast(.95) blur(2px); }
  .svh-fund .scan .halftone{ opacity:.55; }
  .svh-fund .scan .scanbar{ position:absolute; left:-3%; right:-3%; top:0; height:16%; z-index:5; opacity:0;
    pointer-events:none;
    background:linear-gradient(180deg,transparent,rgba(120,200,255,.14) 30%,rgba(190,235,255,.9) 50%,rgba(120,200,255,.14) 70%,transparent);
    box-shadow:0 0 26px rgba(120,200,255,.6); }
  .svh-hero.is-in .svh-fund .scan img{ animation:svhDevelop 1.5s ease 1.15s forwards; }
  .svh-hero.is-in .svh-fund .scan .halftone{ animation:svhHalftone 1.5s ease 1.15s forwards; }
  .svh-hero.is-in .svh-fund .scan .scanbar{ animation:svhScan 1.5s cubic-bezier(.45,0,.3,1) 1.15s forwards; }

  /* ---------- 3. Decade-Spine „Zeitreise" ---------- */
  .svh-spine li.active .dot{ animation:svhPulse 1.9s ease-out infinite; }
  .svh-spine li{ transition:color .25s, transform .25s; }
  .svh-spine li:hover{ transform:translateX(6px); color:var(--svh-blau); }
  .svh-spine li .dot{ transition:transform .25s, background .25s, border-color .25s, box-shadow .25s; }
  .svh-spine li:hover .dot{ transform:scale(1.55); }
  .svh-flash{ animation:svhFlash 1.1s ease; }

  /* ---------- 4. Katalog-Karten (Deal + Tilt + Glare) ---------- */
  .svh-grid .svh-card.svh-reveal{ transform:translateY(30px) rotateX(12deg) scale(.97); transform-origin:center bottom; }
  .svh-grid .svh-card.svh-reveal.in{ transform:none; }
  .svh-card{ transform-style:preserve-3d; will-change:transform; }
  .svh-card.tilt{ transition:transform .12s ease-out, box-shadow .3s ease; }

  /* ---------- 5. Sparten (Unfold + Icon-Draw + Shine) ---------- */
  .svh-sparte.svh-reveal{ transform:translateY(20px) rotateY(-38deg); transform-origin:left center; }
  .svh-sparte.svh-reveal.in{ transform:none; }
  .svh-sparte:hover .shine{ animation:svhShine .85s ease; }
}

/* ---- Responsive --------------------------------------------- */
@media (max-width:980px){
  .svh-hero .wrap{ grid-template-columns:1fr; gap:80px; }
  .svh-sparten{ grid-template-columns:repeat(2,1fr); }
  .svh-grid{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:560px){
  .svh-home .wrap{ padding:0 20px; }
  .svh-hero{ padding:48px 0 64px; }
  .svh-hero h1{ font-size:clamp(28px,8.5vw,38px); }
  .svh-sparten, .svh-grid{ grid-template-columns:1fr; }
  .svh-stats b{ font-size:30px; }
  .svh-stats .sep{ margin:0 18px; }
  .svh-section{ padding:60px 0; }
  .content-area.content-area-right-sidebar{ padding:8px 20px 48px; }
  .svh-changes-archive .wrap{ padding:0 20px; }
  .svh-form{ padding:24px 22px; }
}

/* ---- FAQ (Akkordeon) --------------------------------------- */
.svh-faq{ max-width:820px; margin:0 auto; }
.svh-faq-intro{ font-family:var(--svh-lese); font-size:18px; line-height:1.65;
  color:var(--svh-ink-weich); margin:0 0 34px; padding-bottom:26px;
  border-bottom:1px solid var(--svh-linie); }
.svh-faq-intro a{ color:var(--svh-blau); font-weight:600; }
.svh-faq h2{ font-family:var(--svh-serif); font-weight:600; font-size:26px;
  color:var(--svh-tinte); margin:40px 0 16px; padding-left:14px;
  border-left:4px solid var(--svh-orange); }
.svh-faq h2:first-of-type{ margin-top:0; }
.svh-faq-item{ background:var(--svh-weiss); border:1px solid var(--svh-linie);
  border-radius:12px; margin:0 0 12px; padding:0 22px;
  box-shadow:var(--svh-schatten); transition:border-color .2s, box-shadow .2s; }
.svh-faq-item[open]{ border-color:var(--svh-blau); box-shadow:var(--svh-schatten-tief); }
.svh-faq-item summary{ list-style:none; cursor:pointer; padding:18px 0;
  font-family:var(--svh-ui); font-weight:600; font-size:16.5px; line-height:1.35;
  color:var(--svh-tinte); display:flex; justify-content:space-between;
  align-items:center; gap:16px; }
.svh-faq-item summary::-webkit-details-marker{ display:none; }
.svh-faq-item summary::after{ content:""; flex:none; width:12px; height:12px;
  border-right:2.5px solid var(--svh-blau); border-bottom:2.5px solid var(--svh-blau);
  transform:rotate(45deg); transition:transform .25s; margin-right:4px; }
.svh-faq-item[open] summary{ color:var(--svh-blau); }
.svh-faq-item[open] summary::after{ transform:rotate(225deg); }
.svh-faq-item summary:hover{ color:var(--svh-blau); }
.svh-faq-a{ padding:0 0 20px; }
.svh-faq-a p{ font-family:var(--svh-lese); font-size:16px; line-height:1.65;
  color:var(--svh-ink-weich); margin:0 0 10px; }
.svh-faq-a p:last-child{ margin-bottom:0; }
.svh-faq-a ul{ margin:6px 0 10px; padding-left:22px; }
.svh-faq-a li{ font-family:var(--svh-lese); font-size:16px; line-height:1.6;
  color:var(--svh-ink-weich); margin:4px 0; }
.svh-faq-a a{ color:var(--svh-blau); font-weight:600; }
.svh-faq-a strong{ color:var(--svh-tinte); }
@media (max-width:560px){
  .svh-faq-intro{ font-size:16px; }
  .svh-faq h2{ font-size:22px; }
  .svh-faq-item summary{ font-size:15px; }
  .svh-faq-item{ padding:0 16px; }
}

/* ---- Rechtstexte (AGB, Nutzung, Datenschutz) --------------- */
.svh-legal{ max-width:820px; margin:0 auto; }
.svh-legal-intro{ font-family:var(--svh-lese); font-size:18px; line-height:1.65;
  color:var(--svh-ink-weich); margin:0 0 28px; padding-bottom:22px; border-bottom:1px solid var(--svh-linie); }
.svh-legal h2{ font-family:var(--svh-serif); font-weight:600; font-size:23px;
  color:var(--svh-tinte); margin:34px 0 10px; }
.svh-legal p{ font-family:var(--svh-lese); font-size:16px; line-height:1.7;
  color:var(--svh-ink-weich); margin:0 0 12px; }
.svh-legal ul{ margin:8px 0 14px; padding-left:22px; }
.svh-legal li{ font-family:var(--svh-lese); font-size:16px; line-height:1.6;
  color:var(--svh-ink-weich); margin:6px 0; }
.svh-legal a{ color:var(--svh-blau); font-weight:600; }
.svh-legal strong{ color:var(--svh-tinte); }
.svh-legal-meta{ margin-top:34px; padding-top:16px; border-top:1px solid var(--svh-linie);
  font-family:var(--svh-ui); font-size:13.5px; color:var(--svh-ink-weich); }

/* ---- Reduced motion ---------------------------------------- */
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  .svh-reveal{ opacity:1; transform:none; transition:none; }
  .svh-spine .rail::after{ transition:none; }
  .svh-faq-item, .svh-faq-item summary::after{ transition:none; }
  *{ transition-duration:.01ms !important; animation-duration:.01ms !important; }
}
