@font-face {
  font-family: "Raleway";
  src: url("../fonts/raleway-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

:root {
  --blue: #14395b;
  --blue-dark: #001b38;
  --surface-light: #f3f7fa;
  --hero-illustration-bg: #edf4f9;
  --hero-glasfaser-bg: #e7eef7;
  --orange: #ff6f00;
  --orange-dark: #d95700;
  --ink: #172536;
  --muted: #5d6b78;
  --white: #ffffff;
  --line: #d8e2e8;
  --shadow: 0 18px 50px rgba(20, 57, 91, 0.12);
  --radius: 22px;
  --content: 1180px;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  color: var(--ink);
  background: var(--white);
  font-family: "Raleway", Arial, sans-serif;
  line-height: 1.6;
}

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

a {
  color: var(--orange-dark);
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible {
  outline: 3px solid var(--orange);
  outline-offset: 3px;
}

.skip-link {
  position: fixed;
  top: 0;
  left: 1rem;
  z-index: 100;
  padding: 0.75rem 1rem;
  color: var(--white);
  background: var(--blue-dark);
  transform: translateY(-120%);
}

.skip-link:focus {
  transform: translateY(0);
}

.container {
  width: min(calc(100% - 40px), var(--content));
  margin-inline: auto;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  border-bottom: 1px solid rgba(216, 226, 232, 0.8);
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(16px);
}

.header-inner {
  display: flex;
  min-height: 82px;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}

.brand img {
  width: 215px;
  height: auto;
}

.nav-toggle {
  display: none;
  padding: 0.6rem 0.75rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  color: var(--blue);
  background: var(--white);
  font: inherit;
  font-weight: 700;
}

.main-nav {
  display: flex;
  align-items: center;
  gap: 1.4rem;
}

.main-nav a {
  color: var(--blue);
  font-weight: 700;
}

.main-nav .nav-cta {
  padding: 0.7rem 1rem;
  border-radius: 999px;
  color: var(--white);
  background: var(--blue);
}

.hero {
  overflow: hidden;
  padding: 7rem 0 6rem;
  background:
    radial-gradient(circle at 80% 20%, rgba(68, 199, 220, 0.24), transparent 28rem),
    linear-gradient(135deg, var(--blue-dark), var(--blue));
  color: var(--white);
}

.hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(280px, 0.75fr);
  align-items: center;
  gap: 4rem;
}

.eyebrow {
  margin: 0 0 0.75rem;
  color: var(--orange);
  font-size: 0.84rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.flyer-page .hero {
  background:
    radial-gradient(circle at 80% 20%, rgba(255, 111, 0, 0.24), transparent 28rem),
    linear-gradient(135deg, var(--blue-dark), var(--blue));
}

h1,
h2,
h3 {
  margin-top: 0;
  line-height: 1.13;
}

h1,
h2 {
  color: var(--blue-dark);
}

h1 {
  margin-bottom: 1.25rem;
  font-size: clamp(2.5rem, 6vw, 5.25rem);
  letter-spacing: -0.045em;
}

h2 {
  margin-bottom: 1rem;
  font-size: clamp(2rem, 4vw, 3.4rem);
  letter-spacing: -0.03em;
}

h3 {
  margin-bottom: 0.65rem;
  color: var(--blue);
  font-size: 1.4rem;
}

.lead {
  max-width: 720px;
  margin: 0;
  font-size: clamp(1.15rem, 2vw, 1.45rem);
}

.hero-actions,
.button-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  margin-top: 2rem;
}

.button {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  padding: 0.75rem 1.15rem;
  border: 2px solid var(--blue);
  border-radius: 999px;
  color: var(--white);
  background: var(--blue);
  font-weight: 600;
  cursor: pointer;
}

.button:hover {
  text-decoration: none;
}

.button-light {
  border-color: var(--orange);
  color: var(--blue-dark);
  background: var(--orange);
}

.button-outline {
  border-color: currentColor;
  color: var(--blue);
  background: transparent;
}

.hero .button-outline {
  color: var(--white);
}

.hero-mark {
  width: min(100%, 360px);
  margin-inline: auto;
  filter: drop-shadow(0 26px 45px rgba(0, 0, 0, 0.2));
}

.section {
  padding: 5.5rem 0;
}

.section-soft {
  background: var(--surface-light);
}

.section-dark {
  color: var(--white);
  background: var(--blue-dark);
}

.section-dark h1,
.section-dark h2,
.section-dark h3 {
  color: var(--white);
}

.section-heading {
  max-width: 780px;
  margin-bottom: 2.5rem;
}

.problem-grid,
.service-grid,
.steps {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.25rem;
}

.problem,
.card,
.step {
  padding: 1.5rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--white);
  box-shadow: var(--shadow);
}

.problem {
  color: var(--blue);
  font-size: 1.1rem;
  font-weight: 800;
}

.card {
  overflow: hidden;
  padding: 0;
}

.card img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

.card-content {
  padding: 1.4rem;
}

.card p {
  color: var(--muted);
}

.text-link {
  font-weight: 800;
}

.step-number {
  display: grid;
  width: 42px;
  height: 42px;
  margin-bottom: 1rem;
  place-items: center;
  border-radius: 50%;
  color: var(--blue-dark);
  background: var(--orange);
  font-weight: 900;
}

.faq {
  max-width: 860px;
}

.faq-item {
  border-bottom: 1px solid var(--line);
}

.faq-question {
  display: flex;
  width: 100%;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.3rem 0;
  border: 0;
  color: var(--blue);
  background: transparent;
  font: inherit;
  font-size: 1.08rem;
  font-weight: 800;
  text-align: left;
  cursor: pointer;
}

.faq-answer {
  padding: 0 0 1.4rem;
}

.faq-answer[hidden] {
  display: none;
}

.contact-grid,
.content-grid {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: 4rem;
}

.contact-list {
  margin: 1.5rem 0;
  padding: 0;
  list-style: none;
}

.contact-list li {
  margin-bottom: 0.55rem;
}

.contact-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

.field {
  display: grid;
  gap: 0.35rem;
}

.field-wide {
  grid-column: 1 / -1;
}

label {
  color: var(--blue);
  font-weight: 800;
}

input,
textarea {
  width: 100%;
  padding: 0.85rem 0.95rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--white);
  font: inherit;
}

input:focus,
textarea:focus {
  outline: 3px solid rgba(255, 111, 0, 0.35);
  border-color: var(--orange-dark);
}

.checkbox {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  font-weight: 400;
}

.checkbox input {
  width: auto;
  margin-top: 0.35rem;
}

.form-status {
  min-height: 1.5em;
  margin: 0;
  color: var(--blue);
  font-weight: 700;
}

.page-hero {
  padding: 4.5rem 0;
  color: var(--white);
  background: linear-gradient(135deg, var(--blue-dark), var(--blue));
}

.page-hero h1 {
  max-width: 900px;
  color: var(--white);
  font-size: clamp(2.4rem, 5vw, 4.5rem);
}

.prose {
  max-width: 850px;
}

.prose h2 {
  margin-top: 2.5rem;
  font-size: 2rem;
}

.prose h3 {
  margin-top: 2rem;
}

.prose li {
  margin-bottom: 0.45rem;
}

.site-footer {
  padding: 3rem 0;
  color: rgba(255, 255, 255, 0.82);
  background: var(--blue-dark);
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr 1fr;
  gap: 2rem;
}

.footer-logo {
  width: 200px;
  margin-bottom: 1rem;
  filter: brightness(0) invert(1);
}

.footer-links {
  display: grid;
  align-content: start;
  gap: 0.45rem;
}

.footer-links a {
  color: var(--white);
}

.copyright {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  font-size: 0.9rem;
}

@media (max-width: 900px) {
  .hero-grid,
  .contact-grid,
  .content-grid {
    grid-template-columns: 1fr;
  }

  .problem-grid,
  .service-grid,
  .steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .nav-toggle {
    display: inline-flex;
  }

  .main-nav {
    position: absolute;
    top: 82px;
    right: 1rem;
    left: 1rem;
    display: none;
    padding: 1rem;
    border: 1px solid var(--line);
    border-radius: 16px;
    align-items: stretch;
    background: var(--white);
    box-shadow: var(--shadow);
    flex-direction: column;
  }

  .main-nav.is-open {
    display: flex;
  }
}

@media (max-width: 620px) {
  .hero {
    padding: 5rem 0 4rem;
  }

  .section {
    padding: 4rem 0;
  }

  .problem-grid,
  .service-grid,
  .steps,
  .contact-form,
  .footer-grid {
    grid-template-columns: 1fr;
  }

  .field-wide {
    grid-column: auto;
  }

  .brand img {
    width: 180px;
  }
}

