/*
Theme Name: Andras Pinter Custom Theme
Theme URI: https://andraspinter.de
Author: Andras Pinter
Author URI: https://andraspinter.de
Description: Individuelles WordPress-Theme für die SEO- & GEO-Beratung von Andras Pinter. Migriert aus einem statischen HTML/CSS/JS-Build. Der Kontaktformular-Bereich wird über das WPForms-Plugin abgedeckt.
Version: 1.0.83
Requires at least: 6.0
Requires PHP: 7.4
License: Proprietary
Text Domain: andraspinter
*/
/* ==========================================================================
   Andras Pinter — SEO, GEO & AI Visibility Beratung
   ========================================================================== */

/* DM Sans wird als <link> im <head> jeder Seite geladen (nicht per @import,
   da @import render-blocking ist und eine serielle statt parallele
   Ressourcen-Anfrage erzwingt). */

:root {
  color-scheme: light;
  --color-bg: #F8F4F1;
  --color-text: #0E1220;
  --color-text-secondary: #5F6673;
  --color-cta-start: #FF4B3E;
  --color-cta-end: #FF6A2A;
  --color-accent: #FF4438;
  --color-accent-rgb: 255, 68, 56;
  --color-accent-a11y: #D6301F;
  --color-black: #000000;
  --color-card: #FFFFFF;
  --color-border: #F1D8CF;
  --color-dark-bg: #080B16;

  --gradient-cta: linear-gradient(90deg, var(--color-cta-start), var(--color-cta-end));

  --font-base: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  --container-width: 1200px;
  --radius-sm: 10px;
  --radius-md: 16px;
  --radius-lg: 24px;
  --radius-pill: 999px;

  --shadow-card: 0 12px 32px rgba(14, 18, 32, 0.06);
  --shadow-card-hover: 0 20px 44px rgba(14, 18, 32, 0.1);
  --shadow-header: 0 6px 20px rgba(0, 0, 0, 0.12);
}

/* ---------- Reset ---------- */
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
}

/* Verhindert, dass Anchor-Ziele (direkter Hash-Aufruf, Reload, Zurück/Vor) unter dem
   sticky Header verschwinden. Deckt sich mit dem Offset des JS-Click-Handlers
   (headerHeight + 16px) in script.js. */
[id] {
  scroll-margin-top: 145px;
}

@media (min-width: 861px) and (max-width: 1024px) {
  [id] {
    scroll-margin-top: 183px;
  }
}

body {
  font-family: var(--font-base);
  background: var(--color-bg);
  color: var(--color-text);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

p {
  font-size: 1rem;
}

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

a {
  color: inherit;
  text-decoration: none;
}

ul {
  list-style: none;
}

button {
  font-family: inherit;
  cursor: pointer;
  border: none;
  background: none;
}

input, select, textarea {
  font-family: inherit;
  font-size: 1rem;
}

.container {
  width: 100%;
  max-width: var(--container-width);
  margin: 0 auto;
  padding: 0 24px;
}

section {
  padding: 96px 0;
}

/* ---------- Alternating full-width section backgrounds ---------- */
.section-white {
  background: #ffffff;
}

.section-soft {
  background: #fff3f0;
}

h1, h2, h3, h4 {
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: -0.02em;
}

h2 {
  font-size: 2rem;
}

h3 {
  font-size: 1.75rem;
}

.eyebrow {
  display: inline-block;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-accent-a11y);
  margin-bottom: 12px;
}

/* --color-accent-a11y statt --color-accent: bei dieser Schriftgröße/-stärke
   gilt der Text nach WCAG nicht als "großer Text" (>= 18.66px bold bzw.
   24px normal), braucht also 4.5:1 statt 3:1 Kontrast auf hellem
   Hintergrund - nur die a11y-Variante erreicht das. */
.text-accent {
  color: var(--color-accent-a11y);
}

.section-intro {
  max-width: 640px;
  color: var(--color-text-secondary);
  font-size: 1rem;
  margin-top: 16px;
}

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 16px 30px;
  border-radius: var(--radius-pill);
  font-weight: 700;
  font-size: 0.9rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease, color 0.25s ease;
  text-align: center;
}

.btn-cta {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  background: var(--gradient-cta);
  color: #fff;
  box-shadow: 0 10px 24px rgba(var(--color-accent-rgb), 0.28);
}

.btn-cta::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, #ff3b2f, #ff6a2a, #ff9f1c, #ffd166, #ff9f1c, #ff6a2a, #ff3b2f);
  background-size: 300% 100%;
  background-position: 0% 50%;
  opacity: 0;
  transition: opacity 0s;
}

.btn-cta:hover,
.btn-cta:focus-visible {
  transform: translateY(-3px);
  box-shadow: 0 16px 32px rgba(var(--color-accent-rgb), 0.38);
}

.btn-cta:hover::before,
.btn-cta:focus-visible::before {
  opacity: 1;
  animation: btn-cta-flow 2s ease-out forwards;
}

@keyframes btn-cta-flow {
  from {
    background-position: 0% 50%;
  }
  to {
    background-position: 100% 50%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .btn-cta:hover::before,
  .btn-cta:focus-visible::before,
  .brand:hover .logo-sweep-effect::before,
  .brand:focus-visible .logo-sweep-effect::before,
  .solution-card:hover .solution-card-icon::after,
  .kontakt-form .wpforms-submit:hover::before,
  .kontakt-form .wpforms-submit:focus-visible::before {
    animation: none;
  }
}

.btn-outline {
  background: transparent;
  border: 2px solid var(--color-text);
  color: var(--color-text);
}

.btn-outline:hover {
  background: var(--color-text);
  color: #fff;
  transform: translateY(-3px);
}

.btn-outline-light {
  background: transparent;
  border: 2px solid rgba(255, 255, 255, 0.6);
  color: #fff;
}

.btn-outline-light:hover {
  background: #fff;
  color: var(--color-black);
  transform: translateY(-3px);
}

.btn-sm {
  padding: 12px 22px;
  font-size: 0.78rem;
}

/* ---------- Arrow link ---------- */
.arrow-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--gradient-cta);
  color: #fff;
  font-size: 1.1rem;
  flex-shrink: 0;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  box-shadow: 0 8px 18px rgba(var(--color-accent-rgb), 0.25);
}

.arrow-btn:hover {
  transform: rotate(45deg);
  box-shadow: 0 12px 24px rgba(var(--color-accent-rgb), 0.35);
}

.text-link-arrow {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--color-accent-a11y);
  font-weight: 700;
  font-size: 0.92rem;
  transition: gap 0.25s ease;
}

.text-link-arrow:hover {
  gap: 10px;
}

/* ==========================================================================
   Skip-Link (WCAG 2.4.1 Bypass Blocks) - für Tastatur-Nutzer unsichtbar,
   bis das Element den Fokus erhält, dann springt es sichtbar ins Bild.
   ========================================================================== */

.skip-link {
  position: absolute;
  top: -100px;
  left: 16px;
  z-index: 10000;
  background: var(--color-dark-bg);
  color: #fff;
  padding: 12px 20px;
  border-radius: var(--radius-sm);
  font-weight: 600;
  font-size: 0.95rem;
  text-decoration: none;
  transition: top 0.2s ease;
}

.skip-link:focus {
  top: 16px;
}

/* ==========================================================================
   Header
   ========================================================================== */

header.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  transition: box-shadow 0.3s ease;
}

header.site-header.is-scrolled {
  box-shadow: var(--shadow-header);
}

.topbar {
  background: var(--color-black);
  color: #fff;
  font-size: 0.875rem;
}

.topbar .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 10px;
  padding-bottom: 10px;
}

.topbar-left {
  display: flex;
  align-items: center;
  gap: 12px;
  color: rgba(255, 255, 255, 0.75);
}

.topbar-left .divider {
  width: 1px;
  height: 12px;
  background: rgba(255, 255, 255, 0.25);
}

.topbar-left a {
  color: rgba(255, 255, 255, 0.9);
  transition: color 0.2s ease;
}

.topbar-left a:hover {
  color: var(--color-accent);
}

.topbar-social {
  display: flex;
  align-items: center;
  gap: 14px;
}

.topbar-social a {
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  /* Padding+negativer Margin vergrößert die Klickfläche auf >=24x24px
     (WCAG 2.5.8), ohne den Abstand im Topbar-Layout zu verändern. */
  padding: 5px;
  margin: -5px;
  opacity: 0.85;
  transition: opacity 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.topbar-social a:hover {
  opacity: 1;
  color: var(--color-accent);
  transform: translateY(-2px);
}

.navbar {
  background: #fff;
  color: var(--color-text);
  border-bottom: 1px solid var(--color-border);
}

.navbar .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 20px;
  padding-bottom: 20px;
  gap: 24px;
}

.brand {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
}

.brand-mark {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  position: relative;
}

.brand-mark img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.logo-sweep-effect::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(
    90deg,
    rgba(255, 224, 130, 0) 0%,
    rgba(255, 224, 130, 0) 40%,
    rgba(255, 224, 130, 0.9) 50%,
    rgba(255, 224, 130, 0) 60%,
    rgba(255, 224, 130, 0) 100%
  );
  background-size: 300% 100%;
  background-position: 0% 50%;
  opacity: 0;
  transition: opacity 0.4s ease;
  pointer-events: none;
  mix-blend-mode: screen;
}

.brand:hover .logo-sweep-effect::before,
.brand:focus-visible .logo-sweep-effect::before {
  opacity: 1;
  animation: btn-cta-flow 1.4s ease-in-out forwards;
}

.brand-name {
  display: flex;
  flex-direction: column;
  line-height: 1.15;
}

.brand-name-main {
  color: var(--color-text);
  font-size: 1.1rem;
  white-space: nowrap;
}

.brand-name-main .light {
  font-weight: 400;
}

.brand-name-main .bold {
  font-weight: 700;
  transition: color 0.3s ease;
}

.brand:hover .brand-name-main .bold {
  color: var(--color-accent-a11y);
}

.brand-name-sub {
  font-size: 0.64rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--color-accent-a11y);
  margin-top: 3px;
  white-space: nowrap;
}

.footer-brand .brand-name-main {
  color: #fff;
}

.footer-brand .brand-name-sub {
  /* Auf dem dunklen Footer-Hintergrund (#000) braucht es eine hellere
     Akzentfarben-Variante als auf Weiß, um 4.5:1 Kontrast (WCAG AA) zu
     erreichen; --color-accent-a11y ist für hellen Hintergrund optimiert. */
  color: #FF3F33;
}

.nav-links {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}

.nav-links a {
  color: var(--color-text);
  font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-size: 1rem;
  font-weight: 500;
  line-height: 25px;
  transition: color 0.2s ease;
  position: relative;
}

.nav-links a:hover {
  color: var(--color-accent-a11y);
}

.nav-actions {
  display: flex;
  align-items: center;
  gap: 16px;
}

.nav-toggle {
  display: none;
  flex-direction: column;
  gap: 5px;
  width: 32px;
  height: 24px;
  justify-content: center;
  flex-shrink: 0;
}

.nav-toggle span {
  display: block;
  height: 2px;
  width: 100%;
  background: var(--color-text);
  border-radius: 2px;
  transition: transform 0.3s ease, opacity 0.3s ease;
}

/* ==========================================================================
   Hero
   ========================================================================== */

.hero {
  padding: 80px 0 100px;
  position: relative;
  overflow: hidden;
}

.hero .container {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 56px;
  align-items: center;
}

.hero-content {
  margin-top: -48px;
}

.hero-content h1 {
  font-size: 2.25rem;
  margin-bottom: 22px;
}

.hero-content p {
  color: var(--color-text-secondary);
  font-size: 1rem;
  max-width: 520px;
  margin-bottom: 36px;
}

.hero-actions {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}

.hero-visual {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}

.blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(2px);
  animation: float 8s ease-in-out infinite;
  z-index: 0;
}

.blob-1 {
  width: 340px;
  height: 340px;
  background: linear-gradient(140deg, var(--color-cta-start), var(--color-cta-end));
  opacity: 0.28;
  top: -40px;
  right: -20px;
  animation-delay: 0s;
}

.blob-2 {
  width: 220px;
  height: 220px;
  background: var(--color-border);
  opacity: 0.55;
  bottom: -30px;
  left: -20px;
  animation-delay: 1.4s;
}

@keyframes float {
  0%, 100% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(0, -22px) scale(1.04); }
}

.hero-image-wrap {
  position: relative;
  z-index: 1;
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-card-hover);
  max-width: 420px;
}

.hero-image-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ---------- Hero floating info badges ---------- */
.hero-badge {
  position: absolute;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-pill);
  padding: 10px 18px;
  font-family: var(--font-base);
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--color-text);
  box-shadow: 0 12px 28px rgba(14, 18, 32, 0.12);
  white-space: nowrap;
  animation: hero-badge-float ease-in-out infinite;
}

.hero-badge-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--gradient-cta);
  flex-shrink: 0;
}

