/* =====================================================
   00 / CONTENT-RAHMEN
   #content traegt keinen eigenen Hero mehr (der alte
   .sub-bnr wurde entfernt). Das Bildbanner kommt aus
   .cg-sitemap-main::before, darueber liegt die Glass-Card
   aus .cg-sitemap-hero__grid.
===================================================== */

#wrap {
  overflow: visible !important;
}

html,
body {
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: hidden !important;
}

html {
  scroll-behavior: auto !important;
  scroll-padding-top: 140px !important;
}

#content {
  display: block !important;
  position: relative !important;
  z-index: auto !important;
  clear: both !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  background: #ffffff !important;
}

#content::after {
  content: "" !important;
  display: table !important;
  clear: both !important;
}

/* =====================================================
   01 / ROOT-SCOPE
===================================================== */

.cg-sitemap-main {
  --cg-sm-green: #216160;
  --cg-sm-green-dark: #25351b;
  --cg-sm-gold: #bda589;
  --cg-sm-ink: #252525;
  --cg-sm-muted: #6f6f6f;
  --cg-sm-soft: #f6f7f8;
  --cg-sm-line: rgba(37, 53, 27, 0.12);
  --cg-sm-shadow-soft: 0 16px 42px rgba(37, 53, 27, 0.09);

  display: block !important;
  position: relative !important;
  isolation: isolate !important;
  z-index: auto !important;
  clear: both !important;
  width: 100% !important;
  max-width: none !important;
  min-height: 1px !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;

  color: var(--cg-sm-ink) !important;
  background:
    linear-gradient(
      180deg,
      transparent 0,
      transparent clamp(300px, 30vw, 460px),
      #ffffff clamp(360px, 36vw, 540px),
      #ffffff 100%
    ) !important;

  font-family: 'Raleway', sans-serif !important;
  box-sizing: border-box !important;
}

.cg-sitemap-main *,
.cg-sitemap-main *::before,
.cg-sitemap-main *::after {
  box-sizing: border-box !important;
}

.cg-sitemap-main a {
  text-decoration: none !important;
}

.cg-sitemap-main ul {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.cg-sitemap-container {
  width: min(100% - 44px, 1180px) !important;
  max-width: 1180px !important;
  margin: 0 auto !important;
  padding: 0 !important;
}

/* =====================================================
   01.1 / HERO-BILDBANNER
===================================================== */

.cg-sitemap-main::before {
  content: "" !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;

  height: clamp(360px, 34vw, 520px) !important;

  z-index: 0 !important;
  pointer-events: none !important;

  background-image: url("../images/sub-bnr-bg.jpg") !important;
  background-repeat: no-repeat !important;
  background-position: center top !important;
  background-size: cover !important;
}

/* =====================================================
   02 / HERO
===================================================== */

.cg-sitemap-hero {
  position: relative !important;
  z-index: 1 !important;
  padding: clamp(104px, 9vw, 148px) 0 clamp(58px, 6vw, 96px) !important;
  background: transparent !important;
}

.cg-sitemap-hero .cg-sitemap-container {
  position: relative !important;
  z-index: 2 !important;
}

.cg-sitemap-hero__grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1.35fr) minmax(300px, 0.65fr) !important;
  gap: clamp(28px, 5vw, 74px) !important;
  align-items: center !important;

  padding: clamp(32px, 5vw, 60px) !important;

  background: rgba(255, 255, 255, 0.86) !important;
  border: 1px solid rgba(255, 255, 255, 0.76) !important;
  box-shadow: none !important;

  backdrop-filter: saturate(115%) blur(2px) !important;
  -webkit-backdrop-filter: saturate(115%) blur(2px) !important;
}

.cg-sitemap-hero__copy {
  min-width: 0 !important;
}

.cg-sitemap-hero__panel {
  position: relative !important;
  align-self: center !important;
}

/* =====================================================
   02b / BREADCRUMB
===================================================== */

.cg-sitemap-breadcrumb {
  margin: 0 0 18px !important;
}

.cg-sitemap-breadcrumb ol {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 6px !important;
}

.cg-sitemap-breadcrumb li {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;

  color: var(--cg-sm-muted) !important;
  font-family: 'Montserrat', sans-serif !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 0.09em !important;
  text-transform: uppercase !important;
}

.cg-sitemap-breadcrumb li:not(:last-child)::after {
  content: "/" !important;
  color: rgba(37, 53, 27, 0.32) !important;
}

