/* ================================================================
   anwaltarbeitsrecht.net — Main Stylesheet v2
   UX-First, Card-Based Layout, Warmes Trust-Color-System
   ================================================================ */

:root {
  --awa-primary:        #2b5f8a;
  --awa-primary-dark:   #1d4666;
  --awa-primary-light:  #e8f1f8;
  --awa-primary-tint:   #f5f9fc;
  --awa-cta:            #f0a830;
  --awa-cta-hover:      #d99320;
  --awa-cta-text:       #1a1a1a;
  --awa-success:        #0d9488;
  --awa-success-light:  #e6f7f4;
  --awa-warning:        #d97706;
  --awa-warning-light:  #fef3e2;
  --awa-text:           #1f2937;
  --awa-text-muted:     #6b7280;
  --awa-text-light:     #9ca3af;
  --awa-border:         #e5e7eb;
  --awa-border-strong:  #d1d5db;
  --awa-surface:        #ffffff;
  --awa-surface-soft:   #fafbfc;
  --awa-font-body:      -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --awa-radius-sm:      6px;
  --awa-radius:         10px;
  --awa-radius-lg:      16px;
  --awa-shadow-sm:      0 1px 2px rgba(0, 0, 0, .04), 0 1px 1px rgba(0, 0, 0, .03);
  --awa-shadow:         0 4px 12px rgba(15, 30, 50, .06), 0 1px 3px rgba(15, 30, 50, .04);
  --awa-shadow-lg:      0 14px 40px rgba(15, 30, 50, .08), 0 4px 12px rgba(15, 30, 50, .04);
}

body {
  font-family: var(--awa-font-body);
  color: var(--awa-text);
  line-height: 1.65;
}

/* Globale SVG-Sicherheit: kein SVG bläht sich über die Container-Größe auf */
svg { max-width: 100%; height: auto; }
.awa-card svg, .awa-tile svg, .awa-step svg, .awa-infobox svg,
.awa-trust-item svg, .awa-callout svg, .awa-tldr svg,
.awa-section-head svg, .awa-hero svg, .awa-final-cta svg,
.awa-inline-cta svg, .awa-accordion svg {
  width: 1em; height: 1em; /* default fallback */
}