.hero-badge-1 {
  top: 6%;
  left: -8%;
  animation-duration: 8s;
  animation-delay: 0s;
}

.hero-badge-2 {
  top: 18%;
  right: -12%;
  animation-duration: 9s;
  animation-delay: 1.2s;
}

.hero-badge-3 {
  bottom: 16%;
  left: -10%;
  animation-duration: 7.5s;
  animation-delay: 2.4s;
}

.hero-badge-4 {
  bottom: 4%;
  right: -6%;
  animation-duration: 8.5s;
  animation-delay: 0.8s;
}

.hero-badge-5 {
  top: 42%;
  left: -14%;
  animation-duration: 8.2s;
  animation-delay: 1.8s;
}

.hero-badge-6 {
  top: 50%;
  right: -16%;
  animation-duration: 7.8s;
  animation-delay: 3s;
}

.hero-badge-7 {
  top: -6%;
  left: 38%;
  animation-duration: 8.8s;
  animation-delay: 2s;
}

.hero-badge-8 {
  bottom: 24%;
  right: -10%;
  animation-duration: 7.2s;
  animation-delay: 3.6s;
}

@keyframes hero-badge-float {
  0%, 100% {
    transform: translate(0, 0);
  }
  50% {
    transform: translate(4px, -10px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero-badge {
    animation: none;
  }
}

.img-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-border);
  color: var(--color-text-secondary);
  font-size: 0.85rem;
  text-align: center;
  padding: 40px 16px;
  min-height: 260px;
  border-radius: inherit;
}

/* ==========================================================================
   Problem section
   ========================================================================== */

.problem {
  padding: 28px 0 16px;
}

.problem-top {
  display: grid;
  grid-template-columns: 1fr 460px;
  gap: 32px;
  align-items: center;
  margin-bottom: 8px;
}

.problem-header {
  max-width: none;
  margin-bottom: 0;
}

@media (min-width: 1025px) {
  .problem-header {
    margin-top: -110px;
  }
}

.problem-visual {
  position: relative;
  margin-bottom: 0;
  margin-top: 28px;
  transform: translateX(-24px);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-card);
}

.problem-visual img {
  width: 100%;
  height: auto;
  display: block;
}

.problem-visual-marker {
  position: absolute;
  top: 38.1%;
  left: 81.9%;
  width: 12px;
  height: 12px;
  margin: -6px 0 0 -6px;
  border-radius: 50%;
  background: var(--color-accent);
  pointer-events: none;
}

/* Der Puls-Ring läuft als eigenes ::after mit transform+opacity statt
   box-shadow (wie zuvor) - box-shadow-Animationen lösen bei jedem Frame
   Repaints statt reiner Compositor-Arbeit aus (PageSpeed: "nicht
   zusammengesetzte Animation"). */
.problem-visual-marker::after {
  content: "";
  position: absolute;
  inset: -1px;
  border-radius: 50%;
  border: 2px solid var(--color-accent);
  animation: problem-marker-pulse 2.2s ease-out infinite;
}

@media (prefers-reduced-motion: reduce) {
  .problem-visual-marker::after {
    animation: none;
  }
}

@keyframes problem-marker-pulse {
  0% { transform: scale(0.6); opacity: 0.55; }
  70% { transform: scale(2.6); opacity: 0; }
  100% { transform: scale(2.6); opacity: 0; }
}

.problem-subheading {
  margin: -95px 0 60px;
}

.problem-subheading h3 {
  max-width: 660px;
  font-size: 1.5rem;
  font-weight: 600;
  color: #3A3F4B;
  text-align: left;
  margin: 0 0 12px;
}

.problem-subheading p {
  max-width: 760px;
  margin: 0 auto;
  text-align: center;
  color: var(--color-text-secondary);
  font-size: 1rem;
  line-height: 1.6;
}

.challenges-carousel {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  margin-bottom: 16px;
}

.challenges-viewport {
  position: relative;
  flex: 0 1 720px;
  max-width: 720px;
  min-width: 0;
  height: 315px;
  perspective: 1400px;
  overflow-x: hidden;
  overflow-y: visible;
  touch-action: pan-y;
  cursor: grab;
}

.challenges-viewport:active {
  cursor: grabbing;
}

.challenges-track {
  position: relative;
  width: 100%;
  height: 100%;
  transform-style: preserve-3d;
}

.challenge-card {
  position: absolute;
  top: 50%;
  left: 50%;
  width: min(285px, 78vw);
  height: 265px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 16px 22px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: var(--color-bg);
  box-shadow: var(--shadow-card);
  cursor: pointer;
  user-select: none;
  transition: transform 0.6s cubic-bezier(0.22, 0.61, 0.36, 1), opacity 0.6s ease, filter 0.6s ease, box-shadow 0.4s ease, border-color 0.3s ease;
}

.challenge-card.is-dragging {
  transition: none;
}

.challenge-card.is-active {
  box-shadow: 0 24px 48px rgba(14, 18, 32, 0.14), 0 8px 20px rgba(var(--color-accent-rgb), 0.12);
  border-color: rgba(var(--color-accent-rgb), 0.18);
  cursor: default;
}

.challenge-card:hover {
  box-shadow: var(--shadow-card-hover);
  border-color: rgba(var(--color-accent-rgb), 0.3);
}

.challenge-card:focus-visible {
  outline: 3px solid rgba(var(--color-accent-rgb), 0.4);
  outline-offset: 3px;
}

.challenge-card.is-prev {
  -webkit-mask-image: linear-gradient(to left, transparent 0%, black 45%);
  mask-image: linear-gradient(to left, transparent 0%, black 45%);
}

.challenge-card.is-next {
  -webkit-mask-image: linear-gradient(to right, transparent 0%, black 45%);
  mask-image: linear-gradient(to right, transparent 0%, black 45%);
}

.challenge-card img {
  width: 38px;
  height: 38px;
  object-fit: contain;
  margin-bottom: 9px;
  pointer-events: none;
}

.challenge-card h3 {
  width: 100%;
  text-align: center;
  font-size: 1.375rem;
  font-weight: 800;
  margin-bottom: 7px;
}

.challenge-card .problem-desc {
  font-size: 0.875rem;
  font-weight: 400;
  color: var(--color-text-secondary);
  line-height: 1.42;
}

.carousel-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--color-card);
  border: 1px solid var(--color-border);
  color: var(--color-text);
  box-shadow: var(--shadow-card);
  flex-shrink: 0;
  cursor: pointer;
  transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.carousel-arrow svg {
  width: 20px;
  height: 20px;
}

.carousel-arrow:hover {
  background: var(--gradient-cta);
  color: #fff;
  border-color: transparent;
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(var(--color-accent-rgb), 0.3);
}

.carousel-arrow:focus-visible {
  outline: 3px solid rgba(var(--color-accent-rgb), 0.4);
  outline-offset: 2px;
}

.problem-footer {
  text-align: center;
}

/* ==========================================================================
   Solution: Sichtbarkeit bei Google & KI-Systemen
   ========================================================================== */

.solution-header {
  max-width: 640px;
  margin-bottom: 48px;
  text-align: left;
}

.solution-header .section-intro {
  margin-top: 14px;
}

.solution-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-bottom: 40px;
}

.solution-card {
  background: var(--color-card);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 20px 24px;
  box-shadow: var(--shadow-card);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.solution-card:hover {
  position: relative;
  z-index: 10;
  transform: translateY(-4px);
  box-shadow: var(--shadow-card-hover);
}

.solution-card-icon {
  position: relative;
  display: block;
  width: 100%;
  height: 136px;
  margin: 0 auto 6px;
  border-radius: var(--radius-md);
  overflow: hidden;
  background: linear-gradient(135deg, rgba(var(--color-accent-rgb), 0.1), rgba(var(--color-accent-rgb), 0.02));
  box-shadow: inset 0 0 0 1px rgba(var(--color-accent-rgb), 0.08);
  isolation: isolate;
  z-index: 1;
  transition: box-shadow 0.3s ease;
}

.solution-card-icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  display: block;
  padding: 2px;
  box-sizing: border-box;
  border-radius: var(--radius-md);
  transition: transform 0.4s ease;
}

.solution-card-icon::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(
    100deg,
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 255, 255, 0) 40%,
    rgba(255, 255, 255, 0.5) 50%,
    rgba(255, 255, 255, 0) 60%,
    rgba(255, 255, 255, 0) 100%
  );
  background-size: 250% 100%;
  background-position: 0% 50%;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}

.solution-card:hover .solution-card-icon {
  box-shadow: inset 0 0 0 1px rgba(var(--color-accent-rgb), 0.08), 0 10px 24px rgba(var(--color-accent-rgb), 0.16);
}

.solution-card:hover .solution-card-icon img {
  transform: scale(1.08);
}

.solution-card:hover .solution-card-icon::after {
  opacity: 1;
  animation: btn-cta-flow 1.2s ease-in-out forwards;
}

.solution-card h3 {
  font-size: 1.75rem;
  font-weight: 800;
  margin-bottom: 10px;
}

.solution-card p {
  color: var(--color-text-secondary);
  font-size: 1rem;
  line-height: 1.6;
}

.solution-note {
  text-align: left;
  max-width: none;
  margin: 0 0 40px;
  color: var(--color-text-secondary);
  font-size: 1rem;
  padding: 24px 28px;
  border-left: 3px solid var(--color-accent);
  background: var(--color-bg);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
}

.solution-footer {
  text-align: left;
}

/* ==========================================================================
   Services
   ========================================================================== */

.services-layout {
  display: grid;
  grid-template-columns: minmax(280px, 32.5%) 1fr;
  gap: 40px;
  align-items: start;
}

.services-header {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  position: sticky;
  top: 140px;
}

.services-header h2 {
  max-width: 400px;
}

.services-header .section-intro {
  max-width: 360px;
  margin: 16px 0 0;
}

.services-header .btn {
  margin-top: 20px;
}

.services-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
  align-items: stretch;
}

.service-card {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: var(--color-card);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-height: 250px;
  box-shadow: var(--shadow-card);
  transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.45s ease;
}

.service-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: var(--gradient-cta);
  transform: translateY(100%);
  transition: transform 0.45s ease;
}

.service-card:hover {
  transform: translateY(-6px);
  border-color: transparent;
  box-shadow: var(--shadow-card-hover);
}

.service-card:hover::before {
  transform: translateY(0);
}

.service-card:hover h3,
.service-card:hover .lead {
  color: #fff;
}

.service-card:hover p.desc {
  color: rgba(255, 255, 255, 0.85);
}

.service-card:hover .arrow-btn {
  transform: rotate(45deg);
  background: #fff;
  color: var(--color-accent);
  box-shadow: 0 12px 24px rgba(14, 18, 32, 0.24);
}

.service-card .arrow-btn {
  width: 36px;
  height: 36px;
  font-size: 0.9rem;
  margin-top: auto;
}

.service-card-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  margin-bottom: 2px;
}

.service-card-icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: filter 0.35s ease;
}

.service-card:hover .service-card-icon img {
  filter: brightness(0) invert(1);
}

.service-card h3 {
  font-size: 1.15rem;
  font-weight: 800;
  min-height: 44px;
  display: flex;
  align-items: flex-start;
  transition: color 0.3s ease;
}

.service-card .lead {
  font-weight: 600;
  color: var(--color-text);
  font-size: 0.86rem;
  min-height: 32px;
  transition: color 0.3s ease;
}

.service-card p.desc {
  color: var(--color-text-secondary);
  font-size: 0.82rem;
  line-height: 1.5;
  transition: color 0.3s ease;
}

/* ==========================================================================
   Zusammenarbeit (3-step process)
   ========================================================================== */

.zusammenarbeit .container {
  max-width: 1150px;
}

.zusammenarbeit-header {
  max-width: 680px;
  margin: 0 auto 48px;
  text-align: center;
}

.zusammenarbeit-header .section-intro {
  margin: 16px auto 0;
}

.zusammenarbeit-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-bottom: 44px;
}

.zusammenarbeit-card {
  background: var(--color-card);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: var(--shadow-card);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.zusammenarbeit-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-card-hover);
}

.zusammenarbeit-card-image {
  box-sizing: border-box;
  width: calc(100% - 24px);
  margin: 12px 12px 0;
  padding: 6px;
  aspect-ratio: 2.3 / 1;
  border-radius: var(--radius-md);
  background: linear-gradient(135deg, rgba(var(--color-accent-rgb), 0.12), rgba(var(--color-accent-rgb), 0.02));
  box-shadow: 0 10px 24px rgba(14, 18, 32, 0.1);
  overflow: hidden;
}

.zusammenarbeit-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: calc(var(--radius-md) - 6px);
  display: block;
  transition: transform 0.4s ease;
}

.zusammenarbeit-card:hover .zusammenarbeit-card-image img {
  transform: scale(1.05);
}

.zusammenarbeit-card-body {
  padding: 16px 20px 20px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex-grow: 1;
}

