@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800;900&display=swap');

html, body {
  scroll-behavior: smooth;
  overflow-x: hidden;
  width: 100%;
  position: relative;
  margin: 0;
  padding: 0;
}

* {
  box-sizing: border-box;
}

/* -- Tokens ------------------------------------------------ */
:root {
  /* Backgrounds */
  --bg: #F8FAFC;
  --bg-2: #F1F5F9;
  --surface: #FFFFFF;
  --surface-2: #F8FAFC;
  --surface-3: #F1F5F9;

  /* Primary Dark Blue / Indigo */
  --blue: #1E3A8A;
  --blue-h: #1E40AF;
  --blue-l: #EFF6FF;
  --blue-m: rgba(30, 58, 138, 0.15);

  /* Secondary Cyan */
  --cyan: #06B6D4;
  --cyan-h: #0891B2;
  --cyan-l: #ECFEFF;

  --accent: #059669;
  --accent-l: #ECFDF5;
  --purple: #7C3AED;
  --orange: #EA580C;
  --pink: #DB2777;

  --border: #E2E8F0;
  --border-2: #CBD5E1;

  --text: #0F172A;
  --text-2: #334155;
  --text-3: #64748B;

  /* Category Accents */
  --cat-energie: #EA580C;
  /* Orange */
  --cat-energie-l: #FFF7ED;
  --cat-business: #7C3AED;
  /* Violett */
  --cat-business-l: #F5F3FF;
  --cat-mobil: #2563EB;
  /* Blau */
  --cat-mobil-l: #EFF6FF;
  --cat-familie: #10B981;
  /* Grün */
  --cat-familie-l: #ECFDF5;
  --cat-wohnen: #059669;
  --cat-wohnen-l: #ECFDF5;
  --cat-kfw: #1E3A8A;
  --cat-kfw-l: #EFF6FF;

  --font: 'Poppins', system-ui, -apple-system, sans-serif;
  --r-sm: 8px;
  --r-md: 12px;
  --r-lg: 16px;
  --r-xl: 20px;
  --r-2xl: 24px;
  --r-full: 9999px;
  --shadow-sm: 0 1px 3px rgba(15, 23, 42, 0.08);
  --shadow-md: 0 4px 12px rgba(15, 23, 42, 0.08), 0 2px 4px rgba(15, 23, 42, 0.04);
  --shadow-lg: 0 15px 35px rgba(15, 23, 42, 0.1), 0 5px 15px rgba(15, 23, 42, 0.05);
  --shadow-blue: 0 8px 30px rgba(30, 58, 138, 0.2);
  --header-h: 72px;
  --max-w: 1200px;
  --t: 200ms cubic-bezier(0.4, 0, 0.2, 1);
  --t-md: 300ms cubic-bezier(0.4, 0, 0.2, 1);
}

[data-theme="dark"] {
  /* Dark palette */
  --bg: #0F172A; /* Deeper, cleaner blue-gray */
  --bg-2: #1E293B;
  --surface: #1E293B;
  --surface-2: #334155;
  --surface-3: #475569;

  --blue: #60A5FA;
  --blue-h: #93C5FD;
  --blue-l: rgba(96, 165, 250, 0.15);
  --blue-m: rgba(96, 165, 250, 0.1);

  --border: rgba(255, 255, 255, 0.08);
  --border-2: rgba(255, 255, 255, 0.15);

  --text: #F8FAFC;
  --text-2: #94A3B8;
  --text-3: #64748B;

  --cat-energie-l: rgba(234, 88, 12, 0.15);
  --cat-business-l: rgba(124, 58, 237, 0.15);
  --cat-mobil-l: rgba(37, 99, 235, 0.15);
  --cat-familie-l: rgba(16, 185, 129, 0.15);
  --cat-wohnen-l: rgba(5, 150, 105, 0.15);
  --cat-kfw: #3B82F6;
  --cat-kfw-l: rgba(59, 130, 246, 0.15);

  --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.5);
  --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.5), 0 2px 4px rgba(0, 0, 0, 0.3);
  --shadow-lg: 0 15px 35px rgba(0, 0, 0, 0.6), 0 5px 15px rgba(0, 0, 0, 0.4);
  --shadow-blue: 0 8px 30px rgba(59, 130, 246, 0.2);
}

/* -- Reset ------------------------------------------------- */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0
}

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%
}

body {
  font-family: var(--font);
  background: var(--bg);
  color: var(--text);
  line-height: 1.6;
  overflow-x: hidden
}

img,
svg {
  display: block;
  max-width: 100%
}

a {
  color: inherit;
  text-decoration: none
}

ul,
ol {
  list-style: none
}

button,
input,
select,
textarea {
  font: inherit
}

/* -- Layout ------------------------------------------------ */
.container {
  max-width: var(--max-w);
  margin-inline: auto;
  padding-inline: 1.5rem
}

@media(max-width:640px) {
  .container {
    padding-inline: 1rem
  }
}

.section {
  padding-block: 5rem
}

.section--sm {
  padding-block: 3rem
}

/* -- Typography -------------------------------------------- */
h1,
h2,
h3,
h4 {
  line-height: 1.2;
  font-weight: 700;
  color: var(--text)
}

.text-gradient {
  background: linear-gradient(135deg, var(--blue) 0%, var(--cyan) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text
}

.section-label {
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--blue);
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  margin-bottom: .75rem
}

.section-label::before {
  content: '';
  width: 16px;
  height: 2px;
  background: var(--blue);
  border-radius: 2px;
  flex-shrink: 0
}

.section-title {
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  font-weight: 800;
  color: var(--text);
  margin-bottom: .875rem;
  letter-spacing: -.025em
}

.section-subtitle {
  font-size: 1rem;
  color: var(--text-2);
  max-width: 540px;
  line-height: 1.75
}

/* -- Buttons & Links --------------------------------------- */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 20px;
  border-radius: var(--r-md);
  font-size: .9rem;
  font-weight: 600;
  cursor: pointer;
  transition: all var(--t);
  text-decoration: none;
  font-family: 'Poppins', sans-serif !important;
  border: none;
  outline: none;
  white-space: nowrap;
  text-decoration: none
}

.btn:active {
  transform: scale(.98)
}

.btn--primary {
  background: var(--blue);
  color: #fff;
  box-shadow: var(--shadow-blue)
}

.btn--primary:hover {
  background: var(--blue-h);
  box-shadow: 0 12px 40px rgba(56, 189, 248, 0.4);
  transform: translateY(-1px)
}

.btn--ghost {
  background: var(--surface);
  color: var(--text-2);
  border: 1.5px solid var(--border);
  box-shadow: var(--shadow-sm)
}

.btn--ghost:hover {
  border-color: var(--border-2);
  color: var(--text);
  background: var(--bg-2)
}

.btn--outline {
  background: transparent;
  color: var(--blue);
  border: 1.5px solid #C5CEFB
}

.btn--outline:hover {
  background: var(--blue-l);
  border-color: var(--blue)
}

.btn--accent {
  background: var(--accent);
  color: #fff;
  box-shadow: 0 4px 16px rgba(5, 150, 105, .25)
}

.btn--accent:hover {
  background: #047857;
  transform: translateY(-1px)
}

.btn--lg {
  padding: .875rem 2rem;
  font-size: 1rem;
  border-radius: var(--r-xl)
}

.btn--sm {
  padding: .35rem .875rem;
  font-size: .75rem;
  border-radius: var(--r-sm)
}

.w-full {
  width: 100%
}

/* -- Badges ------------------------------------------------ */
.badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 10px;
  border-radius: var(--r-full);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .04em
}

