/* cyrillic-ext */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("../assets/fonts/geist-cyrillic-ext.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("../assets/fonts/geist-cyrillic.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("../assets/fonts/geist-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("../assets/fonts/geist-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("../assets/fonts/geist-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../assets/fonts/geist-cyrillic-ext.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../assets/fonts/geist-cyrillic.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../assets/fonts/geist-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../assets/fonts/geist-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../assets/fonts/geist-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../assets/fonts/geist-cyrillic-ext.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../assets/fonts/geist-cyrillic.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../assets/fonts/geist-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../assets/fonts/geist-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../assets/fonts/geist-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../assets/fonts/geist-cyrillic-ext.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../assets/fonts/geist-cyrillic.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../assets/fonts/geist-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../assets/fonts/geist-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../assets/fonts/geist-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Instrument Serif';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../assets/fonts/instrumentserif-italic-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Instrument Serif';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../assets/fonts/instrumentserif-italic-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Instrument Serif';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../assets/fonts/instrumentserif-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Instrument Serif';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../assets/fonts/instrumentserif-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


    html { scroll-behavior: smooth; }
    html, body { margin: 0; padding: 0; background: #FAFAF7; color: #0B0B0B; font-family: 'Geist', -apple-system, system-ui, sans-serif; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
    *, *::before, *::after { box-sizing: border-box; }
    img { display: block; max-width: 100%; }
    a { color: inherit; text-decoration: none; }
    button { font-family: inherit; }
    ::selection { background: #0B0B0B; color: #FAFAF7; }

    /* Apple-style scroll reveal — pure CSS, no JS dependency.
       Elements are visible by default (failsafe); when scroll-driven animations are supported they fade in on view. */
    .rc-reveal { opacity: 1; transform: none; }
    @supports (animation-timeline: view()) {
      .rc-reveal {
        animation: rc-reveal-in linear both;
        animation-timeline: view();
        animation-range: entry 0% entry 40%;
      }
    }
    @keyframes rc-reveal-in {
      from { opacity: 0; transform: translateY(40px); }
      to   { opacity: 1; transform: translateY(0); }
    }
    @media (prefers-reduced-motion: reduce) {
      .rc-reveal { animation: none !important; opacity: 1 !important; transform: none !important; }
    }

    @keyframes rc-blink { 0%, 70%, 100% { opacity: 0.25; } 35% { opacity: 1; } }

    /* === RESPONSIVE — tablet & below === */
    @media (max-width: 1024px) {
      /* nav */
      [data-rc-nav] {
        padding: 16px 20px !important;
        mix-blend-mode: normal !important;
        background: rgba(11,11,11,0.72) !important;
        backdrop-filter: blur(14px) saturate(140%) !important;
        -webkit-backdrop-filter: blur(14px) saturate(140%) !important;
        color: #FAFAF7 !important;
      }
      .rc-nav-links { display: none !important; }
      [data-rc-nav] a[href="#kontakt"] {
        padding: 9px 16px !important; font-size: 10px !important;
        background: #FAFAF7 !important; color: #0B0B0B !important; border-color: #FAFAF7 !important;
      }

      /* grids → stack */
      .rc-grid-2, .rc-grid-3, .rc-grid-4 {
        grid-template-columns: 1fr !important;
        gap: 40px !important;
        min-height: auto !important;
      }
      .rc-grid-2 > *, .rc-grid-3 > *, .rc-grid-4 > * {
        position: static !important;
        height: auto !important;
        min-height: auto !important;
        align-self: auto !important;
        min-width: 0 !important;   /* erlaubt 1fr-Spalten zu schrumpfen → kein horizontaler Overflow */
      }
      /* sticky columns become inline */
      section .rc-grid-2 > div[style*="position: sticky"],
      section .rc-grid-2 > div[style*="sticky"] {
        position: static !important; height: auto !important; padding: 12vh 24px !important;
      }
      /* image columns inside grid-2 — clean fixed height */
      section .rc-grid-2 > div[style*="overflow: hidden"][style*="min-height"],
      section .rc-grid-2 > div[style*="position: relative"][style*="overflow: hidden"] {
        min-height: 56vh !important; padding: 0 !important;
      }
      /* parallax containers — disable transform on mobile */
      [data-rc-img-parallax], [data-rc-hero-img] {
        transform: none !important; inset: 0 !important;
      }

      /* typography */
      .rc-h-display { font-size: clamp(44px, 11vw, 84px) !important; line-height: 0.98 !important; letter-spacing: -0.02em !important; }
      .rc-h-section { font-size: clamp(38px, 9vw, 72px) !important; line-height: 1.02 !important; letter-spacing: -0.018em !important; }

      /* paddings */
      .rc-pad-x { padding-left: 22px !important; padding-right: 22px !important; }
      .rc-pad-y { padding-top: 12vh !important; padding-bottom: 12vh !important; }
      section { padding-left: 0 !important; padding-right: 0 !important; }
      section > div { padding-left: 22px !important; padding-right: 22px !important; }

      /* hero */
      .rc-hero-meta { display: none !important; }
      #top { min-height: 620px !important; }

      /* leistungen / cards */
      [class*="rc-grid-4"] > * { padding: 28px 22px !important; }

      /* bridges shrink */
      div[aria-hidden="true"][style*="linear-gradient"] { height: 120px !important; }

      /* images flow */
      img { max-width: 100% !important; height: auto !important; }

      /* fix inner 1fr 1fr 2-col text & feature grids */
      div[style*="grid-template-columns: 1fr 1fr"],
      div[style*="grid-template-columns:1fr 1fr"],
      div[style*="grid-template-columns: 1.4fr 1fr"],
      div[style*="grid-template-columns: 1.6fr 1fr"],
      div[style*="grid-template-columns: repeat(3"],
      div[style*="grid-template-columns: repeat(4"] {
        grid-template-columns: 1fr !important;
        gap: 32px !important;
      }

      /* Lebenslauf-Timeline: Jahr / Rolle / Beschreibung gestapelt */
      div[style*="grid-template-columns: 180px"] {
        grid-template-columns: 1fr !important;
        gap: 6px !important;
        padding: 22px 0 !important;
      }
      div[style*="grid-template-columns: 180px"] > div:first-child { margin-bottom: 4px; }

      /* contact video */
      video { width: 100% !important; height: auto !important; }

      /* globaler Schutz gegen horizontalen Overflow */
      html, body { overflow-x: hidden !important; }
    }

    /* === phone === */
    @media (max-width: 640px) {
      .rc-h-display { font-size: clamp(40px, 13vw, 64px) !important; }
      .rc-h-section { font-size: clamp(32px, 10vw, 52px) !important; }
      .rc-pad-x { padding-left: 18px !important; padding-right: 18px !important; }
      section > div { padding-left: 18px !important; padding-right: 18px !important; }
      [data-rc-nav] { padding: 14px 18px !important; }
      [data-rc-nav] > a:first-child { font-size: 11px !important; letter-spacing: 0.18em !important; }
      [data-rc-nav] a[href="#kontakt"] { padding: 8px 14px !important; font-size: 10px !important; }
      /* credibility strip — Zahlen auf dem Phone etwas kleiner (nur die Stat-Zahlen,
         nicht die Labels anderer repeat(4)-Grids wie Kontakt/Leistungen) */
      div[style*="grid-template-columns: repeat(4"] { gap: 36px !important; }
      [data-stat] { font-size: 52px !important; }
      /* hero → statement Bridge auf dem Phone weglassen */
      #top + * { display: none; }
      /* Scroll-Hinweis auf dem Phone ausblenden (zu wenig Platz, würde Text berühren) */
      .rc-scroll-cue { display: none !important; }
    }
  

/* === Leistungen: vier Karten — Trennlinie & Dauer-Label auf einen Level ===
   Überschrift und Beschreibung auf gleiche Mindesthöhe bringen und die Liste
   am Kartenkopf verankern (statt margin:auto), damit die Trennlinie über allen
   vier Karten exakt auf einer Höhe sitzt. Gleiche Listenhöhe → Dauer-Label
   ebenfalls auf einer Linie. */
#leistungen .rc-grid-4 > div > h3 { min-height: 2.2em; }
#leistungen .rc-grid-4 > div > p  { min-height: 8.2em; }
#leistungen .rc-grid-4 > div > ul { margin-top: 0 !important; min-height: 12em; }
@media (max-width: 1024px) {
  #leistungen .rc-grid-4 > div > h3,
  #leistungen .rc-grid-4 > div > p  { min-height: 0; }
  #leistungen .rc-grid-4 > div > ul { min-height: 0; }
}