.cg-sitemap-breadcrumb a {
  color: var(--cg-sm-muted) !important;
  transition: color 0.2s ease !important;
}

.cg-sitemap-breadcrumb a:hover,
.cg-sitemap-breadcrumb a:focus {
  color: var(--cg-sm-green) !important;
}

.cg-sitemap-breadcrumb li[aria-current="page"] {
  color: var(--cg-sm-green-dark) !important;
}

/* =====================================================
   03 / TYPOGRAFIE BASIS
===================================================== */

.cg-sitemap-eyebrow {
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;

  margin: 0 0 16px !important;
  color: var(--cg-sm-green) !important;

  font-family: 'Montserrat', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
}

.cg-sitemap-eyebrow::before {
  content: "" !important;
  display: block !important;
  width: 32px !important;
  height: 2px !important;
  background: linear-gradient(90deg, var(--cg-sm-green-dark), var(--cg-sm-gold)) !important;
}

.cg-sitemap-hero h1 {
  margin: 0 0 18px !important;
  color: var(--cg-sm-ink) !important;

  font-family: 'Montserrat', sans-serif !important;
  font-size: clamp(40px, 5vw, 62px) !important;
  line-height: 0.98 !important;
  font-weight: 700 !important;
  letter-spacing: -0.03em !important;
}

.cg-sitemap-lead {
  max-width: 620px !important;
  margin: 0 !important;
  color: var(--cg-sm-muted) !important;

  font-size: clamp(16px, 1.5vw, 19px) !important;
  line-height: 1.65 !important;
}

/* =====================================================
   04 / HERO-PANEL (dunkle Karte)
===================================================== */

.cg-sitemap-hero__panel-inner {
  position: relative !important;
  isolation: isolate !important;
  padding: clamp(26px, 3vw, 40px) !important;

  color: #ffffff !important;

  background:
    linear-gradient(145deg, rgba(37, 53, 27, 0.96) 0%, rgba(33, 97, 96, 0.88) 100%) !important;

  border: 1px solid rgba(189, 165, 137, 0.34) !important;
  box-shadow: 0 24px 58px rgba(6, 27, 23, 0.20) !important;
  overflow: hidden !important;
}

.cg-sitemap-hero__panel-inner::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: -1 !important;
  pointer-events: none !important;

  background:
    radial-gradient(circle at 82% 16%, rgba(255, 255, 255, 0.16) 0%, rgba(255, 255, 255, 0.07) 28%, rgba(255, 255, 255, 0) 60%) !important;
}

.cg-sitemap-panel-label {
  margin: 0 0 12px !important;
  color: var(--cg-sm-gold) !important;

  font-family: 'Montserrat', sans-serif !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
}

.cg-sitemap-hero__panel h2 {
  margin: 0 0 16px !important;
  color: #ffffff !important;

  font-family: 'Montserrat', sans-serif !important;
  font-size: clamp(21px, 2vw, 27px) !important;
  line-height: 1.1 !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
}

.cg-sitemap-quicklist {
  display: grid !important;
  gap: 11px !important;
}

.cg-sitemap-quicklist li {
  position: relative !important;
  padding: 0 0 0 20px !important;
}

.cg-sitemap-quicklist li::before {
  content: "" !important;
  position: absolute !important;
  top: 0.55em !important;
  left: 0 !important;
  width: 6px !important;
  height: 6px !important;
  background: var(--cg-sm-gold) !important;
}

.cg-sitemap-quicklist a {
  color: rgba(255, 255, 255, 0.90) !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.28) !important;
  transition: color 0.2s ease, border-color 0.2s ease !important;
}

.cg-sitemap-quicklist a:hover,
.cg-sitemap-quicklist a:focus {
  color: #ffffff !important;
  border-color: rgba(255, 255, 255, 0.86) !important;
}

/* =====================================================
   05 / KATEGORIEN (Karten mit Gradient-Randstreifen)
===================================================== */

.cg-sitemap-categories {
  position: relative !important;
  z-index: 1 !important;
  padding: clamp(56px, 6vw, 88px) 0 !important;
  background: #ffffff !important;
}

.cg-sitemap-categories__grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: clamp(18px, 2.4vw, 28px) !important;
}