.badge--energie { background: #FFF4ED; color: #C2410C; }
.badge--business { background: #F5F3FF; color: #6D28D9; }
.badge--mobil { background: #ECFEFF; color: #0E7490; }
.badge--familie { background: #FDF2F8; color: #BE185D; }
.badge--wohnen { background: #EDEFFD; color: #3B5FA0; }
.badge--kfw { background: var(--blue-l); color: var(--blue); }

[data-theme="dark"] .badge--energie { background: rgba(234, 88, 12, 0.15); color: #FB923C; }
[data-theme="dark"] .badge--business { background: rgba(124, 58, 237, 0.15); color: #A78BFA; }
[data-theme="dark"] .badge--mobil { background: rgba(37, 99, 235, 0.15); color: #60A5FA; }
[data-theme="dark"] .badge--familie { background: rgba(16, 185, 129, 0.15); color: #34D399; }
[data-theme="dark"] .badge--wohnen { background: rgba(5, 150, 105, 0.15); color: #4ADE80; }
[data-theme="dark"] .badge--kfw { background: rgba(59, 130, 246, 0.15); color: #93C5FD; }

/* -- HEADER ------------------------------------------------ */
.header {
  position: sticky;
  top: 0;
  z-index: 100;
  height: var(--header-h);
  background: rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid var(--border);
  transition: background var(--t), border-color var(--t);
}

[data-theme="dark"] .header {
  background: rgba(30, 41, 59, 0.9);
  /* var(--surface) */
}

.header__inner {
  display: flex;
  align-items: center;
  height: 100%;
  gap: 1.5rem
}

.header__logo {
  display: flex;
  align-items: center;
  gap: .625rem;
  font-weight: 800;
  font-size: 1rem;
  color: var(--text);
  flex-shrink: 0;
  letter-spacing: -.02em;
  text-decoration: none
}

.header__logo-icon {
  width: 32px;
  height: 32px
}

.header__logo-divider {
  width: 1px;
  height: 18px;
  background: var(--border);
  margin-inline: .25rem
}

.header__nav {
  display: flex;
  align-items: center;
  gap: .125rem;
  flex: 1
}

.header__nav-link {
  padding: .45rem .875rem;
  border-radius: var(--r-md);
  font-size: .84rem;
  font-weight: 500;
  color: var(--text-2);
  transition: color var(--t), background var(--t)
}

.header__nav-link:hover {
  color: var(--text);
  background: var(--bg-2)
}

.header__nav-link.active {
  color: var(--blue);
  background: var(--blue-l)
}

.header__actions {
  display: flex;
  align-items: center;
  gap: .625rem;
  margin-left: auto
}

.header__search-trigger {
  display: flex;
  align-items: center;
  gap: .5rem;
  padding: .45rem .875rem;
  border: 1.5px solid var(--border);
  border-radius: var(--r-full);
  background: var(--bg-2);
  font-size: .8rem;
  font-weight: 500;
  color: var(--text-3);
  cursor: pointer;
  transition: border-color var(--t), color var(--t);
  width: 180px
}

.header__search-trigger:hover {
  border-color: var(--border-2);
  color: var(--text-2)
}

.header__search-trigger svg {
  flex-shrink: 0
}

.header__burger {
  display: none;
  flex-direction: column;
  gap: 4px;
  cursor: pointer;
  padding: .5rem;
  border-radius: var(--r-sm);
  border: none;
  background: none
}

.header__burger span {
  display: block;
  width: 20px;
  height: 1.5px;
  background: var(--text);
  border-radius: 2px;
  transition: transform var(--t-md), opacity var(--t)
}

.header__burger.open span:nth-child(1) {
  transform: translateY(5.5px) rotate(45deg)
}

.header__burger.open span:nth-child(2) {
  opacity: 0
}

.header__burger.open span:nth-child(3) {
  transform: translateY(-5.5px) rotate(-45deg)
}

.header__mobile-nav {
  display: none;
  position: fixed;
  top: var(--header-h);
  left: 0;
  right: 0;
  background: var(--surface);
  border-bottom: 1px solid var(--border);
  box-shadow: var(--shadow-lg);
  padding: 1rem 1.5rem;
  flex-direction: column;
  gap: .25rem;
  z-index: 99
}

.header__mobile-nav.open {
  display: flex
}

.header__mobile-nav a {
  display: block;
  padding: .75rem 1rem;
  border-radius: var(--r-md);
  font-weight: 500;
  color: var(--text-2);
  transition: background var(--t), color var(--t)
}

.header__mobile-nav a:hover {
  background: var(--bg-2);
  color: var(--text)
}

@media(max-width:768px) {

  .header__nav,
  .header__search-trigger {
    display: none
  }

  .header__burger {
    display: flex
  }
}

/* -- FOOTER ------------------------------------------------ */
.footer {
  background: var(--text);
  color: rgba(255, 255, 255, .7);
  padding-top: 3.5rem;
  padding-bottom: 2rem
}

.footer__grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 3rem;
  margin-bottom: 3rem
}

.footer__brand-logo {
  display: flex;
  align-items: center;
  gap: .625rem;
  font-weight: 800;
  font-size: .95rem;
  color: #fff;
  margin-bottom: .875rem
}

.footer__brand-desc {
  font-size: .82rem;
  line-height: 1.75;
  color: rgba(255, 255, 255, .4);
  max-width: 240px
}

.footer__col-title {
  font-size: .68rem;
  font-weight: 700;
  color: rgba(255, 255, 255, .5);
  letter-spacing: .1em;
  text-transform: uppercase;
  margin-bottom: .875rem
}

.footer__links {
  display: flex;
  flex-direction: column;
  gap: .5rem
}

.footer__links a {
  font-size: .82rem;
  color: rgba(255, 255, 255, .45);
  transition: color var(--t)
}

.footer__links a:hover {
  color: rgba(255, 255, 255, .85)
}

.footer__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-top: 2rem;
  border-top: 1px solid rgba(255, 255, 255, .08);
  font-size: .78rem;
  color: rgba(255, 255, 255, .3);
  flex-wrap: wrap
}

.footer__bottom-links {
  display: flex;
  gap: 1.5rem
}

.footer__bottom-links a {
  color: rgba(255, 255, 255, .3);
  transition: color var(--t)
}

.footer__bottom-links a:hover {
  color: rgba(255, 255, 255, .6)
}

@media(max-width:960px) {
  .footer__grid {
    grid-template-columns: 1fr 1fr;
    gap: 2rem
  }
}

@media(max-width:640px) {
  .footer__grid {
    grid-template-columns: 1fr
  }

  .footer__bottom {
    flex-direction: column;
    text-align: center
  }

  .footer__bottom-links {
    justify-content: center
  }
}

/* -- HERO -------------------------------------------------- */
.hero {
  position: relative;
  padding: 5.5rem 0 5rem;
  overflow: hidden;
  background: var(--surface)
}

.hero__bg {
  position: absolute;
  inset: 0;
  pointer-events: none
}

.hero__bg-grid {
  position: absolute;
  inset: 0;
  background-image: linear-gradient(var(--border) 1px, transparent 1px), linear-gradient(90deg, var(--border) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: radial-gradient(ellipse 70% 60% at 60% 40%, black 20%, transparent 80%)
}

.hero__bg-blob {
  position: absolute;
  top: -120px;
  right: -100px;
  width: 700px;
  height: 700px;
  background: radial-gradient(circle, rgba(65, 105, 225, .07) 0%, transparent 65%);
  border-radius: 50%
}

.hero__content {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center
}

.hero__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  background: var(--blue-l);
  border: 1px solid #C5CEFB;
  color: var(--blue);
  border-radius: var(--r-full);
  padding: .3rem .875rem;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  margin-bottom: 1.25rem
}

.hero__eyebrow-dot {
  width: 6px;
  height: 6px;
  background: var(--blue);
  border-radius: 50%;
  animation: blink 2s infinite
}

@keyframes blink {

  0%,
  100% {
    opacity: 1
  }

  50% {
    opacity: .35
  }
}

.hero__title {
  font-size: clamp(2.25rem, 4.5vw, 3.75rem);
  font-weight: 900;
  color: var(--text);
  line-height: 1.05;
  letter-spacing: -.04em;
  margin-bottom: 1.125rem
}

.hero__subtitle {
  font-size: 1.05rem;
  color: var(--text-2);
  line-height: 1.75;
  max-width: 440px;
  margin-bottom: 2rem
}

.hero__search-box {
  display: flex;
  align-items: center;
  background: #fff;
  border: 2px solid var(--border);
  border-radius: var(--r-xl);
  box-shadow: var(--shadow-md);
  padding: .4rem .4rem .4rem 1rem;
  margin-bottom: 1.25rem;
  transition: border-color var(--t), box-shadow var(--t)
}

.hero__search-box:focus-within {
  border-color: var(--blue);
  box-shadow: 0 0 0 4px rgba(65, 105, 225, .1), var(--shadow-md)
}

.hero__search-icon-el {
  color: var(--text-3);
  flex-shrink: 0;
  width: 18px;
  height: 18px
}

.hero__search-input {
  flex: 1;
  border: none;
  outline: none;
  font-size: .95rem;
  color: var(--text);
  padding: .5rem .75rem;
  background: transparent
}

.hero__search-input::placeholder {
  color: var(--text-3)
}

.hero__search-btn {
  flex-shrink: 0;
  background: var(--blue);
  color: #fff;
  border: none;
  border-radius: var(--r-lg);
  padding: .75rem 1.375rem;
  font-weight: 700;
  font-size: .875rem;
  cursor: pointer;
  transition: background var(--t), box-shadow var(--t)
}

.hero__search-btn:hover {
  background: var(--blue-h);
  box-shadow: var(--shadow-blue)
}

.hp-hero__tags {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  align-items: center;
  justify-content: center;
}

@media(max-width:768px) {
  .hp-hero__tags {
    flex-wrap: nowrap;
    overflow-x: auto;
    justify-content: flex-start;
    padding: 4px 0;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    padding-left: 1rem;
    padding-right: 1rem;
    scrollbar-width: none;
  }
  .hp-hero__tags::-webkit-scrollbar {
    display: none;
  }
  .hp-hero__tag {
    white-space: nowrap;
    flex-shrink: 0;
  }
}

.hero__tag-label {
  font-size: .75rem;
  color: var(--text-3);
  font-weight: 500
}

.hero__tag {
  display: inline-flex;
  align-items: center;
  padding: .3rem .75rem;
  background: var(--surface);
  border: 1.5px solid var(--border);
  border-radius: var(--r-full);
  font-size: .78rem;
  color: var(--text-2);
  cursor: pointer;
  transition: all var(--t)
}

.hero__tag:hover {
  background: var(--blue-l);
  border-color: #C5CEFB;
  color: var(--blue)
}

/* right side stats */
.hero__visual {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 2rem;
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: var(--r-2xl);
  box-shadow: var(--shadow-md)
}

.hero__stat-row {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem 1.25rem;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-xl)
}

.hero__stat-icon {
  font-size: 1.5rem;
  flex-shrink: 0
}

.hero__stat-number {
  font-size: 1.5rem;
  font-weight: 900;
  color: var(--text);
  letter-spacing: -.03em;
  line-height: 1
}

.hero__stat-label {
  font-size: .75rem;
  color: var(--text-3);
  font-weight: 500;
  margin-top: .15rem
}

@media(max-width:880px) {
  .hero__content {
    grid-template-columns: 1fr
  }

  .hero__visual {
    display: none
  }
}

@media(max-width:640px) {
  .hero {
    padding: 4rem 0 3rem
  }

  .hero__title {
    font-size: 2.25rem
  }
}

/* -- Category cards ---------------------------------------- */
.category-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem
}

.category-card {
  background: var(--surface);
  border: 1.5px solid var(--border);
  border-radius: var(--r-xl);
  padding: 1.5rem 1.25rem;
  display: flex;
  flex-direction: column;
  gap: .75rem;
  text-decoration: none;
  cursor: pointer;
  transition: transform var(--t-md), border-color var(--t), box-shadow var(--t)
}

.category-card:hover {
  transform: translateY(-4px);
  border-color: var(--blue);
  box-shadow: var(--shadow-lg)
}

.category-card__icon {
  width: 44px;
  height: 44px;
  border-radius: var(--r-lg);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  flex-shrink: 0
}

.category-card__name {
  font-size: .9rem;
  font-weight: 700;
  color: var(--text)
}

.category-card__count {
  font-size: .75rem;
  color: var(--text-3)
}

@media(max-width:768px) {
  .category-grid {
    grid-template-columns: repeat(2, 1fr)
  }
}

@media(max-width:420px) {
  .category-grid {
    grid-template-columns: 1fr
  }
}

/* -- Program cards ----------------------------------------- */
.programs-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

.program-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-2xl);
  display: flex;
  flex-direction: column;
  text-decoration: none;
  transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03);
  position: relative;
}

.program-card:hover {
  transform: translateY(-6px);
  border-color: var(--blue-l);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.08); /* Sanfter, großer Schatten */
}

.program-card__img-wrapper {
  width: calc(100% - 28px);
  margin: 14px auto 0 auto;
  aspect-ratio: 16 / 9;
  border-radius: var(--r-xl);
  overflow: hidden;
  position: relative;
  display: block;
}

.program-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.program-card:hover .program-card__img {
  transform: scale(1.08);
}


.program-card__content {
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  flex: 1;
}

.program-card__badges {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 2px;
}

.program-card__amount-badge {
  background: rgba(22, 163, 74, 0.08); /* Soft Green */
  color: #16A34A;
  border-radius: var(--r-md);
  padding: 4px 10px;
  font-size: .75rem;
  font-weight: 700;
  white-space: nowrap;
}

.program-card__name {
  font-size: 1.15rem;
  font-weight: 800;
  color: var(--text);
  line-height: 1.35;
}

.program-card__desc {
  font-size: .92rem;
  color: var(--text-2);
  line-height: 1.6;
  flex: 1;
  overflow-wrap: break-word; /* Fix for long words on mobile */
  word-wrap: break-word;
}

.program-card__footer {
  margin-top: auto;
  padding-top: 16px;
  border-top: 1px dashed var(--border);
}

/* -- Search Page Additions --------------------------------- */
.page-hero {
  background: var(--surface-2);
  padding: 80px 1.5rem 60px;
  text-align: center;
  border-bottom: 1px solid var(--border);
}

.page-hero__inner {
  max-width: 800px;
  margin: 0 auto;
}

.page-hero__eyebrow {
  display: inline-block;
  background: var(--blue-l);
  color: var(--blue);
  padding: 6px 16px;
  border-radius: var(--r-full);
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  margin-bottom: 1rem;
}

.page-hero__h1 {
  font-size: clamp(2rem, 5vw, 3rem);
  font-weight: 900;
  color: var(--text);
  margin-bottom: 1rem;
  letter-spacing: -.03em;
}

.page-hero__sub {
  font-size: 1.1rem;
  color: var(--text-2);
  line-height: 1.6;
  max-width: 600px;
  margin: 0 auto;
}

.search-bar {
  padding: 1rem 1.5rem;
  background: var(--surface);
  border-bottom: 1px solid var(--border);
  position: static;
  z-index: auto;
  box-shadow: none;
}


.search-bar__inner {
  max-width: var(--max-w);
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.search-bar__input-wrap {
  display: flex;
  align-items: center;
  background: var(--surface-2);
  border: 2px solid var(--border);
  border-radius: var(--r-xl);
  padding: 10px 16px;
  transition: border-color var(--t), box-shadow var(--t);
  max-width: 600px;
  margin: 0 auto;
  width: 100%;
}

.search-bar__input-wrap:focus-within {
  border-color: var(--blue);
  box-shadow: 0 0 0 4px var(--blue-l);
}

.search-bar__icon {
  width: 22px;
  height: 22px;
  color: var(--text-3);
  margin-right: 12px;
}

.search-bar__input {
  flex: 1;
  border: none;
  background: transparent;
  outline: none;
  font-size: 1rem;
  color: var(--text);
  font-family: var(--font);
}

.filter-pills {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
}

@media(max-width:768px) {
  .filter-pills {
    justify-content: flex-start;
    flex-wrap: nowrap;
    overflow-x: auto;
    padding: 4px 1.5rem;
    margin: 0 -1.5rem;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .filter-pills::-webkit-scrollbar {
    display: none;
  }
  .filter-pill {
    white-space: nowrap;
    flex-shrink: 0;
  }
}

.filter-pill {
  padding: 8px 16px;
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: var(--r-full);
  font-size: .85rem;
  font-weight: 600;
  color: var(--text-2);
  cursor: pointer;
  transition: all var(--t);
}

.filter-pill:hover {
  background: var(--blue-l);
  border-color: var(--blue);
  color: var(--blue);
}

.filter-pill.active {
  background: var(--blue);
  color: white !important;
  border-color: var(--blue);
}

[data-theme="dark"] .filter-pill.active {
  background: white;
  color: #0F172A !important;
  border-color: white;
}

.results {
  padding: 1.5rem 1.5rem 4rem;
  max-width: var(--max-w);
  margin: 0 auto;
  min-height: 50vh;
}

.results__meta {
  font-size: 1rem;
  color: var(--text-2);
  margin-bottom: 2rem;
  font-weight: 500;
}

.results__meta span {
  font-weight: 800;
  color: var(--text);
}

.empty {
  text-align: center;
  padding: 4rem 1.5rem;
  grid-column: 1 / -1;
}

.empty__icon {
  font-size: 3rem;
  margin-bottom: 1rem;
}

.empty__title {
  font-size: 1.5rem;
  color: var(--text);
  margin-bottom: .5rem;
}

.empty__sub {
  color: var(--text-2);
}

@media(max-width:960px) {
  .programs-grid {
    grid-template-columns: repeat(2, 1fr)
  }
}

@media(max-width:580px) {
  .programs-grid {
    grid-template-columns: 1fr
  }
}

/* -- Steps ------------------------------------------------- */
.steps-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  position: relative
}

.steps-connector {
  position: absolute;
  top: 30px;
  left: calc(16.67% + 14px);
  right: calc(16.67% + 14px);
  height: 1px;
  background: linear-gradient(90deg, var(--blue), var(--cyan));
  opacity: .2
}

.step {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 1.125rem
}

.step__number {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--blue), var(--cyan));
  color: #fff;
  font-size: 1.375rem;
  font-weight: 900;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 8px 24px rgba(65, 105, 225, .3);
  position: relative;
  z-index: 1
}

.step__title {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--text)
}

.step__desc {
  font-size: .875rem;
  color: var(--text-2);
  line-height: 1.7
}

@media(max-width:768px) {
  .steps-grid {
    grid-template-columns: 1fr
  }

  .steps-connector {
    display: none
  }
}

/* -- FAQ --------------------------------------------------- */
.faq-list {
  display: flex;
  flex-direction: column;
  gap: .5rem;
  max-width: 740px;
  margin-inline: auto
}

.faq-item {
  background: var(--surface);
  border: 1.5px solid var(--border);
  border-radius: var(--r-xl);
  overflow: hidden;
  transition: border-color var(--t), box-shadow var(--t)
}

.faq-item.open {
  border-color: var(--blue);
  box-shadow: 0 0 0 4px rgba(65, 105, 225, .06)
}

.faq-item__trigger {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.125rem 1.375rem;
  background: none;
  border: none;
  cursor: pointer;
  font-size: .95rem;
  font-weight: 600;
  color: var(--text);
  text-align: left;
  gap: 1rem;
  transition: background var(--t)
}

.faq-item__trigger:hover {
  background: var(--bg-2)
}

.faq-item__icon {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--bg-2);
  border: 1.5px solid var(--border);
  color: var(--text-3);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: transform var(--t-md), background var(--t), border-color var(--t), color var(--t)
}

