/* ==========================================================================
   Erik Marr – Architekt und Bauleiter
   --------------------------------------------------------------------------
   Mobile-first. Abstände und Schriftgrößen skalieren fließend (clamp),
   Breakpoints greifen nur dort, wo sich das Layout wirklich ändert:

     < 600px   Smartphone        – einspaltig, Bilder randlos
     ≥ 600px   großes Smartphone – Hero im Querformat
     ≥ 768px   Tablet            – zweispaltige Inhalte
     ≥ 992px   Desktop           – Navigation in der Kopfzeile
     ≥ 1200px  breiter Desktop   – volle Menügröße
   ========================================================================== */

@font-face {
  font-family: "Architects Daughter";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  /* Direkt eingebettet (data-URI), damit die Schrift auch beim Öffnen per Doppelklick (file://) lädt –
     Browser blockieren sonst Schriftdateien von der Festplatte. Quelle: assets/fonts/architects-daughter.woff2 */
  src: url("data:font/woff2;base64,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") format("woff2");
}

:root {
  /* Farben */
  --color-brand: #871d26;   /* Bordeaux aus dem Logo */
  --color-gray: #878787;    /* Grau aus dem Logo – nur für große Überschriften */
  --color-muted: #666;      /* Grau für kleine Texte (Kontrast ≥ 4.5:1) */
  --color-footer: #878787;  /* Footer-Grau wie im Original */
  --color-line: #e6e6e6;
  --color-soft: #f5f5f5;
  --color-text: #252525;
  --color-bg: #fff;

  /* Schriften */
  --font-base: Helvetica, "Helvetica Neue", Arial, sans-serif;   /* wie im Original */
  --font-hand: "Architects Daughter", cursive;
  --fs-small: .9375rem;
  --fs-body: 1rem;
  --fs-lead: clamp(1.0625rem, 1rem + .4vw, 1.1875rem);
  --fs-h3: clamp(1.125rem, 1.06rem + .35vw, 1.3rem);
  --fs-h2: clamp(1.375rem, 1.2rem + .9vw, 1.8rem);
  --fs-h1: clamp(1.75rem, 1.4rem + 1.6vw, 2.4rem);

  /* Abstände */
  --gutter: 15px;          /* Seitenabstand wie im Original (Bootstrap) */
  --space-1: .5rem;
  --space-2: 1rem;
  --space-3: clamp(1.25rem, 1rem + 1.2vw, 1.75rem);
  --space-4: clamp(1.75rem, 1.3rem + 2vw, 2.75rem);
  --space-5: clamp(2.5rem, 1.6rem + 4vw, 4.5rem);

  /* Maße */
  --container: 1110px;   /* Inhaltsbreite wie im Original (Bootstrap-Container) */
  --narrow: 760px;
  --measure: 68ch;
  --tap: 44px;
  --header-h: 64px;
  --radius: 4px;
  --ease-out: cubic-bezier(.22, 1, .36, 1);
}

/* Inhaltsbreiten wie im Original (Bootstrap): 510 / 690 / 930 / 1110 (+ 2 × 15px Abstand) */
@media (min-width: 576px) {
  :root { --container: 510px; }
}
@media (min-width: 768px) {
  :root { --container: 690px; }
}
@media (min-width: 992px) {
  :root { --header-h: 116px; --container: 930px; }
}
@media (min-width: 1200px) {
  :root { --container: 1110px; }
}


/* ---------- Basis ---------- */

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

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--header-h) + 1rem);
}

body {
  margin: 0;
  font-family: var(--font-base);
  font-size: var(--fs-body);
  line-height: 1.65;
  color: var(--color-text);
  background: var(--color-bg);
  -webkit-tap-highlight-color: rgba(135, 29, 38, .15);
  /* Schriftglättung wie im Original (Helix-Template) – auf dem Mac etwas feinere Schrift */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}


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

a { color: var(--color-brand); text-underline-offset: .2em; }

h1, h2, h3, h4 {
  line-height: 1.25;
  text-wrap: balance;
  hyphens: auto;
  overflow-wrap: break-word;
}

p, li, figcaption, label, address {
  hyphens: auto;
  overflow-wrap: break-word;
  text-wrap: pretty;
}

:focus-visible {
  outline: 2px solid var(--color-brand);
  outline-offset: 3px;
}

.container {
  width: 100%;
  max-width: calc(var(--container) + 2 * var(--gutter));
  margin-inline: auto;
  padding-inline: max(var(--gutter), env(safe-area-inset-left)) max(var(--gutter), env(safe-area-inset-right));
}
.container--narrow { max-width: calc(var(--narrow) + 2 * var(--gutter)); }

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