/* === Hero === */
.awa-hero {
  background: linear-gradient(135deg, var(--awa-primary) 0%, var(--awa-primary-dark) 100%);
  color: #fff;
  padding: 3.5rem 1.5rem 3rem;
  border-radius: var(--awa-radius-lg);
  margin: 0 0 2rem;
  position: relative;
  overflow: hidden;
}
.awa-hero::before {
  content: "";
  position: absolute; inset: 0;
  background-image:
    radial-gradient(circle at 85% 20%, rgba(255,255,255,.08) 0, transparent 40%),
    radial-gradient(circle at 15% 80%, rgba(255,255,255,.05) 0, transparent 50%);
  pointer-events: none;
}
.awa-hero > * { position: relative; z-index: 1; }
.awa-hero__eyebrow {
  display: inline-block;
  background: rgba(255,255,255,.12);
  color: #fff;
  font-size: .8125rem;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  padding: .375rem .875rem;
  border-radius: 999px;
  margin: 0 0 1rem;
}
.awa-hero__title {
  color: #fff; font-size: 2rem; font-weight: 700;
  line-height: 1.2; margin: 0 0 .75rem; letter-spacing: -.01em;
}
.awa-hero__subhead { color: #ffd690; font-size: 1.25rem; font-weight: 600; margin: 0 0 .75rem; }
.awa-hero__subtext { color: rgba(255,255,255,.92); font-size: 1.0625rem; line-height: 1.55; margin: 0 0 1.5rem; max-width: 36em; }
.awa-hero__cta {
  display: inline-block; background: var(--awa-cta); color: var(--awa-cta-text);
  font-weight: 700; font-size: 1.0625rem; padding: 1rem 1.75rem;
  border-radius: var(--awa-radius); text-decoration: none;
  transition: all .15s ease; box-shadow: 0 4px 14px rgba(240,168,48,.35);
}
.awa-hero__cta:hover { background: var(--awa-cta-hover); transform: translateY(-1px); box-shadow: 0 6px 20px rgba(240,168,48,.45); color: var(--awa-cta-text); }
.awa-hero__trust { display: flex; flex-wrap: wrap; gap: 1.25rem; margin: 1.5rem 0 0; font-size: .9375rem; color: rgba(255,255,255,.85); }
.awa-hero__trust-item { display: flex; align-items: center; gap: .375rem; }
.awa-hero__trust-item svg { width: 18px; height: 18px; color: #ffd690; flex-shrink: 0; }
@media (min-width: 768px) {
  .awa-hero { padding: 4.5rem 3rem 4rem; }
  .awa-hero__title { font-size: 2.75rem; }
  .awa-hero__subhead { font-size: 1.5rem; }
}

/* === Trust-Bar === */
.awa-trust-bar {
  display: grid; grid-template-columns: 1fr; gap: 1rem;
  background: var(--awa-surface); border: 1px solid var(--awa-border);
  border-radius: var(--awa-radius); padding: 1.5rem; margin: 0 0 3rem;
  box-shadow: var(--awa-shadow-sm);
}
.awa-trust-item { display: flex; align-items: flex-start; gap: .875rem; }
.awa-trust-item__icon {
  flex-shrink: 0; width: 40px; height: 40px; border-radius: 50%;
  background: var(--awa-success-light); color: var(--awa-success);
  display: flex; align-items: center; justify-content: center;
}
.awa-trust-item__icon svg { width: 20px; height: 20px; }
.awa-trust-item__label { font-weight: 700; color: var(--awa-text); font-size: 1.0625rem; margin: 0 0 .125rem; }
.awa-trust-item__sub { color: var(--awa-text-muted); font-size: .875rem; line-height: 1.4; margin: 0; }
@media (min-width: 640px) {
  .awa-trust-bar { grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
}

/* === Section Head === */
.awa-section-head { max-width: 42em; margin: 5rem auto 2.5rem; text-align: center; }
.awa-section-head:first-child { margin-top: 0; }
.awa-section-head__eyebrow {
  display: inline-block; font-size: .8125rem; font-weight: 700;
  color: var(--awa-primary); text-transform: uppercase;
  letter-spacing: .08em; margin: 0 0 .5rem;
}
.awa-section-head h2 {
  font-size: 1.75rem; font-weight: 700; color: var(--awa-text);
  margin: 0 0 .75rem; letter-spacing: -.01em; line-height: 1.2;
}
.awa-section-head p { color: var(--awa-text-muted); font-size: 1.0625rem; margin: 0; line-height: 1.55; }
@media (min-width: 768px) {
  .awa-section-head { margin-top: 6rem; }
  .awa-section-head h2 { font-size: 2.25rem; }
}

/* === Grid === */
.awa-grid { display: grid; grid-template-columns: 1fr; gap: 1.75rem; margin: 0 0 2rem; }
@media (min-width: 640px) {
  .awa-grid--2 { grid-template-columns: repeat(2, 1fr); column-gap: 2rem; row-gap: 3.5rem; }
}
@media (min-width: 900px) {
  .awa-grid--3 { grid-template-columns: repeat(3, 1fr); column-gap: 1.75rem; row-gap: 3.5rem; }
  .awa-grid--4 { grid-template-columns: repeat(4, 1fr); column-gap: 1.5rem; row-gap: 3rem; }
}

/* === Card === */
.awa-card {
  background: var(--awa-surface);
  border: 1px solid var(--awa-border-strong);
  border-radius: var(--awa-radius);
  padding: 2rem 1.75rem 2rem;
  transition: all .2s ease;
  display: flex; flex-direction: column;
  box-shadow: 0 1px 2px rgba(15, 30, 50, .04);
}
.awa-card:hover {
  border-color: var(--awa-primary);
  box-shadow: var(--awa-shadow-lg);
  transform: translateY(-3px);
}
.awa-card__icon {
  width: 52px; height: 52px;
  border-radius: var(--awa-radius-sm);
  background: var(--awa-primary);
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  margin: 0 0 1.25rem;
  flex-shrink: 0;
  box-shadow: 0 2px 6px rgba(43, 95, 138, .25);
}
.awa-card__icon svg { width: 26px; height: 26px; stroke-width: 2.25; }
.awa-card__title {
  font-size: 1.1875rem;
  font-weight: 700;
  color: var(--awa-text);
  margin: 0 0 .625rem;
  line-height: 1.3;
  letter-spacing: -.005em;
}
.awa-card__text {
  color: var(--awa-text-muted);
  font-size: .9375rem;
  line-height: 1.6;
  margin: 0 0 1.5rem;
  flex-grow: 1;
}
.awa-card__link {
  color: var(--awa-primary);
  font-weight: 600;
  text-decoration: none;
  font-size: .9375rem;
  display: inline-flex;
  align-items: center;
  gap: .375rem;
  align-self: flex-start;
  margin-top: auto;
  padding-top: .25rem;
  white-space: nowrap;
}
.awa-card__link svg { width: 16px; height: 16px; flex-shrink: 0; }
.awa-card__link:hover { gap: .625rem; color: var(--awa-primary-dark); }

/* === Step === */
.awa-step {
  position: relative; padding: 2rem 1.5rem 1.5rem;
  background: var(--awa-surface); border: 1px solid var(--awa-border);
  border-radius: var(--awa-radius);
}
.awa-step__num {
  position: absolute; top: -16px; left: 1.5rem;
  width: 36px; height: 36px;
  min-width: 36px; min-height: 36px;
  background: var(--awa-primary); color: #fff;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 1rem;
  box-shadow: 0 2px 8px rgba(43,95,138,.35);
  /* Overflow-Schutz wenn länger Text drinsteht: */
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  padding: 0 .5rem;
  box-sizing: border-box;
}
.awa-step__title { font-size: 1.0625rem; font-weight: 700; margin: .5rem 0 .5rem; color: var(--awa-text); line-height: 1.3; }
.awa-step__text { font-size: .9375rem; color: var(--awa-text-muted); margin: 0; line-height: 1.55; }

/* === Infobox (Lokal-Block 2-col) === */
.awa-infobox {
  background: var(--awa-surface); border: 1px solid var(--awa-border);
  border-radius: var(--awa-radius); padding: 1.5rem;
  display: flex; gap: 1rem; align-items: flex-start;
}
.awa-infobox__icon {
  flex-shrink: 0; width: 44px; height: 44px;
  border-radius: var(--awa-radius-sm); background: var(--awa-primary-light);
  color: var(--awa-primary); display: flex; align-items: center; justify-content: center;
}
.awa-infobox__icon svg { width: 22px; height: 22px; }
.awa-infobox__title { font-size: 1rem; font-weight: 700; color: var(--awa-text); margin: 0 0 .75rem; }
.awa-infobox dl { margin: 0; display: grid; grid-template-columns: auto 1fr; gap: .375rem 1rem; font-size: .9375rem; }
.awa-infobox dt { font-weight: 600; color: var(--awa-text); }
.awa-infobox dd { margin: 0; color: var(--awa-text-muted); }

/* === Callout === */
.awa-callout {
  display: flex; gap: .875rem; padding: 1.125rem 1.25rem;
  border-radius: var(--awa-radius); margin: 1.5rem 0;
  background: var(--awa-warning-light); border-left: 4px solid var(--awa-warning);
}
.awa-callout__icon { flex-shrink: 0; color: var(--awa-warning); }
.awa-callout__icon svg { width: 22px; height: 22px; }
.awa-callout__body { font-size: .9375rem; line-height: 1.55; }
.awa-callout__title { font-weight: 700; color: var(--awa-text); margin: 0 0 .25rem; }
.awa-callout--info { background: var(--awa-primary-light); border-left-color: var(--awa-primary); }
.awa-callout--info .awa-callout__icon { color: var(--awa-primary); }

/* === TL;DR Box === */
.awa-tldr {
  background: var(--awa-success-light); border: 1px solid var(--awa-success);
  border-radius: var(--awa-radius); padding: 1.5rem; margin: 0 0 2rem;
}
.awa-tldr__title { display: flex; align-items: center; gap: .5rem; font-size: 1.0625rem; font-weight: 700; color: var(--awa-success); margin: 0 0 .75rem; }
.awa-tldr__title svg { width: 22px; height: 22px; flex-shrink: 0; }
.awa-tldr ul { margin: 0; padding: 0; list-style: none; }
.awa-tldr li { padding: .375rem 0 .375rem 1.75rem; position: relative; font-size: .9375rem; line-height: 1.5; }
.awa-tldr li::before {
  content: ""; position: absolute; left: 0; top: .625rem; width: 18px; height: 18px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230d9488' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
  background-size: contain; background-repeat: no-repeat;
}

/* === Accordion === */
.awa-accordion {
  background: var(--awa-surface); border: 1px solid var(--awa-border);
  border-radius: var(--awa-radius); margin: 0 0 .75rem; overflow: hidden;
}
.awa-accordion:hover { border-color: var(--awa-border-strong); }
.awa-accordion[open] { border-color: var(--awa-primary); box-shadow: var(--awa-shadow-sm); }
.awa-accordion summary {
  padding: 1.125rem 1.5rem; font-weight: 600; font-size: 1rem;
  color: var(--awa-text); cursor: pointer; list-style: none;
  display: flex; justify-content: space-between; align-items: center; gap: 1rem;
}
.awa-accordion summary::-webkit-details-marker { display: none; }
.awa-accordion summary::after {
  content: "+"; font-size: 1.5rem; color: var(--awa-primary);
  font-weight: 300; line-height: 1; flex-shrink: 0;
}
.awa-accordion[open] summary::after { content: "−"; }
.awa-accordion__body {
  padding: 1.25rem 1.5rem; color: var(--awa-text); font-size: .9375rem;
  line-height: 1.65; border-top: 1px solid var(--awa-border);
}
.awa-accordion__body p { margin: 0 0 .75rem; }
.awa-accordion__body p:last-child { margin-bottom: 0; }
.awa-accordion__link {
  display: inline-flex; align-items: center; gap: .25rem;
  color: var(--awa-primary); font-weight: 600; text-decoration: none;
  margin-top: .5rem; font-size: .9375rem;
}
.awa-accordion__link:hover { color: var(--awa-primary-dark); text-decoration: underline; }

/* === Inline CTA === */
.awa-inline-cta {
  background: var(--awa-primary-light);
  color: var(--awa-primary-dark);
  border: 1px solid #d4e4ef;
  padding: 1.5rem 1.75rem;
  border-radius: var(--awa-radius);
  margin: 4rem 0 3rem;
  display: flex;
  flex-direction: column;
  gap: .75rem;
  align-items: center;
  text-align: center;
}
.awa-inline-cta__title { color: var(--awa-primary-dark); font-size: 1.125rem; font-weight: 700; margin: 0; }
.awa-inline-cta__text { color: var(--awa-text); font-size: .9375rem; margin: 0; line-height: 1.5; max-width: 42em; }
.awa-inline-cta__btn {
  display: inline-block;
  background: var(--awa-cta);
  color: var(--awa-cta-text);
  font-weight: 700;
  font-size: .9375rem;
  padding: .75rem 1.5rem;
  border-radius: var(--awa-radius);
  text-decoration: none;
  transition: all .15s ease;
  box-shadow: 0 2px 8px rgba(240,168,48,.25);
  margin-top: .25rem;
}
.awa-inline-cta__btn:hover { background: var(--awa-cta-hover); color: var(--awa-cta-text); transform: translateY(-1px); }
@media (min-width: 640px) {
  .awa-inline-cta {
    flex-direction: row;
    text-align: left;
    justify-content: space-between;
    gap: 1.5rem;
    padding: 1.5rem 2rem;
  }
  .awa-inline-cta__copy { flex: 1; }
  .awa-inline-cta__btn { margin-top: 0; flex-shrink: 0; }
}

/* === Final CTA === */
.awa-final-cta {
  background: linear-gradient(135deg, var(--awa-primary-dark) 0%, #0d1b2e 100%);
  color: #fff; padding: 3rem 1.5rem; border-radius: var(--awa-radius-lg);
  text-align: center; margin: 3rem 0 0;
}
.awa-final-cta__title { color: #fff; font-size: 1.625rem; font-weight: 700; margin: 0 0 .75rem; }
.awa-final-cta__text { color: rgba(255,255,255,.9); font-size: 1.0625rem; margin: 0 auto 1.5rem; max-width: 36em; line-height: 1.55; }
.awa-final-cta__btn {
  display: inline-block; background: var(--awa-cta); color: var(--awa-cta-text);
  font-weight: 700; font-size: 1.0625rem; padding: 1rem 2rem;
  border-radius: var(--awa-radius); text-decoration: none;
  transition: all .15s ease; box-shadow: 0 4px 14px rgba(240,168,48,.35);
}
.awa-final-cta__btn:hover { background: var(--awa-cta-hover); color: var(--awa-cta-text); transform: translateY(-1px); }
.awa-final-cta__trust { display: flex; justify-content: center; flex-wrap: wrap; gap: 1.25rem; margin: 1.5rem 0 0; font-size: .875rem; color: rgba(255,255,255,.8); }
@media (min-width: 768px) {
  .awa-final-cta { padding: 4rem 2rem; }
  .awa-final-cta__title { font-size: 2rem; }
}

/* === Tiles (Service-Grid Homepage) === */
.awa-tile {
  background: var(--awa-surface); border: 1px solid var(--awa-border);
  border-radius: var(--awa-radius); padding: 1.5rem 1.25rem;
  text-decoration: none; color: var(--awa-text);
  display: flex; flex-direction: column; align-items: flex-start;
  transition: all .2s ease; height: 100%;
}
.awa-tile:hover { border-color: var(--awa-primary); box-shadow: var(--awa-shadow); transform: translateY(-2px); color: var(--awa-text); }
.awa-tile__icon {
  width: 40px; height: 40px; border-radius: var(--awa-radius-sm);
  background: var(--awa-primary-light); color: var(--awa-primary);
  display: flex; align-items: center; justify-content: center; margin: 0 0 .875rem;
}
.awa-tile__icon svg { width: 22px; height: 22px; }
.awa-tile__title { font-size: 1rem; font-weight: 700; margin: 0 0 .25rem; line-height: 1.3; }
.awa-tile__sub { font-size: .875rem; color: var(--awa-text-muted); margin: 0; }

/* === City Tile === */
.awa-city {
  background: var(--awa-surface); border: 1px solid var(--awa-border);
  border-radius: var(--awa-radius); padding: 1rem 1.25rem;
  text-decoration: none; color: var(--awa-text);
  display: flex; flex-direction: column; transition: all .2s ease;
}
.awa-city:hover { border-color: var(--awa-primary); box-shadow: var(--awa-shadow); transform: translateY(-1px); color: var(--awa-text); }
.awa-city__name { font-weight: 700; font-size: 1.0625rem; color: var(--awa-text); line-height: 1.2; }
.awa-city__state { font-size: .8125rem; color: var(--awa-text-muted); margin: .125rem 0 0; }

/* === Mag Card (Ratgeber-Listing) === */
.awa-mag {
  background: var(--awa-surface); border: 1px solid var(--awa-border);
  border-radius: var(--awa-radius); padding: 1.5rem;
  text-decoration: none; color: inherit; display: block;
  transition: all .2s ease;
}
.awa-mag:hover { border-color: var(--awa-primary); box-shadow: var(--awa-shadow); color: inherit; }
.awa-mag__tag {
  display: inline-block; background: var(--awa-primary-light);
  color: var(--awa-primary-dark); font-size: .75rem; font-weight: 700;
  letter-spacing: .04em; text-transform: uppercase;
  padding: .25rem .625rem; border-radius: 999px; margin: 0 0 .75rem;
}
.awa-mag__title { font-size: 1.125rem; font-weight: 700; color: var(--awa-text); margin: 0 0 .5rem; line-height: 1.3; }
.awa-mag__excerpt { color: var(--awa-text-muted); font-size: .9375rem; margin: 0 0 .75rem; line-height: 1.5; }
.awa-mag__link {
  color: var(--awa-primary);
  font-weight: 600;
  font-size: .9375rem;
  display: inline-flex;
  gap: .375rem;
  align-items: center;
  white-space: nowrap;
}
.awa-mag__link svg { width: 16px; height: 16px; flex-shrink: 0; }
.awa-mag__link:hover { gap: .625rem; color: var(--awa-primary-dark); }

/* === Sidebar === */
.awa-sidebar { display: flex; flex-direction: column; gap: 1.5rem; }
.awa-sidebar__block { background: var(--awa-surface); border: 1px solid var(--awa-border); border-radius: var(--awa-radius); padding: 1.25rem; }
.awa-sidebar__title {
  font-size: .9375rem; font-weight: 700; color: var(--awa-text);
  text-transform: uppercase; letter-spacing: .04em;
  margin: 0 0 .875rem; padding-bottom: .5rem;
  border-bottom: 2px solid var(--awa-primary); display: inline-block;
}
.awa-sidebar__list { list-style: none; margin: 0; padding: 0; }
.awa-sidebar__list li { padding: .25rem 0; border-bottom: 1px solid var(--awa-border); }
.awa-sidebar__list li:last-child { border-bottom: 0; }
.awa-sidebar__list a { color: var(--awa-text); text-decoration: none; font-size: .9375rem; display: block; padding: .375rem 0; line-height: 1.4; }
.awa-sidebar__list a:hover { color: var(--awa-primary); }

/* === Breadcrumb === */
.awa-breadcrumb { font-size: .875rem; color: var(--awa-text-muted); margin: 0 0 1rem; }
.awa-breadcrumb a { color: var(--awa-text-muted); text-decoration: none; }
.awa-breadcrumb a:hover { color: var(--awa-primary); }
.awa-breadcrumb span { margin: 0 .375rem; opacity: .5; }

/* === Section anchor offset === */
[id]:not(body) { scroll-margin-top: 80px; }

/* === Article (Ratgeber prose) === */
.awa-article { font-size: 1.0625rem; line-height: 1.75; color: var(--awa-text); }
.awa-article > h2 {
  font-size: 1.5rem; font-weight: 700; color: var(--awa-primary-dark);
  margin: 2.5rem 0 1rem; padding-bottom: .5rem;
  border-bottom: 2px solid var(--awa-primary-light);
}
.awa-article > h2:first-child { margin-top: 0; }
.awa-article > h3 { font-size: 1.25rem; font-weight: 700; color: var(--awa-text); margin: 2rem 0 .75rem; }
.awa-article > p { margin: 0 0 1rem; }
.awa-article > ul, .awa-article > ol { margin: 0 0 1.25rem; padding-left: 1.5rem; }
.awa-article > ul li, .awa-article > ol li { margin: .375rem 0; }
@media (min-width: 768px) {
  .awa-article > h2 { font-size: 1.75rem; }
  .awa-article > h3 { font-size: 1.375rem; }
}

/* === Disclaimer === */
.awa-disclaimer {
  background: var(--awa-surface-soft); border: 1px solid var(--awa-border);
  border-radius: var(--awa-radius); padding: 1rem 1.25rem; margin: 2rem 0 0;
  font-size: .8125rem; color: var(--awa-text-muted); line-height: 1.55;
}

/* === Page-Title-Bar unterdrücken auf unseren Templates ============ */
/* Greift wenn Kadence-Filter ihre Wirkung verfehlen (Theme-Update etc.)
   Deckt alle Kadence-Title-Strukturen ab: classic, hero, above-content. */
.awa-no-page-title .entry-hero,
.awa-no-page-title .entry-hero-container,
.awa-no-page-title .entry-hero-container-inner,
.awa-no-page-title .entry-hero-layout-standard,
.awa-no-page-title .entry-hero-layout-above,
.awa-no-page-title .entry-hero-layout-inline,
.awa-no-page-title .kadence-page-title-wrap,
.awa-no-page-title .above-page-title-wrap,
.awa-no-page-title .above-page-title,
.awa-no-page-title .page-title-container,
.awa-no-page-title .page-title,
.awa-no-page-title .entry-title-wrap,
.awa-no-page-title .entry-title,
.awa-no-page-title header.entry-header,
.awa-no-page-title .site-main > .entry-header,
.awa-no-page-title .site-main > header,
.awa-no-page-title body.page > .site-container > .entry-hero,
.awa-no-page-title .breadcrumbs-container + .entry-hero,
/* Kadence-spezifische tiefere Wrapper */
.awa-no-page-title .single-content > .entry-header,
.awa-no-page-title .content-wrap > .entry-header,
.awa-no-page-title .content-wrap > header.entry-header,
.awa-no-page-title section.entry-hero,
.awa-no-page-title div.entry-hero,
.awa-no-page-title .hero-section-wrap,
/* Inline-H1 falls Kadence ohne Wrapper rendert */
.awa-no-page-title .site-main h1.entry-title,
.awa-no-page-title .site-main h1.title {
  display: none !important;
}
.awa-no-page-title .site { padding-top: 0 !important; }

/* === Max Mega Menu Integration ==================================== */
/* Falls Max Mega Menu Plugin aktiv ist, sorgen wir dafür dass unsere
   CSS-Variablen auch dort verfügbar sind und die Z-Index-Ebene passt. */
#mega-menu-wrap-primary,
#mega-menu-wrap-awa_primary,
.mega-menu-wrap {
  --awa-primary:        #2b5f8a;
  --awa-primary-dark:   #1d4666;
  --awa-primary-light:  #e8f1f8;
}
.mega-menu-wrap .mega-sub-menu { z-index: 999 !important; }
.mega-menu-wrap a.mega-menu-link { font-family: var(--awa-font-body) !important; }

/* === Mega-Menu (Theme-native, ohne Plugin) ======================= */

/* Top-Level: kleinen Caret hinter Items mit Sub-Menu/Mega */
.awa-menu-caret {
  display: inline-block;
  margin-left: .25em;
  font-size: .8em;
  opacity: .65;
  transition: transform .15s ease;
}
.menu-item:hover > a .awa-menu-caret { transform: rotate(180deg); opacity: 1; }

/* Mega-Container — beim Hover über das Top-Level-Item öffnen */
.awa-has-mega { position: static; }

/* Trigger-Item: unsichtbare Erweiterung nach unten,
   damit beim Move zum Panel kein Hover-Gap entsteht */
.awa-has-mega > a {
  position: relative;
}
.awa-has-mega > a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -20px;
  height: 20px;
  /* Transparent - aber zaehlt fuer Hover-Detection */
}

.awa-mega-panel {
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  /* Padding-Top vom Panel selbst (statt margin),
     damit Hover ueber den Gap nicht verloren geht */
  margin: 0 auto;
  padding-top: 0;
  max-width: 1240px;
  width: 100%;
  background: #fff;
  border: 1px solid var(--awa-border);
  border-radius: var(--awa-radius);
  box-shadow: 0 14px 40px rgba(15, 30, 50, .12);
  z-index: 999;
  opacity: 0;
  visibility: hidden;
  transform: translateY(0);
  transition: opacity .12s ease, visibility .12s;
  pointer-events: none;
}
/* Inner-Wrapper fuer eigentlichen Content - damit Border/Shadow nicht
   den unsichtbaren Top-Gap mit-zeichnet */
.awa-mega-panel::before {
  content: "";
  position: absolute;
  top: -12px;
  left: 0;
  right: 0;
  height: 12px;
  /* unsichtbare Bridge zwischen Trigger und Panel */
}
.awa-mega-panel > * {
  padding: 2rem;
}
.awa-mega-panel > div + div {
  padding-top: 0;
}

/* Open-State: bei Hover ueber Trigger ODER Panel */
.awa-has-mega:hover > .awa-mega-panel,
.awa-has-mega:focus-within > .awa-mega-panel,
.awa-mega-panel:hover {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

/* Grid */
.awa-mega-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.75rem;
}
.awa-mega-leistungen-panel .awa-mega-grid {
  grid-template-columns: repeat(3, 1fr);
}

/* Spalten-Headline */
.awa-mega-col h4 {
  font-size: .875rem;
  font-weight: 700;
  color: var(--awa-primary-dark);
  text-transform: uppercase;
  letter-spacing: .04em;
  margin: 0 0 .75rem;
  padding-bottom: .375rem;
  border-bottom: 1px solid var(--awa-primary-light);
}
.awa-mega-col h4 a {
  color: var(--awa-primary-dark);
  text-decoration: none;
}
.awa-mega-col h4 a:hover { color: var(--awa-primary); }
.awa-mega-col h4 + ul,
.awa-mega-col + .awa-mega-col h4 {
  margin-top: 1.25rem;
}
.awa-mega-col h4:first-child { margin-top: 0; }

/* Spalten-Items */
.awa-mega-col ul {
  list-style: none;
  margin: 0 0 1rem;
  padding: 0;
}
.awa-mega-col li {
  padding: .25rem 0;
}
.awa-mega-col li a {
  color: var(--awa-text);
  text-decoration: none;
  font-size: .9375rem;
  line-height: 1.4;
  display: block;
  padding: .125rem 0;
  transition: color .12s ease, padding-left .12s ease;
}
.awa-mega-col li a:hover {
  color: var(--awa-primary);
  padding-left: .25rem;
}

/* Footer im Mega-Panel ("Alle anzeigen") */
.awa-mega-footer {
  margin-top: 1.5rem;
  padding-top: 1rem;
  border-top: 1px solid var(--awa-border);
  text-align: right;
}
.awa-mega-footer a {
  color: var(--awa-primary);
  font-weight: 600;
  text-decoration: none;
  font-size: .9375rem;
}
.awa-mega-footer a:hover { color: var(--awa-primary-dark); }

/* Zielgruppe-Liste */
.awa-mega-zielgruppe-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: .5rem 1.5rem;
}
.awa-mega-zielgruppe-list li a {
  display: block;
  padding: .75rem;
  border-radius: var(--awa-radius-sm);
  text-decoration: none;
  color: var(--awa-text);
  transition: background .12s ease;
}
.awa-mega-zielgruppe-list li a:hover { background: var(--awa-primary-light); }
.awa-mega-zielgruppe-list strong {
  display: block;
  color: var(--awa-text);
  font-size: .9375rem;
}
.awa-mega-zielgruppe-list span {
  display: block;
  color: var(--awa-text-muted);
  font-size: .8125rem;
  margin-top: .125rem;
}

/* Responsive: Mega-Menu unterhalb Tablet komplett aus
   (Kadence rendert mobiles Menu separat) */
@media (max-width: 900px) {
  .awa-mega-panel { display: none; }
}

/* Standard-Sub-Menu (für nicht-Mega Items) */
.menu-item > .sub-menu {
  list-style: none;
  background: #fff;
  border: 1px solid var(--awa-border);
  border-radius: var(--awa-radius);
  box-shadow: 0 4px 12px rgba(15, 30, 50, .08);
  padding: .5rem;
  min-width: 220px;
}
.menu-item > .sub-menu li a {
  display: block;
  padding: .5rem .75rem;
  color: var(--awa-text);
  text-decoration: none;
  border-radius: var(--awa-radius-sm);
  font-size: .9375rem;
}
.menu-item > .sub-menu li a:hover {
  background: var(--awa-primary-light);
  color: var(--awa-primary);
}

/* === Footer-Menu Styling ========================================== */
/* Greift auf alle Footer-Menu-Container die Kadence rendert */
.site-footer .footer-navigation,
.site-footer-row-container .menu,
.site-footer ul.menu {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem 1.75rem;
  align-items: center;
  justify-content: center;
  list-style: none;
  margin: 0;
  padding: 0;
}
.site-footer .footer-navigation li,
.site-footer-row-container .menu li,
.site-footer ul.menu li {
  margin: 0;
  padding: 0;
  list-style: none;
  position: relative;
}
.site-footer .footer-navigation a,
.site-footer-row-container .menu a,
.site-footer ul.menu a {
  color: var(--awa-text-muted);
  text-decoration: none;
  font-size: .875rem;
  font-weight: 500;
  padding: .375rem 0;
  display: inline-block;
  transition: color .12s ease;
  border: 0;
}
.site-footer .footer-navigation a:hover,
.site-footer-row-container .menu a:hover,
.site-footer ul.menu a:hover {
  color: var(--awa-primary);
}

/* Trenner zwischen Items */
.site-footer .footer-navigation li:not(:last-child)::after,
.site-footer-row-container .menu li:not(:last-child)::after,
.site-footer ul.menu li:not(:last-child)::after {
  content: "";
  position: absolute;
  right: -.875rem;
  top: 50%;
  width: 3px;
  height: 3px;
  background: var(--awa-border-strong);
  border-radius: 50%;
  transform: translateY(-50%);
}

/* Footer-Container generell */
.site-footer {
  background: var(--awa-surface-soft);
  border-top: 1px solid var(--awa-border);
  padding: 2rem 0;
  margin-top: 4rem;
}
.site-footer .site-info,
.site-footer .footer-html {
  color: var(--awa-text-muted);
  font-size: .8125rem;
  text-align: center;
  margin: 1rem 0 0;
}
.site-footer .site-info a,
.site-footer .footer-html a {
  color: var(--awa-primary);
  text-decoration: none;
}

/* Mobile: Stack statt Inline */
@media (max-width: 640px) {
  .site-footer .footer-navigation,
  .site-footer-row-container .menu,
  .site-footer ul.menu {
    flex-direction: column;
    gap: .25rem;
  }
  .site-footer .footer-navigation li::after,
  .site-footer-row-container .menu li::after,
  .site-footer ul.menu li::after {
    display: none;
  }
}

/* === Astra-spezifische Overrides ================================== */

/* Astra Page-Title-Hide Fallback (falls Filter nicht greift) */
.awa-no-page-title .ast-archive-description,
.awa-no-page-title .entry-banner,
.awa-no-page-title .ast-single-entry-banner,
.awa-no-page-title .single-layout-1 .entry-header,
.awa-no-page-title .page-layout-default .entry-header,
.awa-no-page-title h1.entry-title,
.awa-no-page-title .ast-page-builder-template .entry-header,
.awa-no-page-title header.ast-entry-banner,
.awa-no-page-title .ast-title-bar-wrap,
.awa-no-page-title .ast-above-header-section h1 {
  display: none !important;
}

/* Astra Footer: Spalten anders padden */
.site-footer .ast-builder-html-element,
.site-footer .ast-footer-html-inner {
  font-size: .875rem;
  color: var(--awa-text-muted);
  text-align: center;
}

/* Astra Footer-Menu */
.site-footer ul.menu,
.site-footer .footer-primary-navigation,
.site-footer-primary-section-1 ul,
.site-footer-primary-section-2 ul,
.site-footer-primary-section-3 ul {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem 1.75rem;
  align-items: center;
  justify-content: center;
  list-style: none;
  margin: 0;
  padding: 0;
}
.site-footer ul.menu li,
.site-footer .footer-primary-navigation li {
  position: relative;
  margin: 0;
  padding: 0;
  list-style: none;
}
.site-footer ul.menu li a,
.site-footer .footer-primary-navigation li a {
  color: var(--awa-text-muted);
  text-decoration: none;
  font-size: .875rem;
  font-weight: 500;
  padding: .375rem 0;
  display: inline-block;
  transition: color .12s ease;
}
.site-footer ul.menu li a:hover,
.site-footer .footer-primary-navigation li a:hover {
  color: var(--awa-primary);
}
.site-footer ul.menu li:not(:last-child)::after,
.site-footer .footer-primary-navigation li:not(:last-child)::after {
  content: "";
  position: absolute;
  right: -.875rem;
  top: 50%;
  width: 3px;
  height: 3px;
  background: var(--awa-border-strong);
  border-radius: 50%;
  transform: translateY(-50%);
}
@media (max-width: 640px) {
  .site-footer ul.menu,
  .site-footer .footer-primary-navigation {
    flex-direction: column;
    gap: .25rem;
  }
  .site-footer ul.menu li::after,
  .site-footer .footer-primary-navigation li::after { display: none; }
}

/* Astra Header-Menu — unsere Mega-Klassen muessen Astra's Sub-Menu overriden */
.main-header-menu .menu-item.awa-has-mega { position: static; }
.main-navigation .menu-item.awa-has-mega > .sub-menu { display: none; }

/* Hauptcontainer fuer Mega-Panel: vollbreitig */
.main-header-menu,
.main-navigation,
.ast-flex.main-header-container {
  position: relative;
}

/* Astra Container nutzen */
.ast-container {
  max-width: 1240px;
}

/* Page-Padding fuer unsere Hero-Sections */
.awa-no-page-title .site-content {
  padding-top: 0 !important;
}
.awa-no-page-title .site-content > .ast-container,
.awa-no-page-title .content-area > .ast-container,
.awa-no-page-title #primary {
  padding-top: 1rem;
}

/* === Layout-Grid (Single-Templates) =============================== */
.awa-layout {
  padding: 2rem 0;
}
.awa-layout > .awa-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.5rem;
}
.awa-layout-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
}
@media (min-width: 1024px) {
  .awa-layout-grid {
    grid-template-columns: minmax(0, 1fr) 320px;
  }
}
.awa-main { min-width: 0; }