.faq-item.open .faq-item__icon {
  transform: rotate(45deg);
  background: var(--blue);
  border-color: var(--blue);
  color: #fff
}

.faq-item__content {
  max-height: 0;
  overflow: hidden;
  transition: max-height .4s ease
}

.faq-item.open .faq-item__content {
  max-height: 400px
}

.faq-item__body {
  padding: 0 1.375rem 1.125rem;
  font-size: .9rem;
  color: var(--text-2);
  line-height: 1.8;
  border-top: 1px solid var(--border);
  padding-top: 1rem
}

/* -- Filter ------------------------------------------------ */
.filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem
}

.filter-btn {
  padding: .5rem 1.125rem;
  border-radius: var(--r-full);
  border: 1.5px solid var(--border);
  background: var(--surface);
  font-size: .8rem;
  font-weight: 600;
  color: var(--text-2);
  cursor: pointer;
  transition: all var(--t);
  box-shadow: var(--shadow-sm)
}

.filter-btn:hover {
  border-color: var(--border-2);
  color: var(--text);
  background: var(--bg-2)
}

.filter-btn.active {
  background: var(--blue);
  border-color: var(--blue);
  color: #fff;
  box-shadow: var(--shadow-blue)
}

/* -- Search ------------------------------------------------ */
.search-wrap {
  position: relative;
  width: 100%
}

.search-input {
  width: 100%;
  padding: .875rem 1.25rem .875rem calc(1.25rem + 26px);
  border-radius: var(--r-xl);
  border: 1.5px solid var(--border);
  background: var(--surface);
  font-size: .95rem;
  color: var(--text);
  outline: none;
  box-shadow: var(--shadow-sm);
  transition: border-color var(--t), box-shadow var(--t)
}

.search-input:focus {
  border-color: var(--blue);
  box-shadow: 0 0 0 4px rgba(65, 105, 225, .1)
}

.search-input::placeholder {
  color: var(--text-3)
}

.search-icon {
  position: absolute;
  left: 1.125rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--text-3);
  pointer-events: none;
  width: 18px;
  height: 18px
}

/* -- Detail hero ------------------------------------------- */
.detail-hero {
  background: linear-gradient(135deg, var(--text) 0%, #1E3A5F 100%);
  padding: 3.5rem 0 2.5rem;
  position: relative;
  overflow: hidden
}

.detail-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 50% 100% at 80% 50%, rgba(65, 105, 225, .25) 0%, transparent 60%);
  pointer-events: none
}

.detail-hero__inner {
  position: relative;
  z-index: 1
}

.detail-hero__breadcrumb {
  display: flex;
  align-items: center;
  gap: .5rem;
  font-size: .78rem;
  color: rgba(255, 255, 255, .45);
  margin-bottom: 1.25rem;
  flex-wrap: wrap
}

.detail-hero__breadcrumb a {
  color: rgba(255, 255, 255, .45);
  transition: color var(--t)
}

.detail-hero__breadcrumb a:hover {
  color: rgba(255, 255, 255, .8)
}

.detail-hero__breadcrumb-sep {
  opacity: .4
}

.detail-hero__title {
  font-size: clamp(1.75rem, 3vw, 2.75rem);
  font-weight: 900;
  color: #fff;
  line-height: 1.1;
  letter-spacing: -.03em;
  margin-bottom: 1rem
}

.detail-hero__meta {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  align-items: center;
  margin-bottom: 1rem
}

.detail-hero__meta-item {
  font-size: .78rem;
  color: rgba(255, 255, 255, .5)
}

.detail-hero__amount {
  font-size: 2.25rem;
  font-weight: 900;
  color: #34D399;
  letter-spacing: -.04em
}

.detail-hero__amount-label {
  font-size: .78rem;
  color: rgba(255, 255, 255, .45);
  margin-top: .2rem
}

/* -- Content layout ---------------------------------------- */
.content-layout {
  display: grid;
  grid-template-columns: 1fr 310px;
  gap: 2.5rem;
  align-items: start
}

.content-main h2 {
  font-size: 1.35rem;
  font-weight: 800;
  color: var(--text);
  margin-bottom: .875rem;
  margin-top: 2.5rem;
  padding-top: 2rem;
  border-top: 1px solid var(--border);
  letter-spacing: -.02em
}

.content-main h2:first-child {
  border-top: none;
  margin-top: 0;
  padding-top: 0
}

.content-main h3 {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--text);
  margin-bottom: .625rem;
  margin-top: 1.5rem
}

.content-main p {
  font-size: .9rem;
  color: var(--text-2);
  line-height: 1.8;
  margin-bottom: .875rem
}

.content-main ul,
.content-main ol {
  margin-bottom: .875rem;
  padding-left: 1.25rem
}

.content-main li {
  font-size: .9rem;
  color: var(--text-2);
  line-height: 1.8;
  margin-bottom: .3rem;
  list-style: disc
}

.content-main ol li {
  list-style: decimal
}

.content-main a {
  color: var(--blue);
  font-weight: 500;
  transition: opacity var(--t)
}

.content-main a:hover {
  opacity: .75
}

.info-box {
  border-radius: var(--r-lg);
  padding: .875rem 1.125rem;
  margin-bottom: 1.125rem;
  display: flex;
  gap: .75rem;
  align-items: flex-start;
  border: 1px solid
}

.info-box--tip {
  background: #F0FDF4;
  border-color: #BBF7D0
}

.info-box--warn {
  background: #FFF7ED;
  border-color: #FED7AA
}

.info-box--info {
  background: var(--blue-l);
  border-color: #C5CEFB
}