.skip-link {
  position: absolute;
  left: -9999px;
}
.skip-link:focus {
  left: var(--gutter);
  top: var(--space-1);
  z-index: 100;
  padding: .75rem 1rem;
  background: var(--color-brand);
  color: #fff;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  min-height: 48px;
  padding: .75rem 1.5rem;
  border: 2px solid var(--color-brand);
  border-radius: var(--radius);
  background: var(--color-brand);
  color: #fff;
  font: inherit;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  transition: background .2s, color .2s;
}
.btn:hover,
.btn:focus-visible { background: #fff; color: var(--color-brand); }

.btn--ghost { background: #fff; color: var(--color-brand); }
.btn--ghost:hover,
.btn--ghost:focus-visible { background: var(--color-brand); color: #fff; }

/* Desktop-Typografie wie im Original: 16px, Zeilenhöhe 1.5, keine Silbentrennung in breiten Spalten */
@media (min-width: 768px) {
  body { line-height: 1.5; }
  p, li, label, address, h1, h2, h3, h4 { hyphens: manual; }
}

/* ==========================================================================
   Header & Navigation
   ========================================================================== */

.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: #fff;
  padding-top: env(safe-area-inset-top);
  transition: box-shadow .2s;
}
.site-header.is-scrolled { box-shadow: 0 2px 12px rgba(0, 0, 0, .08); }

.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: var(--header-h);
}

.logo { display: block; padding-block: .5rem; }
.logo img { height: 40px; width: auto; }

/* Burger-Button */
.nav-toggle {
  display: grid;
  place-content: center;
  gap: 6px;
  width: 48px;
  height: 48px;
  margin-right: -12px;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
}
.nav-toggle span {
  display: block;
  width: 24px;
  height: 2px;
  background: var(--color-text);
  transition: transform .3s var(--ease-out), opacity .2s;
}
.nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

.main-nav ul { list-style: none; margin: 0; padding: 0; }
.main-nav a { text-decoration: none; }

/* --- Mobiles Menü: Vollbild-Overlay unter der Kopfzeile --- */
.main-nav {
  position: fixed;
  top: calc(var(--header-h) + env(safe-area-inset-top));
  left: 0;
  right: 0;
  height: calc(100vh - var(--header-h) - env(safe-area-inset-top));
  height: calc(100dvh - var(--header-h) - env(safe-area-inset-top));
  display: flex;
  flex-direction: column;
  padding: var(--space-2) max(var(--gutter), env(safe-area-inset-right)) max(var(--space-3), env(safe-area-inset-bottom)) max(var(--gutter), env(safe-area-inset-left));
  overflow-y: auto;
  overscroll-behavior: contain;
  background: #fff;
  border-top: 1px solid var(--color-line);
  /* Ausblenden per clip-path statt Verschieben – erzeugt keine horizontale Scrollfläche */
  clip-path: inset(0 0 0 100%);
  visibility: hidden;
  transition: clip-path .45s var(--ease-out), visibility 0s linear .45s;
}
.main-nav.is-open {
  clip-path: inset(0);
  visibility: visible;
  transition: clip-path .45s var(--ease-out), visibility 0s;
}

.main-nav > ul > li { border-bottom: 1px solid var(--color-line); }

.main-nav > ul > li > a {
  display: flex;
  align-items: center;
  min-height: 60px;
  font-size: 1.375rem;
  color: var(--color-text);
}
.main-nav a[aria-current="page"],
.main-nav a.is-active { color: var(--color-brand); }

/* Blog-Eintrag mit Aufklapp-Pfeil */
.has-sub { display: flex; flex-wrap: wrap; align-items: center; }
.has-sub > a { flex: 1; }

.sub-toggle {
  display: grid;
  place-content: center;
  width: 48px;
  height: 48px;
  margin-right: -12px;
  padding: 0;
  border: 0;
  background: none;
  color: var(--color-gray);
  cursor: pointer;
}
.sub-toggle::before {
  content: "";
  width: 10px;
  height: 10px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: translateY(-3px) rotate(45deg);
  transition: transform .3s var(--ease-out);
}
.sub-toggle[aria-expanded="true"]::before { transform: translateY(2px) rotate(-135deg); }

/* Untermenü als Akkordeon (animierbare Höhe über grid-template-rows) */
.sub-wrap {
  flex-basis: 100%;
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows .35s var(--ease-out);
}
.has-sub.is-open .sub-wrap { grid-template-rows: 1fr; }
.sub-menu { overflow: hidden; min-height: 0; }
.has-sub:not(.is-open) .sub-menu { visibility: hidden; }

.sub-menu a {
  display: flex;
  align-items: center;
  min-height: 48px;
  padding-left: var(--space-2);
  font-size: 1.125rem;
  color: var(--color-muted);
}
.sub-menu li:last-child { padding-bottom: var(--space-1); }

/* Schnellkontakt unten im mobilen Menü */
.nav-contact {
  display: grid;
  gap: .75rem;
  margin-top: auto;
  padding-top: var(--space-4);
}
.nav-contact p { margin: 0; color: var(--color-muted); font-size: var(--fs-small); }

/* --- Desktop-Navigation --- */
@media (min-width: 992px) {
  .logo img { height: 90px; transition: height .35s var(--ease-out); }
  .header-inner { transition: min-height .35s var(--ease-out); }
  .is-scrolled .header-inner { min-height: 80px; }
  .is-scrolled .logo img { height: 60px; }

  .nav-toggle,
  .nav-contact { display: none; }

  .main-nav {
    position: static;
    height: auto;
    display: block;
    padding: 0;
    overflow: visible;
    border: 0;
    background: none;
    clip-path: none;
    visibility: visible;
    transition: none;
  }

  .main-nav > ul {
    display: flex;
    align-items: center;
    gap: clamp(1.25rem, 2.2vw, 2.25rem);
  }
  .main-nav > ul > li { border: 0; }

  .main-nav > ul > li > a {
    position: relative;
    min-height: var(--tap);
    font-size: 1.125rem;
    color: var(--color-gray);
    transition: color .2s;
  }
  .main-nav > ul > li > a:hover,
  .main-nav a[aria-current="page"],
  .main-nav a.is-active { color: var(--color-brand); }

  /* Unterstrich-Animation */
  .main-nav > ul > li > a::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 6px;
    height: 2px;
    background: var(--color-brand);
    transform: scaleX(0);
    transform-origin: right;
    transition: transform .35s var(--ease-out);
  }
  .main-nav > ul > li > a:hover::after { transform: scaleX(1); transform-origin: left; }
  /* Aktiver Punkt wie im Original nur farbig, ohne Linie */
  .main-nav a[aria-current="page"]::after,
  .main-nav a.is-active::after { display: none; }

  /* Dropdown */
  .has-sub { position: relative; flex-wrap: nowrap; }
  .sub-toggle { width: 30px; height: var(--tap); margin: 0 0 0 .1rem; }
  .sub-toggle::before { width: 10px; height: 10px; border-width: 2.5px; }
  .has-sub:hover .sub-toggle,
  .has-sub.is-open .sub-toggle { color: var(--color-brand); }

  .sub-wrap {
    position: absolute;
    top: 100%;
    left: 50%;
    display: block;
    min-width: 250px;
    padding-top: 12px;              /* unsichtbare Brücke zwischen Link und Menü */
    transform: translate(-50%, 8px);
    opacity: 0;
    visibility: hidden;
    transition: opacity .2s, transform .25s var(--ease-out), visibility 0s linear .25s;
  }
  .sub-menu {
    position: relative;
    padding: .5rem 0;
    overflow: visible;
    background: #fff;
    border-top: 3px solid var(--color-brand);
    box-shadow: 0 12px 32px rgba(0, 0, 0, .12);
  }
  .has-sub:not(.is-open) .sub-menu { visibility: visible; }
  .sub-menu::before {               /* kleiner Pfeil nach oben */
    content: "";
    position: absolute;
    top: -9px;
    left: 50%;
    border: 6px solid transparent;
    border-bottom-color: var(--color-brand);
    transform: translateX(-50%);
  }
  .sub-menu li:last-child { padding: 0; }
  .sub-menu a {
    min-height: 44px;
    padding: 0 1.25rem;
    font-size: 1rem;
    color: var(--color-text);
    transition: background .15s, color .15s;
  }
  .sub-menu a:hover,
  .sub-menu a:focus-visible { background: var(--color-soft); color: var(--color-brand); }
  .sub-menu a[aria-current="page"] { color: var(--color-brand); font-weight: 600; }

  .has-sub.is-open .sub-wrap {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, 0);
    transition: opacity .2s, transform .25s var(--ease-out), visibility 0s;
  }
}