/* === Astra Header-Fixes ============================================ */
/* Astra Header-Container nicht kollabieren lassen */
.ast-primary-header-bar,
.main-header-bar,
.ast-builder-grid-row {
  flex-wrap: nowrap !important;
  align-items: center;
}

/* Site-Identity (Logo + Title) nicht umbrechen */
.site-branding,
.ast-site-identity {
  flex-shrink: 0;
  white-space: nowrap;
}
.site-title,
.site-title a,
.ast-site-title-wrap {
  white-space: nowrap;
  font-size: 1.25rem;
  line-height: 1.2;
}

/* Header-Menu nicht overflow-hidden */
.main-header-bar-navigation,
.ast-builder-menu,
.main-navigation {
  flex: 1;
  min-width: 0;
}

/* Menu-Items horizontal, kein Wrap */
.main-header-menu,
.main-header-menu > ul,
.main-navigation > ul,
ul.main-header-menu,
ul.menu.main-header-menu {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}
.main-header-menu > li,
.main-navigation > ul > li,
ul.main-header-menu > li {
  display: flex;
  align-items: center;
  position: relative;
}
.main-header-menu > li > a,
.main-navigation > ul > li > a {
  display: block;
  padding: 1rem 1rem;
  white-space: nowrap;
  text-decoration: none;
  color: var(--awa-text);
  font-weight: 500;
}
.main-header-menu > li > a:hover,
.main-navigation > ul > li > a:hover,
.main-header-menu > li.current-menu-item > a {
  color: var(--awa-primary);
}