.info-box__icon {
  font-size: 1.1rem;
  flex-shrink: 0;
  margin-top: 2px
}

.info-box__text {
  font-size: .84rem;
  line-height: 1.7;
  color: var(--text-2)
}

.info-box__text strong {
  color: var(--text)
}

.steps-checklist {
  display: flex;
  flex-direction: column;
  gap: .875rem;
  margin-bottom: 1.125rem
}

.steps-checklist__item {
  display: flex;
  gap: .875rem;
  align-items: flex-start
}

.steps-checklist__num {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--blue), var(--cyan));
  color: #fff;
  font-size: .72rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 2px
}

.steps-checklist__title {
  font-weight: 700;
  color: var(--text);
  margin-bottom: .2rem;
  font-size: .9rem
}

.steps-checklist__desc {
  font-size: .82rem;
  color: var(--text-2);
  line-height: 1.7
}

.sidebar {
  display: flex;
  flex-direction: column;
  gap: 1.125rem;
  position: sticky;
  top: calc(var(--header-h) + 1.25rem)
}

.sidebar-card {
  background: var(--surface);
  border: 1.5px solid var(--border);
  border-radius: var(--r-xl);
  padding: 1.25rem;
  box-shadow: var(--shadow-sm)
}

.sidebar-card__title {
  font-size: .84rem;
  font-weight: 700;
  color: var(--text);
  margin-bottom: .875rem
}

.sidebar-card__cta {
  background: linear-gradient(135deg, var(--blue) 0%, #3B82F6 100%);
  border-color: var(--blue);
  text-align: center;
  box-shadow: var(--shadow-blue)
}

.sidebar-card__cta-title {
  font-size: 1rem;
  font-weight: 800;
  color: #fff;
  margin-bottom: .35rem
}

.sidebar-card__cta-text {
  font-size: .82rem;
  color: rgba(255, 255, 255, .75);
  margin-bottom: 1.125rem;
  line-height: 1.6
}

.quick-facts {
  display: flex;
  flex-direction: column;
  gap: .625rem
}

.quick-fact {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: .5rem;
  padding-bottom: .625rem;
  border-bottom: 1px solid var(--border)
}

.quick-fact:last-child {
  border-bottom: none;
  padding-bottom: 0
}

.quick-fact__label {
  font-size: .78rem;
  color: var(--text-3)
}

.quick-fact__value {
  font-size: .78rem;
  font-weight: 700;
  color: var(--text);
  text-align: right
}

@media(max-width:960px) {
  .content-layout {
    grid-template-columns: 1fr
  }

  .sidebar {
    position: static
  }
}

/* -- CTA --------------------------------------------------- */
.cta-banner {
  background: linear-gradient(135deg, var(--blue) 0%, #3B82F6 60%, #0891B2 100%);
  border-radius: var(--r-2xl);
  padding: 3.5rem;
  text-align: center;
  position: relative;
  overflow: hidden;
  box-shadow: var(--shadow-blue)
}

.cta-banner::before {
  content: '';
  position: absolute;
  top: -40%;
  right: -10%;
  width: 400px;
  height: 400px;
  background: rgba(255, 255, 255, .05);
  border-radius: 50%;
  pointer-events: none
}

.cta-banner__title {
  font-size: clamp(1.5rem, 3vw, 2.125rem);
  font-weight: 900;
  color: #fff;
  margin-bottom: .75rem;
  position: relative;
  letter-spacing: -.03em
}

.cta-banner__text {
  font-size: 1rem;
  color: rgba(255, 255, 255, .8);
  margin-bottom: 2rem;
  max-width: 440px;
  margin-inline: auto;
  position: relative;
  line-height: 1.7
}

.cta-banner__actions {
  display: flex;
  justify-content: center;
  gap: .875rem;
  flex-wrap: wrap;
  position: relative
}

/* -- Misc bg ----------------------------------------------- */
.bg-surface-2 {
  background: var(--bg-2)
}

.bg-grid-section {
  background: var(--bg-2);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border)
}

/* -- Animations -------------------------------------------- */
.animate-in {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .55s ease, transform .55s ease
}

.animate-in.visible {
  opacity: 1;
  transform: translateY(0)
}

.animate-in:nth-child(2) {
  transition-delay: .08s
}

.animate-in:nth-child(3) {
  transition-delay: .16s
}

.animate-in:nth-child(4) {
  transition-delay: .24s
}

.animate-in:nth-child(5) {
  transition-delay: .32s
}

.animate-in:nth-child(6) {
  transition-delay: .4s
}

/* -- Utilities --------------------------------------------- */
.text-center {
  text-align: center
}

.mb-0 {
  margin-bottom: 0 !important
}

.mb-2 {
  margin-bottom: .5rem
}

.mb-4 {
  margin-bottom: 1rem
}

.mb-6 {
  margin-bottom: 1.5rem
}

.mb-8 {
  margin-bottom: 2rem
}

.mt-4 {
  margin-top: 1rem
}

.mt-6 {
  margin-top: 1.5rem
}

.mt-8 {
  margin-top: 2rem
}

.flex {
  display: flex
}

.flex-wrap {
  flex-wrap: wrap
}

.items-center {
  align-items: center
}

.justify-between {
  justify-content: space-between
}

.justify-center {
  justify-content: center
}

.gap-2 {
  gap: .5rem
}

.gap-4 {
  gap: 1rem
}

/* -- Germany Map SVG --------------------------------------- */
.germany-map-container {
  max-width: 400px;
  margin: 0 auto;
  padding: 1rem;
  background: var(--surface);
  border: 1.5px solid var(--border);
  border-radius: var(--r-2xl);
  box-shadow: var(--shadow-sm);
  transition: background var(--t), border-color var(--t), box-shadow var(--t);
}

.germany-map {
  width: 100%;
  height: auto;
  filter: drop-shadow(0 4px 6px rgba(0, 0, 0, 0.05));
}

.bundesland-path {
  fill: var(--bg-2);
  /* default fill */
  stroke: var(--surface);
  /* border between states */
  stroke-width: 2;
  cursor: pointer;
  transition: fill 0.2s ease, stroke 0.2s ease, transform 0.2s ease;
  transform-origin: center;
}

.bundesland-path:hover {
  fill: var(--blue-l);
  stroke: var(--blue);
}

.bundesland-path.active {
  fill: var(--blue);
  stroke: #fff;
  filter: drop-shadow(0 4px 12px rgba(56, 189, 248, 0.4));
}

[data-theme="dark"] .bundesland-path {
  fill: var(--surface-2);
  stroke: var(--bg);
}

[data-theme="dark"] .bundesland-path:hover {
  fill: var(--surface-3);
  stroke: var(--blue);
}

[data-theme="dark"] .bundesland-path.active {
  fill: var(--blue);
  stroke: var(--bg);
  filter: drop-shadow(0 4px 12px rgba(56, 189, 248, 0.3));
}

.hidden {
  display: none !important
}

/* ── Extracted from index.html & foerderungen.html ── */

/* ---------------------------------------------------------
   HOMEPAGE-ONLY STYLES  (scoped, do not affect detail pages)
--------------------------------------------------------- */

/* No flash/flicker on click for any interactive element */
a,
button {
  -webkit-tap-highlight-color: transparent;
  -webkit-user-select: none;
  user-select: none;
  outline: none
}

a:focus-visible,
button:focus-visible {
  outline: 2px solid #89CFF0;
  outline-offset: 2px
}

/* ---------- NAVBAR ---------- */
.nav {
  position: sticky;
  top: 0;
  z-index: 200;
  height: 68px;
  background: rgba(255, 255, 255, .92);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid #EAECF0;
  display: flex;
  align-items: center
}

.nav__wrap {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 2rem;
  width: 100%;
  display: flex;
  align-items: center;
  gap: 0
}

.nav__logo {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 1rem;
  font-weight: 800;
  color: #101828;
  letter-spacing: -.025em;
  text-decoration: none;
  flex-shrink: 0;
  margin-right: 2rem
}

.nav__logo svg {
  flex-shrink: 0
}

.nav__links {
  display: flex;
  align-items: center;
  gap: 4px;
  flex: 1
}

.nav__link {
  padding: 6px 14px;
  border-radius: 8px;
  font-size: .84rem;
  font-weight: 500;
  color: #667085;
  text-decoration: none;
  transition: background .14s, color .14s;
  white-space: nowrap
}

.nav__link:hover {
  background: #F2F4F7;
  color: #101828
}

.nav__link--active {
  color: #89CFF0;
  background: #EDEFFD
}

.nav__right {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 10px
}

.nav__btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #89CFF0;
  color: #0F172A;
  padding: 9px 20px;
  border-radius: 10px;
  font-size: .84rem;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
  box-shadow: 0 1px 3px rgba(137, 207, 240, .3), 0 4px 12px rgba(137, 207, 240, .18);
  transition: background .14s, box-shadow .14s, transform .14s
}

.nav__btn:hover {
  background: #7ABDE0;
  /* Updated to Match Baby Blue dark hover */
  box-shadow: 0 4px 16px rgba(137, 207, 240, 0.35);
  transform: translateY(-1px)
}

.hp-theme-toggle {
  background: none;
  border: none;
  cursor: pointer;
  padding: 6px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #667085;
  transition: background 0.15s, color 0.15s;
  margin-right: 12px;
}

.hp-theme-toggle:hover {
  background: #F2F4F7;
  color: #101828;
}

[data-theme="dark"] .hp-theme-toggle {
  color: #CBD5E1;
}

[data-theme="dark"] .hp-theme-toggle:hover {
  background: #333;
  color: #F8FAFC;
}

.hp-theme-toggle svg {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

.hp-theme-toggle .moon-icon {
  display: none;
}

[data-theme="dark"] .hp-theme-toggle .moon-icon {
  display: block;
}

[data-theme="dark"] .hp-theme-toggle .sun-icon {
  display: none;
}

/* Dark Mode specific nav styles */
.nav {
  transition: background 0.2s, border-color 0.2s;
}

[data-theme="dark"] .nav {
  background: rgba(22, 22, 22, 0.95);
  border-bottom: 1px solid #333;
}

[data-theme="dark"] .nav__logo,
[data-theme="dark"] .nav__link {
  color: #F8FAFC;
}

[data-theme="dark"] .nav__link:hover {
  background: #333;
}

[data-theme="dark"] .nav__link--active {
  color: #38BDF8;
  background: rgba(56, 189, 248, 0.15);
}

[data-theme="dark"] .nav__burger span {
  background: #F8FAFC;
}

[data-theme="dark"] .nav__mobile {
  background: #161616;
  border-color: #333;
}

[data-theme="dark"] .nav__mobile a {
  color: #CBD5E1;
}

[data-theme="dark"] .nav__mobile a:hover {
  background: #333;
  color: #F8FAFC;
}

.nav__burger {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 8px;
  margin-left: auto
}

.nav__burger span {
  display: block;
  width: 22px;
  height: 2px;
  background: #344054;
  border-radius: 2px;
  margin: 5px 0;
  transition: .3s
}

.nav__mobile {
  display: none;
  position: fixed;
  top: 68px;
  left: 0;
  right: 0;
  background: #fff;
  border-bottom: 1px solid #EAECF0;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .08);
  padding: .75rem 1.25rem;
  z-index: 199;
  flex-direction: column;
  gap: 4px
}

.nav__mobile.open {
  display: flex
}

.nav__mobile a {
  padding: 11px 14px;
  border-radius: 8px;
  font-size: .9rem;
  font-weight: 500;
  color: #667085;
  text-decoration: none;
  transition: background .14s, color .14s
}

.nav__mobile a:hover {
  background: #F2F4F7;
  color: #101828
}

/* ---------- HERO ---------- */
.hp-hero {
  background: var(--surface);
  padding: 100px 2rem 80px;
  text-align: center;
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid var(--border);
}

.hp-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(ellipse 70% 55% at 50% -5%, var(--blue-l) 0%, transparent 65%);
}