.zusammenarbeit-card h3 {
  font-size: 1.3125rem;
  font-weight: 800;
}

.zusammenarbeit-card p {
  color: var(--color-text-secondary);
  font-size: 0.9375rem;
  flex-grow: 1;
}

.zusammenarbeit-footer {
  text-align: center;
}

/* ==========================================================================
   Referenzen
   ========================================================================== */

.referenzen-top {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: 40px;
  align-items: start;
  margin-bottom: 48px;
  background: var(--color-card);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 32px;
  box-shadow: var(--shadow-card);
}

.referenzen-top > * {
  min-width: 0;
}

.referenzen-cta {
  margin-top: 20px;
}

.referenzen-cta .btn {
  width: 100%;
}

.referenzen-image-group {
  min-width: 0;
}

.referenzen-image-frame {
  position: relative;
  padding: 20px;
}

.referenzen-image-shape-main {
  position: absolute;
  top: 38px;
  left: calc(6.5% + 35px);
  right: calc(6.5% - 1px);
  bottom: 2px;
  background: #FF5936;
  border-radius: var(--radius-lg);
  z-index: 0;
}

.referenzen-image {
  position: relative;
  z-index: 1;
  max-width: 87%;
  margin: 0 auto;
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-card);
}

.referenzen-image img {
  width: 100%;
  height: 490px;
  object-fit: cover;
  display: block;
}

.uebermich-badge-link {
  position: relative;
  display: block;
  width: 100px;
  height: 100px;
  margin-top: 48px;
  margin-left: 60px;
  border-radius: 50%;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.uebermich-badge-link:hover,
.uebermich-badge-link:focus-visible {
  transform: scale(1.08);
  box-shadow: 0 10px 24px rgba(var(--color-accent-rgb), 0.35);
  outline: none;
}

.uebermich-badge-link::after {
  content: "Google Ads Search Zertifizierung ansehen";
  position: absolute;
  bottom: calc(100% + 10px);
  left: 50%;
  transform: translateX(-50%) translateY(4px);
  background: var(--color-text);
  color: #fff;
  font-size: 0.75rem;
  font-weight: 600;
  white-space: nowrap;
  padding: 6px 12px;
  border-radius: var(--radius-sm);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease, transform 0.25s ease;
  z-index: 10;
}

.uebermich-badge-link::before {
  content: "";
  position: absolute;
  bottom: calc(100% + 4px);
  left: 50%;
  transform: translateX(-50%);
  border: 6px solid transparent;
  border-top-color: var(--color-text);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease;
  z-index: 10;
}

.uebermich-badge-link:hover::after,
.uebermich-badge-link:focus-visible::after {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

.uebermich-badge-link:hover::before,
.uebermich-badge-link:focus-visible::before {
  opacity: 1;
}

.uebermich-badge {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  clip-path: circle(50%);
}

.referenzen-kicker {
  color: var(--color-text-secondary);
  font-size: 0.9375rem;
  font-weight: 600;
  margin-bottom: 4px;
}

.referenzen-kicker a {
  color: var(--color-accent-a11y);
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: color 0.2s ease;
}

.referenzen-kicker a:hover,
.referenzen-kicker a:focus-visible {
  color: #a82418;
}

.referenzen-content h3 {
  margin: 4px 0 16px;
}

.referenzen-content p {
  color: var(--color-text-secondary);
  margin-bottom: 10px;
}

.referenzen-greeting {
  color: var(--color-text);
  font-weight: 700;
  font-size: 1rem;
}

.referenzen-checklist {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px 18px;
  margin: 14px 0 14px;
}

.referenzen-languages {
  color: var(--color-text-secondary);
  font-size: 0.78rem;
  border-top: 1px solid var(--color-border);
  padding-top: 10px;
  margin-bottom: 16px;
}

.referenzen-checklist li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  color: var(--color-text);
  font-size: 0.9rem;
  line-height: 1.4;
}

.checklist-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  margin-top: 1px;
  border-radius: 50%;
  background: var(--gradient-cta);
  color: #fff;
  flex-shrink: 0;
  box-shadow: 0 4px 10px rgba(var(--color-accent-rgb), 0.3);
}

.checklist-icon svg {
  width: 11px;
  height: 11px;
}

.referenzen-projects .eyebrow {
  display: block;
  text-align: center;
}

.referenzen-projects h2.subtitle {
  font-size: 1.75rem;
  max-width: 860px;
  margin: 0 auto;
  text-align: center;
  color: var(--color-text);
}

.referenzen-projects .section-intro {
  max-width: 860px;
  margin: 16px auto 24px;
  text-align: center;
}

.project-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.referenzen-projects-cta {
  text-align: center;
  margin-top: 40px;
}

.project-card {
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.project-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-card-hover);
}

.project-card-image {
  height: 140px;
  flex-shrink: 0;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-card);
  border-bottom: 1px solid var(--color-border);
  padding: 10px;
}

.project-card-image img {
  width: auto;
  height: auto;
  max-width: 200px;
  max-height: 120px;
  object-fit: contain;
  display: block;
  transition: transform 0.4s ease;
}

.project-card:hover .project-card-image img {
  transform: scale(1.05);
}

.project-card-body {
  padding: 22px 26px 26px;
}

.project-card h3 {
  font-size: 1.15rem;
  margin-bottom: 10px;
  font-weight: 800;
}

.project-card p {
  color: var(--color-text-secondary);
  font-size: 0.92rem;
  line-height: 1.55;
}

.project-card p.project-card-meta {
  margin-top: 9px;
  font-size: 0.88rem;
  opacity: 0.8;
}

.project-card-link {
  margin-top: 12px;
}

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

.blog-teaser .container {
  max-width: 1150px;
}

.blog-teaser-header {
  max-width: 680px;
  margin: 0 auto 48px;
  text-align: center;
}

.blog-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-bottom: 38px;
}

.blog-card {
  background: var(--color-card);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: var(--shadow-card);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.blog-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-card-hover);
}

.blog-card-image {
  display: block;
  position: relative;
  box-sizing: border-box;
  width: calc(100% - 22px);
  margin: 11px 11px 0;
  padding: 5px;
  aspect-ratio: 4 / 3;
  border-radius: var(--radius-md);
  background: linear-gradient(135deg, rgba(var(--color-accent-rgb), 0.12), rgba(var(--color-accent-rgb), 0.02));
  box-shadow: 0 10px 24px rgba(14, 18, 32, 0.1);
  overflow: hidden;
}

.blog-card-image::after {
  content: '';
  position: absolute;
  inset: 6px;
  border-radius: calc(var(--radius-md) - 6px);
  background: linear-gradient(155deg, #FF8A5C, #FF4438 50%, #B23420 100%);
  mix-blend-mode: color;
  opacity: 0.78;
  pointer-events: none;
  z-index: 1;
}

.blog-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: calc(var(--radius-md) - 6px);
  display: block;
  filter: grayscale(0.9) contrast(1.08) brightness(1.08);
  transition: transform 0.4s ease, filter 0.4s ease;
}

.blog-card:hover .blog-card-image img {
  transform: scale(1.05);
  filter: grayscale(0.8) contrast(1.1) brightness(1.1);
}

.blog-cards-original .blog-card-image::after {
  display: none;
}

.blog-cards-original .blog-card-image img {
  filter: none;
}

.blog-cards-original .blog-card:hover .blog-card-image img {
  filter: none;
}

.blog-card-body {
  padding: 13px 17px 17px;
  display: flex;
  flex-direction: column;
  gap: 7px;
  flex-grow: 1;
}

.blog-card h2,
.blog-card h3 {
  font-size: 1.3125rem;
}

.blog-card-categories {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.blog-cards:not(.blog-cards-original) .blog-card-categories {
  display: none;
}

.blog-category-tag {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--color-accent-a11y);
  background: rgba(var(--color-accent-rgb), 0.1);
  border-radius: 999px;
  padding: 4px 10px;
}

/* ---------- "Digitales Wissen"-Blog-Karten: schlichte Textlinks statt
   Pill-Bubbles (nur .blog-cards-original, siehe index.php) ---------- */
.blog-cards-original .blog-card-categories {
  line-height: 1.5;
}

.blog-cards-original .blog-category-tag {
  display: inline;
  font-size: 0.82rem;
  font-weight: 500;
  letter-spacing: normal;
  text-transform: none;
  color: #1553a8;
  background: none;
  border-radius: 0;
  padding: 0;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.blog-cards-original .blog-category-tag:hover {
  color: #19a7a7;
  text-decoration-thickness: 2px;
}

.blog-card-author {
  font-size: 0.82rem;
  color: var(--color-text-secondary);
}

.blog-card-author a {
  color: #1553a8;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.blog-card-author a:hover {
  color: #19a7a7;
}

.blog-card p {
  color: var(--color-text-secondary);
  font-size: 0.88rem;
  flex-grow: 1;
}

/* ---------- "Digitales Wissen"-Blog-Karten: einheitliches Karten-Raster
   (kompakt, gleiche Höhe, Inhalte exakt auf einer Linie über alle Karten
   hinweg) - nur .blog-cards-original, siehe index.php ---------- */
.blog-teaser:has(.blog-cards-original) .container {
  max-width: 1180px;
}

.blog-cards-original {
  gap: 20px;
  align-items: stretch;
}

.blog-cards-original .blog-card {
  height: 100%;
}

.blog-cards-original .blog-card-body {
  flex-grow: 1;
  gap: 7px;
  padding: 13px 17px 17px;
}

.blog-cards-original .blog-card-title {
  flex-grow: 0;
  margin: 0;
  font-size: 1.1rem;
  height: 3.6em;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}

.blog-cards-original .blog-card-author {
  flex-grow: 0;
  margin: 0;
}

.blog-cards-original .blog-card-excerpt {
  flex-grow: 0;
  margin: 0;
  line-height: 1.55;
  height: 4.65em;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}

.blog-cards-original .blog-card-categories {
  height: 3em;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

.blog-cards-original .text-link-arrow {
  margin-top: auto;
}

/* ---------- Kompakterer Abstand zwischen Titelbereich und Karten-Grid
   (nur wenn .blog-cards-original vorhanden ist, Startseite bleibt bei
   den globalen section-Abständen von 96px) ---------- */
.blog-teaser:has(.blog-cards-original) {
  padding-top: 16px;
}

.blog-page-hero {
  padding-bottom: 12px;
}

.blog-teaser-footer {
  text-align: center;
}

/* ==========================================================================
   FAQ
   ========================================================================== */

.faq-header {
  max-width: 680px;
  margin: 0 auto 40px;
  text-align: center;
}

.faq-subtitle {
  margin: 14px auto 0;
  max-width: 660px;
  color: var(--color-text-secondary);
  font-size: 1rem;
}

.accordion {
  max-width: 880px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.faq-disclaimer {
  max-width: 880px;
  margin: 24px auto 0;
  padding: 16px 20px;
  border-left: 3px solid var(--color-accent);
  background: var(--color-card);
  border-radius: var(--radius-sm);
  color: var(--color-text-secondary);
  font-size: 0.875rem;
  line-height: 1.6;
}

.accordion-item {
  border: 1px solid rgba(var(--color-accent-rgb), 0.16);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.55);
  padding: 2px 18px;
  transition: background 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}

.accordion-item:hover {
  border-color: rgba(var(--color-accent-rgb), 0.32);
  background: rgba(255, 255, 255, 0.78);
}

.accordion-item:hover .accordion-trigger span:first-child {
  color: var(--color-accent-a11y);
}

.accordion-item.is-open {
  background: #fffaf7;
  border-color: rgba(var(--color-accent-rgb), 0.4);
  box-shadow: 0 10px 28px rgba(var(--color-accent-rgb), 0.1);
}

.accordion-trigger {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 13px 0;
  text-align: left;
  font-weight: 700;
  font-size: 0.92rem;
  color: var(--color-text);
}

.accordion-trigger span:first-child {
  transition: color 0.25s ease;
}

.accordion-trigger .icon {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 2px solid var(--color-border);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  position: relative;
  transition: transform 0.3s ease, background 0.3s ease, border-color 0.3s ease;
}

.accordion-trigger .icon::before,
.accordion-trigger .icon::after {
  content: "";
  position: absolute;
  background: var(--color-text);
  transition: transform 0.3s ease, opacity 0.3s ease;
}

.accordion-trigger .icon::before {
  width: 8px;
  height: 2px;
}

.accordion-trigger .icon::after {
  width: 2px;
  height: 8px;
}

.accordion-item.is-open .accordion-trigger .icon {
  background: var(--gradient-cta);
  border-color: transparent;
  transform: rotate(180deg);
}

.accordion-item.is-open .accordion-trigger .icon::before,
.accordion-item.is-open .accordion-trigger .icon::after {
  background: #fff;
}

.accordion-item.is-open .accordion-trigger .icon::after {
  transform: rotate(90deg);
  opacity: 0;
}

.accordion-panel {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}

.accordion-panel-inner {
  padding: 0 0 14px;
  color: var(--color-text-secondary);
  font-size: 0.88rem;
  max-width: 700px;
  opacity: 0;
  transform: translateY(-6px);
  transition: opacity 0.3s ease, transform 0.3s ease;
}

.accordion-item.is-open .accordion-panel-inner {
  opacity: 1;
  transform: translateY(0);
}

/* ==========================================================================
   Kontakt
   ========================================================================== */

.kontakt {
  color: var(--color-text);
  border-top: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
  padding: 72px 0;
}

.kontakt .container {
  display: grid;
  grid-template-columns: 0.7fr 1.5fr;
  gap: 40px;
  align-items: start;
  max-width: 1140px;
}

.kontakt-text h2 {
  color: var(--color-text);
  margin-bottom: 16px;
}

.kontakt-text p {
  color: var(--color-text-secondary);
  max-width: 480px;
}

.kontakt-trust {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 20px;
}

.kontakt-trust li {
  display: flex;
  align-items: center;
  gap: 12px;
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--color-text);
}

.kontakt-trust-check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--gradient-cta);
  color: #fff;
  font-size: 0.7rem;
  flex-shrink: 0;
}