/* Glasfaser im Haus */
.glasfaser-page .wp-header { box-shadow: 0 2px 5px rgba(0, 0, 0, .12); }
.glasfaser-hero { overflow: hidden; padding: clamp(4.5rem, 8vw, 7.5rem) 0; background: var(--hero-glasfaser-bg); }
.glasfaser-hero-grid { display: grid; grid-template-columns: minmax(0, 1.22fr) minmax(360px, .78fr); gap: clamp(1.25rem, 2.5vw, 2.75rem); align-items: center; }
.glasfaser-hero-copy { position: relative; z-index: 1; max-width: 730px; }.glasfaser-hero h1 { margin-bottom: 1.3rem; color: var(--blue-dark); font-size: clamp(2.8rem, 4vw, 4.2rem); line-height: 1.04; }.glasfaser-hero .lead { max-width: 620px; font-size: clamp(1.08rem, 1.5vw, 1.3rem); }
.glasfaser-hero-visual { position: relative; width: 100%; overflow: visible; }.glasfaser-hero-visual img { display: block; width: 118%; max-width: none; height: auto; margin-left: -8%; }
.glasfaser-facts { border-bottom: 1px solid var(--line); background: var(--white); }.glasfaser-facts-grid { display: grid; grid-template-columns: repeat(3, 1fr); }.glasfaser-facts-grid p { display: grid; gap: .15rem; margin: 0; padding: 1.5rem 2rem; border-right: 1px solid var(--line); text-align: center; }.glasfaser-facts-grid p:last-child { border-right: 0; }.glasfaser-facts-grid strong { color: var(--blue); font-size: 1.1rem; }.glasfaser-facts-grid span { color: var(--muted); }
.glasfaser-situation { background: var(--surface-light); }.glasfaser-problem-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }.glasfaser-problem-grid article { min-height: 100%; padding: 1.6rem; border: 1px solid var(--line); border-radius: 16px; background: var(--white); box-shadow: var(--shadow); }.glasfaser-problem-grid img { width: 100%; height: 170px; margin-bottom: 1rem; object-fit: contain; }.glasfaser-problem-grid h3 { min-height: 2.5em; color: var(--blue); }.glasfaser-problem-grid p { margin-bottom: 0; color: var(--muted); }
.glasfaser-process { background: var(--white); }.glasfaser-process-intro { max-width: 700px; margin-bottom: 3rem; }.glasfaser-process-intro h2 { color: var(--blue-dark); }.glasfaser-process-intro p:last-child { color: var(--muted); }.glasfaser-steps { display: grid; margin: 0; padding: 0; grid-template-columns: repeat(3, 1fr); gap: 2.5rem; list-style: none; }.glasfaser-steps li { display: grid; grid-template-columns: 52px 1fr; gap: 1rem; }.glasfaser-steps li > span { display: grid; width: 52px; height: 52px; place-items: center; border-radius: 50%; color: var(--white); background: var(--blue); font-weight: 800; }.glasfaser-steps h3 { display: flex; align-items: center; gap: .85rem; margin-top: .55rem; color: var(--blue); }.glasfaser-steps h3::after { flex: 1; min-width: 1rem; border-top: 2px solid var(--orange); content: ""; }.glasfaser-steps p { margin-bottom: 0; color: var(--muted); }
.glasfaser-provider { background: var(--surface-light); }.glasfaser-provider-grid { display: grid; grid-template-columns: 1fr minmax(350px, .85fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: center; }.glasfaser-provider h2 { color: var(--blue-dark); }.glasfaser-provider .lead { color: var(--ink); }.glasfaser-provider-card { overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: var(--white); box-shadow: var(--shadow); }.glasfaser-provider-card img { width: 100%; height: auto; }.glasfaser-provider-card dl { display: grid; margin: 0; padding: 1.3rem 1.6rem 1.6rem; gap: .9rem; }.glasfaser-provider-card dl div { display: grid; gap: .12rem; }.glasfaser-provider-card dt { color: var(--blue-dark); font-weight: 800; }.glasfaser-provider-card dd { margin: 0; color: var(--muted); }
.glasfaser-next { background: var(--white); }.glasfaser-next-grid { display: grid; grid-template-columns: minmax(340px, .8fr) 1fr; gap: clamp(2.5rem, 6vw, 6rem); align-items: center; }.glasfaser-next-visual img { width: 100%; }.glasfaser-next h2 { color: var(--blue-dark); }.glasfaser-next ul { display: grid; gap: .7rem; margin: 1.35rem 0; padding-left: 1.25rem; }.glasfaser-next li::marker { color: var(--orange); }.glasfaser-next p:last-child { color: var(--muted); }
.glasfaser-contact { padding: clamp(2.5rem, 5vw, 4.5rem) 0; color: var(--white); background: var(--blue-dark); }.glasfaser-contact-grid { display: grid; grid-template-columns: 1fr auto; gap: 2rem; align-items: center; }.glasfaser-contact h2 { margin-bottom: .85rem; color: var(--white); font-size: clamp(1.8rem, 3vw, 2.9rem); }.glasfaser-contact p:last-child { max-width: 700px; margin-bottom: 0; color: rgba(255,255,255,.82); }.glasfaser-contact .home-button { white-space: nowrap; }
@media (max-width: 1000px) { .glasfaser-hero-grid, .glasfaser-provider-grid, .glasfaser-next-grid { grid-template-columns: 1fr; }.glasfaser-hero-visual { width: min(100%, 680px); margin: 0 auto; }.glasfaser-hero-visual img { width: 100%; margin-left: 0; }.glasfaser-hero-copy { max-width: 720px; }.glasfaser-provider-card { max-width: 620px; }.glasfaser-next-visual { max-width: 590px; }.glasfaser-contact-grid { grid-template-columns: 1fr; }.glasfaser-contact .home-button { justify-self: start; } }
@media (max-width: 900px) { .glasfaser-facts-grid, .glasfaser-problem-grid, .glasfaser-steps { grid-template-columns: 1fr; }.glasfaser-facts-grid p { border-right: 0; border-bottom: 1px solid var(--line); }.glasfaser-facts-grid p:last-child { border-bottom: 0; }.glasfaser-steps { gap: 1.5rem; }.glasfaser-steps h3::after { display: none; }.glasfaser-problem-grid h3 { min-height: auto; }.glasfaser-contact .home-button { width: 100%; } }

/* Startseite: Orientierung statt Kampagnen-Landingpage */
.home-hero { overflow: hidden; padding: clamp(4rem, 7vw, 7rem) 0; background: var(--hero-illustration-bg); }
.home-hero-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(430px, .9fr); gap: clamp(2rem, 4vw, 4rem); align-items: center; }
.home-hero-copy { position: relative; z-index: 1; max-width: 680px; }.home-hero h1 { margin-bottom: 1.35rem; color: var(--blue-dark); font-size: clamp(2.8rem, 4.6vw, 4.75rem); line-height: 1.02; }.home-hero .lead { max-width: 560px; font-size: clamp(1.1rem, 1.55vw, 1.35rem); }
.home-actions { display: flex; flex-wrap: wrap; gap: 1.25rem; align-items: center; margin-top: 2rem; }.home-button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; padding: .75rem 1.15rem; border: 2px solid var(--orange); border-radius: 999px; color: var(--blue-dark); background: var(--orange); font-weight: 600; cursor: pointer; transition: transform 180ms ease, box-shadow 180ms ease, filter 180ms ease, background-color 180ms ease; }.home-button:hover { color: var(--blue-dark); box-shadow: 0 6px 14px rgba(0, 27, 56, .22); filter: brightness(.88); text-decoration: none; transform: translateY(-2px); }.home-text-link { color: var(--blue); font-weight: 800; text-decoration: underline; text-underline-offset: .25em; transition: color 180ms ease, text-decoration-thickness 180ms ease, transform 180ms ease; }.home-text-link:hover { color: var(--orange); text-decoration-thickness: .16em; transform: translateX(3px); }
.home-hero-visual { position: relative; z-index: 0; width: min(860px, 64vw); margin-left: -6vw; overflow: hidden; }.home-hero-visual::after { position: absolute; inset: 0; z-index: 2; box-shadow: inset 0 0 44px 20px var(--hero-illustration-bg); content: ""; pointer-events: none; }.home-hero-visual img { display: block; width: 100%; height: auto; }
.home-wifi-pulses { position: absolute; inset: 0; z-index: 1; pointer-events: none; }.home-wifi-pulse { position: absolute; top: var(--pulse-y); left: var(--pulse-x); width: 4.4%; color: var(--orange); opacity: 0; filter: drop-shadow(0 0 5px rgba(255, 111, 0, .5)); transform: translate(-50%, -50%) scale(.72); animation: home-wifi-pulse 8s ease-out var(--pulse-delay) infinite; }.home-wifi-pulse svg { display: block; width: 100%; height: auto; overflow: visible; }.home-wifi-pulse path { fill: none; stroke: currentColor; stroke-width: 5; stroke-linecap: round; }.home-wifi-pulse circle { fill: currentColor; }

@keyframes home-wifi-pulse {
  0% { opacity: 0; transform: translate(-50%, -50%) scale(.72); }
  4% { opacity: .9; }
  15% { opacity: .16; transform: translate(-50%, -50%) scale(1.34); }
  18%, 100% { opacity: 0; transform: translate(-50%, -50%) scale(1.34); }
}

.has-scroll-reveal .scroll-reveal { opacity: 0; transform: translateY(30px); transition: opacity 820ms ease var(--reveal-delay, 0ms), transform 820ms cubic-bezier(.2, .7, .2, 1) var(--reveal-delay, 0ms); }.has-scroll-reveal .scroll-reveal.is-visible { opacity: 1; transform: translateY(0); }