[data-theme="dark"] .hp-hero::after {
  background: none !important; /* Remove glow completely in dark mode for cleaner look */
}

.hp-hero__inner {
  position: relative;
  z-index: 1;
  max-width: 800px;
  margin: 0 auto;
}

.hp-hero__badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid var(--blue);
  background: var(--blue-l);
  color: var(--blue);
  border-radius: var(--r-full);
  padding: 6px 16px;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  margin-bottom: 1.75rem;
}

.hp-hero__badge-dot {
  width: 8px;
  height: 8px;
  background: var(--blue);
  border-radius: 50%;
  animation: hp-pulse 2s infinite;
}

@keyframes hp-pulse {

  0%,
  100% {
    opacity: 1;
    transform: scale(1);
  }

  50% {
    opacity: .3;
    transform: scale(.65);
  }
}

.hp-hero__h1 {
  font-family: var(--font);
  font-size: clamp(2.5rem, 6vw, 4.2rem);
  font-weight: 900;
  color: var(--text);
  line-height: 1.1;
  letter-spacing: -.03em;
  margin-bottom: 1.25rem;
}

.hp-hero__h1 span {
  background: linear-gradient(135deg, var(--blue) 0%, var(--cyan) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.hp-hero__sub {
  font-size: 1.15rem;
  color: var(--text-2);
  line-height: 1.75;
  max-width: 580px;
  margin: 0 auto 2.5rem;
}

.hp-hero__search {
  display: flex;
  align-items: center;
  max-width: 640px;
  margin: 0 auto 1.5rem;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  box-shadow: var(--shadow-md);
  padding: 4px;
  transition: border-color var(--t), box-shadow var(--t);
}

.hp-hero__search:focus-within {
  border-color: var(--blue);
  box-shadow: 0 0 0 4px var(--blue-l), var(--shadow-lg);
}

.hp-hero__search svg {
  color: var(--text-3);
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  margin-left: 16px;
}

.hp-hero__search input {
  flex: 1;
  border: none;
  outline: none;
  font-family: var(--font);
  font-size: 1.05rem;
  color: var(--text);
  background: transparent;
  padding: 12px 16px;
  min-width: 0;
}

.hp-hero__search input::placeholder {
  color: var(--text-3);
}

.hp-hero__search-btn {
  flex-shrink: 0;
  background: var(--blue);
  color: #fff;
  border: none;
  border-radius: var(--r-lg);
  padding: 14px 28px;
  font-family: var(--font);
  font-weight: 700;
  font-size: .95rem;
  cursor: pointer;
  white-space: nowrap;
  transition: background var(--t), box-shadow var(--t), transform var(--t);
  box-shadow: var(--shadow-blue);
}

.hp-hero__search-btn:hover {
  background: var(--blue-h);
  transform: translateY(-2px);
  box-shadow: 0 12px 40px rgba(30, 58, 138, 0.3);
}

.hp-hero__tags {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  align-items: center;
  margin-bottom: 3.5rem;
}

.hp-hero__tag-label {
  font-size: .8rem;
  color: var(--text-3);
  font-weight: 600;
}

.hp-hero__tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 16px;
  background: var(--surface-2);
  border: 1.5px solid var(--border);
  border-radius: var(--r-full);
  font-size: .85rem;
  color: var(--text-2);
  cursor: pointer;
  font-weight: 500;
  transition: all var(--t);
}

.hp-hero__tag:hover {
  background: var(--blue-l);
  border-color: var(--blue);
  color: var(--blue);
  transform: translateY(-1px);
}

.hp-hero__stats {
  display: flex;
  justify-content: center;
  border: 1.5px solid var(--border);
  border-radius: var(--r-2xl);
  background: var(--surface-2);
  overflow: hidden;
  max-width: 600px;
  margin: 0 auto;
  box-shadow: var(--shadow-sm);
}

.hp-hero__stat {
  flex: 1;
  padding: 1.5rem .5rem;
  text-align: center;
  border-right: 1.5px solid var(--border);
}

.hp-hero__stat:last-child {
  border-right: none;
}

.hp-hero__stat-n {
  font-size: 2rem;
  font-weight: 900;
  color: var(--text);
  letter-spacing: -.045em;
  line-height: 1;
  margin-bottom: 4px;
}

.hp-hero__stat-l {
  font-size: .8rem;
  color: var(--text-2);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: .05em;
}

/* ---------- SECTIONS ---------- */
.hp-sec {
  padding: 80px 2rem;
}

.hp-sec--alt {
  background: var(--surface-2);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

.hp-sec__inner {
  max-width: var(--max-w);
  margin: 0 auto;
}

.hp-sec__head {
  margin-bottom: 3rem;
}

.hp-sec__head--c {
  text-align: center
}

.hp-sec__head--c .hp-sec__sub {
  margin-inline: auto
}

.hp-sec__eyebrow {
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #89CFF0;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 12px
}

.hp-sec__eyebrow::before {
  content: '';
  width: 18px;
  height: 2px;
  background: #89CFF0;
  border-radius: 2px;
  flex-shrink: 0
}

.hp-sec__title {
  font-size: clamp(1.6rem, 3vw, 2.1rem);
  font-weight: 800;
  color: #101828;
  letter-spacing: -.035em;
  line-height: 1.2;
  margin-bottom: 12px
}

.hp-sec__sub {
  font-size: .98rem;
  color: #667085;
  line-height: 1.75;
  max-width: 520px
}

.hp-sec__header-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 3rem
}

/* ---------- CATEGORY CARDS ---------- */
.hp-cats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

@media(max-width: 960px) {
  .hp-cats {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media(max-width: 640px) {
  .hp-cats {
    grid-template-columns: 1fr;
  }
}

.hp-cat {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  aspect-ratio: 16 / 10;
  min-height: 200px;
  border-radius: 24px;
  overflow: hidden;
  text-decoration: none;
  background-color: #f8f9fa;
  border: 1px solid rgba(0, 0, 0, 0.05);
  box-shadow:
    0 4px 6px -1px rgba(0, 0, 0, 0.1),
    0 2px 4px -1px rgba(0, 0, 0, 0.06),
    0 10px 15px -3px rgba(0, 0, 0, 0.05);
  transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Hide extra categories on desktop unless parent has .show-all */
@media(min-width: 769px) {
  .hp-cat--extra {
    display: none;
  }
  
  .hp-cats.show-all .hp-cat--extra {
    display: flex;
    animation: fadeIn 0.4s ease forwards;
  }
}

.hp-cat:hover {
  transform: translateY(-8px) scale(1.02);
  box-shadow:
    0 20px 25px -5px rgba(0, 0, 0, 0.1),
    0 10px 10px -5px rgba(0, 0, 0, 0.04),
    0 25px 50px -12px rgba(0, 0, 0, 0.15);
  border-color: rgba(0, 102, 255, 0.2);
}

.hp-cat__img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  z-index: 0;
}

.hp-cat:hover .hp-cat__img {
  transform: scale(1.05); /* Skalierung gemäss Anforderung */
}

.hp-cat__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.55), transparent);
  z-index: 1;
}

.hp-cat__name {
  position: relative;
  z-index: 2;
  font-family: 'Poppins', sans-serif;
  font-size: 1.15rem;
  font-weight: 700;
  color: #ffffff;
  line-height: 1.25;
  margin: 0;
  padding: 18px 24px;
  text-shadow: 0 4px 8px rgba(0,0,0,0.2);
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
}

.hp-cat__name::after {
  content: '→';
  opacity: 0;
  transform: translateX(-10px);
  transition: all 0.3s ease;
  font-size: 1.4rem;
  line-height: 1;
}

.hp-cat:hover .hp-cat__name::after {
  opacity: 1;
  transform: translateX(0);
}

/* ---------- FEDERAL STATE CARDS ---------- */
.hp-states {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

@media(max-width: 960px) {
  .hp-states {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }
}

@media(max-width: 480px) {
  .hp-states {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }
}

/* State cards */
.hp-state {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  aspect-ratio: 768 / 1024;
  width: 100%;
  border-radius: 20px;
  overflow: hidden;
  text-decoration: none;
  box-shadow: var(--shadow-sm);
  transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
  cursor: pointer;
}

/* Hide extra states on desktop unless parent has .show-all */
@media(min-width: 769px) {
  .hp-state--extra {
    display: none;
  }
  
  .hp-states.show-all .hp-state--extra {
    display: flex;
    animation: fadeIn 0.4s ease forwards;
  }
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

.hp-state:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-lg);
}

.hp-state__img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
  z-index: 0;
}

.hp-state:hover .hp-state__img {
  transform: scale(1.08);
}

.hp-state__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.3) 50%, transparent 100%);
  z-index: 1;
  transition: background var(--t);
}

.hp-state:hover .hp-state__overlay {
  background: linear-gradient(to top, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0.4) 60%, transparent 100%);
}

.hp-state__title {
  position: absolute;
  bottom: 24px;
  left: 24px;
  z-index: 2;
  color: #fff;
  font-size: 1.5rem;
  font-weight: 800;
  margin: 0;
  text-shadow: 0 2px 10px rgba(0,0,0,0.3);
}

.hp-progs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

@media(max-width: 960px) {
  .hp-progs {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media(max-width: 640px) {
  .hp-progs {
    grid-template-columns: 1fr;
  }
}

.hp-prog {
  display: flex !important;
  flex-direction: column !important;
  background: var(--surface) !important;
  border-radius: 24px !important;
  border: 1px solid var(--border) !important;
  box-shadow: 0 10px 30px rgba(0,0,0,0.05) !important;
  overflow: hidden !important;
  text-decoration: none !important;
  transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1) !important;
  height: 100% !important;
  position: relative !important;
}

/* Default hide extra programs on desktop */
@media(min-width: 992px) {
  .hp-prog:nth-child(n+4) {
    display: none !important;
  }
  
  .hp-progs.show-all .hp-prog {
    display: flex !important;
    animation: fadeIn 0.4s ease forwards;
  }
}

/* -- Meistgesuchte Programme -- */
.hp-progs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}