.cg-sitemap-card {
  position: relative !important;
  isolation: isolate !important;
  overflow: hidden !important;

  padding: clamp(28px, 3.2vw, 40px) !important;

  background: #ffffff !important;
  border: 1px solid var(--cg-sm-line) !important;
  box-shadow: var(--cg-sm-shadow-soft) !important;

  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease !important;
}

.cg-sitemap-card:hover,
.cg-sitemap-card:focus-within {
  transform: translateY(-5px) !important;
  border-color: rgba(189, 165, 137, 0.72) !important;
  box-shadow: 0 28px 60px rgba(37, 53, 27, 0.14) !important;
}

.cg-sitemap-card::before {
  content: "" !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 5px !important;
  pointer-events: none !important;

  background:
    linear-gradient(90deg, var(--cg-sm-green-dark) 0%, var(--cg-sm-green) 55%, var(--cg-sm-gold) 100%) !important;
}

.cg-sitemap-card__label {
  margin: 0 0 10px !important;
  color: var(--cg-sm-gold) !important;

  font-family: 'Montserrat', sans-serif !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
}

.cg-sitemap-card h2 {
  margin: 0 0 18px !important;
  color: var(--cg-sm-ink) !important;

  font-family: 'Raleway', sans-serif !important;
  font-size: clamp(21px, 2vw, 25px) !important;
  line-height: 1.15 !important;
  font-weight: 800 !important;
  letter-spacing: -0.01em !important;
}

.cg-sitemap-card ul {
  display: grid !important;
  gap: 3px !important;
}

.cg-sitemap-card li {
  border-top: 1px solid var(--cg-sm-line) !important;
}

.cg-sitemap-card li:first-child {
  border-top: none !important;
}

.cg-sitemap-card a {
  display: block !important;
  padding: 10px 2px !important;
  color: var(--cg-sm-muted) !important;

  font-size: 14.5px !important;
  line-height: 1.4 !important;
  transition: color 0.2s ease, padding-left 0.2s ease !important;
}

.cg-sitemap-card a:hover,
.cg-sitemap-card a:focus {
  color: var(--cg-sm-green-dark) !important;
  padding-left: 8px !important;
}

/* =====================================================
   06 / THEMEN-TAGS
===================================================== */

.cg-sitemap-topics {
  position: relative !important;
  z-index: 1 !important;
  padding: 0 0 clamp(56px, 6vw, 88px) !important;
  background: #ffffff !important;
}

.cg-sitemap-topics__label {
  margin: 0 0 16px !important;
  color: var(--cg-sm-muted) !important;

  font-family: 'Montserrat', sans-serif !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
}

.cg-sitemap-tags {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
}

.cg-sitemap-tags a {
  display: inline-flex !important;
  align-items: center !important;

  padding: 9px 16px !important;
  border: 1px solid var(--cg-sm-line) !important;

  color: var(--cg-sm-ink) !important;

  font-family: 'Montserrat', sans-serif !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;

  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease !important;
}

.cg-sitemap-tags a:hover,
.cg-sitemap-tags a:focus {
  color: #ffffff !important;
  background: var(--cg-sm-green-dark) !important;
  border-color: var(--cg-sm-green-dark) !important;
}

/* =====================================================
   07 / NEWS (aufklappbare Gruppen)
===================================================== */

.cg-sitemap-news {
  position: relative !important;
  z-index: 1 !important;
  padding: clamp(56px, 6vw, 88px) 0 clamp(70px, 8vw, 110px) !important;
  background: var(--cg-sm-soft) !important;
}

.cg-sitemap-sectionhead {
  max-width: 720px !important;
  margin: 0 0 clamp(28px, 3vw, 44px) !important;
}

.cg-sitemap-sectionhead h2 {
  margin: 0 0 12px !important;
  color: var(--cg-sm-ink) !important;

  font-family: 'Montserrat', sans-serif !important;
  font-size: clamp(26px, 2.6vw, 36px) !important;
  line-height: 1.1 !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
}

.cg-sitemap-sectionhead p {
  margin: 0 !important;
  color: var(--cg-sm-muted) !important;
  font-size: 15px !important;
  line-height: 1.7 !important;
}

.cg-sitemap-news__list {
  display: grid !important;
  gap: 14px !important;
}

@media (min-width: 992px) {
  .cg-sitemap-news__list {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    align-items: start !important;
  }
}

.cg-sitemap-news__group {
  background: #ffffff !important;
  border: 1px solid var(--cg-sm-line) !important;
}