/* Öffnen per Maus-Hover nur bei echten Zeigegeräten (Touch nutzt den Pfeil-Button) */
@media (min-width: 992px) and (hover: hover) and (pointer: fine) {
  .has-sub:hover .sub-wrap {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, 0);
    transition: opacity .2s, transform .25s var(--ease-out), visibility 0s;
  }
}

@media (min-width: 1200px) {
  .main-nav > ul > li > a { font-size: 1.25rem; }
}

/* ==========================================================================
   Startseite
   ========================================================================== */

.hero > .container { padding-inline: 0; }

.hero-image {
  position: relative;
  display: flex;
  align-items: flex-end;
  aspect-ratio: 1 / 1;             /* mobil quadratisch: Gesicht kleiner, mehr Bildrand */
  max-height: calc(100svh - var(--header-h));
  padding: var(--gutter) .75rem;   /* seitlich knapp, damit das zweizeilige Zitat größer sein kann */
  background: url("../assets/img/hero.jpg") 50% 30% / cover no-repeat;
  container-type: inline-size;     /* Bezugsgröße für die Schriftgröße des Zitats */
}
/* Mobil: Verlauf für gute Lesbarkeit des Zitats */
.hero-image::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0) 55%);
}

.hero-quote {
  position: relative;
  margin: 0;
  max-width: 30ch;
  font-family: var(--font-hand);
  font-size: clamp(1.15rem, .75rem + 1.6vw, 2rem);
  line-height: 1.45;
  color: #fff;
  text-shadow: 2px 2px 0 #505050;
  hyphens: manual;
}
/* Mobil etwas größer: die lange zweite Zeile bricht dafür etwa in der Mitte um */
@supports (font-size: 1cqi) {
  .hero-quote {
    max-width: 16em;
    font-size: min(2rem, 100cqi / 19.5);
  }
}
/* Ab Tablet immer zweizeilig wie im Original: Schrift skaliert mit der Bildbreite,
   sodass die längere Zeile (≈ 22 em) genau hineinpasst – maximal 32px */