.hp-prog {
  display: flex !important;
  flex-direction: column !important;
  background: var(--surface) !important;
  border-radius: 24px !important;
  border: 1px solid var(--border) !important;
  box-shadow: 0 12px 30px rgba(0,0,0,0.06) !important;
  overflow: hidden !important;
  text-decoration: none !important;
  transition: all 0.5s cubic-bezier(0.165, 0.84, 0.44, 1) !important;
  height: 100% !important;
  position: relative !important;
}

.hp-prog:hover {
  transform: translateY(-10px) !important;
  box-shadow: 0 25px 50px rgba(0,0,0,0.12) !important;
  border-color: var(--blue) !important;
}

.hp-prog__img-wrap {
  width: 100% !important;
  aspect-ratio: 16/10 !important;
  overflow: hidden !important;
  position: relative !important;
  background: var(--bg-2) !important;
}

.hp-prog__img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  transition: transform 0.7s ease !important;
}

.hp-prog:hover .hp-prog__img {
  transform: scale(1.1) !important;
}

/* Subtle gradient on image to make text pop */
.hp-prog__img-wrap::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, transparent 60%, rgba(0,0,0,0.4) 100%);
  pointer-events: none;
}

.hp-prog__badges {
  position: absolute !important;
  bottom: 12px !important;
  left: 12px !important;
  right: 12px !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  z-index: 10 !important;
}

.hp-prog__badge, 
.hp-prog__amount-badge {
  font-size: 0.65rem !important;
  font-weight: 800 !important;
  padding: 6px 12px !important;
  border-radius: 999px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2) !important;
  backdrop-filter: blur(4px) !important;
}

.hp-prog__badge {
  background: rgba(255,255,255,0.9) !important;
  color: #000 !important;
}

.hp-prog__amount-badge {
  background: #10B981 !important; /* Success Green */
  color: #fff !important;
}

/* Default hide extra programs on desktop */
@media(min-width: 992px) {
  .hp-prog:nth-child(n+4) {
    display: none !important;
  }
  .hp-progs.show-all .hp-prog {
    display: flex !important;
  }
}

.hp-prog__content {
  padding: 24px !important;
  display: flex !important;
  flex-direction: column !important;
  flex: 1 !important;
}

.hp-prog__trust {
  font-size: 0.65rem !important;
  font-weight: 700 !important;
  color: var(--accent) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  margin-bottom: 8px !important;
  display: flex !important;
  align-items: center !important;
  gap: 4px !important;
}

.hp-prog__trust::before {
  content: '✓';
  font-size: 0.8rem !important;
}

.hp-prog__name {
  font-size: 1.25rem !important;
  font-weight: 800 !important;
  color: var(--text) !important;
  margin-bottom: 10px !important;
  line-height: 1.2 !important;
}

.hp-prog__desc {
  font-size: 0.9rem !important;
  line-height: 1.5 !important;
  color: var(--text-2) !important;
  margin-bottom: 24px !important;
  flex: 1 !important;
}

.hp-prog__cta {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 14px 20px !important;
  background: var(--blue-l) !important;
  color: var(--blue) !important;
  font-weight: 700 !important;
  font-size: 0.9rem !important;
  border-radius: 16px !important;
  transition: all 0.3s ease !important;
}

.hp-prog__cta span {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}

.hp-prog:hover .hp-prog__cta {
  background: var(--blue) !important;
  color: #fff !important;
  transform: scale(1.02) !important;
}

/* ---------- STEPS ---------- */
.hp-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
  position: relative
}

.hp-steps-line {
  position: absolute;
  top: 28px;
  left: calc(16.67% + 18px);
  right: calc(16.67% + 18px);
  height: 2px;
  background: linear-gradient(90deg, #89CFF0, #0891B2);
  opacity: .15
}

.hp-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 20px
}

.hp-step__num {
  width: 58px;
  height: 58px;
  border-radius: 50%;
  background: linear-gradient(135deg, #89CFF0, #0891B2);
  color: #fff;
  font-size: 1.3rem;
  font-weight: 900;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 6px 24px rgba(65, 105, 225, .3);
  position: relative;
  z-index: 1
}

.hp-step__title {
  font-size: 1.05rem;
  font-weight: 700;
  color: #101828
}

.hp-step__desc {
  font-size: .875rem;
  color: #667085;
  line-height: 1.7
}

/* ---------- CTA BANNER ---------- */
.hp-cta {
  background: linear-gradient(135deg, #1A2D7A 0%, #89CFF0 55%, #0891B2 100%);
  border-radius: 24px;
  padding: 60px 40px;
  text-align: center;
  position: relative;
  overflow: hidden;
  box-shadow: 0 20px 60px rgba(65, 105, 225, .25)
}

.hp-cta::before {
  content: '';
  position: absolute;
  top: -80%;
  right: -10%;
  width: 600px;
  height: 600px;
  background: rgba(255, 255, 255, .05);
  border-radius: 50%
}

.hp-cta__title {
  font-size: clamp(1.6rem, 3vw, 2.25rem);
  font-weight: 900;
  color: #fff;
  letter-spacing: -.04em;
  margin-bottom: 14px;
  position: relative
}

.hp-cta__sub {
  font-size: 1rem;
  color: rgba(255, 255, 255, .75);
  line-height: 1.75;
  max-width: 440px;
  margin: 0 auto 2rem;
  position: relative
}

.hp-cta__btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #fff;
  color: #89CFF0;
  padding: 14px 32px;
  border-radius: 999px;
  font-size: 1rem;
  font-weight: 800;
  text-decoration: none;
  position: relative;
  box-shadow: 0 4px 24px rgba(0, 0, 0, .16);
  transition: transform .15s, box-shadow .15s
}

.hp-cta__btn:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 32px rgba(0, 0, 0, .2)
}

/* ---------- FAQ ---------- */
.hp-faq {
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-width: 760px;
  margin: 0 auto
}

.hp-faq-item {
  background: #fff;
  border: 1.5px solid #E4E7EC;
  border-radius: 16px;
  overflow: hidden;
  transition: border-color .15s, box-shadow .15s
}

.hp-faq-item.open {
  border-color: #9FB3FA;
  box-shadow: 0 0 0 4px rgba(65, 105, 225, .06)
}

.hp-faq-trigger {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 22px;
  background: none;
  border: none;
  cursor: pointer;
  font-family: 'Poppins', sans-serif;
  font-size: .95rem;
  font-weight: 600;
  color: #101828;
  text-align: left;
  gap: 16px;
  transition: background .14s
}

.hp-faq-trigger:hover {
  background: #F9FAFB
}

.hp-faq-icon {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #F2F4F7;
  border: 1.5px solid #E4E7EC;
  color: #98A2B3;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: transform .3s, background .15s, color .15s, border-color .15s
}

.hp-faq-item.open .hp-faq-icon {
  transform: rotate(45deg);
  background: #89CFF0;
  border-color: #89CFF0;
  color: #fff
}

.hp-faq-body {
  max-height: 0;
  overflow: hidden;
  transition: max-height .4s cubic-bezier(.4, 0, .2, 1)
}

.hp-faq-item.open .hp-faq-body {
  max-height: 300px
}

.hp-faq-text {
  padding: 0 22px 18px;
  font-size: .9rem;
  color: #667085;
  line-height: 1.8;
  border-top: 1px solid #EAECF0;
  padding-top: 16px
}

/* ---------- PREMIUM CARDS ---------- */
.programs-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.premium-card {
  display: flex;
  flex-direction: column;
  background: var(--surface);
  border-radius: 24px;
  overflow: hidden;
  text-decoration: none;
  border: 1px solid var(--border);
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.04);
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

[data-theme="dark"] .premium-card {
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.25);
  background: var(--surface-2);
}

.premium-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.08);
}

[data-theme="dark"] .premium-card:hover {
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.45);
}

.premium-card .program-card__img-wrapper {
  position: relative;
  width: 100%;
  height: 220px;
  overflow: hidden;
}

.premium-card .program-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

.premium-card:hover .program-card__img {
  transform: scale(1.05);
}

.premium-card .program-card__img-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.5) 0%, transparent 50%);
  pointer-events: none;
  opacity: 0.6;
  transition: opacity 0.4s;
}

.premium-card:hover .program-card__img-overlay {
  opacity: 0.8;
}

.premium-card .program-card__content {
  padding: 24px 28px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.premium-card .program-card__badges {
  display: flex;
  gap: 8px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}

.premium-card .program-card__name {
  font-family: 'Poppins', sans-serif;
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 10px;
  line-height: 1.3;
}

.premium-card .program-card__desc {
  font-family: 'Poppins', sans-serif;
  font-size: 0.95rem;
  color: var(--text-2);
  line-height: 1.6;
  margin-bottom: 24px;
  flex: 1;
}

.premium-card .program-card__footer {
  margin-top: auto;
}

.btn--premium-sm {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 24px;
  border-radius: 999px;
  font-family: 'Poppins', sans-serif;
  font-size: 0.92rem;
  font-weight: 600;
  color: #fff;
  background: linear-gradient(135deg, var(--blue) 0%, #3B82F6 100%);
  text-decoration: none;
  transition: transform 0.25s, box-shadow 0.25s, filter 0.25s;
  border: none;
  cursor: pointer;
  box-shadow: 0 4px 12px rgba(59, 130, 246, 0.25);
  position: relative;
  overflow: hidden;
}

.premium-card:hover .btn--premium-sm {
  box-shadow: 0 6px 20px rgba(59, 130, 246, 0.35);
  transform: translateY(-2px);
}

/* ---------- RESPONSIVE ---------- */
@media(max-width:1024px) {
  .hp-cats {
    grid-template-columns: repeat(2, 1fr)
  }

  .hp-progs {
    grid-template-columns: repeat(2, 1fr)
  }

  .programs-grid {
    grid-template-columns: repeat(2, 1fr)
  }

  .hp-states {
    grid-template-columns: repeat(3, 1fr)
  }
}

@media(max-width:768px) {
  .hp-hero {
    padding: 64px 1.25rem 56px;
    text-align: center;
  }

  .hp-hero__h1 {
    font-size: 2.2rem;
    margin-bottom: 1.25rem;
  }

  .hp-hero__sub {
    font-size: 1rem;
    margin-bottom: 2rem;
    margin-inline: auto;
  }

  .hp-hero__search {
    width: 100%;
    margin-bottom: 24px;
  }

  .hp-hero__tags {
    justify-content: center;
    margin-bottom: 40px;
  }

  .hp-sec {
    padding: 56px 1.25rem
  }
  
  /* Shared scroll containers for progs (leaving states out as they should be grid) */
  .hp-progs {
    display: flex !important;
    overflow-x: auto !important;
    scroll-snap-type: x mandatory !important;
    gap: 16px !important;
    padding: 0 1.5rem 30px !important; 
    margin: 0 !important; 
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-padding-left: 1.5rem !important;
  }

  .hp-progs::-webkit-scrollbar {
    display: none !important;
  }

  .hp-states {
    display: flex !important;
    overflow-x: auto !important;
    scroll-snap-type: x mandatory !important;
    gap: 16px !important;
    padding: 0 1.5rem 30px !important;
    margin: 0 !important;
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-padding-left: 1.5rem !important;
  }

  .hp-state {
    flex: 0 0 calc(50% - 1.5rem) !important;
    min-width: 140px !important;
    flex-shrink: 0 !important;
    aspect-ratio: 768 / 1024 !important;
    scroll-snap-align: start !important;
    display: flex !important;
    border-radius: 16px !important;
    overflow: hidden !important;
    position: relative !important;
  }

  .hp-prog {
    min-width: 85% !important;
    width: 85% !important;
    flex: 0 0 85% !important;
    flex-shrink: 0 !important;
    scroll-snap-align: center !important;
    display: flex !important;
    flex-direction: column !important;
    border-radius: 16px !important;
    overflow: hidden !important;
    background: var(--surface) !important;
  }

  .hp-cats {
    display: flex !important;
    overflow-x: auto !important;
    scroll-snap-type: x mandatory !important;
    gap: 16px !important;
    padding: 0 1.5rem 30px !important;
    margin: 0 !important;
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-padding-left: 1.5rem !important;
  }

  .hp-cat {
    flex: 0 0 calc(65% - 1.5rem) !important;
    min-width: 180px !important;
    flex-shrink: 0 !important;
    aspect-ratio: 1 / 1 !important;
    scroll-snap-align: start !important;
    border-radius: 16px !important;
    overflow: hidden !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.08) !important;
    position: relative !important;
    display: flex !important;
  }

  .hp-cat__img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }

  .hp-cat__name {
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    position: absolute !important;
    bottom: 12px !important;
    left: 12px !important;
    right: 12px !important;
    padding: 0 !important;
    background: transparent !important;
    text-shadow: 0 1px 4px rgba(0,0,0,0.8) !important;
    color: #fff !important;
    margin: 0 !important;
    z-index: 2 !important;
  }

  .hp-cat .hp-cat__overlay {
    background: linear-gradient(to top, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0) 60%) !important;
  }

  .hp-state__title {
    font-size: 1.15rem !important;
    padding: 18px !important;
    position: absolute !important;
    bottom: 0 !important;
    left: 0 !important;
  }

  /* Scroll Hint Animation */
  .hp-prog--hint {
    animation: hpScrollHint 1.2s ease-in-out infinite alternate !important;
    animation-play-state: running !important;
  }

  @keyframes hpScrollHint {
    0% { transform: translateX(0); }
    100% { transform: translateX(-10px); }
  }

  /* Pause animation on interaction */
  /* Hide "Show more" buttons on mobile as they are redundant with scrolling */
  #show-more-cats,
  #show-more-progs,
  #show-more-states {
    display: none !important;
  }
}