.kontakt-form {
  background: var(--color-card);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  box-shadow: var(--shadow-card);
  /* WPForms laedt jetzt nur noch "Base"-CSS statt "Full" (siehe
     disable-css=2 in den WPForms-Einstellungen, spart ~105 KB ungenutztes
     CSS). Die "Full"-Stylesheet-Variante lieferte diese Custom Property
     per Inline-<style> mit - das entfaellt jetzt, daher hier fest gesetzt,
     damit Pflichtfeld-Fehlermeldungen weiterhin korrekt rot erscheinen. */
  --wpforms-label-error-color: #d63637;
}

.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}

.form-group {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.form-group label {
  font-size: 0.85rem;
  color: var(--color-text);
  font-weight: 600;
}

/* ---------- Segmented control (Haben Sie bereits eine Website?) ---------- */
.segmented-control {
  display: flex;
  gap: 10px;
}

.segmented-option {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 11px 14px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--color-border);
  background: var(--color-bg);
  cursor: pointer;
  transition: background 0.25s ease, border-color 0.25s ease;
}

/* ---------- Custom Checkbox/Radio (input per JS in .custom-ctrl-wrap gehüllt) ----------
   Native input[type=checkbox]/[type=radio] Checked-Zustände werden in manchen
   Browser-/Systemkonfigurationen (u.a. bei aktivem dunklem OS-Farbschema) mit
   einer nativen blauen Markierung gerendert, die sich über appearance:none,
   accent-color, background-color oder background-image NICHT zuverlässig
   überschreiben lässt. Deshalb wird das native Input unsichtbar (opacity:0)
   aber funktional/klickbar gehalten, während ein normales <span> (kein
   Formular-Steuerelement, daher ohne native Rendering-Sonderfälle) die
   komplette Optik übernimmt. Das Wrapping übernimmt script.js zur Laufzeit. */
.custom-ctrl-wrap {
  position: relative !important;
  display: inline-flex !important;
  width: 18px !important;
  height: 18px !important;
  flex-shrink: 0;
}

.custom-ctrl-wrap.is-radio {
  width: 16px !important;
  height: 16px !important;
}

.custom-ctrl-wrap input {
  position: absolute !important;
  inset: 0 !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  opacity: 0 !important;
  cursor: pointer;
  z-index: 1;
}

.custom-ctrl-box {
  position: absolute !important;
  inset: 0 !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 100% !important;
  height: 100% !important;
  border: 2px solid var(--color-border) !important;
  border-radius: 4px !important;
  background: #fff !important;
  box-sizing: border-box !important;
  pointer-events: none;
  transition: background-color 0.2s ease, border-color 0.2s ease;
}

.custom-ctrl-wrap.is-radio .custom-ctrl-box {
  border-radius: 50% !important;
}

.custom-ctrl-wrap:not(.is-radio) input:checked ~ .custom-ctrl-box {
  background-color: var(--color-accent) !important;
  border-color: var(--color-accent) !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M3 8.5l3.2 3.2L13 4.8'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 11px 11px !important;
}

.custom-ctrl-wrap.is-radio input:checked ~ .custom-ctrl-box {
  border-color: var(--color-accent) !important;
}

.custom-ctrl-wrap.is-radio input:checked ~ .custom-ctrl-box::after {
  content: "";
  position: absolute;
  inset: 4px;
  border-radius: 50%;
  background: var(--color-accent) !important;
}

.custom-ctrl-wrap input:focus-visible ~ .custom-ctrl-box {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.segmented-option span {
  color: var(--color-text);
  font-weight: 600;
  font-size: 0.9rem;
  font-family: var(--font-base);
  transition: color 0.25s ease;
}

.segmented-option:has(input:checked) {
  background: var(--gradient-cta);
  border-color: transparent;
}

.segmented-option:has(input:checked) .custom-ctrl-box {
  border-color: #fff !important;
  background: #fff !important;
}

.segmented-option:has(input:checked) .custom-ctrl-box::after {
  background: var(--color-accent) !important;
}

.segmented-option:has(input:checked) span {
  color: #fff;
}

.segmented-option:has(input:focus-visible) {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

/* ---------- Bedingtes Website-Feld ---------- */
.form-group-website {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  visibility: hidden;
  gap: 0;
  transition: max-height 0.3s ease, opacity 0.3s ease, gap 0.3s ease, visibility 0s linear 0.3s;
}

.form-group-website.is-visible {
  /* Genug Platz für Label + Input + zweizeilige Fehlermeldung (z. B. die
     URL-Fehlermeldung), damit .form-error nicht vom overflow:hidden
     abgeschnitten wird. */
  max-height: 220px;
  opacity: 1;
  visibility: visible;
  gap: 8px;
  transition: max-height 0.3s ease, opacity 0.3s ease, gap 0.3s ease, visibility 0s linear 0s;
}

/* ---------- Bedingtes Bundesland-Feld ---------- */
.form-group-bundesland {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  visibility: hidden;
  gap: 0;
  transition: max-height 0.3s ease, opacity 0.3s ease, gap 0.3s ease, visibility 0s linear 0.3s;
}

.form-group-bundesland.is-visible {
  max-height: 120px;
  opacity: 1;
  visibility: visible;
  gap: 8px;
  transition: max-height 0.3s ease, opacity 0.3s ease, gap 0.3s ease, visibility 0s linear 0s;
}

/* Solange kein Bundesland-Feld sichtbar ist, nimmt das Land-Feld die volle Zeilenbreite ein */
.form-row:has(> .form-group-bundesland:not(.is-visible)) > .form-group:not(.form-group-bundesland) {
  grid-column: 1 / -1;
}

/* ---------- Bedingtes Land-Sonstiges-Feld ---------- */
.form-group-land-sonstiges {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  visibility: hidden;
  gap: 0;
  transition: max-height 0.3s ease, opacity 0.3s ease, gap 0.3s ease, visibility 0s linear 0.3s;
}

.form-group-land-sonstiges.is-visible {
  max-height: 100px;
  opacity: 1;
  visibility: visible;
  gap: 8px;
  transition: max-height 0.3s ease, opacity 0.3s ease, gap 0.3s ease, visibility 0s linear 0s;
}

.form-group input,
.form-group select,
.form-group textarea {
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  padding: 13px 16px;
  color: var(--color-text);
  transition: border-color 0.2s ease, background 0.2s ease;
}

.form-group input::placeholder,
.form-group textarea::placeholder {
  color: var(--color-text-secondary);
  opacity: 0.7;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  outline: none;
  border-color: var(--color-accent);
  background: #fff;
  /* Ersatz für das entfernte Browser-Outline: eine Border-Farbänderung
     allein ist als Fokusindikator zu schwach (nur 1px) - der Ring macht
     den Fokus für Tastatur-Nutzer klar sichtbar. */
  box-shadow: 0 0 0 3px rgba(var(--color-accent-rgb), 0.25);
}

.form-group input:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.form-group select option {
  background: #fff;
  color: var(--color-text);
}

#land,
#anliegen {
  padding-left: 20px;
  padding-right: 40px;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%235F6673' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
  background-size: 16px;
}

.form-checkbox {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 0.85rem;
  color: var(--color-text-secondary);
}

.form-checkbox .custom-ctrl-wrap {
  margin-top: 2px;
}

.form-checkbox a {
  color: var(--color-text);
  text-decoration: underline;
}

/* ---------- Formular-Fehlermeldungen (deutsch, ersetzt native Browser-Validierung) ---------- */
.form-group.has-error input,
.form-group.has-error select,
.form-group.has-error textarea,
.form-group.has-error .segmented-control,
.form-checkbox.has-error {
  border-color: var(--color-accent);
}

.form-group.has-error .segmented-option {
  border-color: var(--color-accent);
}

.form-error {
  display: none;
  align-items: flex-start;
  gap: 8px;
  margin-top: 8px;
  padding: 10px 14px;
  background: rgba(var(--color-accent-rgb), 0.08);
  border: 1px solid rgba(var(--color-accent-rgb), 0.25);
  border-radius: var(--radius-sm);
  color: var(--color-accent-a11y);
}

.form-error.is-visible {
  display: flex;
}

.form-error svg {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  margin-top: 2px;
}

.form-error-text {
  font-size: 0.85rem;
  font-weight: 600;
  line-height: 1.4;
}

.kontakt-form .btn {
  margin-top: 6px;
  width: 100%;
}

/* ---------- WPForms: an das Design-System angepasst (WordPress-Theme) ----------
   Das Formular "Lead Formular SEO" (ID 1309) wird über [wpforms id="1309"]
   direkt in .kontakt-form gerendert. WPForms bringt eigenes CSS mit (blaue
   Buttons, eigene Abstände) - hier wird es überschrieben, damit es aussieht
   wie das ursprüngliche statische Formular. Name/E-Mail nebeneinander wird
   über die stabilen WPForms-Feld-IDs dieses konkreten Formulars erreicht. */
.kontakt-form .wpforms-container {
  margin: 0 auto;
  width: 100% !important;
}

.kontakt-form .wpforms-field-container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px 10px;
}

.kontakt-form #wpforms-1309-field_6-container,
.kontakt-form #wpforms-1309-field_2-container {
  grid-column: span 1;
  margin-bottom: 0 !important;
}

.kontakt-form #wpforms-1309-field_9-container,
.kontakt-form #wpforms-1309-field_7-container,
.kontakt-form #wpforms-1309-field_12-container,
.kontakt-form #wpforms-1309-field_8-container,
.kontakt-form #wpforms-1309-field_3-container,
.kontakt-form #wpforms-1309-field_5-container {
  grid-column: 1 / -1;
  margin-bottom: 0 !important;
}

.kontakt-form #wpforms-1309-field_10-container,
.kontakt-form #wpforms-1309-field_11-container {
  grid-column: span 1;
  margin-bottom: 0 !important;
}

/* Solange kein Bundesland-Feld sichtbar ist, nimmt das Land-Feld die volle Zeilenbreite ein */
.kontakt-form .wpforms-field-container:has(#wpforms-1309-field_11-container:not(.is-visible)) #wpforms-1309-field_10-container {
  grid-column: 1 / -1;
}

/* ---------- WPForms: bedingte Felder (Webseite / Bundesland / Land-Sonstiges) ----------
   position:absolute waehrend verborgen: nimmt das Feld komplett aus dem
   Grid-Flow, sonst reserviert CSS Grid trotz max-height:0 eine eigene Zeile
   inkl. row-gap dafuer (sichtbare Luecke zwischen den sichtbaren Feldern). */
.kontakt-form #wpforms-1309-field_7-container,
.kontakt-form #wpforms-1309-field_11-container,
.kontakt-form #wpforms-1309-field_12-container {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  visibility: hidden;
  position: absolute;
  pointer-events: none;
  transition: max-height 0.3s ease, opacity 0.3s ease, visibility 0s linear 0.3s;
}

.kontakt-form #wpforms-1309-field_7-container.is-visible,
.kontakt-form #wpforms-1309-field_11-container.is-visible,
.kontakt-form #wpforms-1309-field_12-container.is-visible {
  max-height: 220px;
  opacity: 1;
  visibility: visible;
  position: static;
  pointer-events: auto;
  transition: max-height 0.3s ease, opacity 0.3s ease, visibility 0s linear 0s;
}

/* ---------- WPForms Radiofeld "Haben Sie bereits eine Website?" als Segmented Control ---------- */
.kontakt-form #wpforms-1309-field_9-container fieldset {
  border: none;
  padding: 0;
  margin: 0;
}

.kontakt-form #wpforms-1309-field_9-container legend {
  font-size: 0.85rem;
  color: var(--color-text);
  font-weight: 600;
  margin-bottom: 8px;
}

.kontakt-form #wpforms-1309-field_9-container ul {
  display: flex;
  gap: 10px;
  list-style: none;
  padding: 0;
  margin: 0;
}

