/* Werbung 24/7 – design.css (Redesign 2026-10-03, Stand ?v=20261003b)
   Mobile first, wirksam < 1024 px. Desktop (>= 1024 px) bleibt bis auf wenige, bewusste Stellen unverändert:
   FAQ/„Mehr lesen“/Linkgruppen/Footer-Spalten sind <details>, die auf dem Desktop per design.js geöffnet werden
   (Summary dort ausgeblendet). Reihenfolge: nach tailwind.css und mobile.css laden.

   Bausteine (HTML-Muster siehe REDESIGN-2026-10-03.md):
   .faq-item/.faq-q/.faq-a · .pl-list/.pl/.pl-l/.pl-p/.pl-n · .lg-wall/.lg-acc/.lg-sum/.lg-label · .readmore/.rm-sum/.rm-body
   .d-benefits · .d-photo · .d-iccard · .d-steps · .d-w · .d-cta · .ft-col/.ft-sum/.ft-quick · .nw · .d-ins */

.nw { white-space: nowrap; }

/* ---------- Basis für alle Viewports: details-Summaries ohne Standard-Marker ---------- */
summary.faq-q, summary.rm-sum, summary.lg-sum, summary.ft-sum { list-style: none; display: block; cursor: pointer; }
summary.faq-q::-webkit-details-marker, summary.rm-sum::-webkit-details-marker, summary.lg-sum::-webkit-details-marker, summary.ft-sum::-webkit-details-marker { display: none; }
summary.faq-q::marker, summary.rm-sum::marker, summary.lg-sum::marker, summary.ft-sum::marker { content: ""; }
.faq-q::after, .rm-sum::after, .lg-sum::after, .ft-sum::after { content: none; }
.lg-label { display: none; }
.d-benefits, .d-photo, .ft-quick, .d-cta, .fair-more { display: none; }
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid #f59e0b; outline-offset: 2px; border-radius: 6px;
}
/* Desktop: mit JS sind die Akkordeons geöffnet, Bedienelemente entfallen (Darstellung wie vorher) */
@media (min-width: 1024px) {
  html.js summary.rm-sum, html.js summary.lg-sum { display: none; }
  html.js summary.faq-q, html.js summary.ft-sum { cursor: default; }
  .lg-acc, .readmore { display: block; }
}