.cg-sitemap-news__group summary {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 16px !important;

  padding: 20px 26px !important;
  cursor: pointer !important;
  list-style: none !important;

  font-family: 'Montserrat', sans-serif !important;
}

.cg-sitemap-news__group summary::-webkit-details-marker {
  display: none !important;
}

.cg-sitemap-news__group summary span {
  color: var(--cg-sm-ink) !important;
  font-size: 17px !important;
  font-weight: 700 !important;
  letter-spacing: -0.01em !important;
}

.cg-sitemap-news__group summary em {
  color: var(--cg-sm-muted) !important;
  font-style: normal !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
}

.cg-sitemap-news__group summary::after {
  content: "+" !important;
  margin-left: auto !important;
  color: var(--cg-sm-gold) !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  transition: transform 0.2s ease !important;
}

.cg-sitemap-news__group[open] summary::after {
  transform: rotate(45deg) !important;
}

.cg-sitemap-news__group ul {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 2px 24px !important;
  padding: 4px 26px 24px !important;
}

.cg-sitemap-news__group li {
  border-top: 1px solid var(--cg-sm-line) !important;
}

.cg-sitemap-news__group li:first-child {
  border-top: none !important;
}

.cg-sitemap-news__group a {
  display: block !important;
  padding: 9px 2px !important;
  color: var(--cg-sm-muted) !important;

  font-size: 14px !important;
  line-height: 1.4 !important;
  transition: color 0.2s ease, padding-left 0.2s ease !important;
}

.cg-sitemap-news__group a:hover,
.cg-sitemap-news__group a:focus {
  color: var(--cg-sm-green-dark) !important;
  padding-left: 8px !important;
}

.cg-sitemap-news__hub {
  grid-column: 1 / -1 !important;
}

.cg-sitemap-news__hub a {
  color: var(--cg-sm-green-dark) !important;
  font-weight: 700 !important;
}

/* =====================================================
   08 / RESPONSIVE TABLET
===================================================== */

@media (max-width: 1100px) {
  .cg-sitemap-main::before {
    height: 390px !important;
  }

  .cg-sitemap-hero__grid {
    grid-template-columns: 1fr !important;
  }

  .cg-sitemap-hero__copy {
    max-width: 640px !important;
  }

  .cg-sitemap-hero__panel {
    max-width: 640px !important;
  }

  .cg-sitemap-categories__grid {
    grid-template-columns: 1fr 1fr !important;
  }

  .cg-sitemap-card:last-child {
    grid-column: 1 / -1 !important;
  }
}

/* =====================================================
   09 / RESPONSIVE SMARTPHONE
===================================================== */

@media (max-width: 860px) {
  .cg-sitemap-container {
    width: min(100% - 28px, 1180px) !important;
  }

  .cg-sitemap-main::before {
    height: 330px !important;
  }

  .cg-sitemap-hero {
    padding: 66px 0 34px !important;
  }

  .cg-sitemap-hero__grid {
    padding: 28px !important;
    background: rgba(255, 255, 255, 0.92) !important;
  }

  .cg-sitemap-hero h1 {
    font-size: clamp(34px, 10vw, 54px) !important;
  }

  .cg-sitemap-categories__grid {
    grid-template-columns: 1fr !important;
  }

  .cg-sitemap-card:last-child {
    grid-column: auto !important;
  }

  .cg-sitemap-news__group ul {
    grid-template-columns: 1fr !important;
  }

  .cg-sitemap-news__group li {
    border-top: 1px solid var(--cg-sm-line) !important;
  }

  .cg-sitemap-news__group li:first-child {
    border-top: none !important;
  }

  html {
    scroll-padding-top: 100px !important;
  }
}

@media (max-width: 520px) {
  .cg-sitemap-main::before {
    height: 300px !important;
  }

  .cg-sitemap-news__group summary {
    padding: 16px 18px !important;
  }

  .cg-sitemap-news__group ul {
    padding: 4px 18px 18px !important;
  }
}

/* =====================================================
   10 / ACCESSIBILITY / REDUCED MOTION
===================================================== */

@media (prefers-reduced-motion: reduce) {
  .cg-sitemap-main *,
  .cg-sitemap-main *::before,
  .cg-sitemap-main *::after {
    transition-duration: 0.001ms !important;
    animation-duration: 0.001ms !important;
  }
}