.kontakt-form #wpforms-1309-field_9-container li {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 8px 12px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--color-border);
  background: var(--color-bg);
  cursor: pointer;
  transition: background 0.25s ease, border-color 0.25s ease;
}

.kontakt-form #wpforms-1309-field_9-container label.wpforms-field-label-inline {
  color: var(--color-text);
  font-weight: 600;
  font-size: 0.9rem;
  font-family: var(--font-base);
  transition: color 0.25s ease;
  margin: 0;
  cursor: pointer;
}

.kontakt-form #wpforms-1309-field_9-container li:has(input:checked) {
  background: var(--gradient-cta);
  border-color: transparent;
}

.kontakt-form #wpforms-1309-field_9-container li:has(input:checked) .custom-ctrl-box {
  border-color: #fff !important;
  background: #fff !important;
}

.kontakt-form #wpforms-1309-field_9-container li:has(input:checked) .custom-ctrl-box::after {
  background: var(--color-accent) !important;
  inset: 3px !important;
}

.kontakt-form #wpforms-1309-field_9-container li:has(input:checked) label {
  color: #fff;
}

.kontakt-form #wpforms-1309-field_9-container li:has(input:focus-visible) {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

@media (max-width: 480px) {
  .kontakt-form #wpforms-1309-field_9-container ul {
    flex-direction: column;
  }
}

.kontakt-form .wpforms-field {
  padding: 0;
}

.kontakt-form .wpforms-field-label {
  display: block;
  font-size: 0.8rem;
  color: var(--color-text);
  font-weight: 600;
  margin-bottom: 3px;
}

/* Nur beim Land/Bundesland-Paar (nebeneinander im Grid) wird eine
   Mindesthöhe fürs Label reserviert, da "In welchem Land sitzt Ihr
   Unternehmen?" auf zwei Zeilen umbricht und sonst die Eingabefelder
   der beiden Spalten nicht auf gleicher Höhe stehen würden. */
.kontakt-form #wpforms-1309-field_10-container .wpforms-field-label,
.kontakt-form #wpforms-1309-field_11-container .wpforms-field-label {
  min-height: 2.2em;
}

.kontakt-form .wpforms-field input[type="text"],
.kontakt-form .wpforms-field input[type="email"],
.kontakt-form .wpforms-field input[type="tel"],
.kontakt-form .wpforms-field select,
.kontakt-form .wpforms-field textarea {
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  padding: 8px 12px;
  color: var(--color-text);
  font-size: 0.88rem;
  font-family: var(--font-base);
  width: 100%;
  max-width: 100% !important;
  transition: border-color 0.2s ease, background 0.2s ease;
}

.kontakt-form .wpforms-field input::placeholder,
.kontakt-form .wpforms-field textarea::placeholder {
  color: var(--color-text-secondary);
  opacity: 0.7;
}

.kontakt-form .wpforms-field input:focus,
.kontakt-form .wpforms-field select:focus,
.kontakt-form .wpforms-field textarea:focus {
  outline: none;
  border-color: var(--color-accent);
  background: #fff;
  box-shadow: 0 0 0 3px rgba(var(--color-accent-rgb), 0.25);
}

.kontakt-form .wpforms-field-select select {
  height: 40px !important;
  min-height: 40px !important;
  padding: 8px 36px 8px 12px !important;
  line-height: 1.5 !important;
  font-size: 0.88rem !important;
  color: var(--color-text) !important;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%235F6673' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 16px;
}

.kontakt-form .wpforms-field textarea {
  height: 66px !important;
  min-height: 52px !important;
  resize: vertical !important;
}

.kontakt-form .wpforms-field-checkbox fieldset {
  border: none;
  padding: 0;
  margin: 0;
}

.kontakt-form .wpforms-field-checkbox legend {
  display: none;
}

.kontakt-form .wpforms-field-checkbox ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.kontakt-form .wpforms-field-checkbox li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 0.85rem;
  color: var(--color-text-secondary);
  line-height: 1.5;
}

.kontakt-form .wpforms-field-checkbox .custom-ctrl-wrap {
  margin-top: 2px;
}

.kontakt-form .wpforms-field-checkbox label {
  font-size: inherit;
  color: inherit;
  font-weight: 400;
  cursor: pointer;
}

.kontakt-form .wpforms-field-checkbox label a {
  color: var(--color-text);
  text-decoration: underline;
}

.kontakt-form .wpforms-error,
.kontakt-form .wpforms-field-description {
  font-size: 0.8rem;
  color: var(--color-accent-a11y);
  margin-top: 6px;
}

.kontakt-form .wpforms-submit-container {
  grid-column: 1 / -1;
  margin-top: 6px;
}

.kontakt-form .wpforms-submit {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: auto !important;
  padding: 10px 24px !important;
  border-radius: var(--radius-pill) !important;
  font-weight: 700 !important;
  font-size: 0.85rem !important;
  line-height: 1.6 !important;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  font-family: var(--font-base);
  border: none;
  cursor: pointer;
  background: var(--gradient-cta);
  color: #fff;
  box-shadow: 0 10px 24px rgba(var(--color-accent-rgb), 0.28);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

/* Gleicher Sweep-/Glow-Effekt wie .btn-cta im restlichen Design (reuses
   die dort definierte @keyframes btn-cta-flow). */
.kontakt-form .wpforms-submit::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, #ff3b2f, #ff6a2a, #ff9f1c, #ffd166, #ff9f1c, #ff6a2a, #ff3b2f);
  background-size: 300% 100%;
  background-position: 0% 50%;
  opacity: 0;
  transition: opacity 0s;
}

.kontakt-form .wpforms-submit:hover::before,
.kontakt-form .wpforms-submit:focus-visible::before {
  opacity: 1;
  animation: btn-cta-flow 2s ease-out forwards;
}

.kontakt-form .wpforms-submit:hover,
.kontakt-form .wpforms-submit:focus-visible {
  transform: translateY(-3px);
  box-shadow: 0 16px 32px rgba(var(--color-accent-rgb), 0.38);
}

@media (max-width: 640px) {
  .kontakt-form .wpforms-container {
    width: 100% !important;
  }

  .kontakt-form .wpforms-field-container {
    grid-template-columns: 1fr;
  }

  .kontakt-form #wpforms-1309-field_6-container,
  .kontakt-form #wpforms-1309-field_2-container {
    grid-column: 1 / -1;
  }
}

/* ==========================================================================
   Footer
   ========================================================================== */

footer.site-footer {
  background: var(--color-black);
  color: rgba(255, 255, 255, 0.75);
  padding-top: 72px;
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.3fr 1fr 0.8fr;
  gap: 40px;
  padding-bottom: 48px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.footer-col-title {
  color: #fff;
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 18px;
}

/* Gleicher Rot-Ton wie .footer-brand-sub - bereits auf 4.5:1 Kontrast für
   dunklen Footer-Hintergrund geprüft. */
.footer-col-title-accent {
  color: #FF3F33;
}

.footer-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}

.footer-contact-title {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #fff;
  font-size: 0.95rem;
  font-weight: 700;
  margin-bottom: 14px;
}

.footer-contact-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.footer-contact-list li {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 0.88rem;
  line-height: 1.4;
  color: rgba(255, 255, 255, 0.65);
}

.footer-contact-list li a {
  color: rgba(255, 255, 255, 0.65);
  transition: color 0.2s ease;
}

.footer-contact-list li a:hover {
  color: var(--color-accent);
}

.footer-contact-icon {
  width: 15px;
  height: 15px;
  flex-shrink: 0;
  margin-top: 2px;
  color: rgba(255, 255, 255, 0.45);
}

.footer-col p {
  font-size: 1rem;
  margin-bottom: 6px;
  color: rgba(255, 255, 255, 0.65);
}

.footer-col ul {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.footer-col ul a {
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.65);
  transition: color 0.2s ease;
}

.footer-col ul a:hover {
  color: var(--color-accent);
}

.footer-social {
  display: flex;
  gap: 14px;
}

.footer-social a {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.18);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  transition: color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.footer-social a:hover {
  color: var(--color-accent);
  border-color: var(--color-accent);
  transform: translateY(-3px);
}

.footer-service-area {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 14px;
  padding: 22px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.footer-service-area-label {
  color: #fff;
  font-weight: 700;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-right: 4px;
}

.footer-service-area-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}

.footer-service-area-list li {
  display: flex;
  align-items: center;
}

.footer-service-area-list li + li::before {
  content: "|";
  margin: 0 12px;
  color: rgba(255, 255, 255, 0.25);
}

.footer-service-area-list a {
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.65);
  transition: color 0.2s ease;
}

.footer-service-area-list a:hover {
  color: var(--color-accent);
}

.footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  padding: 24px 0 104px;
  font-size: 0.82rem;
}

.footer-bottom-links {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
}

.footer-bottom-links a {
  color: rgba(255, 255, 255, 0.55);
  transition: color 0.2s ease;
}

.footer-bottom-links a:hover {
  color: var(--color-accent);
}

/* ==========================================================================
   Cookie banner
   ========================================================================== */

.cookie-banner {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2000;
  background: var(--color-dark-bg);
  color: #fff;
  padding: 22px 24px;
  transform: translateY(120%);
  transition: transform 0.4s ease;
}

.cookie-banner.is-visible {
  transform: translateY(0);
}

.cookie-banner .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
}

.cookie-banner p {
  font-size: 1rem;
  color: rgba(255, 255, 255, 0.82);
  max-width: 560px;
}

.cookie-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

/* ---------- Complianz "Zustimmung verwalten"-Tab: Styling-Override -----
   Die Plugin-Optik (weißer Kasten, per Default bei bottom:-35px fast
   unsichtbar "geparkt", Slide-in-Animation nur bei Hover) kommt aus einer
   von Complianz selbst generierten Datei
   (wp-content/uploads/complianz/css/banner-*.css), die bei jeder
   Banner-Einstellungsänderung neu geschrieben wird - deshalb hier bewusst
   NICHT diese Datei anfassen, sondern per !important überschreiben.
   Cookie-Funktionalität/Rechtstexte bleiben unangetastet. ---------- */
#cmplz-manage-consent .cmplz-manage-consent {
  bottom: 24px !important;
  right: 24px !important;
  min-width: unset !important;
  max-width: 210px !important;
  height: auto !important;
  padding: 10px 16px !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: linear-gradient(135deg, #16213A 0%, #0A1220 100%) !important;
  color: #F8F5F0 !important;
  border-style: solid !important;
  border-width: 1.5px !important;
  border-color: rgba(255, 87, 51, 0.5) !important;
  border-radius: 12px !important;
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.35), 0 0 0 1px rgba(255, 87, 51, 0.08) !important;
  font-family: var(--font-base) !important;
  font-size: 0.8rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.01em !important;
  line-height: 1.3 !important;
  animation: none !important;
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

#cmplz-manage-consent .cmplz-manage-consent::before {
  content: "";
  width: 7px;
  height: 7px;
  flex-shrink: 0;
  border-radius: 50%;
  background: var(--color-accent);
  box-shadow: 0 0 6px rgba(var(--color-accent-rgb), 0.7);
}

#cmplz-manage-consent .cmplz-manage-consent:hover,
#cmplz-manage-consent .cmplz-manage-consent:focus {
  animation: none !important;
  transform: translateY(-3px);
  border-color: rgba(255, 87, 51, 0.8) !important;
  box-shadow: 0 12px 26px rgba(0, 0, 0, 0.4), 0 0 0 3px rgba(255, 87, 51, 0.15) !important;
}

@media (max-width: 768px) {
  #cmplz-manage-consent .cmplz-manage-consent {
    display: flex !important;
    bottom: 16px !important;
    right: 16px !important;
    min-width: unset !important;
    max-width: 190px !important;
    padding: 9px 14px !important;
    font-size: 0.75rem !important;
  }
}

/* ---------- Complianz Cookie-Dialog ("Zustimmung verwalten"-Fenster):
   Styling-Override auf die Landing-Page-Optik (Radius, Schatten, Typo,
   Button-/Link-Farben). Gleiches Prinzip wie beim Tab oben: die
   Plugin-generierte Datei (wp-content/uploads/complianz/css/banner-*.css)
   bleibt unangetastet, nur per !important überschrieben. Cookie-Texte,
   Kategorien und Funktionalität bleiben unverändert. ---------- */
.cmplz-cookiebanner {
  font-family: var(--font-base) !important;
  border-radius: var(--radius-lg) !important;
  box-shadow: var(--shadow-card-hover) !important;
  border: none !important;
}

.cmplz-cookiebanner .cmplz-title {
  font-family: var(--font-base) !important;
  font-weight: 800 !important;
  letter-spacing: -0.02em !important;
  color: var(--color-text) !important;
}

.cmplz-cookiebanner .cmplz-close {
  transition: color 0.2s ease;
}

.cmplz-cookiebanner .cmplz-close:hover {
  color: var(--color-accent) !important;
}