/* Mobile: Menu kollabiert ueber Off-Canvas (Astra default) */
@media (max-width: 921px) {
  .main-header-menu,
  ul.main-header-menu {
    display: none !important;
  }
}

/* === Astra Footer (alle Varianten erfassen) ======================= */
.site-footer .ast-footer-navigation,
.site-footer nav,
.footer-widget-area ul.menu,
.site-below-footer-wrap ul.menu,
.site-primary-footer-wrap ul.menu,
.ast-footer-section ul.menu {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem 1.5rem;
  justify-content: center;
  align-items: center;
  list-style: none;
  margin: 0;
  padding: 0;
}
.site-footer .ast-footer-navigation li,
.site-footer nav li,
.footer-widget-area ul.menu li,
.site-below-footer-wrap ul.menu li,
.site-primary-footer-wrap ul.menu li,
.ast-footer-section ul.menu li {
  position: relative;
  margin: 0;
  padding: 0;
  list-style: none;
}
.site-footer .ast-footer-navigation a,
.site-footer nav a,
.footer-widget-area ul.menu a,
.site-below-footer-wrap ul.menu a,
.site-primary-footer-wrap ul.menu a,
.ast-footer-section ul.menu a {
  color: var(--awa-text-muted);
  text-decoration: none;
  font-size: .875rem;
  font-weight: 500;
  padding: .375rem 0;
  display: inline-block;
}
.site-footer a:hover { color: var(--awa-primary); }