@media (min-width: 600px) {
  @supports (font-size: 1cqi) {
    .hero-quote {
      max-width: none;
      white-space: nowrap;
      font-size: min(2rem, 100cqi / 22.6);
    }
  }
}

@media (min-width: 600px) {
  .hero-image { aspect-ratio: 3 / 2; }
}

/* Desktop wie im Original: Bild im Container, Zitat unten links, ohne Verlauf */
@media (min-width: 768px) {
  .hero > .container { padding-inline: max(var(--gutter), env(safe-area-inset-left)) max(var(--gutter), env(safe-area-inset-right)); }
  /* Zitat tief unten im Bild, unterhalb des Kinns */
  .hero-image { max-height: none; padding: 0 clamp(1.5rem, 4.5vw, 3.125rem) clamp(1rem, 2.4vw, 1.75rem); }
  .hero-image::before { display: none; }
  .hero-quote { max-width: none; }
  /* Feste Höhe wie im Original (dort 500px Innenabstand oben + Text + 100px unten) */
  .hero-image { aspect-ratio: auto; height: 700px; }
}

@media (min-width: 992px) {
  .hero-image { height: 735px; }
}

/* Ab 1400px sind die Inhaltsbereiche im Original breiter (1290px) als Kopf- und Fußzeile (1110px) */
@media (min-width: 1400px) {
  .hero > .container,
  .project > .container,
  .portrait-video > .container { max-width: calc(1290px + 2 * var(--gutter)); }
}

.intro { padding-block: var(--space-5); }

.intro h1 {
  margin: 0 0 .5rem;
  font-size: var(--fs-h2);
  font-weight: 600;
  color: var(--color-gray);
}

.intro p { margin: 0; max-width: var(--measure); }

@media (min-width: 768px) {
  .intro { padding-block: 3.75rem 4.5rem; }
  .intro p { max-width: none; }
}

/* ==========================================================================
   Unterseiten: Kopfbereich (Kontakt, Kategorien, Rechtliches)
   ========================================================================== */

.page-head { padding-block: var(--space-4) var(--space-2); }
.page-head--center { text-align: center; padding-block: var(--space-5); }

.page-head h1 {
  margin: 0 0 var(--space-2);
  font-size: var(--fs-h2);
  font-weight: 600;
  color: var(--color-gray);
}

.lead { margin: 0 0 var(--space-2); max-width: var(--measure); font-size: var(--fs-lead); }
.page-head--center .lead { margin-inline: auto; }

@media (min-width: 992px) {
  .page-head { padding-top: 5.5rem; }
  .page-head--blog { padding-top: 2.5rem; }
}

/* ==========================================================================
   Slider (Arbeit & Portrait) – Aufbau wie im Original:
   Linie + Text links, Bild rechts, rote Pfeile außen, Punkte darunter
   ========================================================================== */

.project { padding-block: var(--space-3) var(--space-4); }

.slider { position: relative; }

.slider-track {
  display: flex;
  align-items: flex-start;
  margin: 0;
  padding: 0;
  list-style: none;
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  transition: height .4s var(--ease-out);
}
.slider-track::-webkit-scrollbar { display: none; }

.slide {
  flex: 0 0 100%;
  display: grid;
  gap: var(--space-3);
  scroll-snap-align: start;
  scroll-snap-stop: always;
}
.slide-img {
  order: -1;
  width: 100%;
  aspect-ratio: 600 / 515;
  object-fit: cover;
}
.slide-text p { margin: 0 0 1rem; max-width: var(--measure); }
.slide-text p:last-child { margin-bottom: 0; }

.slide-title {
  margin: 0 0 var(--space-2);
  font-size: var(--fs-h2);
  font-weight: 600;
  color: var(--color-gray);
}

/* Bordeauxrote Linie über der Textspalte */
.slider::before {
  content: "";
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--color-brand);
}

/* Mobil: Slider randlos, Steuerung liegt auf dem Bild */
@media (max-width: 767px) {
  .slider { margin-inline: calc(-1 * var(--gutter)); }
  .slide-text { padding-inline: var(--gutter); }
  .project + .project { padding-top: var(--space-2); }
}

.slider-controls {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  aspect-ratio: 600 / 515;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-1);
  pointer-events: none;
}

.slider-prev,
.slider-next {
  display: grid;
  place-content: center;
  width: var(--tap);
  height: var(--tap);
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, .92);
  box-shadow: 0 2px 10px rgba(0, 0, 0, .2);
  color: var(--color-brand);
  cursor: pointer;
  pointer-events: auto;
  transition: opacity .2s, background .2s, color .2s, transform .2s;
}
.slider-prev::before,
.slider-next::before {
  content: "";
  width: 12px;
  height: 12px;
  border-top: 3px solid currentColor;
  border-right: 3px solid currentColor;
}
.slider-prev::before { transform: translateX(3px) rotate(-135deg); }
.slider-next::before { transform: translateX(-3px) rotate(45deg); }
.slider-prev:disabled,
.slider-next:disabled { opacity: 0; pointer-events: none; }