.cmplz-cookiebanner .cmplz-message,
.cmplz-cookiebanner .cmplz-category-title,
.cmplz-cookiebanner .cmplz-description {
  font-family: var(--font-base) !important;
  color: var(--color-text-secondary) !important;
}

.cmplz-cookiebanner .cmplz-message a,
.cmplz-cookiebanner .cmplz-links .cmplz-link {
  color: #1553a8 !important;
  text-decoration: underline !important;
  text-underline-offset: 2px;
  transition: color 0.2s ease;
}

.cmplz-cookiebanner .cmplz-message a:hover,
.cmplz-cookiebanner .cmplz-links .cmplz-link:hover {
  color: #19a7a7 !important;
}

.cmplz-cookiebanner .cmplz-btn {
  font-family: var(--font-base) !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em !important;
  border-radius: var(--radius-pill) !important;
  transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease, color 0.25s ease !important;
}

.cmplz-cookiebanner .cmplz-btn.cmplz-accept {
  background: var(--gradient-cta) !important;
  border: none !important;
  color: #fff !important;
  box-shadow: 0 8px 20px rgba(var(--color-accent-rgb), 0.28) !important;
}

.cmplz-cookiebanner .cmplz-btn.cmplz-accept:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 26px rgba(var(--color-accent-rgb), 0.38) !important;
}

.cmplz-cookiebanner .cmplz-btn.cmplz-deny,
.cmplz-cookiebanner .cmplz-btn.cmplz-view-preferences,
.cmplz-cookiebanner .cmplz-btn.cmplz-save-preferences,
.cmplz-cookiebanner .cmplz-btn.cmplz-manage-options {
  background: transparent !important;
  border: 2px solid var(--color-text) !important;
  color: var(--color-text) !important;
}

.cmplz-cookiebanner .cmplz-btn.cmplz-deny:hover,
.cmplz-cookiebanner .cmplz-btn.cmplz-view-preferences:hover,
.cmplz-cookiebanner .cmplz-btn.cmplz-save-preferences:hover,
.cmplz-cookiebanner .cmplz-btn.cmplz-manage-options:hover {
  background: var(--color-text) !important;
  color: #fff !important;
  transform: translateY(-2px);
}

.cmplz-cookiebanner input.cmplz-consent-checkbox:checked + .cmplz-label::before {
  background-color: var(--color-accent) !important;
}

/* ==========================================================================
   Scroll reveal
   ========================================================================== */

.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}

.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* ==========================================================================
   Sub-page layout
   ========================================================================== */

.page-hero {
  background: var(--color-card);
  padding: 64px 0 40px;
  border-bottom: 1px solid var(--color-border);
}

.page-hero h1 {
  font-size: 2.5rem;
  overflow-wrap: break-word;
  hyphens: auto;
}

/* ---------- "Digitales Wissen"-Seitenkopf: eigene Farbgebung/Typo-Skala,
   damit H1/H2 nicht mehr den Site-Titel duplizieren (siehe index.php) ---------- */
.blog-page-hero {
  background: var(--color-bg);
}

.blog-page-hero .container {
  max-width: 680px;
  margin: 0 auto;
  text-align: center;
}

.blog-page-eyebrow {
  margin-bottom: 16px;
}

.blog-page-hero h1 {
  font-size: 36px;
  margin-bottom: 16px;
  hyphens: none;
}

.blog-page-subtitle {
  font-size: 1.25rem;
  font-weight: 500;
  color: var(--color-text-secondary);
  margin: 0;
}

@media (max-width: 720px) {
  .blog-page-hero h1 {
    font-size: 1.75rem;
  }

  .blog-page-subtitle {
    font-size: 1.0625rem;
  }
}

/* ---------- Danke-Seite ---------- */
.danke-content {
  background: var(--color-card);
  padding: 64px 0 96px;
}

.danke-box {
  max-width: 620px;
  margin: 0 auto;
  text-align: center;
}

.danke-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--color-accent);
  color: #fff;
  margin-bottom: 24px;
  box-shadow: none;
}

.danke-icon svg {
  width: 30px;
  height: 30px;
}

.danke-subtitle {
  font-size: 1.5rem;
  margin-bottom: 16px;
}

.danke-lead {
  font-size: 1.1rem;
  color: var(--color-text);
  margin-bottom: 28px;
}

.danke-content p {
  color: var(--color-text-secondary);
  margin-bottom: 14px;
}

.danke-primary-cta {
  margin-bottom: 8px;
}

.legal-content {
  background: var(--color-card);
  padding: 64px 0 96px;
}

.legal-box {
  max-width: 780px;
  margin: 0 auto;
}

.legal-box h2 {
  font-size: 1.3rem;
  margin-top: 40px;
  margin-bottom: 14px;
}

.legal-box h2:first-child {
  margin-top: 0;
}

.legal-box p {
  color: var(--color-text-secondary);
  margin-bottom: 14px;
}

.legal-box a {
  color: var(--color-accent-a11y);
  text-decoration: underline;
}

.legal-box strong {
  color: var(--color-text);
}

/* Der globale Reset "ul { list-style: none; }" entfernt sonst auch die
   Aufzaehlungspunkte/Abstaende in Datenschutz-/Cookie-Listen. */
.legal-box ul {
  list-style: disc;
  padding-left: 1.4em;
  margin-bottom: 14px;
}

.legal-box ol {
  list-style: decimal;
  padding-left: 1.4em;
  margin-bottom: 14px;
}

.legal-box li {
  color: var(--color-text-secondary);
  margin-bottom: 8px;
}

/* ---------- Blogartikel-Inhalt (single.php): Original-Typografie von vor
   der Migration (Astra: body-font-family/headings-font-family = Roboto,
   link-color #1553a8, link-h-color #19a7a7). Header/Footer/Buttons bleiben
   bewusst beim neuen Marken-Design.
   Textbreite: an die Breite der H1 im page-hero angeglichen (gleiche
   .container-Breite wie im Hero, kein zusätzliches max-width mehr) - vorher
   war der Text auf 799px eingeschnürt, während die H1 die volle
   .container-Breite nutzte, was die Spalte schmal und schwer lesbar wirken
   ließ. */
.single-post-content {
  max-width: none;
  font-family: 'Roboto', sans-serif;
}

.single-post-content h1,
.single-post-content h2,
.single-post-content h3,
.single-post-content h4,
.single-post-content h5,
.single-post-content h6,
.single-post-content .wp-block-heading {
  font-family: 'Roboto', sans-serif;
}

/* Der globale Reset "* { margin: 0; }" nimmt Absätzen/Überschriften sonst
   jeglichen vertikalen Abstand - dadurch wirkte der Artikeltext als eine
   einzige zusammenhängende Textwand statt als getrennte, lesbare Absätze. */
.single-post-content p {
  margin-bottom: 1.3em;
  line-height: 1.75;
}

.single-post-content h2,
.single-post-content h3,
.single-post-content h4,
.single-post-content .wp-block-heading {
  margin-top: 1.8em;
  margin-bottom: 0.7em;
}

.single-post-content > h2:first-child,
.single-post-content > h3:first-child,
.single-post-content > .wp-block-heading:first-child {
  margin-top: 0;
}

.single-post-content blockquote {
  margin: 1.6em 0;
}

.single-post-content table {
  margin-bottom: 1.6em;
}

.single-post-content a {
  color: #1553a8;
  text-decoration: underline;
}

.single-post-content a:hover {
  color: #19a7a7;
}

/* Der globale Reset "ul { list-style: none; }" (fuer Nav/Card-Listen im
   restlichen Design) entfernt sonst auch die Aufzaehlungspunkte in
   Blogartikeln, wo Astra normale <ul>/<ol>-Listen mit Bullets zeigte. */
.single-post-content ul {
  list-style: disc;
  padding-left: 1.4em;
  margin-bottom: 1.3em;
}

.single-post-content ol {
  margin-bottom: 1.3em;
  list-style: decimal;
  padding-left: 1.4em;
}

.single-post-content li {
  margin-bottom: 0.5em;
}

/* ---------- Bilder/Bildunterschriften im Artikeltext: dezente Rundung,
   Schatten und Abstand statt der nackten wp-block-library-Defaults. ---------- */
.single-post-content .wp-block-image {
  margin: 32px 0;
}

.single-post-content .wp-block-image img {
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-card);
}

.single-post-content .wp-block-image figcaption {
  margin-top: 10px;
  font-size: 0.85rem;
  color: var(--color-text-secondary);
  text-align: center;
}

/* Die schmale 799px-Lesespalte (siehe oben) ist zu eng für ein
   nebeneinander-Layout von Gutenberg-Spalten (wp:columns) - dort wirkt
   das gequetscht statt lesbar. In der Artikelspalte werden Spalten daher
   untereinander gestapelt, wie in einem normalen Blog-Textfluss. */
.single-post-content .wp-block-columns {
  flex-direction: column;
}

.single-post-content .wp-block-column {
  width: 100% !important;
  flex-basis: 100% !important;
}

.sitemap-list {
  max-width: 780px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.sitemap-list h2 {
  font-size: 1.2rem;
  margin-bottom: 16px;
}

.sitemap-list ul {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.sitemap-list a {
  color: var(--color-text);
  font-weight: 600;
  transition: color 0.2s ease;
}

.sitemap-list a:hover {
  color: var(--color-accent-a11y);
}

.blog-page-header {
  max-width: 680px;
  margin: 0 auto 48px;
  text-align: center;
}

.blog-page-header p {
  color: var(--color-text-secondary);
  margin-top: 12px;
  font-size: 1rem;
}

.blog-date {
  font-size: 0.77rem;
  color: var(--color-text-secondary);
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

/* "Zuletzt aktualisiert am ..." - nur im page-hero von single.php, wird nur
   ausgegeben, wenn sich das Änderungsdatum vom Veröffentlichungsdatum
   unterscheidet (siehe single.php). */
.blog-date-updated {
  display: block;
  margin-top: 6px;
  font-size: 0.8rem;
  color: var(--color-text-secondary);
  font-style: italic;
}

.blog-page-footer {
  text-align: center;
  margin-top: 8px;
}

/* ==========================================================================
   Responsive
   ========================================================================== */

@media (max-width: 1024px) {
  .hero .container,
  .kontakt .container,
  .services-layout,
  .referenzen-top,
  .problem-top {
    /* minmax(0, 1fr) statt 1fr: verhindert, dass der Grid-Track durch die
       implizite min-width:auto von Kindelementen (Formularfelder, Buttons)
       über die Containerbreite hinauswächst und horizontales Overflow erzeugt. */
    grid-template-columns: minmax(0, 1fr);
  }

  .hero-content {
    margin-top: -30px;
  }

  .problem-subheading {
    margin: 0 0 8px;
  }

  .problem-visual {
    transform: none;
  }

  .services-header {
    position: static;
    top: auto;
  }

  .hero-visual {
    order: -1;
  }

  .solution-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .challenges-viewport {
    flex-basis: 610px;
    max-width: 610px;
    height: 295px;
  }

  .hero-badge-2,
  .hero-badge-4,
  .hero-badge-5,
  .hero-badge-6,
  .hero-badge-7,
  .hero-badge-8 {
    display: none;
  }

  .hero-badge-1 {
    top: 4%;
    left: 4%;
  }

  .hero-badge-3 {
    bottom: 4%;
    left: auto;
    right: 4%;
  }

  .kontakt-text {
    text-align: center;
  }

  .kontakt-text p {
    margin-left: auto;
    margin-right: auto;
  }

  .kontakt-trust {
    align-items: center;
  }

  .blog-cards,
  .zusammenarbeit-cards {
    grid-template-columns: repeat(2, 1fr);
  }

  .footer-grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 1180px) {
  .nav-links,
  .nav-actions .btn {
    display: none;
  }

  .nav-toggle {
    display: flex;
  }

  .navbar .container {
    flex-wrap: wrap;
  }

  .nav-toggle {
    order: 2;
  }

  .nav-actions {
    order: 3;
    width: 100%;
  }

  .navbar.is-open .nav-links {
    display: flex;
    flex-direction: column;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #fff;
    padding: 24px;
    gap: 20px;
    border-bottom: 1px solid var(--color-border);
    box-shadow: var(--shadow-header);
  }

  .navbar.is-open .nav-actions .btn {
    display: inline-flex;
    width: 100%;
  }

  .navbar {
    position: relative;
  }

  .topbar-left span.hide-mobile {
    display: none;
  }

  /* ---------- Hamburger -> X, wenn das mobile Menü offen ist ---------- */
  .navbar.is-open .nav-toggle span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
    background: var(--color-accent);
  }

  .navbar.is-open .nav-toggle span:nth-child(2) {
    opacity: 0;
  }

  .navbar.is-open .nav-toggle span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
    background: var(--color-accent);
  }
}

@media (max-width: 720px) {
  section {
    padding: 64px 0;
  }

  .page-hero h1 {
    font-size: 2rem;
  }

  .hero-content {
    margin-top: -18px;
  }

  .solution-grid,
  .project-cards,
  .blog-cards,
  .zusammenarbeit-cards,
  .services-grid,
  .form-row {
    grid-template-columns: 1fr;
  }

  .referenzen-top {
    padding: 24px;
  }

  .referenzen-cta {
    text-align: center;
  }

  .referenzen-cta .btn {
    width: 100%;
    white-space: normal;
  }

  .challenges-carousel {
    gap: 6px;
  }

  .challenges-viewport {
    flex-basis: 210px;
    max-width: 210px;
    height: 440px;
  }

  .challenge-card {
    width: min(182px, 68vw);
    height: 410px;
    padding: 14px 18px;
  }

  .carousel-arrow {
    width: 36px;
    height: 36px;
  }

  .carousel-arrow svg {
    width: 16px;
    height: 16px;
  }

  .problem-footer .btn,
  .solution-footer .btn {
    white-space: normal;
    text-align: center;
  }

  .solution-footer {
    text-align: center;
  }

  .hero-badge-3 {
    display: none;
  }

  .hero-badge-1 {
    font-size: 0.72rem;
    padding: 7px 14px;
    top: 3%;
    left: 3%;
  }

  .footer-grid {
    grid-template-columns: 1fr;
  }

  .footer-bottom {
    flex-direction: column;
    align-items: flex-start;
    padding-bottom: 84px;
  }

  .referenzen-image img {
    height: 280px;
  }

  .referenzen-image-shape-main {
    top: 29px;
    left: calc(6.5% + 26px);
    right: calc(6.5% + 8px);
    bottom: 11px;
  }

  .referenzen-checklist {
    grid-template-columns: 1fr;
  }

  .cookie-banner .container {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (max-width: 480px) {
  .hero-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .brand-name-main {
    font-size: 1rem;
  }
}

/* ==========================================================================
   Regionale & thematische Landingpages (z. B. Schwalm-Eder-Kreis, Homberg,
   Kassel, Remote-Beratung DACH)
   ========================================================================== */

.stats-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 40px;
}

.stat-card {
  background: var(--color-card);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 32px 24px;
  text-align: center;
  box-shadow: var(--shadow-card);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.stat-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-card-hover);
}

.stat-number {
  display: block;
  font-size: 2.75rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--color-accent);
  margin-bottom: 10px;
}