/* === Layout-Container Fixes ======================================= */
/* Main-Content darf nie aus dem Grid-Track ausbrechen */
.awa-main,
.awa-main * {
  min-width: 0;
  max-width: 100%;
}
/* Card-Grids: in der Main-Spalte begrenzen */
.awa-main .awa-grid {
  max-width: 100%;
}
.awa-main .awa-grid--3 {
  /* Bei 2-Spalten-Layout (Sidebar 320px + Main): Card-Grid auf 2 statt 3 Spalten */
}
@media (min-width: 900px) and (max-width: 1199px) {
  .awa-main .awa-grid--3 {
    grid-template-columns: repeat(2, 1fr);
  }
  .awa-main .awa-grid--4 {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 1200px) {
  .awa-main .awa-grid--4 {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* === Mega-Menu: Spaltenbreiten korrekt ============================ */
/* Spalten nicht enger als nötig */
.awa-mega-panel {
  min-width: 920px;
}
.awa-mega-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.5rem 2rem;
}
.awa-mega-col {
  min-width: 0;
}
.awa-mega-col li a {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Zentrierung wenn Panel kleiner als Viewport */
.awa-mega-panel {
  left: 50%;
  right: auto;
  transform: translateX(-50%);
}

/* === Breadcrumbs Astra ========================================== */
.ast-breadcrumbs,
nav.ast-breadcrumbs-wrap,
.ast-breadcrumbs-wrapper,
ol.breadcrumb,
.breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: .375rem;
  align-items: center;
  list-style: none;
  margin: 0 0 1.5rem;
  padding: 0;
  font-size: .875rem;
  color: var(--awa-text-muted);
}
.ast-breadcrumbs li,
.breadcrumb li {
  display: flex;
  align-items: center;
  margin: 0;
  padding: 0;
  list-style: none;
}
.ast-breadcrumbs li::before,
.breadcrumb li:not(:first-child)::before {
  content: "/";
  margin: 0 .5rem;
  color: var(--awa-border-strong);
}
.ast-breadcrumbs li:first-child::before {
  content: "";
  margin: 0;
}
.ast-breadcrumbs a,
.breadcrumb a {
  color: var(--awa-text-muted);
  text-decoration: none;
}
.ast-breadcrumbs a:hover,
.breadcrumb a:hover {
  color: var(--awa-primary);
}
.ast-breadcrumbs li:last-child,
.breadcrumb li:last-child,
.breadcrumb_last {
  color: var(--awa-text);
  font-weight: 500;
}

/* === Unsere eigene awa-breadcrumb (von awa_breadcrumb() Helper) === */
nav.awa-breadcrumb {
  margin: 0 0 1.5rem;
  font-size: .875rem;
  color: var(--awa-text-muted);
}
nav.awa-breadcrumb ol {
  display: flex !important;
  flex-wrap: wrap;
  gap: .375rem 0;
  align-items: center;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  counter-reset: none !important;
}
nav.awa-breadcrumb ol li {
  display: flex;
  align-items: center;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  list-style-type: none !important;
}
nav.awa-breadcrumb ol li::marker { content: "" !important; display: none !important; }
nav.awa-breadcrumb ol li:not(:first-child)::before {
  content: "/";
  margin: 0 .5rem;
  color: var(--awa-border-strong);
  font-weight: 400;
}
nav.awa-breadcrumb a {
  color: var(--awa-text-muted);
  text-decoration: none;
}
nav.awa-breadcrumb a:hover { color: var(--awa-primary); }
nav.awa-breadcrumb li:last-child span,
nav.awa-breadcrumb [aria-current="page"] {
  color: var(--awa-text);
  font-weight: 500;
}

/* === Rank Math Breadcrumbs ====================================== */
.rank-math-breadcrumb {
  margin: 0 0 1.5rem;
  font-size: .875rem;
  color: var(--awa-text-muted);
}
.rank-math-breadcrumb a {
  color: var(--awa-text-muted);
  text-decoration: none;
}
.rank-math-breadcrumb a:hover {
  color: var(--awa-primary);
}
.rank-math-breadcrumb .separator {
  margin: 0 .5rem;
  color: var(--awa-border-strong);
}

/* "1. 2. 3."-Liste-Style killen (alle Breadcrumb-Varianten) */
ol.breadcrumb,
ol.rank-math-breadcrumb,
.ast-breadcrumbs ol,
nav.awa-breadcrumb ol {
  list-style: none !important;
  padding-left: 0 !important;
  counter-reset: none !important;
}
ol.breadcrumb > li::marker,
.ast-breadcrumbs ol > li::marker,
nav.awa-breadcrumb ol > li::marker {
  content: "" !important;
  display: none !important;
}

/* === Site-Identity Astra: wenn Logo vorhanden, Title verstecken ==== */
.site-branding .custom-logo-link + .ast-site-title-wrap,
.site-branding:has(.custom-logo) .ast-site-title-wrap,
.ast-site-identity:has(img.custom-logo) .site-title,
.ast-site-identity:has(img.custom-logo) .site-description {
  display: none !important;
}
/* Logo nicht zu klein */
.site-branding img.custom-logo,
.custom-logo-link img {
  max-height: 50px;
  width: auto;
}

/* === Layout-Grid: Sidebar/Main strikter trennen ================== */
/* Astra Site-Container und unser Layout-Grid harmonieren */

/* Astra-Default-Container nicht über das Layout-Grid hinwegzeichnen */
.ast-container,
.site-content > .ast-container,
.entry-content {
  max-width: 100%;
}

/* Unser Layout-Grid: garantiert 2 Spalten ab Desktop */
.awa-layout {
  padding: 2rem 0 3rem;
  width: 100%;
}
.awa-layout > .awa-container {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 1.5rem;
  box-sizing: border-box;
}

.awa-layout-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
  align-items: start;
  width: 100%;
}
@media (min-width: 1024px) {
  .awa-layout-grid {
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 3rem;
  }
}

/* Main-Spalte: striktes Min-Width-0 damit Grid-Items nicht ausbrechen */
.awa-main {
  min-width: 0;
  max-width: 100%;
  overflow-wrap: break-word;
  word-wrap: break-word;
}

/* Sidebar: striktes max-width damit Listen-Items nicht expandieren */
.awa-sidebar {
  min-width: 0;
  max-width: 100%;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

/* Article-Wrapper im Main: keine eigene Width-Logik */
.awa-main .awa-article,
.awa-main .awa-article-staedte,
.awa-main .awa-article-content {
  max-width: 100%;
  min-width: 0;
}

/* === Card-Grids in der Main-Spalte: max-2-Spalten bei mittlerer Breite */
@media (min-width: 1024px) and (max-width: 1279px) {
  .awa-main .awa-grid--3,
  .awa-main .awa-grid--4 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

/* Card-Items: nicht über Container ausbrechen */
.awa-main .awa-card,
.awa-main .awa-tile,
.awa-main .awa-step,
.awa-main .awa-infobox,
.awa-main .awa-mag {
  min-width: 0;
  max-width: 100%;
  overflow-wrap: break-word;
}

/* Hero auf Stadt: nicht über Container ausbrechen */
.awa-main .awa-hero,
.awa-main .awa-trust-bar,
.awa-main .awa-inline-cta,
.awa-main .awa-final-cta {
  max-width: 100%;
  box-sizing: border-box;
}

/* Astra-Sidebar (#secondary) wenn vorhanden: ausblenden auf unseren CPTs
   da wir eigene .awa-sidebar nutzen */
.single-staedte #secondary,
.single-ratgeber #secondary,
.single-service #secondary,
.single-zielgruppe #secondary {
  display: none !important;
}

/* === BREADCRUMB-FIX V4 ============================================
   Override Astra-Default für ol/li innerhalb entry-content + body.
   Sehr hohe Specifity da Astra-Theme starke Defaults setzt. */

body nav.awa-breadcrumb,
.entry-content nav.awa-breadcrumb,
.site-content nav.awa-breadcrumb {
  display: block;
  margin: 0 0 1.5rem;
  padding: 0;
  font-size: .875rem;
  color: var(--awa-text-muted);
  background: transparent;
  border: 0;
}

body nav.awa-breadcrumb ol,
.entry-content nav.awa-breadcrumb ol,
.site-content nav.awa-breadcrumb ol,
.ast-container nav.awa-breadcrumb ol {
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
  gap: 0;
  list-style: none !important;
  list-style-type: none !important;
  list-style-position: outside !important;
  margin: 0 !important;
  padding: 0 !important;
  counter-reset: none !important;
}

body nav.awa-breadcrumb ol > li,
.entry-content nav.awa-breadcrumb ol > li,
.site-content nav.awa-breadcrumb ol > li,
.ast-container nav.awa-breadcrumb ol > li {
  display: inline-flex !important;
  align-items: center;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  list-style-type: none !important;
  counter-increment: none !important;
}

/* Numerierungs-Marker komplett raus */
body nav.awa-breadcrumb ol > li::marker,
.entry-content nav.awa-breadcrumb ol > li::marker {
  content: none !important;
  display: none !important;
}
body nav.awa-breadcrumb ol > li::before,
.entry-content nav.awa-breadcrumb ol > li::before {
  content: none;
}

/* Separator zwischen Items */
body nav.awa-breadcrumb ol > li + li::before,
.entry-content nav.awa-breadcrumb ol > li + li::before,
.site-content nav.awa-breadcrumb ol > li + li::before {
  content: "/" !important;
  display: inline-block !important;
  margin: 0 .625rem;
  color: var(--awa-border-strong);
  font-weight: 400;
  opacity: .6;
}

/* Links */
body nav.awa-breadcrumb a,
.entry-content nav.awa-breadcrumb a {
  color: var(--awa-text-muted);
  text-decoration: none;
}
body nav.awa-breadcrumb a:hover,
.entry-content nav.awa-breadcrumb a:hover {
  color: var(--awa-primary);
  text-decoration: underline;
}

/* Aktuelle Krume */
body nav.awa-breadcrumb [aria-current="page"],
body nav.awa-breadcrumb li:last-child span,
.entry-content nav.awa-breadcrumb [aria-current="page"] {
  color: var(--awa-text);
  font-weight: 500;
}


/* === LAYOUT-GRID FIX V4 ============================================
   Astra umschließt Single-Templates mit #content > #primary > <main>.
   Wir brechen aus diesem Default-Wrapper aus und forcieren unser Grid
   direkt vom Body-Container aus. */

/* Astra Site-Content darf max-width nicht limitieren */
body.single-staedte .site-content,
body.single-ratgeber .site-content,
body.single-service .site-content,
body.single-zielgruppe .site-content {
  padding: 0 !important;
}

body.single-staedte #content,
body.single-ratgeber #content,
body.single-service #content,
body.single-zielgruppe #content {
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Astra-Default #primary wrapper soll volle Breite haben */
body.single-staedte #primary.content-area,
body.single-ratgeber #primary.content-area,
body.single-service #primary.content-area,
body.single-zielgruppe #primary.content-area {
  width: 100% !important;
  max-width: 100% !important;
  float: none !important;
  padding: 0 !important;
}

/* Astra-Sidebar #secondary komplett raus */
body.single-staedte #secondary,
body.single-ratgeber #secondary,
body.single-service #secondary,
body.single-zielgruppe #secondary {
  display: none !important;
}

