
:root {
  --gmk-petrol: #13524C;
  --gmk-petrol-dark: #0E453F;
  --gmk-mint: #80BD9F;
  --gmk-light-mint: #EDF6F2;
  --gmk-light-mint-2: #F5FAF8;
  --gmk-text: #202425;
  --gmk-muted: #666666;
  --gmk-border: #E6EBE8;
  --gmk-white: #FFFFFF;
  --gmk-background: #F7F8F5;
  --gmk-school-info: #2F5D8A;
  --gmk-eb-position: #8B5E00;
  --gmk-success: #2F6B48;
}

.gmk-dyn-grid {
  display: grid;
  gap: 24px;
  width: 100%;
}
.gmk-dyn-cols-1 { grid-template-columns: 1fr; }
.gmk-dyn-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.gmk-dyn-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.gmk-dyn-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.gmk-dyn-card {
  min-width: 0;
  overflow: hidden;
  background: var(--gmk-white);
  border: 1px solid var(--gmk-border);
  border-radius: 20px;
  color: var(--gmk-text);
  font-family: inherit;
  transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.gmk-dyn-card:hover {
  border-color: rgba(19,82,76,.32);
  box-shadow: 0 16px 34px rgba(19,82,76,.08);
  transform: translateY(-2px);
}
.gmk-dyn-card-body {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 26px;
  height: 100%;
}
.gmk-dyn-image {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  display: block;
}
.gmk-dyn-eyebrow {
  color: var(--gmk-petrol);
  font-weight: 700;
  font-size: 0.75rem;
  line-height: 1.4;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.gmk-dyn-meta {
  color: var(--gmk-muted);
  font-size: 0.94rem;
  line-height: 1.6;
}
.gmk-dyn-title {
  color: var(--gmk-petrol);
  font-size: 1.35rem;
  line-height: 1.22;
  margin: 0;
}
.gmk-dyn-text {
  color: var(--gmk-text);
  font-size: 1rem;
  line-height: 1.72;
  margin: 0;
}
.gmk-dyn-link {
  display: inline-flex;
  width: fit-content;
  margin-top: auto;
  padding: 11px 15px;
  border-radius: 10px;
  background: var(--gmk-light-mint);
  color: var(--gmk-petrol);
  text-decoration: none;
  font-weight: 700;
  line-height: 1.3;
}
.gmk-dyn-link:hover,
.gmk-dyn-link:focus {
  background: var(--gmk-mint);
  color: var(--gmk-petrol-dark);
}
.gmk-dyn-topline {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.gmk-dyn-date {
  display: inline-flex;
  width: fit-content;
  padding: 6px 10px;
  border-radius: 999px;
  background: var(--gmk-light-mint);
  color: var(--gmk-petrol);
  font-size: 0.875rem;
  font-weight: 700;
}
.gmk-dyn-project-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  align-items: center;
}
.gmk-dyn-status {
  display: inline-flex;
  width: fit-content;
  padding: 5px 9px;
  border-radius: 999px;
  font-size: 0.78rem;
  line-height: 1.2;
  font-weight: 700;
  background: var(--gmk-light-mint);
  color: var(--gmk-petrol);
}
.gmk-status-abgeschlossen { color: var(--gmk-success); }
.gmk-status-in_abstimmung,
.gmk-status-pending { color: var(--gmk-eb-position); }
.gmk-status-archiv { color: var(--gmk-muted); }

.gmk-dyn-empty {
  padding: 24px;
  border: 1px solid var(--gmk-border);
  border-radius: 16px;
  background: var(--gmk-light-mint);
  color: var(--gmk-text);
}

/* Members */
.gmk-dyn-member {
  display: flex;
  flex-direction: column;
}
.gmk-dyn-member-media {
  padding: 18px 18px 0;
}
.gmk-dyn-member-media-inner {
  padding: 22px;
  background: var(--gmk-light-mint);
  border-radius: 18px;
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 196px;
}
.gmk-dyn-member-image {
  width: min(140px, 100%);
  max-width: 140px;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  display: block;
  border-radius: 22px;
  box-shadow: 0 10px 26px rgba(19,82,76,.08);
}
.gmk-dyn-member-placeholder {
  width: 120px;
  aspect-ratio: 1 / 1;
  border-radius: 20px;
  background: rgba(128,189,159,.28);
}
.gmk-dyn-member-body {
  gap: 10px;
  padding-top: 20px;
}
.gmk-dyn-member .gmk-dyn-title {
  font-size: clamp(1.55rem, 2.1vw, 1.9rem);
  line-height: 1.14;
}
.gmk-dyn-member-role {
  color: var(--gmk-muted);
  font-size: 1.02rem;
  font-weight: 600;
  margin-top: -2px;
}
.gmk-dyn-member-focus {
  color: var(--gmk-text);
  font-size: 1rem;
  line-height: 1.72;
  white-space: normal;
}
.gmk-dyn-member-email-wrap {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 6px;
  padding-top: 14px;
  border-top: 1px solid var(--gmk-border);
}
.gmk-dyn-member-email-label {
  color: var(--gmk-muted);
  font-size: 0.8rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 700;
}
.gmk-dyn-member-email {
  color: var(--gmk-petrol);
  font-size: 0.98rem;
  font-weight: 700;
  text-decoration: none;
  overflow-wrap: anywhere;
}
.gmk-dyn-member-email:hover,
.gmk-dyn-member-email:focus {
  color: var(--gmk-petrol-dark);
  text-decoration: underline;
}

/* Single templates */
.gmk-dyn-single {
  max-width: 980px;
  margin: 0 auto;
  padding: 64px 32px 88px;
}
.gmk-dyn-single-header {
  margin-bottom: 40px;
}
.gmk-dyn-single h1 {
  color: var(--gmk-petrol);
  font-size: clamp(2rem, 5vw, 3.5rem);
  line-height: 1.08;
  margin: 8px 0 16px;
}
.gmk-dyn-single h2 {
  color: var(--gmk-petrol);
  font-size: 1.5rem;
  margin: 0 0 12px;
}
.gmk-dyn-single-figure {
  margin: 0 0 24px;
}
.gmk-dyn-single-figure img {
  width: 100%;
  border-radius: 20px;
  display: block;
}
.gmk-dyn-single-content,
.gmk-dyn-single-section {
  margin: 0 0 24px;
  padding: 24px;
  border: 1px solid var(--gmk-border);
  border-radius: 16px;
  background: var(--gmk-white);
}
.gmk-dyn-single-content p,
.gmk-dyn-single-section p {
  line-height: 1.75;
}
.gmk-dyn-single-content > :first-child,
.gmk-dyn-single-section > :first-child {
  margin-top: 0;
}
.gmk-dyn-single-content > :last-child,
.gmk-dyn-single-section > :last-child {
  margin-bottom: 0;
}
.gmk-dyn-single-back {
  display: inline-flex;
  margin-top: 24px;
  color: var(--gmk-petrol);
  font-weight: 700;
}

@media (max-width: 1100px) {
  .gmk-dyn-cols-4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .gmk-dyn-cols-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
  .gmk-dyn-grid,
  .gmk-dyn-cols-2,
  .gmk-dyn-cols-3,
  .gmk-dyn-cols-4 { grid-template-columns: 1fr; }
  .gmk-dyn-card-body { padding: 20px; }
  .gmk-dyn-single { padding: 40px 20px 64px; }
  .gmk-dyn-member-media { padding: 16px 16px 0; }
  .gmk-dyn-member-media-inner { min-height: 160px; }
}