.stat-card p {
  color: var(--color-text-secondary);
  font-size: 0.9375rem;
  line-height: 1.55;
}

.stats-source {
  margin-top: 20px;
  color: var(--color-text-secondary);
  font-size: 0.8125rem;
}

/* Icon-Card-Grid: für Branchenmix und Zielgruppen */
.icon-card-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.icon-card {
  background: var(--color-card);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 28px;
  box-shadow: var(--shadow-card);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.icon-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-card-hover);
}

.icon-card-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  margin-bottom: 18px;
  background: linear-gradient(135deg, rgba(var(--color-accent-rgb), 0.14), rgba(var(--color-accent-rgb), 0.04));
  color: var(--color-accent);
  flex-shrink: 0;
}

.icon-card-icon svg {
  width: 26px;
  height: 26px;
}

.icon-card-icon strong {
  font-size: 1rem;
  font-weight: 800;
  letter-spacing: 0.02em;
}

.icon-card h3 {
  font-size: 1.25rem;
  margin-bottom: 8px;
}

.icon-card p {
  color: var(--color-text-secondary);
  font-size: 0.9375rem;
  line-height: 1.55;
}

.icon-card p + p {
  margin-top: 8px;
}

/* Regions-Foto */
.region-photo {
  width: 100%;
  height: 380px;
  object-fit: cover;
  object-position: center center;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  margin-top: 32px;
  margin-bottom: 40px;
}

/* Modifier: Motiv mit wichtigem Bildinhalt im oberen Bereich (z. B. Denkmalspitze) */
.region-photo--focus-top {
  height: 460px;
  object-position: center 18%;
}

/* Länder-Foto-Grid (z. B. DACH-Impressionen) */
.country-photo-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  margin-top: 40px;
}

.country-photo-grid figure {
  margin: 0;
}

.country-photo-grid img {
  display: block;
  width: 100%;
  height: 200px;
  object-fit: cover;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
}

.country-photo-grid figcaption {
  margin-top: 10px;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--color-text-secondary);
  text-align: center;
}

/* Regions-Überblick */
.region-overview {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 48px;
  align-items: start;
  margin-bottom: 56px;
}

.region-overview-text p {
  color: var(--color-text-secondary);
  font-size: 1rem;
  line-height: 1.7;
}

.region-overview-text p + p {
  margin-top: 16px;
}

.region-cities {
  background: var(--color-card);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 28px;
  box-shadow: var(--shadow-card);
}

.region-cities h3 {
  font-size: 1.125rem;
  margin-bottom: 16px;
}

.region-cities ul {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.region-cities li {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--color-border);
}

.region-cities li:last-child {
  padding-bottom: 0;
  border-bottom: none;
}

.region-cities li strong {
  font-size: 0.9375rem;
  color: var(--color-text);
  white-space: nowrap;
}

.region-cities li span {
  font-size: 0.875rem;
  color: var(--color-text-secondary);
  text-align: right;
}

.region-subheading {
  margin-bottom: 28px;
}

.region-subheading h3 {
  font-size: 1.5rem;
}

/* Vertrauens-Block */
.trust-grid {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: 48px;
  align-items: center;
}

.trust-photo {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-card-hover);
}

.trust-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  max-height: 420px;
}

.trust-photo-caption {
  position: absolute;
  left: 16px;
  right: 16px;
  bottom: 16px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: fit-content;
  background: rgba(255, 255, 255, 0.94);
  border-radius: var(--radius-pill);
  padding: 10px 18px;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--color-text);
  box-shadow: 0 12px 28px rgba(14, 18, 32, 0.14);
}

.trust-content .section-intro {
  max-width: none;
}

.trust-checklist {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin: 28px 0 32px;
}

.trust-checklist li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  color: var(--color-text);
  font-size: 1rem;
  line-height: 1.5;
}

@media (max-width: 1024px) {
  .stats-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .icon-card-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .region-overview,
  .trust-grid {
    grid-template-columns: 1fr;
  }

  .trust-photo img {
    max-height: 320px;
  }

  .country-photo-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .region-photo--focus-top {
    height: 400px;
  }
}

@media (max-width: 720px) {
  .stats-grid,
  .icon-card-grid {
    grid-template-columns: 1fr;
  }

  .region-cities {
    padding: 22px;
  }

  .region-photo {
    height: 220px;
  }

  .region-photo--focus-top {
    height: 260px;
    object-position: center 15%;
  }

  .country-photo-grid {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   Firma in Ungarn gründen — eigenständiges Layout-System (hu-*)
   Bewusst andere Blockformen als front-page.php: Split-Vergleichsleiste statt
   Badge-Hero, dunkler Statistik-Streifen statt Card-Grid, Vollbild-Foto statt
   Bildkarte, Zickzack-Leistungen statt Icon-Grid, Zitat-Karte statt 2-Spalter.
   ========================================================================== */

.hu-hero {
  padding: 76px 0 0;
  background: var(--color-bg);
  position: relative;
  overflow: hidden;
}

/* ---------- Hintergrundbild im Hero (Budapest, Donau) ---------- */
.hu-hero-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 45%;
  z-index: 0;
  pointer-events: none;
  user-select: none;
  filter: saturate(1.25) contrast(1.08);
}

.hu-hero-bg-overlay {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  /* Weicher Lichtschleier hinter der Textspalte (bessere Lesbarkeit),
     darüber der Grundverlauf — die Ränder mit Zitadelle und Fahne
     bleiben farbkräftig. */
  background:
    radial-gradient(
      ellipse 46% 62% at 50% 46%,
      rgba(248, 244, 241, 0.82) 0%,
      rgba(248, 244, 241, 0.66) 50%,
      rgba(248, 244, 241, 0) 78%
    ),
    linear-gradient(
      180deg,
      rgba(248, 244, 241, 0.34) 0%,
      rgba(248, 244, 241, 0.5) 40%,
      rgba(248, 244, 241, 0.82) 78%,
      rgba(248, 244, 241, 0.97) 100%
    );
}

@media (max-width: 720px) {
  /* Hochformat-Ausschnitt: Zitadelle und Fahne ins Bild holen. */
  .hu-hero-bg {
    object-position: 26% 42%;
  }

  .hu-hero-bg-overlay {
    background:
      radial-gradient(
        ellipse 78% 58% at 50% 46%,
        rgba(248, 244, 241, 0.86) 0%,
        rgba(248, 244, 241, 0.7) 55%,
        rgba(248, 244, 241, 0) 85%
      ),
      linear-gradient(
        180deg,
        rgba(248, 244, 241, 0.42) 0%,
        rgba(248, 244, 241, 0.6) 40%,
        rgba(248, 244, 241, 0.88) 78%,
        rgba(248, 244, 241, 0.98) 100%
      );
  }
}

.hu-hero-inner {
  max-width: 760px;
  margin: 0 auto;
  text-align: center;
  position: relative;
  z-index: 1;
}

.hu-hero-inner h1 {
  margin: 16px 0 20px;
  font-size: clamp(2.1rem, 4vw, 3rem);
}

.hu-hero-inner p {
  /* Etwas dunkler als --color-text-secondary: der Text steht über dem
     Budapest-Hintergrundbild und braucht mehr Kontrast. */
  color: #3A4150;
  font-size: 1.15rem;
  line-height: 1.6;
  margin: 0 auto 32px;
  max-width: 620px;
}

.hu-hero-actions {
  display: flex;
  gap: 16px;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 56px;
}

/* ---------- Leistungen-Laufband unter dem Hero ---------- */
.hu-ticker {
  background: var(--color-dark-bg);
  overflow: hidden;
  position: relative;
  padding: 16px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

/* Weiche Kanten links und rechts, damit die Einträge nicht hart abschneiden. */
.hu-ticker::before,
.hu-ticker::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 90px;
  z-index: 2;
  pointer-events: none;
}

.hu-ticker::before {
  left: 0;
  background: linear-gradient(90deg, var(--color-dark-bg), rgba(8, 11, 22, 0));
}

.hu-ticker::after {
  right: 0;
  background: linear-gradient(270deg, var(--color-dark-bg), rgba(8, 11, 22, 0));
}

.hu-ticker-track {
  display: flex;
  width: max-content;
  animation: hu-ticker-scroll 38s linear infinite;
}

.hu-ticker:hover .hu-ticker-track,
.hu-ticker:focus-within .hu-ticker-track {
  animation-play-state: paused;
}

.hu-ticker-group {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
}

.hu-ticker-item {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 0 30px;
  white-space: nowrap;
  color: #FFFFFF;
  text-decoration: none;
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  transition: color 0.25s ease;
}

.hu-ticker-item:hover,
.hu-ticker-item:focus-visible {
  color: var(--color-accent);
}

.hu-ticker-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--gradient-cta);
  flex: 0 0 auto;
}

@keyframes hu-ticker-scroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

