/* Lokal gehostete Schriften (DSGVO) – latin + latin-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('../fonts/hanken-grotesk-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;
}
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('../fonts/hanken-grotesk-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;
}
@font-face {
  font-family: 'Schibsted Grotesk';
  font-style: normal;
  font-weight: 500 800;
  font-display: swap;
  src: url('../fonts/schibsted-grotesk-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;
}
@font-face {
  font-family: 'Schibsted Grotesk';
  font-style: normal;
  font-weight: 500 800;
  font-display: swap;
  src: url('../fonts/schibsted-grotesk-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;
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400 500;
  font-display: swap;
  src: url('../fonts/jetbrains-mono-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;
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400 500;
  font-display: swap;
  src: url('../fonts/jetbrains-mono-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;
}

* { box-sizing: border-box; }
  body { margin: 0; background: #FBF9F4; font-family: 'Hanken Grotesk', system-ui, sans-serif; color: #0F2523; -webkit-font-smoothing: antialiased; }
  a { color: #005A55; text-decoration: none; }
  a:hover { color: #005A55; }
  input, textarea, select, button { font-family: inherit; }
  [data-nav][data-active="true"] { background: #EEF4DA; color: #005A55; }
  [data-drawer][data-active="true"] { color: #C9DF6A; }
  @keyframes drawerIn { from { transform: translateX(100%); } to { transform: none; } }
  @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
  @media (max-width: 1024px) {
    [style*="sticky"] { position: static !important; top: auto !important; }
  }
  @media (max-width: 720px) {
    [data-hide-mobile] { display: none !important; }
    [data-stack-mobile] { grid-template-columns: 1fr !important; text-align: left !important; }
    [data-mobile-full] { max-width: 100% !important; justify-self: stretch !important; }
  }
  ::selection { background: #CBE6D4; }
  @property --sh-angle { syntax: "<angle>"; initial-value: 0deg; inherits: false; }
  @property --sh-offset { syntax: "<angle>"; initial-value: 0deg; inherits: false; }
  @property --sh-percent { syntax: "<percentage>"; initial-value: 5%; inherits: false; }
  @property --sh-shine { syntax: "<color>"; initial-value: #FFFFFF; inherits: false; }
  .shiny-cta {
    --base: #005A55; --label: #FFFFFF; --accent: #91B500; --accent-soft: #D6EA8A;
    --sh-duration: 3s;
    isolation: isolate; position: relative; overflow: hidden; cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center; gap: 10px;
    padding: 16px 30px; font-size: 16px; font-weight: 600; line-height: 1.2;
    border: 1px solid transparent; border-radius: 999px; color: var(--label);
    background: linear-gradient(var(--base), var(--base)) padding-box,
      conic-gradient(from calc(var(--sh-angle) - var(--sh-offset)), transparent,
        var(--accent) var(--sh-percent),
        var(--sh-shine) calc(var(--sh-percent) * 2),
        var(--accent) calc(var(--sh-percent) * 3),
        transparent calc(var(--sh-percent) * 4)) border-box;
    transition: 0.8s cubic-bezier(0.25, 1, 0.5, 1);
    transition-property: --sh-offset, --sh-percent, --sh-shine, translate, box-shadow;
    animation: sh-spin var(--sh-duration) linear infinite;
  }
  .shiny-cta::after {
    content: ""; position: absolute; left: 50%; top: 50%; translate: -50% -50%;
    width: 100%; aspect-ratio: 1; z-index: -1; pointer-events: none;
    background: linear-gradient(-50deg, transparent, var(--accent), transparent);
    mask-image: radial-gradient(circle at bottom, transparent 40%, black);
    opacity: 0.5; animation: sh-shimmer calc(var(--sh-duration) * 1.6) linear infinite;
  }
  .shiny-cta > span { position: relative; z-index: 1; }
  .shiny-cta:is(:hover, :focus-visible) { --sh-percent: 20%; --sh-offset: 95deg; --sh-shine: var(--accent-soft); color: var(--label); translate: 0 -2px; box-shadow: 0 12px 28px -8px color-mix(in srgb, var(--accent) 55%, transparent), inset 0 0 0 1px color-mix(in srgb, var(--accent) 35%, transparent); }
  .shiny-cta:is(:hover, :focus-visible)::after { opacity: 0.85; }
  .shiny-cta:is(:hover, :focus-visible)::before { opacity: 0.7; }
  .shiny-cta > span { transition: letter-spacing 0.5s cubic-bezier(0.25, 1, 0.5, 1); }
  .shiny-cta:is(:hover, :focus-visible) > span { letter-spacing: 0.015em; }
  a.shiny-cta, a.shiny-cta:hover, a.shiny-cta:focus-visible { color: var(--label); text-decoration: none; }
  .shiny-cta:active { translate: 0 1px; box-shadow: none; }
  .shiny-cta::after { transition: opacity 0.5s ease; }
  .shiny-cta::before { transition: opacity 0.5s ease; }
  .shiny-cta[data-variant="light"] { --base: #FFFFFF; --label: #005A55; --accent: #005A55; --accent-soft: #91B500; }
  .shiny-cta[data-variant="green"] { --base: #91B500; --label: #0F2523; --accent: #FFFFFF; --accent-soft: #005A55; }
  .shiny-cta::before {
    content: ""; position: absolute; left: 50%; top: 50%; translate: -50% -50%; z-index: -1; pointer-events: none;
    --dot: 2px; --space: calc(var(--dot) * 2);
    width: calc(100% - 6px); height: calc(100% - 6px); border-radius: inherit;
    background: radial-gradient(circle at var(--dot) var(--dot), #FFFFFF calc(var(--dot) / 4), transparent 0) padding-box;
    background-size: var(--space) var(--space); background-repeat: space;
    mask-image: conic-gradient(from calc(var(--sh-angle) + 45deg), black, transparent 10% 90%, black);
    opacity: 0.45; animation: sh-spin var(--sh-duration) linear infinite;
  }
  .shiny-cta[data-variant="light"]::before { background: radial-gradient(circle at var(--dot) var(--dot), #005A55 calc(var(--dot) / 4), transparent 0) padding-box; background-size: var(--space) var(--space); background-repeat: space; opacity: 0.35; }
  @keyframes rise { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }
  @keyframes reveal { from { opacity: 0; transform: translateY(32px); } to { opacity: 1; transform: none; } }
  @keyframes kenburns { from { transform: scale(1.08); } to { transform: scale(1); } }
  @keyframes marquee { to { transform: translateX(-50%); } }
  @keyframes pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(145,181,0,0.55); } 70% { box-shadow: 0 0 0 9px rgba(145,181,0,0); } }
  @keyframes ring { 0% { transform: scale(0.35); opacity: 0.9; } 100% { transform: scale(1.6); opacity: 0; } }
  @keyframes fadeDown { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
  @keyframes twinkle { 0%, 100% { opacity: 0.22; transform: scale(0.75); } 50% { opacity: 1; transform: scale(1); } }
  @keyframes streak { 0% { transform: translateX(-40%); opacity: 0; } 12% { opacity: 1; } 88% { opacity: 1; } 100% { transform: translateX(500%); opacity: 0; } }
  @keyframes glowPulse { 0%, 100% { opacity: 0.55; } 50% { opacity: 1; } }
  @keyframes lineFill { from { transform: scaleX(0); } to { transform: scaleX(1); } }
  @keyframes dotTravel { from { left: 0%; } to { left: 100%; } }
  @keyframes markerOn1 { 0%, 100% { background: #005A55; box-shadow: 0 0 0 8px rgba(145,181,0,0.22); } }
  @keyframes markerOn2 { 0%, 49.5% { background: #F4EFE4; box-shadow: 0 0 0 0 rgba(145,181,0,0); } 50%, 100% { background: #005A55; box-shadow: 0 0 0 8px rgba(145,181,0,0.22); } }
  @keyframes markerOn3 { 0%, 98% { background: #F4EFE4; box-shadow: 0 0 0 0 rgba(145,181,0,0); } 100% { background: #005A55; box-shadow: 0 0 0 8px rgba(145,181,0,0.22); } }
  @keyframes slideUp { from { opacity: 0; transform: translateY(40px); } to { opacity: 1; transform: none; } }
  .shiny-cta[data-size="sm"] { padding: 11px 20px; font-size: 14.5px; }
  @keyframes sh-spin { to { --sh-angle: 360deg; } }
  @keyframes sh-shimmer { to { rotate: 360deg; } }
  @media (prefers-reduced-motion: reduce) {
    .shiny-cta, .shiny-cta::before, .shiny-cta::after { animation: none !important; }
    video[autoplay] { display: none !important; }
    [data-hero-fallback] { display: block !important; position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: cover; }
  }

/* --- Export: Hover-/Fokus-Zustände (aus den Inline-Styles übernommen) --- */
.x1:hover{background:#EEF4DA;color:#005A55; !important}
.x2:hover{background:rgba(255,255,255,0.14); !important}
.x3:hover{background:#EEF4DA; !important}
.x4:hover{background:#F4EFE4;transform:translateY(-5px);box-shadow:0 22px 44px rgba(0,42,40,0.12); !important}
.x5:focus{border-color:#005A55; !important}
.x6:hover{background:#0F2523;color:#FFFFFF; !important}
.x7:hover{background:rgba(255,255,255,0.14);color:#FFFFFF; !important}
.x8:hover{transform:translateY(-5px);box-shadow:0 22px 44px rgba(0,42,40,0.12); !important}
.x9:hover{background:#EEF4DA;border-color:#005A55; !important}

/* --- Export: Navigation, Off-Canvas, FAQ, Formular --- */
.nav-burger { display: none; }
@media (max-width: 1024px) {
  .nav-desktop { display: none !important; }
  .nav-burger { display: inline-flex !important; }
}
[data-drawer-root][hidden], [data-faq-panel][hidden], [data-form-success][hidden], [data-form-live][hidden] { display: none !important; }
[data-interest] { border: 1.5px solid #E6E0D3; transition: background .2s, color .2s, border-color .2s; }
[data-interest][data-selected="true"] { background: #005A55; color: #FFFFFF; border-color: #005A55; }
[data-interest][data-selected="false"] { background: #FFFFFF; color: #566158; }
img { max-width: 100%; }