/* ---------- Tablet + Mobil ---------- */
@media (max-width: 1023px) {
  html { scroll-padding-top: 5.5rem; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
  body { font-size: 1rem; line-height: 1.6; color: #1e293b; padding-bottom: calc(64px + env(safe-area-inset-bottom, 0px)); }
  h1, h2, h3, .break-words-safe { overflow-wrap: break-word; word-break: normal; hyphens: none; -webkit-hyphens: none; text-wrap: balance; }
  main p, main li, main dd, main td, footer p { line-height: 1.6; text-wrap: pretty; }
  main p { max-width: 68ch; }
  main .text-center p, main p.mx-auto { margin-left: auto; margin-right: auto; }
  main p, main li { font-size: 1rem; }
  main p.text-lg, main .text-lg > p { font-size: 1.0625rem; }
  main p.text-xl, main p.text-2xl { font-size: 1.125rem; }
  main p.text-sm, main li.text-sm, main .text-sm > p, main ul.text-sm li { font-size: .9375rem; line-height: 1.55; }
  main .text-xs, main p.text-xs { font-size: .875rem; line-height: 1.5; }

  /* Kontrast: helle Flächen */
  main .text-slate-400, main .text-slate-500 { color: #475569; }
  main .text-slate-600 { color: #334155; }
  main .text-amber-600 { color: #b45309; }
  main .bg-slate-900 .text-slate-400, main .bg-slate-900 .text-slate-300, header .text-slate-400, header .text-slate-300 { color: #cbd5e1; }
  main .bg-slate-900 .text-slate-500 { color: #cbd5e1; }
  main .bg-slate-900 .text-amber-300, main .bg-slate-900 .text-amber-400 { color: #fcd34d; }
  main .bg-white\/10 .text-slate-400 { color: #cbd5e1; }
  .price-gradient { font-weight: 800; }

  /* Formulare: 16 px gegen Zoom, große Felder */
  input, select, textarea { font-size: 1rem !important; }

  /* WhatsApp-Float entfällt mobil – ersetzt durch Sticky-CTA */
  a.fixed[href*="wa.me"] { display: none !important; }
  footer[role="contentinfo"] { padding-bottom: 1.75rem; padding-top: 2.25rem; }

  /* ----- Abschnitte: Rhythmus, Abstand, Wechsel hell / weiß ----- */
  body main section.py-16, body main section.py-14 { padding-top: 2.75rem; padding-bottom: 2.75rem; }
  body main section.py-12, body main section.py-10 { padding-top: 2.5rem; padding-bottom: 2.5rem; }
  body main section.py-8, body main section.pb-4 { padding-top: 1.5rem; padding-bottom: 1.5rem; }
  body main section.pb-4 { padding-top: 0; padding-bottom: 1rem; }
  body main section.d-w { background: #fff; border-top: 1px solid #e8edf3; border-bottom: 1px solid #e8edf3; }
  body main section.d-w .bg-white.rounded-3xl { background: #f8fafc; }
  body main section.bg-white { border-top: 1px solid #e8edf3; border-bottom: 1px solid #e8edf3; }
  body main section.bg-white .bg-white.rounded-3xl { background: #f8fafc; }
  body main section.bg-slate-100 { background: #eef2f7; }
  main .gap-6, main .gap-8, main .gap-12 { gap: 1rem; }
  main .space-y-4 > * + * { margin-top: .75rem; }
  main .mb-10, main .mb-12 { margin-bottom: 1.5rem; }

  /* Abschnittsköpfe linksbündig mit orangem Akzent */
  main section .text-center.mb-6, main section .text-center.mb-8, main section .text-center.mb-10, main section .text-center.mb-12 { text-align: left; }
  main section .text-center.mb-6 p, main section .text-center.mb-8 p, main section .text-center.mb-10 p, main section .text-center.mb-12 p { margin-left: 0; margin-right: 0; }
  main section h2 { font-size: 1.625rem; line-height: 1.2; letter-spacing: -.01em; }
  main section h2::after { content: ""; display: block; width: 3rem; height: .3125rem; border-radius: 9999px; margin-top: .6rem; background: linear-gradient(90deg, #f59e0b, #ea580c); }
  main section .text-center h2::after { margin-left: 0; }
  main section.bg-slate-900 h2::after, main section#kontakt h2::after { background: linear-gradient(90deg, #fbbf24, #f97316); }
  main section .text-center .local-badge { margin-bottom: .6rem; }
  main section h3 { line-height: 1.3; }
  main section .max-w-3xl.mx-auto, main section .max-w-2xl.mx-auto.text-center { margin-left: 0; margin-right: 0; }

  /* Karten: Radius, Schatten, kompaktes Innenmaß */
  main .rounded-3xl { border-radius: 1.25rem; }
  main .p-7, main .p-8, main .p-10 { padding: 1.25rem; }
  main .bg-white.rounded-3xl.border, main .bg-slate-50.rounded-3xl.border, main a.service-card {
    box-shadow: 0 1px 2px rgba(15,23,42,.05), 0 8px 20px -10px rgba(15,23,42,.18);
  }
  main .service-card:hover { transform: none; }

  /* Icon-Karten (Vorteile/Leistungen): Icon links, Text rechts */
  .d-iccard { display: grid !important; grid-template-columns: 3.5rem minmax(0, 1fr); column-gap: 1rem; align-items: start; }
  .d-iccard > .text-4xl { grid-row: 1 / span 6; margin: 0 !important; width: 3.5rem; height: 3.5rem; border-radius: 1rem; background: #fff7ed;
    display: flex; align-items: center; justify-content: center; font-size: 1rem; }
  .d-iccard > .text-4xl svg { width: 2rem; height: 2rem; }
  .d-iccard > :not(.text-4xl) { grid-column: 2; }
  .d-iccard h3 { margin-bottom: .25rem !important; font-size: 1.125rem; }
  .d-iccard p { margin-bottom: .5rem; }
  .d-iccard .price-gradient { font-size: 1.0625rem; margin-top: .15rem; }

  /* Prozess: 3–4 Schritte als Zeitleiste */
  .d-steps { display: grid; grid-template-columns: 1fr; gap: 0; }
  .d-steps > .text-center { display: grid; grid-template-columns: 3rem minmax(0, 1fr); column-gap: 1rem; text-align: left; position: relative; padding-bottom: 1.25rem; }
  .d-steps > .text-center:last-child { padding-bottom: 0; }
  .d-steps > .text-center > .w-16 { width: 3rem; height: 3rem; margin: 0; grid-row: 1 / span 3; font-size: 1.25rem; border-radius: .9rem; background: linear-gradient(135deg, #fbbf24, #f97316); color: #fff; }
  .d-steps > .text-center > :not(.w-16) { grid-column: 2; }
  .d-steps > .text-center:not(:last-child)::before { content: ""; position: absolute; left: 1.45rem; top: 3.1rem; bottom: .15rem; width: 2px; background: #fcd34d; }
  .d-steps h3 { margin-bottom: .15rem; font-size: 1.0625rem; }

  /* Preise */
  #preise .flex.justify-between { align-items: baseline; gap: .75rem; padding-top: .55rem; padding-bottom: .55rem; }
  #preise .flex.justify-between > span:first-child { min-width: 0; }
  #preise .flex.justify-between > .whitespace-nowrap, #preise .flex.justify-between > strong, #preise .flex.justify-between > span.font-semibold { white-space: nowrap; color: #b45309; font-weight: 800; }
  #preise .flex.justify-between > span:only-child { padding-left: 1.6rem; position: relative; }
  #preise .flex.justify-between > span:only-child::before { content: ""; position: absolute; left: 0; top: .2em; width: 1.1rem; height: 1.1rem;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%23f59e0b' d='M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209L241 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L335 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z'/%3E%3C/svg%3E") center / contain no-repeat; }
  #preise a.inline-block, main a.inline-block.bg-gradient-to-r { display: flex; align-items: center; justify-content: center; text-align: center; min-height: 3.5rem; padding: .75rem 1.25rem; width: 100%; font-size: 1.0625rem; }
  main p.font-semibold.text-amber-700 { display: inline-block; background: #fff7ed; border: 1px solid #fed7aa; border-radius: 9999px; padding: .3rem .85rem; color: #9a3412; }
  main p.font-semibold.text-amber-700 span { display: inline; }

  /* Preisliste in FAQ („Was kostet …?“) */
  .pl-list { display: block; margin: .5rem 0 .25rem; }
  .pl { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: .1rem .75rem; padding: .6rem 0; border-bottom: 1px solid #e2e8f0; }
  .pl-l { font-weight: 600; color: #0f172a; min-width: 0; }
  .pl-p { white-space: nowrap; font-weight: 800; color: #b45309; margin-left: auto; }
  .pl-n { flex-basis: 100%; order: 3; font-size: .875rem; color: #475569; }
  .pl-v, .pl-sep { display: none; }
  .pl-rest { display: block; margin-top: .75rem; }

  /* FAQ-Akkordeon */
  main .faq-item { padding: 0; border-radius: 1rem; overflow: hidden; }
  .faq-item > summary.faq-q { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 3.5rem; padding: .85rem 1rem .85rem 1.1rem; font-weight: 700; line-height: 1.35; color: #0f172a; -webkit-tap-highlight-color: transparent; }
  .faq-item > summary.faq-q > span { min-width: 0; }
  .faq-q::after, .rm-sum::after, .lg-sum::after, .ft-sum::after {
    content: ""; flex: none; width: 1.75rem; height: 1.75rem; border-radius: 9999px; background-color: #fff7ed;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b45309' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E");
    background-position: center; background-repeat: no-repeat; background-size: 58%;
  }
  details[open] > .faq-q::after, details[open] > .rm-sum::after, details[open] > .lg-sum::after, details[open] > .ft-sum::after {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b45309' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M5 12h14'/%3E%3C/svg%3E");
  }
  .faq-item[open] { border-color: #fcd34d; }
  .faq-item .faq-a { margin: 0; padding: 0 1.1rem 1.1rem; color: #334155; }
  .faq-item .faq-a p + p { margin-top: .6rem; }
  .faq-item > summary.faq-q:focus-visible { outline-offset: -3px; }

  /* „Mehr lesen“ */
  .readmore { margin-top: .25rem; }
  .readmore > summary.rm-sum { display: flex; align-items: center; justify-content: space-between; gap: .75rem; min-height: 3rem; padding: .5rem 1rem; background: #fff; border: 2px solid #fcd34d; border-radius: 9999px; font-weight: 700; color: #92400e; }
  .readmore[open] > summary.rm-sum { margin-bottom: 1rem; }
  .readmore .rm-body { margin-top: 0; }

  /* Linkwände: Raster statt Pill-Wand; große Wände im Akkordeon */
  main .lg-wall { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; justify-content: stretch; }
  main .lg-wall > a { display: grid; grid-template-columns: minmax(0, 1fr); align-content: center; justify-items: start; min-height: 3rem; padding: .5rem .85rem; border-radius: .9rem; font-size: .9375rem; line-height: 1.3; text-align: left; margin: 0; hyphens: auto; overflow-wrap: break-word; }
  main .lg-wall > a span { font-size: .8125rem; line-height: 1.3; }
  main .lg-wall .lg-label { display: block; grid-column: 1 / -1; margin-top: .7rem; font-size: .8125rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: #92400e; }
  main .lg-wall .lg-label:first-child { margin-top: .1rem; }
  .lg-acc > summary.lg-sum { display: flex; align-items: center; justify-content: space-between; gap: .75rem; min-height: 3.25rem; padding: .6rem 1rem; background: #fff; border: 2px solid #fcd34d; border-radius: 1rem; font-weight: 700; color: #0f172a; margin-bottom: .25rem; }
  .lg-acc[open] > summary.lg-sum { margin-bottom: .75rem; }
  .lg-acc > .lg-wall { margin-top: .5rem; }

  /* Hero kompakt */
  header.bg-slate-900 { padding-top: 1.75rem; padding-bottom: 2.25rem; }
  header.bg-slate-900 h1 { font-size: clamp(1.65rem, 7vw, 2.5rem); line-height: 1.15; letter-spacing: -.01em; margin-bottom: .85rem; }
  header.bg-slate-900 h1 br { display: none; }
  header.bg-slate-900 p { font-size: 1.0625rem; line-height: 1.5; margin-bottom: 1.25rem; color: #e2e8f0; }
  header.bg-slate-900 .local-badge { margin-bottom: .75rem; }
  header.bg-slate-900 .flex-col > a { display: flex; align-items: center; justify-content: center; min-height: 3.5rem; padding: .75rem 1.25rem; font-size: 1.0625rem; }
  header.bg-slate-900 .flex-col > a + a { display: none; }
  header.bg-slate-900 .flex-col { gap: .75rem; }
  header.bg-slate-900 .flex-wrap.text-sm { margin-top: 1rem; font-size: .9375rem; color: #e2e8f0; }
  header.bg-slate-900 .flex-wrap.text-sm > *:nth-child(n+2) { display: none; }
  header.bg-slate-900 img { max-height: 11.5rem; width: 100%; object-fit: cover; }
  header.bg-slate-900 .grid { gap: 1.25rem; }

  /* Vorteils-Leiste unter dem Hero */
  .d-benefits { display: block; background: #0f172a; padding: 0 1rem 1.25rem; margin-top: -1px; }
  .d-benefits ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; list-style: none; margin: 0; padding: 0; max-width: 40rem; }
  .d-benefits li { display: flex; align-items: center; gap: .55rem; min-height: 3.25rem; padding: .5rem .7rem; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14); border-radius: .9rem; color: #f1f5f9; font-size: .875rem; font-weight: 600; line-height: 1.25; }
  .d-benefits li .icon { flex: none; width: 1.35rem; height: 1.35rem; color: #fbbf24; }
  .d-photo { display: block; margin: 1rem 1rem 0; border-radius: 1.25rem; overflow: hidden; aspect-ratio: 16 / 9; box-shadow: 0 10px 24px -12px rgba(15,23,42,.35); background: #e2e8f0; }
  .d-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }

  /* Breadcrumb */
  main nav[aria-label="Breadcrumb"] { font-size: .875rem; padding-top: 1rem; }

  /* Footer kompakt */
  footer[role="contentinfo"] .grid { gap: 0; margin-bottom: 1.5rem; }
  footer[role="contentinfo"] .grid > div:first-child { padding-bottom: 1.25rem; }
  footer[role="contentinfo"] .grid > div { padding-top: .25rem; }
  .ft-quick { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; padding-bottom: 1.25rem; }
  .ft-quick a { display: flex; align-items: center; justify-content: center; min-height: 3rem; border-radius: .9rem; background: #1e293b; color: #f1f5f9; font-weight: 700; font-size: .9375rem; text-decoration: none; }
  .ft-col { border-top: 1px solid #1e293b; }
  .ft-col > summary.ft-sum { display: flex; align-items: center; justify-content: space-between; min-height: 3.25rem; margin: 0; padding: .5rem 0; font-size: 1rem; }
  .ft-col > summary.ft-sum::after { background-color: #1e293b; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fbbf24' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E"); }
  .ft-col[open] > summary.ft-sum::after { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fbbf24' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M5 12h14'/%3E%3C/svg%3E"); }
  .ft-col ul { padding-bottom: .75rem; }
  footer[role="contentinfo"] ul a { min-height: 2.75rem; font-size: .9375rem; }
  footer[role="contentinfo"] .text-xs { font-size: .875rem; }
  footer[role="contentinfo"] .text-slate-500 { color: #94a3b8; }
  footer[role="contentinfo"] .text-slate-400 { color: #cbd5e1; }

  /* Sticky-CTA unten (ersetzt WhatsApp-Float) */
  .d-cta { display: grid; grid-template-columns: 1fr 1.1fr 1.15fr; gap: .4rem; position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;
    padding: .375rem .5rem calc(.375rem + env(safe-area-inset-bottom, 0px)); background: rgba(255,255,255,.98); border-top: 1px solid #e2e8f0; box-shadow: 0 -6px 18px rgba(15,23,42,.12); }
  .d-cta-btn { display: flex; align-items: center; justify-content: center; gap: .4rem; min-height: 2.75rem; padding: 0 .5rem; border-radius: .9rem; font-weight: 800; font-size: .9375rem; line-height: 1; text-decoration: none; color: #fff; -webkit-tap-highlight-color: transparent; }
  .d-cta-btn .icon { width: 1.15rem; height: 1.15rem; flex: none; }
  .d-cta-call { background: #0f172a; }
  .d-cta-wa { background: #0f7a55; }
  .d-cta-req { background: #fbbf24; color: #0f172a; }
  .d-cta-btn:focus-visible { outline: 3px solid #f59e0b; outline-offset: 2px; }
  html.mnav-open .d-cta { display: none; }
  html.mnav-open body { padding-bottom: 0; }
}

@media (max-width: 1023px) {
  /* Kontrast-Korrekturen (mobil/Tablet) */
  a.text-amber-700 { color: #92400e; }
  header a.px-4.py-2\.5, nav a.px-4.py-2\.5 { min-height: 2.75rem; display: inline-flex; align-items: center; justify-content: center; }
  .badge.bg-orange-500 { background-color: #c2410c; color: #fff; }
  .bg-white .text-amber-500, .bg-slate-50 .text-amber-500 { color: #b45309; }
}

@media (max-width: 359px) {
  .d-cta-btn span { font-size: .8125rem; }
  .d-cta-btn .icon { display: none; }
  main .lg-wall { grid-template-columns: 1fr; }
}

/* ---------- Tablet ---------- */
@media (min-width: 768px) and (max-width: 1023px) {
  header.bg-slate-900 h1 { font-size: 2.5rem; }
  .d-benefits ul { grid-template-columns: repeat(4, minmax(0, 1fr)); max-width: none; }
  .d-benefits { padding-left: 1.5rem; padding-right: 1.5rem; }
  .d-photo { margin-left: 1.5rem; margin-right: 1.5rem; aspect-ratio: 21 / 8; }
  .d-steps { grid-template-columns: 1fr 1fr; column-gap: 2rem; }
  .d-steps > .text-center::before { display: none; }
  main .lg-wall { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; transition: none !important; } }

/* Tap-Ziele ≥ 44 px (Breadcrumb, Karten-Links) */
@media (max-width: 1023px) {
  main nav[aria-label="Breadcrumb"] a { display: inline-flex; align-items: center; min-height: 2.75rem; }
  .region-card a.block { display: flex; align-items: center; min-height: 2.75rem; }
}

/* ===== Verdichtung (Runde 2) ===== */
@media (max-width: 1023px) {
  /* Messekalender kompakt: Datum | Status, Name, Stadt | Aussteller */
  .fair-table tr { grid-template-columns: minmax(0, 1fr) auto; row-gap: .1rem; padding: .8rem .95rem; }
  .fair-table td:nth-child(2) { margin-top: .15rem; font-size: 1.0625rem; line-height: 1.3; }
  .fair-table td:nth-child(2) > div { font-size: .875rem; line-height: 1.3; margin-top: 0; }
  .fair-table td:nth-child(3) { grid-column: 1; margin-top: .25rem; align-self: center; }
  .fair-table td:nth-child(4) { grid-column: 2; margin-top: .25rem; text-align: right; align-self: center; max-width: 11rem; font-size: .875rem; line-height: 1.25; }
  .fair-table td:nth-child(3)::before, .fair-table td:nth-child(4)::before { content: none; }
  .fair-table td:nth-child(3) a { min-height: 2.75rem; padding-right: .5rem; }
  .fair-table td:nth-child(4) span { font-size: .8125rem !important; display: block; }
  /* Besucher (Vorjahr): eigene Zeile unter Stadt | Aussteller */
  .fair-table td:nth-child(5) { grid-column: 1 / -1; margin-top: .2rem; text-align: left; font-size: .875rem; line-height: 1.25rem; color: #475569; }
  .fair-table td:nth-child(5) span { font-size: .8125rem !important; display: inline; }

  /* Icon-Karten schlanker */
  .d-iccard { grid-template-columns: 2.75rem minmax(0, 1fr); column-gap: .85rem; padding: 1rem !important; }
  .d-iccard > .text-4xl { width: 2.75rem; height: 2.75rem; border-radius: .85rem; }
  .d-iccard > .text-4xl svg { width: 1.6rem; height: 1.6rem; }
  .d-iccard h3 { font-size: 1.0625rem; margin-bottom: .2rem !important; }
  .d-iccard p { font-size: .9375rem; line-height: 1.5; margin-bottom: .35rem; }

  /* Aufzählungen in Leistungskarten als Chips */
  main ul.text-sm.space-y-2 { display: flex; flex-wrap: wrap; gap: .35rem .4rem; margin: .1rem 0 0; padding: 0; list-style: none; }
  main ul.text-sm.space-y-2 > li { margin: 0 !important; padding: .2rem .65rem; background: #f1f5f9; border-radius: 9999px; font-size: .875rem; line-height: 1.35; color: #334155; }
  main .bg-slate-50 ul.text-sm.space-y-2 > li { background: #fff; border: 1px solid #e2e8f0; }
  main .bg-slate-50 .flex.items-center.gap-3.mb-4 { margin-bottom: .6rem; }
  main .bg-slate-50 h3.text-2xl, main .bg-white h3.text-2xl { font-size: 1.25rem; }
  main .bg-slate-50 p.mb-4, main .bg-white p.mb-4 { margin-bottom: .6rem; }

  /* Abschnittsköpfe */
  main section .text-center p.text-lg, main section .text-center p.mt-3, main section .text-center p.mt-4 { font-size: 1rem; line-height: 1.55; margin-top: .6rem; }
  main section .text-center.mb-10, main section .text-center.mb-12 { margin-bottom: 1.25rem; }

  /* Preiskarte */
  #preise .price-gradient.text-4xl, #preise .text-4xl.font-black { font-size: 2.5rem; line-height: 1.1; }
  #preise .max-w-2xl.mx-auto.bg-slate-50 { text-align: left; }
  #preise .max-w-2xl .mb-2, #preise .max-w-2xl p.text-lg { text-align: center; }
  #preise a.inline-block { margin-top: 1.25rem; }
  #preise .mt-8 { margin-top: 1.25rem; }

  /* „Warum wir“-Block dunkel */
  main .bg-slate-900 .space-y-5 > * + * { margin-top: .85rem; }
  main .bg-slate-900 .space-y-5 { font-size: 1.0625rem; }
  main .bg-slate-900 .bg-white\/10 { padding: 1.1rem; }
  main .bg-slate-900 .bg-white\/10 .text-5xl { font-size: 2rem; margin-bottom: .4rem; line-height: 1; }
  main .bg-slate-900 .bg-white\/10 p.text-xl { font-size: 1.0625rem; }
  main .bg-slate-900 .md\:grid-cols-2 { gap: 1.5rem; }

  /* Footer kompakter */
  footer[role="contentinfo"] .grid > div:last-child ul { display: flex; flex-wrap: wrap; gap: 0 1.1rem; padding-bottom: 0; }
  footer[role="contentinfo"] .grid > div:last-child ul li { margin: 0 !important; }
  footer[role="contentinfo"] .grid > div:last-child p.text-white { margin-bottom: .1rem; margin-top: .9rem; }
  footer[role="contentinfo"] .grid > div:last-child p.text-white:first-child { margin-top: .9rem; }
  footer[role="contentinfo"] .border-t.pt-8 { padding-top: 1.25rem; gap: .5rem; }
  footer[role="contentinfo"] .border-t.pt-8 p a { display: inline-flex; align-items: center; min-height: 2.75rem; }
  footer[role="contentinfo"] .mb-12 { margin-bottom: 0; }
  footer[role="contentinfo"] .mt-6 { margin-top: .75rem; }

  /* Hero-Foto kürzer */
  .d-photo { aspect-ratio: 2 / 1; margin-top: .9rem; }
  .d-benefits { padding-bottom: 1rem; }
}

/* ===== Angebote-Übersicht: Karten kompakt ===== */
@media (max-width: 1023px) {
  main.max-w-screen-xl > .grid > .service-card > img { height: 5.75rem; }
  main.max-w-screen-xl > .grid > .service-card > .px-8 { padding: .85rem 1.1rem 1.1rem; }
  main.max-w-screen-xl > .grid > .service-card p.mb-4, main.max-w-screen-xl > .grid > .service-card p.mb-5, main.max-w-screen-xl > .grid > .service-card .mb-5 { margin-bottom: .6rem; }
  main.max-w-screen-xl > .grid > .service-card h2 { font-size: 1.25rem; }
  main.max-w-screen-xl > .grid > .service-card h2::after { content: none; }
  main.max-w-screen-xl > .grid > .service-card .price-gradient.text-4xl { font-size: 2.25rem; line-height: 1.1; }
  main.max-w-screen-xl > .grid > .service-card .flex.items-center.gap-x-2 { flex-wrap: wrap; row-gap: .25rem; margin-bottom: .4rem; }
  main.max-w-screen-xl > .grid > .service-card a.block { display: flex; align-items: center; justify-content: center; min-height: 3rem; padding: .6rem 1rem; }
  main.max-w-screen-xl > .grid > .service-card .space-y-3 > * + * { margin-top: 0; }
  main.max-w-screen-xl > .grid > .service-card .space-y-3 > .flex { padding: .45rem 0; border-bottom: 1px solid #eef2f7; }
  main.max-w-screen-xl > .grid > .service-card .space-y-3 > .flex > span:last-child { white-space: nowrap; color: #b45309; }
  main.max-w-screen-xl > .grid { gap: 1rem; }
}

/* Messekalender mobil: erste 10 Karten, Rest per <details class="fair-more"> (rein CSS, :has) */
@media (max-width: 1023px) {
  .fair-more { display: none; }
  @supports selector(:has(a)) {
    .fair-more { display: block; margin: .9rem 0 0; }
    .fair-table tr.fair-x { display: none; }
    .fair-wrap:has(+ .fair-more[open]) .fair-table tr.fair-x { display: grid; }
    .fm-sum { display: flex; align-items: center; justify-content: center; min-height: 3rem; padding: .5rem 1rem; border-radius: .9rem; background: #0f172a; color: #fff; font-weight: 800; cursor: pointer; list-style: none; text-align: center; }
    .fm-sum::-webkit-details-marker { display: none; }
    .fm-sum:focus-visible { outline: 3px solid #f59e0b; outline-offset: 2px; }
    .fm-o { display: none; }
    .fair-more[open] .fm-o { display: inline; }
    .fair-more[open] .fm-c { display: none; }
  }
}

/* Desktop-Navigation: nie mitten im Wort umbrechen, bei knapper Breite Platz schaffen */
@media (min-width: 1024px) {
  nav[aria-label="Hauptnavigation"] a, nav[aria-label="Hauptnavigation"] button { white-space: nowrap; overflow-wrap: normal; word-break: normal; hyphens: none; -webkit-hyphens: none; }
  nav[aria-label="Hauptnavigation"] .lg\:flex.gap-x-5 { column-gap: 1.1rem; flex-wrap: nowrap; }
}
@media (min-width: 1024px) and (max-width: 1365px) {
  nav[aria-label="Hauptnavigation"] a[href*="wa.me"] span { display: none !important; }
}

/* ===== Fehlerprüfung 2026-10-03: Kontrast (WCAG AA) ===== */
a.bg-\[\#25D366\] { background-color: #0e8070 !important; }
a.bg-\[\#25D366\]:hover { background-color: #0a6556 !important; }
.bg-slate-100 .text-slate-500, .bg-slate-100.text-slate-500 { color: #475569; }
.badge.bg-orange-500 { background-color: #c2410c; }
footer .text-slate-500 { color: #94a3b8; }
.bg-amber-100.text-amber-600 { color: #b45309; }
.text-3xl.font-black.text-amber-500 { color: #b45309; }
/* 2026-10-03: Tap-Ziel „Alle Projekte ansehen →“ ab 768 px mind. 44 px hoch */
@media (min-width: 768px) {
  #projekte > .flex.justify-between > a.md\:block { display: inline-flex; align-items: center; min-height: 2.75rem; }
}

/* ===== 2026-10-04 – Anfrage-Weg: einheitlicher CTA-Block, Kurzformular, Startseite ===== */
/* CTA-Block (oben unter dem Hero, unten vor dem Footer). Erscheint auf jeder Seite; mobil blendet design.js die Sticky-Leiste aus, solange ein Block sichtbar ist. */
.cta-block { background: #fffbeb; border-top: 1px solid #fde68a; border-bottom: 1px solid #fde68a; color: #0f172a; }
.cta-inner { max-width: 1280px; margin: 0 auto; padding: 1.125rem 1.5rem; display: flex; flex-direction: column; align-items: center; gap: .875rem; text-align: center; }
.cta-lead { margin: 0; font-size: 1rem; line-height: 1.45; color: #334155; max-width: 36rem; }
.cta-lead strong { color: #0f172a; font-weight: 800; }
.cta-actions { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; width: 100%; max-width: 30rem; }
.cta-btn { display: flex; align-items: center; justify-content: center; gap: .5rem; min-height: 3rem; padding: .25rem .75rem; border-radius: 1rem; font-weight: 800; font-size: 1rem; line-height: 1.2; text-decoration: none; text-align: center; color: #fff; -webkit-tap-highlight-color: transparent; }
.cta-btn .icon { width: 1.15rem; height: 1.15rem; flex: none; }
.cta-btn-req { grid-column: 1 / -1; background: #fbbf24; color: #0f172a; min-height: 3.25rem; font-size: 1.0625rem; }
.cta-btn-req:hover { background: #f59e0b; }
.cta-btn-wa { background: #0f7a55; }
.cta-btn-wa:hover { background: #0b6847; }
.cta-btn-call { background: #0f172a; }
.cta-btn-call:hover { background: #1e293b; }
.cta-btn:focus-visible { outline: 3px solid #f59e0b; outline-offset: 2px; }
.cta-meta { margin: 0; font-size: .9375rem; line-height: 1.6; color: #475569; }
.cta-meta a { color: #92400e; font-weight: 700; text-decoration: none; white-space: nowrap; }
.cta-meta a:hover { text-decoration: underline; }
.cta-block.cta-hero { background: transparent; border: 0; }
.cta-block.cta-hero .cta-inner { padding: 0; align-items: flex-start; text-align: left; }
.cta-block.cta-hero .cta-actions { max-width: 30rem; }
@media (min-width: 768px) {
  .cta-inner { flex-direction: row; justify-content: space-between; gap: 1.5rem; text-align: left; padding: 1rem 1.5rem; }
  .cta-actions { display: flex; width: auto; max-width: none; gap: .75rem; flex: none; }
  .cta-btn { min-width: 9.5rem; padding: .25rem 1.25rem; }
  .cta-btn-req { grid-column: auto; min-height: 3rem; font-size: 1rem; min-width: 12rem; }
  .cta-bottom .cta-inner { flex-wrap: wrap; }
  .cta-bottom .cta-meta { flex-basis: 100%; text-align: center; }
}
@media (max-width: 1023px) {
  html.cta-inview .d-cta { transform: translateY(110%); transition: transform .2s ease; pointer-events: none; }
  .d-cta { transition: transform .2s ease; }
}
@media (max-width: 359px) { .cta-btn { font-size: .9375rem; padding: .25rem .5rem; } .cta-btn .icon { display: none; } }

/* Kurzformular */
form[data-form-v2] .form-hint { font-size: .8125rem; line-height: 1.4; color: #64748b; margin: -.25rem 0 0; }
form[data-form-v2] select, form[data-form-v2] input, form[data-form-v2] textarea { max-width: 100%; }
form[data-form-v2] input, form[data-form-v2] select, form[data-form-v2] textarea { font-size: 1rem; }
form[data-form-v2] button[type="submit"] { min-height: 3.5rem; }

/* Startseite v2 */
.idx-hero { background: #0f172a; color: #fff; padding: 2.5rem 0 2rem; }
.idx-hero-in { max-width: 1280px; margin: 0 auto; padding: 0 1.5rem; display: grid; gap: 1.75rem; align-items: center; }
.idx-kicker { display: inline-block; background: #fef3c7; color: #92400e; font-size: .75rem; font-weight: 700; padding: .2rem .625rem; border-radius: 9999px; margin-bottom: 1rem; letter-spacing: .02em; }
.idx-hero h1 { font-weight: 900; font-size: 2rem; line-height: 1.12; letter-spacing: -.02em; margin: 0 0 .875rem; }
.idx-lead { color: #cbd5e1; font-size: 1.0625rem; line-height: 1.55; margin: 0 0 1.125rem; max-width: 36rem; }
.idx-prices { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1.25rem; padding: 0; list-style: none; }
.idx-prices li { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.18); border-radius: 9999px; padding: .3rem .75rem; font-size: .875rem; color: #f1f5f9; white-space: nowrap; }
.idx-prices strong { color: #fbbf24; font-weight: 800; }
.idx-note { color: #94a3b8; font-size: .8125rem; margin: .75rem 0 0; }
.idx-hero img { width: 100%; height: auto; border-radius: 1.5rem; display: block; }
.idx-sec { max-width: 1280px; margin: 0 auto; padding: 2.75rem 1.5rem; }
.idx-sec.idx-alt { max-width: none; background: #fff; border-top: 1px solid #e2e8f0; border-bottom: 1px solid #e2e8f0; }
.idx-sec.idx-alt > .idx-wrap { max-width: 1280px; margin: 0 auto; }
.idx-h2 { font-weight: 900; font-size: 1.5rem; line-height: 1.2; letter-spacing: -.01em; margin: 0 0 .5rem; text-align: center; }
.idx-sub { color: #475569; text-align: center; margin: 0 auto 1.75rem; max-width: 40rem; font-size: 1rem; }
.idx-cards { display: grid; gap: .875rem; grid-template-columns: 1fr; }
.idx-card { display: block; background: #fff; border: 1px solid #e2e8f0; border-radius: 1.25rem; padding: 1.125rem 1.25rem; text-decoration: none; color: #0f172a; transition: border-color .15s, box-shadow .15s; }
.idx-card:hover { border-color: #fbbf24; box-shadow: 0 6px 16px rgba(15,23,42,.08); }
.idx-card h3 { font-weight: 800; font-size: 1.0625rem; margin: 0 0 .25rem; line-height: 1.3; }
.idx-card p { margin: 0; color: #475569; font-size: .9375rem; line-height: 1.5; }
.idx-card .idx-price { display: block; margin-top: .5rem; font-weight: 900; font-size: 1.125rem; color: #b45309; }
.idx-card .idx-price small { font-weight: 600; color: #64748b; font-size: .8125rem; }
.idx-more { text-align: center; margin: 1.5rem 0 0; font-size: .9375rem; color: #475569; line-height: 1.9; }
.idx-more a { color: #92400e; font-weight: 700; text-decoration: none; }
.idx-more a:hover { text-decoration: underline; }
.idx-steps { display: grid; gap: .875rem; grid-template-columns: 1fr 1fr; list-style: none; margin: 0; padding: 0; counter-reset: st; }
.idx-steps li { background: #fff; border: 1px solid #e2e8f0; border-radius: 1.25rem; padding: 1rem; counter-increment: st; }
.idx-steps li::before { content: counter(st); display: flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; border-radius: .75rem; background: #fef3c7; color: #b45309; font-weight: 900; margin-bottom: .5rem; }
.idx-steps strong { display: block; font-size: 1rem; margin-bottom: .125rem; }
.idx-steps span { font-size: .875rem; color: #475569; line-height: 1.45; display: block; }
.idx-facts { display: grid; grid-template-columns: 1fr; gap: 0; margin: 0; background: #fff; border: 1px solid #e2e8f0; border-radius: 1.25rem; overflow: hidden; max-width: 52rem; margin-left: auto; margin-right: auto; }
.idx-facts dt { font-weight: 800; font-size: .8125rem; text-transform: uppercase; letter-spacing: .04em; color: #92400e; padding: .75rem 1.125rem 0; }
.idx-facts dd { margin: 0; padding: .125rem 1.125rem .75rem; color: #1e293b; font-size: .9375rem; line-height: 1.5; border-bottom: 1px solid #f1f5f9; }
.idx-facts dd:last-child { border-bottom: 0; }
.idx-facts a { color: #92400e; font-weight: 700; }
@media (min-width: 640px) {
  .idx-cards { grid-template-columns: 1fr 1fr; }
  .idx-hero h1 { font-size: 2.5rem; }
}
@media (min-width: 768px) {
  .idx-steps { grid-template-columns: repeat(4, 1fr); }
  .idx-facts { grid-template-columns: 11rem 1fr; }
  .idx-facts dt { padding: .75rem 1.125rem; border-bottom: 1px solid #f1f5f9; background: #fffbeb; }
  .idx-facts dd { padding: .75rem 1.125rem; }
  .idx-facts dt:last-of-type { border-bottom: 0; }
}
@media (min-width: 1024px) {
  .idx-hero { padding: 4rem 0 3.5rem; }
  .idx-hero-in { grid-template-columns: 1.05fr .95fr; gap: 3rem; }
  .idx-hero h1 { font-size: 3.5rem; line-height: 1.05; }
  .idx-lead { font-size: 1.25rem; }
  .idx-cards { grid-template-columns: repeat(3, 1fr); }
  .idx-h2 { font-size: 2.25rem; }
  .idx-sec { padding: 4rem 1.5rem; }
}
.idx-faq details { background: #fff; border: 1px solid #e2e8f0; border-radius: 1.25rem; padding: 1rem 1.25rem; margin-bottom: .75rem; }
.idx-faq summary { font-weight: 700; cursor: pointer; }
.idx-faq details > div { margin-top: .5rem; color: #475569; line-height: 1.55; }
.idx-wrap { max-width: 52rem; margin: 0 auto; }
.idx-wrap.idx-wide { max-width: 1280px; }
.priv-ga p + p { margin-top: .75rem; }
.cta-block.cta-hero .cta-inner { justify-content: flex-start; }
.idx-cards.idx-c2 { grid-template-columns: 1fr; }
@media (min-width: 640px) { .idx-cards.idx-c2 { grid-template-columns: 1fr 1fr; } }
.idx-sec[data-core-links] { padding-top: 2rem; padding-bottom: 2rem; }
.cta-block.cta-hero .cta-btn-call { background: #fff; color: #0f172a; }
.cta-block.cta-hero .cta-btn-call:hover { background: #e2e8f0; }

/* Überschriften: Wörter bleiben ganz (keine Silbentrennung); sehr lange Wörter bekommen auf engen Breiten eine etwas kleinere Schrift */
@media (min-width: 768px) and (max-width: 1023px) {
  main h2.md\:text-4xl { font-size: 1.875rem !important; line-height: 1.2 !important; }
  main h3.text-lg { font-size: .9375rem !important; }
}
@media (max-width: 380px) {
  h1 { font-size: 1.625rem !important; line-height: 1.2 !important; }
  h2 { font-size: 1.25rem !important; line-height: 1.25 !important; }
  h3 { font-size: 1.0625rem !important; }
}
@media (min-width: 768px) and (max-width: 1023px) {
  main h3.text-lg { font-size: .875rem !important; }
  main .p-6:has(> h3.text-lg) { padding-left: 1rem; padding-right: 1rem; }
}

/* ---- B2B-Hinweise: Kurzzeile unter Preisbereichen, Hinweisbalken, Formular-Checkbox (2026-10-07) ---- */
.b2b-line { margin: .9rem 0 0; font-size: .8125rem; line-height: 1.45; font-weight: 600; color: #475569; }
.b2b-line-lead { margin-top: .25rem; }
.b2b-line-in { display: block; font-size: max(.8125rem, 1em); font-weight: 600; line-height: 1.45; }
header.bg-slate-900 .b2b-line, .bg-slate-900 .b2b-line, .bg-slate-950 .b2b-line, .xs-dark .b2b-line { color: #cbd5e1; }
.xs-bar .xs-b2b { display: block; font-size: .8125rem; font-weight: 600; line-height: 1.35; margin-top: .1rem; }
.xs-bar .xs-b2b-sep { display: none; }
@media (min-width: 1280px) { .xs-bar .xs-b2b { display: inline; margin-top: 0; } .xs-bar .xs-b2b-sep { display: inline; } }
.b2b-check { display: flex; align-items: flex-start; gap: .65rem; font-size: .875rem; line-height: 1.45; color: #334155; cursor: pointer; text-align: left; }
.b2b-check input { flex: 0 0 auto; width: 1.15rem; height: 1.15rem; margin: .12rem 0 0; accent-color: #b45309; cursor: pointer; }
header.bg-slate-900 p.b2b-line { font-size: .8125rem; line-height: 1.45; margin: .75rem 0 0; color: #cbd5e1; }
.b2b-line, .b2b-line-in, .xs-bar .xs-b2b { text-wrap: balance; }
/* Preisbox-Abschnitte ohne Innencontainer: auf dem Handy nicht bis an den Rand */
.b2b-pad { padding-left: 1rem; padding-right: 1rem; }
@media (min-width: 768px) { .b2b-pad { padding-left: 1.5rem; padding-right: 1.5rem; } }
@media (max-width: 767px) { section#preise:not(:has(> .max-w-screen-xl)) { padding-left: 1rem; padding-right: 1rem; } section#preise:not(:has(> .max-w-screen-xl)) > .b2b-pad { padding-left: 0; padding-right: 0; } }

/* Sehr schmale Displays (< 360 px): Schritte einspaltig, sonst horizontaler Überlauf (2026-10-07) */
@media (max-width: 359.98px) { .idx-steps { grid-template-columns: 1fr; } }