@media (max-width: 720px) {
  .hu-ticker {
    padding: 13px 0;
  }

  .hu-ticker-item {
    padding: 0 20px;
    font-size: 0.85rem;
  }

  .hu-ticker::before,
  .hu-ticker::after {
    width: 48px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hu-ticker-track {
    animation: none;
    width: 100%;
    flex-wrap: wrap;
    justify-content: center;
  }

  .hu-ticker-group:last-child {
    display: none;
  }

  .hu-ticker-group {
    flex-wrap: wrap;
    justify-content: center;
    row-gap: 8px;
  }
}

.hu-versus {
  background: var(--color-card);
  border-top: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
}

.hu-versus-inner {
  display: grid;
  grid-template-columns: 128px 1fr 128px;
  max-width: var(--container-width);
  margin: 0 auto;
}

.hu-versus-side {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 28px 12px;
}

.hu-versus-de {
  background: #EBEDEF;
  color: #4B5563;
}

.hu-versus-hu {
  background: linear-gradient(160deg, #FFF3EE, #FDE3D6);
  color: var(--color-accent-a11y);
}

.hu-versus-flag {
  /* Inline-SVG statt Emoji: amtliche Farben und Seitenverhältnisse,
     plattformunabhängig identisch. */
  display: block;
  font-size: 0;
  line-height: 0;
  margin-bottom: 4px;
}

.hu-versus-flag-video {
  display: block;
  width: 58px;
  height: 58px;
  object-fit: cover;
  border-radius: 10px;
  box-shadow: 0 3px 12px rgba(14, 18, 32, 0.22);
  background: #FFFFFF;
}

.hu-versus-hu .hu-versus-flag-video {
  /* Der weiße Mittelstreifen braucht auf hellem Grund eine Kante. */
  outline: 1px solid rgba(14, 18, 32, 0.1);
  outline-offset: -1px;
}

.hu-versus-label {
  font-weight: 700;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.hu-versus-rows {
  display: flex;
  flex-direction: column;
}

.hu-versus-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 28px;
  border-bottom: 1px solid var(--color-border);
}

.hu-versus-row:last-child {
  border-bottom: none;
}

.hu-versus-val {
  flex: 0 0 auto;
  min-width: 96px;
  font-weight: 700;
  font-size: 1.02rem;
}

.hu-versus-val-de {
  text-align: right;
  color: #9CA3AF;
  text-decoration: line-through;
  text-decoration-color: #C6CBD2;
}

.hu-versus-val-hu {
  text-align: left;
  color: var(--color-accent-a11y);
}

.hu-versus-metric {
  flex: 1;
  text-align: center;
  font-size: 0.85rem;
  color: var(--color-text-secondary);
  font-weight: 600;
}

.hu-narrative {
  padding: 72px 0;
}

.hu-narrative-inner {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 48px;
  align-items: center;
  text-align: left;
}

.hu-narrative-media img {
  display: block;
}

@media (max-width: 860px) {
  .hu-narrative-inner {
    grid-template-columns: 1fr;
    gap: 28px;
  }
}

.hu-narrative-inner h2 {
  margin: 14px 0 18px;
}

.hu-narrative-inner p {
  color: var(--color-text-secondary);
  font-size: 1.05rem;
  line-height: 1.7;
}

.hu-chancen {
  background: var(--color-dark-bg);
  padding: 88px 0;
}

.hu-chancen-header {
  max-width: 640px;
  margin: 0 auto 56px;
  text-align: center;
}

.hu-chancen-header .eyebrow {
  color: #FF9478;
}

.hu-chancen-header h2 {
  color: #fff;
  font-size: clamp(1.7rem, 3vw, 2.2rem);
  margin: 12px 0 16px;
}

.hu-chancen-header .text-accent {
  color: #FF8A6E;
}

.hu-chancen-header p {
  color: rgba(255, 255, 255, 0.72);
  line-height: 1.6;
}

.hu-chancen-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}

.hu-chancen-stat {
  text-align: center;
  padding: 0 16px;
  border-left: 1px solid rgba(255, 255, 255, 0.14);
}

.hu-chancen-stat:first-child {
  border-left: none;
}

.hu-chancen-number {
  display: block;
  font-size: 2.8rem;
  font-weight: 800;
  line-height: 1;
  margin-bottom: 12px;
  background: linear-gradient(90deg, #FF9478, #FFC28A);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.hu-chancen-label {
  color: rgba(255, 255, 255, 0.78);
  font-size: 0.92rem;
  line-height: 1.5;
}

.hu-culture {
  position: relative;
  min-height: 620px;
  display: flex;
  align-items: center;
  overflow: hidden;
  color: #fff;
}

.hu-culture-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.hu-culture-bg img,
.hu-culture-bg video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.hu-culture-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(90deg, rgba(8, 11, 22, 0.9) 0%, rgba(8, 11, 22, 0.62) 52%, rgba(8, 11, 22, 0.18) 100%);
}

.hu-culture-content {
  position: relative;
  z-index: 2;
  max-width: 600px;
  padding: 72px 0;
}

.hu-culture-content .eyebrow {
  color: #FF9478;
}

.hu-culture-content h2 {
  color: #fff;
  margin: 12px 0 18px;
}

.hu-culture-content p {
  color: rgba(255, 255, 255, 0.86);
  margin-bottom: 14px;
  line-height: 1.65;
}

.hu-culture-facts {
  list-style: none;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: 22px;
}

.hu-culture-facts li {
  font-size: 0.88rem;
  color: var(--color-text);
  padding-left: 18px;
  position: relative;
  line-height: 1.4;
}

.hu-culture-facts li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 7px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--color-accent);
}

.hu-services-header {
  max-width: 640px;
  margin: 0 auto 48px;
  text-align: center;
}

.hu-services-header p {
  color: var(--color-text-secondary);
  line-height: 1.6;
  margin-top: 12px;
}

.hu-services-list {
  max-width: 880px;
  margin: 0 auto;
}

.hu-service-row {
  display: flex;
  align-items: center;
  gap: 40px;
  padding: 32px 0;
  border-bottom: 1px solid var(--color-border);
}

.hu-service-row:last-child {
  border-bottom: none;
}

.hu-service-row:nth-child(even) {
  flex-direction: row-reverse;
}

.hu-service-icon {
  flex: 0 0 88px;
  width: 88px;
  height: 88px;
}

.hu-service-icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.hu-service-text {
  flex: 1;
}

.hu-service-text h3 {
  margin-bottom: 6px;
}

.hu-service-text p {
  color: var(--color-text-secondary);
  line-height: 1.6;
}

.hu-services-cta {
  text-align: center;
  margin-top: 48px;
}

.hu-about-inner {
  max-width: 620px;
  margin: 0 auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.hu-about-photo {
  width: 116px;
  height: 116px;
  border-radius: 50%;
  overflow: hidden;
  margin-bottom: 20px;
  box-shadow: var(--shadow-card);
  border: 3px solid var(--color-card);
}

.hu-about-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hu-about-quote {
  font-size: 1.35rem;
  font-weight: 600;
  line-height: 1.45;
  margin: 4px 0 10px;
  color: var(--color-text);
}

.hu-about-name {
  color: var(--color-text-secondary);
  font-weight: 600;
  margin-bottom: 24px;
  font-size: 0.9rem;
}

.hu-about-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
  margin-bottom: 28px;
}

.hu-about-tags span {
  background: var(--color-card);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-pill);
  padding: 6px 16px;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--color-text-secondary);
}

.hu-faq .accordion {
  max-width: 760px;
  margin: 0 auto;
}

.hu-faq .accordion-item {
  border: none;
  border-radius: 0;
  background: transparent;
  padding: 4px 0;
  border-bottom: 1px solid var(--color-border);
}

.hu-faq .accordion-item:hover {
  background: transparent;
}

.hu-faq .accordion-item:last-child {
  border-bottom: none;
}

@media (max-width: 860px) {
  .hu-chancen-stats {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .hu-chancen-stat {
    border-left: none;
    border-top: 1px solid rgba(255, 255, 255, 0.14);
    padding-top: 24px;
  }

  .hu-chancen-stat:first-child {
    border-top: none;
    padding-top: 0;
  }

  .hu-culture-overlay {
    background: linear-gradient(180deg, rgba(8, 11, 22, 0.55) 0%, rgba(8, 11, 22, 0.92) 65%);
  }

  .hu-culture-content {
    max-width: 100%;
  }

  .hu-service-row,
  .hu-service-row:nth-child(even) {
    flex-direction: column;
    text-align: center;
    gap: 16px;
  }
}

@media (max-width: 640px) {
  .hu-versus-inner {
    grid-template-columns: 1fr;
  }

  .hu-versus-side {
    flex-direction: row;
    justify-content: center;
    padding: 14px;
  }

  .hu-versus-row {
    flex-wrap: wrap;
    justify-content: center;
    text-align: center;
    row-gap: 4px;
  }

  .hu-versus-metric {
    flex: 0 0 100%;
    order: -1;
    margin-bottom: 4px;
  }

  .hu-culture-facts {
    grid-template-columns: 1fr;
  }

  .hu-culture {
    min-height: 0;
  }

  .hu-culture-content {
    padding: 48px 0;
  }
}

/* ==========================================================================
   Firma in Ungarn gründen – Unterseite
   ========================================================================== */

.ungarn-compare-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  margin-top: 40px;
}

.ungarn-compare-card {
  background: var(--color-card);
  border-radius: var(--radius-md);
  padding: 40px 36px;
  box-shadow: var(--shadow-card);
  transition: box-shadow 0.3s ease;
}

.ungarn-compare-card:hover {
  box-shadow: var(--shadow-card-hover);
}

.ungarn-compare-flag {
  font-size: 2.5rem;
  margin-bottom: 12px;
  line-height: 1;
}

.ungarn-compare-card h3 {
  font-size: 1.35rem;
  font-weight: 700;
  margin-bottom: 20px;
  color: var(--color-text);
}

.ungarn-compare-card ul {
  list-style: none;
  padding: 0;
}

.ungarn-compare-card li {
  position: relative;
  padding-left: 24px;
  padding-bottom: 14px;
  font-size: 0.97rem;
  line-height: 1.55;
  color: var(--color-text-secondary);
}

.ungarn-compare-card li::before {
  position: absolute;
  left: 0;
  top: 2px;
}

.ungarn-compare-de li::before {
  content: "✗";
  color: var(--color-accent);
  font-weight: 700;
}

.ungarn-compare-hu li::before {
  content: "✓";
  color: #22a867;
  font-weight: 700;
}

.ungarn-compare-card li strong {
  color: var(--color-text);
  font-weight: 700;
}

.ungarn-compare-hu {
  border: 2px solid rgba(var(--color-accent-rgb), 0.15);
  background: linear-gradient(135deg, #fff 60%, rgba(var(--color-accent-rgb), 0.04));
}

.ungarn-stat-icon {
  display: flex !important;
  align-items: center;
  justify-content: center;
  min-height: 120px;
}

.ungarn-stat-number {
  font-family: var(--font-base);
  font-size: 2.8rem;
  font-weight: 800;
  background: var(--gradient-cta);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  line-height: 1.1;
}

@media (max-width: 720px) {
  .ungarn-compare-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .ungarn-compare-card {
    padding: 28px 24px;
  }

  .ungarn-stat-number {
    font-size: 2rem;
  }

  .ungarn-stat-icon {
    min-height: 80px;
  }
}

.hero-hu-teaser {
  margin-top: 18px;
  font-size: 0.95rem;
  color: var(--color-text-secondary);
}

.hero-hu-teaser a {
  font-weight: 600;
  text-decoration: none;
}

.prozess-header {
  text-align: center;
  max-width: 720px;
  margin: 0 auto 56px;
}

.prozess-timeline {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
  position: relative;
}

.prozess-timeline::before {
  content: "";
  position: absolute;
  top: 24px;
  left: 16.6%;
  right: 16.6%;
  height: 2px;
  background: var(--color-border);
  z-index: 0;
}

.prozess-step {
  position: relative;
  text-align: center;
  z-index: 1;
}

.prozess-step-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--gradient-cta);
  color: #fff;
  font-weight: 700;
  font-size: 1.1rem;
  margin-bottom: 20px;
  box-shadow: var(--shadow-card);
}

.prozess-step h3 {
  font-size: 1.15rem;
  margin-bottom: 10px;
}

.prozess-step p {
  color: var(--color-text-secondary);
  font-size: 0.95rem;
  line-height: 1.6;
  max-width: 320px;
  margin: 0 auto;
}

@media (max-width: 1024px) {
  .prozess-timeline {
    grid-template-columns: 1fr;
    gap: 36px;
    max-width: 420px;
    margin: 0 auto;
  }

  .prozess-timeline::before {
    top: 0;
    bottom: 0;
    left: 23px;
    right: auto;
    width: 2px;
    height: auto;
  }

  .prozess-step {
    text-align: left;
    padding-left: 64px;
  }

  .prozess-step-number {
    position: absolute;
    top: 0;
    left: 0;
    margin-bottom: 0;
  }

  .prozess-step p {
    max-width: none;
    margin: 0;
  }
}

.ungarn-ausgangslage .problem-top {
  grid-template-columns: 1fr;
}

@media (min-width: 1025px) {
  .ungarn-ausgangslage .problem-header {
    margin-top: 0;
  }
}

.ungarn-ausgangslage .problem-subheading {
  margin: 32px 0 40px;
}

/* ---------- ChatGPT Ads Landingpage: eigenstaendiger Prozess-Block ---------- */
.cga-process-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}

.cga-process-step {
  background: var(--color-card);
  border-radius: var(--radius-lg);
  padding: 32px;
  box-shadow: var(--shadow-card);
}

.cga-process-number {
  width: 48px;
  height: 48px;
  border-radius: var(--radius-pill);
  background: var(--gradient-cta);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 1.25rem;
  margin-bottom: 20px;
}

.cga-process-step h3 {
  margin-bottom: 10px;
  font-size: 1.15rem;
}

@media (max-width: 860px) {
  .cga-process-grid {
    grid-template-columns: 1fr;
  }
}
/* ---------- ChatGPT-Ads-Landingpage (page-id-1976): Hero-Blobs ohne Animation ---------- */
/* Grund: Die staendig laufende translate/scale-Animation auf den weichgezeichneten
   Blob-Kreisen kann in Kombination mit position:absolute + filter:blur beim Scrollen
   zu kurzen Compositing-Artefakten fuehren (Blob blitzt kurz ueber den Content der
   naechsten Sektion). Auf dieser Landingpage werden die Blobs deshalb statisch
   gehalten; visuell bleiben sie als dezente Hintergrundform erhalten. */
.page-id-1976 .blob {
  animation: none;
}
.page-id-1976 .hero-visual {
  overflow: hidden;
}