@media (prefers-reduced-motion: reduce) {
  .home-wifi-pulses { display: none; }
  .has-scroll-reveal .scroll-reveal { opacity: 1; transform: none; transition: none; }
}
.home-section-heading { max-width: 760px; margin: 0 auto 3rem; text-align: center; }.home-section-heading h2, .home-local h2, .home-faq h2 { color: var(--blue-dark); font-size: clamp(2rem, 3.8vw, 3.5rem); line-height: 1.05; }
.home-entry { background: var(--white); }.home-entry-grid, .home-services-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }.home-entry-grid article { overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: var(--white); box-shadow: var(--shadow); }.home-entry-grid img { display: block; width: 100%; height: 170px; object-fit: contain; padding: 1.2rem 1.75rem 0; }.home-entry-content { padding: 1rem 2rem 2rem; }.home-entry-content h3 { color: var(--blue); }.home-entry-grid p, .home-services-grid p { color: var(--muted); }.home-entry-grid p { margin-bottom: 0; }
.home-services { background: var(--surface-light); }.home-services-grid article { padding: 1.5rem 2rem 2rem; border-left: 1px solid var(--line); }.home-services-grid article:first-child { border-left: 0; }.home-services-grid img { display: block; width: 100%; height: 125px; margin: 0 auto 1.15rem; object-fit: contain; }.home-services-grid h3 { color: var(--blue); font-size: 1.35rem; }.home-services-grid a { color: var(--orange); font-weight: 800; text-decoration: underline; text-underline-offset: .25em; }
.home-local { background: var(--white); }.home-local-grid { max-width: 1040px; }.home-local h2 { max-width: 650px; }.home-trust-list { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 2.25rem; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }.home-trust-list p { display: grid; grid-template-columns: 108px 1fr; gap: .85rem; min-height: 150px; margin: 0; padding: 1.35rem 1.5rem; color: var(--muted); }.home-trust-list img { width: 108px; height: 84px; object-fit: contain; }.home-trust-list span { display: grid; gap: .35rem; }.home-trust-list p + p { border-left: 1px solid var(--line); }.home-trust-list strong { color: var(--blue-dark); font-size: 1.1rem; }
.home-check { padding: 5rem 0; color: var(--white); background: var(--blue-dark); }.home-check-grid { display: grid; grid-template-columns: 1fr auto; gap: 2rem; align-items: center; }.home-check .eyebrow { color: var(--orange); }.home-check h2 { margin: 0 0 .7rem; color: var(--white); font-size: clamp(1.7rem, 3vw, 2.75rem); }.home-check p:last-child { max-width: 700px; margin: 0; color: rgba(255, 255, 255, .8); }.home-check .home-button { white-space: nowrap; }
.home-faq { padding: 5rem 0; background: var(--white); }.home-faq-grid { display: grid; grid-template-columns: minmax(260px, .7fr) minmax(0, 1.3fr); gap: clamp(2rem, 6vw, 6rem); align-items: start; }.home-faq .wp-accordion { margin: 0; }.home-faq .wp-accordion article { background: var(--white); }.home-faq .wp-accordion button, .home-faq .wp-answer { font-family: inherit; font-size: 1rem; line-height: 1.6; }.wp-contact.home-contact { background: var(--surface-light); }.home-contact .wp-contact-copy h2 { color: var(--blue-dark); }.home-contact-du { margin: 0 0 .75rem; color: var(--orange-dark); font-weight: 800; }

@media (max-width: 1100px) {
  .home-hero-grid, .home-faq-grid { grid-template-columns: 1fr; }.home-hero { padding-bottom: 3.5rem; }.home-hero-visual { width: min(100%, 700px); margin: 0 auto; }.home-hero-visual img { width: 100%; margin-left: 0; }.home-entry-grid, .home-services-grid, .home-trust-list { grid-template-columns: 1fr; }.home-services-grid article, .home-services-grid article:first-child { border-top: 1px solid var(--line); border-left: 0; }.home-services-grid article:first-child { border-top: 0; }.home-trust-list p + p { border-top: 1px solid var(--line); border-left: 0; }.home-check-grid { grid-template-columns: 1fr; }.home-check .home-button { justify-self: start; }
}

@media (max-width: 620px) {
  .home-hero h1 { font-size: clamp(2.55rem, 12vw, 4rem); }.home-actions { display: grid; }.home-button { width: 100%; }.home-entry-grid img { height: 135px; padding: 1.1rem 1.25rem 0; }.home-entry-content { padding: 1rem 1.5rem 1.5rem; }.home-check { padding: 3.5rem 0; }
}

/* Landingpage Heimnetzwerk Lohmar */
.heimnetz-page { color: var(--ink); background: var(--white); }
.heimnetz-hero { overflow: hidden; padding: clamp(4rem, 7vw, 7rem) 0; background: var(--hero-illustration-bg); }
.heimnetz-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(480px, 1fr); gap: clamp(2rem, 4vw, 4.5rem); align-items: center; }
.heimnetz-hero-copy { position: relative; z-index: 1; max-width: 650px; }
.heimnetz-hero h1 { max-width: 680px; margin-bottom: 1.35rem; color: var(--blue-dark); font-size: clamp(2.8rem, 3.85vw, 4.15rem); line-height: 1.03; text-wrap: balance; }
.heimnetz-title-start { white-space: nowrap; }
.heimnetz-hero .lead { max-width: 610px; color: var(--ink); font-size: clamp(1.1rem, 1.5vw, 1.3rem); }
.heimnetz-hero .home-button { margin-top: .8rem; }
.heimnetz-hero-visual { position: relative; width: min(820px, 58vw); margin-left: -5vw; overflow: hidden; }
.heimnetz-hero-visual::after { position: absolute; inset: 0; box-shadow: inset 0 0 44px 20px var(--hero-illustration-bg); content: ""; pointer-events: none; }
.heimnetz-hero-visual img { display: block; width: 100%; height: auto; }

.heimnetz-facts { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--white); }
.heimnetz-facts-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.heimnetz-facts-grid p { display: grid; gap: .25rem; margin: 0; padding: 1.55rem 2rem; text-align: center; }
.heimnetz-facts-grid p + p { border-left: 1px solid var(--line); }
.heimnetz-facts-grid strong { color: var(--blue-dark); font-size: 1.08rem; }
.heimnetz-facts-grid span { color: var(--muted); font-size: .95rem; }

.heimnetz-situations { background: var(--surface-light); }
.heimnetz-situations .home-section-heading > p:last-child { color: var(--muted); }
.heimnetz-situations .home-entry-grid article { box-shadow: none; }

.heimnetz-process { background: var(--white); }
.heimnetz-process .section-heading { max-width: 760px; margin-bottom: 3rem; }
.heimnetz-process .section-heading h2 { color: var(--blue-dark); }
.heimnetz-process .section-heading > p:last-child { color: var(--muted); }
.heimnetz-steps { display: grid; margin: 0; padding: 0; grid-template-columns: repeat(3, 1fr); gap: 2.5rem; list-style: none; }
.heimnetz-steps li { display: grid; grid-template-columns: 52px 1fr; gap: 1rem; }
.heimnetz-steps li > span { display: grid; width: 52px; height: 52px; place-items: center; border-radius: 50%; color: var(--white); background: var(--blue); font-weight: 800; }
.heimnetz-steps h3 { display: flex; align-items: center; gap: .85rem; margin-top: .55rem; color: var(--blue); }
.heimnetz-steps h3::after { flex: 1; min-width: 1rem; border-top: 2px solid var(--orange); content: ""; }
.heimnetz-steps p { margin-bottom: 0; color: var(--muted); }