@media(max-width:600px) {
  .hp-hero__search {
    flex-direction: column;
    background: transparent;
    border: none;
    box-shadow: none;
    padding: 0;
    gap: 12px;
  }

  .hp-hero__search svg {
    display: none;
  }

  .hp-hero__search input {
    width: 100%;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 16px;
    padding: 16px 20px;
    box-shadow: var(--shadow-sm);
  }

  .hp-hero__search-btn {
    width: 100%;
    padding: 16px;
    border-radius: 16px;
  }

  .hp-cats {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }

  .programs-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .hp-steps {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .hp-steps-line {
    display: none
  }

  .hp-hero__stats {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }

  .hp-hero__stat {
    padding: 16px;
    border: 1px solid var(--border);
    border-radius: 16px;
    background: var(--surface);
  }

  .hp-hero__stat-n { font-size: 1.5rem; }
  .hp-hero__stat-l { font-size: 0.75rem; }

  .hp-cta {
    padding: 48px 24px;
    border-radius: 24px;
  }

  .hp-cta__title { font-size: 1.75rem; }
}

@media(max-width:400px) {
    .hp-hero {
        padding-top: 40px;
    }
    .hp-hero__stat {
        padding: 12px;
    }
    .hp-hero__stat-n { font-size: 1.25rem; }
    .hp-hero__h1 { font-size: 1.85rem; }
    .hp-hero__sub { font-size: 0.95rem; }
    
    .hp-hero__tags {
        gap: 8px;
    }
    .hp-hero__tag {
        font-size: 0.8rem;
        padding: 6px 12px;
    }
}

/* ---------- EXPLORER REDESIGN (Alle Programme) ---------- */
.page-hero {
  padding-top: 40px;
  padding-bottom: 24px;
}
.page-hero__h1 {
  font-family: 'Poppins', sans-serif !important;
  font-size: 2.2rem;
  margin-bottom: 8px;
}
.page-hero__sub {
  font-family: 'Poppins', sans-serif !important;
  font-size: 1rem;
  max-width: 600px;
  margin: 0 auto;
}
.search-bar__input-wrap {
  border-radius: 999px !important;
  box-shadow: 0 4px 20px rgba(0,0,0,0.05);
  transition: box-shadow var(--t), border-color var(--t);
  padding: 12px 24px !important;
}
.search-bar__input-wrap:focus-within {
  box-shadow: 0 0 0 3px var(--blue-l);
  border-color: var(--blue);
}
.search-bar__input {
  font-family: 'Poppins', sans-serif !important;
  font-size: 1rem !important;
}
.filter-pills {
  gap: 12px !important;
}
.filter-pill {
  border-radius: 999px !important;
  padding: 10px 20px !important;
  font-weight: 500 !important;
  transition: all var(--t) !important;
  font-family: 'Poppins', sans-serif !important;
}
.filter-pill.active {
  background: var(--text) !important;
  color: #fff !important;
}
.results__meta {
  font-family: 'Poppins', sans-serif !important;
  font-weight: 600 !important;
  color: var(--text-2) !important;
  margin-bottom: 24px !important;
}
.explorer-card {
  background: var(--surface) !important;
  border-radius: 24px !important;
  padding: 24px !important;
  display: flex !important;
  flex-direction: column !important;
  box-shadow: 0 4px 20px rgba(0,0,0,0.04) !important;
  border: 1px solid var(--border) !important;
  transition: transform 0.3s, box-shadow 0.3s !important;
  text-decoration: none !important;
  font-family: 'Poppins', sans-serif !important;
}
.explorer-card:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 12px 30px rgba(0,0,0,0.08) !important;
}
.explorer-card__top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 16px;
}
.explorer-card__name {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 12px;
  line-height: 1.3;
}
.explorer-card__desc {
  font-size: 0.95rem;
  color: var(--text-2);
  line-height: 1.6;
  flex: 1;
  margin-bottom: 20px;
}
.explorer-card__divider {
  border: none;
  border-top: 1px solid var(--border);
  margin-bottom: 20px;
}
.btn--explorer {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  border-radius: 999px;
  background: #1E3A8A; /* high quality dark blue */
  color: #fff;
  font-weight: 600;
  font-size: 0.95rem;
  padding: 12px 24px;
  transition: all 0.25s;
  border: none;
  font-family: 'Poppins', sans-serif !important;
}
.btn--explorer:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(30, 58, 138, 0.3);
  background: #1e40af;
}

/* ================================================================
   MODERN DETAIL PAGE REDESIGN (all article/program pages)
   ================================================================ */

/* Hero — tighter & more premium */
.detail-hero {
  background: linear-gradient(145deg, #0F172A 0%, #1e3a8a 60%, #0e2a60 100%) !important;
  padding: 4rem 0 3rem !important;
}
.detail-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.02'%3E%3Ccircle cx='30' cy='30' r='2'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  pointer-events: none;
}
.detail-hero__breadcrumb {
  font-size: 0.82rem !important;
  margin-bottom: 1.5rem !important;
  color: rgba(255,255,255,0.5) !important;
}
.detail-hero__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  align-items: center;
  margin-bottom: 1.25rem !important;
}
.detail-hero__meta-item {
  font-size: 0.82rem !important;
  color: rgba(255,255,255,0.6) !important;
  background: rgba(255,255,255,0.08);
  padding: 4px 12px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.12);
}
.detail-hero__title {
  font-size: clamp(1.9rem, 4vw, 3rem) !important;
  font-weight: 900 !important;
  line-height: 1.15 !important;
  letter-spacing: -0.03em !important;
  margin-bottom: 1.25rem !important;
  color: #fff !important;
}
.detail-hero__amount {
  font-size: 2.75rem !important;
  font-weight: 900 !important;
  color: #34D399 !important;
  letter-spacing: -0.04em !important;
  line-height: 1 !important;
}
.detail-hero__amount-label {
  font-size: 0.82rem !important;
  color: rgba(255,255,255,0.45) !important;
  margin-top: 4px !important;
}

/* Main content layout */
.content-layout {
  display: grid !important;
  grid-template-columns: 1fr 340px !important;
  gap: 3rem !important;
  align-items: start !important;
}

/* Main article body — large, airy, very readable */
.content-main {
  font-family: 'Poppins', sans-serif;
}
.content-main h2 {
  font-size: 1.5rem !important;
  font-weight: 800 !important;
  color: var(--text) !important;
  margin-top: 3rem !important;
  margin-bottom: 1rem !important;
  padding-top: 2.5rem !important;
  border-top: 1px solid var(--border) !important;
  letter-spacing: -0.02em !important;
  line-height: 1.3 !important;
}
.content-main h2:first-child {
  border-top: none !important;
  margin-top: 0 !important;
  padding-top: 0 !important;
}
.content-main h3 {
  font-size: 1.15rem !important;
  font-weight: 700 !important;
  color: var(--text) !important;
  margin-top: 1.75rem !important;
  margin-bottom: 0.75rem !important;
}
.content-main p {
  font-size: 1rem !important;
  line-height: 1.85 !important;
  color: var(--text-2) !important;
  margin-bottom: 1.1rem !important;
}
.content-main ul,
.content-main ol {
  padding-left: 1.5rem !important;
  margin-bottom: 1.25rem !important;
}
.content-main li {
  font-size: 1rem !important;
  line-height: 1.8 !important;
  color: var(--text-2) !important;
  margin-bottom: 0.5rem !important;
  list-style: disc !important;
}
.content-main ol li {
  list-style: decimal !important;
}
.content-main strong {
  color: var(--text) !important;
  font-weight: 700 !important;
}

/* Info boxes — rounded, roomy, clear */
.info-box {
  border-radius: 16px !important;
  padding: 1.25rem 1.5rem !important;
  margin-bottom: 1.5rem !important;
  margin-top: 0.5rem !important;
  display: flex !important;
  gap: 1rem !important;
  align-items: flex-start !important;
  border: 1.5px solid !important;
}
.info-box--tip {
  background: #F0FDF4 !important;
  border-color: #86EFAC !important;
}
.info-box--warn {
  background: #FFF7ED !important;
  border-color: #FDBA74 !important;
}
.info-box--info {
  background: #EFF6FF !important;
  border-color: #93C5FD !important;
}
.info-box__icon {
  font-size: 1.3rem !important;
  flex-shrink: 0 !important;
  margin-top: 1px !important;
}
.info-box__text {
  font-size: 0.95rem !important;
  line-height: 1.75 !important;
  color: var(--text-2) !important;
}
.info-box__text strong {
  color: var(--text) !important;
}