/* Unser Layout-Wrapper (.awa-layout) */
.awa-layout {
  width: 100%;
  padding: 1.5rem 0 3rem;
  box-sizing: border-box;
}
.awa-layout > .awa-container {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 1.5rem;
  box-sizing: border-box;
  width: 100%;
}

/* Layout-Grid: Main + Sidebar */
.awa-layout-grid {
  display: grid !important;
  grid-template-columns: 1fr;
  gap: 2rem;
  align-items: start;
  width: 100%;
}
@media (min-width: 1024px) {
  .awa-layout-grid {
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 3rem;
  }
}
@media (min-width: 1280px) {
  .awa-layout-grid {
    grid-template-columns: minmax(0, 1fr) 320px;
  }
}

/* Main + Sidebar: strikt im Grid bleiben */
.awa-main,
.awa-sidebar {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

/* Card-Grids innerhalb Main: niemals breiter als Container */
.awa-main .awa-grid,
.awa-main .awa-grid--2,
.awa-main .awa-grid--3,
.awa-main .awa-grid--4 {
  max-width: 100%;
  width: 100%;
  box-sizing: border-box;
}

/* Bei mittlerer Viewport-Breite: 3/4-cols → 2 cols, sonst quetschts */
@media (min-width: 1024px) and (max-width: 1279px) {
  .awa-main .awa-grid--3,
  .awa-main .awa-grid--4 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

/* Card-Items: nie wider als Spalte */
.awa-main .awa-card,
.awa-main .awa-step,
.awa-main .awa-tile,
.awa-main .awa-mag,
.awa-main .awa-infobox {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
  overflow-wrap: break-word;
  word-break: break-word;
}

/* Hero, Trust-Bar, CTAs full-width im Main */
.awa-main .awa-hero,
.awa-main .awa-trust-bar,
.awa-main .awa-inline-cta,
.awa-main .awa-final-cta,
.awa-main .awa-callout,
.awa-main .awa-tldr {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