.slider-count {
  position: absolute;
  left: 50%;
  bottom: var(--space-1);
  padding: .2rem .7rem;
  border-radius: 999px;
  background: rgba(0, 0, 0, .55);
  color: #fff;
  font-size: .875rem;
  font-variant-numeric: tabular-nums;
  transform: translateX(-50%);
}

.slider-dots { display: none; }

@media (min-width: 768px) {
  .project { padding-block: 0 var(--space-5); }
  .project:first-of-type,
  .portrait-video + .project { padding-top: 0; }

  .slide {
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    align-items: start;
  }
  /* Text eingerückt (Platz für den Pfeil links), Bild rechts mit Abstand für den Pfeil */
  .slide-text { padding: clamp(2rem, 5vw, 3.75rem) 30px 2rem clamp(3rem, 6.5vw, 4.7rem); }
  .slide-img { order: 0; width: calc(100% - clamp(2rem, 4vw, 2.8rem)); margin-top: 2px; }
  .slide-title { margin-bottom: clamp(1.5rem, 3vw, 2.5rem); font-size: clamp(1.375rem, 1rem + .8vw, 1.5625rem); }

  .slider::before { right: calc(50% + 15px); }

  /* Pfeile: schlichte rote Winkel am linken/rechten Rand, vertikal mittig zur Bildhöhe */
  .slider-controls {
    position: static;
    aspect-ratio: auto;
    display: block;
    padding: 0;
    pointer-events: auto;
  }
  .slider-prev,
  .slider-next {
    position: absolute;
    top: var(--arrow-top, 40%);
    width: 32px;
    height: 56px;
    border-radius: 0;
    background: none;
    box-shadow: none;
    transform: translateY(-50%);
  }
  .slider-prev { left: 0; }
  .slider-next { right: 0; }
  .slider-prev::before,
  .slider-next::before { width: 14px; height: 14px; border-width: 3px; }
  .slider-prev:hover,
  .slider-next:hover { color: var(--color-text); }
  .slider-prev:disabled,
  .slider-next:disabled { opacity: .25; pointer-events: none; }

  .slider-count { display: none; }

  .slider-dots {
    display: flex;
    justify-content: center;
    margin-top: .75rem;
  }
  .slider-dots button {
    display: grid;
    place-content: center;
    width: 20px;
    height: 32px;
    padding: 0;
    border: 0;
    background: none;
    cursor: pointer;
  }
  .slider-dots button::before {
    content: "";
    width: 10px;
    height: 10px;
    border: 1px solid var(--color-gray);
    border-radius: 50%;
    transition: background .2s, transform .2s;
  }
  .slider-dots button:hover::before { transform: scale(1.25); }
  .slider-dots button[aria-current="true"]::before { background: var(--color-gray); }
}

/* ==========================================================================
   Portrait: Video
   ========================================================================== */

.portrait-video { padding-block: 0 var(--space-4); }

.video-frame {
  position: relative;
  margin-inline: calc(-1 * var(--gutter));
  background: #000;
}
.video {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  background: #000;
}

@media (min-width: 768px) {
  .portrait-video { padding-block: 0 2.5rem; }
  /* Linie unter dem Header wie im Original */
  .portrait-video .container::before {
    content: "";
    display: block;
    height: 3px;
    margin-bottom: 10px;
    background: var(--color-brand);
  }
  .video-frame { margin-inline: 0; }
}

/* ==========================================================================
   Blog
   ========================================================================== */