.heimnetz-local { background: var(--surface-light); }
.heimnetz-local-grid { display: grid; grid-template-columns: 1fr minmax(360px, .72fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: center; }
.heimnetz-local h2 { color: var(--blue-dark); }
.heimnetz-local .lead { max-width: 650px; color: var(--ink); }
.heimnetz-local-card { padding: clamp(1.8rem, 4vw, 2.6rem); border: 1px solid var(--line); border-radius: 16px; background: var(--white); }
.heimnetz-local-badge { display: inline-flex; margin-bottom: 1.25rem; padding: .45rem .8rem; border-radius: 999px; color: var(--blue-dark); background: var(--orange); font-size: .84rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.heimnetz-local-card h3 { color: var(--blue-dark); }
.heimnetz-local-card dl { display: grid; margin: 0; gap: 0; }
.heimnetz-local-card dl div { display: grid; grid-template-columns: 1fr auto; gap: 1rem; padding: .9rem 0; border-top: 1px solid var(--line); }
.heimnetz-local-card dt { color: var(--blue); font-weight: 800; }
.heimnetz-local-card dd { margin: 0; color: var(--muted); text-align: right; }

.heimnetz-boundaries { background: var(--white); }
.heimnetz-boundaries-grid { display: grid; grid-template-columns: 1fr minmax(420px, .9fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: center; }
.heimnetz-boundaries h2 { color: var(--blue-dark); }
.heimnetz-boundaries .lead { max-width: 620px; color: var(--ink); }
.heimnetz-boundaries-card { padding: clamp(1.8rem, 4vw, 2.6rem); border: 1px solid var(--line); border-radius: 16px; background: var(--white); }
.heimnetz-boundaries-card h3 { color: var(--blue-dark); }
.heimnetz-boundaries-card ul { display: grid; gap: .75rem; margin: 0; padding-left: 1.25rem; }
.heimnetz-boundaries-card li::marker { color: var(--orange); }

.heimnetz-contact { background: var(--surface-light); }
.heimnetz-contact .wp-contact-grid { grid-template-columns: minmax(300px, .85fr) minmax(0, 1.15fr); gap: clamp(2.5rem, 6vw, 5rem); }
.heimnetz-contact .wp-contact-copy h2 { color: var(--blue-dark); font-size: clamp(2rem, 3.8vw, 3.4rem); line-height: 1.05; }
.heimnetz-contact .wp-contact-copy .eyebrow { color: var(--orange); }
.heimnetz-contact .wp-form label, .heimnetz-contact .wp-form input, .heimnetz-contact .wp-form textarea, .heimnetz-contact .wp-submit { font-size: 1rem; }

@media (max-width: 1050px) {
  .heimnetz-hero-grid, .heimnetz-local-grid, .heimnetz-boundaries-grid, .heimnetz-contact .wp-contact-grid { grid-template-columns: 1fr; }
  .heimnetz-hero-copy { max-width: 720px; }
  .heimnetz-hero-visual { width: min(100%, 760px); margin: 0 auto; }
}

@media (max-width: 900px) {
  .heimnetz-facts-grid, .heimnetz-steps { grid-template-columns: 1fr; }
  .heimnetz-facts-grid p + p { border-top: 1px solid var(--line); border-left: 0; }
  .heimnetz-steps { gap: 1.5rem; }
  .heimnetz-steps h3::after { display: none; }
}

@media (max-width: 620px) {
  .heimnetz-hero { padding: 3.75rem 0 3.25rem; }
  .heimnetz-hero h1 { font-size: clamp(2.5rem, 12vw, 3.9rem); }
  .heimnetz-title-start { white-space: normal; }
  .heimnetz-hero .home-button { width: 100%; }
}

/* Hilfe-Seite: textorientierter Support ohne Hero-Bild */
.help-page { color: var(--ink); background: var(--white); }
.help-hero { padding: clamp(4.5rem, 8vw, 7rem) 0; background: var(--surface-light); }
.help-hero-inner { max-width: 900px; margin: 0 auto; text-align: center; }
.help-hero h1 { max-width: 850px; margin-inline: auto; color: var(--blue-dark); font-size: clamp(2.8rem, 4.6vw, 4.7rem); line-height: 1.04; text-wrap: balance; }
.help-hero .lead { max-width: 760px; margin-inline: auto; color: var(--ink); font-size: clamp(1.1rem, 1.5vw, 1.3rem); }
.help-hero .home-button { margin-top: 1rem; }

.help-details { background: var(--white); }
.help-section-heading { max-width: 760px; margin: 0 auto 3rem; text-align: center; }
.help-section-heading h2 { color: var(--blue-dark); }
.help-section-heading > p:last-child { color: var(--muted); }
.help-detail-grid { display: grid; margin: 0; padding: 0; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; list-style: none; }
.help-detail-grid li { padding: 2rem; border: 1px solid var(--line); border-radius: 16px; background: var(--white); }
.help-detail-grid li > span { display: grid; width: 50px; height: 50px; margin-bottom: 1.4rem; place-items: center; border-radius: 50%; color: var(--white); background: var(--blue); font-weight: 800; }
.help-detail-grid h3 { min-height: 2.5em; color: var(--blue); }
.help-detail-grid p { margin-bottom: 0; color: var(--muted); }

.help-contact { background: var(--surface-light); }
.help-contact-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.25rem; }
.help-contact-grid article { display: flex; min-height: 310px; padding: clamp(1.8rem, 4vw, 2.6rem); border: 1px solid var(--line); border-radius: 16px; align-items: flex-start; background: var(--white); flex-direction: column; }
.help-contact-label { margin-bottom: 1rem; color: var(--orange); font-size: .84rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.help-contact-grid h3 { color: var(--blue-dark); font-size: clamp(1.35rem, 2.2vw, 1.8rem); }
.help-contact-grid article > p:not(.help-contact-label) { color: var(--muted); }
.help-contact-grid .home-button, .help-contact-grid .home-text-link { margin-top: auto; }
.help-form-panel { display: grid; margin-top: 1.25rem; padding: clamp(1.8rem, 4vw, 2.6rem); border: 1px solid var(--line); border-radius: 16px; grid-template-columns: minmax(260px, .75fr) minmax(0, 1.25fr); gap: clamp(2.5rem, 6vw, 5rem); background: var(--white); }
.help-form-panel h3 { color: var(--blue-dark); font-size: clamp(1.35rem, 2.2vw, 1.8rem); }
.help-form-panel > div > p:last-child { color: var(--muted); }
.help-form-panel .wp-form label, .help-form-panel .wp-form input, .help-form-panel .wp-form textarea, .help-form-panel .wp-submit { font-size: 1rem; }

.help-notice { background: var(--white); }
.help-notice-inner { display: grid; grid-template-columns: minmax(300px, .8fr) minmax(0, 1.2fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: center; padding-top: 2.5rem; padding-bottom: 2.5rem; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.help-notice h2 { margin-bottom: 0; color: var(--blue-dark); font-size: clamp(2rem, 3.5vw, 3.1rem); line-height: 1.05; }
.help-notice-inner > p { margin-bottom: 0; color: var(--muted); }

@media (max-width: 850px) {
  .help-detail-grid, .help-contact-grid, .help-form-panel, .help-notice-inner { grid-template-columns: 1fr; }
  .help-detail-grid h3 { min-height: auto; }
  .help-contact-grid article { min-height: 0; }
  .help-contact-grid .home-button, .help-contact-grid .home-text-link { margin-top: 1rem; }
}

@media (max-width: 620px) {
  .help-hero { padding: 3.75rem 0; }
  .help-hero h1 { font-size: clamp(2.45rem, 11.5vw, 3.8rem); }
  .help-hero .home-button, .help-contact-grid .home-button { width: 100%; }
}

/* Rechtseiten: heller, textorientierter Hero und ruhig gegliederte Inhalte */
.legal-page { color: var(--ink); background: var(--white); }
.legal-hero { padding: clamp(4.5rem, 8vw, 7rem) 0; background: var(--surface-light); }
.legal-hero-inner { max-width: 920px; margin: 0 auto; text-align: center; }
.legal-hero h1 { max-width: 900px; margin-inline: auto; color: var(--blue-dark); font-size: clamp(2.8rem, 4.6vw, 4.7rem); line-height: 1.04; text-wrap: balance; }
.legal-hero .lead { max-width: 720px; margin-inline: auto; color: var(--ink); font-size: clamp(1.08rem, 1.45vw, 1.25rem); }
.legal-content { background: var(--white); }
.legal-prose { max-width: 900px; margin-inline: auto; }
.legal-prose h2 { margin: 2.75rem 0 .9rem; padding-top: 2.75rem; border-top: 1px solid var(--line); color: var(--blue-dark); font-size: clamp(1.45rem, 2.5vw, 2rem); line-height: 1.2; }
.legal-prose h2:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.legal-prose p { max-width: 78ch; color: var(--muted); line-height: 1.75; }
.legal-prose a { color: var(--blue); font-weight: 700; text-decoration: underline; text-underline-offset: .18em; }
.legal-prose a:hover { color: var(--orange); }
.legal-prose code { padding: .1em .35em; border-radius: 4px; color: var(--blue-dark); background: var(--surface-light); }

@media (max-width: 620px) {
  .legal-hero { padding: 3.75rem 0; }
  .legal-hero h1 { font-size: clamp(2.4rem, 11vw, 3.7rem); }
  .legal-hero h1.legal-title-long {
    font-size: clamp(1.45rem, 7.5vw, 2.4rem);
    white-space: nowrap;
  }
  .legal-content { padding-top: 3.75rem; padding-bottom: 3.75rem; }
  .legal-prose h2 { margin-top: 2.1rem; padding-top: 2.1rem; }
}

/* Über uns */
.about-page { color: var(--ink); background: var(--white); }
.about-hero { padding: clamp(4.5rem, 8vw, 7rem) 0; background: var(--surface-light); }
.about-hero-inner { max-width: 940px; margin: 0 auto; text-align: center; }
.about-hero h1 { max-width: 900px; margin-inline: auto; color: var(--blue-dark); font-size: clamp(2.8rem, 4.6vw, 4.7rem); line-height: 1.04; text-wrap: balance; }
.about-hero .lead { max-width: 780px; margin-inline: auto; color: var(--ink); font-size: clamp(1.1rem, 1.5vw, 1.3rem); }
.about-name { background: var(--white); }
.about-name-grid { display: grid; grid-template-columns: minmax(0, 1.18fr) minmax(300px, .82fr); gap: clamp(3rem, 7vw, 7rem); align-items: center; }
.about-name-copy { max-width: 700px; }
.about-name-copy h2, .about-values h2, .about-personal h2 { color: var(--blue-dark); font-size: clamp(2rem, 3.8vw, 3.5rem); line-height: 1.05; }
.about-name-parts { display: grid; margin-top: 2.25rem; gap: 1.5rem; }
.about-name-parts article { padding-left: 1.4rem; border-left: 3px solid var(--orange); }
.about-name-parts h3 { margin-bottom: .45rem; color: var(--blue); }
.about-name-parts p { margin: 0; color: var(--muted); }
.about-mark { display: grid; min-height: 390px; padding: 2.5rem; border: 1px solid var(--line); border-radius: 16px; place-items: center; background: var(--surface-light); }
.about-mark img { display: block; width: min(245px, 72%); height: auto; }
.about-values { background: var(--surface-light); }
.about-values-heading { max-width: 760px; margin: 0 auto 3rem; text-align: center; }
.about-values-heading > p:last-child { color: var(--muted); }
.about-values-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.about-values-grid article { min-height: 100%; padding: 2rem; border: 1px solid var(--line); border-radius: 16px; background: var(--white); }
.about-values-grid span { display: grid; width: 52px; height: 52px; margin-bottom: 1.4rem; border-radius: 50%; place-items: center; color: var(--white); background: var(--blue); font-weight: 800; }
.about-values-grid h3 { min-height: 2.5em; color: var(--blue); }
.about-values-grid p { margin-bottom: 0; color: var(--muted); }
.about-personal { background: var(--white); }
.about-personal-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(2.5rem, 7vw, 7rem); align-items: center; }
.about-personal-copy { max-width: 700px; }
.about-personal-copy > p:not(.eyebrow) { color: var(--muted); }
.about-contact-card { padding: clamp(1.8rem, 4vw, 2.6rem); border: 1px solid var(--line); border-radius: 16px; background: var(--surface-light); }
.about-contact-card h3 { color: var(--blue-dark); font-size: clamp(1.35rem, 2.2vw, 1.75rem); }
.about-contact-card p { color: var(--muted); }
.about-contact-card a:not(.home-button) { display: block; width: fit-content; margin-top: .65rem; color: var(--blue); font-weight: 700; }
.about-contact-card .home-button { margin-top: 1.25rem; }
.about-software-offer { margin: 0; padding-top: 2rem; border-top: 1px solid var(--line); grid-column: 1 / -1; color: var(--muted); font-size: .95rem; }
.about-software-offer a { color: var(--blue); font-weight: 800; text-decoration: underline; text-underline-offset: .18em; }
.about-software-offer a:hover { color: var(--orange-dark); }

@media (max-width: 900px) {
  .about-name-grid, .about-personal-grid { grid-template-columns: 1fr; }
  .about-mark { width: min(100%, 560px); min-height: 320px; }
  .about-values-grid { grid-template-columns: 1fr; }
  .about-values-grid h3 { min-height: 0; }
}

@media (max-width: 620px) {
  .about-mark { min-height: 270px; padding: 2rem; }
  .about-contact-card .home-button { width: 100%; }
}

/* WLAN-Hilfe Lohmar */
.wlan-page { color: var(--ink); background: var(--white); }
.wlan-hero { overflow: hidden; padding: clamp(4.5rem, 8vw, 7rem) 0; background: var(--hero-illustration-bg); }
.wlan-hero-grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(430px, .92fr); gap: clamp(2rem, 4vw, 4rem); align-items: center; }
.wlan-hero-copy { position: relative; z-index: 1; max-width: 690px; }
.wlan-hero h1 { margin-bottom: 1.35rem; color: var(--blue-dark); font-size: clamp(2.8rem, 4.5vw, 4.7rem); line-height: 1.03; text-wrap: balance; }
.wlan-hero .lead { max-width: 620px; font-size: clamp(1.08rem, 1.5vw, 1.3rem); }
.wlan-hero .home-button { margin-top: 1rem; }
.wlan-hero-visual { position: relative; width: min(820px, 58vw); margin-left: -4vw; overflow: hidden; }
.wlan-hero-visual::after { position: absolute; inset: 0; box-shadow: inset 0 0 42px 18px var(--hero-illustration-bg); content: ""; pointer-events: none; }
.wlan-hero-visual img { display: block; width: 100%; height: auto; }

.wlan-facts { border-bottom: 1px solid var(--line); background: var(--white); }
.wlan-facts-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.wlan-facts-grid p { display: grid; gap: .15rem; margin: 0; padding: 1.5rem 2rem; border-right: 1px solid var(--line); text-align: center; }
.wlan-facts-grid p:last-child { border-right: 0; }
.wlan-facts-grid strong { color: var(--blue); font-size: 1.08rem; }
.wlan-facts-grid span { color: var(--muted); }

.wlan-check { background: var(--surface-light); }
.wlan-check .home-section-heading > p:last-child { color: var(--muted); }
.wlan-check-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.wlan-check-grid article { padding: 1.6rem 1.8rem 2rem; border: 1px solid var(--line); border-radius: 16px; background: var(--white); box-shadow: var(--shadow); }
.wlan-check-grid img { display: block; width: 100%; height: 170px; margin: 0 auto 1.2rem; object-fit: contain; }
.wlan-check-grid h3 { min-height: 2.5em; color: var(--blue); }
.wlan-check-grid p { margin-bottom: 0; color: var(--muted); }

.wlan-result { background: var(--white); }
.wlan-result-grid { display: grid; grid-template-columns: minmax(300px, .78fr) minmax(0, 1.22fr); gap: clamp(3rem, 7vw, 7rem); align-items: start; }
.wlan-result-copy h2 { color: var(--blue-dark); font-size: clamp(2rem, 3.8vw, 3.5rem); line-height: 1.05; }
.wlan-result-copy > p:last-child { color: var(--muted); }
.wlan-result-list { display: grid; margin: 0; padding: 0; gap: 1.8rem; list-style: none; }
.wlan-result-list li { display: grid; grid-template-columns: 52px 1fr; gap: 1rem; }
.wlan-result-list li > span { display: grid; width: 52px; height: 52px; place-items: center; border-radius: 50%; color: var(--white); background: var(--blue); font-weight: 800; }
.wlan-result-list h3 { display: flex; align-items: center; gap: .85rem; margin: .55rem 0 .4rem; color: var(--blue); }
.wlan-result-list h3::after { flex: 1; min-width: 1rem; border-top: 2px solid var(--orange); content: ""; }
.wlan-result-list p { margin: 0; color: var(--muted); }

.wlan-boundaries { background: var(--surface-light); }
.wlan-boundaries-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr); gap: clamp(3rem, 7vw, 7rem); align-items: center; }
.wlan-boundaries h2 { color: var(--blue-dark); font-size: clamp(2rem, 3.8vw, 3.45rem); line-height: 1.05; }
.wlan-boundaries-grid > div > p:not(.eyebrow) { max-width: 720px; color: var(--muted); }
.wlan-region-card { padding: clamp(1.8rem, 4vw, 2.6rem); border: 1px solid var(--line); border-radius: 16px; background: var(--white); box-shadow: var(--shadow); }
.wlan-region-card h3 { color: var(--blue-dark); font-size: 1.5rem; }
.wlan-region-card > p:not(.eyebrow) { display: flex; margin: 0; padding: 1rem 0; border-top: 1px solid var(--line); justify-content: space-between; gap: 1rem; }
.wlan-region-card strong { color: var(--blue-dark); }
.wlan-region-card span { color: var(--muted); text-align: right; }

.wlan-contact { background: var(--white); }
.wlan-contact .wp-contact-copy h2 { color: var(--blue-dark); font-size: clamp(2rem, 3.6vw, 3.25rem); line-height: 1.06; }
.wlan-contact .wp-contact-copy > p:not(.eyebrow) { color: var(--muted); }
.wlan-contact .wp-form { padding: clamp(1.35rem, 3vw, 2rem); border: 1px solid var(--line); border-radius: 16px; background: var(--surface-light); }
.wlan-contact .wp-form label, .wlan-contact .wp-form input, .wlan-contact .wp-form textarea, .wlan-contact .wp-submit { font-size: 1rem; }

@media (max-width: 1050px) {
  .wlan-hero-grid, .wlan-result-grid, .wlan-boundaries-grid, .wlan-contact .wp-contact-grid { grid-template-columns: 1fr; }
  .wlan-hero-copy { max-width: 760px; }
  .wlan-hero-visual { width: min(100%, 720px); margin: 0 auto; }
}

@media (max-width: 900px) {
  .wlan-facts-grid, .wlan-check-grid { grid-template-columns: 1fr; }
  .wlan-facts-grid p { border-right: 0; border-bottom: 1px solid var(--line); }
  .wlan-facts-grid p:last-child { border-bottom: 0; }
  .wlan-check-grid h3 { min-height: auto; }
  .wlan-result-list h3::after { display: none; }
}

@media (max-width: 620px) {
  .wlan-hero { padding: 3.75rem 0 3.25rem; }
  .wlan-hero h1 { font-size: clamp(2.5rem, 11.5vw, 3.9rem); }
  .wlan-hero .home-button { width: 100%; }
  .wlan-region-card > p:not(.eyebrow) { display: grid; gap: .2rem; }
  .wlan-region-card span { text-align: left; }
}

/* WordPress-parity homepage */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}