/* Steps checklist — bold numbered steps */
.steps-checklist {
  display: flex !important;
  flex-direction: column !important;
  gap: 1.25rem !important;
  margin-bottom: 1.5rem !important;
}
.steps-checklist__item {
  display: flex !important;
  gap: 1.25rem !important;
  align-items: flex-start !important;
  background: var(--surface) !important;
  border: 1px solid var(--border) !important;
  border-radius: 14px !important;
  padding: 1.1rem 1.25rem !important;
  transition: box-shadow 0.2s, transform 0.2s !important;
}
.steps-checklist__item:hover {
  box-shadow: 0 4px 16px rgba(0,0,0,0.06) !important;
  transform: translateY(-1px) !important;
}
.steps-checklist__num {
  width: 36px !important;
  height: 36px !important;
  border-radius: 10px !important;
  background: linear-gradient(135deg, #1E3A8A, #3B82F6) !important;
  color: #fff !important;
  font-size: 0.85rem !important;
  font-weight: 800 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-shrink: 0 !important;
}
.steps-checklist__title {
  font-weight: 700 !important;
  color: var(--text) !important;
  font-size: 0.97rem !important;
  margin-bottom: 0.3rem !important;
}
.steps-checklist__desc {
  font-size: 0.9rem !important;
  color: var(--text-2) !important;
  line-height: 1.7 !important;
}

/* Sidebar — sticky, well-spaced */
.sidebar {
  position: sticky !important;
  top: calc(var(--header-h) + 1.5rem) !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 1.25rem !important;
}
.sidebar-card {
  background: var(--surface) !important;
  border: 1.5px solid var(--border) !important;
  border-radius: 20px !important;
  padding: 1.5rem !important;
  box-shadow: 0 4px 16px rgba(0,0,0,0.04) !important;
}
.sidebar-card__title {
  font-size: 0.9rem !important;
  font-weight: 800 !important;
  color: var(--text) !important;
  margin-bottom: 1rem !important;
}
.sidebar-card__cta {
  background: linear-gradient(135deg, #1E3A8A 0%, #2563EB 100%) !important;
  border: none !important;
  text-align: center !important;
  box-shadow: 0 8px 24px rgba(30,58,138,0.25) !important;
}
.sidebar-card__cta-title {
  font-size: 1.05rem !important;
  font-weight: 800 !important;
  color: #fff !important;
  margin-bottom: 0.4rem !important;
}
.sidebar-card__cta-text {
  font-size: 0.88rem !important;
  color: rgba(255,255,255,0.8) !important;
  margin-bottom: 1.25rem !important;
  line-height: 1.6 !important;
}

/* Quick facts table */
.quick-facts {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
}
.quick-fact {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  padding: 0.75rem 0 !important;
  border-bottom: 1px solid var(--border) !important;
  gap: 0.5rem !important;
}
.quick-fact:last-child {
  border-bottom: none !important;
  padding-bottom: 0 !important;
}
.quick-fact__label {
  font-size: 0.85rem !important;
  color: var(--text-3) !important;
}
.quick-fact__value {
  font-size: 0.88rem !important;
  font-weight: 700 !important;
  color: var(--text) !important;
  text-align: right !important;
}

/* FAQ accordion */
.faq-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.faq-item {
  background: var(--surface) !important;
  border: 1.5px solid var(--border) !important;
  border-radius: 14px !important;
  overflow: hidden !important;
  transition: border-color 0.2s !important;
}
.faq-item:has(.faq-item__trigger[aria-expanded="true"]) {
  border-color: var(--blue) !important;
}
.faq-item__trigger {
  width: 100% !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  padding: 1.1rem 1.25rem !important;
  background: none !important;
  border: none !important;
  cursor: pointer !important;
  font-weight: 600 !important;
  font-size: 0.97rem !important;
  color: var(--text) !important;
  text-align: left !important;
  gap: 1rem !important;
  font-family: 'Poppins', sans-serif !important;
}
.faq-item__trigger:hover {
  background: var(--bg) !important;
}
.faq-item__body {
  padding: 0 1.25rem 1.1rem !important;
  font-size: 0.95rem !important;
  color: var(--text-2) !important;
  line-height: 1.8 !important;
}
.faq-item__icon {
  flex-shrink: 0 !important;
  width: 24px !important;
  height: 24px !important;
  border-radius: 6px !important;
  background: var(--bg) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: background 0.2s, transform 0.2s !important;
}
.faq-item__trigger[aria-expanded="true"] .faq-item__icon {
  background: var(--blue-l) !important;
  transform: rotate(180deg) !important;
}

/* Affiliate / CTA buttons on article pages */
.affiliate-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  padding: 14px 28px !important;
  border-radius: 999px !important;
  font-weight: 700 !important;
  font-size: 1rem !important;
  cursor: pointer !important;
  border: none !important;
  text-decoration: none !important;
  transition: all 0.25s !important;
  font-family: 'Poppins', sans-serif !important;
  background: linear-gradient(135deg, #1E3A8A, #1e40af) !important;
  color: #fff !important;
  box-shadow: 0 4px 16px rgba(30,58,138,0.3) !important;
  margin-top: 8px !important;
  margin-right: 8px !important;
}
.affiliate-btn:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 24px rgba(30,58,138,0.4) !important;
}

/* Responsive */
@media(max-width: 900px) {
  .content-layout {
    grid-template-columns: 1fr !important;
  }
  .sidebar {
    position: static !important;
  }
  .detail-hero__title {
    font-size: clamp(1.6rem, 5vw, 2.4rem) !important;
  }
}
@media(max-width: 640px) {
  .steps-checklist__item {
    padding: 0.9rem 1rem !important;
  }
  .detail-hero {
    padding: 2.5rem 0 2rem !important;
  }
}

/* ================================================================
   IMAGE CARDS — Alle Programme (foerderungen.html)
   ================================================================ */

/* Override the grid for image cards */
.programs-grid:has(.img-card) {
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
@media(max-width: 900px) { .programs-grid:has(.img-card) { grid-template-columns: repeat(2, 1fr); } }
@media(max-width: 560px) { .programs-grid:has(.img-card) { grid-template-columns: 1fr; } }

.img-card {
  display: flex;
  flex-direction: column;
  background: var(--surface);
  border-radius: 22px;
  border: 1px solid var(--border);
  box-shadow: 0 4px 20px rgba(0,0,0,0.05);
  overflow: hidden;
  text-decoration: none;
  color: var(--text);
  transition: transform 0.28s cubic-bezier(0.34,1.56,0.64,1), box-shadow 0.28s ease;
  font-family: 'Poppins', sans-serif;
  height: 100%;
}
.img-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 40px rgba(0,0,0,0.12);
}

/* Image area */
.img-card__img-wrap {
  width: 100%;
  height: 200px;
  overflow: hidden;
  flex-shrink: 0;
  background: var(--bg-2);
  position: relative;
}

.img-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
  transition: transform 0.4s ease;
}
.img-card:hover .img-card__img {
  transform: scale(1.05);
}

/* Card body */
.img-card__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 20px 22px 22px;
}

/* Badges row */
.img-card__badges {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  margin-bottom: 14px;
}
.img-card__cat {
  font-size: 0.72rem;
  font-weight: 700;
  padding: 4px 11px;
  border-radius: 999px;
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.img-card__amount {
  font-size: 0.72rem;
  font-weight: 700;
  background: var(--text);
  color: #fff;
  padding: 4px 11px;
  border-radius: 999px;
  white-space: nowrap;
}

/* Title */
.img-card__name {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--text);
  line-height: 1.35;
  margin-bottom: 10px;
  letter-spacing: -0.01em;
}

/* Description */
.img-card__desc {
  font-size: 0.88rem;
  color: var(--text-2);
  line-height: 1.7;
  flex: 1;
  margin-bottom: 18px;
}

/* Footer CTA */
.img-card__footer {
  margin-top: auto;
}
.img-card__btn {
  display: block;
  width: 100%;
  text-align: center;
  padding: 12px 20px;
  border-radius: 999px;
  background: #1E3A8A;
  color: #fff;
  font-weight: 700;
  font-size: 0.9rem;
  font-family: 'Poppins', sans-serif;
  transition: background 0.2s, box-shadow 0.2s;
}
.img-card:hover .img-card__btn {
  background: #1e40af;
  box-shadow: 0 4px 16px rgba(30,58,138,0.35);
}

/* Homepage program-card image hover zoom */
.program-card:hover .program-card__img,
.premium-card:hover .program-card__img {
  transform: scale(1.05);
}

/* ───── NEWSLETTER POPUP ─────────────────────────── */
#newsletter-popup {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem;
}

.newsletter-popup__backdrop {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(15, 23, 42, 0.6);
  backdrop-filter: blur(4px);
}

.newsletter-popup__content {
  position: relative;
  background: var(--surface);
  width: 100%;
  max-width: 480px;
  padding: 3rem 2.5rem;
  border-radius: var(--r-xl);
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
  text-align: center;
  z-index: 10;
  border: 1px solid var(--border);
  animation: popupFadeIn 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes popupFadeIn {
  from { opacity: 0; transform: translateY(20px) scale(0.95); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.newsletter-popup__close {
  position: absolute;
  top: 1.5rem;
  right: 1.5rem;
  background: var(--surface-2);
  border: none;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  cursor: pointer;
  color: var(--text-3);
  transition: all var(--t-fast);
}

.newsletter-popup__close:hover {
  background: var(--border);
  color: var(--text);
}

.newsletter-popup__icon {
  font-size: 3.5rem;
  margin-bottom: 1.5rem;
}

.newsletter-popup__content h2 {
  font-size: 1.75rem;
  font-weight: 800;
  color: var(--text);
  margin-bottom: 0.75rem;
  letter-spacing: -0.02em;
}

.newsletter-popup__content p {
  color: var(--text-2);
  line-height: 1.6;
  margin-bottom: 2rem;
}

#newsletter-popup-form {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

#newsletter-popup-form input {
  padding: 1rem 1.25rem;
  border-radius: var(--r-md);
  border: 1.5px solid var(--border);
  font-family: var(--font);
  font-size: 1rem;
  outline: none;
  transition: border-color var(--t-fast);
}

#newsletter-popup-form input:focus {
  border-color: var(--blue);
}

#newsletter-popup-form button {
  background: var(--blue);
  color: #fff;
  border: none;
  padding: 1rem;
  border-radius: var(--r-md);
  font-weight: 700;
  font-size: 1rem;
  cursor: pointer;
  transition: transform var(--t-fast), box-shadow var(--t-fast);
}

#newsletter-popup-form button:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 15px -3px rgba(30, 58, 138, 0.3);
}

.newsletter-popup__hint {
  margin-top: 1.5rem;
  font-size: 0.75rem;
  color: var(--text-3) !important;
  margin-bottom: 0 !important;
}