/* Kategorie-Filter: mobil horizontal wischbar, ab Tablet umbrechend */
.filter {
  display: flex;
  gap: .5rem;
  margin: 0 calc(-1 * var(--gutter));
  padding: 0 var(--gutter) .25rem;
  list-style: none;
  overflow-x: auto;
  scroll-snap-type: x proximity;
  scrollbar-width: none;
}
.filter::-webkit-scrollbar { display: none; }
.filter li { flex: none; scroll-snap-align: start; }
.filter a {
  display: inline-flex;
  align-items: center;
  min-height: var(--tap);
  padding: 0 1.1rem;
  border: 1px solid #d5d5d5;
  border-radius: 999px;
  color: var(--color-text);
  font-size: var(--fs-small);
  white-space: nowrap;
  text-decoration: none;
  transition: border-color .2s, color .2s, background .2s;
}
.filter a:hover { border-color: var(--color-brand); color: var(--color-brand); }
.filter a[aria-current="page"] { background: var(--color-brand); border-color: var(--color-brand); color: #fff; }

@media (min-width: 768px) {
  .filter { flex-wrap: wrap; margin-inline: 0; padding: 0; overflow: visible; }
  .filter a { min-height: 36px; padding: 0 .9rem; font-size: .875rem; }
}

.blog-list { padding-block: var(--space-3) var(--space-5); }

/* Beitragsliste wie im Original: zweispaltig, ohne Bilder */
.entries {
  display: grid;
  gap: var(--space-4) 30px;
}
@media (min-width: 768px) {
  .entries { grid-template-columns: 1fr 1fr; gap: 3rem 30px; }
}

.entry { position: relative; }
.entry h2 { margin: 0 0 .35rem; font-size: 1.2rem; font-weight: 400; line-height: 1.35; }
.entry h2 a { color: var(--color-brand); text-decoration: none; }
.entry h2 a::after { content: ""; position: absolute; inset: -.5rem; }   /* ganzer Eintrag klickbar */
.entry h2 a:focus-visible { outline: none; }
.entry:focus-within { outline: 2px solid var(--color-brand); outline-offset: .5rem; }
.entry:hover h2 a { text-decoration: underline; }
.entry .meta { margin-bottom: .75rem; }
.entry > p:not(.meta) { margin: 0; }
.entry .more { color: var(--color-brand); }

.meta { margin: 0; font-size: .8125rem; color: var(--color-muted); }
.meta a {
  position: relative;
  z-index: 1;                       /* über dem aufgespannten Eintrags-Link */
  display: inline-block;
  margin-left: .5rem;
  padding-block: .6rem;
  margin-block: -.6rem;             /* größere Tippfläche ohne mehr Platz */
  color: var(--color-brand);
  text-decoration: none;
}
.meta a:hover { text-decoration: underline; }

/* Beitrag */
.post { padding-block: var(--space-4) var(--space-5); }
.post h1 {
  margin: 0 0 .75rem;
  font-size: clamp(1.75rem, 1.3rem + 1.6vw, 2.5rem);
  font-weight: 400;
  color: var(--color-gray);
}
.post .meta { margin-bottom: var(--space-3); color: var(--color-text); }
.post .meta a { margin-left: 0; color: inherit; }

@media (min-width: 992px) {
  .post { padding-top: 5.5rem; }
}

.prose { max-width: 45rem; }
.prose > * { max-width: var(--measure); }
.prose h2,
.prose h3,
.prose h4 { margin: var(--space-4) 0 var(--space-1); color: var(--color-gray); }
.prose h3 { font-size: var(--fs-h3); }
.prose h4 { font-size: 1.05rem; }
.prose ul { padding-left: 1.25rem; }
.prose li + li { margin-top: .5rem; }
.prose a { overflow-wrap: anywhere; }

.prose-figure { margin: var(--space-2) 0; }
.prose-figure img { max-width: 100%; height: auto; }   /* Breite aus den Originalmaßen (250/320px) */

/* Text-/Bildspalten aus den Originalbeiträgen */
.prose .cols { display: grid; gap: var(--space-2); margin-block: var(--space-2); max-width: none; }
.prose .col > :first-child { margin-top: 0; }
.prose .col > :last-child { margin-bottom: 0; }
.prose .col .prose-figure { margin: 0; }

@media (min-width: 768px) {
  .prose .cols { grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 30px; }
}

.post-nav {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin-top: var(--space-5);
}
.btn--small {
  min-height: var(--tap);
  padding: .4rem 1rem;
  border-color: #6c757d;
  background: #6c757d;
  font-size: .9375rem;
  font-weight: 400;
}
.btn--small:hover,
.btn--small:focus-visible { border-color: #5a6268; background: #5a6268; color: #fff; }
.post-nav-prev::before { content: "‹"; font-size: 1.25em; line-height: 1; }
.post-nav-next::after { content: "›"; font-size: 1.25em; line-height: 1; }

.legal { padding-block: 0 var(--space-5); }

/* ==========================================================================
   Kontakt – Formular im grauen Kasten, Beschriftungen links (Desktop)
   ========================================================================== */

.contact-direct { margin: 0; }
.contact-direct a {
  display: inline-block;
  padding-block: .6rem;
  margin-block: -.6rem;
  text-decoration: none;
  overflow-wrap: anywhere;
}
.contact-direct a:hover { text-decoration: underline; }

.contact { padding-block: var(--space-2) var(--space-5); }

.contact-form {
  padding: var(--space-3) var(--gutter);
  margin-inline: calc(-1 * var(--gutter));
  background: #f8f8f8;
  border-block: 1px solid #ddd;
}

.field { margin-bottom: var(--space-3); }
.field label { display: block; margin-bottom: .4rem; font-weight: 600; }
.req { color: var(--color-muted); font-weight: 400; }
.field input,
.field textarea {
  width: 100%;
  min-height: 48px;
  padding: .75rem .85rem;
  border: 1px solid #ccc;
  border-radius: var(--radius);
  font: inherit;
  font-size: max(16px, 1rem);       /* verhindert Auto-Zoom auf iOS */
  color: inherit;
  background: #fff;
  -webkit-appearance: none;
  appearance: none;
}
.field textarea { resize: vertical; min-height: 7rem; }
.field input:focus,
.field textarea:focus { outline: 2px solid var(--color-brand); outline-offset: 0; border-color: transparent; }
.field [aria-invalid="true"] { border-color: var(--color-brand); background: #fdf6f7; }

.field--check { display: flex; gap: .75rem; align-items: flex-start; }
.field--check input {
  flex: none;
  width: 24px;
  min-height: 24px;
  height: 24px;
  margin: .1rem 0 0;
  padding: 0;
  -webkit-appearance: auto;
  appearance: auto;
  accent-color: var(--color-brand);
}
.field--check label { margin: 0; font-weight: 400; }

.form-error { color: var(--color-brand); font-weight: 600; }
.form-actions .btn { width: 100%; border-radius: 0; padding-inline: 2.2rem; font-weight: 400; }
.form-hint { margin: .75rem 0 0; font-size: var(--fs-small); color: var(--color-muted); }

@media (min-width: 600px) {
  .form-actions { display: flex; align-items: center; gap: 1.25rem; }
  .form-actions .btn { width: auto; }
  .form-hint { margin: 0; }
}

@media (min-width: 768px) {
  .contact-form {
    margin-inline: 0;
    padding: 1rem 3.5rem 1rem .6rem;
    border: 1px solid #ddd;
    border-radius: var(--radius);
  }
  /* Beschriftung rechtsbündig links, Feld rechts – wie im Original */
  .field {
    display: grid;
    grid-template-columns: 13rem 1fr;
    gap: .6rem;
    align-items: start;
    margin-bottom: .25rem;
  }
  .field label {
    margin: 0;
    padding-top: .55rem;
    font-size: .875rem;
    font-weight: 400;
    text-align: right;
  }
  .field input { min-height: 34px; padding: .35rem .6rem; font-size: 1rem; }
  .field textarea { min-height: 5rem; padding: .35rem .6rem; font-size: 1rem; }
  .field--check {
    display: flex;
    margin: .75rem 0 1rem 13.6rem;
  }
  .field--check label { padding-top: 0; font-size: .875rem; text-align: left; }
  .form-error,
  .form-actions { margin-left: .4rem; }
}

/* ==========================================================================
   Footer – exakt wie im Original (Helix-Template, Bootstrap-Raster):
   3 gleich breite Spalten mit 30px Abstand ab 992px, darunter gestapelt und Links rechtsbündig.
   Steht wie im Original ganz normal am Seitenende (nicht angeheftet).
   ========================================================================== */

.site-footer {
  background: var(--color-footer);
  color: #fff;
  font-family: Helvetica, Arial, sans-serif;
  font-size: 15px;
  line-height: 1.5;
}

.footer-inner {
  position: relative;
  display: grid;
  padding-top: 6px;                 /* 1px Linie + 5px wie im Original */
  padding-bottom: max(5px, env(safe-area-inset-bottom));
}
/* feine helle Linie oben, über die Inhaltsbreite (wie .container-inner im Original) */
.footer-inner::before {
  content: "";
  position: absolute;
  top: 0;
  left: max(var(--gutter), env(safe-area-inset-left));
  right: max(var(--gutter), env(safe-area-inset-right));
  height: 1px;
  background: rgba(255, 255, 255, .1);
}

.footer-inner p { margin: 0; }

/* Adresse: 10pt, Helvetica Light; „ERIK MARR“ normal */
.footer-address { font-weight: 200; }
.footer-address span { font-size: 10pt; }
.footer-address strong { font-weight: 400; }

/* Kontakt: 10pt mit Telefon-/Brief-Symbol */
.footer-contact { font-size: 10pt; }

.site-footer a {
  color: #fff;
  text-decoration: none;
  transition: color .2s;
}
.site-footer a:hover,
.site-footer a:focus-visible { color: var(--color-brand); }
.site-footer :focus-visible { outline-color: #fff; }

.footer-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0 20px;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 14px;
}
.footer-links a { display: block; }

/* Mobil und Tablet: alles zentriert untereinander */
@media (max-width: 991.98px) {
  .footer-inner { text-align: center; }
  .footer-links { justify-content: center; }
}

/* Symbole als CSS-Masken (keine Icon-Schrift nötig) */
.footer-contact a::before {
  content: "";
  display: inline-block;
  width: 1em;
  height: 1em;
  margin-right: .28em;
  vertical-align: -.12em;
  background: currentColor;
  -webkit-mask: var(--icon) center / contain no-repeat;
  mask: var(--icon) center / contain no-repeat;
}
.footer-contact a[href^="tel:"] {
  --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64c0 247.4 200.6 448 448 448 18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368c-70.4-33.3-127.4-90.3-160.7-160.7l49.3-40.3c13.7-11.2 18.4-30 11.6-46.3l-40-96z'/%3E%3C/svg%3E");
}
.footer-contact a[href^="mailto:"] {
  --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4l217.6 163.2c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4 0-26.5-21.5-48-48-48H48zM0 176v208c0 35.3 28.7 64 64 64h384c35.3 0 64-28.7 64-64V176L294.4 339.2a63.9 63.9 0 0 1-76.8 0L0 176z'/%3E%3C/svg%3E");
}

/* Touch-Geräte: größere, unsichtbare Tippflächen – ohne das Erscheinungsbild zu verändern */
@media (pointer: coarse) {
  .site-footer a { display: inline-block; padding-block: 8px; margin-block: -8px; }
}

@media (min-width: 992px) {
  .footer-inner {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: 30px;
    align-items: start;
  }
}

/* ==========================================================================
   Animationen
   Alle Bewegungen nur, wenn JS läuft und der Nutzer keine reduzierte Bewegung wünscht.
   ========================================================================== */

/* Seitenwechsel: weiches Überblenden zwischen Seiten (View Transitions API) */
@view-transition { navigation: auto; }

::view-transition-old(root) { animation: vt-out .25s ease both; }
::view-transition-new(root) { animation: vt-in .45s var(--ease-out) both; }
.site-header { view-transition-name: site-header; }
.site-footer { view-transition-name: site-footer; }

@keyframes vt-out { to { opacity: 0; transform: translateY(-8px); } }
@keyframes vt-in { from { opacity: 0; transform: translateY(12px); } }

/* Lesefortschritt auf Blogbeiträgen */
.progress {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 60;
  width: 100%;
  height: 3px;
  background: var(--color-brand);
  transform: scaleX(var(--progress, 0));
  transform-origin: 0 50%;
}

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

  /* Header: beim Laden einfahren, beim Runterscrollen ausblenden, beim Hochscrollen zeigen */
  .site-header {
    animation: header-in .8s var(--ease-out) backwards;
    transition: box-shadow .2s, transform .4s var(--ease-out);
  }
  .site-header.is-hidden { transform: translateY(-100%); }

  @keyframes header-in { from { opacity: 0; transform: translateY(-100%); } }

  /* Hero: Bild blendet auf, das Zitat danach ruhig ein */
  .hero-image { animation: hero-in 1.8s var(--ease-out) both; }
  @keyframes hero-in { from { opacity: 0; clip-path: inset(6% 4% 6% 4%); } to { opacity: 1; clip-path: inset(0); } }

  .hero-quote { animation: quote-in 1.6s ease 1s both; }
  @keyframes quote-in { from { opacity: 0; } }

  /* Parallax des Titelbilds per Scroll-Driven Animation (wo unterstützt) */
  @supports (animation-timeline: view()) {
    .hero-image {
      animation: hero-in 1.8s var(--ease-out) both, hero-parallax linear both;
      animation-timeline: auto, view();
      animation-range: normal, exit;
    }
    @keyframes hero-parallax {
      from { background-position: 50% 30%; }
      to { background-position: 50% 70%; }
    }
  }

  /* Scroll-Einblendungen (gestaffelt über --i, gesetzt per JS) */
  .reveal,
  .page-head .container > *,
  .entry,
  .prose > *,
  .contact-form,
  .post-nav,
  .post h1,
  .post .meta {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity .7s var(--ease-out), transform .7s var(--ease-out);
    transition-delay: calc(var(--i, 0) * 90ms);
  }

  /* Bilder werden wie ein Vorhang aufgezogen */
  .video-frame,
  .slider {
    clip-path: inset(0 0 100% 0);
    transition: clip-path 1.1s var(--ease-out);
    transition-delay: calc(var(--i, 0) * 90ms + 100ms);
  }
  .slider.is-visible,
  .video-frame.is-visible { clip-path: none !important; }

  .is-visible { opacity: 1 !important; transform: none !important; clip-path: inset(0) !important; }

  /* Sicherheitsnetz: läuft das Skript nicht (vollständig), wird nichts dauerhaft versteckt */
  :root:not(.reveal-ready) :is(.reveal, .page-head .container > *, .entry, .prose > *, .contact-form,
    .post-nav, .post h1, .post .meta, .video-frame, .slider) {
    animation: reveal-failsafe .6s ease 1.5s forwards;
  }
  @keyframes reveal-failsafe { to { opacity: 1; transform: none; clip-path: none; } }


  /* Slider: Text der aktiven Folie blendet ein */
  .slide-text { transition: opacity .5s ease, transform .5s var(--ease-out); }
  .slide[inert] .slide-text { opacity: 0; transform: translateX(-20px); }

  /* Mobiles Menü: Einträge gestaffelt */
  @media (max-width: 991px) {
    .main-nav > ul > li,
    .nav-contact {
      opacity: 0;
      transform: translateX(30px);
      transition: opacity .4s ease, transform .4s var(--ease-out);
    }
    .main-nav.is-open > ul > li,
    .main-nav.is-open .nav-contact { opacity: 1; transform: none; }
    .main-nav.is-open > ul > li:nth-child(1) { transition-delay: .08s; }
    .main-nav.is-open > ul > li:nth-child(2) { transition-delay: .12s; }
    .main-nav.is-open > ul > li:nth-child(3) { transition-delay: .16s; }
    .main-nav.is-open > ul > li:nth-child(4) { transition-delay: .2s; }
    .main-nav.is-open > ul > li:nth-child(5) { transition-delay: .24s; }
    .main-nav.is-open .nav-contact { transition-delay: .3s; }
  }
}

@media (prefers-reduced-motion: reduce) {
  html,
  .slider-track { scroll-behavior: auto; }
  ::view-transition-old(root),
  ::view-transition-new(root) { animation: none; }
}