.wp-look {
  color: var(--ink);
  background: var(--surface-light);
  font-family: "Raleway", Arial, sans-serif;
  font-size: 16px;
}

.wp-header {
  position: sticky;
  top: 0;
  z-index: 60;
  min-height: 84px;
  border-bottom: 1px solid var(--line);
  background: var(--white);
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
}

.wp-header-inner {
  display: flex;
  min-height: 84px;
  align-items: center;
  justify-content: space-between;
}

.wp-brand img {
  width: 100px;
  height: auto;
}

.wp-brand,
.flyer-brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
}

.wp-brand:hover,
.flyer-brand:hover {
  text-decoration: none;
}

.header-brand-name {
  display: grid;
  color: var(--blue-dark);
  font-size: 17px;
  font-weight: 800;
  letter-spacing: .025em;
  line-height: .95;
}

.header-brand-name span:last-child {
  margin-top: 4px;
  color: var(--orange);
}

.wp-nav {
  display: flex;
  gap: 36px;
}

.wp-nav a {
  color: var(--orange);
  font-size: 17px;
}

.wp-menu-button {
  display: none;
}

.wp-hero {
  padding: 75px 0;
  background: var(--surface-light);
}

.wp-hero-grid {
  display: grid;
  grid-template-columns: 300px 1fr;
  align-items: center;
  gap: 85px;
}

.wp-hero-logo {
  color: var(--blue-dark);
  font-size: 46px;
  font-weight: 800;
  line-height: 1.15;
  text-align: center;
}

.wp-hero-logo img {
  width: 270px;
  margin: 0 auto;
}

.wp-hero h1 {
  margin: 0 0 22px;
  font-family: "Raleway", Arial, sans-serif;
  font-size: 42px;
  font-weight: 700;
  line-height: 1.2;
}

.wp-hero p {
  max-width: 750px;
  margin: 0;
  font-family: "Raleway", Arial, sans-serif;
  font-size: 28px;
  line-height: 1.8;
}

.wp-intro {
  padding: 62px 0 90px;
  background: var(--white);
}

.wp-intro-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 125px;
}

.wp-dark-box {
  padding: 40px 24px;
  border-radius: 48px;
  color: var(--white);
  background: var(--blue-dark);
}

.wp-dark-box h2 {
  margin-bottom: 18px;
  color: var(--white);
  font-family: "Raleway", Arial, sans-serif;
  font-size: 26px;
  line-height: 1.55;
}

.wp-dark-box p {
  margin: 12px 0;
  font-size: 16px;
}

.wp-problems {
  display: grid;
  gap: 24px;
}

.wp-problems article {
  display: grid;
  grid-template-columns: 34px 1fr;
  gap: 20px;
}

.network-icon {
  color: var(--blue);
  font-size: 30px;
}

.wp-problems h3 {
  margin: 0;
  color: var(--blue);
  font-family: "Raleway", Arial, sans-serif;
  font-size: 20px;
}

.wp-problems p {
  margin: 4px 0 0;
}

.wp-services {
  padding: 0 0 105px;
  background: var(--white);
}

.wp-section-title {
  margin-bottom: 55px;
  text-align: center;
}

.wp-section-title h2 {
  margin-bottom: 12px;
  color: var(--blue-dark);
  font-family: "Raleway", Arial, sans-serif;
  font-size: 32px;
}

.wp-section-title p {
  margin: 0;
  font-size: 19px;
  font-style: italic;
}

.wp-carousel {
  position: relative;
  padding-inline: 38px;
}

.wp-carousel-track {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  overflow: hidden;
}

.wp-service-card {
  min-width: 0;
  min-height: 545px;
  padding: 28px 28px 24px;
  border-radius: 8px;
  color: var(--white);
  background: var(--blue-dark);
}

.wp-service-card:nth-child(4) {
  display: none;
}

.wp-service-card img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

.wp-service-card h3 {
  margin: 18px 0;
  color: var(--white);
  font-family: "Raleway", Arial, sans-serif;
  font-size: 28px;
  line-height: 1;
}

.wp-service-card em {
  display: block;
  margin-bottom: 24px;
  font-size: 13px;
}

.wp-service-card p {
  font-size: 16px;
}

.wp-service-card a,
.wp-service-note a {
  color: var(--orange);
  font-weight: 600;
}

.wp-service-note {
  max-width: 900px;
  margin: 24px auto 0;
  font-size: 14px;
  line-height: 1.55;
  text-align: center;
}

.wp-carousel-arrow {
  position: absolute;
  top: 45%;
  z-index: 2;
  border: 0;
  color: var(--muted);
  background: transparent;
  font-size: 34px;
  cursor: pointer;
}

.wp-carousel-arrow.prev {
  left: 0;
}

.wp-carousel-arrow.next {
  right: 0;
}

.wp-price {
  padding: 26px 0 36px;
  background: var(--orange);
}

.wp-price h2 {
  margin: 0 0 16px;
  font-family: "Raleway", Arial, sans-serif;
  font-size: 28px;
}

.wp-small-button {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  margin-bottom: 12px;
  padding: 0.75rem 1.15rem;
  border-radius: 999px;
  color: var(--white);
  background: var(--blue-dark);
  font-size: 14px;
  font-weight: 600;
}

.wp-price p {
  margin: 8px 0 0;
  font-size: 13px;
}

.wp-faq-section {
  padding: 105px 0 85px;
  background: var(--white);
}

.wp-faq-grid {
  display: grid;
  grid-template-columns: 1fr 1.08fr;
  align-items: start;
  gap: 60px;
}

.wp-faq-intro h2 {
  font-family: "Raleway", Arial, sans-serif;
  font-size: 28px;
  line-height: 1;
}

.wp-faq-intro h3 {
  color: var(--blue);
  font-size: 20px;
  font-style: italic;
}

.wp-accordion article {
  margin-bottom: 10px;
}

.wp-accordion button {
  width: 100%;
  padding: 12px;
  border: 0;
  color: var(--orange);
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.wp-answer {
  padding: 20px;
  border: 1px solid var(--line);
  color: var(--ink);
  font-size: 16px;
}

.wp-contact {
  padding: 60px 0 80px;
  background: var(--white);
}

.wp-contact-grid {
  display: grid;
  grid-template-columns: 0.65fr 1.35fr;
  gap: 85px;
}

.wp-contact-copy h2 {
  margin: 0 0 12px;
  color: var(--blue-dark);
  font-family: "Raleway", Arial, sans-serif;
  font-size: 28px;
  line-height: 1;
}

.wp-contact-copy h3 {
  font-size: 20px;
  font-style: italic;
}

.wp-contact-copy a {
  color: var(--blue-dark);
}

.wp-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.wp-form .wide {
  grid-column: 1 / -1;
}

.wp-form label {
  color: var(--blue);
  font-size: 12px;
  font-weight: 400;
}

.wp-form label span {
  color: var(--orange);
}

.wp-form input,
.wp-form textarea {
  padding: 7px;
  border: 1px solid var(--line);
  border-radius: 0;
  font-size: 14px;
}

.wp-checkbox {
  display: flex;
  align-items: flex-start;
  gap: 6px;
}

.wp-checkbox input {
  width: auto;
}

.wp-checkbox span {
  color: var(--ink);
}

.wp-submit {
  min-height: 48px;
  padding: 0.75rem 1.15rem;
  border: 0;
  border-radius: 999px;
  color: var(--blue-dark);
  background: var(--orange);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
}

.wp-submit:disabled {
  opacity: 0.65;
  cursor: wait;
  transform: none;
}

.form-honeypot {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

.button,
.wp-small-button,
.wp-submit {
  transition:
    transform 180ms ease,
    box-shadow 180ms ease,
    filter 180ms ease,
    background-color 180ms ease;
}

.button:hover,
.wp-small-button:hover,
.wp-submit:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 14px rgba(0, 27, 56, 0.22);
  filter: brightness(0.88);
  text-decoration: none;
}

.button-outline:hover {
  background: rgba(7, 47, 92, 0.1);
}

.hero .button-outline:hover {
  background: rgba(255, 255, 255, 0.12);
}

.wp-footer {
  min-height: 0;
  padding: 60px 0 48px;
  color: var(--white);
  background: var(--blue-dark);
}

.wp-footer-grid {
  display: grid;
  grid-template-areas: "legal logo contact";
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  align-items: start;
}

.wp-footer-brand {
  grid-area: logo;
  width: 160px;
  justify-self: center;
}

.wp-footer-grid > div:nth-child(2) {
  grid-area: legal;
  width: max-content;
  max-width: 100%;
  justify-self: center;
}

.wp-footer-grid > div:nth-child(3) {
  grid-area: contact;
  width: max-content;
  max-width: 100%;
  justify-self: center;
}

.wp-footer-brand img {
  display: block;
  width: 160px;
  max-width: none;
  height: auto;
}

@media (max-width: 900px) {
  .wp-footer-brand,
  .wp-footer-brand img {
    width: 140px;
  }
}

.wp-footer h2 {
  color: var(--white);
  font-size: 20px;
}

.wp-footer a {
  display: block;
  margin: 17px 0;
  color: var(--white);
  font-size: 17px;
  font-weight: 700;
}

.wp-footer-du {
  margin: 17px 0;
  font-size: 17px;
  font-weight: 700;
}

.wp-footer-social {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  margin-top: 22px;
}

.wp-footer .wp-footer-social a {
  margin: 0;
}

.wp-footer .wp-footer-review {
  display: inline-flex;
  min-height: 48px;
  margin: 24px 0 0;
  padding: 10px 20px;
  border: 2px solid var(--orange);
  border-radius: 999px;
  align-items: center;
  justify-content: center;
  color: var(--blue-dark);
  background: var(--orange);
  font-size: 16px;
  font-weight: 800;
  line-height: 1.3;
  text-align: center;
  transition: box-shadow 180ms ease, filter 180ms ease, transform 180ms ease;
}

.wp-footer .wp-footer-review:hover {
  color: var(--blue-dark);
  box-shadow: 0 6px 14px rgba(255, 111, 0, 0.22);
  filter: brightness(0.9);
  text-decoration: none;
  transform: translateY(-2px);
}

.nn-not-found {
  padding: clamp(4rem, 8vw, 7rem) 0;
  background: var(--surface-light);
}

.nn-not-found-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(320px, .92fr);
  gap: clamp(2rem, 7vw, 6rem);
  align-items: center;
}

.nn-not-found-copy h1 {
  max-width: 14ch;
  margin-bottom: 1.25rem;
  color: var(--blue-dark);
  font-size: clamp(2.5rem, 5vw, 4.8rem);
  line-height: 1.02;
}

.nn-not-found-copy .lead {
  max-width: 620px;
  color: var(--muted);
}

.nn-not-found-copy .home-button {
  margin-top: 1rem;
}

.nn-not-found-contact {
  padding: clamp(1.6rem, 4vw, 2.6rem);
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--white);
  box-shadow: var(--shadow);
}

.nn-not-found-contact h2 {
  margin-bottom: .75rem;
  color: var(--blue-dark);
  font-size: clamp(1.55rem, 2.5vw, 2.1rem);
}

.nn-not-found-contact .eyebrow {
  text-transform: none;
}

.nn-not-found-contact > p:not(.eyebrow, .nn-not-found-name) {
  color: var(--muted);
}

.nn-not-found-contact > a {
  display: block;
  width: fit-content;
  margin-top: .8rem;
  color: var(--blue-dark);
  font-weight: 700;
  overflow-wrap: anywhere;
}

.nn-not-found-contact-link span,
.nn-not-found-contact-link strong {
  display: block;
}

.nn-not-found-contact-link span {
  margin-bottom: .12rem;
  color: var(--orange-dark);
  font-size: .78rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.nn-not-found-name {
  margin: 1.4rem 0 0;
  color: var(--blue);
  font-weight: 800;
}

@media (max-width: 850px) {
  .nn-not-found-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 620px) {
  .nn-not-found {
    padding: 3rem 0;
  }

  .nn-not-found-copy .home-button {
    width: 100%;
  }
}

.consent-widget {
  position: fixed;
  bottom: 20px;
  left: 20px;
  z-index: 70;
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border: 0;
  border-radius: 50%;
  color: var(--white);
  background: var(--blue-dark);
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.35);
  font-size: 28px;
  cursor: pointer;
}

.consent-backdrop {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: grid;
  padding: 24px;
  place-items: center;
  background: rgba(0, 0, 0, 0.82);
}

.consent-backdrop[hidden] {
  display: none;
}

.consent-dialog {
  width: min(896px, 100%);
  max-height: calc(100vh - 48px);
  overflow: auto;
  border-radius: 3px;
  color: var(--muted);
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 18px 55px rgba(0, 0, 0, 0.32);
  font-size: 13px;
}

.consent-dialog > header,
.consent-dialog > p,
.consent-group,
.consent-dialog > footer {
  margin-inline: 24px;
}

.consent-dialog > header {
  display: flex;
  padding: 34px 0 28px;
  border-bottom: 1px solid var(--line);
  align-items: center;
  justify-content: space-between;
}

.consent-dialog h2 {
  margin: 0;
  color: var(--blue-dark);
  font-size: 21px;
}

.consent-dialog header nav {
  display: flex;
  gap: 20px;
}

.consent-dialog header a {
  color: var(--blue);
}

.consent-dialog > p {
  margin-top: 18px;
}

.consent-group {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 16px;
  margin-bottom: 16px;
  padding: 24px;
  align-items: start;
  background: var(--surface-light);
}

.consent-group input {
  width: 20px;
  height: 20px;
}

.consent-group strong,
.consent-group small {
  display: block;
}

.consent-group small {
  margin-top: 10px;
}

.consent-dialog > footer {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  padding: 24px 0;
}

.consent-dialog > footer button {
  min-height: 66px;
  padding: 12px;
  border: 0;
  border-radius: 4px;
  color: var(--white);
  background: var(--blue);
  font-weight: 700;
}

.prose,
.prose a,
.wp-form-note {
  overflow-wrap: anywhere;
}

@media (max-width: 900px) {
  .wp-header,
  .wp-header-inner {
    min-height: 78px;
  }

  .wp-brand img {
    width: 82px;
  }

  .header-brand-name {
    font-size: 14px;
  }

  .wp-menu-button {
    position: relative;
    display: block;
    width: 38px;
    height: 38px;
    padding: 9px;
    border: 0;
    background: transparent;
    cursor: pointer;
  }

  .wp-menu-button span:not(.sr-only) {
    position: absolute;
    left: 9px;
    display: block;
    width: 20px;
    height: 3px;
    border-radius: 2px;
    background-color: var(--blue);
    transform-origin: center;
    transition: transform 220ms ease, opacity 160ms ease;
  }

  .wp-menu-button::before {
    content: "";
    position: absolute;
    top: 9px;
    left: 9px;
    width: 20px;
    height: 20px;
    opacity: 0;
    background-color: var(--blue);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M3 3L17 17M17 3L3 17' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round'/%3E%3C/svg%3E") center / 20px 20px no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M3 3L17 17M17 3L3 17' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round'/%3E%3C/svg%3E") center / 20px 20px no-repeat;
    transition: opacity 160ms ease;
  }

  .wp-menu-button span:nth-child(1) {
    top: 10px;
  }

  .wp-menu-button span:nth-child(2) {
    top: 18px;
  }

  .wp-menu-button span:nth-child(3) {
    top: 26px;
  }

  .wp-menu-button[aria-expanded="true"] span:nth-child(1) {
    opacity: 0;
  }

  .wp-menu-button[aria-expanded="true"] span:nth-child(2) {
    opacity: 0;
  }

  .wp-menu-button[aria-expanded="true"] span:nth-child(3) {
    opacity: 0;
  }

  .wp-menu-button[aria-expanded="true"]::before {
    opacity: 1;
  }

  .wp-nav {
    position: absolute;
    top: 78px;
    right: 14px;
    display: none;
    width: 210px;
    padding: 12px;
    border-radius: 4px;
    background: var(--white);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.2);
    gap: 0;
    flex-direction: column;
  }

  .wp-nav.is-open {
    display: flex;
  }

  .wp-nav a {
    padding: 10px;
    font-size: 14px;
  }
}

@media (max-width: 700px) {
  .container {
    width: min(calc(100% - 28px), var(--content));
  }

  .wp-hero {
    padding: 35px 0 42px;
  }

  .wp-hero-grid {
    grid-template-columns: 1fr;
    gap: 28px;
    text-align: center;
  }

  .wp-hero-logo {
    font-size: 16px;
  }

  .wp-hero-logo img {
    width: 92px;
  }

  .wp-hero h1 {
    font-size: 20px;
    line-height: 2.1;
  }

  .wp-hero p {
    font-size: 16px;
    line-height: 2.3;
  }

  .wp-intro {
    padding: 34px 0 55px;
  }

  .wp-intro-grid,
  .wp-faq-grid,
  .wp-contact-grid,
  .wp-footer-grid {
    grid-template-columns: 1fr;
    gap: 48px;
  }

  .wp-footer-grid {
    grid-template-areas:
      "logo"
      "legal"
      "contact";
  }

  .wp-footer-brand {
    grid-area: logo;
    width: 110px;
    justify-self: center;
  }

  .wp-footer-brand img {
    width: 110px;
  }

  .wp-footer-grid > div:nth-child(2),
  .wp-footer-grid > div:nth-child(3) {
    width: 100%;
    justify-self: stretch;
    text-align: left;
  }

  .wp-dark-box {
    padding: 25px 18px;
    border-radius: 30px;
  }

  .wp-dark-box h2 {
    font-size: 18px;
    line-height: 1.8;
  }

  .wp-problems {
    gap: 34px;
  }

  .wp-problems article {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .wp-services {
    padding-bottom: 35px;
  }

  .wp-section-title {
    margin-bottom: 25px;
    text-align: left;
  }

  .wp-section-title h2 {
    font-size: 32px;
    line-height: 1;
  }

  .wp-carousel {
    padding: 0 18px;
  }

  .wp-carousel-track {
    display: flex;
    overflow: hidden;
  }

  .wp-service-card,
  .wp-service-card:nth-child(4) {
    display: block;
    min-width: 100%;
    min-height: 0;
    padding: 15px;
  }

  .wp-service-card h3 {
    font-size: 28px;
  }

  .wp-price {
    padding: 18px 0 28px;
  }

  .wp-price h2 {
    font-size: 28px;
    line-height: 1;
  }

  .wp-faq-section {
    padding: 40px 0;
  }

  .wp-contact {
    padding: 35px 0 45px;
  }

  .wp-form {
    grid-template-columns: 1fr;
  }

  .wp-form .wide {
    grid-column: auto;
  }

  .wp-footer {
    min-height: 0;
    padding: 50px 0 40px;
  }

  .wp-footer-grid {
    gap: 32px;
  }

  .consent-dialog > header {
    align-items: flex-start;
    flex-direction: column;
    gap: 12px;
  }

  .consent-group {
    grid-template-columns: auto 1fr;
  }

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

}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* Heimnetzwerk-Check landing page */
.flyer-landing .flyer-hero {
  position: relative;
  overflow: hidden;
  padding-bottom: 5.5rem;
  background: var(--hero-illustration-bg);
}

.flyer-header {
  position: sticky;
  top: 0;
  z-index: 60;
  border-bottom: 1px solid var(--line);
  background: var(--white);
}

.flyer-header-inner {
  display: flex;
  min-height: 76px;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.flyer-brand img { width: 100px; height: auto; }
.flyer-header-link { color: var(--blue); font-weight: 700; }
.flyer-header-link span { color: var(--orange); }

.flyer-hero { padding: 6.5rem 0; }
.flyer-hero-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(580px, 1fr) minmax(500px, .9fr);
  align-items: center;
  gap: clamp(2.5rem, 3.5vw, 3.5rem);
}
.flyer-hero-copy { position: relative; z-index: 2; max-width: 620px; }
.flyer-hero h1 { max-width: none; color: var(--blue-dark); font-size: clamp(2.8rem, 4.25vw, 4.45rem); }
.flyer-hero h1 span { display: block; white-space: nowrap; }
.flyer-hero .lead { max-width: 620px; color: var(--ink); }
.flyer-hero .button { margin-top: 2rem; }
.flyer-hero .button-light { color: var(--blue-dark); }
.flyer-hero-visual {
  position: relative;
  z-index: 1;
  width: 100%;
  height: auto;
  overflow: visible;
}
.flyer-hero-visual img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  margin: 0;
}

@media (max-width: 1200px) {
  .flyer-landing .flyer-hero { padding-bottom: 4.5rem; }
  .flyer-hero-grid { display: grid; min-height: 0; grid-template-columns: 1fr; gap: 2.5rem; }
  .flyer-hero-copy { max-width: 680px; }
  .flyer-hero-visual { width: 100%; height: auto; max-width: 760px; margin-inline: auto; overflow: visible; }
  .flyer-hero-visual img {
    display: block;
    width: 100%;
    height: auto;
    margin: 0;
    object-fit: contain;
    object-position: center;
  }
}

.flyer-facts { border-bottom: 1px solid var(--line); background: var(--white); }
.flyer-problems { background: var(--surface-light); }
.flyer-process { background: var(--white); }
.flyer-more { background: var(--surface-light); }
.flyer-facts-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.flyer-facts-grid p { display: grid; gap: .15rem; margin: 0; padding: 1.5rem 2rem; border-right: 1px solid var(--line); text-align: center; }
.flyer-facts-grid p:last-child { border-right: 0; }
.flyer-facts-grid strong { color: var(--blue); font-size: 1.12rem; }.flyer-facts-grid span { color: var(--muted); font-size: .92rem; }

.flyer-centered-heading { margin-inline: auto; text-align: center; }.flyer-centered-heading p { color: var(--muted); }.flyer-centered-heading .eyebrow { color: var(--orange); }
.flyer-problem-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.flyer-problem-card { padding: 1.75rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); box-shadow: var(--shadow); }
.flyer-icon { display: block; width: 100%; max-width: 280px; height: 170px; margin: 0 auto 1.25rem; background: center / contain no-repeat; color: transparent; font-size: 0; }
.flyer-problem-card:nth-child(1) .flyer-icon { background-image: url('/assets/img/flyer-problem-verbindung.png'); }
.flyer-problem-card:nth-child(2) .flyer-icon { background-image: url('/assets/img/flyer-problem-wlan.png'); }
.flyer-problem-card:nth-child(3) .flyer-icon { background-image: url('/assets/img/flyer-problem-geraete.png'); }
.flyer-problem-card h3 { min-height: 2.5em; }
.flyer-problem-card p { margin-bottom: 0; color: var(--muted); }

.flyer-process .section-heading { margin-bottom: 3rem; }
.flyer-steps { display: grid; margin: 0; padding: 0; counter-reset: step; grid-template-columns: repeat(3, 1fr); gap: 2.5rem; list-style: none; }
.flyer-steps li { position: relative; display: grid; grid-template-columns: 52px 1fr; gap: 1rem; }
.flyer-steps li:not(:last-child)::after { display: none; }
.flyer-steps span { display: grid; width: 52px; height: 52px; place-items: center; border-radius: 50%; color: var(--white); background: var(--blue); font-weight: 800; }
.flyer-steps h3 { display: flex; align-items: center; gap: .85rem; margin-top: .55rem; }.flyer-steps h3::after { flex: 1; min-width: 1rem; border-top: 2px solid var(--orange); content: ""; }.flyer-steps p { margin-bottom: 0; color: var(--muted); }

.flyer-more-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 4rem; align-items: center; }.flyer-more .lead { margin-bottom: 1rem; color: var(--blue); }
.flyer-more .text-link { color: var(--orange); }
.flyer-more-box { padding: 2rem; border-radius: var(--radius); color: var(--white); background: var(--blue); box-shadow: var(--shadow); }.flyer-more-box h3 { color: var(--white); }.flyer-more-box ul { display: grid; gap: .8rem; margin: 0; padding-left: 1.2rem; }.flyer-more-box li::marker { color: var(--orange); }

.flyer-appointment { padding-bottom: 5rem; background: var(--white); }.flyer-appointment-grid { display: grid; grid-template-columns: minmax(260px, .75fr) minmax(320px, 1.25fr); gap: 4rem; align-items: start; }.flyer-appointment a { color: var(--orange); font-weight: 700; }.flyer-appointment .flyer-phone-inline { white-space: nowrap; }.zeeg-wrapper { overflow: hidden; border-radius: var(--radius); background: var(--white); box-shadow: 0 18px 50px rgba(0, 0, 0, .24); }

.flyer-footer { padding: 2rem 0; }.flyer-footer-grid { display: grid; grid-template-columns: 1fr auto auto; gap: 2rem; align-items: center; }.flyer-footer a { color: var(--white); }.flyer-footer-grid > div { display: flex; flex-wrap: wrap; gap: 1rem; }.footer-home { font-weight: 800; }

@media (max-width: 900px) {
  .flyer-hero-grid, .flyer-more-grid, .flyer-appointment-grid, .flyer-facts-grid, .flyer-problem-grid, .flyer-steps { grid-template-columns: 1fr; }
  .flyer-hero-grid { display: grid; min-height: 0; }
  .flyer-hero-visual { position: static; height: auto; max-width: 620px; width: 100%; margin-inline: auto; overflow: visible; }.flyer-hero-visual img { position: static; width: 100%; height: auto; margin: 0 auto 1.5rem; }
  .flyer-appointment-grid { gap: 2.5rem; }
  .flyer-facts-grid p, .flyer-facts-grid p:first-child { padding: 1rem; border-right: 0; border-left: 0; border-bottom: 1px solid var(--line); }.flyer-facts-grid p:last-child { border-bottom: 0; }
}

@media (max-width: 620px) {
  .flyer-header-inner { min-height: 64px; }.flyer-brand img { width: 82px; }.flyer-header-link { font-size: .84rem; }.flyer-header-link span { display: none; }
  .flyer-hero { padding: 4.25rem 0 3.75rem; }.flyer-hero h1 { font-size: clamp(2.45rem, 10.5vw, 3.9rem); }.flyer-hero h1 span { white-space: normal; }.flyer-hero h1 span:first-child { white-space: nowrap; }.flyer-hero-visual { height: auto; }.flyer-hero-visual img { width: 100%; margin: 0 auto 1.25rem; }
  .flyer-facts-grid, .flyer-problem-grid, .flyer-steps, .flyer-footer-grid { grid-template-columns: 1fr; }.flyer-facts-grid p, .flyer-facts-grid p:first-child { padding: 1rem; border-right: 0; border-left: 0; border-bottom: 1px solid var(--line); }.flyer-facts-grid p:last-child { border-bottom: 0; }
  .flyer-steps { gap: 1.4rem; }.flyer-steps h3::after { display: none; }.flyer-steps li:not(:last-child)::after { position: absolute; display: block; top: 60px; right: auto; bottom: calc(-1.4rem + 8px); left: 25px; width: 0; height: auto; border-top: 0; border-left: 2px solid var(--orange); content: ""; }
  .flyer-footer-grid { gap: 1.25rem; }.flyer-footer-grid > div { display: grid; gap: .5rem; }
  .zeeg-wrapper { margin-inline: 0; border-radius: 0; }
}

/* Abschluss der Glasfaser-Seite: bewusst vom dunklen Footer getrennt */
.glasfaser-contact { padding: 5rem 0; color: var(--ink); background: var(--surface-light); }
.glasfaser-contact .wp-contact-copy h2 { color: var(--blue-dark); font-size: clamp(1.8rem, 3vw, 2.9rem); line-height: 1.08; }
.glasfaser-contact .wp-contact-copy p { color: var(--muted); }.glasfaser-contact .wp-contact-copy a { color: var(--blue-dark); }
.glasfaser-contact .wp-form { padding: clamp(1.35rem, 3vw, 2rem); border-radius: 16px; background: var(--white); box-shadow: var(--shadow); }.glasfaser-contact .wp-form-note { margin: 0; color: var(--muted); font-size: .82rem; line-height: 1.45; }.glasfaser-contact .wp-form-note a { color: var(--orange-dark); text-decoration: underline; }.glasfaser-contact .wp-submit { margin-top: .35rem; color: var(--blue-dark); background: var(--orange); }

/* Glasfaser: dieselbe reduzierte Liniengrafik-Sprache wie im Leistungsabschnitt der Startseite */
.glasfaser-problem-grid img { display: block; width: 100%; max-width: 280px; height: 170px; margin: 0 auto 1.25rem; object-fit: contain; }
.glasfaser-provider-flow { display: grid; grid-template-columns: 1fr auto 1fr; padding: 1.75rem 1.5rem .85rem; align-items: center; text-align: center; }.glasfaser-provider-flow > div { display: grid; justify-items: center; gap: .35rem; color: var(--blue-dark); }.glasfaser-provider-flow img { width: 180px; height: 120px; object-fit: contain; }.glasfaser-provider-flow strong { font-size: 1rem; }.glasfaser-provider-flow span:not(.glasfaser-flow-line) { color: var(--muted); font-size: .88rem; }.glasfaser-flow-line { width: clamp(32px, 6vw, 72px); margin-inline: .35rem; border-top: 2px solid var(--orange); }
.glasfaser-next-grid { display: block; max-width: 800px; margin-inline: auto; }.glasfaser-next-grid > div { max-width: 740px; }
@media (max-width: 520px) { .glasfaser-provider-flow { grid-template-columns: 1fr; gap: .9rem; }.glasfaser-flow-line { width: 2px; height: 34px; margin: 0 auto; border-top: 0; border-left: 2px solid var(--orange); } }

/* Zentrale Einsatzgebietsseite */
.service-area-intro { background: linear-gradient(135deg, var(--white) 0%, var(--surface-light) 68%, rgb(255 111 0 / .14) 100%); }
.service-area-intro-grid { display: grid; min-height: 430px; align-items: center; }
.service-area-intro-grid > div { max-width: 850px; }
.service-area-intro h1 { max-width: 900px; color: var(--blue-dark); font-size: clamp(2.6rem, 5.2vw, 5.2rem); line-height: .98; }
.service-area-intro .lead { max-width: 780px; color: var(--muted); }
.service-area-regions { background: var(--surface-light); }
.service-area-card-grid { display: grid; grid-template-columns: 1.2fr 1fr .85fr; gap: 1.25rem; }
.service-area-card-grid article,
.service-area-offer-grid a { padding: clamp(1.4rem, 2.5vw, 2rem); border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); box-shadow: var(--shadow); }
.service-area-card-grid h3 { color: var(--blue-dark); }
.service-area-card-grid ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem 1rem; margin: 0; padding-left: 1.2rem; }
.service-area-card-grid li::marker { color: var(--orange); }
.service-area-offers { background: var(--white); }
.service-area-offer-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.service-area-offer-grid a { display: grid; gap: .7rem; color: var(--ink); text-decoration: none; }
.service-area-offer-grid a:hover,
.service-area-offer-grid a:focus-visible { border-color: var(--orange); transform: translateY(-2px); }
.service-area-offer-grid strong { color: var(--blue-dark); font-size: 1.3rem; }
.service-area-offer-grid span { color: var(--muted); }
@media (max-width: 950px) { .service-area-card-grid, .service-area-offer-grid { grid-template-columns: 1fr; }.service-area-intro-grid { min-height: 0; }.service-area-card-grid ul { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .service-area-card-grid ul { grid-template-columns: 1fr; }.service-area-intro h1 { font-size: clamp(2.35rem, 12vw, 3.6rem); } }
